Jag har en kommande undersökning där jag kan använda en enkel miniräknare. På några exempelfrågor ställer de oss till XOR två värden (för AES rund nyckel) och jag vet hur man skriver ut det för hand men finns det något annat snabbare sätt när tentan är självklart.

Svar

Om du har tur kan definitionen av ”enkel kalkylator” innehålla alla icke-grafiska räknare. I så fall kan du använda en Casio FX-115ES Plus, som inkluderar hexadecimala och oktala baslägen, och har en XOR-operatör. Den kan fungera på grupper av oktetter upp till 32 bitar.

Om du inte är så lycklig är XOR-tabellen din bästa vän. Beroende på hur många beräkningar du behöver utföra kan det mycket väl vara snabbare att skapa en på ett skrapblad under tentamen. Du kan till och med få ta med dig en.

XOR-tabell 0

Jag hade ett krav på en XOR-tabell för att utföra snabba beräkningar på en tryckt kodbok för kryptografiskt stark kommunikation över en offentlig röstkanal. Det måste också göras snabbt utan användning av en dator eller någon elektronisk anordning, och det var tvungen att passa på ett litet 4×6 ark i utrymmet under ciffertexten.

Jag kom med flera metoder för att kondensera bordet och har det fortfarande användbart. Om du är smart och resursfull kan kunskapen om hur du skapar de kondenserade versionerna göra det möjligt för dig att snabbt utföra många XOR-beräkningar. Det finns ett rekursivt mönster till den hexadecimala XOR-tabellen som kan utnyttjas, tabellen ovan är färgkodad för att visa detta mönster, som sträcker sig ner till de enskilda tecknen. Här är de kondenserade tabellerna:

XOR-tabell 1

Medan ovanstående tabell tar mindre utrymme, har den samma mängd tecken och tar därmed ungefär samma tid att skapa. En enkel regel krävs för att välja rätt tecken.

XOR Tabell 2

Nästa nivå tar nu både hälften av utrymmet i föregående och hälften av tecknen. Regeln är mer komplex, men några minuters övning gör det nästan lika snabbt att använda som hela bordet. Även regeln kan förenklas med XOR, resultatet blir korrekt om XOR för regelval är 1.

XOR Tabell 3

Den slutliga nivån är återigen hälften av mellanslaget och hälften av tecknen (nästan) som den föregående, samtidigt som det krävs en ytterligare regel för att få jobbet gjort. Om du kommer ihåg den rekursiva strukturen och den grundläggande layouten för denna tabell kan du återskapa den på under en minut med en penna och ett papper.

Börja med den inre kolumnrubriken, första nibblen; 0 1 2 3 4 5 6 7
Lägg sedan till den andra nibblen, som är den första nibblen + 8; 8 9 ABCDEF
Den yttre kolumnrubriken är den inre kolumnrubriken med halvorna vända
Den inre raden är den första halvan av den inre kolhuvudet
Den yttre raden är den första halvan av den yttre kolumnen rubrik – Sedan fyller du i tabellen med den rekursiva strukturen, byggd från den inre kolumnrubriken.
Att skapa den dubbla komprimerade tabellen utelämnar de yttre rubrikerna men använder en fullständig radrubrik.

Ett enda exempel på trippelbordet:

25 XOR B6
2 XB = [2a] X [3b] (1 2 2) = 9
Eftersom 2 är den första nibblan och B är den 2: a, använder vi den andra nibblen av [19]
5 X 6 = [5d] x [ 6e] (1 1 1) = 3
Eftersom 5 är den första nibblan och 6 är den första, använder vi den första nibblan av [3b]
Därför 25 XOR B6 = 93

Svar

Försök att konvertera hexadecimala tal till binära tal och utför exklusiva OR för varje bit. Konvertera sedan binära tal tillbaka till hexadecimala tal.

Kommentarer

  • Dessutom, eftersom 16 är exakt 2 ^ 4, kan du göra detta digitalt. Det vill säga att du inte behöver ' inte måste konvertera hela talet till binärt på en gång, du kan göra det en siffra åt gången, xor och sedan konvertera resultatet tillbaka till hex

Svar

xoring 2 bitar är lätt.
att konvertera en hexadecimal till 4 bitar är lätt.

Kombinationen av dessa två fakta borde göra det enkelt att xora en enda hexadecimisk siffra. Om du skriver ner en tabell för varje siffra till binär (i ett testat test, oavsett om det är värt det eller inte beror på antalet omvandlingar du måste göra), behöver du inte göra någon skriftlig beräkning egentligen. Till exempel till xor e och 3 är 1110 xor 0011 vilket är 1101 vilket är d. Om du har en tabell redo är beräkningen i princip omedelbar.

Nu upprepar du bara detta för alla siffror. Detta kan göras digitalt eftersom varje hex-siffra slutar exakt 4 bitar

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *