ホームページ システムチュートリアル Linux 過去の暗号化アルゴリズム

過去の暗号化アルゴリズム

Dec 31, 2023 pm 07:23 PM
linux Linuxチュートリアル レッドハット Linuxシステム Linuxコマンド Linux 認定 レッドハットリナックス Linuxビデオ

###導入### 暗号化アルゴリズムは、セキュリティの手段として、私たちのほとんどの生活に密接に関係しています。 https を使用するすべての Web サイトはすでに暗号化プロトコル TLS/SSL を使用しているため、オンラインに接続している限り、その恩恵を受けることができます。したがって、私たちは皆、暗号化アルゴリズムによってもたらされるプライバシー保護と通信セキュリティを受動的に享受しています。さらに、セキュリティ テクノロジ レベル、ネットワーク層からホスト ファイル層に至るまで、その背後にある暗号化アプリケーションやプロトコルの層に関係なく、さまざまな暗号化アルゴリズムによってサポートされています。

この記事では、古代から現在に至るまで、私たちのオンライン生活と密接に関係しているこの暗号化アルゴリズムの開発と進化、およびその過程全体に登場し、すべての人々を導く集中鍵暗号化アルゴリズムについて議論します。このアルゴリズムの背後にある興味深い点を理解するために。

暗号化アルゴリズムの主な機能は、情報漏洩を防ぐために平文を暗号文に変換することです。暗号化された暗号文は文字化けに似ていますが、文字化けではありません。文字化けの多くは、暗号化アルゴリズムに属さず、表示形式が変わるだけのエンコードの不一致が原因です。たとえば、base64 は単なるエンコーディングであり、平文のセキュリティを保証することはできません。今後 Base64 暗号化について言及されるのを聞くと、彼らが専門的ではないことがわかります。

暗号化アルゴリズムは次の 3 点を確保する必要があります。

1. 機密性: たとえデータが盗まれたとしても、窃盗者にはそれが何であるか分からないようにします。

2. 完全性: 送信中にデータがハイジャックされ変更された場合でも、受信者が情報が傍受されたことに気づき、その情報を置き換えることを選択できるようにします。

3. 可用性: 暗号化アルゴリズムのオーバーヘッドと複雑さが利用可能な範囲内であることを確認します。

上記の要件を満たす暗号化アルゴリズムは、古典的な暗号化から最新の暗号化に至るまでの長い歴史的開発期間を経てきました。

古代人はどのようにして暗号化を行ったのでしょうか? 1. 史上最古の暗号化アルゴリズム

代替方法
初期の暗号化アルゴリズムは主に軍事で使用されており、歴史上最も古い暗号化アルゴリズムの記録は、周時代の軍事書「六道、龍道」の「陰譜」と「陰書」にあります。記録:

太公は言った、「主と将軍は八級の陰の護符を持っています。敵を倒すための護符は長さ一フィートです。軍を破って将軍を捕らえる護符は長さ九インチです。」都市を占領するために降伏するためのお守りは長さ 8 インチ、敵を遠ざけるために使用するお守りは長さ 7 インチ、警察がしっかりと立つために使用するお守りは長さ 6 インチ、食べ物を求めるために使用されるお守りは長さ 6 インチ軍隊への増援は長さ5インチ、敗北した軍隊の死を示すために使用されるお守りは長さ4インチ、敗北した兵士の死を示すために使用されるお守りは長さ8インチ、3インチです。護符を託されて保管しており、護符のことを聞いて報告を漏らしたら全員が罰せられた、八つの護符は将軍たちに密かに聞かされていたため、陰で話すことができ、理解の術を漏らすことはなかった「中国人と外国人。敵は賢明だが、そうすべきではないことは認識できる。」

武王は太公に尋ねました:「...お守りは理解できません。私たちは遠く離れており、言葉も理解できません。どうすればよいでしょうか?」太公はこう言いました。お守りの代わりに本を使いなさい。主人は将軍に本を預けて、それを将軍として使います。本の主人に頼みます。本は全て一つにまとめられ、再び分離されます。再び分離されると、それらは分割されます。 3つに分かれる 3回出てきてお互いを意識する者は3人について話している 関係はあるがお互いを意識していない そう これを陰術という 敵は賢明なのに誰もそれを認識できません。」

