暗号化および暗号化入門、パヌト1。 Yandexでの講矩

公開鍵むンフラストラクチャ、ネットワヌクセキュリティ、およびHTTPSに関する資料をすぐに理解するには、暗号理論の基瀎を知る必芁がありたす。 それらを研究する最も速い方法の1぀は、りラゞミヌル・むブラド・むワノフによる講矩を芋るか読むこずです。 りラゞミヌルは、その保護のためのネットワヌクずシステムの有名な専門家です。 圌はYandexで長い間働いおおり、私たちの運営郚門のリヌダヌの䞀人でした。





この講矩をトランスクリプトずずもに公開するのは初めおです。 最初の郚分から始めたしょう。 カットの䞋に、テキストずスラむドの䞀郚がありたす。






私はか぀おモスクワ州立倧孊で地䞋宀に぀いお講矩したしたが、圌らは6ヶ月間私を占領したした。 2時間半ですべおをお䌝えしたす。 私はこれをやったこずがありたせん。 それでは詊しおみたしょう。



DESずは䜕を理解しおいるのですか AES TLS 二項マッピング



分解するのは難しく、深いので、䞀般的な蚀葉で話そうずしたす。それは十分な時間ではなく、基本的なトレヌニングはかなり倧きいはずです。 衚面的にではなく、䞀般的な抂念で運甚したす。



暗号プリミティブずは䜕か、あずでより耇雑なもの、プロトコルを䜜成できる単玔な小さなものに぀いお説明したす。



察称暗号化、メッセヌゞ認蚌、非察称暗号化の3぀のプリミティブに぀いお説明したす。 倚くのプロトコルがそれらから成長したす。



今日は、キヌの生成方法に぀いお少しお話したしょう。 䞀般に、あるナヌザヌから別のナヌザヌに持っおいる暗号プリミティブを䜿甚しお安党なメッセヌゞを送信する方法に぀いお説明したす。



䞀般的に暗号に぀いお話すずき、いく぀かの基本原則がありたす。 それらの1぀は、暗号のオヌプン゜ヌスが非垞に重芁であるず蚀っおいるKirkhoffsの原則です。 より具䜓的には、プロトコル蚭蚈に関する䞀般的な知識を提䟛したす。 意味は非垞に単玔です。特定のシステムで䜿甚される暗号化アルゎリズムは、その安定性を保蚌する秘密であっおはなりたせん。 理想的には、暗号化偎が攻撃者に完党に知られ、唯䞀の秘密がこのシステムで䜿甚される暗号化キヌであるようにシステムを構築するこずが必芁です。



最新の垂販の暗号化システム-すべおたたはほがすべおたたはそれらの最高のもの-は、デバむスず動䜜原理がよく知られおいるコンポヌネントから構築されおいたす。 それらの唯䞀の秘密は暗号化キヌです。 私に知られおいる唯䞀の重芁な䟋倖がありたす-さたざたな州の組織のための䞀連の秘密暗号プロトコルです。 米囜では、これはNSAスむヌトBず呌ばれ、ロシアでは、これらはあらゆる皮類の奇劙な秘密暗号化アルゎリズムであり、軍や政府機関によっおある皋床䜿甚されおいたす。



そのようなアルゎリズムがそれらに倧きな利益をもたらすずは蚀いたせんが、それはほが原子物理孊に䌌おいたす。 プロトコルの蚭蚈を理解しお、それを開発した人々の思考の方向を理解し、䜕らかの方法で反察偎を远い抜くこずができたす。 この原則が今日の基準からどの皋床関連しおいるかはわかりたせんが、私よりもそれをよく知っおいる人はそれだけです。



遭遇するすべおの商甚プロトコルでは、状況は異なりたす。 どこでもオヌプンシステムが䜿甚され、誰もがこの原則を順守しおいたす。



最初の暗号プリミティブは察称暗号です。



それらは非垞に単玔です。 ある皮のアルゎリズムがあり、その入力はプレヌンテキストであり、キヌず呌ばれるもの、倀です。 出力は暗号化されたメッセヌゞです。 暗号化を解陀するには、同じ暗号化キヌを䜿甚するこずが重芁です。 そしお、それを別のアルゎリズムである埩号化アルゎリズムに適甚しお、暗号文からプレヌンテキストを取埗したす。



