コンテンツにスキップ

「暗号」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Claw of Slime (会話 | 投稿記録)
 
(45人の利用者による、間の68版が非表示)
1行目: 1行目:
{{redirect|秘匿|[[ウィキペディア]]における旧・秘匿機能|Wikipedia:版指定削除|オーバーサイト機能|Wikipedia:オーバーサイト}}
{{WikipediaPage|「'''秘匿'''」はこの項目に[[Wikipedia:リダイレクト|転送]]されています。ウィキペディアにおける編集履歴の秘匿機能については、[[Wikipedia:オーバーサイトの方針]]、[[Wikipedia:版指定削除]]をご覧ください。}}
{{出典の明記|date=2020-12}}


'''暗号'''(あんごう、cryptography, cipher, code)あるいは'''暗号化'''(あんごうか、Encryption)とは、第三者に通信内容を知られないように行う特殊な[[通信]]([[秘匿通信]])方法のうち、通信文を見ても特別な知識なしでは読めないように変換する表記(変換[[アルゴリズム]])のことであ通信だけでく保管する[[文書]]等の内容を秘匿する方法としても用いることができる。
'''暗号'''(あんごうとは、[[セキュア通信]]の手法の種類で第三者が通信文を見ても特別な知識なしでは読めないように変換する、というような手をおおまかには指す。いわゆ通信」(telecommunications)に限らず、記録媒体への保存どに用できる。


== 概要 ==
== 概要 ==
秘匿通信を行う上で最も単純な方法は「木を隠すなら森」という諺のごとく、通信文そのものの所在を隠してしまうことである。歴史上実際に行われたものとしては、通信文を丸めて飲み込んだり、ベルトの内側に書き普通の被服のように身につけたり、新聞の文字に印(文字横に穴を開ける等)をつけて文章を作る、頭を剃りあげて頭皮に通信文を[[刺青]]し、再び頭髪が生えそろうことで隠す、意図的に広い帯域に信号を分散させる[[スペクトラム拡散]]などもあったようである。「暗号らしい手法」としては「[[ステガノグラフィー]]」といい、「それとはわからないような形で」記録する、というものである。[[画像]]などに情報を埋め込む「[[電子透かし]]」にも同じ技術を利用するが、電子透かしではその画像の著作権情報などといった関係のある情報を埋め込むのが目的であるのに対し、ステガノグラフィーは全く無関係な情報を秘密のうちに紛れ込ませる、という点が異なる。またいわゆる[[縦読み]]なども一見して普通の文章の中に見えるためステガノグラフィーの一種と言えなくもない。
秘匿通信には、主に次の3種類の方法がある。


広義では以上のような方法も暗号に含まれるし暗号学が探求する対象であるが、狭義では、その見た目が「なんだかわからない」という、難読であると明確なものを指して特に暗号に分類する(なお、暗号化された通信文([[暗号文]])については理論上、他からの「それが暗号である」という情報が無ければ、ただのデタラメと全く区別が不可能であるのが理想である<ref group="注釈">前述のステガノグラフィーのような、一見すると別の意味がちゃんとあるような情報の中に秘密の情報を忍び込ませる、という方法は、情報理論からの結論として、情報全体に比してごくわずかな情報を埋込むことしかできない。</ref>)。
# '''[[ステガノグラフィー|ステガノグラフィ]]''' 通信文を人目に付かない場所に[[記録]]する。[[画像]]などに情報を埋め込む[[電子透かし]]など。また掲示板でよく見かける縦読みも一見して普通の文章の中に見えるためステガノグラフィーの一種と言える。
# '''[[コード (暗号)|コード]]''' 通信文の[[単語]]や[[フレーズ]]を、事前に決めておいた[[言葉]]・[[記号]]で置き換える。これらは[[符牒]]や[[隠語]]とも呼ばれる。
# '''サイファ''' 通信文を、意味とは関係なく、所定の[[アルゴリズム]]に従って、(1つまたは複数の)文字やビットごとに置換や転置を行うことで、読めない文に変換する。


狭義の暗号は、古典的には主要な分類に、以下の2つがある。
秘匿通信を行う上で最も単純な方法は、(1)の通信文そのものの所在を隠してしまうことである。[[歴史]]上実際に行われたものとしては、通信文を丸めて飲み込んだり、ベルトの内側に書き普通の被服のように身につけたり、新聞の文字に印(文字横に穴を開ける等)をつけて文章を作る、頭を剃りあげて頭皮に通信文を[[刺青]]し、再び頭髪が生えそろうことで隠す、などもあったようである。
*「コード」
{{Main|コード (暗号)}}
通信文内の、[[単語]]や[[フレーズ]]といったある程度意味のある塊の単位で、あらかじめ取り決めてある[[記号]]と交換する。
*「サイファー」
{{Main|en:Cipher}}
通信文に対し、意味とは関係なく、文字毎の(最小の)単位で、あらかじめ取り決めてある置換や転置を掛ける。


(2)事前に「○◇△といえば、~のこと」等と事前に取り決めておくことで秘匿することも行われた。個人間で行うものから[[組合]]や[[ギルド]]等の特定のグループ内で行うものがある。事前の取り決めではなく、特定の人達だけが知る事項などを元に、意味は同じままで、言い方を変えることで秘匿することもある。秘匿したい特定の単語だけ置き換えることも、コードブックと呼ばれる辞書を作成して全ての単語を置き換えることもあり、「ルイ14世の大暗号」「ナポレオンの小暗号」などが知られている。<!-- 文章の一文字毎に冗字を一つから二つ割り込ませ、通常の速度で通して喋る事によって、部外者には何を言っているのか分かり難くする“山賊言葉”もこれに相当すると思われる(仲間は冗字を頭の中で除去する事で解読、会話する)。-->しかし、(2)のコードは、歴史的な使用例は幾つか知られているが、現代の通信技術での使用例はあまり知られていない。<!-- 知られたら安全ではなくなるから公開されていないのだろうか。-->コードという言葉自体は「[[データ圧縮|圧縮]]」や「[[誤り検出|誤り訂正]]」の目的で使われる[[符号|コード]](符号)や、認証用のコード (MAC) などで使用されている。
「コード」は一般に、軍運用必要なものなど、ある程度の(あるいは膨大な<ref group="注釈">過去の例として、太平洋戦争のような戦争ともなれば膨大になった。</ref>)語彙について秘密の記号群を決めておくものであるが、「討ち入り」「開戦」などといった特定の重要な件のみについて、「○◇△といえば、~のこと」等と事前に取り決めておくことで秘匿することも行われた。個人間で行うものから[[組合]]や[[ギルド]]等の特定のグループ内で行うものがある。事前の取り決めではなく、特定の人達だけが知る事項などを元に、意味は同じままで、言い方を変えることで秘匿することもある。秘匿したい特定の単語だけ置き換えることも、コードブックと呼ばれる辞書を作成して全ての単語を置き換えることもあり、歴史的な例としては、前者はスコットランド女王メアリーの暗号」、後者は「[[ルイ14世の大暗号]]「ナポレオンの小暗号」などが知られている。


「サイファー」は、機械化以前は一般に作業手数が大きいといった欠点があったが、機械化以後はサイファーが主流の暗号である。機械化に次いで、暗号のコンピュータ化(あるいは、コンピュータの暗号化)の時代となったが、それらの暗号も、だいたいサイファーに分類するのが妥当であろう。
秘匿通信を行う方法としては(特に第二次世界大戦後は)、(3)のサイファが主流である。


また以上のようなセキュア通信のための狭義の暗号に限らず、相手の身元を確認する認証や[[改竄]]の検出、貨幣の偽造防止技術、[[電子署名]]、[[認証]]、[[ハッシュ関数]]、[[電子マネー]]その他、[[情報セキュリティ]]の多くの局面で、暗号はキーテクノロジとなっている。
戦時下における作戦や命令を敵に知られると作戦の裏をかかれて文字通り致命的な結果を招くことになるなど、第三者に通信内容を知られては困ることがある。暗号はそのような場合に独特の表記法を使って通信文を変換することによって、第三者が通信文を盗み見ても意味が分からないようにする為に考案され、主に戦時下において軍事技術の一つとして発達してきた。
初期の暗号は、安全性が不確かなものも多く、使用中に[[暗号解読|解読]]され、その場しのぎに改良を試みるものの、更に巧妙な手口によって破られてしまうといった、イタチごっこに陥る事もあった。
暗号の歴史については[[暗号史]]を参照。


なお、暗号化の逆の操作を表す語は「復号({{lang-en|decryption}})」であり、本来[[符号化]]に対するそれ({{lang-en|decode}})同様「~化」とはしないが、「復号化」という誤用はかなり広く定着している。
この記事では、主に(3)の解説を行い、(2)にもふれることにする。また、暗号技術は、秘匿通信に限らず、相手の身元を確認する認証や[[改竄]]の検出にも応用され、貨幣の偽造防止技術への応用も研究されている。これらについては[[電子署名]]、[[認証]]、[[ハッシュ関数]]、[[電子マネー]]等を参照。


==暗号学==
なお、暗号化に対応する単語は「復号」であり、「~化」とは表現しない。
{{リンクのみの節|date=2017年11月16日 (木) 03:56 (UTC)}}
{{see|暗号理論}}
{{seealso|Category:暗号技術}}

==歴史==
{{リンクのみの節|date=2017年11月16日 (木) 03:56 (UTC)}}
{{see|暗号史}}


== 種類 ==
== 種類 ==
まず、古典的な暗号と現代的な暗号を分けるものとして、[[ケルクホフスの原理]]がある。現代的な暗号理論よりも前の時代には、暗号の「方式」と「鍵」の識別は明瞭ではなかったし、そのどちらも秘匿されねばならぬものであった。すなわち攻撃側の視点からは、方式がわかってしまえば、それによって、鍵を得ることも容易になってしまうのであった。現代の暗号は、秘密は鍵に集中しており、その方式はむしろ公知のものであったほうが、その強度なども広く研究されているために、むしろ安全である。
暗号には様々な方式があるが、現存する暗号は主に下記のように分類することができる。

鍵を使わない方法は、一度敵に知られた方法は二度と使えない、暗号の信頼性を客観的に評価することができないなどの問題がある。例えば単純な[[シーザー暗号]]は、方式自体がバレないようにしなければ安全性が保てないほど脆弱であるし、ある程度の量の暗号文があれば何百年以上も前からある[[頻度分析 (暗号)|頻度分析]]という手法によって方式自体もバレてしまう。それに対し鍵を使う方法は、[[アルゴリズム]]自体を敵に知られても構わない方式を目標としており、一度考案した方式は鍵を変えることで何度でも使える、アルゴリズムを広く公開することで信頼性を十分に検討できる、などの多くの利点がある。

近代以降になると、このように「鍵さえ秘密にしていれば暗号化・復号の方法を公開しても安全が保てる」ことが暗号にとって望ましい性質であることが明確化された([[ケルクホフスの原理]])。

古典暗号の時代の「サイファー」の主要な2種類は、以下の二つである(暗号システムとしては、他にも多種多様なものが考案された)。

*[[換字式暗号]] - ある文字に別の文字を割り当てる。[[単一換字式暗号|単一換字]]、多表式換字などがある。
*[[転置式暗号]] - 文字の順序を並べ替える。

上の2つの分類は、現代暗号でもなんら変わるものではないが、現代的には次のような暗号の分類がある。このうち前者の共通鍵暗号は、分類としては古典暗号時代からなんら変わらぬ暗号の方式であって、「現代暗号の分類」とするのはむしろおかしいのだが、後者との対比としてしばしば挙げられるものである。後者の公開鍵暗号は、暗号をその時代の最新の数理で検討するようになった現代暗号ならではの暗号と言える。

*[[共通鍵暗号]] - 暗号化・復号で同じ鍵を使う。
*[[公開鍵暗号]] - 暗号化・復号で異なる鍵を使う。


近代以降、前述のように、秘密は鍵に集中すべきことから、暗号の問題は鍵の配送(共有)にあることが明確になった。暗号系を含む全体を通信[[システム]]として検討したならば、そもそもそのような「鍵」をやりとりできるほどに安全な通信路があるならば、その通信路で本文も通信してしまえば良いからである。この問題には、[[公開鍵暗号]]方式の発明によって一応の決着が付いた。すなわち、公開鍵暗号であればその非対称なペアになっている鍵のうちの片方は秘密ではないため、配送の問題が生じないからである。ただし通常は計算量の理由から、公開鍵暗号を本文の暗号通信に直接使うことはせず、公開鍵暗号を利用した安全な鍵交換方式によって共通鍵を安全に交換し、その鍵によって共通鍵暗号通信をおこなう。
暗号(サイファ)の分類
*古典暗号 - 暗号化・復号に[[鍵 (暗号)|鍵]]の概念を使わないものもある。
**[[換字式暗号]] - 別の文字を割り当てる。[[単一換字式暗号|単一換字]]、多表式換字などがある。
**[[転置式暗号]] - 文字を並べ替える。
*現代暗号 - 鍵を使い、アルゴリズムを公開したものが多い。
**[[共通鍵暗号]] - 暗号化・復号で同じ鍵を使う。[[ブロック暗号]]、[[ストリーム暗号]]などがある。
**[[公開鍵暗号]] - 暗号化・復号で異なる鍵を使う。


コードやサイファーのような記号による暗号ではなく、スクランブル(信号の切り混ぜ)といったアナログ技術による広義の暗号システムとしては、かつてアナログ電話の時代に盛んに研究されたものがある。[[秘話]]の記事を参照。
鍵を使わない方法は、一度敵に知られた方法は二度と使えない、暗号の信頼性を客観的に評価することができないなどの問題がある<!-- 物理暗号はちがうけど -->。例えば、[[シーザー暗号]](古典暗号の一つ)は、暗号化・復号の表記法が秘密でなければ安全性が保てなかった。
それに対し鍵を使う方法は、[[アルゴリズム]]自体を敵に知られても構わないような方法が目標であり、一度考案した方法は、鍵を変えることで何度でも使える、アルゴリズムを広く公開することで信頼性を十分に検討することができるなどの多くの利点がある。
近代になると、このように鍵のみを秘密にしていれば暗号化・復号の方法を皆に公開した場合でも安全を保てることが暗号にとって望ましい目標である([[ケルクホフスの原理]])と認識され、現代暗号では鍵を使うものが主流となった。
さらに現代暗号では、暗号化・復号の方法だけではなく、暗号化の鍵を公開しても安全性が保てる方式(公開鍵暗号)も扱う。
変わったところでは、少数民族の言葉などほとんど知られていない言葉をそのまま、あるいはそれをさらに暗号化して使うというのもある。日本でも、かつて早口の薩摩弁が使われたことがある。


さらに、より「アナログ」な事例としては、少数民族の言語や方言などによる、相手側が仮に傍受しても瞭解が不可能な会話を利用したものがある<ref>{{Cite web|和書|date=2019-06-05 |url= https://www.afpbb.com/articles/-/3228503?page=2|title=偽の戦車に官能的冒険、ノルマンディー上陸にまつわる知られざる話 |publisher=AFP |accessdate=2019-06-06}}</ref>。太平洋戦争での事例として、アメリカ側は[[ナバホ語]]による通話を利用し([[コードトーカー]])、日本側は[[薩隅方言]]による通話を利用した<ref group="注釈">明治期に、「方言札」などに象徴される苛烈な方言弾圧がもし旧薩摩藩領に行われていたら、不可能であっただろう。</ref>。
具体的な暗号方式の一覧は、[[暗号理論#暗号(cipher)|主な暗号の分類と一覧]]を参照。


具体的な暗号方式の一覧は、[[暗号理論#暗号プリミティブ|暗号理論]]を参照。
=== 暗号(サイファ)の例 ===
*古典暗号:
**換字式 - 最もシンプルな単一換字式として[[シーザー暗号]]、[[ポリュビオスの暗号表|ポリュビオス暗号]]などが知られている。より安全性が高い多表式換字に[[ヴィジュネル暗号]]などがある。これらの暗号は小説で扱われることもあり、「[[黄金虫]]」、「[[踊る人形]]」(単一換字)、「ジャカンタ」(多表式換字)などがある。
**転置式 - スキュタレー、レールフェンス暗号、回転グリル - 「謎の暗号」
*現代暗号:
**共通鍵 - [[Advanced Encryption Standard|AES]]、[[Data Encryption Standard|DES]](ブロック暗号)、[[RC4]](ストリーム暗号)、ワンタイムパッド
**公開鍵 - [[RSA暗号|RSA]]、[[楕円曲線暗号]] (ECC) 、[[ElGamal暗号|ElGamal]]


=== 参考:コードの例 ===
=== コードの例 ===
*例1 [[ルイ14世 (フランス王)|ルイ14世]]の大暗号(ロシニョールが作成): コードブックは「act=486、ion=102、…」のように音節単位で3桁の数に対応させる(600個程ある)。暗号文「486-102」を復号すると act-ion になる。19世紀末フランス軍の暗号解読者バズリが解読を発表した。
* [[ルイ14世 (フランス王)|ルイ14世]]の大暗号(ロシニョールが作成): コードブックは「act=486、ion=102、…」のように音節単位で3桁の数に対応させる(600個程ある)。暗号文「486-102」を復号すると act-ion になる。19世紀末フランス軍の暗号解読者バズリが解読を発表した。
*例2 [[日露戦争]]で使われた暗号文:「'''アテヨ''' '''イカヌ''' ミユトノケイホウニセツシ、'''ノレツ''' '''ヲハイ'''タダチニ'''ヨシス'''コレヲ'''ワケフ''' '''ウメル'''セントス、ホンジツテンキセイロウナレドモナミタカシ」。コードブックは「アテヨ=敵、イカヌ=艦隊、ノレツ=連合艦隊、…」のように秘匿したい単語をカナ3文字に対応(2文字目は単語の最初と同じ音にもなっている)させている。平文は「'''敵''' '''艦隊'''見ユトノ警報ニ接シ、'''連合艦隊''' '''は'''直チニ'''出動'''、コレヲ'''撃沈''' '''滅'''セントス、本日天気晴朗ナレドモ波高シ」となる。
* [[日露戦争]]で使われた暗号文:「'''アテヨ''' '''イカヌ''' ミユトノケイホウニセツシ、'''ノレツ''' '''ヲハイ'''タダチニ'''ヨシス'''コレヲ'''ワケフ''' '''ウメル'''セントス、ホンジツテンキセイロウナレドモナミタカシ」。コードブックは「アテヨ=敵、イカヌ=艦隊、ノレツ=連合艦隊、…」のように秘匿したい単語をカナ3文字に対応(2文字目は単語の最初と同じ音にもなっている)させている。平文は「'''敵''' '''艦隊'''見ユトノ警報ニ接シ、'''連合艦隊''' '''は'''直チニ'''出動'''、コレヲ'''撃沈''' '''滅'''セントス、本日天気晴朗ナレドモ波高シ」となる。
*例3 [[真珠湾攻撃]]で使われた暗号文:「ニイタカヤマノボレ1208」(=12/8に日米開戦、事前に決めておいたフレーズを合図とした)。なお、「ト」の連打(=全軍突撃せよ)、「トラ」の反復(=我、奇襲に成功せり)などもよく知られているが、正確には電信の短点連打音等の聞き分け易い音を合図としたものである。日本海軍機が搭載していたのは無線電話機ではなく、無線電信機であったため、交戦時に複雑な電文の送信・聴取は困難なことから、和文電信で単純な符号の組み合わせとなった。
* [[真珠湾攻撃]]で使われた暗号文:「ニイタカヤマノボレ1208」(=12/8に日米開戦、事前に決めておいたフレーズを合図とし、更に1文字ごとに五連数字に換えた)。なお、「ト」の連打(=全軍突撃せよ)、「トラ」の反復(=我、奇襲に成功せり)などもよく知られているが、これらは正確には電信([[モールス符号]])の聞き分け易い音を合図としたものである。日本海軍機が搭載していたのは無線電話機(音声通信)ではなく、無線電信機(モールス符号通信)であった(航空通信に無線電話が導入されるのは1950年代に入ってから)ため、交戦時に複雑な電文の送信・聴取は困難なことから、和文電信で聞き取りやすい符号の組み合わせとなった。
:「ト」は短点3ツ()、「ラ」は短点4ツ(‥‥)、区切りの無音間隔(_)を組み合わせて
:「ト」は(・・―・・)、「ラ」は(・・・)
::短点連打音([ト][ト][ト][ト]・・・= …………・・・=全軍突撃せよ)
::[ト][ト][ト]...=・・―・・ ・・―・・ ・・―・・...=全軍突撃せよ)
::短点7ツの反復音([トラ]_[トラ]_[トラ]_・・・= …‥‥_…‥‥_…‥‥_・・・=我、奇襲に成功せり)
::[トラ][トラ][トラ]...=・・―・・ ・・・ ・・―・・ ・・・ ・・―・・ ・・・ ...=我、奇襲に成功せり)
:を合図としたものである。
:を合図としたものである。
:ちなみに[[大日本帝国陸軍|陸軍]]の[[マレー作戦]]の暗号は「ヒノデハヤマガタ」である。
:ちなみに[[大日本帝国陸軍|陸軍]]の[[マレー作戦]]の暗号は「ヒノデハヤマガタ」である。
*例4 単語を暗号書(コードブック)で対応する数字に変え、さらに乱数表から一定の法則で抜き出した数字を加える二部制の暗号もある。復号には、暗号作成時に使用したものと同一の乱数表と暗号書が必要。太平洋戦争における[[大日本帝国海軍|日本海軍]]がこうした二部制の暗号を使用していた。
* 単語を暗号書(コードブック)で対応する数字に変え、さらに[[乱数表]]から一定の法則で抜き出した数字を加える二部制の暗号もある。復号には、暗号作成時に使用したものと同一の[[乱数表]]と暗号書が必要。太平洋戦争における[[大日本帝国海軍|日本海軍]]がこうした二部制の暗号を使用していた。


== 実装 ==
== 実装 ==
70行目: 78行目:
[[File:暗号機.JPG|thumb|150px|right|機械式暗号([[M-209]])]]
[[File:暗号機.JPG|thumb|150px|right|機械式暗号([[M-209]])]]
; 棒
; 棒
: 紀元前5世紀、[[古代ギリシア]]で、特に[[スパルタ]]にてスキュタレー '''σκυτάλη''' と呼ばれる[[棒]]が暗号に使用された。同じ太さの棒を2本用意し、送信者と受信者が各々所持する。送信者は右図のように棒にテープを巻きつけて平文を横書きする。するとテープには平文の文字が飛び飛びに記されることになる。棒からテープを外してテープのみを受信者に送る。転置式暗号の一種である。暗号強度は決して高くないが、転置の際の書き間違い・読み間違いを回避できる手段である。
: 紀元前5世紀、[[古代ギリシア]]で、特に[[スパルタ]]で[[スキュタレー]] ({{lang|el|σκυτάλη}}) と呼ばれる[[棒]]が暗号に使用された。同じ太さの棒を2本用意し、送信者と受信者がそれぞれ所持する。送信者は右図のように棒にテープを巻きつけて平文を横書きする。するとテープには平文の文字が飛び飛びに記されることになる。棒からテープを外してテープだけを受信者に送る。転置式暗号の一種である。暗号強度は決して高くないが、転置の際の書き誤り・読み誤りを回避できる手段である。
; 円盤
; 円盤
: 15世紀、[[レオン・バッティスタ・アルベルティ|アルベルティ]]の考案した暗号円盤が最古のものとされる。大小2枚の[[円盤]]からなり、内側の円盤を回転させて平文・暗号文の対応を決める。位置を固定して暗号化・復号を行うとシーザー暗号となり、文字に位置をずらすと多表式暗号となる。[[南北戦争]]でも使用された。ローター式暗号は多段に接続した暗号円盤を機械化したものともいえる。
: 15世紀、[[レオン・バッティスタ・アルベルティ|アルベルティ]]の考案した暗号円盤が最古のものとされる。大小2枚の[[円盤]]からなり、内側の円盤を回転させて平文・暗号文の対応を決める。位置を固定して暗号化・復号を行うとシーザー暗号となり、1文字ごとに位置をずらすと多表式暗号となる。[[南北戦争]]でも使用された。ローター式暗号は多段に接続した暗号円盤を機械化したものともいえる。
; カード
; カード
: 16世紀、[[ジェロラモ・カルダーノ]]が穴をあけた[[カード]]([[カルダングリル]]と呼ばれる)を使って作成する分置式暗号を考案している。
: 16世紀、[[ジェロラモ・カルダーノ]]が穴をあけた[[カード]]([[カルダングリル]]と呼ばれる)を使って作成する分置式暗号を考案している。
; 換字表
; 換字表
: 多表式暗号を行う際のツールとして使用。トリテミスの換字表あるいはヴィジュネルの表として知られる。
: 多表式暗号を行う際のツールとして使用。トリテミスの換字表またはヴィジュネルの表として知られる。
; ブック
; ブック
: コードの対応表(略号集、ノーメンクラタ)や乱数表などを記載するのに使った。鍵フレーズを指定するために聖書や辞典が使用されることもあった。MI5が捕まえたスパイが所持していたとされる乱数表は、指サイズの小型のもので多数の数値が印刷されている。
: コードの対応表(略号集、ノーメンクラタ)や[[乱数表]]などを記載するのに使った。鍵フレーズを指定するために聖書や辞典が使用されることもあった。MI5が捕まえたスパイが所持していたとされる乱数表は、指サイズの小型のもので多数の数値が印刷されている。
; 輪
; 輪
: 18世紀末、[[トーマス・ジェファーソン|ジェファーソン]]が考案し、後にバセリも再発明している。ホィール(ディスク)、ストリップ、ロッドなど様々な形状をした暗号器が考案されている。M-94、M-138A(アメリカ)、REIHENSCHIEBER(ドイツ)など実際に使用された。
: 18世紀末、[[トーマス・ジェファーソン|ジェファーソン]]が考案し、後にバセリも再発明している。ホィール(ディスク)、ストリップ、ロッドなど様々な形状をした暗号器が考案されている。M-94(アメリカ陸海軍、1922年から1942年ごろ)、M-138A(アメリカ陸海軍・沿岸警備隊・国務省、1935年から1941年ないし1942年)、Reihenschieber(ドイツ連邦軍、1956年から1960年代)など実際に使用された。
; 機械
; 暗号機械
: 20世紀になると、[[エニグマ (暗号機)|エニグマ]](ドイツ)、[[パープル暗号|パープル]](日本)、[[M-209]]、M-325、SIGABA(アメリカ)、NEMA(スイス)、TypeX(イギリス)など機械式の暗号装置が開発され、特に[[第二次世界大戦]]中に各国で使用された。
: 20世紀になると、[[エニグマ (暗号機)|エニグマ]](ドイツ)、[[パープル暗号|パープル]](日本)、[[M-209]]、M-325、SIGABA(アメリカ)、NEMA(スイス)、TypeX(イギリス)など機械式の暗号装置が開発され、特に[[第二次世界大戦]]中に各国で使用された。
; コンピュータ
; 計算機
: 「電子化された暗号機械」に分類されるようなものなどもあるが、歴史的にごく一時期のものであるためここでは略す。コンピュータ・プログラムは、何らかの情報処理機械のソフトウェア実装である、と見ることができる([[チャーチ=チューリングのテーゼ]])。すなわち、暗号のプログラムは暗号機械のソフトウェア実装であるとも言える。のどかな時代には、実際にエニグマ暗号機の方式をそのままコンピュータ・プログラムにしたようなものも使われていたりしたこともあったが(詳細は [[:en:Crypt (Unix)]] を参照)、1970年代以降は、現代的な暗号として前述したような公開鍵暗号である[[RSA暗号|RSA]]や、共通鍵暗号では[[Data Encryption Standard|DES]]などがある。攻撃側(暗号解読側)が最新鋭のコンピュータの計算力を利用できると仮定しても、計算量的に安全でなければならない、という考えかたが基本となった。
: コンピュータの進歩と普及により、ハードウェアだけではなく、ソフトウェアでも暗号が実装できるようになった。
:一般的なコンピュータでの具体的な実装例としては、[[Internet Explorer]]や[[Safari]]などのブラウザに実装されている[[Transport Layer Security|TLS]]上で提供される共通鍵方式暗号化機能、オープンソースソフトウエアの[[GNU Privacy Guard|GnuPG]]で提供される公開鍵暗号方式のファイル暗号化・メール暗号化や、[[TrueCrypt]]での暗号化[[ディスクドライブ仮想化ソフト|仮想ディスク]]ソリューションなどが有名である。また、[[Linux]]においては[[LUKS]]([[w:en:Linux Unified Key Setup|en]])のようシステムディスクそのものを暗号化する実装もある。その他、企業などでは有償の高度な暗号化ソリューションが使われていることも多い。
:また、企業などの拠点間通信をインターネット上を経由させるときに盗聴や改ざん等を防ぐため、[[Virtual Private Network|VPN]]では(ソフトウエアとハードウエアの両面で)暗号化もサポートされている。


== 用語 ==
== 用語 ==
暗号で用いられる用語。[[暗号理論#用語|暗号理論の用語]]も参照。
暗号で用いられる用語。[[暗号理論#用語|暗号理論]]も参照。


; 平文 (plaintext)
; 平文[ひらぶん] (plaintext)
: 暗号化される前の文。
: 暗号化される前の文。
; 暗号文 (ciphertext)
; 暗号文 (ciphertext)
118行目: 124行目:
: [[公開鍵暗号]]において、暗号化に使用する鍵。暗号化鍵とも言う。復号側が持つ秘密鍵と対になった鍵が必要で、復号側はあらかじめ自分の公開鍵を暗号化側に通知しておく(公開する)ことから公開鍵と呼ばれる。
: [[公開鍵暗号]]において、暗号化に使用する鍵。暗号化鍵とも言う。復号側が持つ秘密鍵と対になった鍵が必要で、復号側はあらかじめ自分の公開鍵を暗号化側に通知しておく(公開する)ことから公開鍵と呼ばれる。
; 秘密鍵 (private key)
; 秘密鍵 (private key)
: 公開鍵暗号において、復号に使用する鍵。復号鍵とも言う。復号側だけがこのデータを持っている(秘密にする)ことから秘密鍵と呼ばれる。(秘密の共通鍵にたいして)私有鍵ということもある。公開鍵から秘密鍵を推測すること非常に困難(事実上不可能)である暗号法を選択する必要がある。
: 公開鍵暗号において、復号に使用する鍵。復号鍵とも言う。復号側だけがこのデータを持っている(秘密にする)ことから秘密鍵と呼ばれる。(秘密の共通鍵にたいして)私有鍵ということもある。公開鍵から秘密鍵を推測すること非常に困難(事実上不可能)である暗号法を選択する必要がある。
: なお、公開鍵暗号においては、公開鍵の代わりに秘密鍵を使って暗号化を施すと、それによって生成された暗号文は、対応する公開鍵によってのみ復号できる。すなわち、ある公開鍵によって暗号文が復号できたことは、当該公開鍵に対応する秘密鍵の持ち主によって暗号文が作成されたことの推定となる。これが[[電子署名]]の基本原理となっている。
; 鍵ペア (key pair)
; 鍵ペア (key pair)
: 秘密鍵と、対応する公開鍵とからなるペアの事。同時に生成される。
: 秘密鍵と、対応する公開鍵とからなるペアの事。同時に生成される。
; 鍵交換 (key exchange)
; 鍵交換 (key exchange)
: 共通鍵暗号において、公開鍵暗号方式などを用いて暗号化側と復号側が共通鍵を共有すること。鍵配布センター (KDC) などの信用できる第三者機関を利用する集中型と、各人が秘密の値と通信データを用いて共有の鍵を生成する分散型がある。'''鍵配送''' (key distribution) 、'''鍵共有''' (key agreement) ともいうが、集中型のことを鍵配送、分散型のことを鍵共有として両者を含めて鍵交換とする場合など、区別する書籍もある。
: 共通鍵暗号において、公開鍵暗号方式などを用いて暗号化側と復号側が共通鍵を共有すること。大量のデータをすべて公開鍵暗号で送受信しようとすると計算量が膨大になることから、全文の送受信は比較的簡便な共通鍵暗号で行うこととし、そのための鍵をまず公開鍵暗号方式で共有する、という方法が広く採用されている。
: この際、鍵配布センター (KDC) などの信用できる第三者機関を利用する集中型と、各人が秘密の値と通信データを用いて共有の鍵を生成する分散型がある。'''鍵配送''' (key distribution) 、'''鍵共有''' (key agreement) ともいうが、集中型のことを鍵配送、分散型のことを鍵共有として両者を含めて鍵交換とする場合など、区別する書籍もある。
; オラクル
; オラクル
: 入力に対して出力が得られる関数のようなもの。オラクルを必要とするモデルで使用される。
: 入力に対して出力が得られる関数のようなもの。オラクルを必要とするモデルで使用される。
; [[アリスとボブ]] (Alice and Bob)
; [[アリスとボブ]] (Alice and Bob)
: 暗号理論に登場するプレイヤーはAからアルファベット順に並ぶことが一般的であり、論文では通常Alice、Bobが使われる。これはRSA暗号が発表されたときのプレイヤー名にもとづく。C以降は様々だが、Catherine、Carol、Charlie、などが多い。
: 暗号理論に登場するプレイヤーはAからアルファベット順に並ぶことが一般的であり、論文では通常Alice、Bobが使われる。これはRSA暗号が発表されたときのプレイヤー名にもとづく。C以降は様々だが、Catherine、Carol、Charlie、などが多い。

<!--
<!--
***間違っているので削除しました。***
***間違っているので削除しました。***
153行目: 160行目:


==参考文献==
==参考文献==
{{see|暗号関係の書籍の一覧}}<!-- 下記のリストは暗号関係の書籍に移動中 -->
===書籍===
* 書籍については[[暗号関係の書籍]]を参照。<!-- 下記のリストは暗号関係の書籍に移動中 -->
<!-- *「トラ・トラ・トラ」、ゴードン・W・プランゲ、日本リーダーズダイジェスト社、1966年 (真珠湾の話)--><!--初版?1991年に再版が出ている模様-->
<!-- *「トラ・トラ・トラ」、ゴードン・W・プランゲ、日本リーダーズダイジェスト社、1966年 (真珠湾の話)--><!--初版?1991年に再版が出ている模様-->
<!-- *「情報戦に完敗した日本・・陸軍暗号神話の崩壊」、岩島久夫、原書房、1984年 -->
<!-- *「情報戦に完敗した日本・・陸軍暗号神話の崩壊」、岩島久夫、原書房、1984年 -->
163行目: 169行目:
<!-- *「鉄壁の暗号 究極の解読」、宝島社、2002年 (フリー暗号ソフトの紹介。ステガノグラフィーなどもある)-->
<!-- *「鉄壁の暗号 究極の解読」、宝島社、2002年 (フリー暗号ソフトの紹介。ステガノグラフィーなどもある)-->
<!-- *「暗号解読 ロゼッタストーンから量子暗号まで」、サイモン・シン著、新潮社、原版1999年、日本語版2001年、2600円 -->
<!-- *「暗号解読 ロゼッタストーンから量子暗号まで」、サイモン・シン著、新潮社、原版1999年、日本語版2001年、2600円 -->
===論文===
*「A method for obtaining digital signatures and public-key cryptosystems」MIT/LCS/TM-82 April 1977(RSAの原論文。表紙込み16ページ。日経エレクトロニクスに全訳有り。現代の暗号技術全般を網羅する古典)

== 外部リンク ==
* [http://support.microsoft.com/kb/882928/ja マイクロソフト公式技術情報: ファイルの暗号化とは何ですか?]

== 関連項目 ==
* [[暗号理論]]
* [[電子署名]]
* [[ハッシュ関数]]
* [[データ圧縮]]
* [[ダイイングメッセージ]]


==脚注==
{{脚注ヘルプ}}
=== 注釈 ===
{{Notelist}}
=== 出典 ===
{{Reflist}}


==関連項目==
{{暗号のナビゲーションボックス}}
{{Wiktionary pipe|暗号}}
* [[符牒|符丁(符牒)]]
* [[コドン|遺伝暗号]] - 遺伝子の塩基配列とアミノ酸配列との変換ルール
* [[クロノグラム]] - 数字をアルファベットに置き換えて、年号を表す表記法で石碑などに記される。
* [[暗号と情報セキュリティシンポジウム]]


{{cryptography navbox}}
<!-- interwiki -->
{{normdaten}}


{{DEFAULTSORT:あんこう}}
{{DEFAULTSORT:あんこう}}

2024年4月19日 (金) 06:52時点における最新版

暗号(あんごう)とは、セキュア通信の手法の種類で、第三者が通信文を見ても特別な知識なしでは読めないように変換する、というような手法をおおまかには指す。いわゆる「通信」(telecommunications)に限らず、記録媒体への保存などにも適用できる。

概要

[編集]

秘匿通信を行う上で最も単純な方法は「木を隠すなら森」という諺のごとく、通信文そのものの所在を隠してしまうことである。歴史上実際に行われたものとしては、通信文を丸めて飲み込んだり、ベルトの内側に書き普通の被服のように身につけたり、新聞の文字に印(文字横に穴を開ける等)をつけて文章を作る、頭を剃りあげて頭皮に通信文を刺青し、再び頭髪が生えそろうことで隠す、意図的に広い帯域に信号を分散させるスペクトラム拡散などもあったようである。「暗号らしい手法」としては「ステガノグラフィー」といい、「それとはわからないような形で」記録する、というものである。画像などに情報を埋め込む「電子透かし」にも同じ技術を利用するが、電子透かしではその画像の著作権情報などといった関係のある情報を埋め込むのが目的であるのに対し、ステガノグラフィーは全く無関係な情報を秘密のうちに紛れ込ませる、という点が異なる。またいわゆる縦読みなども一見して普通の文章の中に見えるためステガノグラフィーの一種と言えなくもない。

広義では以上のような方法も暗号に含まれるし暗号学が探求する対象であるが、狭義では、その見た目が「なんだかわからない」という、難読であると明確なものを指して特に暗号に分類する(なお、暗号化された通信文(暗号文)については理論上、他からの「それが暗号である」という情報が無ければ、ただのデタラメと全く区別が不可能であるのが理想である[注釈 1])。

狭義の暗号は、古典的には主要な分類に、以下の2つがある。

  • 「コード」

通信文内の、単語フレーズといったある程度意味のある塊の単位で、あらかじめ取り決めてある記号と交換する。

  • 「サイファー」

通信文に対し、意味とは関係なく、文字毎の(最小の)単位で、あらかじめ取り決めてある置換や転置を掛ける。

「コード」は一般に、軍の運用に必要なものなど、ある程度の(あるいは膨大な[注釈 2])語彙について秘密の記号群を決めておくものであるが、「討ち入り」「開戦」などといった特定の重要な件のみについて、「○◇△といえば、~のこと」等と事前に取り決めておくことで秘匿することも行われた。個人間で行うものから組合ギルド等の特定のグループ内で行うものがある。事前の取り決めではなく、特定の人達だけが知る事項などを元に、意味は同じままで、言い方を変えることで秘匿することもある。秘匿したい特定の単語だけ置き換えることも、コードブックと呼ばれる辞書を作成して全ての単語を置き換えることもあり、歴史的な例としては、前者は「スコットランド女王メアリーの暗号」、後者は「ルイ14世の大暗号」や「ナポレオンの小暗号」などが知られている。

「サイファー」は、機械化以前は一般に作業手数が大きいといった欠点があったが、機械化以後はサイファーが主流の暗号である。機械化に次いで、暗号のコンピュータ化(あるいは、コンピュータの暗号化)の時代となったが、それらの暗号も、だいたいサイファーに分類するのが妥当であろう。

また以上のようなセキュア通信のための狭義の暗号に限らず、相手の身元を確認する認証や改竄の検出、貨幣の偽造防止技術、電子署名認証ハッシュ関数電子マネーその他、情報セキュリティの多くの局面で、暗号はキーテクノロジとなっている。

なお、暗号化の逆の操作を表す語は「復号(英語: decryption)」であり、本来符号化に対するそれ(英語: decode)同様「~化」とはしないが、「復号化」という誤用はかなり広く定着している。

暗号学

[編集]

歴史

[編集]

種類

[編集]

まず、古典的な暗号と現代的な暗号を分けるものとして、ケルクホフスの原理がある。現代的な暗号理論よりも前の時代には、暗号の「方式」と「鍵」の識別は明瞭ではなかったし、そのどちらも秘匿されねばならぬものであった。すなわち攻撃側の視点からは、方式がわかってしまえば、それによって、鍵を得ることも容易になってしまうのであった。現代の暗号は、秘密は鍵に集中しており、その方式はむしろ公知のものであったほうが、その強度なども広く研究されているために、むしろ安全である。

鍵を使わない方法は、一度敵に知られた方法は二度と使えない、暗号の信頼性を客観的に評価することができないなどの問題がある。例えば単純なシーザー暗号は、方式自体がバレないようにしなければ安全性が保てないほど脆弱であるし、ある程度の量の暗号文があれば何百年以上も前からある頻度分析という手法によって方式自体もバレてしまう。それに対し鍵を使う方法は、アルゴリズム自体を敵に知られても構わない方式を目標としており、一度考案した方式は鍵を変えることで何度でも使える、アルゴリズムを広く公開することで信頼性を十分に検討できる、などの多くの利点がある。

近代以降になると、このように「鍵さえ秘密にしていれば暗号化・復号の方法を公開しても安全が保てる」ことが暗号にとって望ましい性質であることが明確化された(ケルクホフスの原理)。

古典暗号の時代の「サイファー」の主要な2種類は、以下の二つである(暗号システムとしては、他にも多種多様なものが考案された)。

上の2つの分類は、現代暗号でもなんら変わるものではないが、現代的には次のような暗号の分類がある。このうち前者の共通鍵暗号は、分類としては古典暗号時代からなんら変わらぬ暗号の方式であって、「現代暗号の分類」とするのはむしろおかしいのだが、後者との対比としてしばしば挙げられるものである。後者の公開鍵暗号は、暗号をその時代の最新の数理で検討するようになった現代暗号ならではの暗号と言える。

近代以降、前述のように、秘密は鍵に集中すべきことから、暗号の問題は鍵の配送(共有)にあることが明確になった。暗号系を含む全体を通信システムとして検討したならば、そもそもそのような「鍵」をやりとりできるほどに安全な通信路があるならば、その通信路で本文も通信してしまえば良いからである。この問題には、公開鍵暗号方式の発明によって一応の決着が付いた。すなわち、公開鍵暗号であればその非対称なペアになっている鍵のうちの片方は秘密ではないため、配送の問題が生じないからである。ただし通常は計算量の理由から、公開鍵暗号を本文の暗号通信に直接使うことはせず、公開鍵暗号を利用した安全な鍵交換方式によって共通鍵を安全に交換し、その鍵によって共通鍵暗号通信をおこなう。

コードやサイファーのような記号による暗号ではなく、スクランブル(信号の切り混ぜ)といったアナログ技術による広義の暗号システムとしては、かつてアナログ電話の時代に盛んに研究されたものがある。秘話の記事を参照。

さらに、より「アナログ」な事例としては、少数民族の言語や方言などによる、相手側が仮に傍受しても瞭解が不可能な会話を利用したものがある[1]。太平洋戦争での事例として、アメリカ側はナバホ語による通話を利用し(コードトーカー)、日本側は薩隅方言による通話を利用した[注釈 3]

具体的な暗号方式の一覧は、暗号理論を参照。

コードの例

[編集]
  • ルイ14世の大暗号(ロシニョールが作成): コードブックは「act=486、ion=102、…」のように音節単位で3桁の数に対応させる(600個程ある)。暗号文「486-102」を復号すると act-ion になる。19世紀末フランス軍の暗号解読者バズリが解読を発表した。
  • 日露戦争で使われた暗号文:「アテヨ イカヌ ミユトノケイホウニセツシ、ノレツ ヲハイタダチニヨシスコレヲワケフ ウメルセントス、ホンジツテンキセイロウナレドモナミタカシ」。コードブックは「アテヨ=敵、イカヌ=艦隊、ノレツ=連合艦隊、…」のように秘匿したい単語をカナ3文字に対応(2文字目は単語の最初と同じ音にもなっている)させている。平文は「 艦隊見ユトノ警報ニ接シ、連合艦隊 直チニ出動、コレヲ撃沈 セントス、本日天気晴朗ナレドモ波高シ」となる。
  • 真珠湾攻撃で使われた暗号文:「ニイタカヤマノボレ1208」(=12/8に日米開戦、事前に決めておいたフレーズを合図とし、更に1文字ごとに五連数字に換えた)。なお、「ト」の連打(=全軍突撃せよ)、「トラ」の反復(=我、奇襲に成功せり)などもよく知られているが、これらは正確には電信(モールス符号)の聞き分け易い音を合図としたものである。日本海軍機が搭載していたのは無線電話機(音声通信)ではなく、無線電信機(モールス符号通信)であった(航空通信に無線電話が導入されるのは1950年代に入ってから)ため、交戦時に複雑な電文の送信・聴取は困難なことから、和文電信で聞き取りやすい符号の組み合わせとなった。
「ト」は(・・―・・)、「ラ」は(・・・)で、
[ト][ト][ト]...=・・―・・ ・・―・・ ・・―・・...=全軍突撃せよ)
[トラ][トラ][トラ]...=・・―・・ ・・・ ・・―・・ ・・・ ・・―・・ ・・・ ...=我、奇襲に成功せり)
を合図としたものである。
ちなみに陸軍マレー作戦の暗号は「ヒノデハヤマガタ」である。
  • 単語を暗号書(コードブック)で対応する数字に変え、さらに乱数表から一定の法則で抜き出した数字を加える二部制の暗号もある。復号には、暗号作成時に使用したものと同一の乱数表と暗号書が必要。太平洋戦争における日本海軍がこうした二部制の暗号を使用していた。

実装

[編集]

初期の古典暗号は、多くは鉛筆のみで暗号化を行うが、多少の道具を用いるものもあった。暗号解読の進歩により単純な暗号では安全ではなくなると、複雑な処理を自動化するための機械が発明された。

スキュタレー
南北戦争時の暗号円盤
ヴィジュネルの表
機械式暗号(M-209
紀元前5世紀、古代ギリシアで、特にスパルタスキュタレー (σκυτάλη) と呼ばれるが暗号に使用された。同じ太さの棒を2本用意し、送信者と受信者がそれぞれ所持する。送信者は右図のように棒にテープを巻きつけて平文を横書きする。するとテープには平文の文字が飛び飛びに記されることになる。棒からテープを外してテープだけを受信者に送る。転置式暗号の一種である。暗号強度は決して高くないが、転置の際の書き誤り・読み誤りを回避できる手段である。
円盤
15世紀、アルベルティの考案した暗号円盤が最古のものとされる。大小2枚の円盤からなり、内側の円盤を回転させて平文・暗号文の対応を決める。位置を固定して暗号化・復号を行うとシーザー暗号となり、1文字ごとに位置をずらすと多表式暗号となる。南北戦争でも使用された。ローター式暗号は多段に接続した暗号円盤を機械化したものともいえる。
カード
16世紀、ジェロラモ・カルダーノが穴をあけたカードカルダングリルと呼ばれる)を使って作成する分置式暗号を考案している。
換字表
多表式暗号を行う際のツールとして使用。トリテミスの換字表またはヴィジュネルの表として知られる。
ブック
コードの対応表(略号集、ノーメンクラタ)や乱数表などを記載するのに使った。鍵フレーズを指定するために聖書や辞典が使用されることもあった。MI5が捕まえたスパイが所持していたとされる乱数表は、指サイズの小型のもので多数の数値が印刷されている。
18世紀末、ジェファーソンが考案し、後にバセリも再発明している。ホィール(ディスク)、ストリップ、ロッドなど様々な形状をした暗号器が考案されている。M-94(アメリカ陸海軍、1922年から1942年ごろ)、M-138A(アメリカ陸海軍・沿岸警備隊・国務省、1935年から1941年ないし1942年)、Reihenschieber(ドイツ連邦軍、1956年から1960年代)など実際に使用された。
暗号機械
20世紀になると、エニグマ(ドイツ)、パープル(日本)、M-209、M-325、SIGABA(アメリカ)、NEMA(スイス)、TypeX(イギリス)など機械式の暗号装置が開発され、特に第二次世界大戦中に各国で使用された。
コンピュータ
「電子化された暗号機械」に分類されるようなものなどもあるが、歴史的にごく一時期のものであるためここでは略す。コンピュータ・プログラムは、何らかの情報処理機械のソフトウェア実装である、と見ることができる(チャーチ=チューリングのテーゼ)。すなわち、暗号のプログラムは暗号機械のソフトウェア実装であるとも言える。のどかな時代には、実際にエニグマ暗号機の方式をそのままコンピュータ・プログラムにしたようなものも使われていたりしたこともあったが(詳細は en:Crypt (Unix) を参照)、1970年代以降は、現代的な暗号として前述したような公開鍵暗号であるRSAや、共通鍵暗号ではDESなどがある。攻撃側(暗号解読側)が最新鋭のコンピュータの計算力を利用できると仮定しても、計算量的に安全でなければならない、という考えかたが基本となった。

用語

[編集]

暗号で用いられる用語。暗号理論も参照。

平文[ひらぶん] (plaintext)
暗号化される前の文。
暗号文 (ciphertext)
平文を、独特の表記法によって第三者が読み解けないようにした通信文。
鍵 (key)
表記法のパラメータ。表記法によっては鍵はないこともある。鍵が異なると平文が同じでも暗号文が異なる。
平文空間
平文全体の集合
暗号文空間
暗号文全体の集合
鍵空間
鍵全体の集合
セキュリティパラメータ (security parameter)
暗号の安全性を表す尺度。鍵のサイズなどを指定する。
暗号化 (encryption; encode, encipher)
表記法に従って平文を暗号文に変換すること。
復号 (decryption; decode, decipher)
表記法に従って暗号文を平文に戻すこと。
攻撃 (attack)
暗号化に用いられた表記法の特定あるいは鍵を探索する行為。または鍵を用いずに暗号文を平文に戻すこと。解読ともいう。暗号の方式によって様々な攻撃法が考案されている。暗号の攻撃法も参照。
暗号解読 (cryptanalysis)
受信者以外の第三者が暗号文を通信文に戻そうとすること。
共通鍵 (common key; symmetric key)
共通鍵暗号において、暗号化にも復号にも用いられる鍵。暗号化側と復号側が同じものを持っている必要があり、鍵を共有する過程で盗聴された場合に通信の秘密はまったく保てなくなる。秘密鍵ということもある。
公開鍵 (public key)
公開鍵暗号において、暗号化に使用する鍵。暗号化鍵とも言う。復号側が持つ秘密鍵と対になった鍵が必要で、復号側はあらかじめ自分の公開鍵を暗号化側に通知しておく(公開する)ことから公開鍵と呼ばれる。
秘密鍵 (private key)
公開鍵暗号において、復号に使用する鍵。復号鍵とも言う。復号側だけがこのデータを持っている(秘密にする)ことから秘密鍵と呼ばれる。(秘密の共通鍵にたいして)私有鍵ということもある。公開鍵から秘密鍵を推測することが非常に困難(事実上不可能)である暗号法を選択する必要がある。
なお、公開鍵暗号においては、公開鍵の代わりに秘密鍵を使って暗号化を施すと、それによって生成された暗号文は、対応する公開鍵によってのみ復号できる。すなわち、ある公開鍵によって暗号文が復号できたことは、当該公開鍵に対応する秘密鍵の持ち主によって暗号文が作成されたことの推定となる。これが電子署名の基本原理となっている。
鍵ペア (key pair)
秘密鍵と、対応する公開鍵とからなるペアの事。同時に生成される。
鍵交換 (key exchange)
共通鍵暗号において、公開鍵暗号方式などを用いて暗号化側と復号側が共通鍵を共有すること。大量のデータをすべて公開鍵暗号で送受信しようとすると計算量が膨大になることから、全文の送受信は比較的簡便な共通鍵暗号で行うこととし、そのための鍵をまず公開鍵暗号方式で共有する、という方法が広く採用されている。
この際、鍵配布センター (KDC) などの信用できる第三者機関を利用する集中型と、各人が秘密の値と通信データを用いて共有の鍵を生成する分散型がある。鍵配送 (key distribution) 、鍵共有 (key agreement) ともいうが、集中型のことを鍵配送、分散型のことを鍵共有として両者を含めて鍵交換とする場合など、区別する書籍もある。
オラクル
入力に対して出力が得られる関数のようなもの。オラクルを必要とするモデルで使用される。
アリスとボブ (Alice and Bob)
暗号理論に登場するプレイヤーはAからアルファベット順に並ぶことが一般的であり、論文では通常Alice、Bobが使われる。これはRSA暗号が発表されたときのプレイヤー名にもとづく。C以降は様々だが、Catherine、Carol、Charlie、などが多い。

参考文献

[編集]

脚注

[編集]

注釈

[編集]
  1. ^ 前述のステガノグラフィーのような、一見すると別の意味がちゃんとあるような情報の中に秘密の情報を忍び込ませる、という方法は、情報理論からの結論として、情報全体に比してごくわずかな情報を埋込むことしかできない。
  2. ^ 過去の例として、太平洋戦争のような戦争ともなれば膨大になった。
  3. ^ 明治期に、「方言札」などに象徴される苛烈な方言弾圧がもし旧薩摩藩領に行われていたら、不可能であっただろう。

出典

[編集]

関連項目

[編集]