内部鍵との排他的論理和を4ビット単位で実行するユニットA,B,Cから構成される装置がある。
この装置では,入力ビット列1101を与えると,出力ビット列0100が得られる。
ここで,ユニットBの内部鍵を変更したところ,出力ビット列が1111になった。
変更後のユニットBの内部鍵はどれか。
正答4
解説
正解は4です。
排他的論理和(XOR)は、同じビットどうしなら0、異なれば1になる演算です。
同じ値で2回XORをとると元に戻るので、出力側から逆算できます。
図では、ユニットAの内部鍵が0001、変更前のユニットBが0101、ユニットCが1101です。
変更前は1101、1100、1001、0100と変化し、出力0100と一致します。
【計算】
ユニットAの出力は、1101 XOR 0001=1100です。
変更後の出力1111にユニットCの鍵1101をXORすると、Cへの入力は0010と分かります。
ユニットBは1100を受け取って0010を出力するので、鍵は1100 XOR 0010=1110です。
検算すると、1100 XOR 1110=0010、0010 XOR 1101=1111となり一致します。
【選択肢別解説】
1:× 鍵が1011だと、Bの出力は0111、Cの出力は1010となり、1111になりません。
2:× 鍵が1100だと、Bの出力は0000、Cの出力は1101となり、1111になりません。
3:× 鍵が1101だと、Bの出力は0001、Cの出力は1100となり、1111になりません。
4:○ 鍵が1110だと、Bの出力は0010、Cの出力は1111となり、条件を満たします。
【ポイント】
XORには、同じ鍵で2回演算すると元に戻る性質があります。
この性質は暗号化と復号の基本として広く使われています。