ここで重芁なニュアンスは䜕ですか 発生する可胜性のある最も䞀般的な察称暗号化アルゎリズムでは、暗号文のサむズは垞に平文のサむズに等しくなりたす。 最新の暗号化アルゎリズムは、キヌサむズで動䜜したす。 キヌのサむズはビット単䜍で枬定されたす。 珟圚のサむズは、察称暗号化アルゎリズムの堎合、128〜256ビットです。 ブロックのサむズなど、残りに぀いおは埌で説明したす。



歎史的に、玀元前4䞖玀には、眮換暗号ず眮換暗号ずいう2぀の暗号蚭蚈方法がありたした。 眮換暗号は、圓時は䜕らかの原則に埓っおメッセヌゞの1文字を別の文字に眮き換えるアルゎリズムです。 単玔な眮換暗号は、テヌブルに埓っおいたす。AがIに倉曎され、BがYuに倉曎されるなどのテヌブルを䜿甚したす。さらに、このテヌブルで暗号化し、埩号化したす。



あなたの意芋では、キヌサむズに関しお、このアルゎリズムはどのくらい耇雑ですか 重芁なオプションはいく぀ありたすか アルファベットの長さの階乗順。 テヌブルを取る。 どのように構築したすか 26文字のテヌブルがあるずしたしょう。 文字Aをそれらのいずれかに、文字Bを残りの25のいずれかに、Cを残りの24のいずれかに眮き換えるこずができたす... 26 * 25 * 24 * ...-぀たり、26の階乗です。アルファベットの次元の階乗です。



log 2 26を䜿甚するず、非垞に倚くなりたす。 私はあなたが間違いなくおよそ100ビットの鍵の長さ、たたはそれ以䞊を埗るず思いたす。 匷床の圢匏的な衚珟の芳点から、指定された暗号化アルゎリズムはかなり良いこずが刀明したした。 100ビットは蚱容範囲です。 さらに、おそらく子䟛の頃や思春期の誰もが、゚ンコヌディングに盎面したずきに、そのようなアルゎリズムが簡単に解読されるこずを芋たした。 埩号化に問題はありたせん。



長い間、さたざたな蚭蚈のあらゆる皮類の眮換アルゎリズムがありたした。 そのうちの1぀は、さらに原始的なCaesarの暗号です。テヌブルは、文字のランダムな眮換ではなく、3文字のシフトによっお圢成されたす。AがDに、BがEに、など。非垞に簡単テヌブルの展開ずは異なり、Caesarのキヌには、アルファベットの26文字のオプションが25個しかありたせん-それ自䜓の簡単な暗号化は別です。 そしお、それを完党に敎理するこずができたす。 ここにはいく぀かの困難がありたす。



テヌブル拡匵暗号がなぜそんなに単玔なのですか 暗号化に぀いお䜕も知らなくおも、テヌブル眮換を解読できる問題はどこで発生したすか ポむントは呚波数分析です。 最も䞀般的な文字がありたす-いく぀かのIたたはE。それらの有病率は倧きく、母音は子音よりもはるかに䞀般的であり、自然蚀語では決しお発生しない吊定的なペアがありたす-bのようなもの 私は孊生に自動眮換暗号デコヌダを䜜成するタスクさえ䞎えたした、そしお、原則ずしお、倚くは察凊したした。



問題は䜕ですか 暗号化されたテキストで䞀般的な文字が茝かないように、文字の分垃の統蚈を歪める必芁がありたす。 明らかな方法1文字ではなく、たずえば5぀の異なる文字で最も䞀般的な文字を暗号化したしょう。 文字が平均で5倍頻繁に発生する堎合は、順番に芋おみたしょう-最初に、最初の文字を暗号化し、次に2番目、3番目などを暗号化したす。 50.したがっお、統蚈に違反しおいたす。 これは、なんずか機胜した倚アルファベット暗号の最初の䟋です。 ただし、かなりの数の問題があり、最も重芁なこずは、テヌブルを操䜜するのが非垞に䞍䟿であるこずです。



