【最新】暗号技術について理解を深めるためのおすすめ本 – 基礎知識から応用技術まで

私たちの秘密を守る暗号とは?その仕組みは?

現代社会において、暗号は不可欠なものとなっています。メールやネットショッピング、Wi-Fi、クレジットカードなど、身近なところで暗号は活用されています。暗号について少しでも知識を得ることで、自分の個人情報、プライバシーを保護することにもつながります。今回は、専門知識を知らない入門者でも暗号について理解できるような本をご紹介します。

ランキングも確認する
出典:出版社HP

暗号技術入門 第3版 秘密の国のアリス

暗号技術の基本がわかる

本書は、暗号技術を解説している入門書です。通信における暗号化技術が中心になっていますが、歴史上の暗号の紹介もされており、暗号についてしっかり学べる構成となっています。暗号化とともに用いられる認証や乱数、応用技術についても解説されています。

結城 浩 (著)
出版社 : SBクリエイティブ (2015/8/25) 、出典:出版社HP

はじめに

私たちは誰でも、他人に知られたくない情報——を持っています。たとえば、銀行口座の暗証番号は他人に知られたくありません。クレジットカードの番号、ローンの額、異性関係、犯罪歴、病歴、メールのパスワード……このような情報を他人に知られて平気な人はいません。年齢、身長や体重も知られたくない人がいるでしょうし、相手によっては自分の名前すら知られたくないという場合もあるでしょう。
現代社会では、多くの情報がコンピュータ上にあります。コンピュータ上にある情報はとても便利です。コピーは一瞬でとれますし、誤りの修正も簡単です。世界中どこにいる相手にもメールで送ることができますし、ブログやSNSを使って世界中の誰とでも共有することができます。
けれど、まさにこのために、現代社会では自分が秘密にしたい情報を守ることがとても難しくなってしまいました。
あなたの秘密の情報を誰かがコピーしても、あなたはそれに気づかないでしょう。情報がなくなるわけではないからです。修正が簡単にできてしまうので、誰かがあなたの重要なファイルを書き換える危険性があります。誰かが、あなたの秘密をメールで第三者に送ったり、ブログやSNSを使って世界中に公開したら大変です。

このような状況を改善するために、さまざまな暗号技術が開発されています。たとえば、メッセージが盗聴されても読めなくするための「暗号」、メッセージが書き換えられたことを検出するための「一方向ハッシュ関数」、正しい相手からのメッセージであることを確かめるための「デジタル署名」などです。本書で紹介するさまざまな暗号技術は、コンピュータとネットワークを使って生活やビジネスを行っている私たちの秘密を守り、情報の正しさを確かめるために存在します。
しかし、どんなに高度な暗号技術にも大きな弱点があります。それは「人間」という弱点です。ユーザが暗号技術を正しく運用しなければ、セキュリティをきちんと維持することはできません。どんなに強力な暗号でファイルが守られていても、ユーザが使っているパスワードが弱ければ、何の意味もありません。暗号技術を正しく運用するためには、個々の暗号技術についてきちんと理解しておく必要があります。「自分はいま何をしているのか」「この技術はどんな意味を持っているのか」をよく理解しなければならないのです。

本書は、暗号技術をわかりやすく紹介した入門書です。ややこしい数学の話は極力少なくした上で、個々の暗号技術の役割と意味をきちんと理解できるようにしました。
暗号は、もはや専門家だけのものではありません。暗号は、現代に生きる私たちにとって必須の技術なのです。本書を通して、暗号技術とセキュリティの基礎知識を身につけてください。

結城 浩 (著)
出版社 : SBクリエイティブ (2015/8/25) 、出典:出版社HP

本書の特徴

本書には次のような特徴があります。

暗号技術をわかりやすく解説
暗号技術には、非常にたくさんの種類がありますが、どれも複雑で難解です。本書では、そのなかから特に重要なものをピックアップし、たくさんの図を使ってわかりやすく解説します。

暗号技術の相互関係を解説
個々の暗号技術は単独で存在するわけではありません。相互に関連し合い、補い合って大きなフレームワークを形作っています。本書では、大きなジグソーパズルを組み立てるように暗号技術の相互関係を解き明かします。

「暗号の常識」を解説
一般常識と暗号における常識との間には、ずれがあります。たとえば、普通の人は「暗号アルゴリズムを秘密にすれば安全だろう」と考えてしまいがちです。しかし、暗号の世界では「秘密になっている暗号アルゴリズムは使うな」というのが常識になっています。本書では、一般常識と暗号の常識とが異なっている部分に注目して、読者が誤った判断をしないように注意をうながします。

対象読者
本書は、以下の読者を主な対象としています。
・暗号全般に興味がある人
・公開鍵暗号やデジタル署名など、暗号技術の仕組みを理解したいと思っている人
・セキュリティに興味がある人

数学が苦手な人にもわかりやすく
暗号技術は数学を基礎として成り立っているので、どうしても複雑な数式が登場します。本書では、数式の羅列はできるだけ避け、図解を多くし、数学が苦手な人でも理解できるように注意を払いました。

クイズで理解を確認する
本文中には、理解を確認するためのクイズがあります。本を読みながら短い時間で答えられるやさしいものがほとんどです。クイズの解答は各章の最後のページにあるので、自分の理解度を確かめつつ本書を読み進めることができます。また、巻末にも「暗号技術確認クイズ」があり、本書全体の理那度を再確認できます。

結城 浩 (著)
出版社 : SBクリエイティブ (2015/8/25) 、出典:出版社HP

本書の構成

第Ⅰ部 暗号
第1章「暗号の世界ひとめぐり」では、暗号技術の全体像を解説します。
第2章「歴史上の暗号」では、歴史上重要な役割を果たした暗号について解説し、暗号解読について考えます。
第3章「対称暗号(共通鍵暗号)」では、暗号化を行う基本的な技術である対称暗号(共通鍵暗号)について解説します。長い間標準として使われてきたDESから、最新のAESまでを解説します。
第4章「ブロック暗号のモード」では、対称暗号での暗号化の手順を表す「モード」を解説します。ECB,CBC,CFB,OFB,CTRの各モード、およびプロック暗号とストリーム暗号についてお話します。
第5章「公開鍵暗号」では、現代の暗号技術において最も重要といえる公開鍵暗号について解説します。鍵配送問題について解説した後、公開鍵暗号RSAの計算を実際に行います。
第6章「ハイブリッド暗号システム」では、対称暗号と公開鍵暗号を組み合わせて高速で安全な暗号化・復号化を行う方法についてお話します。

第Ⅱ部 認証
第7章「一方向ハッシュ関数」では、メッセージの指紋と呼ばれるデータを作り出す一方向ハッシュ関数について解説します。一方向ハッシュ関数が持つべき性質を押説してから、SHA-1,SHA-2,SHA3などの具体的な一方向ハッシュ関数を紹介します。
第8章「メッセージ認証コード」では、対称暗号と一方向ハッシュ関数を組み合わせてメッセージが正しく伝達されたかどうかを確認するための技術を解説します。また、近年注目されている認証付き暗号も紹介します。
第9章「デジタル署名」では、公開鍵暗号技術を使って認証を行う技術を解説します。これらの技術は「なりすまし」や「改竄」の防止に役立ちます。
第10章「証明書」では、公開鍵の正しさを示すための証明書と、証明書を発行する認証局について解説します。また公開鍵基盤(PKI)の仕組みも解説します。

第Ⅲ部 鍵・乱数・応用技術
第11章「鍵」では、暗号で使われている鍵の管理について解説し、私たちが日ごろ入力しているパスワードについて考えます。
第12章「乱数」では、コンピュータ上で乱数を生成する擬似乱数生成器について解説します。擬似乱数生成器は、暗号の鍵を作る際に重要な役割を果たします。暗号で使われる乱数の持つ性質についてお話してから、対称暗号や一方向ハッシュ関数を使った疑似乱数生成器についてお話します。線形合同法を暗号で使うのは危険であるという話もします。
第13章「PGP」では、広く使われている暗号ソフトウェア、Pretty Good Privacy(PGP)について解説します。PGPには対称暗号、公開鍵暗号、一方向ハッシュ関数、デジタル署名、鍵の管理、乱数生成など、多くの重要な暗号技術が見事に集約されています。PGPの構成を学ぶことで、暗号技術を組み合わせる方法を理解することができるでしょう。
第14章「SSL/TLS」では、Secure Socket Layer(SSL)およびTransport Layer Security(TLS)について解説します。SSL/TLSは、Webでのオンラインショッピングなどでセキュリティを保つために使われている技術です。
第15章「暗号技術と現実社会」では、これまでの章で解説した暗号技術を整理し、現実社会のセキュリティにおける暗号技術の役割について考えます。また、暗号技術を組み合わせて実現している仮想通貨ビットコインについても紹介します。
付録「楕円曲線暗号」では、近年重要性を増している楕円曲線暗号の概要について紹介します。
付録「暗号技術確認クイズ」では、本書全体の内容を踏まえて暗号技術の理解を確認する、簡単なクイズを出題します。

謝辞

『暗号技術大全』の著者ブルース・シュナイアー、およびPGPの生みの親フィリッブ・ジマーマンに感謝します。
本書執筆中に貴重な情報と励ましを送ってくださった、山形浩生さんに感謝します。
筆者の書籍・雑誌連載・メールマガジンの読者の方々に感謝します。筆者のWebページに集う友人たちや、いつも筆者のために祈ってくれているクリスチャンの友人たちに感謝します。
本書の原稿は、執筆と並行してインターネット上でレビューが行われました。レビューを行う方々は年齢・国籍・性別・住所・職業の区別なくインターネットで公募され、すべてのやりとりは電子メールとWebを使って行われました。本書のレビューに参加してくださった方々に感謝します。貴重な意見、改善案、励ましの言葉を送ってくださった、以下の各氏に感謝します(五十音順、敬称略)。

青木久雄、新真千恵、天野勝、ANDO Yoko、池田大、石井勝、石川昭彦、石野幸夫、伊藤浩一、稲毛一行、井村ゆき乃、岩沢正樹、上原隆平、植松喜孝、植村光秀、江口加奈子、榎本直紀、大澤日出男、大竹宏志、大谷晋平、大谷祐史、奥田佳樹、尾関善行、織田京子、小原剛、小柳津清志、katokt、角田直行、加藤近く、角征典、金子統浩、上山警見、彼谷哲志、川合元洋、川崎昌博、川島光博、川村正安、北川敦史、木村岳文、久保山哲二、久米川昌弘、小山殺、近藤晋也、後藤英雄、榊原知香子、貞池克己、佐藤正明、佐藤康二、佐藤勇紀、佐山秀晃、澤義和、重信和行、しばむらしのぶ、末石淳一郎、鈴木隆介、平良公一、高島修、高橋英一郎、高橋健、高橋立明、滝口幸子、竹内康二、武智明、竹中明夫、辰巳普作、田中篤博士、津田昌樹、信長谷久、鳥海喜代江、土居俊彦、中島他和、中村圭輔、中森博久、野田知哉、野々垣一義、林孝彰、春岡徳久、比嘉一則、比嘉陽一、檜垣健太郎、平澤俊継、廣中利光、古屋智久、細川賢太郎、細野英朋、保戸塚貴博、堀正人、volo、米田重治、前原正英、松浦正枝、松岡正恭、まつしまひでき、松戸正春、松本悠希、松森久也、丸下博宣、御策納一、美馬孝行、三宅喜義、宮成飯裕、宮本信二、村上佳久、持尾聡史、座尋樹、森川浩司、森田大柏、矢野正道、倭聡、山本耕司、山本哲也

筆者の活動をいつも支援してくださるソフトバンクパブリッシング株式会社書籍局第6編集部の野沢喜美男編集長に感謝します。
最愛の妻に本書を捧げます。無数の秘密を私と共有してくれることに感謝しつつ。

2003年8月 横浜にて

結城 浩

新版の刊行にあたって

新版の刊行にあたり、本文の内容を現時点のものに更新すると共に、理解を助けるための付録を加筆しました。
改訂の一部については、五十嵐邦明さんから重要な示唆をいただきました。感謝します。

2008年11月 横浜にて
結城 浩

