現在最も一般的に使用されている暗号化アルゴリズムは、一方向暗号化と双方向暗号化にまとめることができます。実際、これらは非常にシンプルで理解しやすいものです。しかし、Xiaoyu は、開発を効率的に進めるためには、その原則を明確に理解することが依然として必要であると感じています。結局のところ、データ セキュリティは当社の研究開発にとって最優先事項であり、暗号化アルゴリズムはソフトウェア データ セキュリティの維持に重要な役割を果たします。 Xiaoyu に従って、これらのアルゴリズムがどこで使用され、どのように使用され、コードがどのように実装されているかを見てみましょう。ゆっくり読んでいくと、これらの小さなコードに対する理解が深まります。 序文 本日は、暗号化アルゴリズムの過去と現在についてお話します。 実際、人類は古代ギリシャの時代に換字式暗号を発明しました。 1881 年までに、秘密の電話接続に関する世界初の特許が取得されました。第二次世界大戦中、ドイツ軍はエニグマ暗号機を使用しており、暗号技術は戦争において非常に重要な役割を果たしました。 1997年、米国国立標準局は「アメリカデータ暗号化規格(DES)」の導入を発表し、民間勢力が暗号の研究と応用に本格的に介入し始めました。使用される暗号化アルゴリズムには、DES、RSA、SHAなどがあります。暗号化の強度に対する需要が高まるにつれて、最近では AES や ECC などが登場しています。 さて、歴史はこれで終わりにして、本文に入りましょう。まずは暗号化アルゴリズムを使用する利点について見てみましょう。 暗号化は、次の目的を達成するために使用できます。 機密性:ユーザーの ID またはデータが読み取られないようにします。 データの整合性: データの変更を防止します。 認証: データが特定の当事者から発信されたものであることを確認します。
一方向暗号化 MD5 MD5 - メッセージ ダイジェスト アルゴリズム 5 (情報ダイジェスト アルゴリズム) の略語。暗号化および復号化技術で広く使用され、ファイルの検証によく使用されます。ファイルのサイズに関係なく、MD5 を実行すると一意の MD5 値を生成できます。たとえば、現在の ISO 検証はすべて MD5 検証であり、ISO が MD5 を通過した後、MD5 値が生成されます。 Linux-ISO をダウンロードした友人は、通常、ダウンロード リンクの横に MD5 文字列が表示されています。ファイルの整合性を確認するために使用されます。 暗号化ツールのクラスは次のとおりです。
シャ デジタル署名などの暗号化アプリケーションにおける重要なツールである SHA (Secure Hash Algorithm) は、電子商取引などの情報セキュリティ分野で広く使用されています。 SHA と MD5 は両方とも衝突法によって解読されていますが、SHA は依然として安全な暗号化アルゴリズムとして認識されており、MD5 よりも安全です。 暗号化ツールのクラスは次のとおりです。
HMAC HMAC(ハッシュメッセージ認証コード、ハッシュメッセージ認証コード、キーハッシュアルゴリズムに基づく認証プロトコル。メッセージ認証コードの原理は、公開関数とキーを使用して固定長の値を認証識別子として生成し、この識別子を使用してメッセージの整合性を識別することです。キーを使用して固定サイズの小さなデータブロック、つまりMACを生成し、それをメッセージに追加して送信します。受信者は、送信者と共有したキーを使用して認証などを行います。 暗号化ツールのクラスは次のとおりです。
対称暗号化アルゴリズム 対称暗号化アルゴリズムは、成熟した技術を備えた初期の暗号化アルゴリズムです。対称暗号化アルゴリズムでは、データ送信者は、特別な暗号化アルゴリズムを使用して平文(元のデータ)と暗号化キーを一緒に処理し、複雑に暗号化された暗号文に変換して送信します。対称暗号化アルゴリズムでは、使用されるキーは 1 つだけであり、送信者と受信者の両方がこのキーを使用してデータを暗号化および復号化するため、復号化側は事前に暗号化キーを知っている必要があります。対称暗号化アルゴリズムの特徴は、8 つのアルゴリズムの公開、計算量が少ない、暗号化速度が速い、暗号化効率が高いなどです。欠点は、取引の両当事者が同じキーを使用するため、セキュリティが保証されないことです*。対称暗号化アルゴリズムは、主にキー管理が難しく、使用コストが高いため、分散ネットワーク システムで使用するのは困難です。 データ暗号化プロセス: 対称暗号化アルゴリズムでは、データ送信者はプレーンテキスト (元のデータ) と暗号化キーに対して特別な暗号化処理を実行し、送信用の複雑な暗号化された暗号文を生成します。 データ復号化プロセス: データ受信者が暗号文を受け取った後、元のデータを読みたい場合は、暗号化キーと同じアルゴリズムの逆アルゴリズムを使用して暗号化された暗号文を復号化し、読み取り可能な平文に戻す必要があります。 一般的なアルゴリズム: DES、3DES、AES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、Skipjack など。以下では、主に一般的に使用される DES、3DES、AES 暗号化アルゴリズムについて説明します。 DES暗号化アルゴリズム DES 暗号化アルゴリズムは、64 ビットのブロックでデータを暗号化するブロック暗号です。キーの長さは 56 ビットで、暗号化と復号化に同じアルゴリズムが使用されます。 DES 暗号化アルゴリズムは、暗号化アルゴリズムと復号化アルゴリズムを含むアルゴリズムを公開しながら、キーを秘密に保ちます。この方法では、送信者と同じキーを持つ人だけが、DES 暗号化アルゴリズムによって暗号化された暗号文データを復号化できます。したがって、DES 暗号化アルゴリズムを解読することは、実際にはキーのエンコードを検索することです。 56 ビットのキーの場合、網羅的な検索を使用すると、操作回数は 256 回になります。 コンピュータ システムの機能が進歩するにつれて、DES のセキュリティは最初に登場したときよりも大幅に弱くなりましたが、実用的かつ非クリティカルな観点からは、依然として十分であると考えられます。ただし、DES は現在、古いシステムの認証にのみ使用されており、暗号化標準として選択されることが多くなってきています。 暗号化ツールのクラスは次のとおりです。
3DES暗号化アルゴリズム DES は、3 重データ暗号化アルゴリズム ブロック暗号の総称です。これは、各データ ブロックに DES 暗号化アルゴリズムを 3 回適用するのと同じです。コンピュータの計算能力の向上により、元の DES 暗号のキーの長さはブルートフォース攻撃によって簡単に解読できるようになりました。3DES は、まったく新しいブロック暗号アルゴリズムを設計するのではなく、DES のキーの長さを増やすことで同様の攻撃を回避する比較的簡単な方法を提供するように設計されています。 3DES は、DES から AES に移行する暗号化アルゴリズムです。暗号化アルゴリズムの具体的な実装は次のとおりです。Ek() と Dk() は DES アルゴリズムの暗号化プロセスと復号化プロセスを表し、K は DES アルゴリズムで使用されるキーを表し、M は平文を表し、C は暗号文を表します。暗号化プロセスは次の通り: C=Ek3(Dk2(Ek1(M))) 暗号化ツールのクラスは次のとおりです。
AES暗号化アルゴリズム AES 暗号化アルゴリズムは、暗号学における高度な暗号化標準です。暗号化アルゴリズムは対称ブロック暗号システムを使用します。サポートされる最小キー長は 128、192、256 で、ブロック長は 128 ビットです。このアルゴリズムは、さまざまなハードウェアおよびソフトウェアに簡単に実装できます。この暗号化アルゴリズムは、米国連邦政府が採用したブロック暗号化標準です。この標準は、元の DES に代わるものです。多くの関係者によって分析されており、世界中で広く使用されています。 AES 暗号化アルゴリズムは、128/192/256 ビット (/32=nb) のデータ ブロック サイズ (つまり、パケット長) と、128/192/256 ビット (/32=nk) のパスワード長をサポートするように設計されています。これは、10 進数で 34×1038、62×1057、および 1.1×1077 のキーに相当します。 暗号化ツールのクラスは次のとおりです。
対称暗号化アルゴリズムの比較 非対称暗号化アルゴリズム ワークフロー: 1. 当事者 B は鍵のペア(公開鍵と秘密鍵)を生成し、公開鍵を他の当事者に公開します。 2. 公開鍵を取得した当事者Aは、その鍵を使用して機密情報を暗号化し、当事者Bに送信します。 3. 次に、当事者 B は、自身が保持する別の専用キー (秘密鍵) を使用して、暗号化された情報を復号化します。当事者 B は、対応する公開鍵によって暗号化された情報を復号化するために、専用の鍵 (秘密鍵) のみを使用できます。 送信プロセス中に、攻撃者が送信された暗号文を傍受して B の公開鍵を入手したとしても、暗号文を解読できるのは B の秘密鍵だけなので、暗号文を解読することはできません。 同様に、B が A に暗号化されたメッセージを返信する場合、A はまず暗号化のために A の公開鍵を B に公開し、復号化のために A の秘密鍵を保持する必要があります。 RSA暗号化アルゴリズム RSA 暗号化アルゴリズムは現在最も影響力のある公開鍵暗号化アルゴリズムであり、最も優れた公開鍵方式の 1 つとして広く認められています。 RSA は、暗号化とデジタル署名の両方に使用できる最初のアルゴリズムです。これまでに知られているすべての暗号化攻撃に抵抗することができ、公開鍵データ暗号化標準として ISO によって推奨されています。 RSA 暗号化アルゴリズムは、数論の非常に単純な事実に基づいています。つまり、2 つの大きな素数を掛け合わせるのは非常に簡単ですが、その積を因数分解するのは非常に難しいため、その積を暗号化キーとして公開することができます。 暗号化ツールのクラスは次のとおりです。
DSA暗号化アルゴリズム DSA は整数の有限体上の離散対数問題に基づいており、そのセキュリティは RSA に匹敵します。 DSA の重要な特徴は、2 つの素数が公開されているため、他人の p と q を使用する場合、秘密鍵を知らなくても、それらがランダムに生成されたものか、改ざんされたものかを確認できることです。 RSA アルゴリズムではこれができません。 DSA は単なるアルゴリズムです。RSA との違いは、暗号化と復号化には使用できず、キー交換も実行できないことです。署名にのみ使用されます。RSA よりもはるかに高速です。 暗号化プロセスは次のとおりです。 ECC暗号化アルゴリズム 楕円暗号 (ECC) は、1985 年に Koblitz と Miller によって初めて提案された公開鍵暗号化システムです。その数学的基礎は、楕円曲線上の有理点を使用したアーベル加法群上の楕円離散対数の計算の難しさにあります。公開鍵暗号システムは、一般に、基盤となる問題に応じて、大きな整数の因数分解問題、離散対数問題、楕円曲線問題の 3 つのカテゴリに分類されます。楕円曲線は離散対数とグループ化されることがあります。楕円曲線暗号システムは、現在知られている公開鍵システムの中で、ビットあたりの暗号化強度が最も高いシステムです。楕円曲線上の離散対数問題を解くための最良のアルゴリズムは、時間の計算量が で、完全に指数関数的なポラード ロー法です。 暗号化ツールのクラスは次のとおりです。
非対称暗号化アルゴリズムの比較 要約する 対称暗号化と非対称暗号化の比較 実用例: 非対称暗号化アルゴリズムを使用して対称アルゴリズムのキーを管理し、対称暗号化アルゴリズムでデータを暗号化すると、暗号化速度が向上し、復号化のセキュリティが実現します。 RSAでは1024ビット、ECCでは160ビット、AESでは128ビットの使用が推奨されています。 その他の比較: 管理の観点では、公開鍵暗号化アルゴリズムは目標を達成するために必要なリソースが少なく、鍵配布の観点では、両者の違いは指数レベルです (一方が n で、もう一方が n2)。したがって、公開鍵暗号化アルゴリズムは広域ネットワークでの使用には適しておらず、さらに重要なことに、デジタル署名をサポートしていません。 セキュリティの観点では、公開鍵暗号化アルゴリズムは未解決の数学的な問題に基づいているため、解読することはほぼ不可能です。秘密鍵暗号化アルゴリズムの場合、AES は理論的には解読不可能ですが、コンピュータ開発の観点からは解読可能です。公開鍵の方が有利です。 |
<<: フロントエンドアルゴリズムシステム演習:リンクリストの章が完了
>>: 自動運転は自動車産業の未来だが、これはドライバーが手を完全に自由にできることを意味するものではない。
最近、OpenAI は ChatGPT の新バージョンのリリースを発表し、音声入力と画像入力という ...
論文: ディープラーニングの最近の進歩: 概要論文アドレス: https://arxiv.org/p...
2020年の世界産業用ロボット産業の現状と競争環境の分析:アジア太平洋地域が世界最大の市場に1. 世...
人々の印象では、AIは「多数派」に属する技術カテゴリーであると私は信じています。いわゆる多数とは、第...
著者: Sun Yue、所属部署: 中国移動 (杭州) 情報技術有限公司 | 中国移動杭州 R&am...
近年、私たちの生活におけるドローンの応用はますます一般的になっています。当初は軍事分野でしたが、その...
スターアルゴリズムの手順: 1. 最初に、オープン リストに開始点を追加します。 2. オープンリス...
[51CTO.com クイック翻訳] 今日、人工知能はもはやSFの中の漠然とした概念ではなく、私たち...
現実の世界には、本質的に統計的であると考えられる現象がいくつかあります (気象データ、売上データ、財...
論文アドレス: https://arxiv.org/pdf/2310.08579.pdf Githu...
人工知能 (AI) はまだ初期段階ですが、AI は急速に企業が自らを守るための重要な手段になりつつあ...