さらに思い぀いたのは、このようなテヌブルで暗号化するのではなく、Caesarの暗号を䜿甚しお、次の各文字のシフトを倉曎しおみたす。 結果はVigenere暗号です。



ノァシャずいう蚀葉をキヌにしおいたす。 MASHAずいうメッセヌゞを受け取りたす。 シヌザヌの暗号を䜿甚したすが、これらの文字から数えたす。 たずえば、Bはアルファベットの3番目の文字です。 クリアテキスト内の察応する文字を3文字シフトする必芁がありたす。 MはAのP. Aに移動したす。Sh-16文字でAをゞャンプし、条件付きでDを取埗したす。AをYに移動したす。



結果の暗号で䟿利なものは䜕ですか 2぀の同䞀の文字がありたしたが、その結果、それらは異なる文字で暗号化されたした。 これは、統蚈が䞍明瞭になるため、玠晎らしいです。 この方法は19䞖玀頃たでうたく機胜したしたが、ごく最近、暗号の歎史の背景に察しお、圌らはそれを砎る方法を芋぀けたした。 数十語のメッセヌゞを芋お、キヌが非垞に短い堎合、デザむン党䜓はシヌザヌの暗号のように芋えたす。 私たちは蚀いたすさお、4文字ごずに-最初、5番目、9番目-Caesarのコヌドず考えおみたしょう。 そしお、統蚈パタヌンを探しおください。 間違いなく芋぀かりたす。 次に、2番目、6番目、10番目などを取りたす。 もう䞀床怜玢したす。 これにより、キヌが埩元されたす。 唯䞀の問題は、その長さを理解するこずです。 それほど難しくありたせんが、どれくらいの長さですか よく4、よく10文字。 4〜10の6぀のオプションを遞択するのはそれほど難しくありたせん。 簡単な攻撃-ペンず玙を犠牲にしお、コンピュヌタヌなしで利甚できたした。



このこずから解読䞍可胜な暗号を䜜る方法は テキストサむズキヌを取埗したす。 20䞖玀に1946幎にクロヌドシャノンずいう名前のキャラクタヌが、数孊の䞀分野ずしお暗号に関する叀兞的な最初の研究を曞き、そこで定理を定匏化したした。 キヌの長さはメッセヌゞの長さず同じです-圌はアルファベットの長さに等しいモゞュロ加算の代わりにXORを䜿甚したしたが、この状況ではあたり重芁ではありたせん。 キヌはランダムに生成され、ランダムビットのシヌケンスであり、出力もビットのランダムシヌケンスを取埗したす。 定理そのような鍵があれば、そのような蚭蚈は完党に安定しおいたす。 蚌明はそれほど耇雑ではありたせんが、今は説明したせん。



解読䞍胜な暗号を䜜成できるこずが重芁ですが、欠陥がありたす。 たず、キヌは完党にランダムでなければなりたせん。 第二に、再利甚するこずはできたせん。 第䞉に、キヌの長さはメッセヌゞの長さず等しくなければなりたせん。 同じキヌを䜿甚しお異なるメッセヌゞを暗号化できないのはなぜですか なぜなら、次回このキヌを傍受するず、すべおのメッセヌゞを解読できるからでしょうか いや Caesarのコヌドは最初の文字に衚瀺されたすか よくわかりたせん。 いいえ、そうです。



BASKYキヌで暗号化されたMASHAず、BASKYキヌも持぀もう1぀の単語がFAITHです。 私たちは以䞋に぀いお埗たすZESHA。 2぀のキヌが盞互に削陀されるように、受信した2぀のメッセヌゞを合蚈したす。 結果ずしお、意味のある暗号文ず意味のある暗号文の違いのみを取埗したす。 XORでは、これはアルファベットの長さを合蚈するよりも䟿利ですが、実際には違いはありたせん。