第3版の刊行にあたって

本文の内容を全面的に見直し、NIST,CRYPTREC,各種RFCなどの情報をもとにアップデートを行いました。また、SSL/TLSへのPOODLE攻撃、HeartBleed廃弱性、Superfish事件、SHA-3コンペティションとKECCAKの構造、認証付き暗号、楕円曲線暗号、ならびに仮想通貨ビットコインなどについて加筆しました。

2015年8月 横浜にて
結城 浩

結城 浩 (著)
出版社 : SBクリエイティブ (2015/8/25) 、出典:出版社HP

CONTENTS

はじめに
本書の特徴
本書の構成
謝辞
新版の刊行にあたって
第3版の刊行にあたって

第I部 暗号

第1章 暗号の世界ひとめぐり
この章で学ぶこと
暗号
アリスとボブ
送信者・受信者・盗聴者
暗号化と復号化
暗号は機密性を守る
解読
対称暗号と公開鍵暗号
暗号アルゴリズム

対称暗号と公開鍵暗号
ハイブリッド暗号システム
そのほかの暗号技術
一方向ハッシュ関数
メッセージ認証コード
デジタル署名
疑似乱数生成器
暗号学者の道具箱
ステガノグラフィと電子透かし
暗号とセキュリティの常識
秘密の暗号アルゴリズムを使うな
弱い暗号は暗号化しないよりも危険である
どんな暗号もいつかは解読される
暗号はセキュリティのほんの一部である
この章のまとめ
クイズの解答

第2章 歴史上の暗号
——他人が読めない文章を作る
この章で学ぶこと
シーザー暗号
シーザー暗号とは何か
シーザー暗号の暗号化
シーザー暗号の復号化
ブルート・フォース・アタックによる解
単一換字暗号
単一換字暗号とは何か
単一換字暗号の暗号化
単一換字暗号の復号化
単一換字暗号の鍵空間
頻度分析による解説
エニグマ
エニグマとは何か
エニグマによる暗号通信
エニグマの構造
エニグマの暗号化
「日替わり鍵」と「通信」
通信エラーの回避
エニグマの復号化
エニグマの弱点
エニグマの解読
考えてみよう
なぜ暗号アルゴリズムと鍵とを分けるのか
この章のまとめ
クイズの解答

第3章 対称暗号(共通鍵暗号)
——1つの鍵で暗号化し、同じ鍵で復号化する
スクランブルエッグと対称暗号
この章で学ぶこと
文字の暗号からビット列の暗号へ
符号化
XOR
使い捨てパッド——絶対に解読できない暗号
使い捨てパッドとは
使い捨てパッドの暗号化
使い捨てパッドの復号化
使い捨てパッドは解読できない
使い捨てパッドはなぜ使われないのか
DES
DESとは何か
暗号化・復号化
DESの構造(ファイステルネットワーク)
差分解読法と線形解読法
トリプルDES
トリプルDESとは何か
トリプルDESの暗号化
トリプルDESの復号化
トリプルDESの現状
AESの選定プロセス
AESとは何か
AESの選定プロセス
AES最終候補の絞り込みとAESの決定
Rijndael
Rijndaelとは何か
Rijndaelの暗号化と復号化
Rijndaelの解説
どの対称暗号を使えばよいのか
この章のまとめ
クイズの解答

第4章 ブロック暗号のモード
——ブロック暗号をどのように繰り返すか
この章で学ぶこと
ブロック暗号のモード
ブロック暗号とストリーム暗号
モードとは何か
平文ブロックと暗号文ブロック
能動的な攻撃者マロリー
ECBモード
ECBモードとは何か
ECBモードの特徴
ECBモードへの攻撃
CBCモード
CBCモードとは何か
初期化ベクトル
CBCモードの特徴
CBCモードへの攻撃
パディングオラクル攻撃
初期化ベクトル(IV)への攻撃
CBCモードの利用例
CFBモード
CFBモードとは何か
初期化ベクトル
CFBモードとストリーム暗号
CFBモードの復号化
CFBモードへの攻撃
OFBモード
OFBモードとは何か
初期化ベクトル
CFBモードとOFBモードの比較
CTRモード
カウンタの作り方
OFBモードとCTRモードの比較
CTRモードの特徴
エラーと機密性
どのモードを使うべきか
この章のまとめ
クイズの解答

第5章 公開鍵暗号
——公開鍵で暗号化し、プライベート鍵で復号化する
コインロッカーの使い方
この章で学ぶこと
鍵配送問題
鍵配送問題とは
鍵の事前共有による鍵配送問題の解決
鍵配布センターによる配送問題の解決
Diffia-Hellman鍵交換による鍵配送問題の解決
公開鍵暗号による鍵配送問題の解決
公開鍵暗号
公開鍵暗号とは
公開暗号の歴史
公開を使った通信の流れ
さまざまな用語
公開鍵暗号でも解決できない問題
時計演算
加算
減算
乗算
徐算
累乗
対数
時計の針からRSAへ
RSA
RSAとは何か
ASAによる暗号化
RSAによる復号化
鍵ペアを作る
具体的にやってみよう
RSAへの攻撃
暗号文から平文を求める
ブルート・フォース・アタックでDを見つける
EとNからDを求める
man-in-the-middle攻撃
選択暗号文攻撃
他の公開鍵暗号
EIGamal方式
Rabin方式
楕円曲線暗号
公開鍵暗号に関するQ&A
公開鍵暗号の機密性
公開暗号と対称暗号の最長
対称暗号の未来
RSAと素数
RSAと素因数分解
RSAのビット長
この章のまとめ
クイズの解答

第6章 ハイブリッド暗号システム
——対称暗号でスピードアップし、公開鍵暗号でセッション鍵を守る
ハイブリッド車
この章で学ぶこと
ハイブリッド暗号システム
対称暗号と公開鍵暗号
ハイブリッド暗号システム
暗号化
復号化
ハイブリッド暗号システムの具体例
強いハイブリッド暗号システムとは
疑似乱数生成器
対象称号
公開鍵暗号
鍵長のバランス
暗号技術の組み合わせ
この章のまとめ
クイズの解答

第Ⅱ部 認証

第7章 一方向ハッシュ関数
メッセージの「指紋」をとる
この章で学ぶこと
一方向ハッシュ関数とは何か
このファイルは本物かしら
一方向ハッシュ関数とは
一方向ハッシュ関数の性質
用語について
一方向ハッシュ関数の応用例
ソフトウェアの改竄検出
パスワードを元にした暗号化
メッセージ認証コード
デジタル署名
疑似乱数生成器
ワンタイムパスワード
一方向ハッシュ関数の具体例
MD4,MD5
SHA-1, SHA-256, SHA-384, SHA-512
RIPEMD-160
SHA-3
SHA-3の選定プロセス
SHA-3とは何か
SHA-3の選定プロセス
SHA-3最終候補の絞り込みとSHA-3の決定
KECCAK
KECCAKとは何か
スポンジ構造
デュプレクス構造
KECCAKの内部状態
関数KECCAK
KECCAKへの攻撃
弱いKECCAKへの攻撃コンテスト
どの一方向ハッシュ関数を使えばよいのか
一方向ハッシュ関数への攻撃
ブルート・フォース・アタック(攻撃のストーリー1)
誕生日攻撃(攻撃のストーリー2)
一方向ハッシュ関数で解決できない問題
この章のまとめ
クイズの解答

第8章 メッセージ認証コード
——メッセージは正しく送られてきたか
この章で学ぶこと
メッセージ認証コード
これは正しい送金依頼か
メッセージ認証コードとは何か
メッセージ認証コードの利用手順
メッセージ認証コードの鍵配送問題
メッセージ認証コードの利用例
SWIFT
IPsec
SSL/TLS
メッセージ認証コードの実現方法
一方向ハッシュ関数を使って実現
ブロック暗号を使って実現
その他の方法で実現
認証付き暗号
GCMとGMAC
HMACの詳細
HIMACとは何か
HMACの手順
メッセージ認証コードに対する攻撃
再生攻撃
値の推測による攻撃
メッセージ認証コードで解決できない問題
第三者に対する証明
否認防止
この章のまとめ
クイズの解答

第9章 デジタル署名
——このメッセージを書いたのは誰か
おかあさんヤギの認証
この章で学ぶこと
デジタル署名
アリスの借用書
メッセージ認証コードからデジタル署名へ
署名の作成と署名の検証
公開暗号とデジタル署名デジタル署名の方法
メッセージに直接署名する方法
メッセージのハッシュ値に署名する方法
デジタル署名に対する疑問
暗号文がなぜ署名として使えるのか
機密性が保てないのではないか
コピーが作れるのではないか
書き換えができるのではないか
署名だけ再利用できてしまうのではないか
署名を削除しても「契約破棄」できないのではないか
どうして否認防止になるのか
デジタル署名は本当に署名の代わりになるのか
デジタル署名の利用例
セキュリティ情報のアナウンス
ソフトウェアのダウンロード
公開の証明書
SSL/TLS
RSAによるデジタル署名
RSAによる署名の作成
RSAによる署名の検証
具体的にやってみよう
他のデジタル署名
EIGamal方式
DSA
ECOSA
Rabin方式
デジタル署名に対する攻撃
man-in-the-middle攻撃
一方向ハッシュ関数に対する攻撃
デジタル署名を使って公開鍵暗号を攻撃
潜在的偽造
その他の攻撃
比較してみよう
メッセージ認証コードとデジタル署名
ハイブリッド暗号システムとハッシュ値へのデジタル署名
デジタル署名で解決できない問題
この章のまとめ
クイズの解答
第10章 証明書
——公開鍵へのデジタル署名
この章で学ぶこと
証明書
証明書とは何か
証明書を使うシナリオ
証明書を作ってみよう
シマンテックのデジタルID無料お試しサービス
証明書の作成証明書を表示する
証明書の標準規格
公開鍵基盤(PKI)
公開鍵基盤(PKI)とは何か
PKIの構成要素
認証局の仕事
階層になった証明書
さまざまなPKI
証明書に対する攻撃.
公開鍵の登録前を攻撃
似た人間を登録する攻撃
認証局のプライベートを盗み出す攻撃
攻撃者自身が認証局になる攻撃
CRLの隙を突く攻撃(1)
CRLの隙を突く攻撃(2)
Superfish
証明書に対するQ&A
証明書がなぜ必要なのか
独自の認証方法を使ったほうが安全ではないか
認証局はどうやって信頼するか
この章のまとめ
クイズの解答

第Ⅲ部 鍵・乱数・応用技術
第11章 鍵
——秘密のエッセンス
この章で学ぶこと
鍵とは何か
鍵はとても大きな数
鍵は平文と同じ価値を持つ
暗号アルゴリズムと鍵
さまざまな鍵
対称暗号の鍵と公開鍵暗号の鍵
メッセージ認証コードのとデジタル署名の鍵
機密性のための鍵と認証のための鍵
セッション鍵とマスター鍵
コンテンツを暗号化する鍵と、鍵を暗号化する鍵
鍵を管理する
鍵を作る
鍵を配送する
鍵を更新する
鍵を保存する
鍵を捨てる
Diffie-Hellman鍵交換
Diffile-Hellman鍵交換とは何か
Diffle-Hellman鍵交換の手順
イブは鍵を計算できないのか
生成元の意味
具体的にやってみよう
楕円曲線Diffia-Hellmant鍵交換
パスワードを元にした暗号(PBE)
パスワードを元にした暗号とは何か
PBEの暗号化
PBEの復号化
ソルトの役割
パスワードの役割
ストレッチングによるPBEの改良
安全なパスワードを作るには
自分だけが知り得る情報を使うこと
複数のパスワードを使い分けること
メモを有効に使うこと
パスワードの限界を知ること
パスワード生成/管理ツールを使うこと
この章のまとめ
クイズの解答

第12章 乱数
——予測不可能性の源
ロバの錠前屋
この章で学ぶこと
乱数が使われる暗号技術
乱数は何に使われるか
乱数の性質
乱数の性質を分類する
無作為性
予測不可能性
再現不可能性
擬似乱数生成器
疑似乱数生成器の構造
具体的な擬似乱数生成器
でたらめな方法
線形合同法
一方向ハッシュ関数を使う方法
暗号を使う方法
ANSI X9.17
その他のアルゴリズム
擬似乱数生成器に対する攻撃
種に対する攻撃
ランダムブールに対する攻撃
この章のまとめ
クイズの解答

