EITC/IS/CCF Classical Cryptography Fundamentalsは、秘密鍵暗号と公開鍵暗号の両方を含む、古典暗号の理論的および実用的な側面に関するヨーロッパのIT認定プログラムであり、インターネットで広く使用されている実用的な暗号を紹介しています。 RSA。
EITC/IS/CCFクラシック暗号化の基礎のカリキュラムは、秘密鍵暗号化、モジュラー算術および履歴暗号、ストリーム暗号、ランダム番号、ワンタイムパッド(OTP)無条件に安全な暗号(ソリューションを提供することを前提としています)の概要をカバーしています。たとえば、Quantum Key Distribution(QKD)、線形フィードバックシフトレジスタ、データ暗号化標準(DES暗号、暗号化、キースケジュール、復号化を含む)、Advanced Encryption Standard(AES、Galoisフィールドの導入など)によって与えられるようなキー配布の問題に対応します。ベースの暗号化)、ブロック暗号のアプリケーション(それらの動作モードを含む)、複数の暗号化とブルートフォース攻撃の検討、数理論、ユークリッドアルゴリズム、オイラーのファイ関数とオイラーの定理をカバーする公開鍵暗号化の紹介、および包括的なビデオ教訓cを含む、次の構造内でのRSA暗号システムの紹介と効率的な指数化このEITC認証の参照としての意図。
暗号化とは、敵対者の存在下で安全な通信を行う方法を指します。 暗号化は、広義には、サードパーティまたは一般の人々がプライベート(暗号化された)メッセージにアクセスするのを防ぐプロトコルを作成および分析するプロセスです。 現代の古典的な暗号化は、データの機密性、データの整合性、認証、否認防止など、情報セキュリティのいくつかの主要な機能に基づいています。 自然を特徴付ける根本的に異なる量子物理学の規則に基づく量子暗号とは対照的に、古典暗号は古典物理法則に基づく暗号を指します。 数学、コンピューターサイエンス、電気工学、コミュニケーションサイエンス、および物理学の分野はすべて、古典的な暗号化で出会う。 電子商取引、チップベースの支払いカード、デジタル通貨、コンピューターパスワード、および軍事通信はすべて、暗号化アプリケーションの例です。
現在の時代以前は、暗号化は暗号化とほぼ同義であり、情報を読み取り可能なものから理解できないナンセンスに変えていました。 攻撃者が暗号化されたメッセージにアクセスするのを防ぐために、送信者は目的の受信者とのみデコードプロセスを共有します。 暗号化の文献では、送信者を表すアリス( "A")、目的の受信者を表すボブ( "B")、および敵対者を表すイブ( "eavesdropper")という名前が頻繁に使用されます。
第一次世界大戦でのローター暗号化マシンの開発と第二次世界大戦でのコンピューターの導入以来、暗号化手法はますます複雑になり、そのアプリケーションはより多様化しています。
現代の暗号化は、数学的理論とコンピューターサイエンスの実践に強く依存しています。 暗号化手法は計算難度の仮定に基づいて構築されているため、対戦相手が実際に破ることは困難です。 適切に設計されたシステムに侵入することは理論的には可能ですが、実際には不可能です。 このようなスキームは、適切に構築されている場合、「計算上安全」と呼ばれます。 それにもかかわらず、理論的な進歩(たとえば、整数因数分解法の改善)とより高速なコンピューティング技術は、絶え間ない再評価と、必要に応じてこれらの設計の適応を必要とします。 ワンタイムパッドなどの情報理論的に安全なシステムがあり、無限の計算能力を備えていても壊れないことが証明できますが、理論的には壊れやすいが計算上安全なスキームよりも実際に使用するのは非常に困難です。
情報化時代において、暗号化技術の進歩はさまざまな法的課題を生み出しました。 多くの国が暗号を武器として分類しており、スパイや扇動の可能性があるため、暗号の使用と輸出を制限または禁止しています。 調査担当者は、暗号化が合法であるいくつかの場所で、調査に関連するドキュメントの暗号化キーの放棄を強制することができます。 デジタルメディアの場合、暗号化はデジタル著作権管理と著作権侵害の対立においても重要な役割を果たします。
(「暗号文」ではなく)「暗号文」という用語は、XNUMX世紀にエドガーアランポーの短編小説「黄金虫」で最初に使用されました。
最近まで、暗号化はほとんど「暗号化」と呼ばれていました。これは、通常のデータ(平文と呼ばれる)を読み取り不可能な形式(暗号文と呼ばれる)に変換する行為です。 復号化は暗号化の反対です。つまり、理解できない暗号文から平文になります。 暗号(または暗号)は、暗号化と復号化を逆の順序で実行する一連の技術です。 アルゴリズムと、いずれの場合も「キー」が暗号の詳細な実行を担当します。 キーは、暗号文を復号化するために使用される秘密(できれば聖体拝領者だけが知っている)です。 通常は文字列です(ユーザーが覚えられるように短くするのが理想的です)。 「暗号システム」とは、有限の可能性のある平文、暗号文、鍵、および正式な数学的用語で各鍵に対応する暗号化および復号化手順の要素の順序付けられたコレクションです。 固定キーを持つ暗号は、暗号の情報のみを使用して簡単に解読でき、ほとんどの目的で役に立たない(または逆効果になる)ため、キーは形式的にも実用的にも重要です。
歴史的に、暗号は、暗号化または復号化のための認証または整合性チェックなどの追加の手順なしで頻繁に使用されていました。 暗号システムは、対称と非対称の1970つのカテゴリに分類されます。 同じ鍵(秘密鍵)は、XNUMX年代まで知られている唯一の対称システムでメッセージを暗号化および復号化するために使用されます。 対称システムはより短いキー長を使用するため、対称システムでのデータ操作は非対称システムよりも高速です。 非対称システムは、「公開鍵」を使用して通信を暗号化し、同様の「秘密鍵」を使用して復号化します。 非対称システムを使用すると、XNUMXつのキー間の関係を判別することが困難になるため、通信のセキュリティが向上します。 RSA(Rivest–Shamir–Adleman)とECCは、非対称システム(Elliptic Curve Cryptography)のXNUMXつの例です。 以前のDESに取って代わった広く使用されているAES(Advanced Encryption Standard)は、高品質の対称アルゴリズム(Data Encryption Standard)の例です。 ピッグラテンや他のカントなどのさまざまな子供の言語のもつれ技術、そして実際には、XNUMX世紀初頭にワンタイムパッドが導入される前のあらゆるソースからのすべての暗号化スキームは、低品質の例です。対称アルゴリズム。
「コード」という用語は、暗号化またはメッセージ隠蔽の技術を指すために口語的に使用されることがよくあります。 ただし、暗号化では、コードとは、平文の単位(つまり、意味のある単語または句)をコード語に置き換えることを指します(たとえば、「ワラビー」は「夜明けの攻撃」を置き換えます)。 対照的に、暗号文は、暗号文を形成するために、そのようなレベルより下の要素(たとえば、文字、音節、または文字のペア)を変更または置換することによって作成されます。
暗号解読は、暗号化されたデータを、必要なキーにアクセスせずに復号化する方法の研究です。 言い換えれば、それは暗号化スキームまたはその実装を「破る」方法の研究です。
英語では、「暗号解読」と「暗号学」という用語を同じ意味で使用する人もいれば、(一般的な米軍の慣行を含む)「暗号解読」を使用して暗号技術の使用と実践を指し、「暗号学」を組み合わせて使用する人もいます。暗号と暗号解読の研究。 英語は他の多くの言語よりも適応性が高く、「暗号学」(暗号学者によって実践されている)は常に第2828の意味で使用されます。 RFC XNUMXによると、ステガノグラフィは暗号化に含まれることがあります。
Cryptolinguisticsは、暗号化または暗号化にある程度の関連性がある言語プロパティの研究です(たとえば、頻度統計、文字の組み合わせ、普遍的なパターンなど)。
暗号解読と暗号解読には長い歴史があります。
暗号の歴史が主な記事です。
現代以前は、暗号化は主にメッセージの機密性(つまり、暗号化)に関係していました。つまり、メッセージを理解可能な形式から理解できない形式に変換し、秘密の知識(つまり、復号化に必要なキー)なしで傍受者や盗聴者がメッセージを読み取れないようにします。そのメッセージの)。 暗号化は、スパイ、軍の指導者、外交官の会話を非公開にするように設計されました。 ここ数十年で、この分野は、メッセージの整合性チェック、送信者/受信者のID認証、デジタル署名、対話型証明、安全な計算などの技術を組み込むように成長しました。
最も一般的な1900つの古典的な暗号タイプは、文字または文字のグループを他の文字または文字のグループに体系的に置き換える転置暗号(たとえば、「helloworld」は簡単な再配置スキームでは「ehlolowrdl」になります)と換字式暗号です。これは、文字または文字のグループを他の文字または文字のグループに体系的に置き換えます(たとえば、「一度に飛ぶ」は「gmz bu」になります。どちらの単純なバージョンも、狡猾な敵から多くのプライバシーを提供したことはありません。シーザー暗号は、初期の換字式暗号でした。プレーンテキストの各文字は、アルファベットの下の特定の数の位置の文字に置き換えられました。スエトニウスによれば、ジュリアスシーザーは、将軍と通信するためにXNUMX人のシフトでそれを使用しました。初期のヘブライ暗号であるアトバッシュはその一例です。暗号の最も古い既知の使用法は、エジプト(紀元前XNUMX年頃)の石に刻まれた暗号テキストですが、これは、文字のある観客を楽しむために行われた可能性があります。 情報を隠すために。
暗号は古典ギリシア人に知られていると報告されています(たとえば、スキュタレー転置暗号はスパルタ軍によって使用されたと主張されています)。 ステガノグラフィ(通信の存在さえも隠して非公開にする方法)も古代に発明されました。 ヘロドトスによれば、奴隷の剃った頭に刺青を入れ、再成長した髪の下に隠されたフレーズ。 情報を隠すための不可視インク、マイクロドット、および電子透かしの使用は、ステガノグラフィのより最近の例です。
KautiliyamとMulavediyaは、インドの2000年前のVtsyyanaのKamasutraで言及されているXNUMX種類の暗号です。 Kautiliyamの暗号文字の置換は、母音が子音になるなどの音声関係に基づいています。 Mulavediyaの暗号アルファベットは、一致する文字と相互の文字を使用して構成されています。
イスラム教徒の学者イブン・ナディームによれば、サーサーン朝のペルシャにはXNUMXつの秘密の台本がありました。公式の通信に使用されるh-dabrya(文字通り「王の台本」)と、他の人と秘密のメッセージを交換するために使用されるrz-saharyaです。国。
彼の著書TheCodebreakersの中で、David Kahnは、現代の暗号学は、暗号解読手順を注意深く文書化した最初のアラブ人から始まったと書いています。 暗号メッセージの本はAl-Khalil(717–786)によって書かれ、母音の有無にかかわらず考えられるすべてのアラビア語をリストするための順列と組み合わせの最も早い使用が含まれています。
古典的な暗号(およびいくつかの最新の暗号)によって生成された暗号文は、平文に関する統計情報を明らかにします。これは、暗号を解読するために利用できます。 周波数分析の発見後、おそらく9世紀のアラブの数学者で博学者のAl-Kindi(Alkindusとしても知られている)によって、そのような暗号のほぼすべてがインテリジェントな攻撃者によって破られる可能性があります。 古典的な暗号は、主にパズルとしてではありますが、今日でも人気があります(暗号文を参照)。 Risalah fi Istikhraj al-Mu'amma(暗号解読メッセージを解読するための原稿)はAl-Kindiによって書かれ、周波数分析暗号解読技術の最初の既知の使用法を文書化しました。
度数分布を平坦化する傾向があるホモフォニック暗号などの一部の拡張履歴暗号化アプローチは、言語文字の頻度の恩恵を受けない場合があります。 言語文字グループ(またはn-gram)の頻度は、これらの暗号を攻撃する可能性があります。
多表式暗号が発見されるまで、特に1467年頃にLeon Battista Albertiが発見するまで、事実上すべての暗号が周波数分析アプローチを使用して暗号解読にアクセスできましたが、Al-Kindiにはすでに知られていました。 アルベルティは、コミュニケーションのさまざまな部分に(おそらく、制限されている連続する平文の文字ごとに)別々の暗号(または置換アルファベット)を使用するというアイデアを思いつきました。 彼はまた、彼の設計の一部を実行した最初の自動暗号化デバイスと思われるものを作成しました。 多表式暗号であるVigenère暗号の暗号化は、キーワードのどの文字が使用されているかに基づいて文字の置換を管理するキーワードによって制御されます。 チャールズ・バベッジは、XNUMX世紀半ばにヴィジュネル暗号がカシスキ分析に対して脆弱であることを示しましたが、フリードリッヒ・カシスキはXNUMX年後に彼の発見を発表しました。
周波数分析は多くの暗号に対して強力で幅広い技術であるという事実にもかかわらず、暗号解読者になる可能性のある人の多くはこの技術に気付いていないため、暗号化は実際には効果的です。 頻度分析を利用せずにメッセージを解読するには、使用する暗号と、場合によっては関連する鍵についての知識が必要であり、スパイ、賄賂、強盗、亡命、およびその他の暗号分析に基づいていない戦術をより魅力的にします。 暗号のアルゴリズムの秘密は、19世紀に、メッセージのセキュリティを合理的または実現可能に保証するものではないと最終的に認められました。 実際、対戦相手が暗号アルゴリズム自体を完全に理解している場合でも、適切な暗号化スキーム(暗号を含む)は安全なままである必要があります。 キーのセキュリティは、適切な暗号が攻撃に直面しても機密性を保持するのに十分でなければなりません。 アウグスト・ケルクホフスは、1883年にこの基本原則を最初に述べました。これは、ケルクホフスの原則として知られています。 あるいは、もっと率直に言って、情報理論の発明者であり理論暗号の基礎であるクロードシャノンは、それをシャノンのマキシムと言い換えました。「敵はシステムを知っています」。
暗号化を支援するために、多くの物理的なガジェットと支援が利用されてきました。 スパルタ人が転置式暗号ツールとして使用したとされる古代ギリシャのスキュタレーは、最初のものの1900つであった可能性があります。 ステガノグラフィにも使用されていた暗号グリルなど、他の補助装置が中世に考案されました。 多表式暗号の開発に伴い、アルベルティの暗号ディスク、ヨハンネストリテミウスのタブラレクタスキーム、トーマスジェファーソンのホイール暗号などのより洗練された支援が利用可能になりました(公には知られておらず、1920年頃にBazeriesによって独自に再発明されました)。 XNUMX年代後半から第二次世界大戦までドイツ政府と軍隊によって有名に採用されたローターマシンを含む多くの機械的暗号化/復号化システムがXNUMX世紀初頭に考案され特許を取得しました。 第一次世界大戦に続いて、これらのマシン設計の高品質のインスタンスによって実装された暗号は、暗号解読の難しさを大幅に高めました。
暗号化は、主にXNUMX世紀初頭以前の言語および辞書式パターンに関係していました。 それ以来、焦点は進化し、暗号化には、情報理論、計算の複雑さ、統計、組み合わせ論、抽象代数、数論、および一般的な有限数学の側面が含まれるようになりました。 暗号化はエンジニアリングの一種ですが、アクティブでインテリジェントな敵対的な抵抗を処理するという点で独特ですが、他のタイプのエンジニアリング(土木工学や化学工学など)は中立的な自然の力を処理するだけで済みます。 暗号化の難しさと量子物理学との関連も調査されています。
デジタルコンピュータと電子機器の開発は、かなり高度な暗号の作成を可能にすることにより、暗号解読を支援しました。 さらに、書かれた言語のテキストを排他的に暗号化する従来の暗号とは異なり、コンピューターは、任意のバイナリ形式で表すことができる任意のタイプのデータの暗号化を可能にしました。 これは斬新で重要でした。 暗号設計と暗号解読の両方で、コンピューターは言語暗号に取って代わっています。 主に繁体字(つまり、文字と数字)を直接操作する古典的および機械的な方法とは異なり、多くのコンピューター暗号はバイナリビットシーケンス(場合によってはグループまたはブロック)で動作します。 一方、コンピューターは暗号解読を支援しており、暗号解読の複雑さの増大を部分的に補っています。 それにもかかわらず、優れた最新の暗号は暗号解読に先んじています。 優れた暗号を使用することは非常に効率的である(つまり、メモリやCPU機能などのリソースをすばやく必要としない)のに対し、暗号を解読するには何桁も多くの労力が必要であり、古典的な暗号、事実上暗号解読を不可能にします。
現代の暗号がデビューします。
新しい機械装置の暗号解読は、困難で時間がかかることが証明されました。 第二次世界大戦中、英国のブレッチリーパークでの暗号解読活動は、反復的なタスクを実行するためのより効率的な方法の発明を促進しました。 世界初の完全に電子化されたデジタルのプログラム可能なコンピューターであるColossusは、ドイツ陸軍のLorenz SZ40/42マシンによって作成された暗号のデコードを支援するために開発されました。
暗号化は、オープンな学術研究の比較的新しい分野であり、1970年代半ばに始まったばかりです。 IBMの従業員は、連邦(つまり、米国)のデータ暗号化標準となるアルゴリズムを考案しました。 WhitfieldDiffieとMartinHellmanは、鍵共有アルゴリズムを公開しました。 MartinGardnerのScientificAmericanコラムは、RSAアルゴリズムを公開しました。 それ以来、暗号化は、通信、コンピュータネットワーク、およびコンピュータセキュリティ全般の手法として人気が高まっています。
いくつかの現代の暗号化アプローチは、整数因数分解や離散対数問題などの特定の数学の問題が手に負えない場合にのみキーを秘密に保つことができるため、抽象的な数学との深いつながりがあります。 100%安全であることが実証されている暗号システムはほんの一握りです。 クロードシャノンは、ワンタイムパッドがそのXNUMXつであることを証明しました。 特定の条件下で安全であることが示されているいくつかの重要なアルゴリズムがあります。 たとえば、非常に大きな整数を因数分解できないことは、RSAやその他のシステムが安全であると信じる根拠ですが、根本的な数学的問題が未解決のままであるため、解読不能性の証明は達成できません。 実際には、これらは広く利用されており、ほとんどの有能なオブザーバーは、実際には壊れないと信じています。 Michael O. Rabinによって開発されたものなど、RSAに類似したシステムが存在します。これらのシステムは、n = pqの因数分解が不可能な場合に安全であることが証明されています。 ただし、実際には役に立たない。 離散対数問題は、他のいくつかの暗号システムが安全であると信じるための基盤であり、離散対数問題の解決可能性または解決不可能性の観点から証明可能安全である同様の、あまり実用的でないシステムがあります。
暗号化アルゴリズムとシステム設計者は、暗号化の歴史を認識していることに加えて、アイデアに取り組む際に将来の進歩の可能性を考慮する必要があります。 たとえば、コンピュータの処理能力が向上するにつれて、ブルートフォース攻撃の幅が広がり、必要なキーの長さも伸びています。 ポスト量子暗号を探求している一部の暗号システム設計者は、量子コンピューティングの潜在的な結果をすでに検討しています。 これらのマシンの控えめな実装の発表された差し迫ったことは、単なる推測以上の先制的な注意の必要性を作るかもしれません。
現代の古典的な暗号
対称(または秘密鍵)暗号化は、送信者と受信者が同じ鍵を使用する暗号化の一種です(または、あまり一般的ではありませんが、鍵は異なりますが、簡単に計算できる方法で関連付けられ、秘密にされます。 )。 1976年XNUMX月まで、これは公に知られている唯一のタイプの暗号化でした。
ブロック暗号とストリーム暗号はどちらも、対称鍵暗号を実装するために使用されます。 ブロック暗号は、ストリーム暗号のように個々の文字ではなく、プレーンテキストのブロックで入力を暗号化します。
米国政府は、データ暗号化標準(DES)と高度暗号化標準(AES)を暗号化標準として指定しています(ただし、AESが確立されるとDESの認証は最終的に取り消されました)。 DES(特に、まだ承認されており、はるかに安全なトリプルDESバリエーション)は、公式標準としての非推奨にもかかわらず、引き続き人気があります。 ATM暗号化から電子メールのプライバシー、安全なリモートアクセスまで、幅広いアプリケーションで使用されます。 さまざまな程度の成功を収めて、数多くのさまざまなブロック暗号が発明され、リリースされてきました。 FEALなどの資格のある開業医によって設計されたものを含む多くは、広範囲に壊れています。
ストリーム暗号は、ブロック暗号とは異なり、ワンタイムパッドと同様に、平文のビットごとまたは文字ごとに結合された、無限に長いキーマテリアルのストリームを生成します。 ストリーム暗号の出力ストリームは、暗号が機能するにつれて変化する隠された内部状態から生成されます。 秘密鍵の材料は、最初にその内部状態を設定するために使用されます。 ストリーム暗号RC4が広く使用されています。 (疑似乱数ジェネレータの代わりに)キーストリームのブロックを作成し、キーストリームの各ビットで平文の各ビットに対してXOR演算を使用することにより、ブロック暗号をストリーム暗号として使用できます。
メッセージ認証コード(MAC)は、暗号化ハッシュ関数に似ていますが、受信時に秘密鍵を使用してハッシュ値を検証できる点が異なります。 この余分な複雑さは、裸のダイジェストアルゴリズムに対する攻撃を防ぐため、価値があると見なされます。 4番目の種類の暗号化手法は、暗号化ハッシュ関数です。 これらは、任意の長さのメッセージを入力として受け取り、たとえばデジタル署名で使用できる小さな固定長のハッシュを出力します。 攻撃者は、適切なハッシュアルゴリズムを使用して同じハッシュを生成する5つのメッセージを見つけることができません。 MD4は広く使用されていますが、現在はハッシュ関数に欠陥があります。 MD5の拡張形式であるMD1も同様に広く使用されていますが、実際には壊れています。 MD5のようなハッシュアルゴリズムのSecureHash Algorithmシリーズは、米国国立安全保障局によって開発されました。米国標準局は、セキュリティの観点から、「NISTの全体的なハッシュアルゴリズムの堅牢性を大幅に向上させる」新しい標準を開発することが「賢明」であると判断しました。ツールキット。」 SHA-2は広く使用されており、MD1よりも安全ですが、暗号解読者はそれに対する攻撃を特定しています。 SHA-2011ファミリーはSHA-2を改良していますが、1年の時点で衝突に対して脆弱です。 また、SHA-2012ファミリーはSHA-3を改良していますが、衝突に対して脆弱です。その結果、2年までに、SHA-2012として知られる新しい米国の国家標準を選択するためのハッシュ関数設計コンペティションが開催されました。 競争は、米国国立標準技術研究所(NIST)が新しいSHA-3ハッシュアルゴリズムとしてKeccakを発表したXNUMX年XNUMX月XNUMX日に終了しました。 暗号化ハッシュ関数は、反転可能なブロック暗号やストリーム暗号とは異なり、元の入力データを復元するために使用できないハッシュ出力を提供します。 暗号化ハッシュ関数は、信頼できないソースから取得したデータの信頼性を確認したり、保護を強化したりするために使用されます。
メッセージまたはメッセージのセットは他のメッセージとは異なるキーを持つことができますが、対称キー暗号システムは暗号化と復号化に同じキーを使用します。 対称暗号を安全に使用するために必要な鍵管理は、大きな欠点です。 通信するパーティの個々のペアは、理想的には、送信される暗号文ごとに異なるキーと、場合によっては異なる暗号文を共有する必要があります。 必要なキーの数は、ネットワーク参加者の数に正比例して増加するため、すべての一貫性と秘密を維持するために複雑なキー管理手法が必要になります。
WhitfieldDiffieとMartinHellmanは、1976年の独創的な研究で公開鍵(非対称鍵とも呼ばれます)暗号化の概念を発明しました。この暗号では、XNUMXつの異なるが数学的に関連する鍵(公開鍵と秘密鍵)が使用されています。 それらは密接に関連していますが、公開鍵システムは、一方の鍵(「秘密鍵」)をもう一方の鍵(「公開鍵」)から計算することが計算上実行不可能になるように構築されています。 むしろ、両方のキーは、リンクされたペアとして秘密裏に作成されます。 歴史家のデビッド・カーンによると、公開鍵暗号は「ルネサンスで多表式暗号が登場して以来、この分野で最も革新的な新しい概念」です。
公開鍵暗号システムの公開鍵は自由に送信できますが、結合された秘密鍵は非表示にしておく必要があります。 公開鍵は暗号化に使用されますが、秘密鍵または秘密鍵は公開鍵暗号化スキームの復号化に使用されます。 DiffieとHellmanはそのようなシステムを作成できませんでしたが、Diffie-Hellman鍵交換プロトコルを提供することにより、公開鍵暗号化が考えられることを実証しました。これは、509人が共有暗号化鍵について密かに合意できるソリューションです。 公開鍵証明書に最も広く使用されている形式は、X.XNUMX標準で定義されています。
DiffieとHellmanの出版により、実用的な公開鍵暗号化システムの開発に対する学術的な関心が広まりました。 Ronald Rivest、Adi Shamir、およびLen Adlemanは、最終的に1978年にコンテストで優勝し、その答えはRSAアルゴリズムとして知られるようになりました。
高品質の公開鍵アルゴリズムの最も初期の公に知られているインスタンスであることに加えて、Diffie-HellmanおよびRSAアルゴリズムが最も一般的に利用されています。 Cramer-Shoup暗号化システム、ElGamal暗号化、および多数の楕円曲線アプローチは、非対称鍵アルゴリズムの例です。
英国の諜報機関である政府通信本部(GCHQ)が1997年に発行した文書によると、GCHQ暗号学者はいくつかの学術的進歩を予見していました。 伝説によると、非対称鍵暗号は1970年頃にJames H. Ellisによって発明されました。CliffordCocksは、設計の点でRSAと非常によく似たソリューションを1973年に発明しました。 Malcolm J. Williamsonは、1974年にDiffie-Hellman鍵交換を発明したとされています。
デジタル署名システムも、公開鍵暗号を使用して実装されます。 デジタル署名は、ユーザーが作成するのは簡単ですが、他の人が偽造するのは難しいという点で、従来の署名に似ています。 デジタル署名は、署名されている通信のコンテンツに永続的にリンクすることもできます。 これは、検出されずにXNUMXつのドキュメントから別のドキュメントに「移動」できないことを意味します。 デジタル署名スキームにはXNUMXつのアルゴリズムがあります。XNUMXつはメッセージ(またはメッセージのハッシュ、あるいはその両方)を処理するために秘密鍵を使用する署名用、もうXNUMXつはメッセージと一致する公開鍵を使用して検証する検証用です。署名の信憑性。 最も使用されているデジタル署名方式のXNUMXつは、RSAとDSAです。 公開鍵インフラストラクチャと多くのネットワークセキュリティシステム(SSL/TLS、多くのVPNなど)は、機能するためにデジタル署名に依存しています。
数論から生じる問題などの「難しい」問題の計算の複雑さは、公開鍵方式を開発するために頻繁に使用されます。 素因数分解の問題はRSAの硬度に関連し、離散対数の問題はDiffie–HellmanとDSAに関連しています。 楕円曲線暗号のセキュリティは、楕円曲線数論の問題に基づいています。 ほとんどの公開鍵アルゴリズムには、モジュラー乗算やべき乗などの操作が含まれます。これらの操作は、根本的な問題が難しいため、特に通常の鍵サイズで、ほとんどのブロック暗号で使用される手法よりも計算コストが大幅に高くなります。 その結果、公開鍵暗号システムはハイブリッド暗号システムであることが多く、メッセージは高速で高品質の対称鍵アルゴリズムで暗号化され、関連する対称鍵はメッセージとともに送信されますが、公開鍵アルゴリズムで暗号化されます。 暗号化ハッシュ関数が計算され、結果のハッシュのみがデジタル署名されるハイブリッド署名スキームも一般的に使用されます。
暗号化におけるハッシュ関数
暗号化ハッシュ関数は、特定のキーを生成および使用して、対称または非対称暗号化のいずれかのデータを暗号化する暗号化アルゴリズムであり、キーと考えることができます。 これらは、任意の長さのメッセージを入力として受け取り、たとえばデジタル署名で使用できる小さな固定長のハッシュを出力します。 攻撃者は、適切なハッシュアルゴリズムを使用して同じハッシュを生成する4つのメッセージを見つけることができません。 MD5は広く使用されていますが、現在はハッシュ関数に欠陥があります。 MD4の拡張形式であるMD5も同様に広く使用されていますが、実際には壊れています。 MD1のようなハッシュアルゴリズムのSecureHash Algorithmシリーズは、米国国立安全保障局によって開発されました。米国標準局は、セキュリティの観点から、「NISTの全体的なハッシュアルゴリズムの堅牢性を大幅に向上させる」新しい標準を開発することが「賢明」であると判断しました。ツールキット。」 SHA-5は広く使用されており、MD2よりも安全ですが、暗号解読者はそれに対する攻撃を特定しています。 SHA-1ファミリーはSHA-2011を改良していますが、2年の時点で衝突に対して脆弱です。 また、SHA-1ファミリーはSHA-2012を改良していますが、衝突に対して脆弱です。その結果、3年までに、SHA-2として知られる新しい米国の国家標準を選択するためのハッシュ関数設計コンペティションが開催されました。 競争は、米国国立標準技術研究所(NIST)が新しいSHA-2012ハッシュアルゴリズムとしてKeccakを発表した3年XNUMX月XNUMX日に終了しました。 暗号化ハッシュ関数は、反転可能なブロック暗号やストリーム暗号とは異なり、元の入力データを復元するために使用できないハッシュ出力を提供します。 暗号化ハッシュ関数は、信頼できないソースから取得したデータの信頼性を確認したり、保護を強化したりするために使用されます。
暗号プリミティブと暗号システム
暗号化の理論的研究の多くは、暗号化プリミティブ(基本的な暗号化プロパティを持つアルゴリズム)と、それらが他の暗号化の課題とどのように関連しているかに焦点を当てています。 これらの基本的なプリミティブは、より複雑な暗号化ツールを作成するために使用されます。 これらのプリミティブは、XNUMXつ以上の高レベルのセキュリティプロパティを保証する暗号化システムまたは暗号化プロトコルと呼ばれるより複雑なツールを作成するために利用される基本的な品質を提供します。 一方、暗号プリミティブと暗号システムの境界は任意です。 たとえば、RSAアルゴリズムは、暗号システムと見なされることもあれば、プリミティブと見なされることもあります。 擬似ランダム関数、一方向性関数、およびその他の暗号プリミティブが一般的な例です。
暗号システム、または暗号システムは、XNUMXつ以上の暗号プリミティブを組み合わせて、より複雑なアルゴリズムを作成することによって作成されます。 暗号システム(例:El-Gamal暗号化)は、特定のセキュリティ品質(例:ランダムオラクルモデルの選択-平文攻撃CPAセキュリティ)を確保しながら、特定の機能(例:公開鍵暗号化)を提供することを目的としています。 システムのセキュリティ品質をサポートするために、暗号システムは基礎となる暗号プリミティブのプロパティを利用します。 プリミティブと暗号システムの区別はやや恣意的であるため、高度な暗号システムは、より多くの基本的な暗号システムの組み合わせから生成できます。 多くの場合、暗号システムの構造は、空間内のXNUMXつ以上の関係者間(たとえば、安全なメッセージの送信者と受信者の間)または時間全体(たとえば、安全なメッセージの送信者と受信者の間)のやり取りで構成されます。 (たとえば、暗号で保護されたバックアップデータ)。
認定カリキュラムについて詳しく知るために、以下の表を展開して分析することができます。
EITC/IS/CCF Classical Cryptography Fundamentals Certification Curriculum は、ビデオ形式でオープンアクセスの教材を参照しています。 学習プロセスは、関連するカリキュラム部分をカバーする段階的な構造 (プログラム -> レッスン -> トピック) に分かれています。 ドメインの専門家による無制限のコンサルティングも提供されます。
認定手続きの確認について詳しくは 仕組み.
主な講義ノート
ChristofPaarとJanPelzlによる暗号化の理解、PDFスライド形式のオンラインコース
https://www.crypto-textbook.com/slides.php
ChristofPaarとJanPelzlによる暗号化の理解、ビデオ形式のオンラインコース
https://www.crypto-textbook.com/movies.php
主な古典的な暗号の本のリファレンス
クリストフ・パールとジャン・ペルツルによる暗号を理解する
https://www.crypto-textbook.com/index.php
追加の応用古典暗号本リファレンス
A. Menezes、P。van Oorschot、S。Vanstoneによる応用暗号化ハンドブック:
https://cacr.uwaterloo.ca/hac/
https://www.amazon.com/exec/obidos/ISBN=0849385237/7181-7381933-595174
EITC/IS/CCF Classical Cryptography Fundamentals プログラムの完全なオフライン自己学習準備資料を PDF ファイルでダウンロードします