暗号化とは、情報の機密性、完全性、可用性、否認防止を実現するために情報セキュリティ保護を研究する科学です。簡単に言えば、送信された情報を死角なしで包括的に保護することです。
暗号化は主に、パスワードのエンコードと暗号解読の2つの部分で構成されています。暗号解読は、情報のセキュリティ保護を実現するための情報の変換と処理を研究し、暗号解読は、暗号文を介して対応する平文情報を研究します。簡単に言えば、暗号化技術を研究するための暗号解読の研究と、コードを解読する方法を研究するための暗号解読です。
0x01パスワードシステム
暗号システムは、次の5つの部分で構成されています
平文スペースM:暗号化技術で保護する必要のあるメッセージ
暗号文空間C:暗号化技術で処理された平文の結果
キースペースK:K = < K e K_eKE、K d K_dKD>、各Kは暗号化キーK eK_eで構成されますKEそして復号化キーKd K_dKD組成
暗号化アルゴリズムE:平文を暗号文に変換するために使用されるグループ操作アルゴリズム
復号化アルゴリズムD:暗号文を平文に復元するために使用されるグループ操作アルゴリズム
0x02暗号システム
明らかに、K d = K e K_d = K_eの場合KD=KE、単一鍵暗号システムまたは対称暗号システムまたは従来の暗号システムとして知られています。それ以外の場合は、デュアルキーシステムです。さらに、K d K_dKDK eK_eになることはできませんKE起動すると、K eK_eを置くことができますKEK dK_dを傷つけずに公開するKDこの種の暗号システムは、公開鍵暗号システム、または略して公開鍵暗号システムと呼ばれます。
0x02.1対称暗号システム
対称暗号システム(秘密鍵暗号システム):情報をプレーン/暗号文に変換するときに、暗号化、復号化、および復号化に同じ鍵を使用する暗号システム
セキュリティは以下に依存します:
1.暗号化アルゴリズムのセキュリティ
2.鍵の秘密
利点:高効率、シンプルなアルゴリズム、高速暗号化速度、多数の暗号化に適しています
短所:
- メッセージの送信者と受信者は、安全なチャネルを介して事前にキーを交換する必要があります
- nユーザー、n(n − 1)/ 2 n(n-1)/ 2が必要n (n−1 )/ 2キー、難しいキー管理
- メッセージソースを認証できない、デジタル署名できない
目的:大量の情報を伴う暗号化の需要
代表的なアルゴリズム:DESアルゴリズム、3DESアルゴリズム、IDEAアルゴリズム、AESアルゴリズム、SM4グループ化アルゴリズム
0x02.2非対称暗号システム
非対称暗号システム(公開鍵暗号システム):情報がプレーンテキストから暗号テキストに変換されるときに暗号化キーと復号化キーが異なる暗号システム。
非対称暗号システムでは、各ユーザーは暗号化用と復号化用の1対の鍵を持っています。暗号化鍵は公開することができ、公開鍵と呼ばれます。復号化鍵は秘密であり、秘密鍵と呼ばれます。鍵、ユーザーだけが知っています。
利点:
- 便利な鍵配布
- キーストレージが少ない
- デジタル署名をサポートする
短所:実装速度が遅く、大量の情報を使用する暗号化には適していません
目的:重要なコア機密データの暗号化に適しています
代表的なアルゴリズム:RSAアルゴリズム、ElGamalアルゴリズム、楕円曲線暗号化アルゴリズム
質問:公開鍵は公開されているので、
1.誰かが自分の公開鍵でデータを暗号化して私に送信した場合、誰がデータを送信したかわかりません
2.ユーザーの公開鍵を知っている人は誰でも、ユーザーの秘密鍵で暗号化されたデータを復号化できます。
代表的なアルゴリズム:RSAアルゴリズム
-
関連する数学的基礎
-
オイラー関数:正の整数nの場合、n未満で、nに対して互いに素な正の整数の数はφ(n)として記録されます。
对于一个素数n,可知φ(n) = n-1 对于两个素数p和q,它们的乘积满足n = p * q,则可知φ(n) = (p-1) * (q-1)
-
ユークリッドのアルゴリズム:gcd(a、b)は、aとbの最大公約数を表します
gcd(a,b) = 1,表示a,b最大公约数为1,说明a和b互质
-
合同:
2つの整数a、bを整数mで割ると、余りは等しくなり、aとbは、mを法とする合同、またはmを法とする合同bとなり、≡b(mod m)a \ equivbとして表されます。(mod \; m)A≡b (m o dm )
-
-
RSA暗号システムパラメータの定義
- 2つの大きな素数pとqをランダムに選択します(秘密)
- n = p * q(n public)を計算します
- φ(n)=(p-1)*(q-1)を計算します(φ(n)は機密情報です)
- 正の整数eをランダムに選択し、1 <e <φ(n)、およびgcd(e、φ(n))= 1(eはパブリック)を満たす
- よるE * D = 1 MODφ(N)E * D = 1 \; MOD \;φ(N)e∗d=1m o dφ (n )、dを見つける(dは機密)
- 暗号化操作C = M e mod n C = M ^ e \; mod \; nC=Mem o dn復号化操作M = C d mod n M = C ^ d \; mod \; nM=Cdm o dn
RSAパスワードの公開暗号化キーKe K_eKE= <n、e>、秘密の復号化キーK d K_dKD= <p、q、d、φ(n)>
-
RSA暗号の特性
- RSAアルゴリズムには、暗号化および復号化アルゴリズムの可逆性があり、暗号化および復号化操作を交換できるため、データの機密性と信頼性を同時に確保できます。
- RSA暗号のコア操作は、高効率を実現するべき乗剰余操作です。
-
RSAパスワードのセキュリティ
- 選択した素数pとqが十分に大きいため、nを特定のnで分解することは計算上実行不可能です。十分に大きい整数nを使用する必要があります。通常、nは少なくとも1024ビット、通常は2048ビットである必要があります。
0x02.3ハイブリッド暗号化システム
ハイブリッド暗号化システム:対称暗号化と非対称暗号化の両方を使用するシステム。
対称暗号化の大きな問題は、通信の2つの当事者が相互にキーを送信する方法です。セキュリティ上の理由から、帯域外送信が一般的に採用されています。つまり、暗号化された通信がネットワーク上にある場合、送信キーの一部はSMSなどの他のチャネルを経由する必要があります。このように、キー送信のセキュリティを保証することは困難です。さらに、セキュリティのためにキーを定期的に交換する必要があります。これにより、キーの配布と管理がより困難になります。
非対称暗号化の最大の利点は、事前に鍵を送信する必要がないことですが、速度は遅くなります。
したがって、実際のアプリケーションでは、混合暗号システムがしばしば採用されます。
ハーデンとジェームズが秘密のコミュニケーションを実現したいと仮定すると、作業プロセスは次のようになります。
1.メッセージ送信者Hardenは、送信するメッセージを対称鍵で暗号化します
2、ハーデンによってジェームズ公開鍵と対称鍵の暗号化、デジタル封筒形成
3.ハーデンは暗号化されたメッセージとデジタル封筒をジェームズに送信します
4. Jamesは、Hardenの暗号化されたメッセージとデジタルエンベロープを受信した後、最初に秘密キーを使用してデジタルエンベロープのロックを解除し、対称キーを取得します。
5. Jamesは、対称鍵を使用して暗号化されたメッセージを復号化します
0x02.4国内の商用暗号化アルゴリズム
0x03ハッシュ関数とメッセージダイジェスト
ハッシュ関数はハッシュ関数とも呼ばれ、さまざまな長さの入力情報に対して固定長の出力を生成できます。
固定長の出力は、元のメッセージのハッシュまたはメッセージダイジェストと呼ばれます。メッセージダイジェストは固定長であり、元の情報よりもはるかに小さいです。通常、メッセージダイジェストは元に戻せません。つまり、元のテキストを復元することはできません。メッセージダイジェストから。
hがハッシュ関数を表し、hが次の条件を満たすとします。
1.入力長は任意で、出力は固定されています
2.与えられたhとMごとにh(M)を計算するのは簡単です。
3. hが与えられた場合、h(M1)= h(M2)が計算上実行不可能になるように、2つの異なるM1とM2を見つけます。
一般的なハッシュアルゴリズム:MD5、SHA、SM3、SHA-1
アルゴリズム名 | アルゴリズム機能の説明 |
---|---|
MD5アルゴリズム | 512ビットを入力して128ビットのメッセージダイジェストを生成します。これはファイルの整合性チェックによく使用されます |
SHAアルゴリズム | 512ビットを入力して160ビットのメッセージダイジェストを生成します。これはMD5よりも安全です。バージョンSHA-2とSHA-3があります。 |
SM3国内アルゴリズム | 512ビットを入力して、256ビットのメッセージダイジェストを生成します |
0x04デジタル署名
デジタル署名とは、送信者が電子形式でメッセージまたはファイルに署名することを意味します。署名されたメッセージまたはファイルはネットワーク上で送信でき、署名者がメッセージまたはファイルの内容に責任を負うことを意味します。
デジタル署名は、メッセージダイジェストと非対称暗号化テクノロジーの組み合わせを使用します。
デジタル署名は、次の3つの条件を満たす。
1.否認防止。署名者は後で署名を拒否することはできません
2.信頼性。受信者は署名を確認でき、他の誰も署名を偽造できません
3.識別可能性。署名の信憑性について両当事者が紛争を起こした場合、第三者は両当事者間の紛争を解決することができます
Hardenが署名し、電子契約書をJamesに送信する必要があるとします。
Hardenデジタル署名の概略図:
1. Hardenはハッシュ関数を使用して、電子契約ファイルからメッセージの要約を生成します
2. Hardenは、独自の秘密鍵を使用してメッセージダイジェストを暗号化し、デジタル署名を形成します
3.ハーデンは電子契約書とデジタル署名をジェームズに送信します
JamesがHardenから送信された電子契約書とデジタル署名を受け取った後、デジタル署名を検証するプロセスは次のとおりです。
1. Jamesは、Hardenと同じハッシュ関数を使用して、受信した電子契約のメッセージダイジェストを計算します
2. Jamesは、Hardenの公開鍵を使用して、Hardenからのデジタル署名を復号化し、Hardenのメッセージダイジェストを復元します。
3. Jamesは、Jamesによって計算されたメッセージダイジェストとHardenリカバリのメッセージダイジェストの類似点と相違点を比較します。ダイジェストが同じ場合は、電子契約ファイルがHardenからのものであることを意味し、そうでない場合は、電子契約ファイルが改ざんされています。
0x05デジタル証明書
公開鍵証明書とも呼ばれるデジタル証明書は、信頼できる公平なサードパーティ認証局(CA)によって発行される信頼できる電子文書であり、ID認証とデータセキュリティを必要とする分野で広く使用されています。
簡単に言うと、デジタル証明書はID番号に類似している可能性があり、サードパーティの認証局(CA)は公的機関に相当します。
ホテルにチェックインする際は、フロントデスクのスタッフにIDカードを提示する必要があります。スタッフがIDカードとホテルのシステムに保存されているIDカード情報を比較し、チェックインできます。ネットワークでは、デジタル証明書の役割はIDカードに相当します。
デジタル証明書の形式:
最も単純なものは次のとおりです。公開鍵、認証局の名前とデジタル署名
現在、X.509はユニバーサル証明書形式であり、その3番目のバージョンが現在広く使用されています。証明書の内容には、バージョン、シリアル番号、署名アルゴリズムID、発行者、有効期間、件名、件名公開鍵、CA番号署名が含まれます。 、オプションタイプなど。
デジタル証明書の種類:
1.サーバー証明書:サーバーのIDを証明し、通信を暗号化します。クライアントはサーバーとのSSL接続を確立でき、通信データが暗号化されます。
2.電子メール証明書:電子メールの送信者の信頼性を証明し、受信者のみが開くことができる暗号化された電子メールを送信することもできます。
3.クライアント証明書:主に本人確認とデジタル署名に使用されます。安全なクライアント証明書は、多くの場合、特別なUSBKeyに保存されます。使用する場合は、次のようにエクスポートおよびコピーされないように保護パスワードを入力する必要があります。署名認識、音声ブロードキャスト、ディスプレイ付きUSBKeyなど。