Jeg har en kommende eksamen, hvor jeg kan bruge en simpel lommeregner. På nogle eksempler på spørgsmål stiller de os til XOR to værdier (for AES rund nøgle), og jeg ved hvordan man skriver det manuelt, men er der nogen anden hurtigere måde, da eksamen selvfølgelig er tidsbestemt.

Svar

Hvis du er heldig, kan definitionen af “simpel regnemaskine” omfatte alle ikke-grafiske regnemaskiner. I så fald kan du bruge en Casio FX-115ES Plus, som inkluderer hexadecimal og oktal basistilstand og har en XOR-operator. Det kan fungere på grupper af oktetter på op til 32 bit.

Hvis du ikke er så heldig, er XOR-tabellen din bedste ven. Afhængigt af hvor mange beregninger du skal udføre, kan det meget vel være hurtigere at oprette en på et bunden under eksamen. Du kan endda få lov til at medbringe en med dig.

XOR-tabel 0

Jeg havde et krav om, at en XOR-tabel skulle udføre hurtige beregninger på en trykt kodebog for kryptografisk stærk kommunikation over en offentlig stemmekanal. Det skulle også gøres hurtigt uden brug af en computer eller noget elektronisk udstyr og måtte passe på et lille 4×6 ark i rummet under krypteringsteksten.

Jeg kom på flere metoder til at kondensere bord og har det stadig brugbart. Hvis du er klog og opfindsom, kan viden om, hvordan du opretter de kondenserede versioner, give dig mulighed for meget hurtigt at udføre mange XOR-beregninger. Der er et rekursivt mønster til den hexadecimale XOR-tabel, som kan udnyttes, tabellen ovenfor er farvekodet for at vise dette mønster, der strækker sig ned til de enkelte tegn. Her er de kondenserede tabeller:

XOR-tabel 1

Mens ovenstående tabel tager mindre plads, har den samme mængde tegn og tager derfor omtrent samme tid at oprette. En simpel regel kræves for at vælge de korrekte tegn.

XOR-tabel 2

Det næste niveau tager nu både halvdelen af det foregående og halvdelen af tegnene. Reglen er mere kompleks, men et par minutters øvelse gør det næsten lige så hurtigt at bruge som hele bordet. Selv reglen kan forenkles med XOR, resultatet bliver korrekt, hvis XOR for regelvalg er 1.

XOR-tabel 3

Det endelige niveau er igen halvdelen af mellemrummet og halvdelen af tegnene (næsten) som det foregående, mens der kræves en yderligere regel for at få arbejdet gjort. Hvis du husker den rekursive struktur og det grundlæggende layout i denne tabel, kan du genskabe den på under et minut med en pen og papir.

Start med den indvendige kolonneoverskrift, først nibble; 0 1 2 3 4 5 6 7
Tilføj derefter den anden nippel, som er den første nibble + 8; 8 9 ABCDEF
Den ydre kolonneoverskrift er den indvendige kolonneoverskrift med halvdelene omvendt
Den indvendige rækkeoverskrift er den første halvdel af den indvendige kolonneoverskrift
Den ydre rækkeoverskrift er den første halvdel af den ydre kolonne header – Derefter udfylder du tabellen med den rekursive struktur, bygget fra den indre kolonneoverskrift.
Oprettelse af den dobbeltkomprimerede tabel udelader de ydre overskrifter, men bruger en fuld rækkeoverskrift.

Et enkelt eksempel på den tredobbelte tabel:

25 XOR B6
2 XB = [2a] X [3b] (1 2 2) = 9
Fordi 2 er den første bid og B er den anden, bruger vi den anden bid af [19]
5 X 6 = [5d] x [ 6e] (1 1 1) = 3
Da 5 er den første bid og 6 er den første, bruger vi den første bid af [3b]
Derfor 25 XOR B6 = 93

Svar

Prøv at konvertere hexadecimale tal til binære tal, og udfør eksklusive ORer på hver eneste bit. Konverter derefter de binære tal tilbage til hexadecimale tal.

Kommentarer

  • Da 16 desuden er nøjagtigt 2 ^ 4, kan du gøre dette digitalt. Det vil sige, at du ikke ' ikke skal konvertere hele tallet til binært på én gang, du kan gøre det et ciffer ad gangen, xor og derefter konvertere resultatet tilbage til hex

Svar

xoring 2 bits er let.
at konvertere et hexadecimalt tal til 4 bits er let.

Kombinationen af disse to fakta skal gøre det meget let at xore et enkelt hex-ciffer. Hvis du skriver en tabel ned for hvert ciffer til binært (i en tidsbestemt test, uanset om det er det værd eller ej, afhænger af antallet af konverteringer, du bliver nødt til at gøre), behøver du ikke virkelig foretage nogen skriftlig beregning. For eksempel til xor e og 3 er 1110 xor 0011, hvilket er 1101, hvilket er d. Hvis du har en tabel klar, er denne beregning grundlæggende øjeblikkelig.

Nu skal du bare gentage dette for alle cifre. Dette kan gøres digitalt, da hvert hexadecenter resenterer nøjagtigt 4 bits

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *