新しい暗号化アルゴリズムに基づいた高速ハッシュ
残念ながら、数学者はプログラミングの複雑さにあまり精通しておらず、彼らは何かを発明し、プログラマはプログラムコードでこれを実装する必要があります。 それらのアルゴリズムを効果的に実装することは、常に可能なことではありません。
これは最近のロシアの対称暗号、StriborgおよびGrasshopperで特に顕著です。これらのアルゴリズムをx86 / 64プログラムコードで効果的に実装することは不可能であり、専用の暗号プロセッサが必要です。
反対のことを行い、何が起こるかを確認します。
最新のx86 / 64プロセッサの仕組みを知っているプログラマは、最も効率的な対称暗号化アルゴリズムを開発し、古き良き時代のように数学者に主な仕事をさせます-結果のソリューションの暗号解析。
「最高は善の敵」であることを思い出して、私たちは「善」を基礎として取り上げます-GOST 28147-89。 次に、「害を与えない」という医療原則に従って、マルチスレッドコンピューティング手法を使用して取り組みます。
次のことが行われました。
- キーサイズを256バイトに増やしました。
- データブロックサイズを256バイトに増やしました。
- 置換操作は置換操作に置き換えられます。
- 巡回シフトでは、ビットグループを反転する操作が実装されます。
- キー入力は、ビットの順列の形式です。
- Feistelネットワークは、8つのセグメントのリングネットワークに変更されます。
- 暗号化されたデータを介した2つのパスで、フィードバック付きのゲーミングモードが使用されます。
- 通過は異なる順列で行われ、リングは同じキーでそれをシフトします。
- 暗号化の前に、圧縮プログラムを使用して暗号化されたテキストから冗長性が削除されます。
テスト実装
アルゴリズムが実装されており、最初にテストされるのは、擬似ランダムシーケンスを生成するとき(コンプレッサーがオフになっているとき)の統計パラメーターです。次のようになります。
これは、新しい暗号変換の典型的なNISTテスト結果です。 ランダムキーと初期母集団のテスト結果は、常にランダムシーケンスの統計パラメーターに適合します。
256バイトのブロックサイズのブロック暗号の8バイトブロック暗号の標準に関する実験で得られた統計パラメーターは素晴らしいです。
たとえば、コインを12回投げて「イーグル」と「ナッツ」を均等に失うことと同じです。これも、12回投げられたダイスが各面に2回落ちることを要求します。
これは理論的には、隣接ブロック間の非常に高い差分エントロピーでのみ可能であり、ブロック暗号の複雑さのレベルを特徴づけます。
これらのガンマパラメータは、1回の変換で取得されます。 このアルゴリズムには機能があります-ガンマレートは、プロセッサの速度ではなく、RAMとキャッシュのパフォーマンスに依存します。
ロシアンルーレット、2018年とその応用
最近、暗号化アルゴリズムはマグマ、グラスホッパー、ストライボグのような名の知れた名前を受け取り始めており、この伝統を続けていきます。
このブロック暗号を「ロシアンルーレット」または略してRU2と呼びます。これは、ロシア語のランダムバイナリシーケンスの最初の純粋なジェネレーターである回転ドラムを称えて...
さらに、暗号変換は、バイナリシーケンスの回転(リングシフト)に基づいて構築されます。 このようなラウンドでは、明示的なシフトは192のみです。
したがって、リボルバードラムとの直接の類推は明らかです。
以前は、XMM / YMMレジスターにGOST 28147-89の並列実装方法を導入するとき、公式のFSB認定に合格したため、完全に記述する必要がありました。
現在、状況は異なっており、公務員は想定されていません。 したがって、「ロシアンルーレット」アルゴリズムの詳細な説明はありません。これは一種の著作権保護です。 要するに、「ロシアンルーレット」アルゴリズムはこれまでのところ独自のものであり、したがって、その完全な名称はロシアンルーレット、2018、または略してRU2になります。
もちろん、暗号化の強度には信頼性がないため、研究用に閉鎖された暗号化アルゴリズムはナンセンスです。
しかし、暗号化されたテキストを疑似ランダム性の要件を満たすシーケンスに変換するためにRU2アルゴリズムを使用することを妨げるものはありません。
次に、結果の擬似ランダムシーケンスを、よく知られた「信頼性の高い」アルゴリズムで暗号化できます。実際、すべての本格的な暗号化システムが構築されています。
それまでの間、ロシアンルーレットは、ハッシュ関数の結果の任意のサイズでの高速ハッシュに使用されます。 これは、バックアップおよび整合性タスクで重要です。
暗号化されたデータで2回目のパスを実行すると、フィードバック標準のゲーミングはハッシュ関数に変わります。 これが、 RU2アルゴリズムが最初に実装された方法です。
フィードバック付きのダブルギャミングは、以前はハッシュ関数を実装するためのオプションとは見なされていませんでしたが、明らかに信頼性の高い畳み込みパラメーターがありますが、明らかに低速のためです。 これは主に雪崩効果に適用され、その後の畳み込みラウンドだけでなく、以前のラウンドにも作用します。
さらに、信頼できる擬似ランダムガンマであるすべての受信暗号文がハッシュになるため、得られたハッシュ関数の特性は統計テストによって確実にチェックされます。
この色域から任意の部分を切り取って、ハッシュ関数の値を保存できます。 現在、1024バイトのブロックが使用されており、最も「高度な」SHA3-512標準の64バイトのブロックよりもはるかに信頼性が高くなっています。
RU2ハッシュは、データを表示/変更から保護しますが、暗号の作成者がアルゴリズムの堅牢性を確信するまで、アクセスを制限するためにデータのパスワード保護を検討します。
RU2の実用的な実装
ロシアンルーレットアルゴリズムは、HDDおよびSDDドライブのフォレンジックデュプリケーターに組み込まれています。 アルゴリズムは、差分バックアップ、整合性制御、パスワードベースのアクセス制限、情報圧縮を作成するためにそこで使用されます。
冗長性を削除するためのコンプレッサーは、記事「 新しい高速データ圧縮アルゴリズム」で既に説明されています。ハッシュは、コピーされたデータの整合性を確認するために使用され、パスワードを入力する場合、受信したダンプの表示/変更からの「パスワード保護」にも使用されます
差分バックアップの作成に関する実際の作業で得られたRU2の速度特性は次のとおりです。
コピー速度はリーダーのパラメーターによって制限されます。USB3.0-SATAブリッジを介して接続されたSSDドライブは、高い読み取り速度を提供できません。
360メガバイト/秒の入力ストリーム速度で RU2アルゴリズムは、1.4ギガヘルツの低い動作周波数でプロセッサを5%だけロードします。 これにより、情報の圧縮、そのハッシュ、およびダンプの暗号化(パスワード保護)が保証されます。
従来のハッシュシステムでは、このようなパフォーマンスを提供できません。 比較のために、同じドライブの差分バックアップを作成するときに、Acronisに組み込まれたハッシュシステムがどのように機能するかを次に示します。
プロセッサは、340メガバイト/秒の速度で入力データストリームをハッシュし、同時に3.8ギガヘルツの周波数で動作し、28%でロードされます。
3.8ギガヘルツの周波数で動作するデュアルコアプロセッサの制限パラメーターで取得した結果を再計算すると、Acronisハッシュシステムは1.4ギガバイト/秒のスループットを提供できます。
さらに多くのタスク(ハッシュ+圧縮+「パスワード保護」)を搭載したロシアンルーレットアルゴリズムは、21ギガバイト/秒の速度を提供します。
つまり、 RU2ハッシュは、Acronisに実装されている標準のハッシュよりも桁違いに高速に機能します。
さらに、ロシアンルーレットは、毎秒12ギガバイトの擬似乱数生成レートを提供します。 これは、公式のNISTテストの要件を満たす最速の擬似ランダムシーケンスジェネレーターです。
乱数生成、ハッシュ、パスワード保護、これは「ロシアンルーレット」には十分です。
「...では、暗号化についてはどうですか?-そして暗号化....」