RC6 アルゴリズムのFeistel 関数。 | |
| 一般的な | |
|---|---|
| デザイナー | ロン・リベスト、マット・ロブショー、レイ・シドニー、イクン・リサ・イン |
| 初版 | 1998 |
| 由来 | RC5 |
| 認証 | AESファイナリスト |
| 暗号の詳細 | |
| キーサイズ | 128、192、または256ビット |
| ブロックサイズ | 128ビット |
| 構造 | フェイステルネットワーク(タイプ2)[1] |
| ラウンド | 20 |
暗号学において、RC6 ( Rivest cipher 6 ) は、RC5から派生した対称鍵 ブロック暗号です。Ron Rivest、Matt Robshaw、Ray Sidney、およびYiqun Lisa Yinによって、 Advanced Encryption Standard (AES)コンペティションの要件を満たすように設計されました。このアルゴリズムは 5 つの最終候補の 1 つであり、 NESSIEおよびCRYPTRECプロジェクトにも提出されました。これはRSA Securityによって特許取得された独自のアルゴリズムでした。
RC6 本来のブロック サイズは128 ビットで、128、192、256 ビットから最大 2040 ビットまでのキー サイズをサポートしますが、RC5 と同様に、さまざまなワード長、キー サイズ、ラウンド数をサポートするようにパラメータ化できます。RC6 は、データ依存の回転、モジュラー加算、XOR演算を使用する点で、構造が RC5 と非常に似ています。実際、RC6 は 2 つの並列 RC5 暗号化プロセスを織り交ぜたものと見なすことができます。ただし、RC6 では、回転が最下位のビットだけでなくワード内のすべてのビットに依存するようにするために、RC5 にはない追加の乗算演算を使用します。
暗号化/復号化
キー拡張アルゴリズムは、実質的に RC5 のアルゴリズムと同じであることに注意してください。唯一の違いは、RC6 では、ユーザーが指定したキーからより多くの単語が派生されることです。
// RC6-w/r/b による暗号化/復号化
//
// 入力: 4 つの w ビット入力レジスタ A、B、C、D に格納された平文
// r はラウンド数
// w ビットラウンドキー S[0, ... , 2r + 3]
//
// 出力: A、B、C、D に格納された暗号文
//
// '''暗号化手順:'''
B = B + S [ 0 ] D = D + S [ 1 ] i = 1からrに対して{ t = ( B * ( 2 B + 1 ) ) <<< lg w u = ( D * ( 2 D + 1 )) <<< lg w A = (( A ^ t ) <<< u ) + S [ 2 i ] C = (( C ^ u ) <<< t ) + S [ 2 i + 1 ] ( A 、B 、C 、D ) = ( B 、C 、D 、A ) } A = A + S [ 2 r + 2 ] C = C + S [ 2 r + 3 ]
// '''復号化手順:'''
C = C - S [ 2 r + 3 ] A = A - S [ 2 r + 2 ] i = rから1まで実行する{ ( A 、B 、C 、D ) = ( D 、A 、B 、C ) u = ( D * ( 2 D + 1 ) ) <<< lg w t = ( B * ( 2 B + 1 )) <<< lg w C = (( C - S [ 2 i + 1 ]) >>> t ) ^ u A = (( A - S [ 2 i ]) >>> u ) ^ t } D = D - S [ 1 ] B = B - S [ 0 ]
NSAの「インプラント」での使用の可能性
2016年8月、Equation GroupまたはNSAのさまざまなネットワークセキュリティデバイス用の「インプラント」であるとされるコードが公開されました。[2] 付属の説明書によると、これらのプログラムの一部はネットワーク通信の機密性のためにRC6を使用していることが明らかになりました。[3]
ライセンス
RC6はAESに採用されなかったため、ロイヤリティフリーであることは保証されていませんでした。2017年1月現在[アップデート]、RC6の設計者であるRSA Laboratoriesの公式ウェブサイトのウェブページには、次のように記載されています。[4]
- 「 RC6 が AES に採用された場合、RSA Security は、このアルゴリズムを使用する製品に対してライセンス料やロイヤリティの支払いを要求しないことを強調します。」
「if」という単語に重点が置かれていることから、RSA Security Inc. は RC6 アルゴリズムを使用するすべての製品に対してライセンスとロイヤリティの支払いを要求していた可能性があることがわかります。RC6 は特許取得済みの暗号化アルゴリズム (米国特許 5,724,428 号および米国特許 5,835,600 号) でしたが、特許は 2015 年から 2017 年の間に期限切れになりました。
参考文献
- ^ Hoang, Viet Tung; Rogaway, Phillip (2010). 「一般化された Feistel ネットワークについて」LNCS 6223 . CRYPTO 2010. 米国: Springer. pp. 613–630. doi : 10.1007/978-3-642-14623-7_33 .
- ^ 「確認:ハッキングツールの漏洩は「全能の」NSA関連グループによるもの」Ars Technica 2016年8月16日。
- ^ 「これらの手順は、NOPEN トンネル経由で ELIGIBLEBACHELOR を使用して BLATSTING をインストールする手順をガイドします」。GitHub。2016年8 月 16 日取得。
- ^ 「3.6.4 RC5とRC6とは何か?」RSA Laboratories。 2017年7月6日時点のオリジナルよりアーカイブ。2015年8月2日閲覧。
文献
- Pavan, RL; Robshaw, MJB; Sidney, R.; Yin., YL (1998-08-20). 「RC6 ブロック暗号」(PDF) . v1.1. 2018-12-23 にオリジナル(PDF)からアーカイブ。2015-08-02に取得。
- Beuchat, Jean-Luc. 「RC6 ブロック暗号の FPGA 実装」(PDF) 。2006 年 5 月 5 日にオリジナル(PDF)からアーカイブされました。
- トンプソン、イアン ( 2013-12-31 )。「NSA が PC、電話、ルーター、ハードディスクを「光の速さで」ハッキングする方法: スパイ技術カタログの漏洩」。The Register。2015-08-02閲覧。
外部リンク
- 「暗号化 - 256 ビット暗号: 参照ソース コードと国際暗号設計コンテストへの応募」。
- 「対称暗号: RC6」。標準暗号化アルゴリズム命名 (SCAN)。2009-04-15。
- 「RC6® ブロック暗号」。RSA 研究所。2016 年 3 月 4 日のオリジナルからアーカイブ。