簡単に言うと、陰のシンボルは 8 つの同じ長さのシンボルを使用して、さまざまなメッセージや指示を表現します。これらは暗号化における置換手法です。応用では、情報を敵が理解できないシンボルに変換します。このシンボル ダルマは、 8つの最も重要な意味。陰のタリスマンの補足として、陰シュウはテキスト分割法を使用してテキストを 3 つの部分に直接分割し、3 つのチャネルを通じてターゲットに送信します。敵はテキストの 3 つの部分を傍受することによってのみテキストを解読できます。同時。

シフト方式
偶然にも、暗号化アルゴリズムは極西の戦争でも大規模に使用されています。ヘロドトスの『歴史』には、紀元前 5 世紀にギリシャの都市国家とペルシア帝国が頻繁に戦争をしていたことが記録されており、ギリシャの都市国家は戦争通信情報を暗号化するためにシフト方式を広く使用し、ペルシア帝国の軍事情報の入手を困難にしていました。軍事配備を事前に行うことはできません。ギリシャの都市国家が軍事情報や命令を伝達するために使用するテキストの各段落には固定語数があり、秘密を受け取る人はテキストを変更する指示を手にすることになる。復号者は暗号文を取得した後、シフト指示に従って暗号文を復号し、軍の命令やメッセージを解読します。

2. シーザー暗号は古代の暗号から進化した

古典的なパスワードは主に移動方式と置換方式を使用します。このうちシフト方式は平文を一定方向に特定のビット数だけ移動させるもので、例えば「I love you」は右に4ビットシフトしてM pszi csyとなる。段階的な開発と改良を経て、最も有名なものはシーザー暗号です。しかし、英語やラテン文字の頻度は一定ではありません。英語のアルファベットを例に挙げます。文字 e は他の文字よりも頻繁に現れます。十分な暗号文サンプルを取得した後、周波数計算を通じてシフト規則を正確に見つけて暗号文を解読できます。したがって、ほとんどの Caesar 暗号は置換方式を使用して平文暗号文マッピング テーブルを定義します。

過去の暗号化アルゴリズム

この方法では鍵の網羅性の問題はある程度解決できますが、大量のデータによる頻度攻撃にはまだ無力です。その後、このモードは、周波数を妨害し、復号化の難易度を高めるために、いくつかの特定のパラメーターの導入に依存するように開発されました。

古典暗号の後期には、ヴィジュネール暗号、ROT5/13/18/47、モールス信号などの一連の暗号が開発されました。ただし、いずれも置換法やシフト法に基づいており、主にアルゴリズムの非公開によって安全性が保証されている。

現代人のためのより科学的な暗号アルゴリズム

古典的な暗号化アルゴリズムは、本質的には言語パターンの変化です。シャノンが「秘密システムの通信理論」という論文を発表したのは 20 世紀半ばになってからであり、暗号化アルゴリズムの焦点が応用数学に移ったことを示しています。その結果、現在重要な 3 種類の暗号化アルゴリズム (非対称暗号化、対称暗号化、ハッシュ アルゴリズム) が徐々に登場しました。これら 3 種類のアルゴリズムは、最良の結果を得るために組み合わせて使用​​されることがよくあります。

1. 対称暗号化アルゴリズム

対称暗号化アルゴリズムは、最も広く使用されている暗号化アルゴリズムの 1 つです。一般的に使用されるアルゴリズムには、DES アルゴリズム、AES アルゴリズム、3DES アルゴリズム、TDEA アルゴリズム、Blowfish アルゴリズム、RC5 アルゴリズム、IDEA アルゴリズムなどが含まれます。その特徴は、暗号化側と復号化側の両方が同じ鍵を使用して暗号化と復号を行うことです。対称暗号化は原理の違いにより、ストリーム暗号化とブロック暗号化の 2 種類に大別できます。

ストリーム暗号化
ストリーム暗号化は、平文を文字ごとに暗号化する対称暗号アルゴリズムの一種です。暗号文は、平文と鍵に対して合意された操作をビットごとに実行することで取得できます。ストリーム暗号化アルゴリズムの中で最も有名なのは RC4 と GSM で、最も単純なモデルは次のような XOR ストリーム暗号化の例です。

