LEA(暗号)

LEA
LEA暗号化ラウンド関数
一般的な
デザイナーホン・ドゥクジョ、イ・ジョングン、キム・ドンチャン、クォン・デソン、リュ・クォン、イ・ドンゴン
初版2013
暗号の詳細
キーサイズ128、192、または256ビット
ブロックサイズ128ビット
構造ARX (モジュラー加算、ビット回転、ビットXOR)
ラウンド24、28、または32(キーのサイズによって異なります)
最高の公開暗号解読
2019 年現在、フルラウンド LEA への成功した攻撃は知られていません。

軽量暗号化アルゴリズム( LEAとも呼ばれる)は、ビッグデータクラウドコンピューティングなどの高速環境だけでなく、 IoTデバイスモバイルデバイスなどの軽量環境でも機密性を確保するために2013年に韓国で開発された128ビットのブロック暗号です。[ 1 ] LEAには、128ビット、192ビット、256ビットの3つの異なる鍵長があります。LEAは、さまざまなソフトウェア環境で最も広く使用されているブロック暗号で あるAESよりも約1.5~2倍高速にデータを暗号化します。

LEAは、韓国暗号モジュール検証プログラム(KCMVP)によって承認された暗号アルゴリズムの1つであり、大韓民国の国家標準(KS X 3246)です。LEAは、ISO/IEC 29192-2:2019規格(情報セキュリティ- 軽量暗号化 - パート2:ブロック暗号)に含まれています。

仕様

32ビットワードのARX演算(モジュラー加算: 、ビット回転:、、ビットXOR )で構成されるブロック暗号LEAは、128ビットのデータブロックを処理し、128ビット、192ビット、256ビットの3つの異なる鍵長を持ちます。128ビット鍵のLEA、192ビット鍵のLEA、256ビット鍵のLEAは、それぞれ「LEA-128」、「LEA-192」、「LEA-256」と呼ばれます。ラウンド数は、LEA-128が24ラウンド、LEA-192が28ラウンド、LEA-256が32ラウンドです。

暗号化

を128ビットの平文ブロック、を128ビットの暗号文ブロックとします。ここで、 ( )と( )はそれぞれ32ビットのブロックです。( )は192ビットのラウンド鍵とします。ここで、( )は32ビットのブロックです。LEAアルゴリズムのラウンド数は以下です。暗号化操作は以下のように記述されます。

  1. 〜のために

復号化

復号化操作は次のとおりです。

  1. まで​

主要スケジュール

LEAのキースケジュールは128ビット、192ビット、256ビットのキーをサポートし、データ処理部分に 192ビットのラウンドキー( )を出力します。

LEA-128の主要スケジュール

128ビットの鍵を とします。ここで、( )は32ビットのブロックです。LEA-128の鍵スケジュールは、4つの32ビット定数( ) を入力として受け取り、24個の192ビットラウンド鍵( ) を出力します。LEA-128の鍵スケジュール演算は以下のとおりです。

  1. 〜のために

LEA-192の主要スケジュール

192ビット鍵を とします。ここで、( )は32ビットブロックです。LEA-192の鍵スケジュールは、6つの32ビット定数( )を入力として受け取り、28個の192ビットラウンド鍵( )を出力します。LEA-192の鍵スケジュール演算は以下のとおりです。

  1. 〜のために

LEA-256の主要スケジュール

256ビットの鍵を とします。ここで、( )は32ビットのブロックです。LEA-192の鍵スケジュールは、8つの32ビット定数( ) を入力として受け取り、32個の192ビットラウンド鍵( ) を出力します。LEA-256の鍵スケジュール演算は以下のとおりです。

  1. 〜のために

定数値

キースケジュールで使用される 8 つの 32 ビット定数値( ) を次の表に示します。

キースケジュールで使用される定数値
0 1 2 3 4 5 6 7
0xc3efe9db0x44626b020x79e27c8a0x78df30ec0x715ea49e0xc785da0a0xe04ef22a0xe5c40957

安全

2019年現在、全ラウンドLEAに対する成功した攻撃は知られていません。反復ブロック暗号ではよくあることですが、ラウンド数を短縮した亜種は攻撃されています。標準的な攻撃モデル(未知の鍵を用いたCPA/CCA)におけるLEAに対する最も優れた公開済みの攻撃は、ブーメラン攻撃と差分線形攻撃です。ブロック暗号に対する既存の様々な暗号解読技術に対して、全ラウンド数に対するセキュリティマージンは37%以上です。

LEA-128のセキュリティ(24ラウンド)
攻撃タイプ 攻撃された弾丸
差動[ 2 ]14
切り捨て微分法[ 2 ]14
線形[ 1 ]13
ゼロ相関[ 1 ]10
ブーメラン[ 1 ]15
不可能微分[ 1 ]12
積分[ 1 ]9
微分線形[ 1 ]15
関連キー差分[ 1 ]13
LEAのセキュリティマージン
ブロック暗号 ラウンド数(攻撃回数 / 合計回数) セキュリティマージン
LEA-128 15 / 24 37.50%
LEA-192 16 / 28 42.85%
LEA-256 18 / 32 43.75%

パフォーマンス

LEAは汎用ソフトウェア環境において非常に優れた性能を発揮します。特に、様々なソフトウェア環境で最も広く利用されているブロック暗号であるAESと比較して、平均で約1.5~2倍の速度で暗号化が可能です。以下の表は、軽量暗号プリミティブのソフトウェア実装を評価するためのベンチマークフレームワークであるFELICS(Fair Evaluation of Lightweight Cryptographic Systems)[ 3 ]を用いて、LEAとAESの性能を比較したものです。