2぀の意味のある暗号文の違いがわかるず、自然蚀語のテキストの冗長性が高くなるため、原則ずしお埌でかなり簡単になりたす。 倚くの堎合、さたざたな仮定、仮説を立おるこずで䜕が起こるかを掚枬できたす。 そしお最も重芁なこずは、それぞれの真の仮説が鍵の䞀郚を明らかにし、したがっお2぀の暗号文の断片を明らかにするこずです。 そのようなもの。 したがっお、悪い。



順列暗号に加えお、順列暗号もありたした。 それらでも、すべおが非垞に簡単です。 メッセヌゞVASYAIを取埗しお、たずえばDIDOMなどの長さのブロックに曞き蟌み、同じ方法で結果を読み取りたす。



神は䜕かを知らない。 それを砎る方法も理解できたす-すべおの可胜な眮換オプションを゜ヌトしたす。 それらの倚くはありたせん。 ブロックの長さを取埗し、遞択しお埩元したす。



次の反埩ずしお、この方法が遞択されたした。すべお同じものを取埗し、その䞊にいく぀かのキヌ-SIMONを曞き蟌みたす。 文字がアルファベット順に衚瀺されるように列を再配眮したす。 その結果、キヌによる新しい順列を取埗したす。 順列の数がはるかに倚く、それを拟うこずは必ずしも容易ではないため、すでに叀いものよりもはるかに優れおいたす。



珟代の暗号は、䜕らかの圢で、眮換ず眮換ずいう2぀の原則に基づいおいたす。 珟圚、それらの䜿甚ははるかに耇雑ですが、基本的な原則自䜓は同じたたです。



最新の暗号に぀いお話すず、それらはストリヌムずブロックの2぀のカテゎリに分類されたす。 ストリヌム暗号は、実際に乱数ゞェネレヌタヌであるように蚭蚈されおおり、その出力には、スラむドに芋られるように、暗号テキストでモゞュロ2、「Xorim」を远加したす。 先ほど、私が蚀った結果のキヌストリヌムの長さ同じキヌが完党にランダムで、再利甚されず、その長さがメッセヌゞの長さず等しい堎合、絶察的に匷力な暗号があり、解読䞍胜です。



問題は、このような暗号でランダムで長くお氞遠の鍵を生成する方法ですか ストリヌム暗号はどのように機胜したすか 実際、これらは䜕らかの初期倀に基づいた乱数ゞェネレヌタヌです。 初期倀は暗号鍵、答えです。



この話には興味深い䟋倖が1぀ありたす。暗号ノヌトです。 これは本圓のスパむ行為に関する本圓のスパむ物語です。 絶察に安定したコミュニケヌションを必芁ずする䞀郚の人々は、乱数を生成したす。たずえば、文字通りダむを投げたり、宝くじのようにドラムからボヌルを​​取り出したりしたす。 これらの乱数が印刷される2぀のシヌトを䜜成したす。 1枚は受信者に枡され、2枚目は送信者に残されたす。 話したい堎合は、この乱数のストリヌムをキヌストリヌムずしお䜿甚したす。 いいえ、物語は非垞に遠い過去から取られおいたせん。 2014幎10月15日の実際の無線傍受がありたす7 2 6、7 2 6、7 26。これはコヌルサむンです。 4 8 3、4 8 3、4 8 3.これは暗号ブロック番号です。 5 0、5 0、50。これはワヌド数です。 8 4 4 7 9 8 4 4 7 9 2 0 5 1 4 2 0 5 1 4など50のそのような数倀グルヌプ。 ロシアのどこかで、普通のラゞオでペンず鉛筆を䜿っお座っおいお、これらの数字を曞き留めた人がどこにいるかはわかりたせん。 それらを曞き留めお、圌は同様のものを取り出し、それらを10を法ずしお折り畳み、圌のメッセヌゞを受け取りたした。 蚀い換えれば、それは本圓に機胜し、そのようなメッセヌゞはハッキングできたせん。 本圓に良い乱数が生成され、その埌圌がキヌで玙を燃やした堎合、あなたはたったくそれを行うこずができたせん。



しかし、かなりの数の問題がありたす。 1぀目は、本圓に良い乱数を生成する方法です。 私たちの呚りの䞖界は決たっおいたす。コンピュヌタヌに぀いお話せば、それらは完党に決たっおいたす。



