漣からの挑戦状~君にこの暗号が解けるか!?~
この企画の趣旨
- TSとはあんまり関係のない話題の提供?
- 眺めて「へぇ~」と思っていただければ幸い.
- 「パズル」感覚で楽しんでいただけたら本望です.
企画の流れ
- 問題の提示
- 2週間程度をかけて漣から「解読へのアプローチ」を提示
- 「解読へのアプローチ」は,「アプローチ方法の提示」→「その方法の当暗号への適用」のように小問題形式をとる
- 小問題をたどっていくことで,当問題に関する知識を持たなくても解答にたどり着ける様にする予定
問題
- 次の暗号文を解読せよ.
AGHHJEHZEOTFJGPPNTTHEHFSVGCSFGHHSVEFJOGS
AEQEGCJTPSZSHSFGASPEQPTZJCTLNTTHGFEASOJK
JOGPTNGOJISHGQEAGOTVJLNSQQJBJTVEWSQSPNGH
GPNGQSASGHSPSGPSZSHSFGQJPSCEIGHSPSG
AEQEGCJTPSZSHSFGASPEQPTZJCTLNTTHGFEASOJK
JOGPTNGOJISHGQEAGOTVJLNSQQJBJTVEWSQSPNGH
GPNGQSASGHSPSGPSZSHSFGQJPSCEIGHSPSG
注1)この暗号文の平文はローマ字表記された日本語文である.
注2)平文のローマ字中には,ファ(fa)やヴァ(va)など,元々の日本語にない表記は存在しない.
注3)暗号方式は,キーフレーズを使用した単アルファベット換字式である.
注2)平文のローマ字中には,ファ(fa)やヴァ(va)など,元々の日本語にない表記は存在しない.
注3)暗号方式は,キーフレーズを使用した単アルファベット換字式である.
成功報酬
- 「解読へのアプローチ」において暗号文の解読を終える前に,最初に暗号文に示された行動をとったものに,「漣に労働を課す権利」を進呈.
用語の説明
用語 | 説明 |
---|---|
平文 | 暗号化される前の文.普通に読める状態の文である. |
換字式暗号 | 暗号の方法の1つで,平文の文字を別の文字に置き換える暗号化を行ったもの. |
単アルファベット換字式暗号 | 換字式暗号のうち,平文中の同じ文字は常に暗号文中でも同じ文字(平文とは違う文字だが)になる暗号.例えば,平文でaという文字が暗号文中では常にFとなる,など. |
キーフレーズ | この場合,平文→暗号文へ変換するときの文字の置き換え表を作るときに,あるフレーズを使うことを指す. |
- 単アルファベット換字式暗号の例
- 例えばキーフレーズを"SAZANAMI"(漣)とする.
- "SAZANAMI"から重複する文字を除き"SAZNMI"とする.
- フレーズに使われなかった文字をフレーズの後ろに順番に並べたものを,置き換え表とする.
- この置き換え表により"this is a pen"は"RCDQDQSLMJ"と暗号化される.
- 通例に習い,平文を小文字(abc...)で,暗号文を大文字(ABC...)で表記している.
置き換え表
平文中の文字 | abcdefghijklmnopqrstuvwxyz |
暗号文中の文字 | SAZNMIBCDEFGHJKLOPQRTUVWXY |
解読へのアプローチ
アプローチ1:母音と子音を区別しよう
ポイント:出現頻度に着目!
- 平文は「日本語のローマ字表記」である.よって,かな1文字に対して「子音-母音」となるのが基本形である.パターンは次のものにほぼ限られる.このうち,圧倒的に多いのは表の上2つである.
表A.1 ローマ字表記されたかな1文字の構造
配置パターン | 例 |
---|---|
母音のみ | a,i,u,e,o(あいうえお) |
子音+母音 | ka,su,など(普通の文字) |
子音+子音+母音 | kya,hya,など(小さい「ゃゅょ」) |
pittariなど(小さい「っ」) | |
shi,tsu,など(ヘボン式表記の一部) | |
sonnaなど(「ん」+「子音-母音」型文字) | |
子音+子音+子音+母音 | yosshaなど(↑の組合せタイプ) |
- 子音を表す文字と,母音を表す文字を区別することで,かな1文字を明らかにできる.
- 母音は「aiueo」の5字.子音は「kstnhmyrw…」など9字以上.「子音-母音-子音-母音-…」と続くとなると,子音の数=母音の数.さて,それぞれの出現頻度は?
- 「子音-母音-子音-母音-…」 さて,子音の前後には何が?母音の前後には何が?
- 暗号文155文字の頻度分析(出現頻度を調べて分析する行為)を手作業で行うのは面倒であろう.よって,各文字の出現頻度をここに記しておく(もし自分でやってみたいという方は,ここで答えあわせをしてみると良い).
表A.2 1文字の出現頻度表
A | B | C | D | E | F | G | H | I | J | K | L | M |
6 | 1 | 4 | 0 | 11 | 7 | 20 | 14 | 2 | 12 | 1 | 2 | 0 |
N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
6 | 6 | 12 | 8 | 0 | 23 | 11 | 0 | 4 | 1 | 0 | 0 | 4 |
この表の見方:G欄には「20」とある.暗号文中に文字「G」が20回現れていることを示している.
表A.3 連続する2文字の出現頻度表
↓先の文字 ↓後の文字↓ | ||||||||||||||||||||
A | B | C | E | F | G | H | I | J | K | L | N | O | P | Q | S | T | V | W | Z | |
A | 1 | 2 | 3 | |||||||||||||||||
B | 1 | |||||||||||||||||||
C | 1 | 1 | 1 | 1 | ||||||||||||||||
E | 2 | 1 | 1 | 2 | 1 | 1 | 2 | 1 | ||||||||||||
F | 1 | 3 | 2 | 1 | ||||||||||||||||
G | 1 | 2 | 1 | 5 | 2 | 4 | 3 | 1 | ||||||||||||
H | 1 | 1 | 3 | 2 | 1 | 5 | 1 | |||||||||||||
I | 1 | 1 | ||||||||||||||||||
J | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | ||||||||||
K | 1 | |||||||||||||||||||
L | 2 | |||||||||||||||||||
N | 3 | 1 | 2 | |||||||||||||||||
O | 2 | 2 | 2 | |||||||||||||||||
P | 1 | 3 | 1 | 5 | 2 | |||||||||||||||
Q | 2 | 2 | 1 | 1 | 2 | |||||||||||||||
S | 2 | 1 | 3 | 3 | 3 | 1 | 4 | 2 | 2 | 2 | ||||||||||
T | 1 | 2 | 1 | 1 | 1 | 2 | 2 | 1 | ||||||||||||
V | 2 | 1 | 1 | |||||||||||||||||
W | 1 | |||||||||||||||||||
Z | 1 | 1 | 2 | |||||||||||||||||
A | B | C | E | F | G | H | I | J | K | L | N | O | P | Q | S | T | V | W | Z |
この表の見方:左側Fの行と,上側Gの列の交差する場所には「3」とある.
暗号文中に「~FG~」いう2文字の連続が3回現れていることを示している.
暗号文中に「~FG~」いう2文字の連続が3回現れていることを示している.
解答編
- 母音の文字数=子音の文字数,母音を表す文字の種類<子音を表す文字の種類
- よって,母音を表す文字は,子音に比べてたくさん出てくると予想できる.
- 表A.2より,10回以上現れている文字は「EGHJPST」の7文字.これらを母音候補としよう.
- 「子音-母音-子音-母音-…」であれば,子音の前後には母音が,母音の前後には子音があるはず.もちろん,「母音-母音」もあり得るので,母音の前後には母音もあるだろう.
- 「EGHJPST」を表A.3から取り出したものを表A.4に示す.
表A.4 母音候補の後文字出現数表
↓先の文字 ↓後の文字↓ | 数 | ||||||||||||||||||||
A | B | C | E | F | G | H | I | J | K | L | N | O | P | Q | S | T | V | W | Z | ||
E | 2 | 1 | 1 | 2 | 1 | 1 | 2 | 1 | 8 | ||||||||||||
G | 1 | 2 | 1 | 5 | 2 | 4 | 3 | 1 | 8 | ||||||||||||
H | 1 | 1 | 3 | 2 | 1 | 5 | 1 | 7 | |||||||||||||
J | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 10 | ||||||||||
P | 1 | 3 | 1 | 5 | 2 | 5 | |||||||||||||||
S | 2 | 1 | 3 | 3 | 3 | 1 | 4 | 2 | 2 | 2 | 10 | ||||||||||
T | 1 | 2 | 1 | 1 | 1 | 2 | 2 | 1 | 8 | ||||||||||||
数 | 3 | 4 | 5 | 1 | 2 | 5 | 3 | 3 |
- 表A.4の右端の数が後ろに来ている文字の種類の数である.
- Pは5種しかないので,子音と考えよう.
- Pの前に来ることがあるGJSTはとりあえず母音と考えてみよう.
- ここで,母音と仮定した文字(GJST)を"-"で置き換えた暗号文を書くと,次のようになる.
A-HH-EHZEO-F--PPN--HEHF-V-C-F-HH-VEF-O--AEQE-C--P-Z-H-F
-A---PEQP-Z-C-LN--H-FEA-O-K-O-P-N-O-I-H-QEA-O-V-LN-QQ-B--
VEW-Q-PN-H-PN-Q-A--H-P--P-Z-H-F-Q-P-CEI-H-P--
-A---PEQP-Z-C-LN--H-FEA-O-K-O-P-N-O-I-H-QEA-O-V-LN-QQ-B--
VEW-Q-PN-H-PN-Q-A--H-P--P-Z-H-F-Q-P-CEI-H-P--
- 子音4字以上が連続することはめったにない.赤文字には母音が含まれていると推測される.残りの母音候補はEHであり,赤文字中にはEしかない節があるのでEを母音と考える.
- EGJSTの5文字を"-"で置き換えた暗号文は次のようになる.
A-HH--HZ-O-F--PPN--H-HF-V-C-F-HH-V-F-O--A-Q--C--P-Z-H-F
-A-P-QP-Z-C-LN--H-F-A-O-K-O-P-N-O-I-H-Q-A-O-V-LN-QQ-B--
V-W-Q-PN-H-PN-Q-A--H-P--P-Z-H-F-Q-P-C-I-H-P--
-A-P-QP-Z-C-LN--H-F-A-O-K-O-P-N-O-I-H-Q-A-O-V-LN-QQ-B--
V-W-Q-PN-H-PN-Q-A--H-P--P-Z-H-F-Q-P-C-I-H-P--
- この文では,多数の子音の連続・母音の連続は見られない.よって「EGJSTが母音を表す」という推測は正しいようだ.
アプローチ2:特徴的な形のかなを解読しよう
ポイント:ローマ字表記されたかなの形に着目
- 日本語のローマ字表を表A.5に示す.
- ×印は,その子音と母音を組み合わせた文字がないことを表す.
- 空欄は,その子音と母音を組み合わせた文字が存在することを表す.
- ローマ字は,ヘボン式の表記を表す.
表A.5 ローマ字表
a | i | u | e | o | ya | yu | yo | |
(無) | × | × | × | |||||
k | ||||||||
s | shi | sha | shu | sho | ||||
t | chi | tsu | cha | chu | cho | |||
n | ||||||||
h | fu | |||||||
m | ||||||||
y | × | × | × | × | × | |||
r | ||||||||
w | × | × | × | × | × | × | ||
g | ||||||||
z | ji | ja | ju | jo | ||||
d | ||||||||
b | ||||||||
p | ||||||||
n |
- 各文字を使用形態で分けると表A.6のようになる.
- 暗号文中で使われていない文字の数は?
- 暗号文はヘボン式?訓令式(非ヘボン式)?
表A.6 使用形態別の文字
母音 | 5 | aiueo |
普通の子音 | 14 | kstnhmyrwgzdbp |
ヘボン式のみ | 3 | cfj |
使用されない | 4 | lqvx |
- 暗号文中で子音が連続していると考えられる部分は,一体何を表しているのだろう?
- 小さい「っ」? ヘボン式の"shi"? それとも"sonna"(そんな)※や"gyaaa"(ぎゃああ)なのだろうか?
※6/5ギルドチャット内で「"ルンパ"が"runnpa"となる」旨の発言をしましたが,それは誤りであり.正しくは"runpa"です.申し訳ありませんでした.皆様に混乱を与えましたことをお詫びし,ここに訂正させていただきます.
解答編
- 暗号文中に現れない文字は"DMRUXY"の6文字.
- もし訓令式ローマ字であるならば,少なくとも7文字が使用されない.
- よって暗号文はヘボン式ローマ字である.
- 暗号文中で子音が連続している部分を探す.同じ文字の連続は,小さい「っ」か"nn"であるので,同じ文字の連続は除くと,次の5通りが見つかる.
- "HZ","PN","HF","QP","LN"
- このように子音が連続するパターンは次のものである.(ここに,"*"は任意の子音を表す)
- "ch","sh","ts(u)","*y","n*"
- 暗号文中の子音の連続が,どのパターンであるか特定していく.
- 2文字目が同じ文字となる"LN","PN"から攻めよう.
- "LN"と"PN"は,"ch","sh","nh"のうちの2つであるか,または"*y"である.
- 表A.2,表A.3より,文字"L"は暗号文中に2回出現するが,2回ともに"LN"である.また,文字"N"の前には"LPT"の3文字しか出現しない.
- もし,文字"N"が"y"であるならば,"N"の前には母音が多数あるはずである.しかし,"N"の前には母音"T"がただ1度現れるだけである.
- ローマ字では,"c"は"ch"のパターンでしか現れない.
- しかるに,"LN"="ch"と考えられる.
- 表A.3より,文字"P"の後ろに現れる文字は母音"EST"および子音"N"(=h)である.(+「っ」と思われる"PP")
- "n"(ん)の後ろには多数の子音があると思われる.
- よって,"PN"="sh"が妥当であろう.
- 次に"QP"を見てみる.
- "P"="s"としたから,"QP"="Qs"である.よって"ts"または"ns"である.
- 表A.3より,文字"Q"の後ろに現れる文字は母音"EJS"および子音"P"(=s)である.(+「っ」と思われる"QQ")
- よって↑と同じく,"QP"="ts"と考えられる.
- 残りは,"HZ","HF"である.
- これは"n*"となる.すなわち,"H"="n"である.ここでは"Z"と"F"を特定するには至らない.
- 2文字目が同じ文字となる"LN","PN"から攻めよう.
- 以上より,表A.7を得る.
表A.7 子音の連続部分より特定した置き換え表
L | N | H | P | Q |
c | h | n | s | t |
- ここまでの暗号文の解読結果は次の通り.
AGnnJEnZEOTFJGsshTTnEnFSVGCSFGnnSVEFJOGSAEtEGCJTsSZSnSF
GASsEtsTZJCTchTTnGFEASOJKJOGsThGOJISnGtEAGOTVJchSttJBJT
VEWStSshGnGshGtSASGnSsSGsSZSnSFGtJsSCEIGnSsSG
GASsEtsTZJCTchTTnGFEASOJKJOGsThGOJISnGtEAGOTVJchSttJBJT
VEWStSshGnGshGtSASGnSsSGsSZSnSFGtJsSCEIGnSsSG
- 母音を"-"で表現すると次の通り.
A-nn--nZ-O-F--ssh--n-nF-V-C-F-nn-V-F-O--A-t--C--s-Z-n-F
-A-s-ts-Z-C-ch--n-F-A-O-K-O-s-h-O-I-n-t-A-O-V-ch-tt-B--
V-W-t-sh-n-sh-t-A--n-s--s-Z-n-F-t-s-C-I-n-s--
-A-s-ts-Z-C-ch--n-F-A-O-K-O-s-h-O-I-n-t-A-O-V-ch-tt-B--
V-W-t-sh-n-sh-t-A--n-s--s-Z-n-F-t-s-C-I-n-s--
アプローチ3:各種条件を総合し,芋づる式に文字を特定しよう
ポイント:キーフレーズ式の換字表の構造に注目
- アプローチ2より,すでに一つの母音が特定されている.すなわち,"QP"="ts"であるから,"QPT"="tsu"である.
- これまでに特定した文字で換字表(置き換え表)をつくると,次のようになる.
??L????N?????H????PQT?????:暗号文中の文字
abcdefghijklmnopqrstuvwxyz:平文中の文字
abcdefghijklmnopqrstuvwxyz:平文中の文字
- 今一度,キーフレーズ式の換字表の構造を思い出そう.(用語説明参照)
- 先頭部分にキーフレーズが並ぶ.
- その後ろにキーフレーズに用いられなかった文字がアルファベット順で並ぶ.
- この暗号文の換字表は,どこまでがキーフレーズでどこからが残りの文字だろう?
- アルファベットの最後の方の文字は,(キーフレーズの文字を除いた)アルファベット順で並んでいるだろう.
- "T"の後ろのアルファベットは"UVWXYZ"の6文字.換字表で"T"の後ろの空欄は5文字.つまり,"UVWXYZ"のうち1文字がキーフレーズに使われ,残りが"T"の後ろに順番に並んでいるのだろう.
- 換字表では"PQT"と並んでいる.よってQとTの間の"R","S"はキーフレーズの文字だろう.
- "H"と"P"の間のアルファベットは"IJKLMNO"の7文字.このうち"L","N"はすでに判明している(これらはキーフレーズの文字である)ので残りは5文字.換字表の"H"と"P"の間の空欄は4文字.つまり,"IJKMO"のうち1文字がキーフレーズに使われ,残りが"H"と"P"の間に順番に並んでいるのだろう.
- "N"はキーフレーズの文字であったから,少なくとも先頭から"N"まではキーフレーズであり,少なくとも"H"以降は残りの文字がアルファベット順に並んでいることになる.
- 上記のキーフレーズ式の換字表の構造だけでは,これ以上進めない.しかし,我々は今までの解読の過程でさまざまな情報を得ている.
- "EGJST"は母音であった.これらは平文の母音に対応しなければならない.
- "DMRUXY"は暗号文中に一度も現れない.これらのうち4つは,ローマ字表記したときに絶対に使用されない文字"lqvx"に対応しているだろう.
- これまでの情報を簡単に図にまとめると次のようになる.
_________v---------+
_ABCDEFGRS _ IJKMO |UVWXYZ :この区間に入る
<-----------> <--> | <---> : 可能性のある文字
??L????N?????H????PQT????? :暗号文中の文字
abcdefghijklmnopqrstuvwxyz :平文中の文字
@___@___@__*__@_*___@*_*__ :文字の種類
@:母音 *:使われない文字 _:その他
_ABCDEFGRS _ IJKMO |UVWXYZ :この区間に入る
<-----------> <--> | <---> : 可能性のある文字
??L????N?????H????PQT????? :暗号文中の文字
abcdefghijklmnopqrstuvwxyz :平文中の文字
@___@___@__*__@_*___@*_*__ :文字の種類
@:母音 *:使われない文字 _:その他
- 文字を特定していけばいくほど,平文が明らかとなっていく.明らかとなった平文から未解読部分がどのような文章であるか,推測できることもあるだろう.
- ここまでくれば,こんな暗号文などただのパズルである.最初に暗号文を見たときは,その解読はベルリンの壁のように高く・頑丈に見えたかもしれない.しかし,最早ベルリンの壁は崩壊するときが来たのだ!
- さぁ,いけ我が愛すべき同胞たちよ.暗号文を白日の下にさらし出し,この手に自由を掴もうではないかっ!
解答編
- まずは"vwxyz"の部分に注目する.
- "v"と"x"には使用されない文字であるから,出現数0の文字が対応するはず.
- "UVWXYZ"の中で出現しないのは"UXY"の3文字."v"と"x"の間には"w"が入らなければいけないから,U=v,X=xであろう.
- よって,Y=y,Z=zも確定する.
- 次に"opqr"の部分に注目する.
- "o"には母音候補文字が,"q"には出現数0の文字が対応するはず.
- "IJKMO"の中で母音候補は"J"のみ,出現数0は"M"のみ.よって,J=o,M=qである.
- ゆえに残りは,K=p,O=rとなる.
- ここまでの解読結果から換字表を作ると次のようになる.
_ _ _ _ _v---------+
_ABCDEFGRSI<-+ _ _ | VW _ _:この区間に入る
<----------->| _ _ |_ ^ _ _: 可能性のある文字
??L????N?????HJKMOPQTU?XYZ :暗号文中の文字
abcdefghijklmnopqrstuvwxyz :平文中の文字
@___@___@__*__@_*___@*_*__ :文字の種類
_ABCDEFGRSI<-+ _ _ | VW _ _:この区間に入る
<----------->| _ _ |_ ^ _ _: 可能性のある文字
??L????N?????HJKMOPQTU?XYZ :暗号文中の文字
abcdefghijklmnopqrstuvwxyz :平文中の文字
@___@___@__*__@_*___@*_*__ :文字の種類
- "w"に対応するのは"V","W"のいずれかである.
- "w"は母音"a","o"にしか接続しない.
- "V"は母音3種"EGJ"と接続しているので"w"ではない.よって,W=w.
- 続いて"H"の前にもフレーズに使用されなかった文字がアルファベット順に並んでいると仮定してみよう.
- "l"には出現数0の文字が対応するはず.未使用文字で出現数0なのは"D","R"の2文字.
- この部分がフレーズでないとすると,D=lとなる.
- すると"m"は"EFG"のいずれかである.しかし,"EG"は母音候補であるから"m"ではない.よって,F=mである.
- "D"の前はフレーズでないとすれば"ABC"となる.しかし,"i"は母音であるから"A"ではない.ひとまず,B=j,C=kとしよう.
- 以上,j~mへの当てはめは仮定である.この仮定を含む解読結果から換字表を作ると次のようになる.
_AEGRSIV _ _ _ _ _ _ _ _ _ :この区間に入る
<-------> _ _ _ _ _ _ _ _ _: 可能性のある文字
??L????N?BCDFHJKMOPQTUWXYZ :暗号文中の文字
abcdefghijklmnopqrstuvwxyz :平文中の文字
@___@___@__*__@_*___@*_*__ :文字の種類
<-------> _ _ _ _ _ _ _ _ _: 可能性のある文字
??L????N?BCDFHJKMOPQTUWXYZ :暗号文中の文字
abcdefghijklmnopqrstuvwxyz :平文中の文字
@___@___@__*__@_*___@*_*__ :文字の種類
- ここまでの暗号文の解読は次のようになる.
- 未確定の母音候補"EGS"を区別するため,それぞれ"@-\"で置き換えてある.
AGHHJEHZEOTFJGPPNTTHEHFSVGCSFGHHSVEFJOGSAEQEGCJTPSZSHSF
A-nno@nz@rumo-sshuun@nm\V-k\m-nn\V@mor-\A@t@-kous\z\n\m
A-nno@nz@rumo-sshuun@nm\V-k\m-nn\V@mor-\A@t@-kous\z\n\m
GASPEQPTZJCTLNTTHGFEASOJKJOGPTNGOJISHGQEAGOTVJLNSQQJBJT
-A\s@tsuzokuchuun-m@A\ropor-suh-roI\n-t@A-ruVoch\ttojou
-A\s@tsuzokuchuun-m@A\ropor-suh-roI\n-t@A-ruVoch\ttojou
VEWSQSPNGHGPNGQSASGHSPSGPSZSHSFGQJPSCEIGHSPSG
V@w\t\sh-n-sh-t\A\-n\s\-s\z\n\m-tos\k@I-n\s\-
V@w\t\sh-n-sh-t\A\-n\s\-s\z\n\m-tos\k@I-n\s\-
- 残りは解読済みの部分から推測していこう.
- "w"の後ろの母音"S"は,"a"または"o"であった.すでにJ=oと決まったので,S=a.
- "sh"の後ろに2度現れる母音"G"は"e"ではない.未確定の母音は"ie"の2文字であるから,G=i.
- よって,E=eも確定する.
- ここまでの暗号文の解読は次のようになる.残りは4文字だけである.
AGHHJEHZEOTFJGPPNTTHEHFSVGCSFGHHSVEFJOGSAEQEGCJTPSZSHSF
AinnoenzerumoisshuunenmaVikaminnaVemoriaAeteikousazanam
AinnoenzerumoisshuunenmaVikaminnaVemoriaAeteikousazanam
GASPEQPTZJCTLNTTHGFEASOJKJOGPTNGOJISHGQEAGOTVJLNSQQJBJT
iAasetsuzokuchuunimeAaroporisuhiroIaniteAiruVochattojou
iAasetsuzokuchuunimeAaroporisuhiroIaniteAiruVochattojou
VEWSQSPNGHGPNGQSASGHSPSGPSZSHSFGQJPSCEIGHSPSG
VewatashinishitaAainasaisazanamitosakeIinasai
VewatashinishitaAainasaisazanamitosakeIinasai
- "Ainnoenzerumo"=銀のエンゼル,"meAaroporisuhiroIa"=メガロポリス広場,であることは容易に想像できる.
- よって,A=g,I=bである.
- 残りも文意から,V=dとわかる.
- 使用されない最後の1文字は,R=fであった.
- 結局,暗号の換字表は次の通りなる.
- 使用されたキーフレーズは"silver angel"(銀のエンゼル)であった.
SILVERANGBCDFHJKMOPQTUWXYZ :暗号文中の文字
abcdefghijklmnopqrstuvwxyz :平文中の文字
abcdefghijklmnopqrstuvwxyz :平文中の文字
- 解読された暗号文は次の通りである.
AGHHJEHZEOTFJGPPNTTHEHFSVGCSFGHHSVEFJOGSAEQEGCJT
ginnoenzerumoisshuunenmadikaminnademoriageteikou
銀のエンゼルも一周年間近.みんなで盛り上げていこう!
ginnoenzerumoisshuunenmadikaminnademoriageteikou
銀のエンゼルも一周年間近.みんなで盛り上げていこう!
PSZSHSFGASPEQPTZJCTLNTTHGFEASOJKJOGPTNGOJISHGQEAGOTVJLNSQQJBJTVE
sazanamigasetsuzokuchuunimegaroporisuhirobanitegirudochattojoude
漣が接続中に,メガロポリス広場にて,ギルドチャット上で,
sazanamigasetsuzokuchuunimegaroporisuhirobanitegirudochattojoude
漣が接続中に,メガロポリス広場にて,ギルドチャット上で,
WSQSPNGHGPNGQSASGHSPSGPSZSHSFGQJPSCEIGHSPSG
watashinishitagainasaisazanamitosakebinasai
「私に従いなさい,漣!」と叫びなさい.
watashinishitagainasaisazanamitosakebinasai
「私に従いなさい,漣!」と叫びなさい.
アプローチ番外:裏口入学編
ポイント:平文に含まれるワードを推測しよう
- アプローチ1~3は,理論的に思考した,いわば「正攻法」であった.
- しかし,暗号解読にいつも正攻法が通用するわけではない.
- それに,暗号解読の醍醐味は「如何に推測するか」であろう?
- このアプローチでは,「平文の推測」のみに頼って本暗号を解読する手法を示そう.
- さて,本暗号は,銀のエンゼルの6月ギルドイベントにおいて,漣企画として出題されたものである.
- この状況から,平文にはどのようなワードが含まれていると考えられるだろうか?キーになりそうなワードを羅列してみよう.
- 銀のエンゼル,エンゼル,6月,ギルド,イベント,ギルイベ,イベ,漣,企画,etc...
- その他,TS関連のワードなどもあり得る.
- すでに解読された暗号文を知っている諸君は,今挙げたワードのいくつかが暗号文中に含まれていたことを思い出すであろう.このように,暗号文の作られた状況などから,平文の内容をある程度推測できることがしばしばある.
- 「用語解説」の「キーフレーズ」の例において,わざわざ"SAZANAMI"というワードを使っている.ここでは"sazanami"が平文に含まれていると推測して,解読に挑んでみよう.
- 単アルファベット換字式暗号であるという前提から,もし平文に"sazanami"が含まれていた場合には,次のように暗号化されているだろう.
- 暗号文から"sazanami"に該当する連続する8文字を抜き取ったとき,
- 1,2,3,5,7,8文字目は,それぞれ別の文字である.
- 2,4,6文字目は,同じ文字である.
- 暗号文から"sazanami"に該当する連続する8文字を抜き取ったとき,
- このような部分が,果たして暗号文中に見つかるのだろうか?
- 2,4,6文字目が同じ文字なので,1つ飛びに同じ文字が3回出現する部分を目当てにすればよい.
- 根気よく捜索すれば,次の2箇所で見つかるであろう.
AGHHJEHZEOTFJGPPNTTHEHFSVGCSFGHHSVEFJOGSAEQEGCJTPSZSHSFG
ASPEQPTZJCTLNTTHGFEASOJKJOGPTNGOJISHGQEAGOTVJLNSQQJBJTVE
WSQSPNGHGPNGQSASGHSPSGPSZSHSFGQJPSCEIGHSPSG
ASPEQPTZJCTLNTTHGFEASOJKJOGPTNGOJISHGQEAGOTVJLNSQQJBJTVE
WSQSPNGHGPNGQSASGHSPSGPSZSHSFGQJPSCEIGHSPSG
- 暗号文中の"PSZSHSFG"を"sazanami"で置き換えると,次のようになる.
AinnJEnzEOTmJissNTTnEnmaViCaminnaVEmJOiaAEQEiCJTsazanami
AasEQsTzJCTLNTTnimEAaOJKJOisTNiOJIaniQEAiOTVJLNaQQJBJTVE
WaQasNinisNiQaAainasaisazanamiQJsaCEIinasai
AasEQsTzJCTLNTTnimEAaOJKJOisTNiOJIaniQEAiOTVJLNaQQJBJTVE
WaQasNinisNiQaAainasaisazanamiQJsaCEIinasai
- 一つ目の"sazanami"に続く"Aa"は「は」であろうか?「が」であろうか?
- 「は」の場合
hinnJEnzEOTmJissNTTnEnmaViCaminnaVEmJOiahEQEiCJTsazanami
hasEQsTzJCTLNTTnimEhaOJKJOisTNiOJIaniQEhiOTVJLNaQQJBJTVE
WaQasNinisNiQahainasaisazanamiQJsaCEIinasai
hasEQsTzJCTLNTTnimEhaOJKJOisTNiOJIaniQEhiOTVJLNaQQJBJTVE
WaQasNinisNiQahainasaisazanamiQJsaCEIinasai
- 「が」の場合
ginnJEnzEOTmJissNTTnEnmaViCaminnaVEmJOiagEQEiCJTsazanami
gasEQsTzJCTLNTTnimEgaOJKJOisTNiOJIaniQEgiOTVJLNaQQJBJTVE
WaQasNinisNiQagainasaisazanamiQJsaCEIinasai
gasEQsTzJCTLNTTnimEgaOJKJOisTNiOJIaniQEgiOTVJLNaQQJBJTVE
WaQasNinisNiQagainasaisazanamiQJsaCEIinasai
- 「が」バージョンの先頭部分"ginnJEnzEOT"は"ginnoenzeru"(銀のエンゼル)ではないだろうか?
- この線で暗号文を解いてみると,次のようになる.
ginnoenzerumoissNuunenmaViCaminnaVemoriageQeiCousazanami
gaseQsuzoCuLNuunimegaroKorisuNiroIaniQegiruVoLNaQQoBouVe
WaQasNinisNiQagainasaisazanamiQosaCeIinasai
gaseQsuzoCuLNuunimegaroKorisuNiroIaniQegiruVoLNaQQoBouVe
WaQasNinisNiQagainasaisazanamiQosaCeIinasai
- "megaroKorisuNiroIa"は「メガロ」ときているので"megaroporisuhiroba"(メガロポリス広場)ではないか?.
ginnoenzerumoisshuunenmaViCaminnaVemoriageQeiCousazanami
gaseQsuzoCuLhuunimegaroporisuhirobaniQegiruVoLhaQQoBouVe
WaQashinishiQagainasaisazanamiQosaCebinasai
gaseQsuzoCuLhuunimegaroporisuhirobaniQegiruVoLhaQQoBouVe
WaQashinishiQagainasaisazanamiQosaCebinasai
- 残りは解読済みの部分から推測できる.
- "minnaVemoriageQeiCou"=みんなで盛り上げていこう
- "girudoLhattoBoude"=ギルドチャット上で
- "Watashi"=私
- 以上より,すべての文字を解読できた.
- このアプローチでは,頻度分析とか,文字のつながりとか,キーフレーズがどうだとか,一切の論理的思考を採用していない.しかし,実に鮮やかな暗号解読であった.
- 最初に"sazanami"(漣)を推測し,"ginnnoenzeru"(銀のエンゼル),"megaroporisuhiroba"(メガロポリス広場)と,関連ワードを次々と見出し,解読していった.
- このように,解読して明らかにするべき平文を最初に推測するという「裏側」から侵入し,暗号という鍵を破ることもできるのである.
解読者の発表
- 解読者はギルメン2名,他1名の総計3名でした.
- ギルメンの解読者
- Atlansia氏
- んぱ氏
- ギルメン外の解読者は名前公表の許可をいただいていないので,ここでは伏せさせていただきます.
- 解読者のみなさま,おめでとうございました.また,解読には至らずともその努力をなさってくださった方々,お疲れ様でした.
後日談的な話
- Atlansia氏にはわずか2日で解読されてしまいました.暗号解読の周辺知識をお持ちであったようです.
- このため,「漣に労働を課す権利」を次の解読者へお譲りくださいました.
- んぱ氏は漣に対して,1週間語尾に「キョン」をつける労働(?)を要求.漣は受諾しましたキョン.
- Atlansia氏は,次の解読者が現れなかった場合,語尾に「にゅ」をつけるよう,要求するつもりであったらしいキョン.(そろいもそろって,なんでキョン…)
- ところが,1時間もしないうちにキョン言葉はダメだしを食らいましたキョン…(読みにくいとか何とかいわれたキョン)
- なので,にゅをつけることにしましたにゅ.1週間はこんな口調にゅ.よろしくお願いしますにゅ.
おまけにゅ
- おまけ問題にゅ.
- この暗号が解けるかにゅ?
TBLJOPNPJYOUBJICBBUVTBSJUBQUCPLIYBSFUFTVQNCBYBUVUB
OJZVDUBLBCSBWLBQOOJQNPJYOUBVQWUVLPYVUVCUFNJUBOJZVD
OJZVDUBLBCSBWLBQOOJQNPJYOUBVQWUVLPYVUVCUFNJUBOJZVD
CUJZPFYUVCUBQTJUBLJNTYJUVLVXBQJUVUCVWLVNJLPOUFPVQU
JQOJZVDUCBLNYBSBWTFJLPVIPVUPQPYCIBJLJUVNBSVCOVQZVD
JQOJZVDUCBLNYBSBWTFJLPVIPVUPQPYCIBJLJUVNBSVCOVQZVD
SYUPLFUBCSBTBTJQOCBNJOJCJVOJZCVDOBOBYJLBIJUPUZYVWN
CFJSFJXPLJLVOJZVDNFQUBJOBCNPQXYJSFJIBLBOICPQOOJZVD
CFJSFJXPLJLVOJZVDNFQUBJOBCNPQXYJSFJIBLBOICPQOOJZVD
LBQOLBCJIBWLJSVNFOTPYCJZBOJQLVUFNBQJJCLPUPOJTVLYSV
COVQZVDTJQUFWTFCOIVZBQFYNFSVICJUPIBUFSFQOPLBOJZVDC
COVQZVDTJQUFWTFCOIVZBQFYNFSVICJUPIBUFSFQOPLBOJZVDC
- ヒント
- 平文は例によって日本語ローマ字文にゅ.ヘボン式じゃなくて訓令式にゅ.
- 「だいじょうぶ」→「たいしようふ」のように,濁点や小さい文字はなくしてあるにゅ.
- 基本的には,単アルファベット換字式暗号にゅ.でも,いくつかのギミックが組み込まれてるにゅ.
- キーフレーズは使われてないにゅ.換字表の特定は簡単かもにゅ?でも,換字表を埋めてもきっとそれだけじゃ読めないにゅ^^
- 平文には,「おまけを作った経緯」,「おまけ暗号の紹介」,「解読できたらどうするか」,「参加資格」などがそれぞれ書いてあるにゅ.
- 正攻法でも裏口入学でも取っ掛かりにはなるにゅ.でもギミックのせいで変形してるから,どちらの方法でもいずれ行き詰るにゅ…
- ギミックをどう見破るのか,ひらめきが重要にゅ!
- 400字の頻度分析を手でやるなんて嫌だにゅ.頻度分析結果はここからDLするにゅ.
- 行き詰ったら漣に聞くといいにゅ.個別にヒントくらいは出すにゅ.
おまけ問題解答
- 解読結果は次の通り.
- 上段:暗号文,中段:ギミックが残っている平文,下段:解読した平文
TBLJOPNPJYOUBJICBBUVTBSJUBQUCPLIYBSFUFTVQNCBYBUVUB
sakinomoixntaihbaatusaritaptbokhxaretesupmbaxatuta
sakinomo__ntaih_aatusarito_t_ok__aretesi_m_a__tuta
sakinomoixntaihbaatusaritaptbokhxaretesupmbaxatuta
sakinomo__ntaih_aatusarito_t_ok__aretesi_m_a__tuta
OJZVDUBLBCSBWLBQOOJQNPJYOUBVQWUVLPYVUVCUFNJUBOJZVD
niyuctakabravkapnnipmoixntaupvtukoxutubtemitaniyuc
niyu.taka_ra,ko_nna_mo__ntai_,tuku__tu_temitaniyu.
niyuctakabravkapnnipmoixntaupvtukoxutubtemitaniyuc
niyu.taka_ra,ko_nna_mo__ntai_,tuku__tu_temitaniyu.
CUJZPFYUVCUBQTJUBLJNTYJUVLVXBQJUVUCVWLVNJLPOUFPVQU
btiyoextubtapsitakimsxitukuwapitutbuvkumikonteoupt
_tiyo__tu_to_sitakim__itukuwo_itut_u,kumikonteoi_t
btiyoextubtapsitakimsxitukuwapitutbuvkumikonteoupt
_tiyo__tu_to_sitakim__itukuwo_itut_u,kumikonteoi_t
JQOJZVDUCBLNYBSBWTFJLPVIPVUPQPYCIBJLJUVNBSVCOVQZVD
ipniyuctbakmxaravseikouhoutopoxbhaikitumarubnupyuc
a_niyu.t_ak__ara,seikouhoute____haikitumaru_ni_yu.
ipniyuctbakmxaravseikouhoutopoxbhaikitumarubnupyuc
a_niyu.t_ak__ara,seikouhoute____haikitumaru_ni_yu.
SYUPLFUBCSBTBTJQOCBNJOJCJVOJZCVDOBOBYJLBIJUPUZYVWN
rxtoketabrasasipnbaminibiuniybucnanaxikahitotyxuvm
__toketa_rasasa_n_amini_iuniy_u.nani__kahitot__u,m
rxtoketabrasasipnbaminibiuniybucnanaxikahitotyxuvm
__toketa_rasasa_n_amini_iuniy_u.nani__kahitot__u,m
CFJSFJXPLJLVOJZVDNFQUBJOBCNPQXYJSFJIBLBOICPQOOJZVD
beireiwokikuniyucmeptainabmopwxireihakanhbopnniyuc
_eireiwokikuniyu.mu_taina_me___ireihakanh_e_nniyu.
beireiwokikuniyucmeptainabmopwxireihakanhbopnniyuc
_eireiwokikuniyu.mu_taina_me___ireihakanh_e_nniyu.
LBQOLBCJIBWLJSVNFOTPYCJZBOJQLVUFNBQJJCLPUPOJTVLYSV
kapnkabihavkirumensoxbiyanipkutemapiibkotonisukxru
ko_nka_iha,kirumens___iyana_kutemo_ii_kotonisu__ru
kapnkabihavkirumensoxbiyanipkutemapiibkotonisukxru
ko_nka_iha,kirumens___iyana_kutemo_ii_kotonisu__ru
COVQZVDTJQUFWTFCOIVZBQFYNFSVICJUPIBUFSFQOPLBOJZVDC
bnupyucsiptevsebnhuyapexmeruhbitohaterepnokaniyucb
_ni_yu.sa_te,se_nhuyo___meruh_itohateru_nokaniyu._
bnupyucsiptevsebnhuyapexmeruhbitohaterepnokaniyucb
_ni_yu.sa_te,se_nhuyo___meruh_itohateru_nokaniyu._
- 換字表は次の通り.単なるカエサルシフトであった.
暗号文中の文字 | BCDEFGHIJKLMNOPQRSTUVWXYZA |
平文中の文字 | abcdefghijklmnopqrstuvwxyz |
- ただし,平文文字のうち5つはギミックである.その効果は次の通り.
文字 | 効果 |
b | 冗字.意味のない文字. 例:mbo→mo |
c | 「.」を表す文字. |
v | 「,」を表す文字. |
p | 前にある母音を一つ前の母音に替える操作を指示する文字. 例:hap→ho,sip→sa |
x | 前にある文字を消す操作を指示する文字. 例:taxu→tu,ayxi→ai |
解読方法の一例
(こんなにあっさりとはいかないだろうが,筋としてはこの解読方法がスマートであろう.)
(こんなにあっさりとはいかないだろうが,筋としてはこの解読方法がスマートであろう.)
- 平文も「にゅ」調であると推測する.
- 各文の末尾はやや違いがあるが,"ZVD"は同じようだ.
- 暗号文中には"OJZVD"が多数(6箇所)で見られる.これが「にゆ」であると考える.
- 頻度分析から"J"と"V"は母音,"Z"は子音と推測する.
ただし,この暗号では,多くの文字が母音のように振舞っている.
ここでの母音・子音はどちらかと言えばそうっぽい,というレベルにとどまっている. - "O"は母音のような? "D"は子音のような? しかし,よくわからない.
- 頻度分析から"J"と"V"は母音,"Z"は子音と推測する.
- 母音と子音の位置を踏まえて,"OJZVD=niyuD"と考えてみる.
- この時点で,この置き換えが1文字ずらしであることに気がつく.
- 換字表はカエサルシフトであるとして,文字を置き換えてみる.
- ヒントにある通り,この段階ではほとんど読めないが,部分的に読めてくる.
(解答の中段の状態) - それに,本来使われるはずのない文字"bcpvx"が見つかる.
これがギミックを表す文字なのだろう.
- ヒントにある通り,この段階ではほとんど読めないが,部分的に読めてくる.
- "c"は"u"の後ろにしか現れない.しかも,1箇所を除いて"yu"の後ろである.
- 「にゅ」が文末にあるとすれば,"yu"は文末に来るはず.
- "c"は文末をあらわしているのではないか?
- 「にゅ」はどの文末にも使われていると仮定しよう.
- "niyuc"と似ているものには,"nupyuc","niybuc","niyucb"の3種がある.
- これらも「にゅ」をあらわすのなら,"up=i"であり,"b"は取り除かなければならない.
- 頻度分析より"p"は母音の後ろにしかあらわれないことがわかっている.
- "up=i"であるのならば,"ep=u","op=e","ap=o","ip=a"ではないだろうか?
- ここまでくれば,かなりの部分が読める状態である.
- 残りは解読済みの部分から,"x"は前の文字ごと消去,"v"は読点をあらわしていることがわかるだろう.
- 以上のプロセスにより,暗号は解読された.
- この暗号の解読者は1名である.(というか1人いたことに驚きである.)
- おかげで酷い目にあったが,こちらとしても問題を作るのは楽しかったのでよしとしよう.
- これにて,「暗号問題」は終了とする.お付き合いいただいた方々,ありがとうございました.
当企画に関するお問い合わせは漣まで