FELICSシナリオ1 – 暗号化 + 復号化 + キーセットアップ / 128バイトCBC暗号化[ 4 ](コード:バイト、RAM:バイト、時間:サイクル)
プラットフォーム LEA-128 LEA-192 LEA-256 AES-128
AVR コード 1,684 2,010 2,150 3,010
ラム 631 943 1,055 408
時間 61,020 80,954 92,194 58,248
MSP コード 1,130 1,384 1,468 2,684
ラム 626 942 1,046 408
時間 47,339 56,540 64,001 86,506
アーム コード 472 536 674 3,050
ラム 684 968 1,080 452
時間 17,417 20,640 24,293 83,868
FELICSシナリオ2 – 暗号化 / 128ビットCTR暗号化[ 4 ](コード:バイト、RAM:バイト、時間:サイクル)
プラットフォーム LEA-128 LEA-192 LEA-256 AES-128
AVR コード 906 1,210 1,306 1,246
ラム 80 80 80 81
時間 4,023 4,630 5,214 3,408
MSP コード 722 1,014 1,110 1,170
ラム 78 78 78 80
時間 2,814 3,242 3,622 4,497
アーム コード 628 916 1,012 1,348
ラム 92 100 100 124
時間 906 1,108 1,210 4,044

テストベクトル

各キー長のLEAのテストベクトルは以下のとおりです。[ 5 ] すべての値は16進数形式で表されます。

  • LEA-128
    • キー: 0f 1e 2d 3c 4b 5a 69 78 87 96 a5 b4 c3 d2 e1 f0
    • 平文: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
    • 暗号文: 9f c8 4e 35 28 c6 c6 18 55 32 c7 a7 04 64 8b fd
  • LEA-192
    • キー: 0f 1e 2d 3c 4b 5a 69 78 87 96 a5 b4 c3 d2 e1 f0 f0 e1 d2 c3 b4 a5 96 87
    • 平文: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
    • 暗号文: 6f b9 5e 32 5a ad 1b 87 8c dc f5 35 76 74 c6 f2
  • LEA-256
    • キー: 0f 1e 2d 3c 4b 5a 69 78 87 96 a5 b4 c3 d2 e1 f0 f0 e1 d2 c3 b4 a5 96 87 78 69 5a 4b 3c 2d 1e 0f
    • 平文: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
    • 暗号文: d6 51 af f6 47 b1 89 c1 3a 89 00 ca 27 f9 e1 97

実装

LEAは、公共・私的、商用・非商用を問わず、あらゆる用途に無料で使用できます。C 、Java Python実装されたLEAの配布用ソースコードは、KISAのウェブサイトからダウンロードできます。[ 6 ] さらに、LEAは、暗号化スキームの無料のC++クラスライブラリであるCrypto++ライブラリに含まれています。[ 7 ]

KCMVP

LEAは、韓国暗号モジュール検証プログラム(KCMVP)によって承認された暗号アルゴリズムの1つです。[ 8 ]

標準化

LEA は次の標準に含まれています。

  • KS X 3246、128ビットブロック暗号LEA(韓国語)[ 5 ]
  • ISO/IEC 29192-2:2019、情報セキュリティ - 軽量暗号 - パート2:ブロック暗号[ 9 ]

参考文献

  1. ^ a b c d e f g h Hong, Deukjo; Lee, Jung-Keun; Kim, Dong-Chan; Kwon, Daesung; Ryu, Kwon Ho; Lee, Dong-Geon (2014). 「LEA: 一般的なプロセッサ上で高速暗号化を実現する128ビットブロック暗号」情報セキュリティアプリケーションコンピュータサイエンス講義ノート 第8267巻 Springer International Publishing. pp.  3– 27. doi : 10.1007/978-3-319-05149-9_1 . ISBN 978-3-319-05149-9
  2. ^ a b Song, Ling; Huang, Zhangjie; Yang, Qianqian (2016). 「ARXブロック暗号の自動差分解析とSPECKおよびLEAへの応用」 .情報セキュリティとプライバシー. コンピュータサイエンス講義ノート. 第9723巻. Springer International Publishing. pp.  379– 394. doi : 10.1007/978-3-319-40367-0_24 . ISBN 978-3-319-40367-0
  3. ^ Dinu, Daniel; Corre, Yann Le; Khovratovich, Dmitry; Perrin, Léo; Großschädl, Johann; Biryukov, Alex (2018年7月14日). 「モノのインターネットのための軽量ブロック暗号のトライアスロン」(PDF) . Journal of Cryptographic Engineering . 9 (3): 283– 302. doi : 10.1007/s13389-018-0193-x . S2CID 1578215 . 
  4. ^ a b "CryptoLUX > FELICS" . cryptolux.org
  5. ^ a b「KS X 3246、128ビットブロック暗号LEA(韓国語)」
  6. ^ “KISA 암호이용활성화 - 암호알고리즘 소스코드” .シード.kisa.or.kr
  7. ^ 「Crypto++ ライブラリ 8.2 | 暗号化スキームの無料 C++ クラスライブラリ」www.cryptopp.com
  8. ^ “KISA 암호이용활성화 - 개요” .シード.kisa.or.kr
  9. ^ 「ISO/IEC 29192-2:2019、情報セキュリティ - 軽量暗号化 - パート2:ブロック暗号