第13章 PGP
——暗号技術を組み合わせる職人芸
この章で学ぶこと
PGPの概要
PGPとは何か
OpenPGPについて
GNU Privacy Guardについて
PGPの機能
鍵ペアの作成
暗号化と復号化
暗号化
復号化
デジタル署名の作成と検証
デジタル署名の作成
デジタル署名の検証
「デジタル署名の作成と暗号化」および「復号化とデジタル署名の検証」
デジタル署名の作成と暗号化
復号化とデジタル署名の検証
信頼の網
公開の正当性
ケース1:自分自身のデジタル署名によって確認する
ケース2:自分が常に信頼している人のデジタル署名によって確認する
ケース3:自分が部分的に信頼している人たちのデジタル署名によって確認する
公開の正当性と所有者信頼は別
所有者信頼の値は個人的なもの
この章のまとめ
クイズの解答

第14章 SSL/TLS
——セキュアな通信のために
この章で学ぶこと
SSL/TLSとは何か
アリスがボブ書店で本を買う
クライアントとサーバ
HTTPをSSL/TLSの上に乗せる
SSL/TLSの仕事
SSL/TLSは他のプロトコルも守ることができる
暗号スイート
SSLとTLSの違い
SSL/TLSを使った通信
階層化されたプロトコル
1 TLSレコードプロトコル
2-1 ハンドシェイクプロトコル
2-2 暗号仕様変更プロトコル
2-3 警告プロトコル
2-4 アプリケーションデータプロトコル
マスターシークレット
TLSで使われている暗号技術のまとめ
SSL/TLSへの攻撃
個々の暗号技術への攻撃
OpenSSLのHeartBleed脆弱性
SSL3.0の脆弱性とPOODLE攻撃
FREAK攻撃と暗号輸出規制
疑似乱数生成器に対する攻撃
証明書の隙を突く攻撃
SSL/TLSのユーザへの注意
証明書の意味を勘違いしないように
暗号通信前のデータは守られていない
暗号通信後のデータは守られていない
この章のまとめ
クイズの解答

第15章 暗号技術と現実社会
——不完全なセキュリティの中で生きる私たち
この章で学ぶこと
暗号技術のまとめ
暗号学者の道具箱
暗号と認証
暗号技術のフレームワーク化
暗号技術は圧縮技術
仮想通貨ビットコイン
ビットコインとは
P2Pネットワーク
アドレス
ウォレット
ブロックチェーン
ブロックの追加
トランザクション
採掘
承認
匿名性について
信用の意味
ビットコインのまとめ
完全な暗号技術を夢見て
量子暗号
量子コンピュータ
どちらが先に実用化されるか
暗号技術が完全になっても、人間は不完全
理論が完全でも、現実は不完全
防御は完全でなければならないが、攻撃は一点を破ればよい
攻撃例1:PGP暗号化されたメールに対して
攻撃例2:SSL/TLSで暗号化されたクレジットカード番号に対して
この章のまとめ

付録
楕円曲線暗号
暗号技術確認クイズ
参考文献
索引

結城 浩 (著)
出版社 : SBクリエイティブ (2015/8/25) 、出典:出版社HP

現代暗号入門 いかにして秘密は守られるのか (ブルーバックス)

現代暗号の進化とその仕組みについて分かりやすく解説

現代の暗号技術には、純粋数学者が追究した緻密で膨大な研究成果が惜しみなく投入されています。本書では、開発者と攻撃者の熾烈な争いを追いながら、実際に使われている暗号技術を解説します。また、現代的な暗号の基本要素である「共通鍵暗号」「ハッシュ関数」「公開鍵暗号」にくわえ、類書ではほとんど解説のない、ハードウェアの面からの暗号解読についても紹介しています。

神永 正博 (著)
出版社 : 講談社 (2017/10/18) 、出典:出版社HP

まえがき

もともと暗号は、軍事的な通信を秘匿するために作られた。長い間、我々の生活とは無縁なものだったが、今や暗号なしに生活するのは難しい。インターネットショッピング、携帯電話、Wi-Fi、ICカードはもちろん、ビットコインを始めとする暗号通貨も、電子署名とハッシュ関数という暗号技術でできている。
これほど暗号に依存しているにもかかわらず、技術の根本を理解し、最新技術に通じている者は驚くほど少ない。

暗号は数学技術の塊だ。だが、いわゆる純粋数学者が好むような格調高い領域ではなく、なんでもありの雑多な世界である。
この世界には、多種多様な蛮族が棲んでいる。出自もさまざまだ。数学出身者、電気工学を勉強していてたまたま暗号をやることになった者、名うてのハッカー、技術オタクのサラリーマン、政府諜報機関の役人、そして犯罪者。イーロン・マスクの誘いを断ったジョージ・フランシス・ホッツのような生きのいいハッカーもいる。暗号無政府主義者(クリプトアナキスト)を名乗るルイス・アイヴァン・クエンデは、スタンペリー社のスタートアップに携わり、ブロックチェーンテクノロジーで世界を変えようと目論む野心家だ。
暗号の開発者(ディフェンダー)と攻撃者(アタッカー)の応酬は、スポーツやゲームを思わせる。ディフェンダーが電子署名の処理を高速化するため、秘密鍵の一部を短くすれば、アタッカーは連分数で迎え撃つ。十分なランダム性を持たない乱数を、つい使ってしまったディフェンダー。アタッカーはそのわずかな隙も見逃さず、秘密素数を露わにする。またあるときは、ICカードの消費電力を統計処理にかけ、鍵を暴き出してみせる——。
なぜこんなことが可能なのか。例えば、連分数のような技術は数学から持ち込まれた。ランダム性の不足を見抜くには、ソフトウェアの知識が必要だ。消費電力の解析は電気の分野から。ICチップに格納された暗号の鍵を盗むため、マイクロサージェリーなる手術が行われることもある。これにはデバイスの加工技術が必要だ。
暗号業界は、様々なバックグラウンドを持った連中が発展させてきた。数学が100メートル走だとするなら、暗号はいわばトライアスロン。複合競技なのだ。

ある数学者が言っていた。
「この間の国際会議では驚いたよ。新しい暗号を発表したら、ピラニアみたいに暗号学者が食いついてきて、次から次へと暗号の欠点を探し出してきてね」と。
暗号が発表された途端、その場で他の学者たちがプログラムを書き、解読し始める。即座に解かれた暗号すらある。それが暗号業界だ。

この業界はとにかく進歩が速い。いわば暗号戦争ともいうべき世界的競争は加速するばかりである。
本書の最大の特徴は、実際に使われている現代的な暗号技術の概略が書かれていることだ。リアルな脅威に対応するため、執筆中にも数十ヵ所のデータを差し換えた。

現代的な暗号の基本要素は、共通鍵暗号、ハッシュ関数、公開鍵暗号である。これらを組み合わせて、様々なシステムを構築する仕組みになっている。本書では、それぞれの部品の役割とそれらの利用法が、様々な実例を通じて明らかになっている。
難解なテーマであり、登場する数式も独特なものが多いが、数式が全て理解できなくても現代暗号のエッセンスはつかめるはずだ。高校2年生レベル以上の数学知識(微積分はほぼ不要)があれば、十分に理解できるだろう。また必要なら、豊富な脚注と巻末注によって詳細を知ることもできる。暗号の初心者はもちろん、腕に覚えのある読者にも役立ててもらいたい。

暗号は面白い。頭脳で勝負する野蛮人のゲームを楽しんでいただけたら幸いである。

本書をまとめるにあたり、林優一氏(奈良先端科学技術大学院大学)、吉川英機氏(東北学院大学)の査読を受け、有益なコメントをいただいた。記して感謝したい。なお残る誤りは、全て筆者の責任である。

本書の見取り図は右のようになっている。第5章のサイドチャネルアタックは、暗号全てと関わるものである。

 

神永 正博 (著)
出版社 : 講談社 (2017/10/18) 、出典:出版社HP

目次

まえがき

第1章 共通鍵暗号
暗号の歴史は、情報を隠す側と見破る側の熾烈な競争の歴史でもある。最もシンプルな「シーザー暗号」から、高度な数学によって構成された現代の暗号まで、それらが破られてきた過程をたどりながら、それぞれの暗号の仕組みを学んでいこう。

ジュリアス・シーザーの暗号から
偏りを攻撃せよ
システムを構成する三種の神器
ある意味、最強—バーナム暗号—
シンプルだから速い—ストリーム暗号—
RC4、破られる
秘密主義は危険だ
ブロック暗号の基礎
米国標準ブロック暗号DES
差分解読法は想定されていた
あのDESを倒した—線形解読法—
美しいAES
暗号化しても元データが見える
IC乗車券、携帯電話SIMは何をしているか

第2章 ハッシュ関数
暗号の使い方は通信内容を秘匿するだけではない。この章では、暗号が、通信内容が第三者によって改竄されていないかを確認する手段になることや、ウェブサービスのパスワード認証にも用いられていることを解説する。

切り刻んで混ぜる法
マークル・ダンガード構成法
鍵付きハッシュ関数を破る
バースデーパラドックス
パスワード認証

第3章 公開鍵暗号——RSA暗号
これまでの章で扱った暗号は、暗号化の鍵(閉める鍵)と解読の鍵(開ける鍵)が同じものだった。しかし、1976年に登場した公開鍵暗号は、閉める鍵と開ける鍵が異なるという驚くべきものだった。本章では、代表的な公開鍵暗号のひとつRSA暗号を解説する。

公開鍵という思想
RSA暗号
素数は弾切れになるか
素数をどうやって見つけるか
ハイブリッド暗号方式
郵便チェスの応用—中間者攻撃—
電子署名とその証明
危険なNのサイズ
フランスの地下鉄を欺く
SSL
マイナンバーの何がどう安全なのか
公開鍵が使いまわされている?
復元可能なメッセージ
ブロードキャスト攻撃
極めて強力—連分数攻撃—

第4章 公開鍵暗号——楕円曲線暗号
RSA暗号はたくさんの素数を用意しなければならないという難点があった。そこで登場した技術のひとつが、離散対数問題という数学に基づいた「楕円曲線暗号」だ。じつは暗号通貨とも呼ばれる「ビットコイン」もこの技術を用いている。

より高速に
足し算をするには
有限体で考える
楕円曲線上の離散対数問題を応用する
楕円曲線署名(ECDSA)
痛恨のミス
ビットコイン
計算量という概念
一方向性関数は存在するか?

第5章 サイドチャネルアタック
暗号は、数学的な理論だけでなく、それを動かすハードウェアも重要な構成要素となる。本章では、ICチップの消費電力から暗号解読の手掛かりを得る方法や、そのような攻撃をどのように防ぐのかについて詳しく見ていく。

裏口を開ける
ICチップの仕組み
逆解析とマイクロ手術
時そば的フォールトアタック
高速化の代償
DFAからICチップを守る
巨大すぎて見えない敵
DPA—差分電力解析—
素朴な対策が効かない!
鉄壁の防衛が最強の攻撃になる

巻末注
参考文献
画像クレジット
索引

神永 正博 (著)
出版社 : 講談社 (2017/10/18) 、出典:出版社HP

暗号技術の教科書

現代社会で欠くことのできない暗号を基礎から学ぶ

本書は、現代社会で必要不可欠な「暗号」について、エピソードを交えながら、古典的暗号から電子暗号まで、暗号が現代生活にどのように利用されているか、意外なところで活躍している暗号や、その仕組みを分かりやすく紹介しています。また、暗号の入門書籍では語られることの少ないエレクトロニクスと暗号技術の深い関係を探ることもできます。

吹田 智章 (著)
出版社 : ラトルズ (2018/12/21) 、出典:出版社HP

はじめに

私が『暗号のすべてがわかる本デジタル時代の暗号革命」を技術評論社から出版させて頂いてから既に20年が経過した。
この本は歴史上の暗号とそれにまつわる話題を取り上げ、その進化が現在のデジタル社会を支える暗号技術へと進化したことを様々なエピソードと共に紹介している。さすがに出版社が付けた「すべてがわかる.」というタイトルには恥ずかしい思いをしたものであるが。

