暗号史
1940年代、第二次世界大戦終了前後に開発が始まったプログラム可能な電子計算機(コンピュータ)の登場は機械式暗号の信頼性をさらに失速させる。コンピュータは自由にプログラムを設定でき、任意の機械式暗号をシミュレートできる上に暗号化・復号のスピードも桁違いで、暗号鍵を総当りで調べる、暗号文を統計処理して暗号鍵を推測する等、暗号解読の強力なツールとなる。初期のコンピュータにはコロッサスのように暗号解読を目的として開発されたものもある。
一方で1947年のトランジスタの発明、1958年の集積回路の発明など半導体技術の進歩は暗号にも大きな影響を与え、機械式では実現不可能な複雑なアルゴリズムでも実現可能になった。信頼性の高い暗号が、手軽に利用できるようになったのもコンピュータや半導体技術が出現してからである。
換字式暗号は、9世紀頃にはアラビア人によって、頻度分析という手法が発見されたことによって看破された。ヨーロッパではその方面の研究は発達せず、長らく単一換字式暗号が安全な暗号として使用されていた。15世紀になるとルネサンスの影響も受け、急速に発達し、この頃にようやくヨーロッパでも頻度分析の手法が確立した。
頻度分析によって、単一換字式暗号は安全ではなくなってしまった。単一字の(連綴を対象としない)頻度分析に対して対抗するための代表的な防衛法としては、次のようなものがある。
平文そのままではなく、文中に無意味な文字(冗字。虚字、捨字とも)を混ぜてから暗号化する。復号後、冗字に復号されたものは捨てる(ないし空文字列に復号する)。分析を混乱させることが目的である。
度数秘匿方式 たとえば、平文では頻度の高い文字eにe1・e2・...のように複数種の記号をランダムに割り当てる、といったようにして、真の頻度を隠匿する(秘匿度数方式、homophonic substitution)。 たとえば、平文では頻度の低い文字qとzを同じ記号に割り当てる、といったようにして、真の頻度を隠匿する(逆秘匿度数方式、polyphonic substitution)。こちらは、何の工夫も無い場合は直後にuがあったらqだろう、といったように復号が機械的にはできない。
など、様々な工夫が凝らされるが、15世紀後半から16世紀にかけて、それでも、安全ではなくなってきてしまった。
同時期に「ヴィジュネル暗号」などの多表式換字暗号と呼ばれる、より安全性の高い暗号が考え出されていた。