Document

128ビットブロック暗号
Camellia
青木 和麻呂*
神田 雅透*
盛合 志帆*
市川 哲也†
松井 充†
中嶋 純子†
時田 俊雄†
* 日本電信電話株式会社
† 三菱電機株式会社
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
1
目次
Camelliaの特長
 Camelliaの仕様
 安全性評価
 実装性能
 知的所有権情報
 標準化活動
 まとめ

<付録>
 詳細な安全性評価コメント
 設計方針
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
2
Camelliaの特長

NTTと三菱電機との共同開発。2000年に発表。

両社の暗号設計技術力を結集
NTT: 高速なソフトウェア実装に適した暗号設計
三菱: 小型・高速ハードウェア実装に適した暗号設
計
両社: 安全性評価技術




次期米国政府標準暗号AESと同じインタフェース
をサポート


ブロック長: 128ビット
鍵長:
128, 192, 256ビット
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
3
Camelliaの特長

高い安全性



既知の解読法に対して安全
今後数十年の利用を考慮した高いセキュリティマージン
様々なプラットフォーム上で効率的な処理

ソフトウェア実装:
32ビットや64ビットプロセッサ上で高速
ICカード(メモリが制限されている8ビットや32ビット
プロセッサ)上でコンパクトかつ高性能
ハードウェア実装: 小型かつ高性能
現存する128ビットブロック暗号のなかでは,世界
最小クラスの実装面積
優れた鍵交換高速性: 鍵セットアップ時間が短い





2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
4
Camelliaの仕様

暗号化/復号処理:


18段 Feistel 構造 (128ビット鍵)
24段 Feistel 構造 (192, 256ビット鍵)
ラウンド関数: SPN 構造
6段ごとにFL/FL-1関数を挿入
副鍵との排他的論理和による入出力ホワイトニング




副鍵生成処理:


簡明
暗号化処理と同じ 2段 Feistel 構造を共用
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
5
Camellia (128ビット鍵)
秘密鍵 (128ビット)
平文 (128ビット)
副鍵
F
S1
S4
S3
F
ローテーションと副鍵選択
中間鍵生成
F
S2
F
S4
バイト単位
線形変換
S3
F
S2
S1
F
Si : 置換表(sボック
ス)
暗号化(復号)
処理
鍵生成処理
副鍵
2001.10.09. CRYPTREC Workshop
暗号文 (128ビット)
FL
FL-1
副鍵
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
6
Camellia (192, 256ビット鍵)
秘密鍵
(192, 256ビット)
平文 (128ビット)
副鍵
F
S1
S4
S3
F
ローテーションと副鍵選択
中間鍵生成
F
S2
F
S4
バイト単位
線形変換
S3
F
S2
S1
F
Si : 置換表(sボック
ス)
鍵生成処理
副鍵
2001.10.09. CRYPTREC Workshop
暗号文 (128ビット)
FL
FL-1
副鍵
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
7
設計方針 (要約)

段関数




FL/FL-1関数



差分解読法・線形解読法に対して高い安全性を実現
様々なプラットフォーム上で高性能な処理を実現
小型のハードウェア実装が可能
構造の規則性を崩す
処理性能に大きな影響を与えない
鍵スケジュール


優れた鍵交換高速性を実現
小型のハードウェア実装が可能
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
8
考慮した安全性

以下のような攻撃に対し,十分な安全性を保つよ
うに設計











差分解読法,線形解読法
丸め差分攻撃,丸め線形攻撃
不能差分利用攻撃
ブーメラン攻撃
高階差分攻撃,Square攻撃
補間攻撃,線形和攻撃
等価鍵非存在性
スライド攻撃
関連鍵攻撃
実装攻撃,
……
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
9
安全性に関する第三者評価

公開された第三者評価
著者
発表先
Knudsen
Camellia HP
Bihamら
NESSIE public report
川端,金子
主な結果 (128ビット鍵)
攻撃可能段数
FL/FL-1
解読手法
7 段が識別可能
無
丸め差分
9段
無
差分
8 段が識別可能
無
丸め差分
2nd NESSIE workshop
8段
無
高階差分
He, Qing
ICICS2001
6段
---
Square
杉田ら
ASIACRYPT2001
9 段が識別可能
無
丸め差分
7 段の不能差分
無
不能差分
現在まで,FL/FL-1関数を除いた12段以上の
Camellia(128ビット鍵)に対する攻撃は成功せず
 (仕様どおりの)Camelliaは安全であり,高いセ