現在、社会を支えるICT(通信情報技術)は暗号技術無しには成立し得ないと断言できる。さらに金融の世界を変えようとしているフィンテック(Fintech)も同様だ。金融のあり方に一石を投じたとも言える仮想通貨の登場も何かと話題に上っている。
コネクテッド・カーや自動運転、IoTのセキュリティのためにも暗号技術は役に立つことだろう。
20年前には想像もできなかった暗号の応用技術が登場し、中にはハッキングされてしまった暗号が問題になったり、量子コンピュータが暗合を脅かせていたりする。
改めて『暗号のすべてがわかる本」の改訂版出版の機会を頂いたことをきっかけに、20年前には紹介できなかった新しい暗号技術やエピソードを加えて紹介してゆきたいと思う。

では簡単に本書の内容を紹介していこう。

カエサルの時代には既に使われていた暗号。権力者たちの道具であった暗号は時に歴史を作り、また、数々の悲劇をも生んできた。
私が暗号に出会ったのは小学生の頃、月刊少年雑誌の付録についていた少年探偵手帳のようなものだったように記憶している。
そんな非日常的であった暗号がいつのまにか我々の生活に欠かせない技術となり、また学問になっていた。時の流れは暗号を時代の寵児としてしまった。
そんな中、暗号の本が多数出版されているが、その多くは数学者や専門家向けのものであったり、中には入門書とは言うものの説明の難解なものも多い。

そんなわけで本書では難しい数学の話しは程々にして気怪に暗号について知ってもらえるように話題を集めてみた。「私には暗号なんて関係がないし使ってもいない」とは言っても暗号技術は我々の社会のあちこちで利用されており、知らず知らずのうちに暗号を利用しているかもしれない。
本書を読んでいただければその一部をうかがい知ることができるだろう。
一部、専門的で難しい所があったなら読み飛ばしてかまわない。

第1部「黎明期の暗号とその分類」では暗号とは、そして過去の暗号法を分類して紹介する。

第2部「近代暗号と暗号機械の誕生」では試行錯誤から生まれた様々な暗号機械の登場と戦後までを振り返ってみた。
また、ここでは過去に利用された多項式暗号の実際の解読方法の例を紹介する。

第3部「エレクトロニクスと暗号技術」ではエレクトロニクスと暗号のかかわりを紹介してゆく。狭義には暗号とは言えない内容も含まれているが、エレクトロニクスに暗号がどのように関わってくるか、その必要性やデジタル化がいかに暗号を扱う上で有利かなどを知る参考になるだろう。

第4部「サイバー時代の暗号技術」では今、主流となっている暗号のアルゴリズムやそれを取り囲む話題などを紹介する。
仮想通貨のブロックチェーンやそのベースのひとつハッシュ値、いまや暗号存続の脅威となっている量子コンピュータについてもその仕組みを解説する。

暗号を取り巻く環境は単なる秘匿通信ばかりではなく、政治、経済、エレクトロニクス、通信、数学など多くの分野にまたがっている。興味ある分野から暗号を見てみるのも一興だろう。

改めて改訂版出版に快諾を頂いたラトルズ、そして吉田編集長に感謝の意を表します。

Digital Cypher Revolution
デジタル暗号革命

吹田 智章 (著)
出版社 : ラトルズ (2018/12/21) 、出典:出版社HP

Contents

はじめに

第1部 黎明期の暗号とその分類

1-1 なぜ今、暗号がトレンドなのか
デジタル技術で生かされる暗号テクノロジー
1-2 暗号の定義
1-3 通信の変遷と暗号
1-4 方言は暗号だった!?
1-5 スーパー・コンピュータとカエサルの関係
1-6 少女たちは暗号を使いこなす!?
1-7 世界最古の暗号装置スキュタレー
1-8 小野小町 和歌に隠された暗号
1-9 実在したモノリス
1-10 日本書紀の暗号
1-11 逐次暗号とブロック暗号

第2部 近代暗号と暗号機械の誕生
—近代暗号史

2-1 拡張カエサル暗号
2-2 物理者が作った暗号機械
2-3 電動機械式暗号機の登場
2-4 暗号の天才、フリードマンの登場
2-5 テレタイプ式自動暗号機の誕生
2-6 シリンダー暗号機M-94
2-7 エニグマ暗号機械の誕生
2-8 007も伊達じゃない。イギリス情報部
2-9 どっちが先、英米コンピュータ競争
2-10 14万台生産された合衆国陸軍M-209機
2-11 米国が生んだ暗号機「シガバ」
2-12 九七式暗号機とパープルの誕生
2-13 マジックvsパープル
2-14 秘密主義の犠牲
2-15 太平洋戦争と暗号
2-16 推理小説と暗号
2-17 ベルヌ,多表式暗号を解読する
2-18 多表式暗号を解く正攻法

第3部 エレクトロニクスと暗号技術

電子時代のサイバー暗号

●第1章 ハイパー・プロテクト AV編
1-1 コピーすると画像の乱れるビデオテープの謎
1-2 コピープロテクトがCDドライブを破壊する!?
〜コピーコントロールCDの闇
1-3 一世代までしかコピーできない録音テープの不思議
〜早すぎたDATの誕生
1.4 著作権保護技術てんこ盛りのDVD。それでも破られたのはなぜ?
1-5 メーカーとコンテンツホルダーの憂鬱
1-6 デジタル放送
〜なぜB-CASカードが必要か
1-7 HDTVから4Kへ
〜Blu-ray Disc(ブルーレイディスク)の登場

●第2章 通信編
2-1 アナログからデジタルへ
〜通信方式の変遷とプライバシー保護
2-2 インターネットの安全性を確保する
2-3 デジタルでも盗聴された警察無線!
2-4 鍵がないと動かない自動車のはずだが

●第3章 コードとカード編
3-1 鍵がないと動かないプログラム
〜電子の鍵 デバイスキー方式プロテクト
3-2 ボーと秘密インク
〜見えないバーコード
3-3 書かれていないのに価格のわかるバーコードの謎
3-4 価格表に隠された秘密(隠された原価)
3-5 磁気で書かれた情報
〜クレジットカードとキャッシュカード
3-6 なぜテレホンカードは変造されたのか
3-7 半導体がカードを守る
〜ICカードの登場

第4部 サイバー時代の暗号技術

●第1章 共通鍵暗号
1-1 共通鍵暗号の要素技術
1-2 ブロック暗号モードの操作
(Block cipher modes of operation)
1-3 共通鍵暗号DESの登場
1-4 「あみだ」から生まれた国産暗号アルゴリズムFEAL
1-5 DESからAESへ
〜次世代暗号の登場

●第2章 公開鍵暗号
2-1 共通鍵暗号から公開鍵暗号へ
2-2 鍵を安全に届ける数学のマジック
〜DH鍵交換
2-3 RSA暗号の登場
2-4 公開鍵(暗号化鍵)で解読できない暗号のふしぎ
2-5 公開鍵暗号の弱点
2-6 公開鍵暗号の世代交代
〜楕円曲線暗号へ

●第3章 電子署名
3-1 一石二鳥、公開鍵暗号の効用
〜電子署名
3-2 電子署名の肝 ハッシュ関数
3-3 あなたは誰?
〜公開鍵の認証をどうするか
3-4 認証局がなければ
〜もう1つの認証方法
3-5 鍵事前配布方式KPS

●第4章 電子商取引
4-1 電子認証とEコマース
4-2 クレジット決済システム
4-3 クレジットから電子マネーへ
4-4 電子マネーのためのブラインド署名

●第5章 埋め込まれたコード 電子透かし
5-1 著作物と電子透かし
5-2 電子透かしとは
5-3 電子透かしの新たな用途
5-4 電子透かしに代わるもの
5-5 AIの驚異が迫る
5-6 イスラエル生まれの画像化暗号ソフト

●第6章 広がる暗号技術の利用と次世代暗号技術
6-1 暗号技術の解放
〜大衆のための公開暗号 PGP
6-2 新しい公開鍵のカタチ
〜IDベース暗号(IBE)
6-3 仮想通貨を繋ぐ!?
〜ブロック・チェーン
6-4 迫りくる量子コンピュータの驚異
〜量子コンピュータとは

●第7章 暗号攻撃とタンパ・レジスタント・ソフトウエア技術
7-1 暗号攻撃法
7-2 暗号ソフトを守る

●第8章 国家と暗号
8-1 米国の暗号政策
8-2 失敗した暗号管理 鍵供託システム
8-3 日本の暗号とセキュリティ政策

おわりに

資料編
参考図書
コンテンツ保護関連用語一覧
世界の暗号関係機関
年表

索引

吹田 智章 (著)
出版社 : ラトルズ (2018/12/21) 、出典:出版社HP

暗号技術のすべて

暗号技術を一通りわかりやすく

本書は、暗号技術を解説しています。セキュリティにおける暗号技術の役割から、古典暗号、共通鍵暗号、公開鍵暗号、ハッシュ関数など現代の通信に利用されている暗号技術が詳しく解説されています。認証コードやデジタル署名、鍵と乱数、暗号に関連した最近の話題など暗号に関連した内容が充実しています。

IPUSIRON (著)
出版社 : 翔泳社; 第1版 (2017/8/3) 、出典:出版社HP

まえがき

コンピュータやスマホが普及した現在ですが、情報セキュリティは大きな課題となっています。個人情報の漏えい、システムへの侵入、ウイルスの感染など、毎日のようにセキュリティに関するニュースが後を絶ちません。
暗号技術は、セキュリティを実現する大きな柱の1つです。例えば、インターネットショッピング、ATMの操作、ICカードでの運賃支払いなどに利用されています。一般にユーザーが意識しない裏方において、多くの暗号技術が活用されています。しかし、強力な暗号技術が使われていても、運用や実装に問題があれば、システムの安全性を破られる恐れがあります。それはちょっとしたミスや違いから引き起こされます。また、単独では安全なシステムでも、組み合わせることで安全性が損なわれることもあります。
こうした問題を解決するには、システムの設計者・開発者が個々の暗号技術について正しく理解しなければなりません。さらに、ユーザーも適切な運用をしなければなりません。サービス提供側はシステムが安全だと主張しますが、それが本当であるかわかりません。つまり、システムの安全性を鵜呑みにせず、問題の影響を最小限にするために心がける必要があります。

本書は、暗号技術の基本をひととおり紹介しています。大きな特徴は、現代暗号だけでなく、古典暗号についても解説していることです。暗号とは、通信文を秘密にすることが目的です。古典暗号と現代暗号では、その実現方法や背景が違いますが、目的は同様といえます。アルゴリズムの観点から見ることで、そういったことも理解できるはずです。
本書を読むための予備知識は、コンピュータに関する初歩と、高校レベルの数学だけで済むように配慮しました。数学的な準備が必要な場合には、数値例や図解で解説しています。これにより、直観的に理解できるはずです。

著者が暗号理論に取り組むきっかけとなったのは、情報セキュリティ大学院大学に入学したことです。そこでは、暗号理論を学習・研究する機会を与えていただきました。その結果、暗号理論に魅了されました。指導教官、ならびに教員の皆様には、この場を借りて深く感謝いたします。
最後になりますが、本書の出版に際して、株式会社翔泳社、ならびに編集者の秦和宏氏に深く感謝いたします。
2017年8月 IPUSIRON

IPUSIRON (著)
出版社 : 翔泳社; 第1版 (2017/8/3) 、出典:出版社HP

本書の特徴

古典暗号から現代暗号までを体系的に解説
本書の主なテーマは暗号技術の安全性です。まずは歴史的に重要な役割を果たした古典暗号から解説します。古典暗号といっても、そこには現代暗号のエッセンスが垣間見られます。その後、共通鍵暗号や公開鍵暗号といった現代暗号について解説します。これが暗号技術の基本となり、デジタル署名やハッシュ関数につながります。最後には暗号技術の応用アプリケーションについて紹介します。