過去の暗号化アルゴリズム

ストリーム暗号化の原理はシンプルですが、アルゴリズムの構造に弱点があり、平文の一部が漏洩すれば、攻撃者は簡単に鍵を計算できます。また、ビット単位で暗号化されるため、攻撃者がデータを改ざんしても元のデータ構造は破壊されず、受信者は変更を検知することが困難です。ストリーム暗号化は高速かつ効率的ですが、安全性が低いため、重要な情報の暗号化には推奨されません。

ブロック暗号化

ブロック暗号化の内部実装はさらに複雑です。各暗号化ブロックは少なくとも 16 ラウンドの操作を経ます。代表的なアルゴリズムには DES や AES があります。現在、AES の使用が推奨されていますが、DES は安全ではなくなりました。

DES

DES は初期の対称暗号化標準であり、そのコアは主に初期順列、ラウンド関数、逆順列の 3 つのステップに分かれており、当時広く使用されていました。コンピューターのパフォーマンスが向上し続けるにつれて、DES のブルートフォースクラッキングはますます簡単になっています。したがって、DES はもはや安全ではなく、過去 10 年間で徐々に 3DES と AES に置き換えられてきました。

AES

AES は多くの関係者によって分析および実証され、世界中で広く使用されており、現在最も安全な対称暗号化アルゴリズムの 1 つです。過去 10 年間で、AES は対称キー暗号化の最も人気のあるアルゴリズムの 1 つになりました。 DES とは異なり、AES は Feistel アーキテクチャではなく置換置換ネットワークを使用します。

ほとんどの AES 計算は特別な有限領域で完了します。暗号化プロセスは 4×4 バイトの行列で動作します。この行列は「状態」とも呼ばれ、その初期値は平文ブロックです。暗号化する場合、各 AES 暗号化サイクル (最終ラウンドを除く) には 4 つのステップが含まれます。

AddRoundKey - マトリックスの各バイトはラウンド キーと XOR 演算され、各サブキーはキー生成スキームによって生成されます。

SubBytes - 非線形置換関数によるルックアップ テーブルを使用して、各バイトを対応するバイトに置換します。

ShiftRows - 行列の各列を循環的にシフトします。

MixColumns - 線形変換を使用して各列の 4 バイトを混合し、行列内の個々の行を完全に混合する操作。 MixColumns ステップは最後の暗号化ループから省略され、別の ddRoundKey に置き換えられます。

暗号化モード

AES と DES はどちらも内部で異なる暗号化モードをサポートしており、各モードのセキュリティと効率は大きく異なります。最も一般的な 2 つのモード、ECB と CBC のうち、ECB モードは暗号化効率は高いですが、セキュリティは低くなります。モードは次のとおりです。

毎回キーは個々のブロックを暗号化するため、相手が簡単に解読することができます。ただし、各モジュール間に相関関係がないため、並行して動作させることができ、暗号化効率が大幅に向上します。通常、ECB は CBC よりも暗号化効率が 5 ~ 6 倍優れています。しかし、CBCはECBよりも高く、安全です。パターンは次のとおりです。 過去の暗号化アルゴリズム

暗号化の各ブロックでは異なる IV が導入され、暗号化プロセス全体を最終的に完了するには前のブロックを反復する必要があります。各ブロックの IV は暗号文ブロックに関連しているため、同時モードは使用できず、プロセス全体をシリアル化する必要があります。極端に高いパフォーマンス要件が必要でない場合は、より安全で信頼性の高い CBC モードを使用することをお勧めします。 過去の暗号化アルゴリズム2. 非対称暗号化アルゴリズム

非対称暗号化アルゴリズムと対称暗号化アルゴリズムの最大の違いは、暗号化キーと復号化キーが 1 つではなくなることです。この方法は主に「複数の暗号化装置、1 つの復号装置」モデルに対処します。そこで、この多対 1 の関係に公開鍵システムが登場しました。公開鍵は秘密鍵に対応します。公開キーは公開されており、データ送信者は公開キーを使用してデータを暗号化しますが、公開キーで暗号化されたコンテンツは秘密キーでのみ復号化できます。その背後にある数学は、大きな数の分解から複雑な楕円曲線上の離散対数問題まで多岐にわたりますが、これは非常に複雑です。一般的な非対称暗号化アルゴリズムには、DSA アルゴリズム、RSA アルゴリズム、Elgamal アルゴリズム、バックパック アルゴリズム、Rabin アルゴリズム、D-H アルゴリズム、ECC アルゴリズムなどが含まれます。非対称暗号化アルゴリズムの実行効率により、アルゴリズムの実際の適用が制限されるため、そのほとんどは ID 認証に使用され、通信には使用されません。