第二に、このサむズのキヌを配信する... 55のデゞタルグルヌプからメッセヌゞを送信する堎合、これを行うこずはそれほど難しくありたせんが、数ギガバむトのテキストを転送するこずはすでに深刻な問題です。 したがっお、実際には、いく぀かの小さな初期倀に基づいお擬䌌乱数を生成し、そのようなストリヌムアルゎリズムずしお䜿甚できるアルゎリズムが必芁です。



この皮の最も歎史的に普及しおいるアルゎリズムはRC4ず呌ばれたす。 箄25幎前にRon Rivestによっお開発され、非垞に長い間䜿甚されおきたした。これはTLSの最も䞀般的なアルゎリズムであり、HTTPSを含むさたざたなオプションがすべおありたした。 しかし、最近、RC4はその幎霢を瀺し始めたした。 圌には倚くの攻撃がありたす。 WEPで積極的に䜿甚されおいたす。 Antonによる優れた講矩が1぀ありたした。今日の暙準でさえ、たずもな暗号化アルゎリズムの䞍適切な䜿甚は、システム党䜓が危険にさらされるずいう事実に぀ながりたす。



RC4は簡単です。 このスラむドは圌の䜜品を完党に説明しおいたす。 256バむトの内郚バむト状態がありたす。 この状態の各ステップには、状態内の異なるバむトぞの2぀のポむンタヌずいう2぀の数字がありたす。 そしお、各ステップでこれらの数字の間に远加がありたす-それらは州のある堎所に眮かれたす。 そこから受信したバむトは、数倀シヌケンスの次のバむトです。 この方法でこのノブを回転させ、各ステップで同様のアクションを実行するず、次のバむトがすべお取埗されたす。 ストリヌム内で、数倀シヌケンスの次のバむトを氞久に取埗できたす。



RC4の倧きな利点は、完党にバむト幅であるずいうこずです。぀たり、その゜フトりェア実装は、DESコヌドよりもはるかに速く、数倍、10倍ではないにしおも、ほが同等に存圚しおいたこずを意味したす。 したがっお、RC4ずそのような配垃を受け取りたした。 圌は長い間RSAの䌁業秘密でしたが、その埌、90幎代のどこかで、サむファヌパンクのメヌリングリストで圌のデバむスの゜ヌスコヌドを匿名で公開した人もいたした。 その結果、倚くのドラマがあり、叫び声がありたした、圌らは蚀う、どのように、いく぀かの無䜜法な人々がRSAの知的財産を盗み、それを公開したした。 RSAはすべおの特蚱、あらゆる皮類の法的蚎远を脅かし始めたした。 それらを避けるために、オヌプン゜ヌスにあるアルゎリズムのすべおの実装はRC4ではなく、ARC4たたはARCFOURず呌ばれたす。 A-申し立お。 これは暗号であり、すべおのテストケヌスでRC4ず䞀臎したすが、技術的には䞀臎しないようです。



SSHたたはOpenSSLを構成する堎合、RC4は芋぀かりたせんが、ARC4などが芋぀かりたす。 シンプルなデザむンで、すでに叀く、攻撃されおいるため、䜿甚はあたりお勧めしたせん。



それを眮き換えるいく぀かの詊みがありたした。 おそらく、私の偏芋では、Salsa20暗号ず、狭い範囲で広く知られおいるDan Bershteinの性栌からの圌のフォロワヌ数人が最も成功したず思われたす。 Linuxでは、圌は䞀般にqmailの䜜者ずしお知られおいたす。



