今期の講義科目のレポート課題(暗号解読)は,いつものように単一換字暗号でした.
昨日の授業前に答案を回収し,昼過ぎに解読結果と解説を,受講生向けに公開しました.
といったところで暗号文です.
QZIKSEWYYTBJTWZSQZKDZTLJTZSYEGYSJIQKDEOJ ETZHEDZTTEZEOJIQZWEOJIEQZIKSEOZOQZKGYOKO JIEQZIKSEOZEKTESQKDKETEXYIYDJRYSKIQZWEOJ IEQZIKSEOZWYIZKHJIEXZSZSESKDKOYRJTZGZKHQ ZDQZIKXZOYIYRJDKIZOZIZKHJIETZRZIKOJIEOYS SJEXZSYRYOYHJDKTZKDQZIKXZOYIYRJDKIZOZIJT DZKTYGZKHQZSESKOJRKXZQZKESKDKIZOZRYRZDEO JTZIQZKBETSJEDJBEDEJTSKXZOYIYRJDKIZOZTYL ZLJIZKHJIESQYTEIZKHJIEXZZRZEOZLZRYDYSJDK IZOZXZEERYSKEMMZKOQZKGYOKOJIEQZIKSEWYIZK HJIEXZKIJOYSYETEIZKHJIESQYWJTZWZKWKIKTZK DQZIKQYMJTYDKOJEXZSERJSKIZOZTEQZDEIZKHJI EXZZRZEOZLZRYDYSJDKIZOZXZEERYSKIZKHJIESE OJJDYDJDKRZTZQZDEKSETYKRZTZTZWZKHYZZIEEO ZEKIZKHJIESQYTZSZTOZIKIYTBQZKTEWYOYDYIEI YIJOJIZKHJIEXZLYTTJTSYSJDKIZOZXZTJDYERYS KSEIYSETYHYDYOQZKGYOKOJIEQZIKSEHYIETZKSK DKOYRJTEWYIZKHJIESQYXZOZIKOJESKDKIZOZOKR YDEYOZDEGQKSQZTHYBJTOJEOZTYDERYSK
解読にあたっての諸情報です.
- 原文は,書籍に収録された文章(日本語・敬体)の一部で,句読点などの記号類を取り除いてから,ローマ字で表記したものが平文です.
- ローマ字はヘボン式ではありません.訓令式に近いですが一部異なります.原文の助詞の「は」「を」は,平文では「ha」「wo」にしています.
- 原文の括弧書きが英語の場合には削除し,日本語の場合には残しています(括弧の記号は取り除いています).
- カタカナ書きの長音記号も取り除いています.「ペナルティー」は,平文では「penarutei」にしています.
- 平文文字のうち出現頻度が最も大きいのは「a」ではありません.
- 原文には「攻撃」が11回出現します.
原文は『マスタリングTCP/IP 情報セキュリティ編(第2版)』p.22の「「抑止」は」から「前提となります」までです.Pythonを用いた単一換字暗号の解読のコードと同様に,上記の暗号文を文字列として変数sに格納してから,「translate(str.maketrans('BDEGHIJKLMOQRSTWXYZ', 'zribgkeudptymsnhwao'))」により,平文を得ます.
提出期限の直前の授業の終了時に,学生が来ました.ヒントのうち「原文には「攻撃」が11回出現します.」をどのように使えばいいのか分からない,と尋ねてきました.「平文には「攻撃」をローマ字にしたものが11回出現します.」に読み替えてください,とヒントを出すと,それだけで理解し,自分の席に戻っていきました.
「攻撃」のローマ字表記は「kougeki」でして(「kogeki」では,うまくいきません),この1文字目と6文字目が同じ「k」であることは,暗号文では,「ある位置の文字と,その5つあとの文字が同じ」であることを意味します.そのような文字の並びを,暗号文から探すと,「IZKHJIE」が見つかり*1,I→k,Z→o,K→u,H→g,J→e,E→iを割り当てることができます.あとは1文字ずつ推定していきます.
昨年度の暗号解読は:https://takehikom.hateblo.jp/entry/2023/06/30/185115