暗号解読プロジェクト

弛まずHackを続けるサイバー空間 LdLuS へようこそ

更新日:2024/05/01

暗号解読プロジェクト

一口に暗号解読と言っても、世の中にはたくさんの暗号体系があります。ざっとまとめると以下のようになります。矢印の数字が進んでいくほど、強固な暗号になっていきます。ここでは、もっともシンプルなシフト暗号をスタート地点として、暗号解読の糸口を探っていきます。

暗号プログラム

まず暗号の仕組みが分かっていなければ、そもそも解読なんてできないので、実際に暗号を作ってみましょう。以下はC言語による暗号プログラムで、コマンドライン上で対話的に実行するタイプです。一番右はWEBで確認できます。

暗号体系 概要 C言語ソース 鍵の例 平文の例 暗号文の例 復号結果の例 PHPスクリプト
シフト暗号、シーザー暗号(shift) 概要 ソース - 平文 暗号 復号 WEBでおためし
アフィン暗号(affine) 概要 ソース - 平文 暗号 復号 WEBでおためし
換字暗号(substitution) 概要 ソース 平文 暗号 復号 WEBでおためし
ヴィジュネル暗号(vigenere) 概要 ソース - 平文 暗号 復号 WEBでおためし
ヒル暗号(hill) 概要 ソース - 平文 暗号 復号  

C言語ライブラリ

crypt.h matrix.h

暗号解読プログラム

今のところの構想としては、いきなり高尚な解読プログラムが作れるとも思えないので、

  • レベル1として、コンピュータを道具程度に扱って、主に人が解読できているかを判断するレベル
  • レベル2として、コンピュータが主に活躍するけど、まだ人手が必要というレベル
  • レベル3として、一から十までコンピュータが処理して、適合率を弾き出したりするレベル
と徐々に難易度を上げていく流れで考えています。




▼大学時代にこの本で暗号への理解を深めました。読み物としても面白いですよ。筆者が技術者ではなく、ジャーナリストなので読みやすいです。



- the end of this article -