hogashi.*

日記から何から

QWERTYキーボードの行をいっこずらす暗号

 突然思いついたのでやってみた、 cleopatra3.dl;zgfz に暗号化できる。 QWERTY キーボードの行で、 1つ下の行の文字に置き換える暗号 (a は z に、 c は 3 になる)。

github.com

 Google で検索するのが下手なのかもだけど、前例がなさそうに見える (けど多分誰かがやってそう)。ひとまず小文字 (というかこの場合 Shift キーを押さない状態のキー) だけは実装した。最近こういう感じで Go の練習をしていて、 Map に素朴に辞書をつくってやってるけど、もうちょっと賢い実装方法があるかも。

 ちなみにこういう「ある字をある別の字に置き換える」暗号は 換字式暗号 - Wikipedia というらしい。シーザー暗号とかかなと思っていたら、意外とエニグマ暗号とかも一種の換字式暗号と書かれていて面白い。

さらに近代のエニグマ他に代表される機械式暗号も、変換ルールを機械の利用により複雑にする技巧を凝らした、換字式暗号の一種と言える。

https://ja.wikipedia.org/wiki/%E6%8F%9B%E5%AD%97%E5%BC%8F%E6%9A%97%E5%8F%B7

 骨に文字書かれた暗号なかったっけと思ったら ネイピアの骨 - Wikipediaスキュタレー - Wikipedia が混ざってた、そしてスキュタレーは転置式暗号といって別の種類らしい (ネイピアの骨のほうはそもそも暗号ではなくて計算の道具)。