暗号技術の絡み合いを解き明かす
暗号技術は様々な技術の組み合わせで構成されています。これをアルゴリズムという観点から解き明かします。アルゴリズムというとその内部動作ばかりに目が向きがちですが、本書ではアルゴリズムの入出力に注目します。これにより、アルゴリズムの相互関係がより明確になります。

「読める」「使える」「見える」「楽しむ」が目標
本書を通じて、暗号の基本だけでなく、暗号技術の世界に慣れることができます。その結果、以下のことを実現できます。

・「読める」…専門書や論文を読む準備ができる。
・「使える」…適切な運用や実装ができる。
・「見える」…日常に隠された暗号技術に気付く。
・「楽しむ」…古典暗号と現代暗号に魅了される。

数学も克服する
現代暗号は数学を基礎としているため、複雑な数式が登場します。数式を避けて理解するというアプローチもありますが、本書では数式を克服して理解するアプローチを採用しています。より発展的な文献を読むためには、数式の理解が必須条件であるためです。
本書では、高校レベル程度の数学を前提としていますが、必要に応じて復習しています。また、図解を多くすることによって、理解しやすくなるように配慮しました。

対象読者
・推理小説や歴史小説で暗号に興味を持った方
・基礎から暗号技術について学びたい方
・開発や運用で暗号技術に携わる方
・セキュリティ全般に興味がある方
・これまで暗号の勉強に挑戦したが、挫折してしまった方
・暗号講座を受講している学生の方
・資格試験やCTFで暗号理論の問題を得点源にしたい方

本書の読み方
基本的には1章から読むことで段階的に理解を深められる構成になっていますが、途中の項目から読むこともできます。関連項目を設けているので、他のページに行き来しやすいようになっています。
もし読み進めているときにわからない箇所があっても、そこで諦めないでください。とりあえずはそういったものだと割り切り、読み進めることをお勧めします。全体を理解することが重要です。個々の細かい内容については、必要に応じて理解すれば十分です。

「安全性/効率性/実装の容易さ」の表記について
本書では、各暗号技術について、以下の項目を★マークでランク付けしています。5段階評価で、★が多いほど以下の点に優れています。

・「安全性」…強い安全性を満たす、弱い仮定しか必要としない、現実的な環境を想定している
・「効率性」…計算処理が速い、扱うデータサイズが小さい、通信サイズや回数が小さい、並列処理ができる
・「実装の容易さ」…単純な処理で実現できる、共通処理が多い、ライブラリが普及している

なお、古典暗号と現代暗号では利用できる技術や背景が大きく異なるため、それぞれ独立して評価しています。古典暗号で安全性が★5つでも、現在のコンピュータを使えば容易に解読できます。しかし、現代暗号で★5つのものは、高性能なコンピュータを用いても、現時点では効率的な解読が不可能です。

IPUSIRON (著)
出版社 : 翔泳社; 第1版 (2017/8/3) 、出典:出版社HP

CONTENTS

まえがき
本書の特徴
ダウンロード特典について

CHAPTER1 セキュリティと暗号技術
1.1 情報セキュリティの構成要素
1.1.1 情報セキュリティの6要素
1.1.2 要素と暗号技術の関係
1.2 セキュリティを実現する暗号技術
1.2.1 暗号の基礎技術
1.3 暗号技術のアルゴリズムを意識する
1.3.1 アルゴリズムを分けて考える
1.3.2 暗号技術をアルゴリズムとしてとらえる理由
1.3.3 本書におけるアルゴリズムの表現

CHAPTER2 古典暗号
2.1 古典暗号の概要
2.1.1 古典暗号とは
2.1.2 古典暗号の平文空間
2.2 シーザー暗号
2.2.1 シーザー暗号とは
2.2.2 シーザー暗号のアルゴリズム
2.2.3 シーザー暗号の改良
2.3 コード
2.3.1 コードとは
2.3.2 コードのアルゴリズム
2.3.3 コードの解読
2.4 スキュタレー暗号
2.4.1 スキュタレー暗号とは
2.4.2 スキュタレー暗号のアルゴリズム
2.4.3 スキュタレー暗号の解読
2.5 転置式暗号
2.5.1 転置式暗号とは
2.5.2 転式暗号のアルゴリズム
2.5.3 転置式暗号の数
2.6 単一換字式暗号
2.6.1 換字式暗号とは
2.6.2 単一換字式暗号のアルゴリズム
2.6.3 単一換字式暗号の鍵数
2.6.4 アルベルティの暗号円盤
2.6.5 度分析による暗号解読
2.6.6 頻度分析への対策
2.7 多表式暗号
2.7.1 多表式暗号とは
2.7.2 トマス・ジェファーソンの暗号筒
2.7.3 ヴィジュネル暗号
2.7.4 多表式暗号の解読
2.7.5 ヴィジュネル暗号の改良

CHAPTER3 共通鍵暗号
3.1 古典暗号から現代暗号へ
3.1.1 現代暗号の発展
3.2 共通體暗号の概要
3.2.1 共通鍵暗号とは
3.3 共通鍵暗号の定義
3.3.1 共通鍵暗号の構成
3.4 共通鍵暗号の仕組み
3.4.1 共通鍵暗号のやり取り
3.4.2 共通鍵暗号の性質
3.4.3 共通鍵暗号の平文空間と暗号文空間
3.5 共通鍵暗号の安全性
3.5.1 共通鍵暗号の設計方針
3.5.2 共通鍵暗号の攻撃モデル
3.5.3 共通鍵暗号の解読モデル
3.5.4 安全な共通鍵暗号と健全数探索攻撃
3.6 共通鍵暗号の分類
3.6.1 ストリーム暗号
3.6.2 ブロック暗号
3.7 バーナム暗号
3.7.1 バーナム暗号とは
3.7.2 排他的論理和
3.7.3 ビットの共通鍵暗号
3.7.4 バーナム暗号の定義
3.7.5 バーナム暗号の計算で遊ぶ
3.7.6 バーナム暗号の安全性
3.7.7 バーナム暗号の死角を探る
3.8 ストリーム暗号
3.8.1 ストリーム暗号とは
3.8.2 ストリーム暗号の定義
3.8.3 ストリーム暗号の安全性
3.8.4 ストリーム暗号の死角を採る
3.9ブロック暗号
3.9.1 ブロック暗号の定義
3.9.2 ブロック暗号の暗号構造
3.9.3 ブロック暗号の安全性
3.9.4 ブロック暗号に対する全面的攻撃
3.9.5 ブロック暗号に対する識別攻撃
3.9.6 セキュリティマージン
3.9.7 ブロック暗号の処理時間
3.10 <ブロック暗号>DES
3.10.1 DESの概要
3.10.2 DESの定義
3.10.3 DESの死角を探る
3.10.4 S-DES
3.11 <ブロック暗号>トリプルDES
3.11.1 トリプルDESとは
3.11.2 トリプルDES定義
3.11.3 トリプルDESの特徴
3.11.4 トリプルDESの改良
3.12 <ブロック暗号>AES
3.12.1 AESとは
3.12.2 AESの種類
3.12.3 AESの定義
3.12.4 AESの特徴
3.12.5 AESの安全性
3.13 ブロック暗号の利用モード
3.13.1 利用モードとは
3.13.2 暗号化モードとは
3.13.3 暗号化モードの定義
3.13.4 暗号化モードの安全性
3.13.5 どの暗号化モードを採用するか
3.14 <暗号化モード>ECBモード
3.14.1 ECBモードとは
3.14.2 ECBモードの定義
3.14.3 ECBモードの死角を採る
3.15 <暗号化モード>CBCモード
3.15.1 CBCモードとは
3.15.2 CBCモードの定義
3.15.3 CBCモードの特徴
3.15.4 CBCモードの死角を採る
3.16 <暗号化モード>
3.16.1 CFBモード
3.16.2 CFBモードとは
3.16.3 CFBモードの定義
3.16.4 CFBモードの特徴
3.17 <暗号化モード>CFBモード
3.17.1 CFBモードとは
3.17.2 CFBモードの定義
3.17.3 CFBモードの特徴
3.18 <暗号化モード>CTRモード
3.18.1 CTRモードとは
3.18.2 CTRモードの定義
3.18.3 CTRモードの特徴
3.18.4 CTRモードの死角を採る
3.18.5 CTRモードとバーナム暗号

CHAPTER4 公開鍵暗号
4.1 公開鍵暗号の概要
4.1.1 公開鍵暗号とは
4.2 公開鍵暗号の定義
4.2.1 公開鍵暗号の構成
4.2.2 公開鍵暗号の仕組み
4.2.3 公開鍵暗号の性質
4.3 公開鍵暗号の安全性
4.3.1 公開鍵暗号の攻撃モデル
4.3.2 公開鍵暗号の解読モデル
4.3.3 公開鍵暗号の安全性の関係
4.3.4 安全性の定式化
4.4 公開鍵暗号に対する攻撃
4.4.1 公開鍵暗号に対する攻撃の分類
4.4.2 公開鍵のすり替え
4.4.3 全数探索攻撃
4.5 RSA暗号
4.5.1 RSA暗号とは
4.5.2 RSA暗号を理解するための数学知識
4.5.3 RSA暗号の定義
4.5.4 RSA暗号の計算で遊ぶ
4.5.5 RSA暗号に対する攻撃
4.5.6 素数の生成
4.5.7 RSA暗号の死角を探る
4.5.8 RSA暗号の効率化
4.6 Gamal暗号
4.6.1 Gamal暗号とは
4.6.2 Gamal暗号を理解するための数学知識
4.6.3 Gamal暗号の定義
4.6.4 Gamal暗号の計算で遊ぶ
4.6.5 Gamal暗号の死角を探る
4.6.6 Gamal暗号の改良
4.7 一般日Gamal暗号
4.7.1 一般日Gamal暗号とは
4.7.2 一般日Gamal暗号を理解するための数学知識
4.7.3 離散対数問題と群
4.7.4 一般日Gamal暗号の定義
4.7.5 一般日Gamal暗号の計算で遊ぶ
4.7.6 一般日Gamal暗号の死角を探る
4.8 Rabin暗号
4.8.1 Rabin暗号とは
4.8.2 Rabin暗号を理解するための数学知識
4.8.3 Rabin暗号の定義
4.8.4 Rabin暗号の計算で遊ぶ
4.8.5 Rabin暗号に対する攻撃
4.8.6 Rabin暗号の死角を採る
4.9 RSA-OAEP
4.9.1 RSA-OAEPとは
4.9.2 RSA-OAEPの定義
4.9.3 RSA-OAEPの計算で遊ぶ
4.9.4 RSA-OAEPに対する攻撃
4.9.5 RSA-OAEPの効率性
4.10 楕円日Gamal暗号(楕円曲線暗号)
4.10.1 楕円日Gamal暗号とは
4.10.2 楕円日Gamal暗号を理解するための数学知識
4.10.3 楕円日Gamal暗号の定義
4.10.4 精円日Gamal暗号の計算で遊ぶ
4.10.5 楕円日Gamal暗号の死角を採る
4.10.6 楕円曲線上のペアリング
4.11 IDベース暗号
4.11.1 IDベース暗号とは
4.11.2 IDベース暗号の定義
4.11.3 IDベース暗号の仕組み
4.11.4 IDベース暗号の死角を探る
4.11.5 Boneh-Franklin IDベース暗号の定義
4.11.6 Boneh-Franklin IDベース暗号の計算で遊ぶ
4.11.7 Boneh-Franklin IDベース暗号の死角を探る

CHAPTER5 ハッシュ関数
5.1 ハッシュ関数の概要
5.1.1 ハッシュ関数とは
5.2 ハッシュ関数の安全性
5.2.1 理想的なハッシュ関数
5.2.2 ハッシュ関数の標準的な安全性
5.2.3 衝突ペアが求まる条件と確率
5.2.4 3つの安全性を破るための計算回数
5.2.5 その他の安全性
5.3 ハッシュ関数の応用
5.3.1 データ改ざんの検出
5.3.2 暗号技術の構成要素としての利用
5.4 ハッシュ関数の基本設計
5.4.1 安全なハッシュ関数に必要な処理
5.4.2 撹拌処理を実現するということ
5.4.3 圧縮処理と一方向性を同時に実現するということ
5.5 反復型ハッシュ関数
5.5.1 反復型ハッシュ関数とは
5.5.2 圧縮関数
5.5.3 MD変換
5.5.4 圧縮関数の構成方法
5.5.5 反復型ハッシュ関数と圧縮関数の安全性
5.6 代用的なハッシュ関数
5.6.1 MD4/MD5
5.6.2 SHA-1/SHA-2
5.6.3 SHA-3
5.7 ハッシュ関数への攻撃
5.7.1 誕生日攻撃を超える衝突攻撃
5.7.2 伸長攻撃

