Jeg har en kommende eksamen der jeg kan bruke en enkel kalkulator. På noen eksempler på spørsmål stiller de oss til XOR to verdier (for AES rund nøkkel), og jeg vet hvordan jeg skal skrive det ut for hånd, men er det noen annen raskere måte da eksamen selvfølgelig er tidsbestemt.
Svar
Hvis du er heldig, kan definisjonen av «enkel kalkulator» omfatte alle ikke-grafiske kalkulatorer. I så fall kan du bruke en Casio FX-115ES Plus, som inkluderer heksadesimale og oktale basismodi, og har en XOR-operatør. Den kan fungere på grupper av oktetter på opptil 32 bits.
Hvis du ikke er så heldig, er XOR-tabellen din beste venn. Avhengig av hvor mange beregninger du trenger å utføre, kan det være raskere å lage en på et skrapeark under eksamen. Du kan til og med få lov til å ta en med deg.
Jeg hadde et krav om at en XOR-tabell skulle utføre raske beregninger på en trykt kodebok for kryptografisk sterk kommunikasjon over en offentlig talekanal. Det måtte også gjøres raskt uten bruk av datamaskin eller noe elektronisk utstyr, og måtte passe på et lite 4×6 ark i rommet under krypteringsteksten.
Jeg kom på flere metoder for å kondensere bordet og har det fortsatt brukbart. Hvis du er smart og ressurssterk, kan kunnskapen om hvordan du lager de kondenserte versjonene, gjøre at du raskt kan utføre mange XOR-beregninger. Det er et rekursivt mønster til den heksadesimale XOR-tabellen som kan utnyttes, tabellen over er fargekodet for å vise dette mønsteret, som strekker seg ned til de enkelte tegnene. Her er de kondenserte tabellene:
Mens tabellen ovenfor tar mindre plass, har den samme mengde tegn, og tar dermed omtrent like lang tid å opprette. Det kreves en enkel regel for å velge de riktige tegnene.
Neste nivå tar nå både halvparten av plassen til forrige, så vel som halvparten av tegnene. Regelen er mer kompleks, men noen få minutters øvelse gjør det nesten like raskt å bruke som hele bordet. Selv regelen kan forenkles med XOR, resultatet vil være riktig hvis XOR for regelvalget er 1.
Det endelige nivået er igjen halvparten av plassen og halvparten av tegnene (nesten) som forrige, mens det kreves en tilleggsregel for å få jobben gjort. Hvis du husker den rekursive strukturen og den grunnleggende utformingen av denne tabellen, kan du gjenskape den på under ett minutt med penn og papir.
Start med den indre kolonneoverskriften, først napp; 0 1 2 3 4 5 6 7
Legg deretter til den andre nissen, som er den første nissen + 8; 8 9 ABCDEF
Den ytre kolonneoverskriften er den indre kolonneoverskriften med vendte halvdeler
Den innerste radoverskriften er den første halvdelen av den indre kolonneoverskriften
Den ytre radoverskriften er den første halvdelen av den ytre kolonneoverskriften topptekst – Deretter fyller du ut tabellen med den rekursive strukturen, bygget fra den indre kolonneoverskriften.
Å lage den dobbeltkomprimerte tabellen utelater de ytre topptekstene, men bruker en full radoverskrift.
Et enkelt eksempel på trippeltabellen:
25 XOR B6
2 XB = [2a] X [3b] (1 2 2) = 9
Fordi 2 er den første nissen og B er den andre, bruker vi den andre nissen av [19]
5 X 6 = [5d] x [ 6e] (1 1 1) = 3
Fordi 5 er den første nissen og 6 er den første, bruker vi den første nissen av [3b]
Derfor 25 XOR B6 = 93
Svar
Prøv å konvertere heksadesimale tall til binære tall og utfør eksklusive ORs på hver eneste bit. Konverter deretter binære tall tilbake til heksadesimale tall.
Kommentarer
- Siden 16 er nøyaktig 2 ^ 4, kan du gjøre dette digitalt. Det vil si at du ikke ' ikke trenger å konvertere hele tallet til binært på en gang, du kan gjøre det ett siffer om gangen, xor, og deretter konvertere resultatet tilbake til hex
Svar
xoring 2 bits er enkelt.
Å konvertere et heksesifret tall til 4 bits er enkelt.
Kombinasjonen av disse to faktaene bør gjøre det enkelt å gjøre coring av et enkelt heksesiffer. Hvis du skriver ned en tabell for hvert siffer til binær (i en tidsbestemt test, om dette er verdt det eller ikke, avhenger av antall konverteringer du må gjøre), trenger du ikke å gjøre noen skriftlig beregning egentlig. For eksempel til xor e og 3 er 1110 xor 0011 som er 1101 som er d. Hvis du har en tabell klar, er beregningen i utgangspunktet øyeblikkelig.
Nå er det bare å gjenta dette for alle sifre. Dette kan gjøres siffermessig, ettersom hvert heksesifret resentser nøyaktig 4 biter