単一換字暗号とは、文字を下図のような対応表に応じて置き換える方法のことである。この場合は対応表が暗号化・復号の鍵にあたる。
(シーザー暗号と同様に「↓」「↑」で暗号化・復号が行われる。「鍵を変更」を押すと表がランダムに変更される)
単一換字暗号のパターン数は一般に非常に多いため、シーザー暗号のように総当たりで鍵を知ることは難しい。
例えばシンボルがアルファベットの26文字なら、鍵の数はそれらの並べ替えの数、つまり
\(26!=26\times25\times\cdots\times2\times1\fallingdotseq4\times10^{26}\)
になる。
単一換字暗号はシーザー暗号に比べれば解読されにくいが、送信する側、受信する側の両方がこの対応表を持っている必要があるため、今回の初めに述べた脆弱性がある。
平文が十分に長い英文の場合は、以下の手がかりから解読することができる。
- a, e, hなどは頻繁に出現し、q, zなどはめったに出てこない → 暗号文のそれぞれの文字数をカウントし、一般的な英文の出現頻度に合わせて置き換える
- 1文字だけの単語 → 一般的な英文なら「a」か「I」しかありえない
- 連続する2文字で頻繁に出てくる組み合わせ (th, he, in, er, ...) を手掛かりにする
例えば
Opecqyb, tb zoen Meqsuj. Buwn noxyocqauj, qfuwdf inuxuwjz, fez eynoezb cnussoz tb tajz. Gwq A zeno seb aq teb feho cuto qu buwn juqaco qfeq ax buw meyl ajqu e iusq-uxxaco ejz zotejz qu soo qfo cuwjqonxuay ux ejuqfon tej's tossedo qfono teb go suto zasajcyajeqauj uj qfo ienq ux qfo uxxacaeys qu ugyado buw. Qfono as su twcf noz qeio aj qfoso teqqons! Fumohon, A feho ju zuwgq qfeq maqf e yaqqyo zoyacecb ejz xajosso qfo ojz teb go eqqeajoz. Toejmfayo, A sfuwyz yalo aj buwn inosojco, Tn. Uhonquj, qu du qfnuwdf qfoso ieions mfacf feho gooj yoxq wiuj qfo qegyo.
のような暗号文では、大文字の「A」や小文字の「e」が一文字の単語として出てきている。これを「I」「a」だと仮定して、大文字、小文字について e→a→i→eのように置き換えれば
Opacqyb, tb zoan Maqsuj. Buwn noxyocqiuj, qfuwdf enuxuwjz, faz aynoazb cnussoz tb tijz. Gwq I zano sab iq tab faho cuto qu buwn juqico qfaq ix buw mayl ijqu a eusq-uxxico ajz zotajz qu soo qfo cuwjqonxuiy ux ajuqfon taj's tossado qfono tab go suto zisijcyijaqiuj uj qfo eanq ux qfo uxxiciays qu ugyido buw. Qfono is su twcf noz qaeo ij qfoso taqqons! Fumohon, I faho ju zuwgq qfaq miqf a yiqqyo zoyicacb ajz xijosso qfo ojz tab go aqqaijoz. Toajmfiyo, I sfuwyz yilo ij buwn enosojco, Tn. Uhonquj, qu du qfnuwdf qfoso eaeons mficf faho gooj yoxq weuj qfo qagyo.
のようになる。また、あちこちの単語の先頭に出てくる「qf」という並びが「th」(the, this, that, there などの最初の2文字)だと仮定して、qとt, fとhを置き換えれば
Opactyb, qb zoan Matsuj. Buwn noxyoctiuj, thuwdh enuxuwjz, haz aynoazb cnussoz qb qijz. Gwt I zano sab it qab hafo cuqo tu buwn jutico that ix buw mayl ijtu a eust-uxxico ajz zoqajz tu soo tho cuwjtonxuiy ux ajuthon qaj's qossado thono qab go suqo zisijcyijatiuj uj tho eant ux tho uxxiciays tu ugyido buw. Thono is su qwch noz taeo ij thoso qattons! Humofon, I hafo ju zuwgt that mith a yittyo zoyicacb ajz xijosso tho ojz qab go attaijoz. Qoajmhiyo, I shuwyz yilo ij buwn enosojco, Qn. Ufontuj, tu du thnuwdh thoso eaeons mhich hafo gooj yoxt weuj tho tagyo.
同様にして、たくさん出てくる「tho」は「the」だと仮定してoとeを置き換えれば
Epactyb, qb zean Matsuj. Buwn nexyectiuj, thuwdh onuxuwjz, haz ayneazb cnussez qb qijz. Gwt I zane sab it qab hafe cuqe tu buwn jutice that ix buw mayl ijtu a oust-uxxice ajz zeqajz tu see the cuwjtenxuiy ux ajuthen qaj's qessade thene qab ge suqe zisijcyijatiuj uj the oant ux the uxxiciays tu ugyide buw. Thene is su qwch nez taoe ij these qattens! Humefen, I hafe ju zuwgt that mith a yittye zeyicacb ajz xijesse the ejz qab ge attaijez. Qeajmhiye, I shuwyz yile ij buwn onesejce, Qn. Ufentuj, tu du thnuwdh these oaoens mhich hafe geej yext wouj the tagye.
となる。こういう手順を繰り返していけば、鍵を知らなくても平文を知ることができる。
(ちなみに、この平文は課題1の平文と同じ)