ホームページ >Java >&#&チュートリアル >Java 暗号化と復号化の基本的な分類とモデルの概要を共有する

Java 暗号化と復号化の基本的な分類とモデルの概要を共有する

Y2J
Y2Jオリジナル
2017-05-02 11:41:151202ブラウズ

この記事は主に Java 暗号化と復号化の基本的な分類方法によってまとめられた関連情報を紹介します。必要な友人はそれを参照してください

Java 暗号化と復号化の基礎:

暗号化 は、パスワードの準備と解読を研究します。通信の秘密を守るためのコードの編集に適用される、パスワード変更の客観的法則の研究は暗号化と呼ばれ、通信インテリジェンスを取得するためのコードの解読への適用は解読と呼ばれ、一般に暗号化と呼ばれます。

暗号の一般用語

平文: 暗号化されるデータ。

暗号文: 平文は暗号化されたデータです。

暗号化: 平文を暗号文に変換するプロセス。

暗号化アルゴリズム: 平文を暗号文に変換する変換アルゴリズム。

暗号化キー: 暗号化アルゴリズムを通じて暗号化操作を実行するために使用されるキー。

復号化: 暗号文を碑文に変換するプロセス。

復号化アルゴリズム: 暗号文を平文に変換する変換アルゴリズム。

復号化キー: ショートヘアを復号化して復号化操作を実行するためのキー。

暗号分類

1. 古典的なパスワード: 文字が基本的な暗号化単位です。

b. 最新の暗号化: 情報ブロックは基本的な暗号化単位です。


2 を機密コンテンツのアルゴリズムで割ったもの

a. 制限付きアルゴリズム: アルゴリズムの機密性は、アルゴリズムを秘密に保つことに基づいています。

b. キーベースのアルゴリズム: アルゴリズムの機密性はキーの機密性に基づいています。


3. 鍵システムによる分割

a. 対称暗号システム: 単一鍵暗号システムまたは秘密鍵暗号システムとも呼ばれ、暗号化プロセスと復号化プロセスは同じ鍵セットを使用します。対応するアルゴリズムは、DES や AES などの対称暗号化アルゴリズムです。

b. 非対称暗号化: 二重鍵暗号化または公開鍵暗号化とも呼ばれ、暗号化プロセスと復号化プロセスでは異なる鍵が使用されます。対応するアルゴリズムは、RSA などの非対称暗号化アルゴリズムです。


4. 平文処理方法による分割

a. ストリーム暗号: シーケンス暗号とも呼ばれ、一度に 1 バイトまたは 1 バイトの平文を暗号化します。たとえば、RC4 アルゴリズムです。

b. ブロック暗号: 暗号化する際、平文は固定長のグループに分割され、同じ鍵とアルゴリズムが各グループの暗号化に使用され、出力も固定長の平文になります。最後のグループ サイズが指定されたグループ サイズを満たさない場合、


には 2 つの処理モードがあります。

残りのデータを直接暗号化するパディングなしモード。このグループの暗号化されたサイズは残りのデータに関連します。

指定されたグループの長さを満たさないデータを埋める充填モードがあります。データの最後のグループが指定されたグループ サイズと同じである場合は、指定された


のグループを直接追加します。サイズ; 埋め込みの最後のバイトには、パディング ワードのセクション番号が記録されます。

ブロック暗号の動作モードの紹介

1. 電子コードブックモデル - ECB

このように、各グループは同じ鍵を使用して個別に暗号化されます。相互に干渉することなく独立して実行できるため、並行して実行できます。また、各グループは独立して暗号化されるため、同じ平文グループは暗号化後は同じ暗号文になります。このモードは、平文グループ化の統計的規則性と構造的特徴を簡単に明らかにします。置換攻撃からは保護されません。

実際、実装によれば、ECB のプロセスは、平文をグループ化し、次にそれらを個別に暗号化し、最後にそれらをつなぎ合わせるプロセスにすぎません。メッセージ長が 1 パケットを超える場合、このモードは推奨されません。各グループにランダム ビット (128 ビット グループ内の 96 ビットの有効な平文と 32 ビットの乱数など) を追加すると、セキュリティがわずかに向上しますが、暗号化プロセス中にデータの拡張が発生することは間違いありません。


利点:

2. 並列コンピューティングに役立つ
欠点:


1. 平文を隠すことはできませんモード;


2. 平文に対するアクティブな攻撃の可能性;


2. 暗号ブロック リンク モード - CBC

の最初のグループと初期化ベクトルが XOR された後。再暗号化では、後続の平文の各セットが以前の暗号文のセットと XOR 演算されてから暗号化されます。 IV は秘密にする必要はなく、暗号文とともに平文で送信できます。


利点:

1. 積極的な攻撃が難しく、ECB よりも安全で、長いメッセージの送信に適しており、SSL および IPSec の標準です。

欠点:


1. 並列計算には適さない;

3. 初期化ベクトル IV

が必要。 CFB

初期化ベクトル IV が必要です。暗号化後、最初のグループの平文に対して XOR 演算が実行され、最初のグループの暗号文が暗号化され、2 番目のグループの平文に対して XOR 演算が実行されてラップされます。暗号化が完了するまで、暗号文の 2 番目のグループが続きます。

利点:


1. プレーンテキストモードを非表示にする


2. ブロック暗号をストリームモードに変換します。

3. パケットよりも小さいデータを暗号化して送信できます。

欠点: 1 つの平文ユニットが損傷すると、複数のユニットに影響します。

3 .Unique IV;


4. 出力フィードバック モード - OFB


は、暗号化後、最初の暗号化データが XOR 演算によって生成されます。最初のグループ化された平文が 2 回目に暗号化されて 2 番目の暗号化データが取得され、2 番目の暗号化データが 2 番目の平文と XOR 演算されて 2 番目の暗号文が生成されます。暗号化が完了しました。

利点:

1.平文モードを非表示にする;

2.ブロック暗号をストリームモードに変換する;
3.時間内にパケットより小さいデータを暗号化して送信できる;


:


1. 平文に対する積極的な攻撃が可能です。


5. 1 つの平文ユニットへのダメージは、複数のユニットに影響します。 - -CTR


カウンターを使用すると、カウンターの初期値が暗号化され、平文の最初のセットと XOR 演算されて、暗号文の最初のセットが生成されます。

カウンターはインクリメントされ、暗号化後に XOR 演算されます。次の平文セットを使用して次のセット暗号文を生成するなど、暗号化が完了するまで続きます


利点:


1. 並行して計算できます。

2. CBC モードとして優れています。

3. 暗号化アルゴリズムを使用する暗号化のみ。



1. エラーの伝播がなく、データの整合性を確保するのが容易ではありません。パディングメソッド


PKCS5: パディング文字列は次の値で構成されます。これは 5 バイトのシーケンスで構成され、各バイトがバイト シーケンスの長さを埋めます。ブロックのサイズは 8 ビットであると明確に定義されています


PKCS7: パディング文字列は値 7 のバイト シーケンスで構成され、各バイトはバイト シーケンスの長さをパディングします。ブロックのサイズは未定義で、1 ~ 255 の範囲で指定できます


ISO10126: パディング文字列はバイト シーケンスで構成され、このバイト シーケンスの最後のバイトでバイト シーケンスの長さが埋められ、残りのバイトはランダムで埋められますデータ。

この記事がお役に立てば幸いです

以上がJava 暗号化と復号化の基本的な分類とモデルの概要を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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