新しいNASH暗号化アルゴリズム

広範囲の汎用マイクロコントローラでの実装を目的とした、オリジナルの新しいブロック暗号アルゴリズムが提案されています。 NASHアルゴリズムは、最新の「軽量暗号化」の原理に基づいていますが、強度のレベルを維持しながら、より少ないラウンドに制限される制御されたシフトを使用し、データ処理の速度を上げます。 NASHアルゴリズムを使用して、いわゆる「モノのインターネット」ネットワーク内のデバイス間のデータ交換を保護したり、コンパクトな個人メディア(フラッシュメモリ、microSDカードなど)に記録されたデータを保護したりできます。



キーワード:暗号化、ブロック暗号化アルゴリズム、軽量暗号化、ラウンド関数、制御シフト、キースキャン。



汎用マイクロコントローラーの消費者市場の産業システム、制御システム、および大衆家庭用デバイスの広範な分布により、それらは比較的安価で広く利用可能になりました。 同時に、それらの機能は大きく変化したため、複雑な暗号変換の実装について話すことが可能になりました[1、2]。 ただし、マイクロコントローラーでの暗号化標準の実装では、許容可能な暗号化速度を提供できません。 したがって、高速を実現するために、「軽量」と呼ばれるいくつかの特別な暗号化アルゴリズムが提案されました[3、4、5]。 その中で最も効果的なのは、NSAが開発したSPECKおよびSIMONアルゴリズムです[6、7]。 彼らは、多数の単純な変換からなる暗号化アルゴリズムのアイデアを表明しました。これは、経済学のジョン・ナシャムのノーベル賞受賞者によってNSAに50年代の手紙で表されました[9]。



上記のNSAアルゴリズムよりも強度は劣りませんが、ラウンドの数をわずかに減らして、さらに高速にする軽量ブロック暗号化アルゴリズムを開発するという目標を設定しました。 John Nashに敬意を表して、NASHアルゴリズムに名前を付けました。



アルゴリズム設計



NASHアルゴリズム図は次のとおりです。 テキストは2 ** nビットの半分のブロックに分割され、ブロックは「キー拡張」アルゴリズムに従ってマスターキーから取得された一連のラウンドキーk(i)で暗号化されます。 データブロックは、それぞれ2 ** nビットの左半分と右半分のブロック(L(i)、R(i))に分割され、次の変換が(i + 1)番目のラウンドで実行されます











(i + 1)番目のラウンドのデータブロックの暗号化方程式は次のようになります。



R(i + 1)= L(i)

L(i + 1)=((L(i)⊞k(i))⋙F(L(i)、L(i)⊞k(i)))⊕R(i)



ブロック暗号化の最後のラウンドでは、ハーフブロックL(i + 1)、R(i + 1)はスワップしません。



ラウンド変換の詳細



ハーフブロックサイズは2 ** nです。n= 5または6で、ハーフブロックサイズは32または64ビットです。 したがって、64または128ビットのブロックサイズが提案されます。



ラウンドキーk(i)との混合:⊞は、2 ^ nを法とする2つの整数を加算する関数です。



制御された巡回シフト:





シフト制御機能



セミブロックL(i)をn変数のブール関数の値のベクトルとして解釈し、最初の出力ビットFを、2 ** i-1の形式のL(i)⊞k(i)のビットのセットでこの関数の値として取得します。ここで、i = 1 、...、n、つまり、 L(i)((L(i)⊞k(i))[2 ** 1-1、...、2 ** n-1])の値として、ハーフブロックビットの番号付けは0から2 ** n-1。



L(i)⊞k(i)をn変数のブール関数の値のベクトルとして解釈し、2 ** i-1の形式のL(i)からのビットのセットでこの関数の値として2番目の出力ビットFを取得します。ここで、i = 1 ...、n、つまり(L(i)⊞k(i))(L(i)[2 ** 1-1、...、2 ** n-1])のように、ハーフブロックビットの番号は0から2 ^ですn-1。



64ビットのブロックサイズの場合(それぞれ、ハーフブロック-32ビット):

00は11の循環シフトに対応します。

01は14の循環シフトに対応します。

10は10の循環シフトに対応します。

11は19の循環シフトに対応します。

ラウンド数r:

ブロックサイズ64(ハーフブロック-32)の場合:r = 24;

ブロックサイズ128(ハーフブロック-64)の場合:r = 28。

キーサイズ:128、192、または256ビット。



ラウンドキー生成機能









L(0)= c(0)、R(0)= c(1)、ここで定数c(i)の値は次のように取得されます。

キーは長さ2 ^ nのLブロックに分割され、最初の素数の平方根として別の8-Lブロックが取得されます(√2、√3、√5など、仮数のみ-順序のない小数部)。 C11 80ビットlong doubleは、最後の64ビットからビットを取得します)。



これらのブロックは(0)、(1)、...、(7)に対応​​します。



次に、c(i)を計算するとき、インデックス(i mod 6)+2で定数c(i)を取得し、 (i)=i⨁((i mod 6)+2)でラウンド数に2を法として加算します。



ラウンドキーとして、k(i)= L(i + 1)を使用します。



関連文献
1.マイクロコントローラーとプロセッサー。 2016 URL: www.nxp.com / products / microcntrollers-and-processors



2.モノのインターネット。 2016 URL:http:// www.gemalto.com / iot



3. McKay K.、Bassham L.、Turan M.、Mouha N.、ドラフトNISTIR 8114軽量暗号化に関するコンピューターセキュリティ部門の情報技術研究所NIST、2016 URL: www.nist.gov



4. D.ディヌ、Y。ルコレ、D。コブラトビッチ、L。ペリン、J。グロスシャードル、A。ビリュコフ、モノのインターネット用軽量ブロック暗号のトライアスロン、軽量暗号化に関するレポート軽量暗号化ワークショップ2015、コンピューターセキュリティ部門情報技術研究所NIST、2015 URL: www.nist.gov



5. N. Mouha、B。Mennink、A。Van Herrewege、D。Watanabe、B。Preneel、I。Verbauwhede、Chaskey:マイクロコントローラ向けの軽量MACアルゴリズム、Lightweight Cryptography Workshop 2015、Cryptography Computer Security Division Information Technology Laboratory NIST、 2015 URL: www.nist.gov



6. H. Tschofenig、M。Pegourie-Gonnard、ARMベースのマイクロプロセッサでの最先端暗号化のパフォーマンス、NIST Lightweight Cryptography Workshop 2015



7. R.ボーリュー、D。ショアーズ、J。スミス、S。トリートマンクラーク、B。ウィークス、L。ウインガース、サイモンおよびスペック:モノのインターネット、国家安全保障、エージェンシー9800サベージロード、フォートミードのブロック暗号、MD、20755、米国、メモ2015年7月9日



8. C. Shannon、秘密システムの通信理論、Bell Systems Techn。 J.(1949)656-715



9. J.ナッシュ、NSAへの手紙、1955、URL: www.nsa.gov/public_info/press_room/2012/nash_exhibit_shtm



All Articles