CHAPTER6 メッセージ認証コード
6.1 メッセージ認証コードの概要
6.1.1 メッセージ認証の必要性
6.1.2 メッセージ認証コードの仕組み
6.1.3 メッセージ認証コードの設計方針
6.2 メッセージ認証コードの課題
6.2.1 メッセージ認証コードにできないこと
6.2.2 再送攻撃
6.3 メッセージ認証コードの安全性
6.3.1 メッセージ認証コードにおける安全性とは
6.3.2 選択メッセージ攻撃に対する偽造不可能性
6.3.3 疑似ランダム関数との識別不可能性
6.4 CBC-MAC
6.4.1 CBC-MACとは
6.4.2 CBC-MACの仕組み
6.4.3 CBC-MACの死角を探る
6.5 EMAC
6.5.1 BMACとは
6.5.2 EMACの仕組み
6.5.3 EMACの死角を探る
6.6 AMAC
6.6.1 AMACとは
6.6.2 AMACの仕組み
6.6.3 AMACの死角を探る
6.7 HMAC
6.7.1 HMACとは
6.7.2 HMACの仕組み
6.7.3 HMACの死角を探る
6.8 認証暗号
6.8.1 認証暗号とは
6.8.2 暗号化-and-MAC
6.8.3 暗号化-then-MAC
6.8.4 MAC-then-暗号化
6.8.5 認証付暗号化モード

CHAPTER7 デジタル署名
7.1 デジタル署名の概要
7.1.1 デジタル署名とは
7.2 デジタル署名の定義
7.2.1 デジタル署名の構成
7.2.2 デジタル署名の仕組み
7.2.3 デジタル署名の性質
7.3 デジタル署名と公開鍵暗号の関係
7.3.1 デジタル署名と危殆
7.3.2 公開鍵暗号からデジタル署名を作れるか
7.4 デジタル署名の安全性
7.4.1 安全なデジタル署名とは
7.4.2 デジタル署名の攻撃の種類
7.4.3 デジタル署名の偽造の種類
7.4.4 デジタル署名の安全性レベル
7.5 デジタル署名に対する攻撃
7.5.1 検証鍵の正当性と構成部品の安全性
7.5.2 中間者攻撃
7.5.3 ハッシュ関数を用いたデジタル署名に対する攻撃
7.6 RSA署名
7.6.1 RSA署名とは
7.6.2 RSA署名の定義
7.6.3 RSA暗号とRSA署名のアルゴリズムの比較
7.6.4 RSA署名の計算で遊ぶ
7.6.5 RSA署名の死角を探る
7.6.6 RSA署名の改良
7.7 RSA-FDH署名
7.7.1 RSA-FDH署名とは
7.7.2 RSA-FDH署名の定義
7.7.3 RSA-FDH署名の計算で遊ぶ
7.7.4 RSA-FDH署名の死角を探る
7.8 日Gamal署名
7.8.1 日Gamal署名とは
7.8.2 日Gamal署名の定義
7.8.3 日Gamal署名の計算で遊ぶ
7.8.4 日Gamal署名の死角を探る
7.8.5 日Gamal署名の一般化
7.9 Schnorr署名
7.9.1 Schnorr署名とは
7.9.2 Schnorr著名の定義
7.9.3 Schnarr署名の計算で遊ぶ
7.9.4 Schnorr署名の死角を探る
7.10 DSA署名
7.10.1 DSA署名とは
7.10.2 DSA署名の定義
7.10.3 DSA署名の計算で遊ぶ
7.10.4 DSA署名の死角を探る
7.11 その他の署名
7.11.1 メッセージ復元型署名
7.11.2 使い捨て署名
7.11.3 否認不可署名
7.11.4 故障停止署名
7.11.5 ブラインド署名
7.11.6 グループ署名
7.11.7 リング署名
7.11.8 検証者指定署名
7.11.9 代理署名
7.11.10 フォワード安全署名

CHAPTER8 鍵と乱数
8.1 鍵の配送
8.1.1 安全に配送する
8.1.2 事前に鍵を直接渡す
8.1.3 鍵配送センタの力を借りる
8.1.4 共通鍵暗号による鍵共有
8.1.5 公開鍵暗号による鍵共有
8.1.6 Diffie-Hellmanの健共有
8.1.7 Station-to-Stationプロトコルの鍵共有
8.1.8 楕円曲線上のDiffie-Hellmanの共有
8.1.9 ハイブリッド暗号
8.2 鍵管理
8.2.1 鍵管理の重要性
8.2.2 鍵生成
8.2.3 鍵の保存
8.2.4 鍵の寿命
8.2.5 鍵の廃棄
8.3 PKI(公開鍵基盤)
8.3.1 公開鍵の正当性
8.3.2 フィンガープリントによる公開鍵の正当性確認
8.3.3 信頼の輪モデルによる公開鍵の正当性確認
8.3.4 認証局モデルによる公開鍵の正当性確認
8.3.5 認証局
8.4 リポジトリ
8.4.1 リポジトリとは
8.5 電子証明書
8.5.1 電子証明書とは
8.5.2 証明書のフォーマット
8.5.3 証明書の種類
8.5.4 証明書の信頼性
8.5.5 証明書に対する攻撃
8.6 乱数
8.6.1 ランダム
8.6.2 乱数と乱数系列
8.6.3 乱数の周期
8.6.4 乱数の性質
8.6.5 似乱数と真性乱数
8.7 疑似乱数生成器
8.7.1 似乱数生成器とは
8.7.2 疑似乱数生成器の原理
8.7.3 線形合同法
8.7.4 線形化式
8.7.5 カーネル内の乱数生成器
8.7.6 ハードウェア乱数生成器を体験する
8.7.7 計算量的に安全な疑似乱数生成器

CHAPTER9 その他の暗号トピック
9.1 ゼロ知識証明プロトコル
9.1.1 証明プロトコルとは
9.1.2 ゼロ知識証明プロトコルとは
9.1.3 ゼロ知識証明プロトコルの性質
9.1.4 離散対数問題の困難性にもとづくゼロ知識証明プロトコル
9.1.5 Schnorrの証明プロトコル
9.1.6 対話証明から非対話証明への変換
9.1.7 非対話証明からデジタル署名への変換
9.2 秘密分散共有法
9.2.1 秘密分散共有法とは
9.2.2 秘密分散共有法の定義
9.2.3 満場一致法を採用した秘密分散共有法
9.2.4 しきい値法
9.3 電子透かし
9.3.1 電子透かしとは
9.3.2 人が識別できない情報を埋め込む理由
9.3.3 電子透かしの仕組み
9.3.4 電子透かしの実現
9.3.5 電子透かしの要件
9.3.6 電子透かしの種類
9.3.7 電子透かしで実現できる技術
9.3.8 秘密通信
9.4 SSL
9.4.1 SSLとは
9.4.2 SSL通信の仕組み
9.5 OpenSSL
9.5.1 OpenSSL
9.5.2 OpenSSLで共通鍵暗号を体験する
9.5.3 OpenSSLで公開鍵暗号を体験する
9.5.4 OpenSSLでデジタル署名を体験する
9.6 ビットコイン
9.6.1 ビットコインと暗号
9.6.2 ビットコインの単位と価値
9.6.3 P2Pネットワーク
9.6.4 ウォレット
9.6.5 ビットコインアドレス
9.6.6 ブロックチェーン
9.6.7 マイニング

巻末付録 補足資料

参考文献
索引

IPUSIRON (著)
出版社 : 翔泳社; 第1版 (2017/8/3) 、出典:出版社HP

暗号 情報セキュリティの技術と歴史 (講談社学術文庫)

暗号の歴史と役割

本書は、暗号の歴史と情報セキュリティにおける暗号について解説している本です。古代ギリシアやローマにまで遡る暗号の歴史は、現代になり、より幅広い分野で利用されるようになりました。本書では、その過程と暗号の発展状況、現代の暗号技術の技術的な解説がまとめられています。

辻井 重男 (著)
出版社 : 講談社 (2012/6/12) 、出典:出版社HP

学術文庫版まえがき

現在、暗号にふたたび光があたっている。その暗号復活の絶好のタイミングで、講談社選書メチエ『暗号——ポストモダンの情報セキュリティ』が、『暗号——情報セキュリティの技術と歴史』と副題を変えて、文庫化されることになったのは、著者として望外の喜びである。
暗号復活と申し上げた意味について少し説明しておきたい。本書にも書いたように、暗号の歴史は古く、ギリシア・ローマ時代あるいはそれ以前に遡るが、その後数千年間、二〇世紀前半の第二次世界大戦まで、暗号が活躍する舞台は主に軍事・外交であった。第一次・第二次世界大戦におけるドイツの敗戦に暗号が深く影を落としているし、一九四二(昭和一七)年六月のミッドウェイ海戦における帝国海軍の敗北も、日本軍の驕慢に加えて、暗号が解読されたことも大きな要因であった。

二〇世紀後半、コンピュータと通信の発展による情報化の進展に伴って、本人確認や文書の真正性をディジタルな手段で証明することの必要性が認識されるようになった。一九八〇年代に入ると、科学技術史上、火薬の発明にも匹敵すると言われる公開鍵暗号が利用され始め、「軍事・外交以外の分野でも暗号が役に立つらしい」ということが話題に上るようになった。それと同時に、情報セキュリティの重要性も叫ばれるようになり、その基盤技術としての暗号に対する関心が高まってきた。原本(講談社選書メチエ版)が出版された一九九六年はそのような時期であり、政治家や文系の官僚も含め、広い層の方々に読んで頂いた。

さて暗号に限らず、一般に科学技術の発明と普及のプロセス全般に言えることだが、発明当初は話題になっても、普及し始める頃には珍しくもなくなり人々の関心も薄れてくる。暗号にとっても、この一〇年余りは残念ながらそのような時期であった。
しかし、二〇一〇年前後から、ツイッターやフェイスブックなどのソーシャル・ネットワーキング・サービス(SNS)やスマートフォンが日常生活に溶けこみ、情報環境は大きな変革期に入った。その変革を四つのキーワードで表せば、ソーシャル、モバイル、クラウド、スマートということになるだろう。
なかでも、情報を自ら所有せず、データセンターなどに預けて必要時に利用するクラウド環境の普及によって、暗号の役割が再認識されるようになった。他人に情報を預ける以上、暗号化しておくのが安全であるというわけである。また、暗号研究の分野でも、暗号化したまま、平文に戻さずに加算・乗算や統計処理などを自由に行う方法の研究が活発に行われている。

ところで、ソーシャル、モバイル、クラウド、スマートというキーワードを「皆で仲良く動こう、雲の彼方へスマートに」と意訳すれば、自由で楽しげな感じがするかもしれないが、その裏側では個人情報や企業の機密情報の流出が深刻な社会的懸案となっている。情報漏洩を防ぐ有効な手段は、公開鍵暗号による本人確認と共通鍵暗号による秘匿である。こうした背景の中で、暗号の重要性が再認識されている。
これらが、冒頭に述べた暗号復活ということの意味である。
それにしても、暗号ほど理解され難い技術はない。高度な技術が非専門家に理解されないのはやむを得ないが、暗号理論は理系の人々にも敬遠されがちである。しかし、近代以降の科学技術が、物理学や化学などの高度で複雑な自然科学を基盤にしているのに対して、古くからある暗号は人間が考え出したいわば人工的な技術であり、数学的知識が少々あれば、その理解は可能である。したがって、文系の人々にとっても、興味や必要性があれば、あるレベルまで理解することは難しいことではない。先に述べたように、一九九〇年代には、暗号理解の必要性を感じた政治家や官僚の方々にも本書を読んで頂き、なかには「素数って、不思議ですね」という的を射た感想を頂いたりしたものである。