キュリティマージンを有していると考えられる

2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
10
ソフトウェア実装性能(128ビット鍵)

Pentium III (CPU clock: 1GHzの場合)
(cycles/byte)
120
暗号化処理速度
(msec)
74.9 Mbps
100
2.5
副鍵生成+1ブロック暗号化
2.0
80
1.5
60
40
20
1.0
高速
高速
229.8 Mbps
0.5
415.6 Mbps 392.6 Mbps
0.0
0
Camellia
アセンブリ
自己評価
Camellia
アセンブリ
CRYPTREC*
Camellia
ANSI C
最適化未了
TripleDES
アセンブリ
CRYPTREC*
Camellia
Camellia TripleDES
アセンブリ
自己評価
アセンブリ
アセンブリ
CRYPTREC* CRYPTREC*
[出典] CRYPTREC*: 暗号技術評価報告書(2000年度版)
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
11
ソフトウェア実装性能(128ビット鍵)

Z80上でのアセンブリ実装 (CPU clock: 5MHz)
Camellia
Rijndael*
ROM使用量 [バイト数]
1,268
1,221
RAM使用量 [バイト数]
60
63
35,951
35,709
(7.19 msec)
(7.15 msec)
37,553
52,094
(7.51 msec)
(10.42 msec)
(スタック,テキスト,鍵の各領域込み)
副鍵生成+1ブロック暗号化
[ステート数]
(動的副鍵生成を利用)
副鍵生成+1ブロック復号
[ステート数]
(動的副鍵生成を利用)
[出典] Rijndael*: 佐野ら, 第2回NESSIE会議予稿集
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
12
ソフトウェア実装性能(128ビット鍵)

その他の結果

Pentium III上のJava実装 (自己評価)
鍵スケジュール: 9,091 サイクル
暗号化処理: 793 サイクル



UltraSPARC,Alpha上でのアセンブリ実装
(暗号技術評価報告書2000年度版より)
暗号化/復号処理速度
プロセッサ
UltraSPARCIIi
Alpha 21264
2001.10.09. CRYPTREC Workshop
1ブロック暗号化/復号
+ 鍵スケジュール
暗号化
[サイクル数]
復号
[サイクル数]
暗号化+副鍵生成
[サイクル数]
復号+副鍵生成
[サイクル数]
355
282
355
282
403
448
403
435
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
13
ハードウェア実装性能(128ビット鍵)

自己評価 – 最良の結果

(ASIC) 三菱 0.18mm ASIC CMOS
実装サイズ
スループット
処理効率
[Kgates]
[Mbps]
(=スループット/エリア)
面積最小
8.12
177.62
21.87
最高処理効率
11.87
1,050.90
88.52
処理速度最速
44.30
1,881.25
42.47
実装サイズ
スループット
処理効率
[slices]
[Mbps]
(=スループット/エリア)
面積最小
1,780
227.42
127.76
最高処理効率
(処理速度最速)
9,692
6,749.99
696.45
優先項目

(FPGA) Xilinx VirtexE
優先項目
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
14
知的所有権情報

Camelliaを評価する際に必要となる知的所有権
の利用が無償で行えることを宣誓します

Camelliaの基本特許に関しては,Camelliaを
使用するものに対して,相互主義の下に,非排他
的に,無償で実施許諾する方針です
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
15
標準化活動

NESSIE (New European Schemes for Signature,
Integrity, and Encryption) プロジェクト


第2次評価フェーズへ進出
IETF

Internet-Draftsを提案
Addition of the Camellia Encryption Algorithm
to Transport Layer Security (TLS)
A Description of the Camellia Encryption
Algorithm



ISO/IEC JTC 1/SC 27

日本国内委員会へ提案中
Encryption Algorithms (18033)

2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
16
詳細情報の問い合わせ

Camellia Home Page
http://info.isl.ntt.co.jp/camellia/



仕様書およびサンプルコード
設計方針,実装性能,ソフトウェア実装技法,ハードウェ
ア評価,および安全性評価の詳細などに関する技術
文書
E-mail
[email protected]
[email protected]
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
17
まとめ