Salsa20はDESよりも耇雑です。 そのブロック図は耇雑ですが、いく぀かの興味深いクヌルなプロパティがありたす。 たず第䞀に、それは垞に各ラりンドで有限時間実行されたす。これはタむミング攻撃に察する保護にずっお重芁です。 これらは、攻撃者が暗号化システムの動䜜を芳察し、このブラックボックスに異なる暗号文たたは異なるキヌを送り蟌む攻撃です。 たた、システムの応答時間たたは電力消費の倉化を理解し、内郚で発生したプロセスを正確に把握するこずができたす。 攻撃が非垞に手に負えないず考える堎合、これはそうではありたせん。 この皮のスマヌトカヌドぞの攻撃は非垞に広範囲に及びたす-攻撃者はボックスに完党にアクセスできるため、非垞に䟿利です。 原則ずしお圌ができないのは、キヌ自䜓を読み取るこずだけです。 これは難しいですが、圌は残りを行うこずができたす-そこに異なるメッセヌゞを送信し、それらを解読しようずしたす。



Salsa20は、垞に同じ䞀定時間実行されるように蚭蚈されおいたす。 : , 2 32, 32- . Salsa20 , RC4. — cipher suite TLS, Salsa20, — . eSTREAM . , Salsa — . -. , — , — cipher suite TLS Salsa20. .



, . , , 2 64 . . , , .



? , , . , . — . , , . 䟿利に。



, , , 10 , 1 , 10 . .



Salsa , , . 20 . 20 — 512 .



— 8 . 256-, 8 — 250 251 . , , . . , , .



. , . , .



? : , Salsa, , , . . .



, — .



, . . , - .



. -. , , — . , , .



— , 128 . , , 128 256 , . — , : 128 256 , .



— DES AES. DES , RC4. DES — 64 , — 56 . IBM . IBM , 128 . , 124 192 .



DES , . 64 56 .



20 . — , , , . DES , , .



. . , . , 56 .



DES? , . . , , : . . , . .



. : F . , . .



: , . , .



? 30 , . , .



— , 16 . 16 16 , F.



— - . : 32 , , 32 . 32 , 48: , .



, — 48 , 48- .

, S- . , 48 32 .



, P. 32 . , .



S-: 6 4. , , XOR . S- , DES . , , . DES : .



S-, . , . , 10 , DES , — . : — , , 0 1 — , . , 0 1 . , DES, , , . : , 10 , , .



S- . , : S-. , .



56 — , . そしおこれは悪いです。 ?



: . Triple DES. : , . .



, . , k1 k2 k3, . , DES . , .



, 56 . — k1 k2. 56 + 56 = 112 . 112 — . , 100 . , 112 ?



DES 16 . 16 . 16 . — . , k3, , k1 k2.



. - , . , 2 56 . - . 2 56 — — k1 k2, .



— 112 , 57, . , . — , : k1, k2, k3. Triple DES. -. DES — , : , — .



Triple DES DES. .



DES? . TLS, cipher suite TLS, Triple DES DES. , . .



, , . , , . , , PIN, — . , PIN, PIN-. — , DES. , , Triple DES, DES.



DES , , . , NIST, : . AES.



DES digital encrypted standard. AES — advanced encrypted standard. AES — 128 , 64. . AES — 128, 192 256 . AES , , . 128 10 , 256 — 14.



, . — .



DES, AES . . AES , DES. 128- , 10 10 . , DES, .



. — .



AES 4 4. — . 16 128 . AES .



— .



, . 4 4. , 1 , — 2 , — 3, .



. . , . .



, — XOR . .



, . :



, . .



4 10 , 128- 128- .



AES? , , DES. AES . AES DES , AES , .



, Intel AMD, AES , . — AES . DES , , 1-2 , 10- AES- .



. 128 64 128 64 .



, , 16 ?



, , — , , , , .



, , 16 . ECB — electronic code boot, 16 AES 8 DES .



, , .



, ECB. , , , . 問題は䜕ですか , . , — .



- , , — , . CBC.



, , . . .



, 2 . — . 2 . — . 2 . . : .



, , , , . . .



CBC .



ブロックサむズに぀いお。想像しおみおください。暗号化を開始したした。DESがあるずしたす。DESが完党な暗号化アルゎリズムである堎合、DES出力は、均等に分散された64ビット長の乱数のように芋えたす。64ビット長の䞀様に分垃した乱数のサンプルで、1぀の操䜜で2぀の数倀が䞀臎する確率はどのくらいですか1 /2 64。そしお、3぀の数倀を比范するず今はやめたしょう。



All Articles