最近のディジタル技術の急速な普及は、情報の流通と共有を促進し、社会の構造や機能を連続的に繋いでいく。言い換えれば、逆説的な表現になるが、ディジタル技術は社会システムをアナログ(連続)化する。そうしたなかで、個人情報や機密情報の保護と活用の矛盾相克の鋭く際どい対立が至る所に現れる。この矛盾が暗号技術によって解決されるという認識の広まりが、最近、暗号への関心を再び高めている。また昨今、国家間のサイバー戦争が話題に上るが、暗号による情報の秘匿だけでなく、送信者確認がそのセキュリティの基盤となることも広く認識して欲しいものである。

さて今回の文庫化に際して、数値的に古くなった点などを改訂した。例えば、RSA暗号の鍵の長さを512ビットから1024ビット、あるいは2048ビットに改めた。これは、暗号の安全性に関係するので、簡単に説明しておきたい。暗号の安全性は次のような階層に分けて考えると分かり易い。
1. 方式的・理論的安全性
2. コンピュータの進歩による安全性の低下
3. 電磁波漏洩など物理的性質に着目した解読法に対する安全性
4. 鍵の管理などの運用面の不備をついた解読に対する安全性
RSA暗号について言えば、鍵の長さを増大させたのは、理論的な安全性が低下したからではなく、コンピュータの計算速度の急速な向上に対抗するためである。コンピュータの進歩は、鍵長を512ビットに定めた時から当然予想されたことではあるが、当時の半導体技術の状況・コストなどから、1000ビット以上にすることは得策ではなかったのである。二〇一二年現在、RSA暗号の鍵長は通常1024ビットであるが、二〇一五年には、世界最高速のスーパーコンピュータを利用すれば、一年で解読されると予想されるので、それ以降は2048ビットに鍵長を長くすることが推奨されている。

東日本大震災以降、想定外という言葉が流行語になっているが、暗号研究者は、方式的・理論的安全性とコンピュータの進歩による安全性の低下については、極めて厳しい評価を行っている。喩え話になるが、大坂城の落城と言えば、燃え盛る炎の中で、天守閣が崩れ、秀頼と淀君が自害する状況を思い浮かべるが、暗号の専門家は、天守閣の屋根瓦がたった一枚でも破損すれば、それを落城と考えて、安全性対策を練るのである。極度に安全よりに立っているわけだ。したがって、暗号の学会などで、ある暗号が解読されたという報告があった場合、それがそのままメディアに流れたりすると、社会に思わぬ誤解を与えたりすることになりかねない。事実、海外のある裁判で、学会である暗号が解読されたという発表があったということが証拠として認められた事例がある。ここでいう「解読」とは、現実に当時のコンピュータで解読されたわけではなく、将来、解読される可能性が理論的に示されたに過ぎなかったのである。

また、よく世間を騒がす暗号が破られたという事件は、方式的・理論的安全性やコンピュータの進歩による安全性の低下よりも、鍵の管理などの運用面に問題があったという場合が多いのである。
共通鍵暗号DESについては方式的に古くなり、現在はAES(Advanced Encryption Standard)と呼ばれる方式などが広く利用されている。しかし、本書は暗号の専門家向けではないので、共通鍵暗号の仕組みが理解し易いDESの記述はそのままにしておいた。
以上、説明が少し堅くなってしまったが、暗号の歴史も含めて、本書を楽しんで頂ければ幸いである。

二〇一二年三月四日

辻井重男

辻井 重男 (著)
出版社 : 講談社 (2012/6/12) 、出典:出版社HP

目次

学術文庫版まえがき

プロローグ 近代からポストモダンへ:

第一章 文明の誕生 暗号の誕生
1 ギリシア・ローマ時代の暗号
2 孫子の兵法と字変四十八の法
第二章 日米暗号文化の比較
1 第二次世界大戦と暗号技術
2 明るい「暗号」の登場
第三章 情報化と文明構造の変革
1 ディジタル技術とマルチメディア
2 文明構造の変容と情報セキュリティ
第四章 暗号革命と現代社会
1 社会基盤としてのポストモダン暗号
2 現代社会と暗号利用
3 インターネット・電子投票・電子キャッシュ
第五章 ポストモダン暗号と数理の魔術
1 共通鍵暗号
2 整数の世界
3 公開鍵暗号
4 零知識対話証明

エピローグ フェルマーの定理と暗号の未来
ブックガイド

辻井 重男 (著)
出版社 : 講談社 (2012/6/12) 、出典:出版社HP

暗号の数理 <改訂新版> 作り方と解読の原理 (ブルーバックス)

暗号に用いられる計算のしくみがわかる

本書は、暗号の歴史から情報通信の際に使われる暗号技術で利用されている計算のしくみまで解説されています。暗号技術には、複雑なアルゴリズムが用いられていますが、そのアルゴリズムを構成している数学の原理が大まかに理解できるようになっています。

一松信 (著)
出版社 : 講談社 (2005/9/20) 、出典:出版社HP

まえがき

本書の初版刊行以来、四半世紀が経過した。現在では、公開鍵暗号などは「常識」になり、旧版の記述では時代に合わない部分が多くなった。今回の改訂は、歴史的な話題を残し、現代にふさわしい内容を心がけたものである。
暗号という語から、多くの読者は各種の秘密文書を想像されることと思う。その性格上、暗号には軍事研究のベールと暗い影がつきまといがちなことは否定できない。しかし本文で論ずるとおり、世界的な通信ネットワークの発達にともない、プライバシー保護といった目的で、日常の通信にも暗号技術が急速に利用されている。その基礎知識は、一部の専門家のものではなく、万人の常識にする必要があるとさえ思われる。
本書は、そういった背景をふまえて、暗号に関する基礎を解説したものである。
筆者が暗号に興味をもつようになったそもそものきっかけは、太平洋戦争末期に数ヵ月、東京帝国大学の数学科の学生として、参謀本部に動員され、暗号の研究に従事したことにある。
その後、数学研究の道に入ったのだが、スタンフォード大学のヘルマンらが発案したpublic key cryptographyに対する拙訳「公開鍵暗号」が広く現在も使われていることには感無量の思いがある(少々大げさだが)。

今回の改訂について具体的に記させていただく。
第4章の前半までは、旧版の部分修正である。特に大きく変更した部分に一言しておく。
削除(一部要約)したのは旧版第1章末にあった、二度の大戦の裏話に関する二項目である。この話は、暗号の解説自体よりも、それで得た情報の活用が主題だからである。

追加したのは第2章の中頃で、トリストの暗号とビールの暗号の二項目を加えた。前者は一九世紀に広く使われた「本を鍵とする」暗号の具体例であり、その本が判明した稀有な実例である。後者は偽物と判定された例である。実のところ謎の暗号なのか、それとも巧妙な偽物なのかと、議論の種になっている古文書が現在も多数ある。そのささやかな一例として紹介した。
第4章の後半以降から第5章は、旧版の一部を生かしたものの、構成・内容とも全面的に見直した新規の書き下ろしである。数学的な内容は最小限にしたが、数式を全く使わないわけにはいかなかった。そのイメージだけでも理解していただくことができれば十分である。
最後に「第6章 量子暗号」を書き下ろしで加えた。もとよりこれは近年急速に発展しつつある広義の球子情報技術の一部である。本来ならばそれだけで一冊の書物が必要な話題であり、とても本書の末尾の一章だけで扱うことのできる題材ではない。しかしもはや暗号技術を論じる上で、避けて通ることができない題材なので、すでに技術的に確立されている部分について、雰囲気を伝える気持ちで執筆した。
改訂の作業をお引き受けしてから、予想外の年月が経ってしまった。一つには、量子暗号をどうまとめるかで苦しんだせいもあり、また健康上の理由もあった。その間辛抱強くはげましてくださった講談社ブルーバックス出版部の堀越俊一氏はじめ、同部の方々に厚い感謝の意を表したい。

二〇〇五年九月

著者しるす

一松信 (著)
出版社 : 講談社 (2005/9/20) 、出典:出版社HP

目次

まえがき

第1章 秘密通信と暗号
秘密通信 暗号以外の秘密通信 隠語 暗号の定義 情報伝達の変遷 電気通信の他の側面 暗号小史 せんさくの鬼 チューリングとコロッサス 二度の世界大戦の裏話

第2章 暗号の種類
暗号に関する用語 暗号の種類 転置式暗号 挿入式暗号 隠字詩 空白の処理 トリストの暗号 ビールの暗号 単文字換字暗号 ウガリット文書の解読 アナログ的な暗号 暗号辞書

第3章 慣用の暗号体系
多表式暗号への道 多表式暗号の解読例 同語反復 エニグマ暗号 エニグマ暗号の解読乱数とは? 乱数の定義 擬似乱数列とそのくせ 人間乱数 慣用の暗号体系の欠点

第4章 公開鍵暗号の原理
公開鍵暗号という言葉と原理 公開鍵暗号の副利点(1)——船頭多くして…… 公開鍵暗号の副利点に(2)——文書の正当性の問題 偽造不可能な署名 計算量の理論 P問題とNP問題 P≠NP問題 一方通行関数と落とし戸関数 詰め込み問題による暗号

第5章 公開鍵暗号の現状
公開鍵暗号の実用化 時計代数 互除法 有限体 フェルマーの小定理 離散対数 エルガマル暗号 RSA暗号の原理 素数判定法 指数の逆数の計算法 素因数分解に関する平方篩の方法 複数多項式によるデータ収集 電話でジャンケン 楕円曲線による暗号 公開鍵暗号の実例

第6章 量子暗号の展望
量子暗号とは 量子秘密通信の着想 量子秘密通信の実例 BB84の実験 量子コンピュータの起源 量子チューリング機械 ショアの算法 結び

参考文献

一松信 (著)
出版社 : 講談社 (2005/9/20) 、出典:出版社HP

暗号解読(上)(新潮文庫)

暗号の歴史を平易なストーリー展開で追いかける

本書は、カエサル暗号から未来の量子暗号に到る暗号の進化史をわかりやすいストーリー展開で解説しています。暗号技術について古代ローマから現代までを追いかけ、難解な数学の内容をわかり易くドラマチックに読むことができます。暗号についての知見がなくても難なく読むことができ、初心者におすすめの一冊です。

サイモン シン (著) , Simon Singh (原著), 青木 薫 (翻訳)
出版社 : 新潮社 (2007/6/28) 、出典:出版社HP

私の母と父
サワラン・カウアとメーンガ・シンに捧ぐ

秘密を暴きたいという強い衝動は人間の本性に深く根ざしたものであり、それほど詮索好きではない人でも、これはあなただけに教えてやろうなどと言われれば胸が高鳴ることだろう。とはいえ、謎解きにかかわる職業に就けるのは幸運な人なのであって、大多数の人々は、娯楽用に作られたパズルを解くことでこの衝動をまぎらわせるしかない。探偵小説やクロスワード・パズルはそんな大多数のためにある。秘密の暗号を解読しようというのは、ごく少数の人たちなのだ。

ジョン・チャドウィック
『線文字Bの解読』

目次

はじめに

第I章 スコットランド女王メアリーの暗号
“秘密の書記法”の進化/アラビアの暗号解読者たち/暗号文の頻度分析/西洋のルネサンス/バビントン陰謀事件

第Ⅱ章 解読不能の暗号
ルイ十四世の大暗号と鉄仮面/ブラック・チェンバー/バベッジ対ヴィジュネル暗号/私事通信欄から埋蔵金まで

第Ⅲ章 暗号機の誕生
暗号の聖杯/暗号機の発達——暗号円盤からエニグマまで

第Ⅳ章 エニグマの解読
鳴かないガチョウたち/コードブックの奪取/匿名の暗号解読者たち

〈下巻〉

第V章 言葉の壁
失われた言語と古代文字の解読/線文字Bの/”つなぎ”音節/馬鹿げた脱線

第Ⅵ章 アリスとボブは鍵を公開する
神は愚か者に報いたまう/公開鍵暗号の誕生/最有力候補——素数/公開鍵暗号——もう一つの歴史