128, 192, 256ビット鍵が利用できる128ビットブ
ロック暗号Camelliaの提案


明確な設計方針に基づく
高い安全性
攻撃に成功した解読法は知られていない
十分に大きなセキュリティマージンを取っている
様々なプラットフォーム上で効率的な処理
小型で効率的なハードウェア実装
高速なソフトウェア実装
ICカード(メモリが制限された低コストプラットフォー
ム)上での効率的な実装







ロイヤリティフリーのアルゴリズム 
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
18
ご質問をどうぞ
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
19
付録
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
20
安全性自己評価

差分解読法および線形解読法


丸め差分攻撃および丸め線形攻撃


10段以上のCamelliaでは,ランダム関数との識別が
不可能
不能差分利用攻撃


FL/FL-1関数を含む12段Camelliaには,確率 2-128
以上となる差分特性・線形特性パスが存在しない
FL/FL-1関数は鍵の値によって差分パスを変化させる
ブーメラン攻撃

FL/FL-1関数を除いた8段Camelliaの最良ブーメラン確
率は 2-66以下と抑えられる
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
21
安全性自己評価

高階差分攻撃およびSquare攻撃


補間攻撃および線形和攻撃


Camelliaのブール多項式での次数が十分に大きくなる
と期待
Camelliaの未知係数の最小個数が最大となると期待
実装攻撃


“有利な(Favorable)” アルゴリズムのグループに属す
実装攻撃に対する防御はもっとも簡単
いくつかの防御策は,実装性能に大きな影響を与え
ることなく実現可能

2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
22
安全性自己評価

等価鍵非存在


スライド攻撃


鍵生成によって作られる副鍵の集合には,元々の秘密
鍵が含まれる
構造の規則性を崩すため,FL/FL-1関数をFeistel構造
の 6段ごとに挿入
関連鍵攻撃

副鍵の関係を制御したり,予測したりすることは困難
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
23
設計方針 – ラウンド関数

P関数


バイト単位の排他的論理和だけで構成可能
 様々な環境で効率的な処理
分岐数が最良
差分解読法や線形解読法に対する耐性


Sボックス

ガロア体GF(28) での逆数関数のアフィン等価関数を利
用
以下の攻撃に対する耐性





差分解読法及び線形解読法
高階差分攻撃
補間攻撃
ハードウェアでの小型実装
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
24
ラウンド関数の詳細
副鍵
s ボックス
P 関数
S1
S4
S3
S2
S4
S3
S2
S1
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
25
設計方針 – FL/FL-1関数

構造の規則性を崩す



通常の Feistel 構造が有する特長を維持


スライド攻撃に対する耐性
将来の(未知の)攻撃に対する耐性
副鍵の順序を除けば,暗号化処理と復号処理が同一
MISTYのFL関数の設計方針を踏襲


任意の固定された副鍵に対して線形変換であるが,
その変換は副鍵の値によって変化する
ソフトウェアでもハードウェアでも効率的な実装が可能
な論理演算で構成
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
26
FL/FL-1関数の詳細
副鍵
副鍵
<<<1
<<<1
副鍵
FL関数
2001.10.09. CRYPTREC Workshop
副鍵
FL-1関数
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
27
設計方針 – 副鍵生成
 ハードウェア実装面
 簡明で,暗号化(復号)処理と一部共用可能
 128ビット鍵専用の副鍵生成は,128, 192, 256ビット
すべての鍵に対する副鍵生成の一部分として実行可能
 様々な環境での効率性
 鍵セットアップ時間を暗号化時間よりも短くする
 動的副鍵生成をサポート
 暗号化処理と復号処理とで動的副鍵生成が同一の
方法で計算可能
 安全性
 等価鍵の非存在
 関連鍵攻撃への耐性
2001.10.09. CRYPTREC Workshop
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
28
副鍵生成の詳細
KL KR
Σ1
F
Σ2
F
定数Σi:
i 番目の素数の平方根の2番目から
17番目までの16進表現の値
KR
KL
Σ3
F
Σ5
F
Σ4
F
Σ6
F
KA
2001.10.09. CRYPTREC Workshop
KB
Copyright (C) NTT & Mitsubishi Electric Corp. 2001
29