(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2018-515815(P2018-515815A)
(43)【公表日】2018年6月14日
(54)【発明の名称】データ暗号化装置及び方法、並びにデータ復号化装置及び方法
(51)【国際特許分類】
G09C 1/00 20060101AFI20180518BHJP
G06F 21/60 20130101ALI20180518BHJP
【FI】
G09C1/00 610A
G06F21/60 320
【審査請求】有
【予備審査請求】未請求
【全頁数】42
(21)【出願番号】特願2017-560305(P2017-560305)
(86)(22)【出願日】2015年6月30日
(85)【翻訳文提出日】2017年12月15日
(86)【国際出願番号】KR2015006730
(87)【国際公開番号】WO2016186241
(87)【国際公開日】20161124
(31)【優先権主張番号】10-2015-0069666
(32)【優先日】2015年5月19日
(33)【優先権主張国】KR
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KN,KP,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US,UZ
(71)【出願人】
【識別番号】510294195
【氏名又は名称】サムソン エスディーエス カンパニー リミテッド
(74)【代理人】
【識別番号】100091982
【弁理士】
【氏名又は名称】永井 浩之
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100082991
【弁理士】
【氏名又は名称】佐藤 泰和
(74)【代理人】
【識別番号】100105153
【弁理士】
【氏名又は名称】朝倉 悟
(74)【代理人】
【識別番号】100096921
【弁理士】
【氏名又は名称】吉元 弘
(72)【発明者】
【氏名】チェ、ギュ−ヨン
(72)【発明者】
【氏名】ムン、ドク−ジェ
(72)【発明者】
【氏名】チョ、ジ−フン
【テーマコード(参考)】
5J104
【Fターム(参考)】
5J104AA18
5J104AA32
5J104JA03
(57)【要約】
データ暗号化装置及び方法、並びにデータ復号化装置及び方法を開示する。本発明の一実施形態に係るデータ暗号化装置は、データを複数の平文ブロックに分割する分割部と、暗号鍵に基づくブロック暗号化方式を用いて、前記複数の平文ブロックの一部のブロック、および前記データの暗号化のための初期値の少なくとも1つを暗号化する暗号化部と、非暗号鍵に基づくエンコード方式を用いて、前記複数の平文ブロックのうち、前記ブロック暗号化方式により暗号化されていない残りのブロックをエンコードするエンコード部とを含む。
【特許請求の範囲】
【請求項1】
データを複数の平文ブロックに分割する分割部と、
暗号鍵に基づくブロック暗号化方式を用いて、前記複数の平文ブロックの一部のブロックおよび前記データの暗号化のための初期値の少なくとも1つを暗号化する暗号化部と、
非暗号鍵に基づくエンコード方式を用いて、前記複数の平文ブロックのうち、前記ブロック暗号化方式により暗号化されていない残りのブロックをエンコードするエンコード部とを含むデータ暗号化装置。
【請求項2】
前記ブロック暗号化方式は、対称鍵または非対称鍵を用いる暗号化方式を含む請求項1に記載のデータ暗号化装置。
【請求項3】
前記ブロック暗号化方式は、ホワイトボックスに基づく暗号化方式を含む請求項1に記載のデータ暗号化装置。
【請求項4】
前記エンコード方式は、論理演算、一方向性関数(one−way function)、一方向性置換(one−way permutaion)、および論理関数の少なくとも1つを用いるエンコード方式を含む請求項1に記載のデータ暗号化装置。
【請求項5】
前記初期値は、初期化ベクトルまたはカウンタ値を含む請求項1に記載のデータ暗号化装置。
【請求項6】
前記暗号化部は、前記初期化ベクトルまたは前記カウンタ値を用いて前記一部のブロックを暗号化する請求項5に記載のデータ暗号化装置。
【請求項7】
前記エンコード部は、前記初期化ベクトルまたは前記カウンタ値を用いて前記残りのブロックをエンコードする請求項5に記載のデータ暗号化装置。
【請求項8】
前記エンコード部は、以前に生成された暗号文ブロックを用いて、前記残りのブロックのそれぞれを順次エンコードする請求項1に記載のデータ暗号化装置。
【請求項9】
前記エンコード部は、以前に生成された暗号文ブロックおよび前記以前に生成された暗号文ブロックの生成に用いられた平文ブロックを用いて、前記残りのブロックのそれぞれを順次エンコードする請求項1に記載のデータ暗号化装置。
【請求項10】
暗号鍵に基づくブロック復号化方式を用いて、暗号化されたデータの一部のブロックを復号化する復号化部と、
非暗号鍵に基づくデコード方式を用いて、前記暗号化されたデータの前記一部のブロックを除いた残りのブロックをデコードするデコード部とを含むデータ復号化装置。
【請求項11】
前記ブロック復号化方式は、対称鍵または非対称鍵を用いる復号化方式を含む請求項10に記載のデータ復号化装置。
【請求項12】
前記ブロック復号化方式は、ホワイトボックスに基づく復号化方式を含む請求項10に記載のデータ復号化装置。
【請求項13】
前記デコード方式は、論理演算、一方向性関数(one−way function)、一方向性置換(one−way permutaion)、および論理関数の少なくとも1つを用いるデコード方式を含む請求項10に記載のデータ復号化装置。
【請求項14】
前記デコード部は、前記暗号化されたデータの生成に用いられた初期化ベクトルまたはカウンタ値を用いて、前記残りのブロックをデコードする請求項10に記載のデータ復号化装置。
【請求項15】
前記デコード部は、以前に生成された平文ブロックの生成に用いられた暗号文ブロックを用いて、前記残りのブロックのそれぞれを順次デコードする請求項10に記載のデータ復号化装置。
【請求項16】
前記デコード部は、以前に生成された平文ブロックおよび前記以前に生成された平文ブロックの生成に用いられた暗号文ブロックを用いて、前記残りのブロックのそれぞれを順次デコードする請求項10に記載のデータ復号化装置。
【請求項17】
データを複数の平文ブロックに分割するステップと、
暗号鍵に基づくブロック暗号化方式を用いて、前記複数の平文ブロックの一部のブロックおよび前記データの暗号化のための初期値の少なくとも1つを暗号化するステップと、
非暗号鍵に基づくエンコード方式を用いて、前記複数の平文ブロックのうち、前記ブロック暗号化方式により暗号化されていない残りのブロックをエンコードするステップとを含むデータ暗号化方法。
【請求項18】
前記ブロック暗号化方式は、対称鍵または非対称鍵を用いる暗号化方式を含む請求項17に記載のデータ暗号化方法。
【請求項19】
前記ブロック暗号化方式は、ホワイトボックスに基づく暗号化方式を含む請求項17に記載のデータ暗号化方法。
【請求項20】
前記エンコード方式は、論理演算、一方向性関数(one−way function)、一方向性置換(one−way permutaion)、および論理関数の少なくとも1つを用いるエンコード方式を含む請求項17に記載のデータ暗号化方法。
【請求項21】
前記初期値は、初期化ベクトルまたはカウンタ値を含む請求項17に記載のデータ暗号化方法。
【請求項22】
前記暗号化するステップは、前記初期化ベクトルまたは前記カウンタ値を用いて前記一部のブロックを暗号化する請求項21に記載のデータ暗号化方法。
【請求項23】
前記エンコードするステップは、前記初期化ベクトルまたは前記カウンタ値を用いて前記残りのブロックをエンコードする請求項21に記載のデータ暗号化方法。
【請求項24】
前記エンコードするステップは、以前に生成された暗号文ブロックを用いて、前記残りのブロックのそれぞれを順次エンコードする請求項17に記載のデータ暗号化方法。
【請求項25】
前記エンコードするステップは、以前に生成された暗号文ブロックおよび前記以前に生成された暗号文ブロックの生成に用いられた平文ブロックを用いて、前記残りのブロックのそれぞれを順次エンコードする請求項17に記載のデータ暗号化方法。
【請求項26】
暗号鍵に基づくブロック復号化方式を用いて、暗号化されたデータの一部のブロックを復号化するステップと、
非暗号鍵に基づくデコード方式を用いて、前記暗号化されたデータの前記一部のブロックを除いた残りのブロックをデコードするステップとを含むデータ復号化方法。
【請求項27】
前記ブロック復号化方式は、対称鍵または非対称鍵を用いる復号化方式を含む請求項26に記載のデータ復号化方法。
【請求項28】
前記ブロック復号化方式は、ホワイトボックスに基づく復号化方式を含む請求項26に記載のデータ復号化方法。
【請求項29】
前記デコード方式は、論理演算、一方向性関数(one−way function)、一方向性置換(one−way permutaion)、および論理関数の少なくとも1つを用いるデコード方式を含む請求項26に記載のデータ復号化方法。
【請求項30】
前記デコードするステップは、前記暗号化されたデータの生成に用いられた初期化ベクトルまたはカウンタ値を用いて、前記残りのブロックをデコードする請求項26に記載のデータ復号化方法。
【請求項31】
前記デコードするステップは、以前に生成された平文ブロックの生成に用いられた暗号文ブロックを用いて、前記残りのブロックのそれぞれを順次デコードする請求項26に記載のデータ復号化方法。
【請求項32】
前記デコードするステップは、以前に生成された平文ブロックおよび前記以前に生成された平文ブロックの生成に用いられた暗号文ブロックを用いて、前記残りのブロックのそれぞれを順次デコードする請求項26に記載のデータ復号化方法。
【請求項33】
ハードウェアと結合され、
データを複数の平文ブロックに分割するステップと、
暗号鍵に基づくブロック暗号化方式を用いて、前記複数の平文ブロックの一部のブロックおよび前記データの暗号化のための初期値の少なくとも1つを暗号化するステップと、
非暗号鍵に基づくエンコード方式を用いて、前記複数の平文ブロックのうち、前記ブロック暗号化方式により暗号化されていない残りのブロックをエンコードするステップとを実行させるために記録媒体に格納されたコンピュータプログラム。
【請求項34】
ハードウェアと結合され、
暗号鍵に基づくブロック復号化方式を用いて、暗号化されたデータの一部のブロックを復号化するステップと、
非暗号鍵に基づくデコード方式を用いて、前記暗号化されたデータの前記一部のブロックを除いた残りのブロックをデコードするステップとを実行させるために記録媒体に格納されたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データの暗号化及び復号化の技術に関する。
【背景技術】
【0002】
従来のブロック暗号アルゴリズムを用いるデータ暗号化では、暗号鍵が攻撃者に漏洩すると、暗号化されたデータの復号化が可能であり、データが露出するため、暗号鍵の保護・管理が非常に重要な問題であった。
【0003】
一般に、ブロック暗号を用いるデータ暗号化では、暗号鍵の長さ、暗号ブロックのサイズ、ラウンド数がセキュリティ性に影響を与える。この中で、メッセージをブロック単位に分けて暗号化処理を行う際の運用モード(mode of operation)もまた、重要な役割を果たす。運用モードを使用するブロック暗号アルゴリズムは、ブロック単位で暗号化を行い、すべてのブロックに同一の暗号鍵で暗号化を行う。
【0004】
しかしながら、従来のブロック暗号アルゴリズムを用いるデータ暗号化は、データ暗号化の長さが長ければ長いほど、データ暗号化ブロックが増え、その数だけ暗号アルゴリズムを使用して暗号化を行った。そのため、データが増えるほどデータ暗号化の速度も遅くなってしまい、大容量の暗号化などの暗号化速度が重要となる場合には使用が困難な問題点がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、ブロック暗号化方式およびエンコード方式を用いてデータ暗号化を行い、これにより、暗号文を復号化する新しい手法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一実施形態に係るデータ暗号化装置は、データを複数の平文ブロックに分割する分割部と、暗号鍵に基づくブロック暗号化方式を用いて、前記複数の平文ブロックの一部のブロックおよび前記データの暗号化のための初期値の少なくとも1つを暗号化する暗号化部と、非暗号鍵に基づくエンコード方式を用いて、前記複数の平文ブロックのうち、前記ブロック暗号化方式により暗号化されていない残りのブロックをエンコードするエンコード部とを含む。
【0007】
前記ブロック暗号化方式は、対称鍵または非対称鍵を用いる暗号化方式を含むことができる。
【0008】
前記ブロック暗号化方式は、ホワイトボックスに基づく暗号化方式を含むことができる。
【0009】
前記エンコード方式は、論理演算、一方向性関数(one−way function)、一方向性置換(one−way permutaion)、および論理関数の少なくとも1つを用いるエンコード方式を含むことができる。
【0010】
前記初期値は、初期化ベクトルまたはカウンタ値を含むことができる。
【0011】
前記暗号化部は、前記初期化ベクトルまたは前記カウンタ値を用いて前記一部のブロックを暗号化することができる。
【0012】
前記エンコード部は、前記初期化ベクトルまたは前記カウンタ値を用いて前記残りのブロックをエンコードすることができる。
【0013】
前記エンコード部は、以前に生成された暗号文ブロックを用いて、前記残りのブロックのそれぞれを順次エンコードすることができる。
【0014】
前記エンコード部は、以前に生成された暗号文ブロックおよび前記以前に生成された暗号文ブロックの生成に用いられた平文ブロックを用いて、前記残りのブロックのそれぞれを順次エンコードすることができる。
【0015】
本発明の一実施形態に係るデータ復号化装置は、暗号鍵に基づくブロック復号化方式を用いて、暗号化されたデータの一部のブロックを復号化する復号化部と、非暗号鍵に基づくデコード方式を用いて、前記暗号化されたデータの前記一部のブロックを除いた残りのブロックをデコードするデコード部とを含む。
【0016】
前記ブロック復号化方式は、対称鍵または非対称鍵を用いる復号化方式を含むことができる。
【0017】
前記ブロック復号化方式は、ホワイトボックスに基づく復号化方式を含むことができる。
【0018】
前記デコード方式は、論理演算、一方向性関数(one−way function)、一方向性置換(one−way permutaion)、および論理関数の少なくとも1つを用いるデコード方式を含むことができる。
【0019】
前記デコード部は、前記暗号化されたデータの生成に用いられた初期化ベクトルまたはカウンタ値を用いて、前記残りのブロックをデコードすることができる。
【0020】
前記デコード部は、以前に生成された平文ブロックの生成に用いられた暗号文ブロックを用いて、前記残りのブロックのそれぞれを順次デコードすることができる。
【0021】
前記デコード部は、以前に生成された平文ブロックおよび前記以前に生成された平文ブロックの生成に用いられた暗号文ブロックを用いて、前記残りのブロックのそれぞれを順次デコードすることができる。
【0022】
本発明の一実施形態に係るデータ暗号化方法は、データを複数の平文ブロックに分割するステップと、暗号鍵に基づくブロック暗号化方式を用いて、前記複数の平文ブロックの一部のブロックおよび前記データの暗号化のための初期値の少なくとも1つを暗号化するステップと、非暗号鍵に基づくエンコード方式を用いて、前記複数の平文ブロックのうち、前記ブロック暗号化方式により暗号化されていない残りのブロックをエンコードするステップとを含む。
【0023】
前記ブロック暗号化方式は、対称鍵または非対称鍵を用いる暗号化方式を含むことができる。
【0024】
前記ブロック暗号化方式は、ホワイトボックスに基づく暗号化方式を含むことができる。
【0025】
前記エンコード方式は、論理演算、一方向性関数(one−way function)、一方向性置換(one−way permutaion)、および論理関数の少なくとも1つを用いるエンコード方式を含むことができる。
【0026】
前記初期値は、初期化ベクトルまたはカウンタ値を含むことができる。
【0027】
前記暗号化するステップは、前記初期化ベクトルまたは前記カウンタ値を用いて前記一部のブロックに対する暗号文ブロックを生成することができる。
【0028】
前記エンコードするステップは、前記初期化ベクトルまたは前記カウンタ値を用いて前記残りのブロックをエンコードすることができる。
【0029】
前記エンコードするステップは、以前に生成された暗号文ブロックを用いて、前記残りのブロックのそれぞれを順次エンコードすることができる。
【0030】
前記エンコードするステップは、以前に生成された暗号文ブロックおよび前記以前に生成された暗号文ブロックの生成に用いられた平文ブロックを用いて、前記残りのブロックのそれぞれを順次エンコードすることができる。
【0031】
本発明の一実施形態に係るデータ復号化方法は、暗号鍵に基づくブロック復号化方式を用いて、暗号化されたデータの一部のブロックを復号化するステップと、非暗号鍵に基づくデコード方式を用いて、前記暗号化されたデータの前記一部のブロックを除いた残りのブロックをデコードするステップとを含む。
【0032】
前記ブロック復号化方式は、対称鍵または非対称鍵を用いる復号化方式を含むことができる。
【0033】
前記ブロック復号化方式は、ホワイトボックスに基づく復号化方式を含むことができる。
【0034】
前記デコード方式は、論理演算、一方向性関数(one−way function)、一方向性置換(one−way permutaion)、および論理関数の少なくとも1つを用いるデコード方式を含むことができる。
【0035】
前記デコードするステップは、前記暗号化されたデータの生成に用いられた初期化ベクトルまたはカウンタ値を用いて、前記残りのブロックに対する平文ブロックを生成することができる。
【0036】
前記デコードするステップは、以前に生成された平文ブロックの生成に用いられた暗号文ブロックを用いて、前記残りのブロックのそれぞれを順次デコードすることができる。
【0037】
前記デコードするステップは、以前に生成された平文ブロックおよび前記以前に生成された平文ブロックの生成に用いられた暗号文ブロックを用いて、前記残りのブロックのそれぞれを順次デコードすることができる。
【0038】
本発明の一実施形態に係る記録媒体に格納されたコンピュータプログラムは、ハードウェアと結合され、データを複数の平文ブロックに分割するステップと、暗号鍵に基づくブロック暗号化方式を用いて、前記複数の平文ブロックの一部のブロックおよび前記データの暗号化のための初期値の少なくとも1つを暗号化するステップと、非暗号鍵に基づくエンコード方式を用いて、前記複数の平文ブロックのうち、前記ブロック暗号化方式により暗号化されていない残りのブロックをエンコードするステップとを実行させる。
【0039】
本発明の一実施形態に係る記録媒体に格納されたコンピュータプログラムは、ハードウェアと結合され、暗号鍵に基づくブロック復号化方式を用いて、暗号化されたデータの一部のブロックを復号化するステップと、非暗号鍵に基づくデコード方式を用いて、前記暗号化されたデータの前記一部のブロックを除いた残りのブロックをデコードするステップとを実行させる。
【発明の効果】
【0040】
本発明によると、暗号化されたデータの生成のために、ブロック暗号化方式を用いて一部の暗号文ブロックを生成するとともに、残りの暗号文ブロックをエンコード方式により処理することで、データ暗号化のための演算量を低減することにより、大容量の暗号化の場合であっても迅速な暗号化が可能となる。
【図面の簡単な説明】
【0041】
【
図1】
図1は、本発明の一実施形態に係るデータ暗号化装置のブロック図である。
【
図2】
図2は、本発明の一実施形態に係るデータ復号化装置のブロック図である。
【
図3a】
図3aは、本発明の一実施形態に係るECB(Electronic Code Book)モードを説明するための図である。
【
図3b】
図3bは、本発明の一実施形態に係るECB(Electronic Code Book)モードを説明するための図である。
【
図4a】
図4aは、本発明の一実施形態に係るCBC(Cipher Block Chaining)モードを説明するための図である。
【
図4b】
図4bは、本発明の一実施形態に係るCBC(Cipher Block Chaining)モードを説明するための図である。
【
図5a】
図5aは、本発明の他の実施形態に係るCBCモードを説明するための図である。
【
図5b】
図5bは、本発明の他の実施形態に係るCBCモードを説明するための図である。
【
図6a】
図6aは、本発明のまた他の実施形態に係るCBCモードを説明するための図である。
【
図6b】
図6bは、本発明のまた他の実施形態に係るCBCモードを説明するための図である。
【
図7a】
図7aは、本発明の一実施形態に係るPCBC(Propagating Cipher Block Chaining)モードを説明するための図である。
【
図7b】
図7bは、本発明の一実施形態に係るPCBC(Propagating Cipher Block Chaining)モードを説明するための図である。
【
図8a】
図8aは、本発明の他の実施形態に係るPCBC(Propagating Cipher Block Chaining)モードを説明するための図である。
【
図8b】
図8bは、本発明の他の実施形態に係るPCBC(Propagating Cipher Block Chaining)モードを説明するための図である。
【
図9a】
図9aは、本発明のまた他の実施形態に係るPCBC(Propagating Cipher Block Chaining)モードを説明するための図である。
【
図9b】
図9bは、本発明のまた他の実施形態に係るPCBC(Propagating Cipher Block Chaining)モードを説明するための図である。
【
図10a】
図10aは、本発明の一実施形態に係るCFB(Cipher FeedBack)モードを説明するための図である。
【
図10b】
図10bは、本発明の一実施形態に係るCFB(Cipher FeedBack)モードを説明するための図である。
【
図11a】
図11aは、本発明の他の実施形態に係るCFB(Cipher FeedBack)モードを説明するための図である。
【
図11b】
図11bは、本発明の他の実施形態に係るCFB(Cipher FeedBack)モードを説明するための図である。
【
図12a】
図12aは、本発明のまた他の実施形態に係るCFB(Cipher FeedBack)モードを説明するための図である。
【
図12b】
図12bは、本発明のまた他の実施形態に係るCFB(Cipher FeedBack)モードを説明するための図である。
【
図13a】
図13aは、本発明の一実施形態に係るOFB(Output FeedBack)モードを説明するための図である。
【
図13b】
図13bは、本発明の一実施形態に係るOFB(Output FeedBack)モードを説明するための図である。
【
図14a】
図14aは、本発明の他の実施形態に係るOFB(Output FeedBack)モードを説明するための図である。
【
図14b】
図14bは、本発明の他の実施形態に係るOFB(Output FeedBack)モードを説明するための図である。
【
図15a】
図15aは、本発明の一実施形態に係るCTR(Counter)モードを説明するための図である。
【
図15b】
図15bは、本発明の一実施形態に係るCTR(Counter)モードを説明するための図である。
【
図16a】
図16aは、本発明の他の実施形態に係るCTR(Counter)モードを説明するための図である。
【
図16b】
図16bは、本発明の他の実施形態に係るCTR(Counter)モードを説明するための図である。
【
図17a】
図17aは、本発明のまた他の実施形態に係るCTR(Counter)モードを説明するための図である。
【
図17b】
図17bは、本発明のまた他の実施形態に係るCTR(Counter)モードを説明するための図である。
【
図18】
図18は、本発明の一実施形態に係るデータ暗号化方法のフローチャートである。
【
図19】
図19は、本発明の一実施形態に係るデータ復号化方法のフローチャートである。
【発明を実施するための形態】
【0042】
以下、図面を参照して、本発明の実施形態をより具体的に説明する。以下の詳細な説明は、本明細書に記載されている方法、装置及び/又はシステムに関する総合的な理解を助けるために提供される。但し、これらは例示に過ぎず、本発明はこれらに制限されるものではない。
【0043】
本発明の実施形態を説明するにあたり、関連する公知技術に対する具体的な説明が本発明の要旨を不明確にする虞があると判断される場合には、その詳細な説明を省略する。また、後述する用語は、本発明における機能を考慮して定義された用語であり、使用者、運用者の意図または慣例などによって異なり得る。従って、その定義は、本明細書全般に亘る内容に基づいて行われるべきである。詳細な説明で使用される用語は、単に本発明の実施形態を記述するためのものであり、決して制限的であってはならない。明確に異なる意味で使用されない限り、単数形の表現は複数形の意味を含む。本説明において、「含む」または「備える」のような表現は、如何なる特性、数字、段階、動作、要素、これらの一部または組合せを指すためのものであり、記述するもの以外に、一つ又はそれ以上の他の特性、数字、段階、動作、要素、これらの一部または組合せの存在又は可能性を排除して解釈してはならない。
【0044】
図1は、例示的な実施形態に係るデータ暗号化装置を示す図であり、
図2は、例示的な実施形態に係るデータ復号化装置を示す図である。いくつかの実施形態では、例示的なデータ暗号化装置100および例示的なデータ復号化装置200は、それぞれ別個のコンピューティング装置内に実現または包含され得る。それぞれのコンピューティング装置は、1以上のプロセッサと、該プロセッサによってアクセス可能なメモリなどのコンピュータ読み取り可能な記録媒体とを含むことができる。コンピュータ読み取り可能な記録媒体は、プロセッサの内部または外部に配置してもよく、よく知られている様々な手段によりプロセッサと接続してもよい。コンピュータ読み取り可能な記録媒体には、コンピュータ実行可能なコマンドが格納されていてもよい。プロセッサは、コンピュータ読み取り可能な記録媒体に格納されたコマンドを実行できる。そのコマンドは、プロセッサによって実行される場合、コンピューティング装置により例示的な実施形態に係る動作を実行するようにすることができる。
【0045】
図1は、本発明の一実施形態に係るデータ暗号化装置100のブロック図である。
【0046】
図1を参照すると、本発明の一実施形態に係るデータ暗号化装置100は、分割部110と、暗号化部130と、エンコード部150とを含む。
【0047】
データ暗号化装置100は、平文データ(例えば、デジタル化された平文)を暗号化し、暗号化されたデータ(例えば、デジタル化された暗号文)を生成するように構成される。
【0048】
分割部110は、暗号化の対象となる平文データを複数の平文ブロックに分割するものである。例えば、分割部110は、平文データを一定のサイズのブロック単位に分割し、複数の平文ブロックを生成することができる。その際に、例えば、分割されたブロックのサイズを揃えるために、最後のブロックに既に定義された値を詰め込むパディング(Padding)を行うことができる。
【0049】
暗号化部130は、暗号鍵に基づくブロック暗号化方式を用いて、複数の平文ブロックの一部のブロックおよび暗号化のための初期値の少なくとも1つを暗号化する。
【0050】
ここで、暗号鍵に基づくブロック暗号化方式は、対称鍵または非対称鍵を用いてデータをブロック単位で暗号化する様々な形態の暗号化方式を含むことができる。例えば、暗号化部130は、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)、3DES、Blowfish、IDEA(International Data Encryption Algorithm)、RC2、RC5、RC6、SEED、ARIA、RSA(Rivest ShamirAdleman)、DSA(Digital Signature Standard)、ECC(Elliptic Curve Cryptosystem)、Elgamal、ホワイトボックスに基づく暗号化アルゴリズムなどの対称鍵または非対称鍵を用いる公知のブロック暗号化アルゴリズムを用いて暗号分ブロックを生成することができる。
【0051】
一方、初期値は、例えば、任意のビット列である初期化ベクトル(Initialization Vector:IV)、又は平文ブロックを暗号化するたびに1ずつ増加するカウンタ値を含むことができる。このとき、暗号化部130は、後述する運用モードによって、初期値(初期化ベクトルまたは初期カウンタ値)を暗号鍵に基づくブロック暗号化方式により暗号化して暗号文ブロックを生成するか、または初期値(例えば、初期化ベクトルまたは初期カウンタ値)を用いて、平文ブロックの一部のブロックを暗号鍵に基づくブロック暗号化方式により暗号化し、暗号文ブロックを生成することができる。
【0052】
一方、エンコード部150は、非暗号鍵に基づくエンコード方式を用いて、複数の平文ブロックのうち、暗号化部130により暗号化されていない残りのブロックをエンコードする。
【0053】
その際に、一実施形態によると、非暗号鍵に基づくエンコード方式は、暗号鍵を用いずにデータを隠すことができる様々な形態のエンコード方式を含むことができる。例えば、非暗号鍵に基づくエンコード方式は、論理演算、一方向性関数(one−way function)、一方向性置換(one−way permutaion)、および複数の論理演算で構成される論理関数の少なくとも1つを用いるエンコード方式を含むことができる。
【0054】
本発明の一実施形態によると、エンコード部150は、後述する運用モードによって、初期値(例えば、初期化ベクトルまたはカウンタ値)を用いて、暗号化部130により暗号化されていない平文ブロックをエンコードし、暗号文ブロックを生成することができる。
【0055】
また、本発明の一実施形態によると、エンコード部150は、後述する運用モードによって、暗号化部130により暗号化されていない平文ブロックを順次エンコードして暗号文ブロックを生成するが、以前のステップで生成された暗号文ブロックを用いるか、又は以前のステップで生成された暗号文ブロック及び当該暗号文ブロックの生成のために用いられた平文ブロックを用いて、暗号文ブロックを生成することができる。
【0056】
一方、本発明の一実施形態によると、暗号化部130およびエンコード部150は、ブロック暗号化に利用される従来の暗号化運用モードと類似した方式により、平文データを暗号化することができる。例えば、暗号化部130およびエンコード部150は、ECB(Electronic Code Blook)モード、CBC(Cipher Block Chanining)モード、PCBC(Propagating Cipher Block Chaining)モード、CFB(cipher FeedBack)モード、OFB(Output FeedBack)モード、及びCTR(Counter)モードのいずれかの運用モードで平文データを暗号化できる。但し、従来のブロック暗号化に利用される暗号化運用モードでは、平文データの暗号化のために一つの暗号化アルゴリズムが適用されるのに対して、本発明の実施形態で利用される運用モードでは、平文データの暗号化のために、ブロック暗号化方式とエンコード方式が適用される点で差異がある。つまり、本発明の実施形態により暗号化されたデータは、暗号鍵に基づくブロック暗号化方式により生成された暗号文ブロックと、非暗号鍵に基づくエンコード方式により生成された暗号文ブロックとを含むことになる。運用モードを用いる具体的な動作の詳細については、後述することとする。
【0057】
一方、本発明の一実施形態によると、データ暗号化装置100は、初期値(例えば、初期化ベクトルまたはカウンタ値)を用いる運用モードによって暗号化されたデータを生成する場合は、初期値を生成するのための初期値生成部170をさらに含むことができる。
【0058】
一方、分割部110、暗号化部130、エンコード部150および初期値生成部170は、データ暗号化装置100内で行う機能によって分類したものである。
図1では、分割部110、暗号化部130、エンコード部150および初期値生成部170を分離された構成として示しているが、これに限定されず、具体的な動作において明確に区分されないことがある。
【0059】
また、前述の例では、暗号化部130が、公知の特定の暗号化アルゴリズムを用いて暗号化を行うとして説明したが、これに限定されるものではない。例えば、暗号化部130およびエンコード部150は、所定の運用モードに基づいて、平文データの一部を対称鍵または非対称鍵を用いてブロック暗号化方式により暗号化し、平文データの残りの一部を暗号鍵を使用しない所定のエンコード方式によりエンコードするように設計された暗号化アルゴリズムを用いて、平文データを暗号化することができる。
【0060】
一方、一実施形態では、分割部110、暗号化部130、エンコード部150、及び初期値生成部170は、1以上のプロセッサと、該プロセッサと接続されたコンピュータ読み取り可能な記録媒体とを備えるコンピューティング装置上で実現できる。コンピュータ読み取り可能な記録媒体は、プロセッサの内部または外部にあってもよく、よく知られている様々な手段によりプロセッサと接続していてもよい。コンピューティング装置内のプロセッサは、各コンピューティング装置により、本明細書に記載の例示的な実施形態により動作するようにすることができる。例えば、プロセッサは、コンピュータ読み取り可能な記録媒体に格納されたコマンドを実行することができ、コンピュータ読み取り可能な記録媒体に格納されたコマンドは、プロセッサによって実行される場合、コンピューティング装置により、本明細書に記載の例示的な実施形態による動作を実行するように構成できる。
【0061】
図2は、本発明の一実施形態に係るデータ復号化装置200のブロック図である。
【0062】
図2に示すデータ復号化装置200は、
図1のデータ暗号化装置100により暗号化されたデータを復号化して、平文データを生成するためのものである。
【0063】
図2を参照すると、本発明の一実施形態に係るデータ復号化装置200は、復号化部210とデコード部230とを含む。
【0064】
復号化部210は、暗号鍵に基づくブロック復号化方式を用いて、暗号化されたデータの一部のブロックを復号化することができる。例えば、
図1で説明したように、データ暗号化装置100により暗号化されたデータは、暗号鍵に基づくブロック暗号化方式を用いて暗号化された暗号文ブロックと、非暗号鍵に基づくエンコード方式によりエンコードされた暗号文ブロックとを含むことができる。これにより、本発明の一実施形態によると、復号化部210は、暗号化されたデータのうち、暗号鍵に基づくブロック暗号化方式を用いて暗号化された暗号文ブロックを、暗号鍵に基づくブロック復号化方式を用いて復号化を行うことができる。
【0065】
ここで、暗号鍵に基づくブロック復号化方式は、対称鍵または非対称鍵を用いて、データをブロック単位で復号化する様々な形態の復号化方式を含むことができる。例えば、復号化部210は、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)、3DES、Blowfish、IDEA(International Data Encryption Algorithm)、RC2、RC5、RC6、SEED、ARIA、RSA(Rivest Shamir Adleman)、DSA(Digital Signature Standard)、ECC(Elliptic Curve Cryptosystem)、ELGmal、ホワイトボックス(Whitebox)に基づく暗号化アルゴリズムなどの対称鍵または非対称鍵を用いる公知のブロック暗号化アルゴリズムを用いて、暗号文ブロックの一部のブロックを復号化することができる。
【0066】
一方、デコード部230は、非暗号鍵に基づくデコード方式を用いて、暗号化されたデータのうち、復号化部210により復号化されていない暗号文ブロックをデコードすることができる。そのとき、非暗号鍵に基づくデコード方式は、論理演算、一方向性関数、一方向性置換、および論理関数の少なくとも1つを用いるデコード方式を含むことができる。
【0067】
本発明の一実施形態によると、デコード部230は、暗号化されたデータを復号化するための運用モードによって、初期値またはカウンタ値を用いて、復号化部210により復号化されていない暗号文ブロックをデコードし、平文ブロックを生成することができる。
【0068】
また、本発明の一実施形態によると、デコード部230は、暗号化されたデータを復号化するための運用モードによって、復号化部230により復号化されていない暗号文ブロックを順次デコードして平文ブロックを生成するが、以前のステップで生成された平文ブロックの生成に用いられた暗号文ブロックを用いるか、又は以前のステップで生成された平文ブロッ及び当該平文ブロックの生成のために用いられた暗号文ブロックを用いて、平文ブロックを生成することができる。
【0069】
一方、本発明の一実施形態によると、復号化部210およびデコード部230は、暗号化されたデータを生成するためにデータ暗号化装置100によって使用された運用モードと同一の運用モードを用いて、暗号化されたデータを復号化することができる。例えば、復号化部210およびデコード部230は、ECB(Electronic Code Blook)モード、CBC(Cipher Block Chanining)モード、PCBC(Propagating Cipher Block Chaining)モード、CFB(cipher FeedBack)モード、OFB(Output FeedBack)モード、およびCTR(Counter)モードのいずれかの運用モードで暗号化されたデータを復号化することができる。この詳細については、後述することとする。
【0070】
一方、本発明の一実施形態によると、データ復号化装置200は、初期値(例えば、初期化ベクトルまたはカウンタ値)を用いる運用モードによって平文データを生成する場合は、初期値を生成するための初期値生成部250をさらに備えることができる。
【0071】
一方、復号化部210、デコード部230及び初期値生成部250は、データ復号化装置200内で行う機能によって分類したものである。
図2では、復号化部210、デコード部230及び初期値生成部250を分離された構成として示しているが、これに限定されるものではなく、具体的な動作において明確に区分されないことがある。
【0072】
また、前述の例では、復号化部210が、公知の特定の暗号化アルゴリズムを用いて暗号化を行うとして説明したが、これに限定されるものではない。例えば、復号化部210およびデコード部230は、所定の運用モードに基づいて、暗号化されたデータの一部を対称鍵または非対称鍵を用いてブロック復号化方式で復号化し、暗号化されたデータの残りの一部を、暗号鍵を使用しない所定のデコード方式によりデコードするように設計された復号化アルゴリズムを用いて、暗号化されたデータから平文データを生成することができる。
【0073】
一方、一実施形態では、復号化部210、エンコード部230及び初期値生成部250は、1以上のプロセッサと、該プロセッサと接続されたコンピュータ読み取り可能な記録媒体とを備えるコンピューティング装置上で実現できる。コンピュータ読み取り可能な記録媒体は、プロセッサの内部または外部にあってもよく、よく知られている様々な手段によりプロセッサと接続していてもよい。コンピューティング装置内のプロセッサは、各コンピューティング装置により、本明細書に記載の例示的な実施形態により動作するようにすることができる。例えば、プロセッサは、コンピュータ読み取り可能な記録媒体に格納されたコマンドを実行することができ、コンピュータ読み取り可能な記録媒体に格納されたコマンドは、プロセッサによって実行される場合、コンピューティング装置により、本明細書に記載の例示的な実施形態による動作を実行するように構成できる。
【0074】
以下では、各運用モードによるデータ暗号化装置100及びデータ復号化装置200の例示的な動作について、より詳細に説明する。以下の実施例では、説明を容易にするために、ブロック暗号化方式としてAESアルゴリズムを用いると共に、エンコード方式として、XOR演算またはXOR演算および論理関数を用いるとして例示するが、これに限定されるものではない。
【0075】
なお、以下の実施例では、最初の暗号文の生成のために、ブロック暗号化方式を用いるとして説明するが、これに限定されるものではなく、暗号化速度などを考慮し、2以上の平文ブロックをブロック暗号化方式により暗号化することも可能である。
【0076】
1.ECBモードを利用した実施例
本発明の一実施例によると、データ暗号化装置100は、
図3aに示す例のようにECBモードを利用してデータを暗号化することができる。
【0077】
図3aに示すように、暗号化部130は、複数の平文ブロックのうち、最初の平文ブロックである平文ブロック1にブロック暗号アルゴリズムを適用し、暗号文ブロック1を生成する。その後、エンコード部150は、平文ブロック2、平文ブロック3及び平文ブロック4のそれぞれに論理関数を適用し、暗号文ブロック2、暗号文ブロック3及び暗号文ブロック4を生成することができる。
【0078】
データ復号化装置200は、
図3aの例により暗号化されたデータに対して、
図3bの例のように復号化動作を行うことができる。
【0079】
図3bを参照すると、復号化部210は、複数の暗号文ブロックのうち、最初の暗号文ブロックである暗号文ブロック1にブロック暗号アルゴリズムを適用し、平文ブロック1を生成する。その後、デコード部230は、暗号文ブロック2、暗号文ブロック3及び暗号文ブロック4のそれぞれに論理関数を適用し、平文ブロック2、平文ブロック3及び平文ブロック4を生成することができる。
【0080】
2.CBCモードを利用した実施例
本発明の一実施例によると、データ暗号化装置100は、
図4aに示す例のようにCBCモードを利用してデータを暗号化することができる。
【0081】
図4aを参照すると、暗号化部130は、最初の平文ブロック(平文ブロック1)を初期化ベクトルと排他的論理和(XOR)を行い、それに対してAESアルゴリズムを適用し、最初の暗号文ブロック(暗号文ブロック1)を生成することができる。
【0082】
その後、エンコード部150は、平文ブロック2〜平文ブロック4のそれぞれを、直前に生成された暗号文ブロックとXORして、暗号文ブロック2〜暗号文ブロック4を生成することができる。
【0083】
具体的には、
図4aに示す暗号化動作は、次の数学式1のように表すことができる。
【0084】
【数1】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、E
BLOCKはブロック暗号化アルゴリズム、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0085】
データ復号化装置200は、
図4aの例により暗号化されたデータに対して、
図4bの例のように復号化動作を行うことができる。
【0086】
図4bを参照すると、復号化部210は、暗号化されたデータの最初のブロック(暗号文ブロック1)にAESアルゴリズムを用いて復号化を行った後、初期化ベクトルとXORして、最初の平文ブロック(平文ブロック1)を生成することができる。
【0087】
その後、デコード部230は、暗号文ブロック2〜暗号文ブロック4のそれぞれに対して、直前の暗号文ブロックとXORして、平文ブロック2〜平文ブロック4を生成することができる。
【0088】
具体的には、
図4bに示す復号化動作は、次の数学式2のように表すことができる。
【0089】
【数2】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、D
BLOCKはブロック復号化アルゴリズム、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0090】
一方、本発明の他の実施例によると、データ暗号化装置100は、
図5aに示す例のようにCBCモードを利用してデータを暗号化することができる。
【0091】
図5aを参照すると、暗号化部130は、最初の平文ブロック(平文ブロック1)を初期化ベクトルと排他的論理和(XOR)を行い、それに対してAESアルゴリズムを適用し、最初の暗号文ブロック(暗号文ブロック1)を生成することができる。
【0092】
その後、エンコード部150は、平文ブロック2〜平文ブロック4のそれぞれを、直前に生成された暗号文ブロックとXORした後、それに対して論理関数を適用し、暗号文ブロック2〜暗号文ブロック4を生成することができる。
【0093】
具体的には、
図5aに示す暗号化動作は、次の数学式3のように表すことができる。
【0094】
【数3】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、E
BLOCKはブロック暗号化アルゴリズム、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0095】
一方、データ復号化装置200は、
図5aの例により暗号化されたデータに対して、
図5bに示すように復号化動作を行うことができる。
【0096】
図5bを参照すると、復号化部210は、暗号化されたデータの最初のブロック(暗号文ブロック1)にAESアルゴリズムを用いて復号化を行った後、初期化ベクトルとXORして、最初の平文ブロック(平文ブロック1)を生成することができる。
【0097】
その後、デコード部230は、暗号文ブロック2〜暗号文ブロック4のそれぞれに論理関数を適用した後、直前の暗号文ブロックとXORして、平文ブロック2〜平文ブロック4を生成することができる。
【0098】
具体的には、
図5bに示す復号化動作は、次の数学式4のように表すことができる。
【0099】
【数4】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、D
BLOCKはブロック復号化アルゴリズム、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0100】
一方、本発明のまた他の実施例によると、データ暗号化装置100は、
図6aに示す例のようにCBCモードを利用してデータを暗号化することができる。
【0101】
図6aを参照すると、暗号化部130は、初期化ベクトルIVにAESアルゴリズムを適用し、最初の暗号文ブロック(暗号文ブロック0)を生成することができる。
【0102】
その後、エンコード部150は、平文ブロック1と初期化ベクトルIVをXORした後、論理関数を適用して暗号文ブロック1を生成することができる。
【0103】
その後、エンコード部150は、平文ブロック2〜平文ブロック4のそれぞれを、以前に生成された暗号文ブロックとXORした後、それに対して論理関数を適用し、暗号文ブロック2〜暗号文ブロック4を生成することができる。
【0104】
具体的には、
図6aに示す暗号化動作は、次の数学式5のように表すことができる。
【0105】
【数5】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、E
BLOCKはブロック暗号化アルゴリズム、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0106】
一方、データ復号化装置200は、
図6aの例により暗号化されたデータに対して、
図6bに示すように復号化動作を行うことができる。
【0107】
図6bを参照すると、復号化部210は、暗号化されたデータの最初のブロック(暗号文ブロック0)にAESアルゴリズムを用いて復号化を行い、初期化ベクトルIVを生成することができる。
【0108】
その後、デコード部230は、暗号文ブロック1に論理関数を適用した後、初期化ベクトルとXORして平文ブロック1を生成することができる。
【0109】
その後、デコード部230は、暗号文ブロック2〜暗号文ブロック4のそれぞれに論理関数を適用した後、直前の暗号文ブロックとXORして、平文ブロック2〜平文ブロック4を生成することができる。
【0110】
具体的には、
図6bに示す復号化動作は、次の数学式6のように表すことができる。
【0111】
【数6】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、D
BLOCKはブロック復号化アルゴリズム、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0112】
3.PCBCモードを利用した実施例
一方、本発明の一実施例によると、データ暗号化装置100は、
図7aに示す例のようにPCBCモードを利用してデータを暗号化することができる。
【0113】
図7aを参照すると、暗号化部130は、データの最初の平文ブロック(平文ブロック1)を初期化ベクトルIVと排他的論理和(XOR)をし、それに対してAESアルゴリズムを適用し、最初の暗号文ブロック(暗号文ブロック1)を生成することができる。
【0114】
その後、エンコード部150は、平文ブロック2〜平文ブロック4のそれぞれを、直前に生成された暗号文ブロック及び直前の平文ブロックとXORして、暗号文ブロック2〜暗号文ブロック4を生成することができる。
【0115】
具体的には、
図7aに示す暗号化動作は、次の数学式7のように表すことができる。
【0116】
【数7】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、E
BLOCKはブロック暗号化アルゴリズム、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0117】
一方、データ復号化装置200は、
図7aの例により暗号化されたデータに対して、
図7bの例のように復号化動作を行うことができる。
【0118】
図7bを参照すると、復号化部210は、暗号化されたデータの最初のブロック(暗号文ブロック1)にAESアルゴリズムを用いて復号化を行った後、初期化ベクトルIVとXORして、最初の平文ブロック(平文ブロック1)を生成することができる。
【0119】
その後、デコード部230は、暗号文ブロック2〜暗号文ブロック4のそれぞれを、直前に生成された平文ブロック及び直前の暗号文ブロックとXORして、平文ブロック2〜平文ブロック4を生成することができる。
【0120】
具体的には、
図7bに示す復号化動作は、次の数学式8のように表すことができる。
【0121】
【数8】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、D
BLOCKはブロック復号化アルゴリズム、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0122】
一方、本発明の他の実施例によると、データ暗号化装置100は、
図8aに示す例のようにPCBCモードを利用してデータを暗号化することができる。
【0123】
図8aを参照すると、暗号化部130は、データの最初の平文ブロック(平文ブロック1)を初期化ベクトルIVと排他的論理和(XOR)を行い、それに対してAESアルゴリズムを適用して、最初の暗号文ブロック(暗号文ブロック1)を生成することができる。
【0124】
その後、エンコード部150は、平文ブロック2〜平文ブロック4のそれぞれを、直前に生成された暗号文ブロック及び直前の平文ブロックとXORした後、それに対して論理関数を適用し、暗号文ブロック2〜暗号文ブロック4を生成することができる。
【0125】
具体的には、
図8aに示す暗号化動作は、次の数学式9のように表すことができる。
【0126】
【数9】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、E
BLOCKはブロック暗号化アルゴリズム、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0127】
一方、データ復号化装置200は、
図9aの例により暗号化されたデータに対して、
図8bの例のように復号化動作を行うことができる。
【0128】
図8bを参照すると、復号化部210は、暗号化されたデータの最初のブロック(暗号文ブロック1)にAESアルゴリズムを用いて復号化を行った後、初期化ベクトルIVとXORして、最初の平文ブロック(平文ブロック1)を生成することができる。
【0129】
その後、デコード部230は、暗号文ブロック2〜暗号文ブロック4のそれぞれに論理関数を適用した後、直前に生成された平文ブロック及び直前の暗号文ブロックとXORして、平文ブロック2〜平文ブロック4を生成することができる。
【0130】
具体的には、
図8bに示す復号化動作は、次の数学式10のように表すことができる。
【0131】
【数10】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、D
BLOCKはブロック復号化アルゴリズム、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0132】
一方、本発明のまた他の実施例によると、データ暗号化装置100は、
図9aに示す例のようにPCBCモードを利用してデータを暗号化することができる。
【0133】
図9aを参照すると、暗号化部130は、データの最初の平文ブロック(平文ブロック1)を初期化ベクトルIVと排他的論理和(XOR)を行い、それに対してAESアルゴリズムを適用して、最初の暗号文ブロック(暗号文ブロック0)を生成することができる。
【0134】
その後、エンコード部150は、平文ブロック1と初期化ベクトルIVをXORした後、論理関数を適用して、暗号文ブロック1を生成することができる。
【0135】
その後、エンコード部150は、平文ブロック2〜平文ブロック4のそれぞれを、直前に生成された暗号文ブロック及び直前の平文ブロックとXORした後、それに対して論理関数を適用し、暗号文ブロック2〜暗号文ブロック4を生成することができる。
【0136】
具体的には、
図9aに示す暗号化動作は、次の数学式11のように表すことができる。
【0137】
【数11】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、E
BLOCKはブロック暗号化アルゴリズム、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0138】
一方、データ復号化装置200は、
図9aの例により暗号化されたデータに対して、
図9bの例のように復号化動作を行うことができる。
【0139】
図9bを参照すると、復号化部210は、暗号化されたデータの最初のブロック(暗号文ブロック0)にAESアルゴリズムを用いて復号化を行い、初期化ベクトルIVを生成することができる。
【0140】
デコード部230は、暗号文ブロック1に論理関数を適用した後、初期化ベクトルIVとXORして、最初の平文ブロック(平文ブロック1)を生成することができる。
【0141】
その後、デコード部230は、暗号文ブロック2〜暗号文ブロック4のそれぞれに論理関数を適用した後、直前に生成された平文ブロック及び直前の暗号文ブロックとXORして、平文ブロック2〜平文ブロック4を生成することができる。
【0142】
具体的には、
図9bに示す復号化動作は、次の数学式12のように表すことができる。
【0143】
【数12】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、D
BLOCKはブロック復号化アルゴリズム、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0144】
4. CFBモードを利用した実施例
本発明の一実施例によると、データ暗号化装置100は、
図10aに示す例のようにCFBモードを利用してデータを暗号化することができる。
【0145】
図10aを参照すると、暗号化部130は、初期化ベクトルにAESアルゴリズムを適用した後、最初の平文ブロック(平文ブロック1)とXORして、最初の暗号文ブロック(暗号文ブロック1)を生成することができる。
【0146】
その後、エンコード部150は、平文ブロック2〜平文ブロック4のそれぞれを、直前に生成された暗号文ブロックとXORして、暗号文ブロック2〜暗号文ブロック4を生成することができる。
【0147】
具体的には、
図10aに示す暗号化動作は、次の数学式13のように表すことができる。
【0148】
【数13】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、E
BLOCKはブロック暗号化アルゴリズム、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0149】
一方、データ復号化装置200は、
図10aの例により暗号化されたデータに対して、
図10bの例のように復号化動作を行うことができる。
【0150】
図10bを参照すると、復号化部210は、初期化ベクトルIVにAESアルゴリズムを適用した後、最初の暗号文ブロック(暗号文ブロック1)とXORして、最初の平文ブロック(平文ブロック1)を生成することができる。
【0151】
その後、デコード部230は、暗号文ブロック2〜暗号文ブロック4のそれぞれを、直前の暗号文ブロックとXORして、平文ブロック2〜平文ブロック4を生成することができる。
【0152】
具体的には、
図10bに示す復号化動作は、次の数学式14のように表すことができる。
【0153】
【数14】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、D
BLOCKはブロック復号化アルゴリズム、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0154】
本発明の他の実施例によると、データ暗号化装置100は、
図11aに示す例のようにCFBモードを利用してデータを暗号化することができる。
【0155】
図11aを参照すると、暗号化部130は、初期化ベクトルにAESアルゴリズムを適用した後、最初の平文ブロック(平文ブロック1)とXORして、最初の暗号文ブロック(暗号文ブロック1)を生成することができる。
【0156】
その後、エンコード部150は、直前に生成された暗号文ブロックに論理関数を適用した後、平文ブロック2〜平文ブロック4のそれぞれとXORして、暗号文ブロック2〜暗号文ブロック4を生成することができる。
【0157】
具体的には、
図11aに示す暗号化動作は、次の数学式15のように表すことができる。
【0158】
【数15】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、E
BLOCKはブロック暗号化アルゴリズム、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0159】
一方、データ復号化装置200は、
図11aの例により暗号化されたデータに対して、
図11bの例のように復号化動作を行うことができる。
【0160】
図10bを参照すると、復号化部210は、初期化ベクトルIVにAESアルゴリズムを適用した後、最初の暗号文ブロック(暗号文ブロック1)とXORして、最初の平文ブロック(平文ブロック1)を生成することができる。
【0161】
その後、デコード部230は、以前の暗号文ブロックに論理関数を適用した後、ブロック2〜暗号文ブロック4のそれぞれとXORして、平文ブロック2〜平文ブロック4を生成することができる。
【0162】
具体的には、
図11bに示す復号化動作は、次の数学式16のように表すことができる。
【0163】
【数16】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、D
BLOCKはブロック復号化アルゴリズム、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0164】
本発明のまた他の実施例によると、データ暗号化装置100は、
図12aに示す例のようにCFBモードを利用してデータを暗号化することができる。
【0165】
図12aを参照すると、暗号化部130は、初期化ベクトルIVにAESアルゴリズムを適用し、最初の暗号文ブロック(暗号文ブロック0)を生成することができる。
【0166】
その後、エンコード部150は、初期化ベクトルIVを最初の平文ブロック(平文ブロック1)とXORして、最初の暗号文ブロック(暗号文ブロック1)を生成することができる。
【0167】
その後、エンコード部150は、直前に生成された暗号文ブロックに論理関数を適用した後、平文ブロック2〜平文ブロック4のそれぞれとXORして、暗号文ブロック2〜暗号文ブロック4を生成することができる。
【0168】
具体的には、
図12aに示す暗号化動作は、次の数学式17のように表すことができる。
【0169】
【数17】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、E
BLOCKはブロック暗号化アルゴリズム、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0170】
一方、データ復号化装置200は、
図12aの例により暗号化されたデータに対して、
図12bの例のように復号化動作を行うことができる。
【0171】
図12bを参照すると、復号化部210は、最初の暗号文ブロック(暗号文ブロック0)にAESアルゴリズムを適用し、初期化ベクトルIVを生成することができる。
【0172】
その後、デコード部230は、初期化ベクトルIVと暗号文ブロック1をXORして、最初の平文ブロック(平文ブロック1)を生成することができる。
【0173】
その後、デコード部230は、以前の暗号文ブロックに論理関数を適用した後、ブロック2〜暗号文ブロック4のそれぞれとXORして、平文ブロック2〜平文ブロック4を生成することができる。
【0174】
具体的には、
図12bに示す復号化動作は、次の数学式18のように表すことができる。
【0175】
【数18】
ここで、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、D
BLOCKはブロック復号化アルゴリズム、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0176】
5.OFBモードを利用した実施例
本発明の一実施例によると、データ暗号化装置100は、
図13aに示す例のようにOFBモードを利用してデータを暗号化することができる。
【0177】
図13aを参照すると、暗号化部130は、初期化ベクトルIVにAESアルゴリズムを適用した後、最初の平文ブロック(平文ブロック1)とXORして、最初の暗号文ブロック(暗号文ブロック1)を生成することができる。
【0178】
その後、エンコード部150は、初期化ベクトルIVにAESアルゴリズムを適用して生成されたブロックに論理関数を繰り返し適用した後、平文ブロック2〜平文ブロック4のそれぞれとXORして、暗号文ブロック2〜暗号文ブロック4を生成することができる。
【0179】
具体的には、
図13aに示す暗号化動作は、次の数学式19のように表すことができる。
【0180】
【数19】
ここで、E
BLOCKはブロック暗号化アルゴリズム、IVは初期化ベクトル、O
1は初期化ベクトルにブロック暗号化アルゴリズムを適用して生成されたブロック、C
iはi番目の暗号文ブロック、O
iはO
1に初期化ベクトルに論理関数をi回適用して生成されたブロック、P
iはi番目の平文ブロック、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0181】
一方、データ復号化装置200は、
図13aの例により暗号化されたデータに対して、
図13bの例のように復号化動作を行うことができる。
【0182】
図13bを参照すると、復号化部210は、初期化ベクトルIVにAESアルゴリズムを適用した後、最初の暗号文ブロック(暗号文ブロック1)とXORして、最初の平文ブロック(平文ブロック1)を生成することができる。
【0183】
その後、デコード部230は、初期化ベクトルIVにAESアルゴリズムを適用して生成されたブロックに論理関数を繰り返し適用した後、暗号文ブロック2〜暗号文ブロック4のそれぞれとXORして、平文ブロック2〜平文ブロック4を生成することができる。
【0184】
具体的には、
図13bに示す復号化動作は、次の数学式20のように表すことができる。
【0185】
【数20】
ここで、E
BLOCKはブロック暗号化アルゴリズム、IVは初期化ベクトル、O
1は初期化ベクトルにブロック暗号化アルゴリズムを適用して生成されたブロック、C
iはi番目の暗号文ブロック、O
iはO
1に初期化ベクトルに論理関数をi回適用して生成されたブロック、P
iはi番目の平文ブロック、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0186】
本発明の他の実施例によると、データ暗号化装置100は、
図14aに示す例のようにOFBモードを利用してデータを暗号化することができる。
【0187】
図14aを参照すると、暗号化部130は、初期化ベクトルIVにAESアルゴリズムを適用し、最初の暗号文ブロック(暗号文ブロック0)を生成することができる。
【0188】
その後、エンコード部150は、初期化ベクトルIVに論理関数を繰り返し適用した後、平文ブロック1〜平文ブロック4のそれぞれとXORして、暗号文ブロック1〜暗号文ブロック4を生成することができる。
【0189】
具体的には、
図14aに示す暗号化動作は、次の数学式21のように表すことができる。
【0190】
【数21】
ここで、C
iはi番目の暗号文ブロック、O
iは初期化ベクトルに論理関数をi回適用して生成されたブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、E
BLOCKはブロック暗号化アルゴリズム、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0191】
一方、データ復号化装置200は、
図14aの例により暗号化されたデータに対して、
図14bの例のように復号化動作を行うことができる。
【0192】
図14bを参照すると、復号化部210は、最初の暗号文ブロック(暗号文ブロック0)にAESアルゴリズムを適用し、初期化ベクトルIVを生成することができる。
【0193】
その後、デコード部230は、生成された初期化ベクトルに論理関数を繰り返し適用した後、暗号文ブロック1〜暗号文ブロック4のそれぞれとXORして、平文ブロック1〜平文ブロック4を生成することができる。
【0194】
具体的には、
図14bに示す復号化動作は、次の数学式22のように表すことができる。
【0195】
【数22】
ここで、C
iはi番目の暗号文ブロック、O
iは初期化ベクトルに論理関数をi回適用して生成されたブロック、P
iはi番目の平文ブロック、IVは初期化ベクトル、E
BLOCKはブロック暗号化アルゴリズム、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0196】
6.カウンタ(CTR)モードを利用した実施例
本発明の一実施例によると、データ暗号化装置100は、
図15aに示す例のようにカウンタモードを利用してデータを暗号化することができる。
【0197】
図15aを参照すると、暗号化部130は、初期カウンタ値(CTR)にAESアルゴリズムを適用し、暗号文ブロック0を生成することができる。
【0198】
その後、エンコード部150は、初期カウンタ値(CTR)を平文ブロック1とXORして、暗号文ブロック1を生成することができる。
【0199】
同様に、エンコード部150は、i番目の平文ブロックをi番目のカウンタ値(例えば、
図15aに示すようなCTR+i−1)とXORして、i番目の暗号文ブロックを生成することができる。このとき、エンコード部150は、各暗号文ブロックを並列的に生成できる。
【0200】
具体的には、
図15aに示す暗号化動作は、次の数学式23のように表すことができる。
【0201】
【数23】
ここで、E
BLOCKはブロック暗号化アルゴリズム、CTRは初期カウンタ値、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0202】
一方、データ復号化装置200は、
図15aの例により暗号化されたデータに対して、
図15bの例のように復号化動作を行うことができる。
【0203】
図15bを参照すると、復号化部210は、暗号文ブロック0にAESアルゴリズムを適用して初期カウンタ値を生成することができる。
【0204】
その後、エンコード部150は、初期カウンタ値CTRを暗号文ブロック1とXORして平文ブロック1を生成することができる。
【0205】
同様に、エンコード部150は、i番目の暗号文ブロックをi番目のカウンタ値(例えば、
図15bに示すようなCTR+i−1)とXORして、i番目の平文ブロックを生成することができる。このとき、エンコード部150は、各平文ブロックを並列的に生成することができる。
【0206】
具体的には、
図15bに示す復号化動作は、次の数学式24のように表すことができる。
【0207】
【数24】
ここで、E
BLOCKはブロック暗号化アルゴリズム、CTRは初期カウンタ値、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0208】
一方、本発明の他の実施例によると、データ暗号化装置100は、
図16aに示す例のようにカウンタモードを利用してデータを暗号化することができる。
【0209】
図16aを参照すると、暗号化部130は、初期カウンタ値CTRにAESアルゴリズムを適用し、暗号文ブロック0を生成することができる。
【0210】
その後、エンコード部150は、初期カウンタ値CTRに論理関数を適用した後、平文ブロック1とXORして、暗号文ブロック1を生成することができる。
【0211】
同様に、エンコード部150は、i番目のカウンタ値(例えば、
図16aに示すようなCTR+i−1)に論理関数を適用した後、i番目の平文ブロックとXORして、i番目の暗号文ブロックを生成することができる。このとき、エンコード部150は、各暗号文ブロックを並列的に生成できる。
【0212】
具体的には、
図16aに示す暗号化動作は、次の数学式25のように表すことができる。
【0213】
【数25】
ここで、E
BLOCKはブロック暗号化アルゴリズム、CTRは初期カウンタ値、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0214】
一方、データ復号化装置200は、
図16aの例により暗号化されたデータに対して、
図16bの例のように復号化動作を行うことができる。
【0215】
図16bを参照すると、復号化部210は、最初の暗号文ブロック(暗号文ブロック0)にAESアルゴリズムを適用して、初期カウンタ値CTRを生成することができる。
【0216】
その後、エンコード部150は、初期カウンタ値CTRに論理関数を適用した後、暗号文ブロック1とXORして平文ブロック1を生成することができる。
【0217】
同様に、エンコード部150は、i番目のカウンタ値(例えば、
図16bに示すようなCTR+i−1)に論理関数を適用した後、i番目の暗号文ブロックとXORしてi番目の平文ブロックを生成することができる。このとき、エンコード部150は、各平文ブロックを並列的に生成できる。
【0218】
具体的には、
図16bに示す復号化動作は、次の数学式26のように表すことができる。
【0219】
【数26】
ここで、E
BLOCKはブロック暗号化アルゴリズム、CTRは初期カウンタ値、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0220】
一方、本発明の他の実施例によると、データ暗号化装置100は、
図17aに示す例のようにカウンタモードを利用してデータを暗号化することができる。
【0221】
図17aを参照すると、暗号化部130は、初期カウンタ値CTRにAESアルゴリズムを適用した後、平文ブロック1とXORして、暗号文ブロック1を生成することができる。
【0222】
その後、エンコード部150は、i番目のカウンタ値(例えば、
図17aに示すようなCTR+i−1)に論理関数を適用した後、i番目の平文ブロックとXORして、i番目の暗号文ブロックを生成することができる。このとき、エンコード部150は、各暗号文ブロックを並列的に生成できる。
【0223】
具体的には、
図17aに示す暗号化動作は、次の数学式27のように表すことができる。
【0224】
【数27】
ここで、E
BLOCKはブロック暗号化アルゴリズム、CTRは初期カウンタ値、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0225】
一方、データ復号化装置200は、
図17aの例により暗号化されたデータに対して、
図17bの例のように復号化動作を行うことができる。
【0226】
図17bを参照すると、復号化部210は、暗号文ブロック1にAESアルゴリズムを適用した後、暗号文ブロック1とXORして、平文ブロック1を生成することができる。
【0227】
その後、エンコード部150は、i番目のカウンタ値(例えば、
図17bに示すようなCTR+i−1)に論理関数を適用した後、i番目の暗号文ブロックとXORして、i番目の平文ブロックを生成することができる。このとき、エンコード部150は、各平文ブロックを並列的に生成できる。
【0228】
具体的には、
図17bに示す復号化動作は、次の数学式28のように表すことができる。
【0229】
【数28】
ここで、E
BLOCKはブロック暗号化アルゴリズム、CTRは初期カウンタ値、C
iはi番目の暗号文ブロック、P
iはi番目の平文ブロック、Fは論理関数、XORはブロック間のXOR演算(例えば、各ブロックがビットシーケンスである場合は、ビットごとのXOR演算を示す。)を示す。
【0230】
図18は、本発明の一実施形態に係るデータ暗号化方法のフローチャートである。
【0231】
図18に示す方法は、例えば、
図1に示すデータ暗号化装置100により実行できる。
【0232】
図18を参照すると、データ暗号化装置100は、暗号化の対象となる平文データを複数の平文ブロックに分割する(1810)。
【0233】
その後、データ暗号化装置100は、暗号鍵に基づくブロック暗号化方式を用いて、分割された複数の平文ブロックの一部のブロックおよび初期値の少なくとも1つを暗号化する(1820)。
【0234】
その後、データ暗号化装置100は、非暗号鍵に基づくエンコード方式を用いて、分割された複数の平文ブロックのうち、ブロック暗号化方式により暗号化されていない残りのブロックをエンコードする(1830)。
【0235】
図19は、本発明の一実施形態に係るデータ復号化方法のフローチャートである。
【0236】
図19に示す方法は、例えば、
図2に示すデータ復号化装置200により実行できる。
【0237】
図19を参照すると、データ復号化装置200は、暗号鍵に基づくブロック復号化方式を用いて、暗号化されたデータの一部のブロックおよび初期値の少なくとも1つを復号化する(1910)。
【0238】
その後、データ復号化装置200は、非暗号鍵に基づくデコード方式を用いて、暗号化されたデータのうち、ブロック復号化方式により復号化されていない残りのブロックをデコードする(1920)。
【0239】
一方、所定の実施例は、本明細書に記載されているプロセスをコンピュータ上で実行するためのプログラムを含むコンピュータ読み取り可能な記録媒体を含むことができる。このコンピュータ読み取り可能な記録媒体は、プログラム命令、ローカルデータファイル、ローカルデータ構造などを単独に又は組み合わせて備えることができる。そのコンピュータ読み取り可能な記録媒体は、本発明のために特別に設計されて構成されたものであり得る。コンピュータ読み取り可能な記録媒体の例には、ハードディスク、フロッピーディスク及び磁気テープなどの磁気媒体、CD−ROM、DVDなどの光記録媒体、フロプティカルディスクのような磁気−光媒体、および、ロム、ラム、フラッシュメモリなどのプログラム命令を格納して実行するように特別に構成されたハードウェアデバイスが含まれる。プログラム命令の例には、コンパイラーによって作成されるような機械語コードのみならず、インタープリターなどを使用してコンピュータにより実行できる高級言語コードを含むことができる。
【0240】
以上、代表的な実施形態により本発明を詳細に説明したが、当業者であれば、本発明の範疇を逸脱しない範囲内で、前述した実施形態に対する様々な変形が可能であることを理解するはずである。従って、本発明の権利範囲は、説明した実施形態に限定されてはならず、後述する特許請求の範囲だけでなく、その特許請求の範囲と均等なものによって定められるべきである。
【符号の説明】
【0241】
100:データ暗号化装置
110:分割部
130:暗号化部
150:エンコード部
170:初期値生成部
200:データ復号化装置
210:復号化部
230:デコード部
250:初期値生成部
【国際調査報告】