塵芥回顧録

なるべく更新していきたいが、ネタがない。

エニグマについて

store.steampowered.com

Cypherでは5章目でエニグマと呼ばれる暗号機に組み込まれているシステム
が出現します。有名な暗号機だけあって複雑なシステムとなっており、ゲーム中でも解説はあるものの、入力と出力とスクランブラー、リフレクターのみ書かれているため難解です。

この記事ではそんなエニグマの暗号化と復元の方法について説明していこうかと思います。

 

 

エニグマ

Cypherでのエニグマでは以下のスクランブラーとリフレクターが使用されている

スクランブラー1:UWYGADFPVZBECKMTHXSLRINQOJ

リフレクター:YRUHQSLDPXNGOKMIEBFZCWVJAT

これをinputからoutputの流れで表すと以下のようになる

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z input
                                                     
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Scrambler1
U W Y G A D F P V Z B E C K M T H X S L R I N Q O J  
                                                     
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Reflector
Y R U H Q S L D P X N G O K M I E B F Z C W V J A T  
                                                     
U W Y G A D F P V Z B E C K M T H X S L R I N Q O J Scrambler1
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  
                                                     
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z output

ここで、文字数が変わる毎にスクランブラーは左に移動し、リフレクターは移動しないことに注意。また、1文字目は初期位置から1つ動かした時の文字となる。

エニグマの暗号化

先ほどのエニグマでAAAAを暗号化した場合を考える。

エニグマ1文字目

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z input
                                                   
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A Scrambler1
W Y G A D F P V Z B E C K M T H X S L R I N Q O J U  
                                                   
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Reflector
Y R U H Q S L D P X N G O K M I E B F Z C W V J A T  
                                                   
W Y G A D F P V Z B E C K M T H X S L R I N Q O J U Scrambler1
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A  
                                                   
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z output

エニグマ2文字目

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z input
                                                   
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B Scrambler1
Y G A D F P V Z B E C K M T H X S L R I N Q O J U W  
                                                   
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Reflector
Y R U H Q S L D P X N G O K M I E B F Z C W V J A T  
                                                   
Y G A D F P V Z B E C K M T H X S L R I N Q O J U W Scrambler1
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B  
                                                   
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z output

エニグマ3文字目

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z input
                                                   
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Scrambler1
G A D F P V Z B E C K M T H X S L R I N Q O J U W Y  
                                                   
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Reflector
Y R U H Q S L D P X N G O K M I E B F Z C W V J A T  
                                                   
G A D F P V Z B E C K M T H X S L R I N Q O J U W Y Scrambler1
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C  
                                                   
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z output

エニグマ4文字目

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z input
                                                   
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D Scrambler1
A D F P V Z B E C K M T H X S L R I N Q O J U W Y G  
                                                   
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Reflector
Y R U H Q S L D P X N G O K M I E B F Z C W V J A T  
                                                   
A D F P V Z B E C K M T H X S L R I N Q O J U W Y G Scrambler1
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D  
                                                   
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z output

以上より(平文)AAAA→(暗号文)NRNLとなる。

エニグマの復元

先ほどの画像の1文字目から4文字目にかけてNRNLと入力した場合、出力はAAAAとなる。つまり暗号化と復号化の手順は同じであることが分かる。これはエニグマにあるリフレクターの特徴であり、エニグマの弱点でもあると言える。

Cypherにおけるエニグマと通常のエニグマ

Cypherエニグマではスクランブラーが3個出てくる。ゲーム中での問題では1つめのスクランブラーだけ動かしておけば良いが、文字が長くなるとスクランブラー2個目3個目も動かす必要性が出てくる。
1個目のスクランブラー(26文字で1周期)
2個目のスクランブラー(1個目のスクランブラーが1周したら1つ動く=676文字で1周期)
3個目のスクランブラー(2個目のスクランブラーが1周したら1つ動く=17576文字で1周期)