書籍暗号(英: book cipher)またはオッテンドルフの暗号(英: Ottendorf cipher、オッテンドルフの数列)は、書籍など文章の一部を鍵とする暗号である。書籍は現代では広く普及しており、暗号用に特別に作られたものよりも利便性が高い。また、送信者・受信者双方が所持する書籍は、同じタイトルの同じ版を所持することが重要である[1]。
従来の書籍暗号は、メッセージの平文の中の単語を、使用する書籍の単語の位置に置き換えることで機能する。この方法では、書籍暗号は、「コード」という方が適している。
この方法には、メッセージの平文にはあっても書籍にはない単語がある場合、その単語は暗号化できないという問題もある。そのため、この問題を回避する方法として、単語ではなく個々の文字を置き換えるという方法がある。ビール暗号の2枚目の暗号文で使用された方法では、書籍の中の単語の最初の文字をその単語の位置に置き換えている。この方法では、書籍暗号は「サイファ」であり、具体的には「同音換字式暗号」となる。ただし、この方法を頻繁に使用すると暗号文が長くなり(通常、1文字や1音節の暗号化に4~6桁の数字が必要となる)、メッセージの解読に必要な時間と労力が増加するという問題も生じる。
書籍暗号の最大の強みは鍵である。暗号化されたメッセージの送信者と受信者は、暗号の鍵として両者が入手可能な書籍などの出版物を使用する。メッセージを傍受・解読しようとする者は、熟練の暗号技術者(以下の「セキュリティ」の項を参照)でない限り、膨大な数の書籍から何らかの方法で鍵を特定しなければならない。
諜報活動では、書籍暗号は、敵地で活動するスパイにとって非常に有利となる。従来のコードブックでは、現地当局に発見されてしまうと、保有者が即座にスパイとして罪に問われるだけでなく、当局がコードを解読し、工作員に成りすまして偽のメッセージを送信するチャンスを与えてしまう。一方、書籍であれば、スパイの成りすましている架空の経歴や職業に合致するよう慎重に選定すれば、不審に思われることはほぼない。
書籍暗号の欠点は、双方が鍵として全く同じ書籍を所持しなければならないことである。また、書籍は、使用者が持っていて違和感がなく、必要な単語が含まれているものでなければならない。例えば、スパイが軍隊の動きや兵器の数などの情報を送信したい場合、料理本や恋愛小説は、鍵として役に立つとは考えにくい。
辞書をコードブックとして使用することで、ほぼ全ての単語を確実に見つけることができ、符号化の際も非常に簡単に単語を見つけることができる。この方法は、ジョージ・スコーヴェルが半島戦争従軍の際、初代ウェリントン公爵軍で使用したものである。スコーヴェルの方法では、鍵となる文字列(コードワード)は、数字(辞書のページを指示)、文字(ページの列を指示)、数字(列のどの項目を意味するかを指示)で構成されていた。ただし、この方法にも欠点がある。辞書の項目はアルファベット順に並んでいるため、暗号の数字もアルファベット順になる。これは、メッセージが二重に暗号化されていない限り、暗号解読者に対する強力なヒントになりうる。また、辞書が広く普及していることで、暗号を解読しようとする者がメッセージを読み取るために使用する辞書を持っている可能性が高いという問題も生じる。
聖書は広く普及している書籍であり、多くの場合で章番号や節番号を付して印刷されているため、特定の文字列を簡単に見つけることができ、暗号目的には特に適している。また、コンコルダンスが広く普及していることも、符号化作業を容易としている。
書籍暗号のコード版は、基本的には他のコードと同じであるが、既存の文章を利用することでコードブックの作成や配布の手間が省かれている。しかし、他のコードやサイファに通常用いられる手段で攻撃された場合と同様に、部分的に解読することで暗号解読者に他のコードワードを推測されたり、鍵文書を特定することで暗号が完全に解読されたりする可能性がある。しかし、書籍暗号が解読される方法はこれだけではない。書籍暗号は、他の暗号解読法の影響を受けやすく、高度な方法を用いなくても、暗号解読者が鍵となる書籍が分からなくても、簡単に解読されてしまう[2][要ページ番号] 。
一方、サイファ版は、等価物の非常に多い同音換字式暗号として機能するため、慎重に使用すればこちらの方がはるかに強力である。しかし、暗号文が非常に長くなってしまうという代償を伴う。