SHAシリーズアルゴリズム

1.SHAアルゴリズムの簡単な要約

SHA(Security Hash Algorithm)は、米国のNISTとNSAによって設計された標準のハッシュアルゴリズムです。SHAは、デジタル署名の標準アルゴリズムであるDSSで使用され、安全性の高いハッシュアルゴリズムでもあります。


2.SHAシリーズアルゴリズムの概要

1)SHA-1
SHA-1アルゴリズムの入力メッセージ長は264ビット未満で、最終出力値は160ビットです。MD4と比較して、SHA-1は主に拡張変換を追加し、前のラウンドの出力もに追加されます。次のラウンドでは、これにより雪崩効果が増加し、160ビットの出力があるため、消耗に対してより耐性があります。
大まかな実装プロセス:メッセージダイジェストをビット文字列に変換し、変換されたビット文字列に対してビット入力を実行し、長さの値を追加してキャッシュを初期化してから、メッセージダイジェストを計算します。

2)SHA-256アルゴリズムSHA-256アルゴリズム
の入力メッセージの最大長は264ビットを超えません。入力は512ビットのグループで処理され、生成される出力は256ビットのメッセージダイジェストです。

アルゴリズム処理ステップ:

1.
メッセージの長さが448mod 512(長さ= 448 mod 512)と一致し、パディングビットの数が1〜512の範囲で、パディングビット文字列の最上位ビットが1で、残りのビットが1になるように、メッセージを埋めるためにパディングビット追加します。0。つまり、メッセージの最後に1を追加してから、長さがmod 512 = 448を満たすまで多くの0を追加します。なぜ448なのですか?448 + 64 = 512だからです。2番目のステップでは、元のメッセージの64ビット長の情報を追加します。

2.追加の長さの値
64ビットで表される初期メッセージ(パディング前)のビットが、ステップ1の結果に追加されます(下位バイトが最初)。

  1. 初期化キャッシュ
    は、256ビットのキャッシュを使用して、ハッシュ関数の中間結果と最終結果を格納します。8つの32ビットレジスタ(A、B、C、D、E、F、G、H)として表すことができます。

4. 512ビットパケットシーケンスの処理。
このアルゴリズムは、64回の反復操作で構成される6つの基本的な論理関数を使用します。各ステップは、256ビットのキャッシュ値ABCDEFGHを入力として受け取り、キャッシュの内容を更新します。各ステップでは、32ビットの定数値Ktと32ビットのWtを使用します。

  1. 結果出力
    すべての512ビットパケットが処理された後、SHA-256アルゴリズムの最後のパケットに対して生成される出力は256ビットメッセージダイジェストです。
    補足:(ここでの特定の実装設計には数学的な知識が含まれ、特定の詳細については説明しません。学生は一般的なプロセスを理解するだけで済みます)

3)SHA-2の他の派生アルゴリズムには
、SHA-224、SHA-256、SHA-384、およびSHA-512が含まれます。これらのバージョンは一緒になってSHAファミリーを形成します。
SHA-224:224ビットのメッセージダイジェストを生成できるSHA-256の「キャストバージョン」。
SHA-512:512ビットの情報ダイジェストを生成できます。
SHA-384:384ビットのメッセージダイジェストを生成できるSHA-512の「キャストバージョン」。
SHAファミリーの最新メンバーであるSHA-3は2015年に発売されました。SHA-3の詳細については、興味のある友達が情報を確認してさらに勉強することができます。

3. EclipseでSHAコードを分析し、効果を実証します

1)メインクラスMainActivity
は、カスタムSHAアルゴリズムを呼び出して暗号化するデータを渡し、カスタムbyteArr2HexStrメソッドを使用してトラバースおよびスプライスします。

SHAシリーズアルゴリズム

2)SHAクラス
は、getInstanceメソッドを使用してさまざまなアルゴリズムを取得します。各アルゴリズムのおおよその実装は同じです。唯一の違いは、getInstanceを使用して取得したアルゴリズムが異なることです。

SHAシリーズアルゴリズム

コードは同じですが、唯一の違いは、getInstnceを使用して取得したアルゴリズムが異なることです。

概要:

1.SHAシリーズに関連するアルゴリズムと実装原則を紹介します。
2. SHAアルゴリズムコードを分析し、実行効果を示します。

おすすめ

転載: blog.51cto.com/15002917/2552358