セキュリティには鍵がキーになる!
はじめに
2025年10月のプロジェクトマネージャ試験受験を終え、2026年春の情報処理安全確保支援士に向けて勉強中です。
セキュリティに関して無知であるため、資格勉強の傍ら暗号技術入門 第3版 秘密の国のアリスを読んでいます。
本記事は、そんなセキュリティ初心者による読書感想文です。
目的
歴史上使われてきた暗号技術やそんな暗号技術を解読するための技術を勉強します。
対象者
今まで使われてきた暗号技術やその解読に用いられてきた技術について知りたい方を対象としています。
シーザー暗号(CaesarCipher)
ジュリアス・シーザーが使っていたといわれる暗号です。
平文を一定の文字数だけ「ずらす」ことによって暗号化を行います。
下記「イメージ」はシーザー暗号を用いて、鍵を3とした時のイメージです。3文字ずつずれているのがわかると思います。
復号化のときは、3文字というカギを用いて暗号化後の文字列を3文字ずつ戻してあげる必要があります。
しかし、シーザー暗号はブルートフォース攻撃(= BruteForceAttack)によって解読できてしまいます。
なぜなら、シーザー暗号はずらす文字数がカギだからです。つまり、アルファベットの文字数分(26文字)が鍵の数であることを指しているからです。
例えば、鍵0(= 文字をずらさない)で復号、鍵1(= 1文字ずらす)で復号・・・というように鍵を順々に試すことで、現実的な時間内で解読できてしまいます。
ブルートフォース攻撃
直訳すると、「力ずくの攻撃」という意味となり、全ての鍵を試してみるという攻撃法です。
また、全数探索(= ExhaustiveSearch)や総当たり法、しらみつぶし法とも呼ばれます。
単一換字暗号
平文の文字列をずらすことで暗号文を作るのがシーザー暗号であったのに対して、文字と文字を一対一の対応表を用いた暗号を単一換字暗号(= SimpleSubstitutionCipher)です。
単一換字暗号はブルートフォース攻撃では解読が難しいです。
なぜなら、シーザー暗号に比べてはるかに多くの鍵候補をもっているからです。
そのため、単一換字暗号は頻度分析という解読方法によって解読します。
頻度分析
これは、暗号文に使われている文字の出現頻度を調べ、文字から英単語を組み合わせることで解読します。
この解読法でのポイントは、最も使われる頻度が高い文字と最も使われる頻度が低い文字です。
後は、自身の英単語能力と暗号文と文字の出現頻度を照らし合わせながら、暗号文を解読します。
エニグマ
エニグマ(Enigma)とは、ドイツのしぇるびうすによって20世紀初めに発明された暗号化・復号化を行う機械です。
エニグマは商用として使われていましたが、ナチスドイツの時代にドイツ国防軍で採用され。改良後に軍用として使われることになりました。
送信者と受信者間で事前に国防軍鍵表という日替わり鍵が記載された冊子を共有し、エニグマを使う際にはこの冊子をもとにエニグマを設定します。
暗号/復号化の仕組み
エニグマは今までとは異なり、少々特殊な構造をしています。
そもそもエニグマは、タイプライターと歯車と電池と電球を組み合わせたような機械だからです。
エニグマはキーによって入力された内容がプラグボードと3つのローターを通ってランプとして出力されます。
各部品の役割は下記の通りです。
- プラグボード:一日の初めに設定した後は変更しない
- ローター1:打鍵ごとに4分の1回転する
- ローター2:ローター1の1回転ごとに4分の1回転する
- ローター3:ローター2の1回転ごとに4分の1回転する
詳しくは本書をご参照ください。
安全な暗号とは?
エニグマは当時解読が不可能な暗号機械と考えられていました。
当時はフランスやイギリスの解読者がスパイ活動等により、エニグマの設計書を入手しましたが、結局解読ができませんでした。
これは、エニグマの設計が「隠すことによるセキュリティ(SecurityByObscurity)」に頼っていなかったからです。
つまり、たとえエニグマの設計が分かっていたとしても、強力な鍵があるからこそ、解読ができなかったのです。
したがって、安全な暗号には、複雑な暗号プログラムよりも強力な鍵が必要と考えられます。