3. ハッシュ アルゴリズム

ハッシュ アルゴリズムも、非常に一般的な暗号化アルゴリズムの 1 つです。データの送信には使用されませんが、犯罪者によるデータの改ざんを防ぐために、データが改ざんされていないかを検証するために使用されます。特徴は、元の文章がどんなに長くても固定長の文字列となり、暗号化のみ可能で復号化はできない(片方向のみ)ことです。一般的なハッシュ アルゴリズムには、MD5、SHA-1、SHA 224/256/512 などが含まれます。最初の 2 つは安全ではないことが証明されているため、SHA 256/512 などの安全性の高いアルゴリズムを使用することをお勧めします。

上記の暗号化アルゴリズムは、さまざまな分野で広く使用されています。

データベース暗号化アルゴリズム

クラウドとビッグデータの急速な発展に伴い、データベースは安全な LAN 環境からプライベート クラウド、さらにはパブリック クラウドに徐々に移行しています。データベースをクラウドに移行すると、より深刻なセキュリティ上の課題に直面します。重要なデータはデータベースに保存されており、クラウド ホストには多くのセキュリティ リスクが隠れているため、クラウド データベースの暗号化はセキュリティ リスクを解決する良い薬となっています。

対称暗号化アルゴリズム

ファイル暗号化や通信暗号化とは異なり、データベース暗号化では暗号化アルゴリズムの拡張に特別な注意が必要であり、暗号化アルゴリズムのパフォーマンスに関する厳しい要件があります。 2009 年、Anhua Jinhe 氏はデータベース暗号化製品を開発していたとき、対称アルゴリズムの中からストリーム暗号化アルゴリズムを初めて除外しました。その理由は、このアルゴリズムには運用効率とデータ拡張の解決という点では当然の利点があるものの、特定の状況下では安全性の点で欠点があるためです。

暗号化の効率を追求するために、一部の国内セキュリティ メーカーは依然としてこの方式を使用していますが、最も基本的なセキュリティ要件は無視されています。より安全なアプローチは、関連する暗号化処理に対称暗号化でブロック暗号化 (AES) を使用することです。ブロック暗号化はセキュリティが高く比較的安全ですが、データのブロックサイズ制限による拡張問題を解決する必要があります。これには、特定の状況や分野に基づいて十分に洗練された使用計画を設計し、さまざまな分野や種類の拡張問題を解決し、最終的には完璧なデータベース暗号化ソリューションを形成する必要があります。

国内パスワードアルゴリズム

暗号アルゴリズムは、情報セキュリティを確保するための中核テクノロジーです。暗号アルゴリズムは、さまざまな業界で国家機密や中核データを保護する上で重要な役割を果たしています。国際的に受け入れられている暗号アルゴリズム システムと、3DES、SHA-1、RSA などの関連標準が使用されています. 重大な安全上のリスクがあります。したがって、国家安全保障と長期戦略の観点から、関連する国家機関と規制機関は、国家機密アルゴリズムの適用と実装を促進し、業界のセキュリティと制御可能性を強化するための要件を提示しています。現在、国内のデータベース暗号化製品がユーザーの選択と評価に直面しているとき、そのかなりの数が国家機密アルゴリズムのサポートに基づいており、これは政府、軍事産業、機密保持などの関連業界のユーザーにとって非常に重要です。海外技術や製品への過度の依存を排除​​するためには、セキュリティの鍵となる暗号アルゴリズムを国産化する必要がある。

