レールフェンス暗号の暗号化と復号を実装してください。
レールフェンス暗号は転置暗号の一種で、その名前は暗号化の方法に由来します。 古代ギリシャ人もすでに使っていました。
レールフェンス暗号では、メッセージを架空のフェンスのレールに順に下向きに書いていき、一番下まで来たら上向きに進みます(ジグザグのように)。 最後に、メッセージを行ごとに読み取ります。
たとえば、3本のレールとメッセージ"WE ARE DISCOVERED FLEE AT ONCE"を使うと、暗号化する人は次のように書き出します。
W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .
次に、次のように読み取ります。
WECRLTEERDSOEEFEAOCAIVDEN
メッセージを復号するには、ジグザグの形を用意し、暗号文を行に沿って埋めていきます。
? . . . ? . . . ? . . . ? . . . ? . . . ? . . . ?
. ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? .
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .
1行目には7つのマスがあり、"WECRLTE"を入れることができます。
W . . . E . . . C . . . R . . . L . . . T . . . E
. ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? .
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .
次に、2行目に"ERDSOEEFEAOC"を入れます。
W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .
最後の行には"AIVDEN"が残ります。
W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .
この状態でジグザグの形に沿って読むと、元のメッセージを読み取ることができます。
Exercismに登録すれば、37個のコンセプト159個の演習、そして本物の人間によるメンタリングとともに、JavaScriptを学んでマスターできます。すべて無料です。