JP6876423B2 - ストリーム暗号における内部状態の初期化装置、方法及びプログラム - Google Patents

ストリーム暗号における内部状態の初期化装置、方法及びプログラム Download PDF

Info

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
Application number
JP2016242343A
Other languages
English (en)
Other versions
JP2018097192A (ja
Inventor
和英 福島
和英 福島
清本 晋作
晋作 清本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2016242343A priority Critical patent/JP6876423B2/ja
Publication of JP2018097192A publication Critical patent/JP2018097192A/ja
Application granted granted Critical
Publication of JP6876423B2 publication Critical patent/JP6876423B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ストリーム暗号における内部状態を初期化する装置、方法及びプログラムに関する。
従来、ブロック暗号を実装する際に、鍵値を安全にソフトウェア内に格納する方法が提案されている。
例えば、非特許文献1では、DES(Data Encryption Standard)について、非特許文献2では、AES(Advanced Encryption Standard)について、それぞれ、暗号化アルゴリズムを参照テーブルにより実装し、鍵値を安全にソフトウェアに格納するホワイトボックス実装と呼ばれる方法が提案されている。
また、特許文献1及び2においても、ブロック暗号をホワイトボックス実装する方法が提案されている。
特開2009−543244号公報 特開2011−211708号公報
Chow, S., Eisen, P., Johnson, H., and Van Oorschot, P. C., "A White−Box DES Implementation for DRM Applications," In Proc. of ACM Workshop on Digital Rights Management (DRM 2002), Lecture Notes in Computer Science 2696, pages 1−15, 2003. Chow, S., Eisen, P., Johnson, H., and Van Oorschot, P. C., "White−box Cryptography and an AES Implementation," In Proc. of Selected Areas in Cryptography (SAC 2002), Lecture Notes in Computer Science 2595, pages 250−270, 2003.
しかしながら、従来のブロック暗号を対象とするホワイトボックス実装は、参照テーブルを用いた処理により、暗号化ブロック毎にオーバーヘッドが発生し、パフォーマンスが低下していた。
本発明は、ストリーム暗号において、パフォーマンスの低下を抑制しつつ鍵値を安全に実装できる装置、方法及びプログラムを提供することを目的とする。
本発明に係る初期化装置は、ストリーム暗号における内部状態の初期化装置であって、初期ベクトルを鍵値により撹拌し内部状態を生成するために、順次実行する複数の演算のそれぞれに対して、入力及び出力を記述した参照テーブルを記憶する記憶部と、前記参照テーブルに基づいて、前記複数の演算を順次実行する実行部と、を備える。
前記複数の演算の入力及び出力は、前記初期ベクトル及び鍵値よりも短いビット長で構成されてもよい。
前記複数の演算のそれぞれは、全単射の写像及び逆写像を用いて秘匿されてもよい。
本発明に係る初期化方法は、ストリーム暗号における内部状態の初期化方法であって、コンピュータが、初期ベクトルを鍵値により撹拌し内部状態を生成するために、順次実行する複数の演算のそれぞれに対して、入力及び出力を記述した参照テーブルを記憶し、前記参照テーブルに基づいて、前記複数の演算を順次実行する。
本発明に係る初期化プログラムは、ストリーム暗号における内部状態の初期化プログラムであって、初期ベクトルを鍵値により撹拌し内部状態を生成するために、順次実行する複数の演算のそれぞれに対して、入力及び出力を記述した参照テーブルを記憶させたコンピュータに、前記参照テーブルに基づいて、前記複数の演算を順次実行させる。
本発明によれば、ストリーム暗号において、パフォーマンスの低下を抑制したホワイトボックス実装を実現できる。
実施形態に係る暗号化装置の機能構成を示すブロック図である。 実施形態に係るホワイトボックス実装を説明する概念図である。 実施形態に係る参照テーブルの一例として、排他的論理和演算の入力値及び出力値を例示した図である。 実施形態に係る参照テーブルの一例として、加算の入力値及び出力値を例示した図である。 実施形態に係る排他的論理和演算の実装例を示す図である。 実施形態に係る加算の実装例を示す図である。 実施形態に係る乗算の実装例を示す図である。
以下、本発明の実施形態の一例について説明する。
図1は、本実施形態に係る暗号化装置1(初期化装置)の機能構成を示すブロック図である。
暗号化装置1は、サーバ装置又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、記憶部10及び制御部20の他、各種データの入出力デバイス又は通信デバイス等を備える。
記憶部10は、ハードウェア群を暗号化装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスク(HDD)等であってよい。具体的には、記憶部10は、本実施形態の各機能を制御部20に実行させるプログラム(初期化プログラム)の他、初期化処理で参照される参照テーブルを記憶する。
参照テーブルは、内部レジスタ30に格納される内部状態の値を生成するために、初期ベクトルを鍵値により撹拌する初期化処理において、順次実行する複数の演算のそれぞれに対して、入力及び出力を記述したテーブルである。
初期化処理は、例えば、排他的論理和演算、加算及び乗算の組み合わせにより構成されるが、各演算は、さらに初期ベクトル及び鍵値よりも短いビット長の複数の演算に分解され、これら複数の演算の入力値に対する出力値が参照テーブルに格納される。
また、複数の演算のそれぞれは、全単射の写像及び逆写像を用いて秘匿される。
例えば、入力Iから出力OがテーブルT,T及びTを用いて、
O=(T・T・T)(I)=T(T(T(I)))
と計算できる場合、全単射の写像f及びgを用いて、T,T及びTは、それぞれ、
’=f・T
’=g・T・f−1
’=T・g−1
と変換できる。このとき、
O=(T’・T’・T’)(I)
=[(T・g−1)・(g・T・f−1)・(f・T)](I)
=[T・(g−1・g)・T・(f−1・f)・T](I)
=(T・T・T)(I)
が成り立つ。しがたって、テーブルT’,T’及びT’が参照テーブルとして格納され、元のテーブルT,T及びTが保護される。
制御部20は、暗号化装置1の全体を制御する部分であり、記憶部10に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各種機能を実現している。制御部20は、CPUであってよい。
制御部20は、実行部21を備え、暗号化又は復号化を行う際に、初期ベクトルを入力とし、ストリーム暗号の鍵ストリームを出力するための内部レジスタ30の値(内部状態)を初期化する。
実行部21は、記憶部10の参照テーブルに基づいて、初期化処理を構成する複数の演算を順次実行し、演算結果を内部レジスタ30に格納する。制御部20は、格納された内部レジスタ30の値を所定の演算により更新しつつ、鍵ストリームを出力する。
図2は、本実施形態に係る初期化処理のホワイトボックス実装を説明する概念図である。
通常、鍵値及び初期ベクトルをアプリケーションからの入力として内部状態の値を計算する初期化処理は、ホワイトボックス実装において、鍵値を参照テーブルによる演算に内包させ、複数の参照テーブルの組み合わせによって全体の計算ロジックを構成する。
したがって、鍵値は保護され、初期化処理への入力は初期ベクトルのみとなり、ホワイトボックス実装された初期化処理の出力が内部状態の初期値として内部レジスタ30に格納される。
ここで、ホワイトボックス実装される初期化処理の計算ロジックは、不可逆なもの、すなわち、初期化処理により生成された内部状態から、鍵値又は初期ベクトルを求めることができないものが採用される。
これにより、たとえ内部レジスタ30の値が漏洩した場合でも、鍵値及び初期ベクトルが第三者に知られることがない。
図3は、本実施形態に係る参照テーブルの一例として、排他的論理和演算の入力値及び出力値を例示した図である。
この参照テーブルは、8ビットの入力と4ビットの出力を持ち、4ビットの入力値2つに対して、4ビットの演算結果を示している。
例えば、値1が「0011」で値2が「0101」の場合、演算結果として「0110」が出力される。
図4は、本実施形態に係る参照テーブルの一例として、加算の入力値及び出力値を例示した図である。
この参照テーブルは、9ビットの入力と5ビットの出力を持つ。入力の9ビットは、4ビットの値2つと前の演算からの桁上がり1ビットを示し、出力の5ビットは、4ビットの加算結果と次の演算への桁上がり1ビットを示している。
例えば、入力として、値1が「0001」、値2が「0011」、前の演算からの桁上がりが「0」の場合、演算結果として「0100」、次の演算への桁上がりとして「0」が出力される。また、入力として、値1が「1000」、値2が「1000」、前の演算からの桁上がりが「1」の場合、演算結果として「0001」、次の演算への桁上がりとして「1」が出力される。
図5は、本実施形態に係る初期化処理における排他的論理和演算の実装例を示す図である。
この例では、2つの32ビットの入力に対して、排他的論理和演算を行った32ビットの演算結果が出力される。
32ビットの排他的論理和演算は、8つの4ビット排他的論理和テーブル(図3)により実現される。具体的には、入力1及び入力2をそれぞれ4ビットずつに分割し、分割された4ビットずつを入力とした演算結果が排他的論理和テーブルから抽出され、8つの演算結果が連結されて出力となる。
図6は、本実施形態に係る初期化処理における加算の実装例を示す図である。
この例では、2つの32ビットの入力に対して、加算を行った32ビットの演算結果が出力される。
32ビットの加算は、8つの4ビット加算テーブル(図4)を組み合わせて実現される。具体的には、入力1及び入力2をそれぞれ4ビットずつに分割し、分割された4ビットの値が2つと桁上がりとを順に入力とした演算結果が4ビット加算テーブルから抽出され、8つの演算結果が連結されて出力となる。
図7は、本実施形態に係る初期化処理における乗算の実装例を示す図である。
この例では、32ビットの入力と拡大体GF(232)上の定数との乗算を行った32ビットの演算結果が出力される。
32ビットの乗算は、8ビットの入力と4ビットの出力を持つ参照テーブルを8つと、4ビットの排他的論理和テーブル(図3)を6つとを組み合わせて実現される。
具体的には、GF(232)上の定数と任意の値wとの乗算は、次式で計算できる。
α・w=(w≪8)+alpha[w≫24]
ただし、「+」は排他的論理和を、「≪」及び「≫」は、それぞれ左ビットシフト演算及び右ビットシフト演算を意味し、「alpha」は、定数αによって決定される入力8ビット、出力4ビットの参照テーブルである。
本実施形態によれば、暗号化装置1は、ストリーム暗号における内部状態の初期化処理をホワイトボックス実装した。これにより、通常は上位のアプリケーションからインタフェースを介して入力される鍵値が保護される。さらに、初期化後の鍵ストリームの生成、及び暗号化若しくは復号化の処理は従来通りのため、ホワイトボックス実装によるオーバーヘッドは初期化処理のみとなる。したがって、暗号化装置1は、パフォーマンスの低下を抑制しつつ鍵値を安全に実装できる。
参照テーブルに格納される各演算の入力及び出力は、初期ベクトル及び鍵値よりも短いビット長で構成されるので、参照テーブルに格納すべきレコード数が抑制される。
参照テーブルで実装される複数の演算のそれぞれは、全単射の写像及び逆写像を用いて秘匿されるので、安全性が向上する。
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
暗号化装置1による内部状態の初期化方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD−ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
1 暗号化装置(初期化装置)
10 記憶部
20 制御部
21 実行部
30 内部レジスタ

Claims (5)

  1. ストリーム暗号における内部状態の初期化装置であって、
    初期ベクトルを鍵値により撹拌し、鍵ストリームを出力するための内部状態を生成するために、前記初期ベクトルのみを入力として順次実行する前記鍵値を内包した複数の演算のそれぞれに対して、入力及び出力を記述した参照テーブルを記憶する記憶部と、
    前記初期ベクトルが入力されると、前記参照テーブルに基づいて、前記複数の演算を順次実行する実行部と、を備える初期化装置。
  2. 前記複数の演算の入力及び出力は、前記初期ベクトル及び鍵値よりも短いビット長で構成される請求項1に記載の初期化装置。
  3. 前記複数の演算のそれぞれは、全単射の写像及び逆写像を用いて秘匿される請求項1又は請求項2に記載の初期化装置。
  4. ストリーム暗号における内部状態の初期化方法であって、
    コンピュータが、
    初期ベクトルを鍵値により撹拌し、鍵ストリームを出力するための内部状態を生成するために、前記初期ベクトルのみを入力として順次実行する前記鍵値を内包した複数の演算のそれぞれに対して、入力及び出力を記述した参照テーブルを記憶し、
    前記初期ベクトルが入力されると、前記参照テーブルに基づいて、前記複数の演算を順次実行する初期化方法。
  5. ストリーム暗号における内部状態の初期化プログラムであって、
    初期ベクトルを鍵値により撹拌し、鍵ストリームを出力するための内部状態を生成するために、前記初期ベクトルのみを入力として順次実行する前記鍵値を内包した複数の演算のそれぞれに対して、入力及び出力を記述した参照テーブルを記憶させたコンピュータに、
    前記初期ベクトルが入力されると、前記参照テーブルに基づいて、前記複数の演算を順次実行させるための初期化プログラム。
JP2016242343A 2016-12-14 2016-12-14 ストリーム暗号における内部状態の初期化装置、方法及びプログラム Active JP6876423B2 (ja)

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)

* Cited by examiner, † Cited by third party
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マネジメント株式会社 ファイル生成方法、再生方法、ファイル生成装置、再生装置および記録媒体

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