国産暗号アルゴリズムとは、具体的には国家暗号局が認めた国内の商用暗号アルゴリズムを指し、例えば金融分野では現在主にSM2、SM3、SM4の3つの公開アルゴリズムが使用されています。 SM4 アルゴリズムを例に挙げると、SM4 ブロック暗号アルゴリズムは我が国で独自に設計されたブロック対称暗号アルゴリズムであり、データの暗号化/復号化操作を実装してデータと情報の機密性を確保するために使用されます。対称暗号アルゴリズムの安全性を確保するための基本条件は、十分な鍵長であることですが、SM4 アルゴリズムと AES アルゴリズムの鍵長ブロック長は 128 ビットで同じであるため、3DES アルゴリズムよりも安全です。

以上が過去の暗号化アルゴリズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VSCODEに必要なコンピューター構成 VSCODEに必要なコンピューター構成 Apr 15, 2025 pm 09:48 PM

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

Linuxアーキテクチャ:5つの基本コンポーネントを発表します Linuxアーキテクチャ:5つの基本コンポーネントを発表します Apr 20, 2025 am 12:04 AM

Linuxシステムの5つの基本コンポーネントは次のとおりです。1。Kernel、2。Systemライブラリ、3。Systemユーティリティ、4。グラフィカルユーザーインターフェイス、5。アプリケーション。カーネルはハードウェアリソースを管理し、システムライブラリは事前コンパイルされた機能を提供し、システムユーティリティはシステム管理に使用され、GUIは視覚的な相互作用を提供し、アプリケーションはこれらのコンポーネントを使用して機能を実装します。

Apr 16, 2025 pm 07:39 PM

NotePadはJavaコードを直接実行することはできませんが、他のツールを使用することで実現できます。コマンドラインコンパイラ(Javac)を使用してByteCodeファイル(filename.class)を生成します。 Javaインタープリター(Java)を使用して、バイトコードを解釈し、コードを実行し、結果を出力します。

VSCODEは拡張子をインストールできません VSCODEは拡張子をインストールできません Apr 15, 2025 pm 07:18 PM

VSコード拡張機能のインストールの理由は、ネットワークの不安定性、許可不足、システム互換性の問題、VSコードバージョンが古すぎる、ウイルス対策ソフトウェアまたはファイアウォール干渉です。ネットワーク接続、許可、ログファイル、およびコードの更新、セキュリティソフトウェアの無効化、およびコードまたはコンピューターの再起動を確認することにより、問題を徐々にトラブルシューティングと解決できます。

vscode端子使用チュートリアル vscode端子使用チュートリアル Apr 15, 2025 pm 10:09 PM

VSCODEビルトインターミナルは、エディター内でコマンドとスクリプトを実行して開発プロセスを簡素化できるようにする開発ツールです。 VSCODE端子の使用方法:ショートカットキー(CTRL/CMD)で端子を開きます。コマンドを入力するか、スクリプトを実行します。 Hotkeys(Ctrl Lなどの端子をクリアするなど)を使用します。作業ディレクトリ(CDコマンドなど)を変更します。高度な機能には、デバッグモード、自動コードスニペット完了、およびインタラクティブコマンド履歴が含まれます。

GITの倉庫アドレスを確認する方法 GITの倉庫アドレスを確認する方法 Apr 17, 2025 pm 01:54 PM

gitリポジトリアドレスを表示するには、次の手順を実行します。1。コマンドラインを開き、リポジトリディレクトリに移動します。 2。「git remote -v」コマンドを実行します。 3.出力と対応するアドレスでリポジトリ名を表示します。

vscodeでコードを書く場所 vscodeでコードを書く場所 Apr 15, 2025 pm 09:54 PM

Visual Studioコード(VSCODE)でコードを作成するのはシンプルで使いやすいです。 VSCODEをインストールし、プロジェクトの作成、言語の選択、ファイルの作成、コードの書き込み、保存して実行します。 VSCODEの利点には、クロスプラットフォーム、フリーおよびオープンソース、強力な機能、リッチエクステンション、軽量で高速が含まれます。

vscodeはMacに使用できますか vscodeはMacに使用できますか Apr 15, 2025 pm 07:36 PM

VSコードはMacで利用できます。強力な拡張機能、GIT統合、ターミナル、デバッガーがあり、豊富なセットアップオプションも提供しています。ただし、特に大規模なプロジェクトまたは非常に専門的な開発の場合、コードと機能的な制限がある場合があります。

See all articles