JP6876423B2 - ストリーム暗号における内部状態の初期化装置、方法及びプログラム - Google Patents
ストリーム暗号における内部状態の初期化装置、方法及びプログラム Download PDFInfo
- Publication number
- JP6876423B2 JP6876423B2 JP2016242343A JP2016242343A JP6876423B2 JP 6876423 B2 JP6876423 B2 JP 6876423B2 JP 2016242343 A JP2016242343 A JP 2016242343A JP 2016242343 A JP2016242343 A JP 2016242343A JP 6876423 B2 JP6876423 B2 JP 6876423B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- initial vector
- internal state
- reference table
- operations
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
例えば、非特許文献1では、DES(Data Encryption Standard)について、非特許文献2では、AES(Advanced Encryption Standard)について、それぞれ、暗号化アルゴリズムを参照テーブルにより実装し、鍵値を安全にソフトウェアに格納するホワイトボックス実装と呼ばれる方法が提案されている。
また、特許文献1及び2においても、ブロック暗号をホワイトボックス実装する方法が提案されている。
図1は、本実施形態に係る暗号化装置1(初期化装置)の機能構成を示すブロック図である。
暗号化装置1は、サーバ装置又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、記憶部10及び制御部20の他、各種データの入出力デバイス又は通信デバイス等を備える。
初期化処理は、例えば、排他的論理和演算、加算及び乗算の組み合わせにより構成されるが、各演算は、さらに初期ベクトル及び鍵値よりも短いビット長の複数の演算に分解され、これら複数の演算の入力値に対する出力値が参照テーブルに格納される。
例えば、入力Iから出力OがテーブルT1,T2及びT3を用いて、
O=(T3・T2・T1)(I)=T3(T2(T1(I)))
と計算できる場合、全単射の写像f及びgを用いて、T1,T2及びT3は、それぞれ、
T1’=f・T1
T 2 ’=g・T2・f−1
T3’=T3・g−1
と変換できる。このとき、
O=(T3’・T2’・T1’)(I)
=[(T3・g−1)・(g・T2・f−1)・(f・T1)](I)
=[T3・(g−1・g)・T2・(f−1・f)・T1](I)
=(T3・T2・T1)(I)
が成り立つ。しがたって、テーブルT1’,T2’及びT3’が参照テーブルとして格納され、元のテーブルT1,T2及びT3が保護される。
実行部21は、記憶部10の参照テーブルに基づいて、初期化処理を構成する複数の演算を順次実行し、演算結果を内部レジスタ30に格納する。制御部20は、格納された内部レジスタ30の値を所定の演算により更新しつつ、鍵ストリームを出力する。
通常、鍵値及び初期ベクトルをアプリケーションからの入力として内部状態の値を計算する初期化処理は、ホワイトボックス実装において、鍵値を参照テーブルによる演算に内包させ、複数の参照テーブルの組み合わせによって全体の計算ロジックを構成する。
したがって、鍵値は保護され、初期化処理への入力は初期ベクトルのみとなり、ホワイトボックス実装された初期化処理の出力が内部状態の初期値として内部レジスタ30に格納される。
これにより、たとえ内部レジスタ30の値が漏洩した場合でも、鍵値及び初期ベクトルが第三者に知られることがない。
この参照テーブルは、8ビットの入力と4ビットの出力を持ち、4ビットの入力値2つに対して、4ビットの演算結果を示している。
例えば、値1が「0011」で値2が「0101」の場合、演算結果として「0110」が出力される。
この参照テーブルは、9ビットの入力と5ビットの出力を持つ。入力の9ビットは、4ビットの値2つと前の演算からの桁上がり1ビットを示し、出力の5ビットは、4ビットの加算結果と次の演算への桁上がり1ビットを示している。
例えば、入力として、値1が「0001」、値2が「0011」、前の演算からの桁上がりが「0」の場合、演算結果として「0100」、次の演算への桁上がりとして「0」が出力される。また、入力として、値1が「1000」、値2が「1000」、前の演算からの桁上がりが「1」の場合、演算結果として「0001」、次の演算への桁上がりとして「1」が出力される。
この例では、2つの32ビットの入力に対して、排他的論理和演算を行った32ビットの演算結果が出力される。
この例では、2つの32ビットの入力に対して、加算を行った32ビットの演算結果が出力される。
この例では、32ビットの入力と拡大体GF(232)上の定数との乗算を行った32ビットの演算結果が出力される。
具体的には、GF(232)上の定数と任意の値wとの乗算は、次式で計算できる。
α・w=(w≪8)+alpha[w≫24]
ただし、「+」は排他的論理和を、「≪」及び「≫」は、それぞれ左ビットシフト演算及び右ビットシフト演算を意味し、「alpha」は、定数αによって決定される入力8ビット、出力4ビットの参照テーブルである。
参照テーブルで実装される複数の演算のそれぞれは、全単射の写像及び逆写像を用いて秘匿されるので、安全性が向上する。
10 記憶部
20 制御部
21 実行部
30 内部レジスタ
Claims (5)
- ストリーム暗号における内部状態の初期化装置であって、
初期ベクトルを鍵値により撹拌し、鍵ストリームを出力するための内部状態を生成するために、前記初期ベクトルのみを入力として順次実行する前記鍵値を内包した複数の演算のそれぞれに対して、入力及び出力を記述した参照テーブルを記憶する記憶部と、
前記初期ベクトルが入力されると、前記参照テーブルに基づいて、前記複数の演算を順次実行する実行部と、を備える初期化装置。 - 前記複数の演算の入力及び出力は、前記初期ベクトル及び鍵値よりも短いビット長で構成される請求項1に記載の初期化装置。
- 前記複数の演算のそれぞれは、全単射の写像及び逆写像を用いて秘匿される請求項1又は請求項2に記載の初期化装置。
- ストリーム暗号における内部状態の初期化方法であって、
コンピュータが、
初期ベクトルを鍵値により撹拌し、鍵ストリームを出力するための内部状態を生成するために、前記初期ベクトルのみを入力として順次実行する前記鍵値を内包した複数の演算のそれぞれに対して、入力及び出力を記述した参照テーブルを記憶し、
前記初期ベクトルが入力されると、前記参照テーブルに基づいて、前記複数の演算を順次実行する初期化方法。 - ストリーム暗号における内部状態の初期化プログラムであって、
初期ベクトルを鍵値により撹拌し、鍵ストリームを出力するための内部状態を生成するために、前記初期ベクトルのみを入力として順次実行する前記鍵値を内包した複数の演算のそれぞれに対して、入力及び出力を記述した参照テーブルを記憶させたコンピュータに、
前記初期ベクトルが入力されると、前記参照テーブルに基づいて、前記複数の演算を順次実行させるための初期化プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016242343A JP6876423B2 (ja) | 2016-12-14 | 2016-12-14 | ストリーム暗号における内部状態の初期化装置、方法及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016242343A JP6876423B2 (ja) | 2016-12-14 | 2016-12-14 | ストリーム暗号における内部状態の初期化装置、方法及びプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2018097192A JP2018097192A (ja) | 2018-06-21 |
| JP6876423B2 true JP6876423B2 (ja) | 2021-05-26 |
Family
ID=62632407
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016242343A Active JP6876423B2 (ja) | 2016-12-14 | 2016-12-14 | ストリーム暗号における内部状態の初期化装置、方法及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6876423B2 (ja) |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6252958B1 (en) * | 1997-09-22 | 2001-06-26 | Qualcomm Incorporated | Method and apparatus for generating encryption stream ciphers |
| JP4249166B2 (ja) * | 2005-08-24 | 2009-04-02 | Kddi株式会社 | ストリーム暗号方法および装置 |
| JP5249053B2 (ja) * | 2006-03-10 | 2013-07-31 | イルデト・コーポレート・ビー・ヴイ | データ処理システムの完全性 |
| JP2015109131A (ja) * | 2013-12-03 | 2015-06-11 | パナソニックIpマネジメント株式会社 | ファイル生成方法、再生方法、ファイル生成装置、再生装置および記録媒体 |
-
2016
- 2016-12-14 JP JP2016242343A patent/JP6876423B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2018097192A (ja) | 2018-06-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN105453481B (zh) | 包括表网络的计算设备 | |
| US20190287427A1 (en) | Device and method for performing obfuscated arithmetic | |
| JP5711681B2 (ja) | 暗号処理装置 | |
| CN107004084B (zh) | 用于加密操作的乘法掩码 | |
| US9565018B2 (en) | Protecting cryptographic operations using conjugacy class functions | |
| JP5929905B2 (ja) | 順序保存暗号化システム、装置、方法及びプログラム | |
| US9692592B2 (en) | Using state reordering to protect against white box attacks | |
| JP2016505887A (ja) | 乱数生成器及びストリーム暗号 | |
| JP2011513787A (ja) | ホワイトボックス実装 | |
| JP2014207717A (ja) | 指数難読化 | |
| JP6044738B2 (ja) | 情報処理装置、プログラム及び記憶媒体 | |
| EP3667647A1 (en) | Encryption device, encryption method, decryption device, and decryption method | |
| KR101914453B1 (ko) | 암호화 장치 및 방법 | |
| KR101440680B1 (ko) | 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치 | |
| JP6876423B2 (ja) | ストリーム暗号における内部状態の初期化装置、方法及びプログラム | |
| JP5102536B2 (ja) | ストリーム暗号の暗号化装置、復号化装置、暗号化方法、復号化方法およびプログラム | |
| US11336429B2 (en) | Method for protecting a source of entropy used in countermeasures securing a white-box cryptographic algorithm | |
| JP5354914B2 (ja) | 暗号処理装置及び復号処理装置及びプログラム | |
| JP6360440B2 (ja) | 復号装置、方法及びプログラム | |
| WO2020173662A1 (en) | Method secured against side-channel attacks with a new masking scheme protecting linear operations of a cryptographic algorithm | |
| JP6813468B2 (ja) | 演算装置、演算方法及び演算プログラム | |
| JP2019506031A (ja) | 計算装置及び方法 | |
| JP2015118439A (ja) | 演算装置、演算方法およびコンピュータプログラム | |
| JP2006201641A (ja) | 非線形演算装置及び暗号処理装置及び非線形演算方法及び非線形演算プログラム | |
| JP2011160189A (ja) | ストリーム暗号の秘匿計算暗号化装置、ストリーム暗号の秘匿計算復号化装置、暗号化方法、復号化方法およびプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181221 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191120 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200108 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200302 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200908 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201016 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210406 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210426 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6876423 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |