簡単な電卓を使用できる次の試験があります。いくつかのサンプルの質問では、2つの値(AESラウンドキーの場合)をXORするように求められます。私はそれを手動で書き出す方法を知っていますが、もちろん試験の時間に合わせて他のより速い方法があります。
回答
運が良ければ、「単純な電卓」の定義には、すべての非グラフィック電卓が含まれる場合があります。その場合は、16進数と8進数の基数モードを含み、XOR演算子を備えたCasio FX-115ESPlusを使用できます。最大32ビットのオクテットのグループで動作できます。
運が悪ければ、XORテーブルが最適です。実行する必要のある計算の数によっては、試験中にスクラッチシートに計算を作成する方がはるかに高速な場合があります。持参することも許可されている場合があります。
パブリック音声チャネルを介した暗号的に強力な通信のために、印刷されたコードブックで迅速な計算を実行するXORテーブルが必要でした。また、コンピューターや電子機器を使用せずに迅速に行う必要があり、暗号文の下のスペースにある小さな4×6シートに収める必要がありました。
私はいくつかの方法を考え出しました。テーブルとまだそれを使用可能にします。あなたが賢くて機知に富んでいるなら、凝縮されたバージョンを作成する方法の知識はあなたが非常に速く多くのXOR計算を実行することを可能にすることができます。利用できる16進XORテーブルには再帰的なパターンがあります。上のテーブルは、このパターンを示すために色分けされており、個々の文字まで拡張されています。要約されたテーブルは次のとおりです。
上記のテーブルはスペースを取りませんが、文字数は同じであるため、作成にかかる時間はほぼ同じです。正しい文字を選択するには、簡単なルールが必要です。
次のレベルは、前のレベルの半分のスペースと半分の文字の両方を使用するようになりました。ルールはもっと複雑ですが、数分の練習でテーブル全体とほぼ同じくらい速く使用できます。ルールはXORで簡略化できますが、ルール選択のXORが1の場合、結果は正しくなります。
最終レベルは、前のレベルの半分のスペースと半分の文字(ほぼ)ですが、ジョブを実行するには追加のルールが必要です。このテーブルの再帰的な構造と基本的なレイアウトを覚えている場合は、ペンと紙を使って1分以内に再作成できます。
最初のニブルである、内側の列ヘッダーから始めます。 0 1 2 3 4 5 6 7
次に、最初のニブル+8である2番目のニブルを追加します。 8 9 ABCDEF
外側の列ヘッダーは半分が反転した内側の列ヘッダーです
内側の行ヘッダーは内側の列ヘッダーの前半です
外側の行ヘッダーは外側の列の前半ですヘッダー
次に、内側の列ヘッダーから構築された再帰構造をテーブルに入力します。
二重圧縮テーブルを作成すると、外側のヘッダーは省略されますが、完全な行ヘッダーが使用されます。
トリプルテーブルの1つの例:
25 XOR B6
2 XB = [2a] X [3b](1 2 2)= 9
2が1番目のニブルで、Bが2番目であるため、[19]
5 X 6 = [5d] x [の2番目のニブルを使用します。 6e](1 1 1)= 3
5が1番目のニブルで、6が1番目であるため、[3b]の1番目のニブルを使用します
したがって、25 XOR B6 = 93
回答
16進数を2進数に変換して、すべてのビットで排他的論理和を実行してみてください。次に、2進数を16進数に変換し直します。
コメント
- さらに、16は正確に2 ^ 4なので、これを数字単位で行うことができます。つまり、'整数を一度に2進数に変換する必要はありません。一度に1桁ずつ、xorを実行してから、結果を16進数に変換して戻すことができます。
回答
2ビットのxoringは簡単です。
16進数を4ビットに変換するのは簡単です。
これら2つの事実の組み合わせにより、1桁の16進数の排他的論理和が非常に簡単になります。各桁のテーブルを2進数に書き留める場合(時限テストでは、これが価値があるかどうかは、実行する必要のある変換の数によって異なります)、実際に計算を行う必要はありません。たとえば、xor eと3には、1110 xor 0011、つまり1101、つまりdがあります。テーブルの準備ができている場合、この計算は基本的に瞬時に行われます。
ここで、すべての桁に対してこれを繰り返します。これは、各16進数字が正確に4ビットを表すため、数字ごとに実行できます