第Ⅶ章 プリティー・グッド・プライバシー
大衆のための暗号——か?/ジマーマンの名誉回復

第Ⅷ章 未来への量子ジャンプ
暗号解読の未来/量子暗号

付録 暗号に挑戦——一万ポンドへの十段階
補遺
謝辞
訳者あとがき
文庫版のための訳者あとがき—「史上最強の暗号」解説

サイモン シン (著) , Simon Singh (原著), 青木 薫 (翻訳)
出版社 : 新潮社 (2007/6/28) 、出典:出版社HP

はじめに

何千年もの昔から、王や女王や将軍たちは、国を治め、軍を動かすためには効率的な通信手段が不可欠であることを知っていた。それと同時に支配者たちは、メッセージが正当な受信者以外の人物の手に渡ったり、貴重な秘密がライバル国家に奪われたり、重要な情報が敵の軍隊に漏れたりすればどうなるかもよく理解していたのである。メッセージが敵の手に渡ったらどうなるか——その脅威が、彼らを暗号開発に駆り立てた。暗号とは、メッセージの外見を変えることにより、正当な受信者にしか読めないようにする方法のことである。

秘密の情報を守りたいという願望から、国家は暗号作成のための部局を設けた。暗号作成者の任務は、実地の使用に耐える優れた暗号を開発し、それによって通信の安全性を保証することである。しかしその一方で、敵の暗号解読者はそれらの暗号を解読し、秘密を手に入れようとしてきた。意味のない記号の中から、意味のある言葉を魔法のように引き出してみせる暗号解読者は、いわば言葉の錬金術師である。暗号の歴史は、暗号作成者と暗号解読者との何世紀にもわたる戦いの歴史であり、その戦いは、ときに歴史の流れを劇的に変えることにもなった知の軍拡競争なのである。

本書を執筆するにあたり、私は主として二つの目標を掲げた。第一の目標は、暗号の発展史を概観することである。暗号の発展史には、”進化”という言葉がぴったりとあてはまる。それというのも暗号の発展過程は、一種の生存競争と見ることができるからだ。暗号はたえず暗号解読者の攻撃にさらされてきた。暗号解読者が新兵器を開発して暗号の弱点を暴けば、その暗号はもはや役に立たない。その暗号は絶滅するか、あるいはより強力な暗号へと進化するしかない。進化した暗号はしばらくのあいだ生き延びるが、それも暗号解読者がその弱点を突き止めるまでのことである。このプロセスが繰り返されるのだ。そのありさまは、伝染性の細菌株が直面する状況によく似ている。細菌が生き延びるのは、その細菌の弱点を暴き、殺してしまうような抗生物質が発見されるまでのことである。細菌が生き延びて増え栄えるためには、なんとか進化して抗生物質を出し抜くしかない。次々と繰り出される新しい抗生物質に打ち勝って生き延びるためには、細菌はたえず進化しなければならないのである。

暗号作成者と暗号解読者とのたえざる戦いは、科学上の大きな進展を引き起こすことにもなった。暗号作成者は、メッセージを保護してくれる強力な暗号を作ろうと奮闘し、暗号解読者は、その暗号を解読する強力な方法を開発しようとしてきた。そして秘密を暴こうとする側も、秘密を守ろうとする側も、数学、言語学、情報理論、量子論と、幅広い領域の学問やテクノロジーを利用してきたのである。ひるがえって、暗号作成者と暗号解読者はこれらの学問領域を豊かにし、テクノロジーの発展を加速させた。この点でとくに注目すべきは、現代のコンピューターだろう。

歴史の節目というべきところで、暗号は重要な役割を演じてきた。暗号は戦争の勝敗を決し、王や女王に死をもたらしもした。そのおかげで本書では、暗号の進化論的発展の転回点を示すエピソードとして、政治的陰謀や生と死の物語を用いることができた。しかし暗号の歴史はあまりにも豊かで、私は多くの魅力的なエピソードを取りこぼさざるをえなかった。それはとりもなおさず、本書に書かれていることがすべてではないということでもある。面白いと感じたエピソードや、好きになった暗号作成者のことをもっと知りたいと思った読者は、ぜひ関連書籍を手にとってほしい。そうすれば、興味をもったテーマについてより詳しく学ぶことができるだろう。

本書の前半ではこのように、暗号の進化と、それが歴史に及ぼした影響について論じた。続く後半では、現代において、暗号は過去のどの時代にもまして重要になっていることを示そうと思う——それが本書の第二の目標である。いまや必需品となった暗号はしだいにその価値を高め、通信革命はわれわれの社会を変えつつある。それにともない、暗号化のプロセスは日常生活のなかでますます大きな役割を果たすようになってきた。今日、われわれのかける電話は通信衛星によって反射され、電子メールはいくつものコンピューターを介して送信されている。そしてそのどちらの通信形態も容易に傍受されうるため、われわれのプライバシーは危険にさらされているのである。また、インターネット商取引が活発になるにつれ、企業やその顧客を守る方策が求められている。暗号はわれわれのプライバシーを保護し、デジタル市場の成功を保証するための唯一の道なのである。暗号という名で呼ばれる秘密通信の技法は、”情報の時代”の錠前と鍵になってくれるだろう。

しかしながら、一般大衆のあいだで暗号の需要が高まることは、法執行および国家安全保障の立場とは相容れない側面をもっている。過去数十年にわたり、警察と情報機関はテロリストや組織犯罪の尻尾をつかまえるために盗聴を行ってきたが、最近開発された強力な暗号によって、盗聴の有効性が根底から揺るがされているのだ。現在、市民的自由の活動家たちは、われわれ一人一人のプライバシーを守るため、暗号の使用が認められるべきだと強く主張している。インターネット商取引を保護する必要に迫られている実業界もまた、強力な暗号を求めている。問題は、われわれがどちらにより大きな価値を置くかということだ——プライバシーの保護か、治安の維持か。それとも、この二つに折り合いをつける道があるのだろうか?

このように民間の活動に多大な影響を及ぼしている暗号だが、軍事上の重要性もまたいささかも減じてはいない。よく言われることだが、第一次世界大戦は化学者の戦争であり、第二次世界大戦は物理学者の戦争だった。それというのも、第一次世界大戦ではマスタードガスがはじめて使用され、第二次世界大戦では原子爆弾が炸裂したからである。同様に、第三次世界大戦が起こるとすれば、それは数学者の戦争になるだろうと言われている。なぜなら、戦争の次期兵器となるであろう情報を支配するのは、数学者だからである。数学者たちは過去においても暗号開発を担い、現在それらの暗号は軍事情報を保護するために使用されている。驚くにはあたらないが、それらの暗号を解読するという戦線においても、数学者たちは最前線に立っているのである。

暗号の進化と、それが歴史に及ぼした影響について述べる一方で、私はもう少し細い脇道にも踏み込んでみることにした。第V章では古代文字の解読を扱い、エジプトのヒエログリフやクレタの線文字Bなどを取り上げた。専門的なことを言えば、暗号とはメッセージの意味を故意に敵から隠すためのものである。それに対して古代文明の文書は、判読されないことを目的として書かれたわけではない。ただ単に、われわれがそれらの文字を読めなくなってしまったというだけなのだ。とはいえ、古文書の意味を解き明かすのに必要な技術は、暗号解読の技術と密接に関係している。私は、ジョン・チャドウィックによる「線文字Bの解読」を読み、古代地中海の文字がいかにして解読されたかを知って以来、その文字の解読をやってのけた男女の知的偉業に強い感銘を受けてきた。彼らのおかげで、われわれは古代人の文明、宗教、そして日常の暮らしを知ることができるようになったのである。

さてここで、本書のタイトルについてひとこと釈明させていただこうと思う。本書『暗号解読(原題The Code Book)』は、”コード(code)”だけを扱った本ではない。コードというのは暗号のきわめて特殊な一手法にすぎず、そのタイプの暗号はここ数百年のあいだにしだいに使用されなくなってきた。コードは、ひとつの単語またはひとまとまりのフレーズを、単語や数や記号で置き換えたものである。たとえばスパイのコードネームは、その人物の素性を隠すために本名の代わりに使用される言葉である。また、Attack at dawn(夜明けに攻撃せよ)というフレーズを、Jupiter(ジュピター)というコードに置き換えて戦場の司令官に送るような場合、使用するコードについて軍の総司令部と戦場の司令官とがあらかじめ合意していれば、正当な受信者である司令官にとってJupiterの意味は明らかであるが、それを傍受した敵にとっては何の意味もないことになる。暗号にはコードの他にサイファー(cipher)と呼ばれるものがある。サイファーは、単語全体ではなく個々の文字を置き換えの対象とするため、コードよりも基本的なレベルの暗号といえる。いま仮に、フレーズに含まれる個々の文字を、アルファベットでその文字の次に来る文字で置き換えるとしよう。つまりAはBで、BはCで置き換えられるわけである。このときAttack at dawnは、Buubdl buebxoになる。サイファーは暗号のなかでも重要な手法なので、本来ならば本書のタイトルは、『ザ・コード・アンド・サイファー・ブック(The Code and Cipher Book)』とでもすべきだったろう。しかし私は、正確さを捨てて簡潔さを取ることにした。

暗号の専門用語は、必要に応じて本文中に定義しておいた。本書の言葉遣いはおおむねそれらの定義にしたがったが、専門的な見地からはいくらか不正確な言葉の使い方をしたところもある。一例として、サイファーの解読に取り組む人たちのことを、私はしばしば「コードブレーカー」と呼んだが、正確には「サイファーブレーカー」(訳注 訳文ではどちらも「暗号解読者」とした)と呼ぶべきだったろう。しかし文脈から判断すれば、誤解の余地はないはずである。そもそも暗号の専門用語には、一見して意味のわかるものが多い。たとえば”平文”は暗号化する前のテキスト、”暗号文”は暗号化された後のテキストのことである。

「はじめに」を締めくくるに先立ち、暗号というテーマに取り組んだ著者ならば誰もがぶつかる障害についてひとこと述べておくべきだろう。それは、暗号研究の少なからぬ部分は秘密のヴェールに覆われているということだ。本書に登場する英雄たちの多くは、存命中は世間の認知を受けることがなかった。なぜなら彼らの業績は、外交上、軍事上の価値ゆえに、機密扱いにされていたからである。本書執筆のために調査を進めていたとき、私は英国政府通信本部(GCHQ)の専門家に会う機会に恵まれた。その専門家が私に語ってくれたのは、一九七〇年代に行われ、ごく最近になってようやく機密解除されたばかりの驚くべき研究のことだった。その研究が機密扱いを解かれたことにより、世界でもトップクラスの三人の暗号作成者が、本来受けるべき認知を受けることになったのである。しかしその話を聞かされた私は、これは氷山の一角なのだと思わずにはいられなかった。私も、他のサイエンスライターも知らないことが、今現在もたくさん進行しているのだろう。イギリスのGCHQやアメリカの国家安全保障局(NSA)などの組織では、現在も暗号に関する秘密研究が続けられている。ということは、これらの組織で得られた成果は公開されておらず、その仕事をした人たちは匿名のままだということである。

政府の秘密主義や秘密研究という障害はあるものの、本書の最終章では暗号の未来について考えてみることにした。その第四章は、突き詰めて言うならば、暗号作成者と暗号解読者との進化論的戦いにおける勝者を予測しようという試みである。暗号作成者は絶対に解読できない暗号を作ることができるのだろうか?それとも暗号解読者がどんな暗号でも解読できる機械を作り上げるのだろうか?世界最高レベルの頭脳をもつ研究者たちが莫大な研究費をつぎ込んで秘密研究を行っていることから考えて、本書で述べたことのなかには不正確な点もあるだろう。たとえば私は、量子コンピューター(今日のあらゆる暗号を解読するであろう機械)は今のところきわめて初歩的な段階にとどまっていると述べた。しかしひょっとすると、すでに誰かが量子コンピューターを完成させているかもしれない。だが、私の間違いを指摘できる人物は、その事実を公表する自由をもたないのである。

サイモン シン (著) , Simon Singh (原著), 青木 薫 (翻訳)
出版社 : 新潮社 (2007/6/28) 、出典:出版社HP