JP6617375B2 - データ変換装置 - Google Patents

データ変換装置 Download PDF

Info

Publication number
JP6617375B2
JP6617375B2 JP2018101447A JP2018101447A JP6617375B2 JP 6617375 B2 JP6617375 B2 JP 6617375B2 JP 2018101447 A JP2018101447 A JP 2018101447A JP 2018101447 A JP2018101447 A JP 2018101447A JP 6617375 B2 JP6617375 B2 JP 6617375B2
Authority
JP
Japan
Prior art keywords
data
conversion
encryption
processing unit
information processing
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
JP2018101447A
Other languages
English (en)
Other versions
JP2018128706A (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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2018101447A priority Critical patent/JP6617375B2/ja
Publication of JP2018128706A publication Critical patent/JP2018128706A/ja
Application granted granted Critical
Publication of JP6617375B2 publication Critical patent/JP6617375B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、データ変換装置に関し、特に、一対の情報処理ユニット間における認証処理や秘匿通信への利用に適した暗号化処理を伴うデータ変換を行う装置に関する。
一対の情報処理ユニットが相互に通信を開始する場合、事前に相手方ユニットの正当性を確認する認証処理が不可欠である。このような認証処理として、現在最も普及している方法は、ランダムコードのデータ変換を伴うチャレンジレスポンス方式の認証方法である。
具体的には、第1の情報処理ユニットが第2の情報処理ユニットの正当性を確認する場合、まず、第1の情報処理ユニットが「チャレンジ」と呼ばれるランダムコードを発生させ、これを第2の情報処理ユニットに送信する。第2の情報処理ユニットは、この「チャレンジ」を所定のデータ変換装置を用いて変換することにより「レスポンス」と呼ばれる認証トークンを生成し、これを第1の情報処理ユニットに返信する。一方、第1の情報処理ユニットにおいても、「チャレンジ」を同一のデータ変換装置を用いて変換し、その結果が、返信されてきた「レスポンス」に一致するか否かを判定する。両者が一致すれば、第2の情報処理ユニットを正当な装置として認証することができる。たとえば、下記の特許文献1および特許文献2には、このようなチャレンジレスポンス方式の認証方法が開示されている。
また、上記認証方法の基本原理は、秘匿通信に応用することも可能である。たとえば、第1の情報処理ユニットから第2の情報処理ユニットに対して、情報を秘匿状態で送信する場合、第1の情報処理ユニットにおいて、カウンターなどで発生させたデータストリームを所定のデータ変換装置を用いて鍵ストリームに変換し、この鍵ストリームを用いて情報を暗号化して送信するようにすればよい。第2の情報処理ユニットでは、第1の情報処理ユニットと同じデータストリームを発生させ、これを同じデータ変換装置を用いて鍵ストリームに変換し、この鍵ストリームを用いて情報を復号すればよい。
上記認証方法や秘匿通信では、データ変換装置で実行される変換処理の秘匿性が維持されている限り、不正行為を防ぐことができる。一般に、情報処理ユニット間の通信経路が盗聴され、両者間でやりとりされる情報が傍受されたとしても、データ変換装置で行われる変換アルゴリズムは、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく暗号化処理の演算であるため、それだけで変換処理(暗号化処理)の秘匿性が破られる可能性は低い。実際、この種のデータ変換装置で現在実行されている秘密の変換アルゴリズム(暗号化アルゴリズムおよび暗号鍵)を、情報処理ユニット間の通信傍受で得た情報のみから解析することは極めて困難である。
しかしながら、近年は、サイドチャネル解析と呼ばれている暗号解析技術を用いた攻撃(サイドチャネル攻撃)が問題になってきている。サイドチャネル解析は、暗号化処理を実行中のデータ変換装置についての消費電力、演算処理時間、発生する電磁波などをモニタして秘密の暗号鍵を推定する解析方法である。このサイドチャネル解析の手法を、通信傍受で得た情報に組み合わせると暗号鍵の推定が容易になるため、たとえ数学的に強固な変換アルゴリズムを採用していても、不正行為が行われる可能性が危惧されている。
そこで、たとえば、下記の特許文献3には、鍵処理のための処理時間を工夫して中継端末に対する攻撃を防ぐ手法が開示されている。また、サイドチャネル攻撃への対応策として、特許文献4には、物理的現象に基づいて暗号鍵を生成する手法が開示されており、特許文献5には、暗号鍵の再利用を制限しながら、内部を秘密状態に保つ機能をもった装置で暗号化を行う手法が開示されている。更に、特許文献6には、回路レベルでサイドチャネル攻撃に対抗する技術が開示されており、特許文献7には、複数の暗号鍵をランダムに採用することによりサイドチャネル攻撃に対抗する技術が開示されており、特許文献8には、ダミー演算を実行することにより、不正な電力解析を妨げる方法が開示されている。
WO2005/057447号公報 特開2000−183869号公報 特開2006−197458号公報 特表2012−519987号公報 特表2013−513312号公報 WO2012/014291号公報 WO2012/131926号公報 特開2006−081059号公報
上述したように、認証処理や秘匿通信に利用する暗号化処理を行うデータ変換装置において、サイドチャネル攻撃に対する対策として様々な方法が提案されている。しかしながら、従来提案されている対抗策は、ハードウエア的に専用の特殊な装置を設ける必要があったり、ソフトウエア的に複雑な処理を行う必要があったりするため、構成が複雑になり、必ずしも効率的な対抗策にはなっていない。また、ダミー演算を実行する方法では、長時間に渡る統計的解析が行われると、ダミー演算による消費電力部分が平均化されてホワイトノイズとして取り扱われ、解析防止効果が低下する問題が指摘されている。
そこで本発明は、サイドチャネル攻撃にも十分に耐えることができ、かつ、効率的な暗号化処理が可能なデータ変換装置を提供することを目的とし、また、そのようなデータ変換装置を利用した認証システムおよび秘匿通信システムを提供することを目的とする。
(1) 本発明の第1の態様は、変換前データPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより、変換後データQを生成するデータ変換装置において、
複数n組(但し、n≧2)の暗号化処理部と、これらn組の暗号化処理部によって得られた暗号データを合成する合成処理部と、を設け、
n組の暗号化処理部における第i番目(但し、1≦i≦n)の暗号化処理部は、変換前データPに対して、第i番目の暗号鍵Kiを用いた第i番目の暗号化アルゴリズムAiに基づく暗号化処理の演算を施すことにより、第i番目の暗号データCiを出力し、
合成処理部は、第1番目〜第n番目の暗号化処理部によって出力された合計n組の暗号データC1〜Cnを所定の合成処理アルゴリズムSに基づいて合成し、得られた合成データQを変換後データQとして出力し、
合成処理アルゴリズムSは、n組の暗号データC1〜Cnに基づいて一義的に合成データQが定まるアルゴリズムであり、かつ、合成データQに基づいてn組の暗号データC1〜Cnを復元することはできない非可逆的な合成を行うアルゴリズムであり、
n組の暗号化処理部による暗号化処理の演算の少なくとも一部が、時間軸上で重複して実行されるようにしたものである。
(2) 本発明の第2の態様は、上述した第1の態様に係るデータ変換装置において、
複数n組の暗号化処理部がそれぞれ用いる暗号化アルゴリズムおよび暗号鍵は、相互に、暗号化アルゴリズムおよび暗号鍵のうちの少なくとも一方が異なっているようにしたものである。
(3) 本発明の第3の態様は、上述した第2の態様に係るデータ変換装置において、
複数n組の暗号化処理部が、同一の共通暗号化アルゴリズムに基づく演算を行い、かつ、相互に異なる暗号鍵を用いた演算を行うようにしたものである。
(4) 本発明の第4の態様は、変換前データPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより、変換後データQを生成するデータ変換装置において、
複数n通り(但し、n≧2)の暗号化処理を所定の実行順序に従って実行する暗号化処理部と、このn通りの暗号化処理によって得られた暗号データを合成する合成処理部と、を設け、
暗号化処理部が実行する第i番目(但し、1≦i≦n)の暗号化処理は、変換前データPに対して、第i番目の暗号鍵Kiを用いた第i番目の暗号化アルゴリズムAiに基づく暗号化処理の演算を施すことにより、第i番目の暗号データCiを得る処理であり、
合成処理部は、第1番目〜第n番目の暗号化処理によって得られた合計n組の暗号データC1〜Cnを所定の合成処理アルゴリズムSに基づいて合成し、得られた合成データQを変換後データQとして出力し、
合成処理アルゴリズムSは、n組の暗号データC1〜Cnに基づいて一義的に合成データQが定まるアルゴリズムであり、かつ、合成データQに基づいてn組の暗号データC1〜Cnを復元することはできない非可逆的な合成を行うアルゴリズムであり、
暗号化処理部は、変換前データPが与えられるたびに、所定の順序決定アルゴリズムHに基づいて、実行順序を決定するようにしたものである。
(5) 本発明の第5の態様は、上述した第4の態様に係るデータ変換装置において、
複数n通りの暗号化処理にそれぞれ用いられる暗号化アルゴリズムおよび暗号鍵は、相互に、暗号化アルゴリズムおよび暗号鍵のうちの少なくとも一方が異なっているようにしたものである。
(6) 本発明の第6の態様は、上述した第5の態様に係るデータ変換装置において、
複数n通りの暗号化処理には、同一の共通暗号化アルゴリズムに基づく演算が行われ、かつ、相互に異なる暗号鍵を用いた演算が行われるようにしたものである。
(7) 本発明の第7の態様は、上述した第1〜第6の態様に係るデータ変換装置において、
合成処理部が、n組の暗号データC1〜Cnの中から2組の暗号データを選択し、選択された2組の暗号データについて所定の論理演算を実行し、未選択の暗号データが存在する限り、当該未選択の暗号データのうちの1組を新たに選択し、直前に行われた論理演算の演算結果と新たに選択された暗号データとについての論理演算を繰り返し実行し、最終的に得られた論理演算の演算結果を合成データQとするようにしたものである。
(8) 本発明の第8の態様は、上述した第7の態様に係るデータ変換装置において、
暗号化処理部によって、n組の暗号データC1〜Cnのデータ長が同一となるような暗号化処理を実行し、
2組のデータについての論理演算として、排他的論理和演算を実行するようにしたものである。
(9) 本発明の第9の態様は、上述した第7の態様に係るデータ変換装置において、
暗号化処理部によって、n組の暗号データC1〜Cnが互いに同一のデータ長となるような暗号化処理を実行し、
2組のデータについての論理演算として、当該2組のデータを同一の分割態様に基づいてそれぞれ分割することにより、それぞれ複数u個の分割データを作成し、所定ビット長mを有する第j番目(1≦j≦u)の分割データ同士の和の下位mビットを第j番目の分割演算結果として求める処理をj=1〜uについて実行し、第1番目の分割演算結果〜第u番目の分割演算結果を連結する演算を実行するようにしたものである。
(10) 本発明の第10の態様は、上述した第1〜第6の態様に係るデータ変換装置において、
合成処理部が、n組の暗号データC1〜Cnを連結して得られる連結データに対して、一方向性関数を作用させることにより得られるデータを合成データQとするようにしたものである。
(11) 本発明の第11の態様は、上述した第1〜第10の態様に係るデータ変換装置を利用した認証システムにおいて、
認証処理を実行する第1の情報処理ユニットと、認証処理の対象となる第2の情報処理ユニットと、を設け、
第1の情報処理ユニットは、乱数を利用してチャレンジコードを発生させるチャレンジコード発生部と、チャレンジコードを第2の情報処理ユニットに送信するチャレンジコード送信部と、チャレンジコードに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第1の変換コードを生成する第1のデータ変換装置と、第2の情報処理ユニットから送信されてきたレスポンスコードを受信するレスポンスコード受信部と、第1の変換コードとレスポンスコードとの整合性を判定する照合判定部と、を有し、
第2の情報処理ユニットは、第1の情報処理ユニットから送信されてきたチャレンジコードを受信するチャレンジコード受信部と、受信したチャレンジコードに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第2の変換コードを生成する第2のデータ変換装置と、第2の変換コードをレスポンスコードとして第1の情報処理ユニットに送信するレスポンスコード送信部と、を有し、
第1のデータ変換装置および第2のデータ変換装置として、上述した第1〜第10の態様に係るデータ変換装置であって、同じ変換前データPが与えられたときに同じ変換後データQを生成する一対のデータ変換装置を用いるようにしたものである。
(12) 本発明の第12の態様は、上述した第1〜第10の態様に係るデータ変換装置を利用した認証システムにおいて、
認証処理を実行する第1の情報処理ユニットと、認証処理の対象となる第2の情報処理ユニットと、を設け、
第1の情報処理ユニットは、乱数を利用してチャレンジコードを発生させるチャレンジコード発生部と、チャレンジコードを第2の情報処理ユニットに送信するチャレンジコード送信部と、チャレンジコードに所定の前処理を施すことにより第1の前処理コードを生成する第1の前処理装置と、第1の前処理コードに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第1の変換コードを生成する第1のデータ変換装置と、第2の情報処理ユニットから送信されてきたレスポンスコードを受信するレスポンスコード受信部と、第1の変換コードとレスポンスコードとの整合性を判定する照合判定部と、を有し、
第2の情報処理ユニットは、第1の情報処理ユニットから送信されてきたチャレンジコードを受信するチャレンジコード受信部と、受信したチャレンジコードに上記前処理を施すことにより第2の前処理コードを生成する第2の前処理装置と、第2の前処理コードに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第2の変換コードを生成する第2のデータ変換装置と、第2の変換コードをレスポンスコードとして第1の情報処理ユニットに送信するレスポンスコード送信部と、を有し、
第1のデータ変換装置および第2のデータ変換装置として、上述した第1〜第10の態様に係るデータ変換装置であって、同じ変換前データPが与えられたときに同じ変換後データQを生成する一対のデータ変換装置を用いるようにしたものである。
(13) 本発明の第13の態様は、上述した第12の態様に係る認証システムにおいて、
第1の前処理装置および第2の前処理装置として、処理前のデータを構成する個々のバイトに所定の規則に従ってオフセット値を増減する処理を行う装置を用いるようにしたものである。
(14) 本発明の第14の態様は、上述した第12の態様に係る認証システムにおいて、
第2の前処理装置として、処理前のデータを構成する個々のバイトに、複数k通りの値の中からランダムに選択されたオフセット値を増減する処理を行う装置を用い、
第1の前処理装置として、処理前のデータを構成する個々のバイトにk通りのオフセット値を増減する処理を行うことによりk通りのデータを処理後のデータとして得る装置を用い、
照合判定部が、k通りのバリエーションについて合致判定を行い、いずれか1つのバリエーションについて合致する旨の判定が得られた場合に整合性ありとの判定を行うようにしたものである。
(15) 本発明の第15の態様は、上述した第12の態様に係る認証システムにおいて、
第1の前処理装置および第2の前処理装置として、処理前のデータの個々の構成要素を所定の規則に従って並び替える処理を行う装置を用いるようにしたものである。
(16) 本発明の第16の態様は、上述した第1〜第10の態様に係るデータ変換装置を利用した秘匿通信システムにおいて、
秘匿情報を送信する第1の情報処理ユニットと、秘匿情報を受信する第2の情報処理ユニットと、を設け、
第1の情報処理ユニットは、所定の規則に従ってデータストリームを生成する第1のストリーム生成装置と、第1のストリーム生成装置が生成したデータストリームに対して所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第1の変換コードを生成する第1のデータ変換装置と、送信対象となる平文データを第1の変換コードを利用して暗号化して暗号文データを得る暗号化装置と、暗号文データを第2の情報処理ユニットに送信する暗号文送信装置と、を有し、
第2の情報処理ユニットは、上記規則に従ってデータストリームを生成する第2のストリーム生成装置と、第2のストリーム生成装置が生成したデータストリームに対して所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第2の変換コードを生成する第2のデータ変換装置と、暗号文送信装置から送信されてきた暗号文データを受信する暗号文受信装置と、受信した暗号文データを第2の変換コードを利用して復号して平文データを得る復号装置と、を有し、
第1のデータ変換装置および第2のデータ変換装置として、上述した第1〜第10の態様に係るデータ変換装置であって、同じ変換前データPが与えられたときに同じ変換後データQを生成する一対のデータ変換装置を用いるようにしたものである。
(17) 本発明の第17の態様は、上述した第16の態様に係る秘匿通信システムにおいて、
第1のストリーム生成装置および第2のストリーム生成装置が、所定の規則に従って単位データの順列からなるデータストリームを生成し、
第1のデータ変換装置および第2のデータ変換装置が、データストリームを構成する個々の単位データに対して演算を実行することにより個々の変換コードを求め、これら変換コードの順列からなる鍵ストリームを生成し、
暗号化装置が、平文データを所定データ長の単位平文データに分割し、個々の単位平文データを鍵ストリームを構成する個々の変換コードを利用して暗号化することにより個々の単位暗号文データを生成し、この単位暗号文データの集合体として暗号文データを生成し、
復号装置が、暗号文データを所定データ長の単位暗号文データに分割し、個々の単位暗号文データを鍵ストリームを構成する個々の変換コードを利用して復号することにより個々の単位平文データを生成し、この単位平文データの集合体として平文データを生成するようにしたものである。
(18) 本発明の第18の態様は、変換前データPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより、変換後データQを生成するデータ変換方法において、
複数n組(但し、n≧2)の暗号化処理装置を用意し、第i番目(但し、1≦i≦n)の暗号化処理装置により、変換前データPに対して第i番目の暗号データCiを求める暗号化処理の演算を実行することにより、第1番目〜第n番目の暗号データC1〜Cnを求める暗号化処理段階と、
合成処理装置により、暗号データC1〜Cnを所定の合成処理アルゴリズムSに基づいて合成し、得られた合成データQを変換後データQとして出力する合成処理段階と、
を行い、
複数n組の暗号化処理装置のうち、第i番目(但し、1≦i≦n)の暗号化処理装置は、変換前データPに対して、第i番目の暗号鍵Kiを用いた第i番目の暗号化アルゴリズムAiに基づく暗号化処理の演算を施すことにより、第i番目の暗号データCiを出力し、
複数n組の暗号化処理装置がそれぞれ用いる暗号化アルゴリズムおよび暗号鍵は、相互に、暗号化アルゴリズムおよび暗号鍵のうちの少なくとも一方が異なっており、
合成処理アルゴリズムSは、暗号データC1〜Cnに基づいて一義的に合成データQが定まるアルゴリズムであり、かつ、合成データQに基づいて暗号データC1〜Cnを復元することはできない非可逆的な合成を行うアルゴリズムであり、
n組の暗号化処理装置による暗号化処理の演算の少なくとも一部が、時間軸上で重複して実行されるようにしたものである。
(19) 本発明の第19の態様は、変換前データPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより、変換後データQを生成するデータ変換方法において、
複数n通り(但し、n≧2)の暗号化処理を所定の実行順序に従って実行する暗号化処理装置を用意し、第i番目(但し、1≦i≦n)の暗号化処理により、変換前データPに対して第i番目の暗号データCiを求める演算を実行することにより、第1番目〜第n番目の暗号データC1〜Cnを求める暗号化処理段階と、
合成処理装置により、暗号データC1〜Cnを所定の合成処理アルゴリズムSに基づいて合成し、得られた合成データQを変換後データQとして出力する合成処理段階と、
を行い、
複数n通りの暗号化処理のうち、第i番目(但し、1≦i≦n)の暗号化処理は、変換前データPに対して、第i番目の暗号鍵Kiを用いた第i番目の暗号化アルゴリズムAiに基づく暗号化処理の演算を施すことにより、第i番目の暗号データCiを求める処理であり、
複数n通りの暗号化処理がそれぞれ用いる暗号化アルゴリズムおよび暗号鍵は、相互に、暗号化アルゴリズムおよび暗号鍵のうちの少なくとも一方が異なっており、
合成処理アルゴリズムSは、暗号データC1〜Cnに基づいて一義的に合成データQが定まるアルゴリズムであり、かつ、合成データQに基づいて暗号データC1〜Cnを復元することはできない非可逆的な合成を行うアルゴリズムであり、
変換前データPが与えられるたびに、所定の順序決定アルゴリズムHに基づいて、複数n通りの暗号化処理の実行順序を決定するようにしたものである。
(20) 本発明の第20の態様は、上述した第18または第19の態様に係るデータ変換方法を利用して、認証処理を実行する第1の情報処理ユニットが認証処理の対象となる第2の情報処理ユニットを正規の情報処理ユニットとして認証する認証方法において、
第1の情報処理ユニットが、乱数を利用してチャレンジコードを発生させるチャレンジコード発生段階と、
第1の情報処理ユニットが、チャレンジコードを第1の変換コードに変換する第1のデータ変換段階と、
第1の情報処理ユニットが、チャレンジコードを第2の情報処理ユニットに送信するチャレンジコード送信段階と、
第2の情報処理ユニットが、チャレンジコードを受信するチャレンジコード受信段階と、
第2の情報処理ユニットが、チャレンジコードを第2の変換コードに変換する第2のデータ変換段階と、
第2の情報処理ユニットが、第2の変換コードをレスポンスコードとして第1の情報処理ユニットに送信するレスポンスコード送信段階と、
第1の情報処理ユニットが、第2の情報処理ユニットから送信されてきたレスポンスコードを受信するレスポンスコード受信段階と、
第1の情報処理ユニットが、第1の変換コードとレスポンスコードとの整合性を判定する照合判定段階と、
を行い、
第1のデータ変換段階および第2のデータ変換段階において、上述した第20または第21の態様に係るデータ変換方法であって、同じ変換前データPが与えられたときに同じ変換後データQを生成する同じデータ変換方法を含む方法を用いるようにしたものである。
(21) 本発明の第21の態様は、上述した第20の態様に係る認証方法において、
第1のデータ変換段階および第2のデータ変換段階において、上述した第18または第19の態様に係るデータ変換方法を実行する前に所定の前処理を実行するようにしたものである。
(22) 本発明の第22の態様は、上述した第18または第19の態様に係るデータ変換方法を利用して、第1の情報処理ユニットから第2の情報処理ユニットへ秘匿情報を送信する秘匿通信方法において、
第1の情報処理ユニットが、所定の規則に従って単位データの順列からなるデータストリームを生成する第1のストリーム生成段階と、
第1の情報処理ユニットが、第1のストリーム生成段階で生成されたデータストリームを構成する個々の単位データを第1の変換コードに変換する第1のデータ変換段階と、
第1の情報処理ユニットが、送信対象となる平文データを第1の変換コードを利用して暗号化して暗号文データを得る暗号化段階と、
第1の情報処理ユニットが、暗号文データを第2の情報処理ユニットに送信する暗号文送信段階と、
第2の情報処理ユニットが、第1の情報処理ユニットから送信されてきた暗号文データを受信する暗号文受信段階と、
第2の情報処理ユニットが、上記規則に従ってデータストリームを生成する第2のストリーム生成段階と、
第2の情報処理ユニットが、第2のストリーム生成段階で生成されたデータストリームを構成する個々の単位データを第2の変換コードに変換する第2のデータ変換段階と、
第2の情報処理ユニットが、暗号文データを第2の変換コードを利用して復号して平文データを得る復号段階と、
を行い、
第1のデータ変換段階および第2のデータ変換段階において、上述した第20または第21の態様に係るデータ変換方法であって、同じ変換前データPが与えられたときに同じ変換後データQを生成する同じデータ変換方法を用いるようにしたものである。
本発明の第1の実施形態に係るデータ変換装置によれば、与えられた同一の変換前データPに対して、複数n組の暗号化処理部による暗号化処理が実行され、得られた複数n組の暗号データC1〜Cnを合成することにより変換後データQが得られる。n組の暗号化処理部による暗号化処理の演算は、少なくとも一部が時間軸上で重複して実行されるため、データ変換装置の電力消費量は同時並列的に実行された複数の暗号化処理の合計消費量となり、サイドチャネル攻撃による解析が困難になる。
この第1の実施形態の場合、ハードウエア上は、複数n組の暗号化処理部を用意する必要はあるが、既存の一般的な暗号化処理部を複数組揃えればよいので、装置の構成はそれほど複雑なものにはならず、サイドチャネル攻撃にも十分に耐えることができ、かつ、効率的な暗号化処理が可能なデータ変換装置を実現することができる。
特に、複数n組の暗号化処理部がそれぞれ用いる暗号化アルゴリズムおよび暗号鍵として、相互に、暗号化アルゴリズムおよび暗号鍵のうちの少なくとも一方が異なっているようにする実施例を採用すれば、個々の暗号化処理の電力消費量が互いに異なるようになるため、解析を一層困難にする効果が得られる。
一方、本発明の第2の実施形態に係るデータ変換装置によれば、与えられた同一の変換前データPに対して、複数n通りの暗号化処理が所定の順序で実行され、得られた複数n組の暗号データC1〜Cnを合成することにより変換後データQが得られる。しかも、各暗号化処理の実行順序は、変換前データPが与えられるたびに決定されるため、毎回異なることになる。したがって、電力消費量を統計的に解析したとしても、個々の暗号化処理の実行順序が不明であるため、サイドチャネル攻撃による解析が困難になる。
この第2の実施形態の場合、ハードウエア上は、単一の暗号化処理部を用意すれば足りるため、構成は非常に単純になる。また、ソフトウエア上は、既存の一般的な暗号化処理を複数通り行う機能をもたせておき、これを順番に実行すればよいので、複雑な処理を行う必要はない。よって、サイドチャネル攻撃にも十分に耐えることができ、かつ、効率的な暗号化処理が可能なデータ変換装置を実現することができる。
特に、複数n組の暗号化処理部がそれぞれ用いる暗号化アルゴリズムおよび暗号鍵として、相互に、暗号化アルゴリズムおよび暗号鍵のうちの少なくとも一方が異なっているようにする実施例を採用すれば、個々の暗号化処理の電力消費量が互いに異なるようになるため、解析を一層困難にする効果が得られる。
また、本発明の第1の実施形態および第2の実施形態のいずれにおいても、合成処理アルゴリズムSは、n組の暗号データC1〜Cnに基づいて一義的に合成データQが定まるアルゴリズムであり、かつ、合成データQに基づいてn組の暗号データC1〜Cnを復元することはできない非可逆的な合成を行うアルゴリズムである。このため、クラッカーは合成データQを入手したとしても、この合成データQからn組の暗号データC1〜Cnを求めることはできない。このように、本発明に係るデータ変換装置では、装置内部での暗号化処理により得られる暗号データC1〜Cnと、装置から外部に出力される合成データQとが異なり、しかも合成データQから暗号データC1〜Cnを復元することはできないため、クラッカーによるサイドチャネル解析が極めて困難になる。
また、本発明に係る認証システムや、秘匿通信システムでは、上述した特徴をもったデータ変換装置を用いて暗号化処理を行うようにしたため、サイドチャネル攻撃にも十分に耐えることができ、かつ、効率的な認証処理や秘匿通信が可能なシステムを実現することができる。
従来の一般的なデータ変換装置におけるサイドチャネル攻撃の様子を示すブロック図である。 サイドチャネル攻撃における消費電力解析に用いられる波形図である。 本発明の第1の実施形態に係るデータ変換装置100の基本構成を示すブロック図である。 図3に示すデータ変換装置100における暗号化処理のタイムチャートである。 図3に示すデータ変換装置100に対してサイドチャネル攻撃が行われた場合の消費電力解析に用いられる波形図である。 図3に示すデータ変換装置100の合成処理部120によって行われる合成処理の一例を示すブロック図である。 図3に示すデータ変換装置100の合成処理部120によって行われる排他的論理和演算の一例を示すブロック図である。 図3に示すデータ変換装置100の合成処理部120によって行われる剰余加算演算の一例を示すブロック図である。 図3に示すデータ変換装置100の合成処理部120によって行われるHASH関数演算の式の一例を示す図である。 本発明の第1の実施形態に係るデータ変換方法の基本手順を示す流れ図である。 本発明の第2の実施形態に係るデータ変換装置200の基本構成を示すブロック図である。 図11に示すデータ変換装置200における暗号化処理のタイムチャートである。 図3に示すデータ変換装置200に対してサイドチャネル攻撃が行われた場合の消費電力解析に用いられる波形図である。 本発明の第2の実施形態に係るデータ変換方法の基本手順を示す流れ図である。 本発明に係る認証システム300の基本構成を示すブロック図である。 本発明に係る認証システムの第1の変形例300Aを示すブロック図である。 図16に示す認証システム300Aで行われる前処理として、オフセット値を増減する処理を行う例を示す図である。 図16に示す認証システム300Aで行われる前処理として、データの並べ替え処理を行う例を示す図である。 本発明に係る認証システムの第2の変形例300Bを示すブロック図である。 本発明に係る認証システムの第3の変形例300Cを示すブロック図である。 本発明に係る認証方法の基本手順を示す流れ図である。 本発明に係る秘匿通信システム400の基本構成を示すブロック図である。 図22に示す秘匿通信システム400で用いられるデータストリームDSおよび鍵ストリームKSの一例を示す図である。 図22に示す秘匿通信システム400で実行される暗号化処理および復号処理の一例を示す図である。 本発明に係る秘匿通信の基本手順を示す流れ図である。
以下、本発明を図示する実施形態に基づいて説明する。
<<< §1. 本発明の第1の実施形態 >>>
ここでは、まず、本発明に係るデータ変換装置の第1の実施形態について説明する。
<1.1 サイドチャネル攻撃>
説明の便宜上、はじめに、データ変換装置に対する一般的なサイドチャネル攻撃について簡単に述べておく。前述したとおり、サイドチャネル攻撃は、暗号化処理を実行中のデータ変換装置についての消費電力、演算処理時間、発生する電磁波などをモニタして秘密の暗号鍵を推定する解析手法であり、このサイドチャネル攻撃で得た情報と通信傍受で得た情報とを組み合わせると、暗号鍵の推定が容易になるため、不正行為が行われる可能性が高まる。
図1は、従来の一般的なデータ変換装置10におけるサイドチャネル攻撃の様子を示すブロック図である。データ変換装置10は、変換前データPに対して、所定の暗号鍵Kを用いた所定の暗号化アルゴリズムAに基づく暗号化処理演算を施すことにより、変換後データQを生成する機能をもった装置であり、認証システムや秘匿通信システムに組み込まれて利用される。このようなシステムに対して不正行為が行われることを防ぐには、暗号化処理演算に用いられる暗号化アルゴリズムAおよび暗号鍵Kが秘密の状態に保たれている必要がある。
不正行為を企図するクラッカーは、データ変換装置10に対する入出力ラインを流れる信号を傍受することにより、変換前データPと、これに対応して出力される変換後データQとを入手することができ、更に、データ変換装置10の電源ラインを流れる電流を測定することにより消費電力をモニタするサイドチャネル攻撃を行うことができる。こうして不正に入手した情報は、特定のデータPを特定のデータQに変換する暗号化処理を行う際に、データ変換装置10内でどのような演算が実施されているかを解析する材料になる。このような解析を繰り返し実行すれば、統計的な手法により、暗号化アルゴリズムAおよび暗号鍵Kを類推することが可能になる。
図2は、データ変換装置10の電源ラインをモニタすることにより得られた消費電力の波形図であり、上述したように、サイドチャネル攻撃に利用される。具体的には、たとえば、時刻t3,t6,t8等において、消費電力の特徴的なピークが見られ、その直前の時刻t2,t5,t7の前後において、消費電力がほぼ安定した時期が見られる、といった消費電力に関する情報と、特定のデータPが特定のデータQに変換される、といった入出力信号の傍受によって得られる情報と、を組み合わせた解析を、多数の事例に関して実行することにより、データ変換装置10が採用している暗号化アルゴリズムAおよび暗号鍵Kを統計的な手法で推定することができる。
本発明は、このようなサイドチャネル攻撃にも十分に耐えることができ、かつ、効率的な暗号化処理が可能なデータ変換装置を提供することを目的とするものである。以下、その第1の実施形態を説明する。
<1.2 第1の実施形態に係るデータ変換装置の構成および動作>
図3は、本発明の第1の実施形態に係るデータ変換装置100の基本構成を示すブロック図である。実際には、このデータ変換装置100は、専用の処理機能を備えた半導体集積回路もしくは専用のプログラムが組み込まれたコンピュータによって構成される。
図3に示すデータ変換装置100は、図1に示すデータ変換装置10と同様に、変換前データPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより、変換後データQを生成する機能を有し、図示のとおり、複数n組(但し、n≧2)の暗号化処理部111,112,... ,11i,..., 11nと、これらn組の暗号化処理部によって得られた暗号データC1,C2,... ,Ci,... ,Cnを合成する合成処理部120と、を備えている。これらの各構成要素は、同一のデータ変換装置100に組み込まれた要素であり、同一系統の電源供給ラインから供給された電力によって動作する。
ここで、n組の暗号化処理部111,112,... ,11i,..., 11nにおける第i番目(但し、1≦i≦n)の暗号化処理部は、与えられた変換前データPに対して、第i番目の暗号鍵Kiを用いた第i番目の暗号化アルゴリズムAiに基づく暗号化処理の演算を施すことにより、第i番目の暗号データCiを出力する役割を果たす。たとえば、第1番目の暗号化処理部111は、第1番目の暗号鍵K1を用いた第1番目の暗号化アルゴリズムA1に基づく暗号化処理の演算を施すことにより、第1番目の暗号データC1を出力し、第2番目の暗号化処理部112は、第2番目の暗号鍵K2を用いた第2番目の暗号化アルゴリズムA2に基づく暗号化処理の演算を施すことにより、第2番目の暗号データC2を出力する。
個々の暗号化アルゴリズムAiや個々の暗号鍵Ki(i=1〜n)は、図1に示すような従来の一般的なデータ変換装置10で利用されている一般的な暗号化アルゴリズムAや暗号鍵Kでかまわない。何らかの暗号鍵Kを用いて所定の暗号化処理を実行する暗号化アルゴリズムAは、たとえば、DES、AES、CAMELLIAなど、様々な方式が公知であり、また、実用化されているため、ここでは詳しい説明は省略する。
合成処理部120は、第1番目〜第n番目の暗号化処理部111〜11nによって出力された合計n組の暗号データC1〜Cnを所定の合成処理アルゴリズムSに基づいて合成し、得られた合成データQを変換後データQとして出力する構成要素である。合成処理アルゴリズムSは、n組の暗号データC1〜Cnに基づいて一義的に合成データQが定まるアルゴリズムであり、かつ、合成データQに基づいてn組の暗号データC1〜Cnを復元することはできない非可逆的な合成を行うアルゴリズムであれば、どのようなアルゴリズムであってもかまわない。具体的なアルゴリズムについては、後述する§1.3でいくつかを例示する。
ここで重要な点は、n組の暗号化処理部111〜11nによる暗号化処理の演算の少なくとも一部が、時間軸上で重複して実行されるようになっている点である。図4は、図3に示すデータ変換装置100において、n=3に設定した場合の暗号化処理のタイムチャートである。n=3に設定した場合、図3に示すデータ変換装置100には、3組の暗号化処理部111,112,113が設けられることになる。図4に丸数字1〜3で示すバーは、それぞれ暗号化処理部111によって実行される第1番目の暗号化処理、暗号化処理部112によって実行される第2番目の暗号化処理、暗号化処理部113によって実行される第3番目の暗号化処理の実行時間を示している。
具体的には、図4に示す例の場合、第1番目の暗号化処理は時刻t0〜t2にわたって行われ、第2番目の暗号化処理は時刻t0〜t3にわたって行われ、第3番目の暗号化処理は時刻t1〜t4にわたって行われている。したがって、時刻t0〜t1の期間は、2組の暗号化処理が同時に実行され、時刻t1〜t2の期間は、3組の暗号化処理が同時に実行され、時刻t2〜t3の期間は、2組の暗号化処理が同時に実行され、時刻t3〜t4の期間は、1組の暗号化処理のみが実行されることになる。
このように、3組の暗号化処理の演算の少なくとも一部が、時間軸上で重複して実行されるようにすると、サイドチャネル攻撃を困難にさせる効果が得られる。図5は、図3に示すデータ変換装置100に対してサイドチャネル攻撃が行われた場合の消費電力解析に用いられる波形図である。この図5の波形図の時間軸tは、図4のタイムチャートの時間軸tに対応しており、図5の横軸の時刻t0,t1,t2,t3,t4は、それぞれ図4の横軸の時刻t0,t1,t2,t3,t4に対応する。
上例のように、n=3に設定した場合、図3に示すデータ変換装置100には、3組の暗号化処理部111,112,113が設けられることになるが、これら3組の暗号化処理部111,112,113は、いずれも同一のデータ変換装置100に組み込まれており、同一系統の電源供給ラインからの電力供給を受けることになる。したがって、サイドチャネル攻撃によってモニタされた消費電力は、図5に示すように、同時に動作している暗号化処理部の消費電力の合計値ということになる。
すなわち、図4に示すタイムチャートに基づいて個々の暗号化処理が実行された場合、時刻t0〜t1の期間は、図5に丸数字で示すとおり、第1および第2の暗号化処理に必要な合計消費電力が観測され、時刻t1〜t2の期間は、第1、第2、第3の暗号化処理に必要な合計消費電力が観測され、時刻t2〜t3の期間は、第2および第3の暗号化処理に必要な合計消費電力が観測され、時刻t3〜t4の期間は、第3の暗号化処理に必要な消費電力が観測される。
サイドチャネル攻撃をしかけたクラッカーにとっては、データ変換装置100内に組み込まれている暗号化処理部の数(すなわち、nの値)は不明であり、もちろん、これら複数の暗号化処理部が、図4に例示するタイムチャートに従って動作することも不明である。したがって、たとえば、不正な通信傍受により、変換前データPおよび変換後データQを入手し、更に、電源供給ラインをモニタして図5に示すような消費電力の波形図を入手したとしても、それだけの情報から、3組の暗号化処理部111,112,113でそれぞれ実行されている暗号化処理の内容を推定することは極めて困難である。
しかも、この3組の暗号化処理部111,112,113でそれぞれ実行されている暗号化処理は、意味のないダミー処理ではなく、それぞれ所定の暗号鍵Kiを用いて所定の暗号化アルゴリズムAiに基づく演算を実行することにより、変換前データPに対して所定の変換を施す実体のある処理になっている。このため、本発明に係るデータ変換装置100は、前掲の特許文献8などに開示されているダミー演算を実行するデータ変換装置に比べると、不正な電力解析を妨げる効果は極めて高い。
すなわち、本来の暗号化処理演算とダミー演算とを同時に実行した場合、確かに合計の消費電力が増えるため、クラッカーに対して実消費電力を偽装する効果を得ることはできる。しかしながら、クラッカーが長い時間をかけて統計的な消費電力解析を行うと、ダミー演算に要する消費電力はホワイトノイズ化してしまうため、十分な偽装効果を得ることができなくなる。図3に示すデータ変換装置100の場合、個々の暗号化処理部が実行する暗号化処理演算は、ダミー演算ではなく、いずれも所定の暗号鍵Kiを用いた所定の暗号化アルゴリズムAiに基づく実演算であるため、統計的な消費電力解析に対してもホワイトノイズ化することはなく、不正な電力解析を妨げる十分な効果を得ることができる。
なお、図4に例示するタイムチャートでは、第3番目の暗号化処理の開始時刻をt1として若干遅らせているが、もちろん、3組の暗号化処理をすべて同時刻t0に開始するようにしてもよい。図3に示すデータ変換装置100が入力した変換前データPは、複数n組の暗号化処理部111〜11nに同時に与えられることになるが、個々の暗号化処理部111〜11nが暗号化処理を実行するタイミングは、それぞれ個別に設定しておくことができる。クラッカーによる不正な消費電力解析を混乱させる上では、様々なタイミングを設定しておくのが好ましい。
また、図4に例示するタイムチャートでは、時刻t3〜t4の期間は、第3の暗号化処理のみが実行されている状態になっているが、実用上は、暗号化処理の演算中は、どの時点においても常に2組以上の暗号化処理部による処理が重複して実行されるようにするのが好ましい。これは、図4の時刻t3〜t4の期間のように、単独の暗号鍵のみを用いた処理が実行されている期間が存在すると、クラッカーによる不正な消費電力解析が行いやすくなるためである。したがって、実用上は、常に2組以上の暗号鍵を用いた処理が重複して実行されるような運用を行い、どのタイミングで消費電力のモニタが行われたとしても、解析が困難になるようにしておくのが好ましい。
もちろん、暗号化処理を前半処理と後半処理とに分け、両者間に処理休止期間を設定することも可能である。あるいは、変換前データPが与えられるたびに、それぞれ暗号化処理のタイミングを変えるような運用を行ってもかまわない。クラッカーが消費電力をモニタしても、得られる情報は、常に複数n組の暗号化処理部111〜11nの合計消費電力だけであり、個々の暗号化処理部の個別の消費電力が得られるわけではない。しかも、個々の暗号化処理部が暗号化処理を行うタイミングを知ることもできないので、不正な電力解析を行うことは極めて困難になる。
なお、複数n組の暗号化処理部111〜11nがそれぞれ用いる暗号化アルゴリズムAiおよび暗号鍵Ki(i=1〜n)は、互いに同じものであってもかまわないが、不正な電力解析を妨げる効果を高めるためには、相互に、暗号化アルゴリズムAiおよび暗号鍵Kiのうちの少なくとも一方が異なっているようにするのが好ましい。これは、複数n組の暗号化処理部111〜11nがすべて同一の共通暗号化アルゴリズムAに基づく演算を行い、かつ、同一の共通暗号鍵Kを用いた演算を行うようにすると、暗号化処理を行うタイミングが同じ場合、クラッカーがモニタして得た消費電力は、1組の暗号化処理部の消費電力のn倍(整数倍)という結果になるため、不正な電力解析を行い易くなるためである。
複数n組の暗号化処理部111〜11nが暗号化処理を実行するにあたって、暗号化アルゴリズムAiおよび暗号鍵Ki(i=1〜n)のうちの少なくとも一方が異なっているようにすれば、暗号化処理を行うタイミングが同じであっても、合計消費電力は、1組の暗号化処理部の消費電力の整数倍という結果にはならず、不正な電力解析を妨げる上で効果的である。
実用上は、複数n組の暗号化処理部111〜11nが、同一の共通暗号化アルゴリズムAcommonに基づく演算を行い、かつ、相互に異なる暗号鍵Ki(i=1〜n)を用いた演算を行うようにするのが好ましい。そのような構成を採用すれば、複数n組の暗号化処理部111〜11nを、共通暗号化アルゴリズムAcommonに基づく演算を実行する同型の回路によって構成しておき、用いる暗号鍵Kiのみが相互に異なるように、各暗号化処理部111〜11n内の暗号鍵用メモリに記憶させておくデータだけを変えておけば済む。
別言すれば、複数n組の暗号化処理部111〜11nとして、ハードウエア上は、同種の演算回路を用意すればよいので、構成はそれほど複雑なものにはならない。実用上は、n=2として、同一のハードウエア構成をもつ2組の暗号化処理部111,112を用意しておき、それぞれにおいて、共通暗号化アルゴリズムAcommonに基づく演算が実行されるようにしておき、第1の暗号化処理部111で用いられる暗号鍵K1と第2の暗号化処理部112で用いられる暗号鍵K2とを異ならせる構成を採用すれば、構造は比較的単純になり、しかも実用上、不正な電力解析を妨げる十分な効果を奏することが可能である。
<1.3 合成処理の具体例>
ここでは、図3に示すデータ変換装置100における合成処理部120で実行される合成処理の具体例をいくつか述べておく。
前述したとおり、合成処理部120は、第1番目〜第n番目の暗号化処理部111〜11nによって出力された合計n組の暗号データC1〜Cnを所定の合成処理アルゴリズムSに基づいて合成し、得られた合成データQを変換後データQとして出力する機能を果たす。
ここで、合成処理アルゴリズムSとしての第1の条件は、「n組の暗号データC1〜Cnに基づいて一義的に合成データQが定まるアルゴリズムである」という条件である。合成データQは変換後データQとして出力されるデータであるので、一義的なデータが定まらないと、後述する認証システムや秘匿通信システムに利用することはできない。
一方、合成処理アルゴリズムSとしての第2の条件は、「合成データQに基づいてn組の暗号データC1〜Cnを復元することはできない非可逆的な合成を行うアルゴリズムである」という条件である。これは、合成処理アルゴリズムSが可逆的な合成アルゴリズムであると、クラッカーが変換後データQに基づいてn組の暗号データC1〜Cnを復元することができるため、個々の暗号化処理部111〜11nが採用した暗号化アルゴリズムA1〜Anや暗号鍵K1〜Knが推定されてしまうおそれがあるためである。合成処理アルゴリズムSとして非可逆的なアルゴリズムを用いれば、そのような問題は生じない。
図6は、図3に示すデータ変換装置100の合成処理部120によって行われる合成処理の一例を示すブロック図である。ここに示す合成処理は、合計n組の暗号データC1〜Cnを合成して合成データQ(変換後データ)を生成する処理であるが、すべての暗号データC1〜Cnを一度に合成するのではなく、2組ずつ順に選択して論理演算を行う、という手法を採る。
すなわち、図6に示す合成処理を採用する場合、合成処理部120は、n組の暗号データC1〜Cnの中から2組の暗号データを選択し、選択された2組の暗号データについて所定の論理演算を実行し、未選択の暗号データが存在する限り、当該未選択の暗号データのうちの1組を新たに選択し、直前に行われた論理演算の演算結果と新たに選択された暗号データとについての論理演算を繰り返し実行し、最終的に得られた論理演算の演算結果を合成データQとする処理を行うことになる。
図6に示す例は、n組の暗号データC1〜Cnがいずれも同一のデータ長Lを有している例である。別言すれば、n組の暗号化処理部111〜11nが、n組の暗号データC1〜Cnのデータ長が同一の長さLとなるような暗号化処理を実行することになる。しかも、この図6に示されている例の場合、2組のデータについて所定の論理演算を実行することにより得られる演算結果も、同じデータ長Lを有している。
具体的には、まず、第1回目の論理演算では、2組の暗号データC1,C2が選択され、これらについての論理処理によって演算結果Z1が得られる。続いて、第2回目の論理演算では、第3番目の暗号データC3が選択され、直前に行われた論理演算の演算結果Z1との間で所定の論理処理を行って演算結果Z2を得る。更に、第3回目の論理演算では、第4番目の暗号データC4が選択され、直前に行われた論理演算の演算結果Z2との間で所定の論理処理を行って演算結果Z3を得る。このような処理を繰り返してゆけば、最終的に、第(n−1)回目の論理演算として、第n番目の暗号データCnと演算結果Z(n−2)との間での論理処理を行うことにより、演算結果Z(n−1)を得ることができ、これが合成データQになる。
この図6に示す合成方法を採れば、合成対象となる暗号データの数nがいくつであっても、2組のデータについての所定の論理演算を定義しておき、これを必要な回数だけ繰り返し実行することにより、合成データQが得られることになる。
2組のデータについての論理演算としては、たとえば、排他的論理和演算を実行すればよい。図7は、図6に示す例において、データ長L=16ビットとした場合に、暗号データC1とC2について排他的論理和演算(XOR)を行い、演算結果Z1を得る一例を示すブロック図である。排他的論理和演算は、デジタルデータに対する最も単純な論理演算の1つであり、2組の暗号データC1,C2に基づいて一義的に演算結果Z1が得られ、しかも、演算結果Z1に基づいて元の暗号データC1,C2を復元することはできない非可逆的な演算になっている。合成処理部120を、この排他的論理和演算回路によって構成すれば、比較的単純なハードウエア構成によって合成処理部120を実装することができる。
別な論理演算として、剰余加算演算を利用することもできる。たとえば、n組の暗号化処理部111〜11nによって、n組の暗号データC1〜Cnが互いに同一のデータ長となるような暗号化処理を実行したものとしよう。この場合、2組のデータについての論理演算として、第j番目のバイト(j=1,2,3,... )の和を256で除した剰余を、演算結果となるデータの第j番目のバイトとする剰余加算演算を利用することができる。
図8は、図6に示す例において、データ長L=4バイトとした場合に、暗号データC1とC2について剰余加算演算を行い、演算結果Z1を得る一例を示すブロック図である(数値は16進表示)。暗号データC1の第j番目のバイト(1≦j≦4)をC1[j]、暗号データC2の第j番目のバイトをC2[j]、演算結果Z1の第j番目のバイトをZ1[j]とすれば、個々のバイトごとの剰余加算演算は、Z1[j]=(C1[j]+C2[j])mod 256なる式で定義できる。たとえば、図8の例の場合、j=1として1バイト目に着目すると「AF」+「19」=「C8」になり、256による除算で得られる剰余は「C8」になり、j=4として4バイト目に着目すると「6D」+「BF」=「12C」になり、256による除算で得られる剰余は「2C」になる。
この剰余加算演算は、基本的には単純な加算演算であり、2組の暗号データC1,C2に基づいて一義的に演算結果Z1が得られ、しかも、演算結果Z1に基づいて元の暗号データC1,C2を復元することはできない非可逆的な演算になっている。合成処理部120を、この剰余加算演算回路によって構成した場合も、比較的単純なハードウエア構成によって合成処理部120を実装することができる。
なお、図8に示す例は、1バイト単位で剰余加算演算を行う例であるが、剰余加算演算は必ずしも1バイト単位のデータ同士で行う必要はなく、任意バイト単位あるいは任意ビット単位のデータ同士で行うことも可能である。一般論として言えば、2組の暗号データC1,C2を同一の分割態様に基づいてそれぞれ分割することにより、それぞれ複数u個の分割データを作成し、互いに対応する分割データ同士で剰余加算演算を行って合計u個の剰余を求め、これらを連結することにより演算結果Z1を得るようにすればよい。
図8に示す例では、同一の分割態様として「1バイト単位で分割する」というルールが採用され、それぞれ複数4個(u=4)の分割データ(1バイトの長さをもつデータ)を作成して合計4個の剰余を求め、これらを連結することにより演算結果Z1を得る処理が行われている。もちろん、分割態様としては、「1バイトの長さ、2バイトの長さ、1バイトの長さ、2バイトの長さ、…というように、個々の分割データの長さが交互に異なるように分割する」というようなより複雑なルールを採用してもかまわない。要するに、2組のデータC1,C2について、同一の分割態様が適用されるのであれば、どのような分割態様を採用してもかまわない。
なお、図8に示す例のように、個々の分割データが1バイトのデータになる場合の剰余加算演算は、「分割データ同士の和を256で除した剰余を求める処理」ということになるが、分割データが任意のビット長mを有する一般的なケースにおける剰余加算演算は、「分割データ同士の和の下位mビットを演算結果とする処理」ということができる。
従って、図8に例示するような剰余加算演算を利用して、2組のデータC1,C2についての論理演算を行う実施例は、一般論としての定義では、「2組のデータC1,C2を同一の分割態様に基づいてそれぞれ分割することにより、それぞれ複数u個の分割データを作成し、所定ビット長mを有する第j番目(1≦j≦u)の分割データ同士の和の下位mビットを第j番目の分割演算結果として求める処理をj=1〜uについて実行し、第1番目の分割演算結果〜第u番目の分割演算結果を連結する演算」を行う実施例ということができる。
以上、図6に示す合成処理を採用する場合に用いることができる具体的な論理演算として、排他的論理和演算および剰余加算演算を例示したが、もちろん、合成処理部120で実行する合成処理は、図6に示す合成処理に限定されるものではない。
図9は、合成処理部120で実行する合成処理として、n組の暗号データC1〜Cnを連結して得られる連結データに対して、一方向性関数を作用させる演算を採用した例を示す図である。具体的には、図示の例の場合、一方向性関数としてHASH関数を採用し、n組の暗号データC1〜Cnを連結して得られる連結データについてのHASH値を合成データQとして用いることになる。このような一方向性関数を作用させる演算を行えば、一義的に合成データQ(図示の例の場合はHASH値)が得られ、しかも合成データQに基づいて元の暗号データC1〜Cnを復元することはできない。
HASH関数等の一方向性関数演算も汎用の処理回路によって実行することが可能であるので、この場合も、比較的単純なハードウエア構成によって合成処理部120を実装することができる。もちろん、この§1.3で述べた合成処理の具体例は、合成処理部120が実行する処理の一例であり、本発明を実施する上では、この他にも種々の合成処理を採用することが可能である。
<1.4 第1の実施形態に係るデータ変換方法>
ここでは、これまで述べてきた第1の実施形態に係る発明を、データ変換方法という方法の発明として捉え、その基本手順を図10に示す流れ図を参照しながら説明する。以下に述べる方法は、変換前データPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより、変換後データQを生成するデータ変換方法ということになり、実際には、個々の手順は、図3に例示するようなデータ変換装置100(専用の処理機能を備えた半導体集積回路もしくは専用のプログラムが組み込まれたコンピュータ)によって実行されることになる。
図10に示すとおり、まず、ステップS1において、変換前データPを装置内に取り込む入力段階が実行され、続くステップS2において、暗号化処理段階が実行される。この暗号化処理段階では、複数n組(但し、n≧2)の暗号化処理装置D1,D2,... ,Di,... ,Dnが用意され、第i番目(但し、1≦i≦n)の暗号化処理装置Diにより、変換前データPに対して第i番目の暗号データCiを求める暗号化処理の演算が実行される。
より具体的に説明すれば、複数n組の暗号化処理装置D1〜Dnのうち、第i番目(但し、1≦i≦n)の暗号化処理装置Diは、変換前データPに対して、第i番目の暗号鍵Kiを用いた第i番目の暗号化アルゴリズムAiに基づく暗号化処理の演算を施すことにより、第i番目の暗号データCiを出力する。その結果、ステップS2の暗号化処理段階では、第1番目〜第n番目の暗号データC1〜Cnを求める処理が行われることになる。
しかも、この複数n組の暗号化処理装置D1〜Dnがそれぞれ用いる暗号化アルゴリズムA1〜Anおよび暗号鍵K1〜Knは、相互に、暗号化アルゴリズムおよび暗号鍵のうちの少なくとも一方が異なっており、n組の暗号化処理装置D1〜Dnによる暗号化処理の演算の少なくとも一部が、時間軸上で重複して実行されるようにする。
続いて、ステップS3では、合成処理装置120により、暗号データC1〜Cnを所定の合成処理アルゴリズムSに基づいて合成する合成処理段階が実行され、更に、ステップS4では、こうして得られた合成データQを変換後データQとして出力する出力段階が実行される。ここで、合成処理アルゴリズムSは、暗号データC1〜Cnに基づいて一義的に合成データQが定まるアルゴリズムであり、かつ、合成データQに基づいて暗号データC1〜Cnを復元することはできない非可逆的な合成を行うアルゴリズムになっている。
このような手順に基づいてデータ変換処理を行えば、サイドチャネル攻撃によって消費電力がモニタされたとしても、図5の波形図に例示するように、各時点での消費電力は複数の処理の合計になるため、個々の暗号化処理装置D1〜Dnで実行されている暗号化処理の内容を推定することは極めて困難になる。
<<< §2. 本発明の第2の実施形態 >>>
次に、本発明に係るデータ変換装置の第2の実施形態について説明する。上述した第1の実施形態では、与えられた同一の変換前データPに対して、複数n組の暗号化処理部による暗号化処理を時間軸上で重複して実行する、という手法が採られていたが、以下に述べる第2の実施形態では、与えられた同一の変換前データPに対して、複数n通りの暗号化処理を所定の順序で実行し、しかも、各暗号化処理の実行順序を適宜変えるようにする、という手法が採用される。
<2.1 第2の実施形態に係るデータ変換装置の構成および動作>
図11は、本発明の第2の実施形態に係るデータ変換装置200の基本構成を示すブロック図である。実際には、このデータ変換装置200は、専用の処理機能を備えた半導体集積回路もしくは専用のプログラムが組み込まれたコンピュータによって構成される。
図11に示すデータ変換装置200は、図3に示すデータ変換装置100と同様に、変換前データPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより、変換後データQを生成する機能を有し、図示のとおり、暗号化処理部210と合成処理部220とを備えている。ここで、暗号化処理部210は、複数n通り(但し、n≧2)の暗号化処理を所定の実行順序に従って実行する構成要素であり、合成処理部220は、このn通りの暗号化処理によって得られた暗号データC1〜Cnを合成する構成要素である。
より具体的には、暗号化処理部210が実行する第i番目(但し、1≦i≦n)の暗号化処理は、変換前データPに対して、第i番目の暗号鍵Kiを用いた第i番目の暗号化アルゴリズムAiに基づく暗号化処理の演算を施すことにより、第i番目の暗号データCiを得る処理である。ここで、暗号化処理部210は、変換前データPが与えられるたびに、所定の順序決定アルゴリズムHに基づいて実行順序を決定する機能を有する。個々の暗号化アルゴリズムAiや個々の暗号鍵Ki(i=1〜n)は、一般的な暗号化アルゴリズムAや暗号鍵Kでかまわないので、ここでは詳しい説明は省略する。
一方、順序決定アルゴリズムHとしては、たとえば、乱数に基づいて1〜nの整数を任意の順序に並び替えるアルゴリズムを用意しておけばよい。図12(a) ,(b) は、図11に示すデータ変換装置200において、n=3に設定した場合に暗号化処理部210で実行される暗号化処理のタイムチャートであり、丸数字1〜3で示すバーは、それぞれ暗号化処理部210によって実行される第1番目の暗号化処理、第2番目の暗号化処理、第3番目の暗号化処理の実行時間を示している。
図12(a) は、第1の変換前データP1が与えられたときに、これを第1の変換後データQ1に変換する際に暗号化処理部210で実行される暗号化処理のタイムチャートであり、図12(b) は、第2の変換前データP2が与えられたときに、これを第2の変換後データQ2に変換する際に暗号化処理部210で実行される暗号化処理のタイムチャートである。
図示のとおり、図12(a) では、まず最初に、第2番目の暗号化処理(暗号鍵K2を用いた暗号化アルゴリズムA2に基づく暗号化処理)が実行され、続いて、第1番目の暗号化処理(暗号鍵K1を用いた暗号化アルゴリズムA1に基づく暗号化処理)が実行され、最後に、第3番目の暗号化処理(暗号鍵K3を用いた暗号化アルゴリズムA3に基づく暗号化処理)が実行されている。これに対して、図12(b) では、まず最初に、第3番目の暗号化処理(暗号鍵K3を用いた暗号化アルゴリズムA3に基づく暗号化処理)が実行され、続いて、第2番目の暗号化処理(暗号鍵K2を用いた暗号化アルゴリズムA2に基づく暗号化処理)が実行され、最後に、第1番目の暗号化処理(暗号鍵K1を用いた暗号化アルゴリズムA1に基づく暗号化処理)が実行されている。
これは、暗号化処理部210が順序決定アルゴリズムHに基づいて、第1の変換前データP1が与えられた際には、「2−1−3」なる順序を決定し、第2の変換前データP2が与えられた際には、「3−2−1」なる順序を決定したためである。図3に示すデータ変換装置100が複数n組の暗号化処理部111〜11nを有していたのに対して、図11に示すデータ変換装置200は1組の暗号化処理部210を有するだけである。しかしながら、暗号化処理部210は、複数n通りの暗号化処理を実行する機能を有しており、変換前データPが与えられるたびに、順序決定アルゴリズムHに基づいて、その実行順序を決定し、これを順番に実行してゆく機能を有している。
なお、上述のとおり、暗号化処理部210は、変換前データPが与えられるたびに、複数n通りの暗号化処理の実行順序を決定することになるが、ここで「変換前データPが与えられるたびに実行順序を決定する」とは、「新たな変換前データPが入力されたときに、当該変換前データPについて何らかの実行順序が決まるような仕組」になっていれば十分であり、実行順序の決定処理は、必ずしも「変換前データPが与えられるたび」に毎回行う必要はない。また、たとえば、「3回ごとに実行順序を変更する」という設定を行い、順次入力された変換前データP1,P2,P3については同一の実行順序を適用し、次に入力された変換前データP4から新たな実行順序を適用する、というような運用を行ってもかまわない。
合成処理部220は、暗号化処理部210が第1番目〜第n番目の暗号化処理を行うことによって得られた合計n組の暗号データC1〜Cnを所定の合成処理アルゴリズムSに基づいて合成し、得られた合成データQを変換後データQとして出力する。
ここで、合成処理部220が実行する合成処理は、図3に示す合成処理部120が実行する合成処理と同様であり、合成処理アルゴリズムSは、n組の暗号データC1〜Cnに基づいて一義的に合成データQが定まるアルゴリズムであり、かつ、合成データQに基づいてn組の暗号データC1〜Cnを復元することはできない非可逆的な合成を行うアルゴリズムである。合成処理アルゴリズムSの具体例は、§1.3で例示したとおりである。
ここで重要な点は、データ変換装置200に新たな変換前データPが与えられた場合、暗号化処理部210で実行される複数n通りの暗号化処理の実行順序が予測できない点である。たとえば、図12(a) に示す例では、n=3に設定した例として「2−1−3」という実行順序が示されているが、図12(b) に示す例では、「3−2−1」という実行順序が示されている。したがって、クラッカーがサイドチャネル攻撃を行ったとしても、そのときにたまたま図12(a) に示す実行順序が採用された場合には、図13に示すような消費電力の波形図が得られるものの、別な実行順序が採択された場合には、別な波形図が得られることになる。
要するに、この第2の実施形態の場合、全く同一の変換前データPを与えたとしても、そのときに採用された実行順序によって、サイドチャネル攻撃によって得られる消費電力の波形図が異なることになる。したがって、クラッカーが、たとえば、不正な通信傍受により、変換前データPおよび変換後データQを入手し、更に、電源供給ラインをモニタして図13に示すような消費電力の波形図を入手する、という作業を繰り返したとしても、統計的な解析手法によって暗号化処理の内容を推定することは極めて困難になる。
しかも、この暗号化処理部210で実行されるn通りの暗号化処理は、意味のないダミー処理ではなく、それぞれ所定の暗号鍵Kiを用いて所定の暗号化アルゴリズムAiに基づく演算を実行することにより、変換前データPに対して所定の変換を施す実体のある処理になっている。このため、n通りの暗号化処理の消費電力が、統計的な処理によってホワイトノイズ化することはない。よって、ここに示すデータ変換装置200は、前掲の特許文献8などに開示されているダミー演算を実行するデータ変換装置に比べると、統計的な手法による不正な電力解析を妨げる効果は極めて高い。
なお、複数n通りの暗号化処理で用いられる暗号化アルゴリズムAiおよび暗号鍵Ki(i=1〜n)は、互いに同じものであってもかまわないが、不正な電力解析を妨げる効果を高めるためには、相互に、暗号化アルゴリズムAiおよび暗号鍵Kiのうちの少なくとも一方が異なっているようにするのが好ましい。これは、複数n通りの暗号化処理がすべて同一の共通暗号化アルゴリズムAに基づく演算を行い、かつ、同一の共通暗号鍵Kを用いた演算を行うようにすると、同じ消費電力波形パターンが時間軸上で繰り返し現れ、不正な電力解析を行い易くなるためである。
複数n通りの暗号化処理を実行するにあたって、暗号化アルゴリズムAiおよび暗号鍵Ki(i=1〜n)のうちの少なくとも一方が異なっているようにすれば、個々の消費電力波形パターンは相互に異なるものになるので、不正な電力解析を妨げる上で効果的である。
実用上は、複数n通りの暗号化処理には、同一の共通暗号化アルゴリズムAcommonに基づく演算が行われ、かつ、相互に異なる暗号鍵を用いた演算が行われるようにするのが好ましい。そのような構成を採用すれば、暗号化処理部210には、共通暗号化アルゴリズムAcommonに基づく演算を実行する回路を用意しておき、用いる暗号鍵Kiのみが相互に異なるように、複数通りの暗号鍵K1〜Knを暗号鍵用メモリに記憶させておけば済む。
以上、図11を参照しながら、本発明の第2の実施形態に係るデータ変換装置200の構成および動作を説明したが、もちろん、この第2の実施形態を§1で述べた第1の実施形態と組み合わせることも可能である。具体的には、図3に示すデータ変換装置100における複数n組の暗号化処理部111〜11nのそれぞれとして、もしくは、その一部として、図11に示すデータ変換装置200で用いられている暗号化処理部210を用いるようにすればよい。そうすれば、図12(a) に示すような順序処理が複数組、時間軸上で相互に重複しながら実行されることになるので、不正な電力解析を更に困難にさせることができる。
<2.2 第2の実施形態に係るデータ変換方法>
ここでは、これまで述べてきた第2の実施形態に係る発明を、データ変換方法という方法の発明として捉え、その基本手順を図14に示す流れ図を参照しながら説明する。以下に述べる方法は、変換前データPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより、変換後データQを生成するデータ変換方法ということになる。実際には、個々の手順は、図11に例示するようなデータ変換装置200(専用の処理機能を備えた半導体集積回路もしくは専用のプログラムが組み込まれたコンピュータ)によって実行されることになる。
図14に示すとおり、この基本手順は、ステップS1,S2′,S3,S4によって構成されている。ここで、ステップS1,S3,S4は、図10に示す第1の実施形態に係るデータ変換方法のステップS1,S3,S4と全く同じものである。別言すれば、図14に示す第2の実施形態に係るデータ変換方法は、図10に示す第1の実施形態に係るデータ変換方法のステップS2をステップS2′に変更したものと言うことができる。
まず、ステップS1において、変換前データPを装置内に取り込む入力段階が実行され、続くステップS2′において、暗号化処理段階が実行される。この暗号化処理段階では、複数n通り(但し、n≧2)の暗号化処理E1〜Enを所定の実行順序に従って実行する暗号化処理装置を用いて、所定の順序にしたがって暗号化処理が実行される。すなわち、変換前データPが与えられるたびに、所定の順序決定アルゴリズムHに基づいて、この複数n通りの暗号化処理E1〜Enの実行順序が決定され、当該順序に従って、n通りの暗号化処理E1〜Enが順次実行されることになる。
ここで、複数n通りの暗号化処理E1〜Enのうち、第i番目(但し、1≦i≦n)の暗号化処理Eiは、変換前データPに対して、第i番目の暗号鍵Kiを用いた第i番目の暗号化アルゴリズムAiに基づく暗号化処理の演算を施すことにより、第i番目の暗号データCiを求める処理である。しかも、この複数n通りの暗号化処理E1〜Enがそれぞれ用いる暗号化アルゴリズムA1〜Anおよび暗号鍵K1〜Knは、相互に、暗号化アルゴリズムおよび暗号鍵のうちの少なくとも一方が異なっている。
こうして、ステップS2′の実行により、第1番目〜第n番目の暗号データC1〜Cnが得られたら、続くステップS3において、合成処理装置220により、暗号データC1〜Cnを所定の合成処理アルゴリズムSに基づいて合成する合成処理段階が実行され、更に、ステップS4では、こうして得られた合成データQを変換後データQとして出力する出力段階が実行される。既に述べたとおり、合成処理アルゴリズムSは、暗号データC1〜Cnに基づいて一義的に合成データQが定まるアルゴリズムであり、かつ、合成データQに基づいて暗号データC1〜Cnを復元することはできない非可逆的な合成を行うアルゴリズムになっている。
このような手順に基づいてデータ変換処理を行えば、サイドチャネル攻撃によって消費電力がモニタされたとしても、図13の波形図に例示するように、各時点での消費電力が第何番目の暗号化処理のものであるのか不明であるため、個々の暗号化処理E1〜Enで実行されている処理内容を推定することは極めて困難になる。
<<< §3. 本発明に係る認証システム >>>
続いて、これまで§1,§2で述べてきた本発明に係るデータ変換装置を利用した認証システムについて説明する。このような認証システムは、通常、一対の情報処理ユニットが相互に通信を開始する場合、事前に相手方ユニットの正当性を確認する認証処理を行う際に利用される。以下、このような認証処理として、現在最も普及しているチャレンジレスポンス方式を採用した認証システムの例を説明する。
<3.1 本発明に係る認証システムの構成および動作>
図15は、本発明に係る認証システム300の基本構成を示すブロック図である。この認証システム300は、認証処理を実行する第1の情報処理ユニット310と、認証処理の対象となる第2の情報処理ユニット320と、を備えたシステムであり、第1の情報処理ユニット310が第2の情報処理ユニット320の正当性を確認する際に利用される。
実際には、第1の情報処理ユニット310および第2の情報処理ユニット320は、それぞれ本来の主たる情報処理を実行するためのユニットであり、認証処理は、いわば従たる情報処理ということになるが、ここでは認証処理の説明を行うため、両ユニット310,320の認証処理機能のみに着目し、両ユニット310,320からなるシステムを認証システム300として捉えることにする。したがって、図15には、両ユニット310,320の構成要素のうち、認証処理機能に関連する構成要素のみをブロックとして示してある。
たとえば、第1の情報処理ユニット310をリーダライタ装置、第2の情報処理ユニット320をICカードによって構成した場合、図示の認証システム300は、リーダライタ装置とICカードとが交信した際に、リーダライタ装置側で、相手方のICカードが正規の装置であることを認証するシステムとしての役割を果たす。もちろん、この場合、ICカードには、種々のデータ処理やデータ記憶のための構成要素が存在し、リーダライタ装置には、ICカードに対するデータの読み書きを行うための構成要素が存在するが、認証システムとしての機能に必要な構成要素ではないため、図には示されていない。
第1の情報処理ユニット310が第2の情報処理ユニット320の正当性を確認する場合、まず、第1の情報処理ユニット310がランダムにチャレンジコードPを発生させ、これを第2の情報処理ユニット320に送信する。第2の情報処理ユニット320は、このチャレンジコードPをデータ変換装置を用いて変換することにより、レスポンスデータQを生成し、これを第1の情報処理ユニット310に返信する。一方、第1の情報処理ユニット310においても、チャレンジデータPをデータ変換装置を用いて変換し、その結果が、返信されてきたレスポンスQに一致するか否かを判定する。両者が一致すれば、第2の情報処理ユニット320を正当な装置として認証することができる。
このようなチャレンジレスポンス方式を採用した認証システム自体は、既に様々な分野で利用されている公知のシステムであるが、本発明に係る認証システム300の特徴は、データ変換装置の部分に、§1もしくは§2で述べた装置を利用した点にある。
すなわち、図15に示すように、第1の情報処理ユニット310は、乱数を利用してチャレンジコードPを発生させるチャレンジコード発生部311と、このチャレンジコードPを第2の情報処理ユニット320に送信するチャレンジコード送信部312と、発生させたチャレンジコードPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第1の変換コードQを生成する第1のデータ変換装置313と、第2の情報処理ユニット320から送信されてきたレスポンスコードQを受信するレスポンスコード受信部315と、第1のデータ変換装置313が生成した第1の変換コードQとレスポンスコード受信部315が受信したレスポンスコードQとの整合性を判定する照合判定部314と、を有している。
一方、第2の情報処理ユニット320は、第1の情報処理ユニット310から送信されてきたチャレンジコードPを受信するチャレンジコード受信部321と、受信したチャレンジコードPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第2の変換コードQを生成する第2のデータ変換装置322と、この第2の変換コードQをレスポンスコードとして第1の情報処理ユニット310に送信するレスポンスコード送信部323と、を有している。
しかも、第1の情報処理ユニット310側の第1のデータ変換装置313と、第2の情報処理ユニット320側の第2のデータ変換装置322として、§1もしくは§2で述べたデータ変換装置が用いられており、かつ、同じ変換前データPが与えられたときに同じ変換後データQを生成する一対のデータ変換装置が用いられている。
したがって、第2の情報処理ユニット320が正規のユニットであれば、第1の情報処理ユニット310側の第1のデータ変換装置313で実行されるデータ変換処理と、第2の情報処理ユニット320側の第2のデータ変換装置322で実行されるデータ変換処理とは同一の処理になるため、同一の変換前データPを与えれば、同一の変換後データQが得られることになり、照合判定部314での照合結果は合致するはずである。第1の情報処理ユニット310は、このような原理に基づいて、第1のデータ変換装置313が生成した第1の変換コードQとレスポンスコード受信部315が受信したレスポンスコードQとの整合性を判定し、両者が合致した場合に、第2の情報処理ユニット320を正規の装置として認証することになり(認証成功)、合致しなかった場合には、認証に失敗したことになる。
しかしながら、第1の情報処理ユニット310もしくは第2の情報処理ユニット320がクラッカーの手に渡り、第1のデータ変換装置313もしくは第2のデータ変換装置322が変換に用いている特定の暗号化アルゴリズムAや暗号鍵Kが知られてしまうと、クラッカーは偽のデータ変換装置を作成することができるようになり、そのような偽のデータ変換装置を組み込んだ偽の情報処理ユニットを作成することが可能になる。
データ変換装置に利用されている特定の暗号化アルゴリズムAや暗号鍵Kを推定するための方法として、クラッカーがサイドチャネル攻撃による消費電力モニタという手法を使うことは既に述べたとおりである。しかしながら、§1,§2で説明したとおり、本発明に係るデータ変換装置は、このようなサイドチャネル攻撃にも十分に耐えることができる。したがって、本発明に係るデータ変換装置を利用して構成された認証システム300も、サイドチャネル攻撃に十分に耐える性能が備わっている。
なお、図15では、第1の情報処理ユニット310が第2の情報処理ユニット320を認証する場合に必要な構成を示したが、通常、ICカードとリーダライタ装置といった一対のユニットは、交信開始時に相互に相手方を認証するのが一般的である。このような相互認証システムを構成するには、図15の第1の情報処理ユニット310内の構成要素を第2の情報処理ユニット320内にも設け、第2の情報処理ユニット320内の構成要素を第1の情報処理ユニット310内にも設けておくようにすればよい。
<3.2 認証システムの第1の変形例>
続いて、上述した認証システムの変形例を説明する。図16に示す認証システム300Aは、図15に示す認証システム300の第1の変形例を示すブロック図である。この認証システム300Aは、認証システム300に前処理装置を付加したものであり、認証処理を実行する第1の情報処理ユニット310Aと、認証処理の対象となる第2の情報処理ユニット320Aと、を備えている。
ここで、図16に示す第1の情報処理ユニット310Aは、図15に示す第1の情報処理ユニット310に、更に第1の前処理装置316を付加したものであり、図16に示す第2の情報処理ユニット320Aは、図15に示す第2の情報処理ユニット320に、更に第2の前処理装置324を付加したものである。
すなわち、第1の情報処理ユニット310Aでは、チャレンジコード発生部311と第1のデータ変換装置313との間に第1の前処理装置316が介挿され、第2の情報処理ユニット320Aでは、チャレンジコード受信部321と第2のデータ変換装置322との間に第2の前処理装置324が介挿されている。その他の構成要素の機能について変更はなく、図15と図16において、同じ符号で示されている構成要素は同一の機能をもった構成要素である。
各前処理装置316,324は、チャレンジコードP′に所定の前処理を施すことにより前処理コードPを生成する機能を果たす。なお、ここでは、説明の便宜上、チャレンジコードを符号「P′」で示し、このチャレンジコードP′に前処理を施すことにより得られる前処理コードを符号「P」で示すことにする。各前処理装置316,324で実行される前処理は、処理前のデータに基づいて処理後のデータが一義的に得られる処理であれば、どのような処理であってもかまわない。この前処理の具体的な実施例については§3.3で述べる。
結局、図16に示す認証システム300Aにおける第1の情報処理ユニット310Aは、乱数を利用してチャレンジコードP′を発生させるチャレンジコード発生部311と、このチャレンジコードP′を第2の情報処理ユニット320Aに送信するチャレンジコード送信部312と、発生したチャレンジコードP′に所定の前処理を施すことにより第1の前処理コードPを生成する第1の前処理装置316と、生成した第1の前処理コードPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第1の変換コードQを生成する第1のデータ変換装置313と、第2の情報処理ユニット320Aから送信されてきたレスポンスコードQを受信するレスポンスコード受信部315と、第1のデータ変換装置313が生成した第1の変換コードQとレスポンスコード受信部315が受信したレスポンスコードQとの整合性を判定する照合判定部314と、を有している。
一方、第2の情報処理ユニット320Aは、第1の情報処理ユニット310Aから送信されてきたチャレンジコードP′を受信するチャレンジコード受信部321と、受信したチャレンジコードP′に前処理を施すことにより第2の前処理コードPを生成する第2の前処理装置324と、生成した第2の前処理コードPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第2の変換コードQを生成する第2のデータ変換装置322と、生成した第2の変換コードQをレスポンスコードとして第1の情報処理ユニット310Aに送信するレスポンスコード送信部323と、を有している。
しかも、第1の情報処理ユニット310A側の第1のデータ変換装置313と、第2の情報処理ユニット320A側の第2のデータ変換装置322として、§1もしくは§2で述べたデータ変換装置が用いられており、かつ、同じ変換前データPが与えられたときに同じ変換後データQを生成する一対のデータ変換装置が用いられている。また、第1の情報処理ユニット310A側の第1の前処理装置316と、第2の情報処理ユニット320A側の第2の前処理装置324として、同一の前処理を実行する一対の前処理装置が用いられている。
したがって、第2の情報処理ユニット320Aが正規のユニットであれば、第1の情報処理ユニット310A側の第1の前処理装置316で実行される前処理と、第2の情報処理ユニット320A側の第2の前処理装置324で実行される前処理とは同一の処理になるため、同一のチャレンジコードP′を与えれば、同一の前処理コードPが得られることになる。
同様に、第2の情報処理ユニット320Aが正規のユニットであれば、第1のデータ変換装置313で実行されるデータ変換処理と、第2の情報処理ユニット320A側の第2のデータ変換装置322で実行されるデータ変換処理とは同一の処理になるため、同一の前処理コードPに基づくデータ変換処理が行われれば、同一の変換後データQが得られることになり、照合判定部314での照合結果は合致するはずである。
第1の情報処理ユニット310Aは、このような原理に基づいて、第1のデータ変換装置313が生成した第1の変換コードQとレスポンスコード受信部315が受信したレスポンスコードQとの整合性を判定し、両者が合致した場合に、第2の情報処理ユニット320Aを正規の装置として認証することになる。
この図16に示す認証システム300Aでも、第1のデータ変換装置313および第2のデータ変換装置322として、§1もしくは§2で述べたデータ変換装置が用いられているため、クラッカーによるサイドチャネル攻撃に十分に耐えることができる。しかも、この第1の変形例に係る認証システム300Aでは、第1のデータ変換装置313および第2のデータ変換装置322に対して与えられる変換前データPは、チャレンジコードP′ではなく、チャレンジコードP′に対して所定の前処理を施したデータになるため、クラッカーによるサイドチャネル攻撃に対して、より一層の防御機能が作用することになる。
前述したとおり、クラッカーは、第1の情報処理ユニット310Aもしくは第2の情報処理ユニット320Aに対する入出力信号線をモニタして、チャレンジコードP′およびレスポンスコードQを入手するとともに、電力供給線をモニタして、消費電力波形を入手し、これらの情報に対して統計的な解析を行うことにより、第1のデータ変換装置313および第2のデータ変換装置322が採用している暗号化アルゴリズムAおよび暗号鍵Kを推定することになる。
図15に示す認証システム300の場合、データ変換装置313,322に与えられる変換前データPは、入出力信号線のモニタにより傍受されるチャレンジコードP自身であり、データ変換装置313,322から出力される変換後データQは、入出力信号線のモニタにより傍受されるレスポンスコードQ自身である。したがって、クラッカーは、既知の変換前データPに基づいて既知の変換後データQが得られるような暗号化アルゴリズムAおよび暗号鍵Kを推定する作業を、サイドチャネル攻撃で得た消費電力波形図を参照して行えばよい。
本発明に係るデータ変換装置を用いれば、このような推定作業が非常に困難であることは既に述べたとおりであるが、図16に示す認証システム300Aの場合、データ変換装置313,322に与えられる変換前データPは、入出力信号線のモニタにより傍受されるチャレンジコードP′自身ではなく、これに秘密の前処理を施して得られる前処理データPであるため、クラッカーによる不正な解析作業をより困難にさせる効果が得られる。
すなわち、図16に示す認証システム300Aの場合、クラッカーは、チャレンジコードP′とレスポンスコードQとの組み合わせに基づいて、前処理コードPをレスポンスコードQに変換するための暗号化処理の内容を推定する必要がある。もちろん、前処理の内容は秘密であるから、クラッカーは、チャレンジコードP′と前処理コードPとの対応関係が不明であり、前処理コードPとレスポンスコードQとの対応関係も不明である状態において、これらの対応関係を推定する解析を行わねばならない。したがって、図16に示す第1の変形例に係る認証システム300Aは、図15に示す基本的な実施例に係る認証システム300よりも、更に強固なサイドチャネル攻撃に対する耐性を有していることになる。
<3.3 前処理の具体例>
ここでは、図16に示す認証システム300Aの第1の前処理装置316および第2の前処理装置324において実行される前処理の具体的な例をいくつか述べておく。もちろん、各前処理装置316,324で実行される前処理は、以下に述べる例に限定されるものではなく、処理前のデータに基づいて処理後のデータが一義的に得られる処理であれば、どのような処理であってもかまわない。
図17は、認証システム300Aで行われる前処理の第1の例を示す図であり、オフセット値を増減する処理が示されている。この例を採用する場合、第1の前処理装置316および第2の前処理装置324として、処理前のデータを構成する個々のバイトに所定の規則に従ってオフセット値を増減する処理を行う装置を用いるようにすればよい。図17には、処理前のデータDaに所定のオフセット値Offを加算することにより、処理後のデータDbを得る実例が示されている(数字は、いずれも16進表示)。もちろん、オフセット値Offを減算するようにしてもかまわない。
図示の例は、オフセット値Offとして「80」なる1バイトのデータを設定した例である。処理前のデータDaは、5バイトのデータによって構成されているが、この5バイトのデータのそれぞれに、オフセット値「80」が加算されることになる。たとえば、第1バイト目については、「17」+「80」=「97」なる加算が行われ、処理後のデータDbは「97」になる。また、加算結果が桁上がりにより1バイトを超える場合には、下位1バイトのみをとることにする(剰余加算演算)。たとえば、第3バイト目については、「AF」+「80」=「012F」なる加算が行われ、加算結果は2バイトのデータ「012F」になるが、処理後のデータDbとしては、下位1バイトのみをとって「2F」にすればよい。このような処理を行えば、処理後のデータDbのデータ長は、常に処理前のデータDaのデータ長に等しくなる。
図16に示す認証システム300Aの場合、チャレンジコードP′が処理前のデータDaとなり、前処理コードPが処理後のデータDbということになる。各前処理装置316,324は、内部にオフセット値Offを記憶しており、チャレンジコードP′に当該オフセット値Offを増減する演算を行うことにより、前処理コードPを生成することになる。オフセット値Offとしては、常に固定値を用いるようにしてもよいが、予め何通りかのオフセット値Offをテーブルとして用意しておき、所定の順序で選択して用いるようにしてもかまわない。
すなわち、各前処理装置316,324として、処理前のデータDaを構成する個々のバイトに、所定の規則に従って複数k通りの値の中から選択されたオフセット値Offを増減する処理を行う装置を用いるようにし、かつ、前処理装置316,324で同一の選択規則を採用するようにすれば、前処理に用いるオフセット値Offが毎回異なっても、前処理装置316,324では常に同一のオフセット値Offが選択され、常に同一の前処理が行われることになるので支障はない。
もちろん、処理前のデータDaが複数バイトからなる場合は、個々のバイトごとに増減するオフセット値Offを変えることもできる。たとえば、図17に示す例の場合、処理前のデータDaは5バイトから構成され、すべてのバイトに同一のオフセット値「80」を加算しているが、1バイト目にはオフセット値「80」を加算し、2バイト目にはオフセット値「81」を加算し、3バイト目にはオフセット値「82」を加算し、... というように、オフセット値Offをバイトごとにステップ状に増加させてゆくような運用も可能である。
以上、第1の前処理装置316と第2の前処理装置324とにおいて、常に同一の前処理が行われるという前提で説明を行ったが、両者で異なる処理を実行するような若干変則的な照合処理を行うことも可能である。たとえば、第2の情報処理ユニット320A側では、第2の前処理装置324によって、処理前のデータDaを構成する個々のバイトに、複数k通りの値の中からランダムに選択されたオフセット値Offを増減する処理を行う。オフセット値Offの範囲を0〜255とすれば、k=256になり、オフセット値Offは256通りの値の中からランダムに選択された1バイトのデータということになる。
このように、第2の情報処理ユニット320A側で、ランダムにオフセット値Offが選択された場合、第1の情報処理ユニット310A側では、第2の情報処理ユニット320A側で実際に選択されたオフセット値Offを認識することはできない。しかしながら、上例の場合、オフセット値Offは256通りのいずれかであるので、これら256通りのオフセット値Offを用いた256通りのバリエーションについて、総当たり的に照合する処理を行えば、いずれか1つが一致することを確認することにより、第2の情報処理ユニット320Aが正規のユニットであることを認証することが可能である。
具体的には、第1の情報処理ユニット310A側で用いる第1の前処理装置316として、処理前のデータDaを構成する個々のバイトにk通り(上例の場合、k=256)のオフセット値Offを増減する処理を行うことにより、k通りのデータを処理後のデータDb(1)〜Db(k)として得る装置を用いるようにする。一方、第1のデータ変換装置313では、このk通りの処理後のデータDb(1)〜Db(k)を変換前データP(1)〜P(k)として変換処理を行い、k通りの変換後データQ(1)〜Q(k)のバリエーションを得るようにする。
そして、照合判定部314では、このk通りのバリエーションQ(1)〜Q(k)について、それぞれレスポンスデータQに合致するか否かの判定を行い、いずれか1つのバリエーションについて合致する旨の判定が得られた場合に整合性ありとの判定を行うようにすればよい。このような構成を採れば、第2の情報処理ユニット320A側では、全くランダムに選択されたオフセット値Offに基づく前処理が実行されることになり、実際、どのオフセット値Offが選択されたかは、第1の情報処理ユニット310A側でさえ認識できないことになる。したがって、第2の情報処理ユニット320Aに対する不正な解析を一層困難にする効果が得られる。
図18は、認証システム300Aで行われる前処理の第2の例を示す図であり、データの並べ替えを行う処理が示されている。この例を採用する場合、第1の前処理装置316および第2の前処理装置324として、処理前のデータDaの個々の構成要素を所定の規則に従って並び替える処理を行う装置を用いるようにすればよい。
すなわち、この第2の例を採用する場合は、第1の前処理装置316および第2の前処理装置324内に、図18(a) に例示するような並び替えテーブルTを用意しておく。図示する並び替えテーブルTは、5バイトからなるデータについての並び替えを定義するものであるが、実際には、処理前のデータのデータ長に合致した並び替えテーブルを用意しておくようにする。
図示する並び替えテーブルTにおけるB1〜B5は、並び替えの対象となるデータの個々のバイトを示しており、上段は、処理前のデータDa(並び替え前のデータ)の各バイトの並び順を示し、下段は、処理後のデータDb(並び替え後のデータ)の各バイトの並び順を示している。すなわち、この並び替えテーブルTは、処理前のデータDaの第1番目のバイトB1を第4番目のバイトに移動させ、第2番目のバイトB2を第3番目のバイトに移動させ、第3番目のバイトB3を第1番目のバイトに移動させ、第4番目のバイトB4を第5番目のバイトに移動させ、第5番目のバイトB5を第2番目のバイトに移動させる処理を示している。
図18(b) は、5バイトからなる具体的な処理前のデータDaについて、図18(a) に示す並び替えテーブルTに基づく並び替え処理を行うことにより、5バイトからなる処理後のデータDbを作成した例を示す図である(数字は、いずれも16進表示)。同じ5バイトからなるデータではあるが、その並び順が異なるため、処理前のデータDaと処理後のデータDbとは、全く異なるデータになっている。
第1の前処理装置316および第2の前処理装置324内に、図18(a) に例示するような同じ並び替えテーブルTを用意しておけば、両者では同一の前処理が行われることになる。もちろん、複数通りの並び替えテーブルTを用意しておき、所定の選択規則に基づいて、いずれか1つの並び替えテーブルTを選択して利用するようにすることも可能である。
<3.4 認証システムの第2の変形例>
§3.2では、図16を参照しながら、図15に示す認証システム300の第1の変形例である認証システム300Aの構成と動作を説明し、§3.3では、この第1の変形例で実行される前処理の具体例をいくつか述べた。ここでは、図19を参照しながら、図15に示す認証システム300の第2の変形例である認証システム300Bを説明する。この認証システム300Bは、認証システム300に後処理装置を付加したものであり、認証処理を実行する第1の情報処理ユニット310Bと、認証処理の対象となる第2の情報処理ユニット320Bと、を備えている。
ここで、図19に示す第1の情報処理ユニット310Bは、図15に示す第1の情報処理ユニット310に、更に第1の後処理装置317を付加したものであり、図19に示す第2の情報処理ユニット320Bは、図15に示す第2の情報処理ユニット320に、更に第2の後処理装置325を付加したものである。すなわち、第1の情報処理ユニット310Bでは、第1のデータ変換装置313と照合判定部314との間に第1の後処理装置317が介挿され、第2の情報処理ユニット320Bでは、第2のデータ変換装置322とレスポンスコード送信部323との間に第2の後処理装置325が介挿されている。その他の構成要素の機能について変更はなく、図15と図19において、同じ符号で示されている構成要素は同一の機能をもった構成要素である。
各後処理装置317,325は、変換後データQに所定の後処理を施すことにより後処理コードQ′を生成する機能を果たす。なお、ここでは、説明の便宜上、変換後データを符号「Q」で示し、この変換後データQに後処理を施すことにより得られる後処理コードを符号「Q′」で示すことにする。各後処理装置317,325で実行される後処理は、処理前のデータに基づいて処理後のデータが一義的に得られる処理であれば、どのような処理であってもかまわない。具体的には、§3.3で前処理の具体的な実施例として述べた、「オフセット値を増減する処理」(図17)や「データの並べ替え処理」(図18)を後処理としても利用することが可能である。
結局、図19に示す認証システム300Bにおける第1の情報処理ユニット310Bは、乱数を利用してチャレンジコードPを発生させるチャレンジコード発生部311と、このチャレンジコードPを第2の情報処理ユニット320Bに送信するチャレンジコード送信部312と、発生したチャレンジコードPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第1の変換コードQを生成する第1のデータ変換装置313と、この第1の変換コードQに所定の後処理を施すことにより第1の後処理コードQ′を生成する第1の後処理装置317と、第2の情報処理ユニット320Bから送信されてきたレスポンスコードQ′を受信するレスポンスコード受信部315と、第1の後処理装置317が生成した第1の後処理コードQ′とレスポンスコード受信部315が受信したレスポンスコードQ′との整合性を判定する照合判定部314と、を有している。
一方、第2の情報処理ユニット320Bは、第1の情報処理ユニット310Bから送信されてきたチャレンジコードPを受信するチャレンジコード受信部321と、受信したチャレンジコードPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第2の変換コードQを生成する第2のデータ変換装置322と、この第2の変換コードQに後処理を施すことにより第2の後処理コードQ′を生成する第2の後処理装置325と、この第2の後処理コードQ′をレスポンスコードとして第1の情報処理ユニット310Bに送信するレスポンスコード送信部323と、を有している。
しかも、第1の情報処理ユニット310B側の第1のデータ変換装置313と、第2の情報処理ユニット320B側の第2のデータ変換装置322として、§1もしくは§2で述べたデータ変換装置が用いられており、かつ、同じ変換前データPが与えられたときに同じ変換後データQを生成する一対のデータ変換装置が用いられている。また、第1の情報処理ユニット310B側の第1の後処理装置317と、第2の情報処理ユニット320B側の第2の後処理装置325として、同一の後処理を実行する一対の後処理装置が用いられている。
したがって、第2の情報処理ユニット320Bが正規のユニットであれば、第1のデータ変換装置313で実行されるデータ変換処理と、第2のデータ変換装置322で実行されるデータ変換処理とは同一の処理になり、同一のチャレンジコードPに基づくデータ変換処理が行われれば、同一の変換後データQが得られることになる。また、第1の情報処理ユニット310B側の第1の後処理装置317で実行される後処理と、第2の情報処理ユニット320B側の第2の後処理装置325で実行される後処理とは同一の処理になるため、同一の変換後データQを与えれば、同一の後処理コードQ′が得られることになる。したがって、第2の情報処理ユニット320Bが正規のユニットであれば、照合判定部314での照合結果は合致するはずである。
第1の情報処理ユニット310Bは、このような原理に基づいて、第1の後処理装置317が生成した第1の後処理コードQ′とレスポンスコード受信部315が受信したレスポンスコードQ′との整合性を判定し、両者が合致した場合に、第2の情報処理ユニット320Bを正規の装置として認証することになる。
この図19に示す認証システム300Bでも、第1のデータ変換装置313および第2のデータ変換装置322として、§1もしくは§2で述べたデータ変換装置が用いられているため、クラッカーによるサイドチャネル攻撃に十分に耐えることができる。しかも、この第2の変形例に係る認証システム300Bでは、第1のデータ変換装置313および第2のデータ変換装置322が生成する変換後データQがそのままレスポンスコードとしての照合対象になるわけではなく、変換後データQに対して所定の後処理を施した後処理データQ′が照合対象になるため、クラッカーによるサイドチャネル攻撃に対して、より一層の防御機能が作用することになる。
すなわち、クラッカーは、第1の情報処理ユニット310Bもしくは第2の情報処理ユニット320Bに対する入出力信号線をモニタして、チャレンジコードPおよびレスポンスコードQ′を入手するとともに、電力供給線をモニタして、消費電力波形を入手し、これらの情報に対して統計的な解析を行うことにより、第1のデータ変換装置313および第2のデータ変換装置322が採用している暗号化アルゴリズムAおよび暗号鍵Kを推定することになる。
図15に示す認証システム300の場合、データ変換装置313,322に与えられる変換前データPは、入出力信号線のモニタにより傍受されるチャレンジコードP自身であり、データ変換装置313,322から出力される変換後データQは、入出力信号線のモニタにより傍受されるレスポンスコードQ自身である。したがって、クラッカーは、既知の変換前データPに基づいて既知の変換後データQが得られるような暗号化アルゴリズムAおよび暗号鍵Kを推定する作業を、サイドチャネル攻撃で得た消費電力波形図を参照して行えばよい。
本発明に係るデータ変換装置を用いれば、このような推定作業が非常に困難であることは既に述べたとおりであるが、図19に示す認証システム300Bの場合、データ変換装置313,322から出力される変換後データQは、入出力信号線のモニタにより傍受されるレスポンスコードQ′自身ではなく、後処理を施す前の段階のデータであるため、クラッカーによる不正な解析作業をより困難にさせる効果が得られる。
すなわち、図19に示す認証システム300Bの場合、クラッカーは、チャレンジコードPとレスポンスコードQ′との組み合わせに基づいて、チャレンジコードPを変換後データQに変換するための暗号化処理の内容を推定する必要がある。もちろん、後処理の内容は秘密であるから、クラッカーは、レスポンスコードQ′と変換後データQとの対応関係が不明であり、チャレンジコードPと変換後データQとの対応関係も不明である状態において、これらの対応関係を推定する解析を行わねばならない。したがって、図19に示す第2の変形例に係る認証システム300Bは、図15に示す基本的な実施例に係る認証システム300よりも、更に強固なサイドチャネル攻撃に対する耐性を有していることになる。
<3.5 認証システムの第3の変形例>
ここでは、図20を参照しながら、図15に示す認証システム300の第3の変形例である認証システム300Cを説明する。この認証システム300Cは、認証システム300に前処理装置と後処理装置との双方を付加したものであり、認証処理を実行する第1の情報処理ユニット310Cと、認証処理の対象となる第2の情報処理ユニット320Cと、を備えている。この第3の変形例に係る認証システム300Cは、いわば、第1の変形例に係る認証システム300Aと第2の変形例に係る認証システム300Bとを融合させたシステムということができる。
すなわち、図20に示す第1の情報処理ユニット310Cは、図15に示す第1の情報処理ユニット310に、更に第1の前処理装置316および第1の後処理装置317を付加したものであり、図20に示す第2の情報処理ユニット320Cは、図15に示す第2の情報処理ユニット320に、更に第2の前処理装置324および第2の後処理装置325を付加したものである。
具体的には、第1の情報処理ユニット310Cでは、チャレンジコード発生部311と第1のデータ変換装置313との間に第1の前処理装置316が介挿され、第1のデータ変換装置313と照合判定部314との間に第1の後処理装置317が介挿されている。一方、第2の情報処理ユニット320Cでは、チャレンジコード受信部321と第2のデータ変換装置322との間に第2の前処理装置324が介挿され、第2のデータ変換装置322とレスポンスコード送信部323との間に第2の後処理装置325が介挿されている。その他の構成要素の機能について変更はなく、図15と図20において、同じ符号で示されている構成要素は同一の機能をもった構成要素である。
各前処理装置316,324は、チャレンジコードP′に所定の前処理を施すことにより前処理コードPを生成する機能を果たし、各後処理装置317,325は、変換後データQに所定の後処理を施すことにより後処理コードQ′を生成する機能を果たす。なお、ここでも、説明の便宜上、チャレンジコードを符号「P′」で示し、このチャレンジコードP′に前処理を施すことにより得られる前処理コードを符号「P」で示し、変換後データを符号「Q」で示し、この変換後データQに後処理を施すことにより得られる後処理コードを符号「Q′」で示すことにする。
結局、図20に示す認証システム300Cにおける第1の情報処理ユニット310Cは、乱数を利用してチャレンジコードP′を発生させるチャレンジコード発生部311と、このチャレンジコードP′を第2の情報処理ユニット320Cに送信するチャレンジコード送信部312と、発生したチャレンジコードP′に所定の前処理を施すことにより第1の前処理コードPを生成する第1の前処理装置316と、この第1の前処理コードPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第1の変換コードQを生成する第1のデータ変換装置313と、生成した第1の変換コードQに所定の後処理を施すことにより第1の後処理コードQ′を生成する第1の後処理装置317と、第2の情報処理ユニット320Cから送信されてきたレスポンスコードQ′を受信するレスポンスコード受信部315と、第1の後処理装置317が生成した第1の後処理コードQ′とレスポンスコード受信部315が受信したレスポンスコードQ′との整合性を判定する照合判定部314と、を有している。
一方、第2の情報処理ユニット320Cは、第1の情報処理ユニット310Cから送信されてきたチャレンジコードP′を受信するチャレンジコード受信部321と、受信したチャレンジコードP′に前処理を施すことにより第2の前処理コードPを生成する第2の前処理装置324と、この第2の前処理コードPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第2の変換コードQを生成する第2のデータ変換装置322と、生成した第2の変換コードQに後処理を施すことにより第2の後処理コードQ′を生成する第2の後処理装置325と、この第2の後処理コードQ′をレスポンスコードとして第1の情報処理ユニット310Cに送信するレスポンスコード送信部323と、を有している。
しかも、第1の情報処理ユニット310C側の第1のデータ変換装置313と、第2の情報処理ユニット320C側の第2のデータ変換装置322として、§1もしくは§2で述べたデータ変換装置が用いられており、かつ、同じ変換前データPが与えられたときに同じ変換後データQを生成する一対のデータ変換装置が用いられている。また、第1の情報処理ユニット310C側の第1の前処理装置316と、第2の情報処理ユニット320C側の第2の前処理装置324として、同一の前処理を実行する一対の前処理装置が用いられており、第1の情報処理ユニット310C側の第1の後処理装置317と、第2の情報処理ユニット320C側の第2の後処理装置325として、同一の後処理を実行する一対の後処理装置が用いられている。
なお、各前処理装置316,324で実行される前処理および各後処理装置317,325で実行される後処理は、処理前のデータに基づいて処理後のデータが一義的に得られる処理であれば、どのような処理であってもかまわない。具体的には、§3.3で前処理の具体的な実施例として述べた、「オフセット値を増減する処理」(図17)や「データの並べ替え処理」(図18)を利用することが可能である。
この第3の変形例に係る認証システム300Cの場合も、第2の情報処理ユニット320Cが正規のユニットであれば、照合判定部314での照合結果は合致するはずである。したがって、第1の情報処理ユニット310Cは、第1の後処理装置317が生成した第1の後処理コードQ′とレスポンスコード受信部315が受信したレスポンスコードQ′との整合性を判定し、両者が合致した場合に、第2の情報処理ユニット320Cを正規の装置として認証することになる。
この第3の変形例に係る認証システム300Cは、第1の変形例に係る認証システム300Aの利点と、第2の変形例に係る認証システム300Bの利点との双方を備えているため、サイドチャネル攻撃に対して極めて高い耐性を有していることになる。
<3.6 本発明に係る認証方法>
ここでは、これまで述べてきた認証システムに係る発明を、認証方法という方法の発明として捉え、その基本手順を図21に示す流れ図を参照しながら説明する。以下に述べる方法は、§1.4または§2.2で説明したデータ変換方法を利用して、一方の情報処理ユニットが他方の情報処理ユニットを正規の情報処理ユニットであることを認証する認証方法ということになる。実際には、図21に示す個々の手順は、図15に例示するような認証処理を実行する第1の情報処理ユニット310と認証処理の対象となる第2の情報処理ユニット320(いずれも、専用の処理機能を備えた半導体集積回路もしくは専用のプログラムが組み込まれたコンピュータ)によって実行されることになる。
図21に示すとおり、この基本手順は、ステップS11〜S18によって構成されており、認証処理を実行する第1の情報処理ユニット310が認証処理の対象となる第2の情報処理ユニット320を正規の情報処理ユニットであることを認証するための手順である。ここで、ステップS11〜S13およびS17,S18は、第1の情報処理ユニット310によって実行される手順であり、ステップS14〜S16は、第2の情報処理ユニット320によって実行される手順である。以下、各手順を順に説明する。
まず、第1の情報処理ユニット310によって、ステップS11〜S13の処理が行われる。すなわち、ステップS11のチャレンジコード発生段階では、乱数を利用してチャレンジコードPを発生させる処理が行われ、ステップS12の第1のデータ変換段階では、このチャレンジコードPを第1の変換コードQに変換する処理が行われ、ステップS13のチャレンジコード送信段階では、ステップS11で発生させたチャレンジコードPを第2の情報処理ユニット320に送信する処理が行われる。
一方、第2の情報処理ユニット320によって、ステップS14〜S16の処理が行われる。すなわち、ステップS14のチャレンジコード受信段階では、ステップS13で送信されたチャレンジコードPを受信する処理が行われ、ステップS15の第2のデータ変換段階では、受信したチャレンジコードPを第2の変換コードQに変換する処理が行われ、ステップS16のレスポンスコード送信段階では、変換した第2の変換コードQをレスポンスコードとして第1の情報処理ユニット310に送信する処理が行われる。
続いて、第1の情報処理ユニット310によって、ステップS17〜S18の処理が行われる。すなわち、ステップS17のレスポンスコード受信段階では、第2の情報処理ユニット320から送信されてきたレスポンスコードQを受信する処理が行われ、ステップS18の照合判定段階では、ステップS12の第1のデータ変換段階の処理で得られた第1の変換コードQと、ステップS17のレスポンスコード受信段階で受信されたレスポンスコードQとの整合性が判定される。ここに示す実施例の場合、両者が一致すれば整合性有りと判定され、第1の情報処理ユニット310によって第2の情報処理ユニット320が正規のユニットである旨の認証がなされることになる。
ここで、ステップS12の第1のデータ変換段階およびステップS15の第2のデータ変換段階では、§1.4または§2.2で説明したデータ変換方法であって、同じ変換前データPが与えられたときに同じ変換後データQを生成する同じデータ変換方法を含む変換方法が用いられる。
また、§3.2〜§3.5では、データ変換を行う前に前処理を行ったり、データ変換を行った後に後処理を行ったりする変形例を述べたが、このような変形例を実施する場合には、ステップS12の第1のデータ変換段階およびステップS15の第2のデータ変換段階において、データ変換方法を実行する前に所定の前処理を実行するか(§3.2で述べた第1の変形例の場合)、もしくは、実行した後に所定の後処理を実行するか(§3.4で述べた第2の変形例の場合)、または、前処理と後処理との双方を実行するようにすればよい(§3.5で述べた第3の変形例の場合)。
なお、この図21に示す各ステップS11〜S18の処理順は、必ずしも図示の順に行う必要はない。たとえば、ステップS12の処理をステップS17の処理の後に行うこともできるし、ステップS12の処理とステップS15の処理とを並行して同時に行うこともできる。図21に示す各ステップの順序は一例を示すものであり、処理に不都合が生じない限り、任意の順序で実行することができる。
<<< §4. 本発明に係る秘匿通信システム >>>
§3では、§1,§2で述べたデータ変換装置を認証システムに応用した実施形態を述べたが、ここでは秘匿通信システムに応用した実施形態を述べる。より具体的には、一対のユニット間で情報の送受を行う場合に、送受する情報を暗号化して秘匿状態での通信を可能にするシステムへ応用した技術ということになる。
<4.1 本発明に係る秘匿通信システムの構成および動作>
図22は、本発明に係る秘匿通信システム400の基本構成を示すブロック図である。この秘匿通信システム400は、秘匿情報を送信する第1の情報処理ユニット410と、秘匿情報を受信する第2の情報処理ユニット420と、を備えたシステムであり、第1の情報処理ユニット410から第2の情報処理ユニット420に対して、所定の情報を秘匿状態にして送信することができる。
図示のとおり、第1の情報処理ユニット410は、所定の規則に従ってデータストリームDSを生成する第1のストリーム生成装置411と、この第1のストリーム生成装置411が生成したデータストリームDSに対して所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第1の変換コード(鍵ストリーム)KSを生成する第1のデータ変換装置412と、送信対象となる平文データDPを第1の変換コード(鍵ストリームKS)を利用して暗号化して暗号文データDCを得る暗号化装置413と、暗号文データDCを第2の情報処理ユニット420に送信する暗号文送信装置414と、を有している。
一方、第2の情報処理ユニット420は、第1のストリーム生成装置411と同じ規則に従ってデータストリームDSを生成する第2のストリーム生成装置421と、この第2のストリーム生成装置421が生成したデータストリームDSに対して所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第2の変換コード(鍵ストリーム)KSを生成する第2のデータ変換装置422と、暗号文送信装置414から送信されてきた暗号文データDCを受信する暗号文受信装置423と、受信した暗号文データDCを第2の変換コード(鍵ストリームKS)を利用して復号して平文データDPを得る復号装置424と、を有している。
ここで、第1のデータ変換装置412および第2のデータ変換装置422として、§1もしくは§2で述べたデータ変換装置が用いられており、かつ、同じ変換前データPが与えられたときに同じ変換後データQを生成する一対のデータ変換装置が用いられている。
より具体的に説明すると、第1のストリーム生成装置411および第2のストリーム生成装置421は、所定の規則に従って単位データの順列からなるデータストリームDSを生成する機能を有しており、第1のデータ変換装置412および第2のデータ変換装置422は、このデータストリームDSを構成する個々の単位データに対して演算を実行することにより個々の変換コード(単位鍵データ)を求め、これら単位鍵データの順列からなる鍵ストリームKSを生成する機能を有している。
図23は、図22に示す秘匿通信システム400で用いられるデータストリームDSおよび鍵ストリームKSの一例を示す図である。図示の例の場合、データストリームDSおよび鍵ストリームKSは、いずれも8バイトのデータ長Lをもった単位データの順列によって構成される。
すなわち、データストリームDSは、単位データDS0,DS1,DS2,... ,DSZの順列によって構成され、これらの各単位データはいずれも8バイトのデータによって構成されている。しかも、図示の例の場合、単位データDS0は「00 00 00 00 00 00 00 00」、DS1は「00 00 00 00 00 00 00 01」、DS2は「00 00 00 00 00 00 00 02」、… と1ずつ増加してゆき、最後のDSZは「FF FF FF FF FF FF FF FF」となっている(いずれも、16進表示)。
このような単位データの順列からなるデータストリームDSを生成するには、第1のストリーム生成装置411および第2のストリーム生成装置421として、8バイトのカウント値を出力することが可能なカウンタ回路を用いればよい。第1のストリーム生成装置411として機能するカウンタ回路と、第2のストリーム生成装置421として機能するカウンタ回路とが、所定の初期値(図示の例の場合は初期値「00 00 00 00 00 00 00 00」)から同期して計数動作を行うようにしておけば、両者は、同一のデータストリームDSを生成することができる。もちろん、カウンタ回路のカウント値は、必ずしも1ずつ増加させる必要はなく、任意の数ずつ増加させてもよいし、逆に減少させてもよい。あるいは、単純なカウンタ回路の代わりに、フィボナッチ数列などの特殊な数列を発生させる回路を用いることもできる。
こうして生成されたデータストリームDSを構成する個々の単位データDS0,DS1,DS2,... は、順次、第1のデータ変換装置412および第2のデータ変換装置422に与えられ、図23の右に示すような単位鍵データKS0,KS1,KS2,... に変換される。これら単位鍵データKS0,KS1,KS2,... の順列が鍵ストリームKSということになる。ここで、第1のデータ変換装置412および第2のデータ変換装置422の実体は、§1,§2で述べたデータ変換装置であり、個々の単位データDS0,DS1,DS2,... のそれぞれを変換前データPとして、個々の単位鍵データKS0,KS1,KS2,... のそれぞれを変換後データQとするデータ変換処理が行われることになる。元のデータストリームDSが、1ずつ増加する規則的な数列によって構成されていたのに対して、データ変換処理によって得られる鍵ストリームKSは、不規則な数列によって構成されている。
一方、暗号化装置413は、平文データDPを所定データ長Lの単位平文データDP0,DP1,DP2,... に分割し、個々の単位平文データDP0,DP1,DP2,... を、鍵ストリームKSを構成する個々の単位鍵データKS0,KS1,KS2,... を利用して暗号化することにより個々の単位暗号文データDC0,DC1,DC2,... を生成する。これら単位暗号文データDC0,DC1,DC2,... の集合体が、暗号文送信装置414によって送信される暗号文データDCということになる。
図24の上半分には、暗号化装置413による暗号文データDCの生成処理の一例が示されている。すなわち、図24の1行目に示されているように、与えられた平文データDPは、先頭から所定のデータ長L(たとえば、L=8バイト)の単位で分割され、個々の単位平文データDP0,DP1,DP2,DP3,... が得られる。そして、これら単位平文データDP0,DP1,DP2,DP3,... に対して、それぞれ鍵ストリームKSを構成する単位鍵データKS0,KS1,KS2,KS3,... (図24の2行目参照)を利用した暗号化処理が施され、単位暗号文データDC0,DC1,DC2,DC3,... が生成される(図24の3行目参照)。
暗号化装置413による暗号化処理には、どのようなアルゴリズムに基づく処理を用いてもかまわないが、図24に示す例では、排他的論理和をとるアルゴリズムが利用されている(もちろん、排他的論理和ではなく、単位鍵データを加算したり減算したりするアルゴリズムなどを利用してもかまわない)。すなわち、単位平文データDP0と単位鍵データKS0との排他的論理和演算が暗号化処理の演算ということになり、得られた排他的論理和が単位暗号文データDC0ということになる。同様に、単位平文データDP1と単位鍵データKS1との排他的論理和が単位暗号文データDC1になり、単位平文データDP2と単位鍵データKS2との排他的論理和が単位暗号文データDC2になり、単位平文データDP3と単位鍵データKS3との排他的論理和が単位暗号文データDC3になる。
こうして得られた単位暗号文データDC0,DC1,DC2,DC3,... は、暗号文データDCとして、第2の情報処理ユニット420へと送信される。
一方、第2の情報処理ユニット420側では、復号装置424による復号が行われる。復号装置424は、受信した暗号文データDCを所定データ長Lの単位暗号文データDC0,DC1,DC2,DC3,... に分割し、個々の単位暗号文データDC0,DC1,DC2,DC3,... を、鍵ストリームKSを構成する個々の単位鍵データKS0,KS1,KS2,... を利用して復号することにより個々の単位平文データDP0,DP1,DP2,... を生成する。これら単位平文データDP0,DP1,DP2,... の集合体が、平文データDPということになる。
図24の下半分には、復号装置424による暗号文データDCの復号処理の一例が示されている。すなわち、図24の3行目に示されているように、与えられた暗号文データDCは、先頭から所定のデータ長L(この例の場合は、L=8バイト)の単位で分割され、個々の単位暗号文データDC0,DC1,DC2,DC3,... が得られる。そして、これら単位暗号文データDC0,DC1,DC2,DC3,... に対して、それぞれ鍵ストリームKSを構成する単位鍵データKS0,KS1,KS2,KS3,... (図24の4行目参照)を利用した復号処理が施され、単位平文データDP0,DP1,DP2,DP3,... が生成される(図24の5行目参照)。
ここに示す例の場合、暗号化装置413による暗号化処理として排他的論理和をとるアルゴリズムが利用されているので、復号処理にも、排他的論理和をとるアルゴリズムが利用される。これは、一般に、論理値Aと鍵Kとの排他的論理和演算によって論理値Bが得られた場合、論理値Bと鍵Kとの排他的論理和演算によって元の論理値Aが得られる性質を利用した復号を行うためである。
具体的には、単位暗号文データDC0と単位鍵データKS0との排他的論理和演算が復号処理の演算ということになり、得られた排他的論理和が単位平文データDP0ということになる。同様に、単位暗号文データDC1と単位鍵データKS1との排他的論理和が単位平文データDP1になり、単位暗号文データDC2と単位鍵データKS2との排他的論理和が単位平文データDP2になり、単位暗号文データDC3と単位鍵データKS3との排他的論理和が単位平文データDP3になる。
こうして得られた単位平文データDP0,DP1,DP2,DP3,... の集合体が、元の平文データDPということになる。
このような秘匿通信システム400において、通信経路上の秘匿性を維持するためには、鍵ストリームKSの秘匿性を確保する必要がある。上例の場合、鍵ストリームKSの元になるデータストリームDSは、カウンタからなるストリーム生成装置411,421で発生させた規則的なカウント値(図23左参照)であるが、データ変換装置412,422によるデータ変換処理により得られた鍵ストリームKSは、類推困難なデータ列(図23右参照)になるので、鍵ストリームKSの秘匿性を十分に確保することができる。既に述べたとおり、クラッカーによるサイドチャネル攻撃を受けたとしても、データ変換装置412,422が用いている暗号化アルゴリズムAや暗号鍵Kを解析することは非常に困難である。
<4.2 本発明に係る秘匿通信方法>
ここでは、これまで述べてきた秘匿通信システムに係る発明を、秘匿通信方法という方法の発明として捉え、その基本手順を図25に示す流れ図を参照しながら説明する。以下に述べる方法は、§1.4または§2.2で説明したデータ変換方法を利用して、一方の情報処理ユニットから他方の情報処理ユニットに対して秘匿情報を送信する秘匿通信方法ということになる。実際には、図25に示す個々の手順は、図22に例示する第1の情報処理ユニット410と第2の情報処理ユニット420(いずれも、専用の処理機能を備えた半導体集積回路もしくは専用のプログラムが組み込まれたコンピュータ)によって実行されることになる。
図25に示すとおり、この基本手順は、ステップS21〜S28によって構成される。ここで、ステップS21〜S24は、第1の情報処理ユニット410によって実行される手順であり、ステップS25〜S28は、第2の情報処理ユニット420によって実行される手順である。以下、各手順を順に説明する。
まず、第1の情報処理ユニット410によって、ステップS21〜S24の処理が行われる。すなわち、ステップS21の第1のストリーム生成段階では、所定の規則(上例の場合、カウンタ値を、初期値0から順次1ずつ増加させるという規則)に従って、個々の単位データの順列からなるデータストリームDSを生成する処理が行われ、ステップS22の第1のデータ変換段階では、ステップS21で生成されたデータストリームDSを構成する個々の単位データDS0,DS1,DS2,... を第1の変換コード(単位鍵データ)KS0,KS1,KS2,... に変換する処理が行われる(図23参照)。そして、ステップS23の暗号化段階では、送信対象となる平文データDPを第1の変換コードKS0,KS1,KS2,... を利用して暗号化して暗号文データDCを得る処理が行われ、ステップS24の暗号文送信段階では、こうして得られた暗号文データDCを第2の情報処理ユニット420に送信する処理が行われる。
一方、第2の情報処理ユニット420によって、ステップS25〜S28の処理が行われる。すなわち、ステップS25の暗号文受信段階では、第1の情報処理ユニット410から送信されてきた暗号文データDCを受信する処理が行われ、ステップS26の第2のストリーム生成段階では、ステップS21の第1のストリーム生成段階と同じ規則に従ってデータストリームDSを生成する処理が行われる。そして、ステップS27の第2のデータ変換段階では、ステップS26で生成されたデータストリームDSを構成する個々の単位データDS0,DS1,DS2,... を第2の変換コード(単位鍵データ)KS0,KS1,KS2,... に変換する処理が行われる(図23参照)。そして、ステップS28の復号段階では、暗号文データDCを第2の変換コードKS0,KS1,KS2,... を利用して復号し、元の平文データDPを得る処理が行われる。
ここで、ステップS22の第1のデータ変換段階およびステップS27の第2のデータ変換段階では、§1.4または§2.2で説明したデータ変換方法であって、同じ変換前データPが与えられたときに同じ変換後データQを生成する同じデータ変換方法が用いられる。
10:データ変換装置
100:データ変換装置
111:第1番目の暗号化処理部
112:第2番目の暗号化処理部
11i:第i番目の暗号化処理部
11n:第n番目の暗号化処理部
120:合成処理部
200:データ変換装置
210:暗号化処理部
220:合成処理部
300,300A,300B,300C:認証システム
310,310A,310B,310C:第1の情報処理ユニット
311:チャレンジコード発生部
312:チャレンジコード送信部
313:第1のデータ変換装置
314:照合判定部
315:レスポンスコード受信部
316:第1の前処理装置
317:第1の後処理装置
320,320A,320B,320C:第2の情報処理ユニット
321:チャレンジコード受信部
322:第2のデータ変換装置
323:レスポンスコード送信部
324:第2の前処理装置
325:第2の後処理装置
400:秘匿通信システム
410:第1の情報処理ユニット
411:第1のストリーム生成装置
412:第1のデータ変換装置
413:暗号化装置
414:暗号文送信装置
420:第2の情報処理ユニット
421:第2のストリーム生成装置
422:第2のデータ変換装置
423:暗号文受信装置
424:復号装置
A:暗号化アルゴリズム
A1:第1番目の暗号化アルゴリズム
A2:第2番目の暗号化アルゴリズム
Ai:第i番目の暗号化アルゴリズム
An:第n番目の暗号化アルゴリズム
B1〜B5:データの個々のバイト
C1:第1番目の暗号データ
C2:第2番目の暗号データ
C3:第3番目の暗号データ
C4:第4番目の暗号データ
Ci:第i番目の暗号データ
Cn:第n番目の暗号データ
D1:第1番目の暗号化処理装置
D2:第2番目の暗号化処理装置
Di:第i番目の暗号化処理装置
Dn:第n番目の暗号化処理装置
Da:処理前のデータ
Db:処理後のデータ
DC:暗号文データ
DC0〜DC3:単位暗号文データ
DP:平文データ
DP0〜DP3:単位平文データ
DS:データストリーム
DS0〜DSZ:単位データ
E1:第1番目の暗号化処理
E2:第2番目の暗号化処理
Ei:第i番目の暗号化処理
En:第n番目の暗号化処理
H:順序決定アルゴリズム
i:データの番号を示すパラメータ
j:ビットの番号を示すパラメータ
K:暗号鍵
K1:第1番目の暗号鍵
K2:第2番目の暗号鍵
Ki:第i番目の暗号鍵
Kn:第n番目の暗号鍵
KS:鍵ストリーム
KS0〜KSZ:単位鍵データ(変換コード)
L:データ長
Off:オフセット値
P:変換前データ/チャレンジコード
P′:チャレンジコード
Q:変換後データ/レスポンスコード
Q′:レスポンスコード
S:合成処理アルゴリズム
S1〜S28:流れ図の各ステップ
T:並び替えテーブル
t:時間
t0〜t8:各時点
W:消費電力
Z1〜Z3,Z(n−1):演算結果

Claims (16)

  1. 変換前データPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより、変換後データQを生成するデータ変換装置であって、
    複数n通り(但し、n≧2)の暗号化処理を所定の実行順序に従って実行する暗号化処理部と、このn通りの暗号化処理によって得られた暗号データを合成する合成処理部と、を備え、
    前記暗号化処理部が実行する第i番目(但し、1≦i≦n)の暗号化処理は、前記変換前データPに対して、第i番目の暗号鍵Kiを用いた第i番目の暗号化アルゴリズムAiに基づく暗号化処理の演算を施すことにより、第i番目の暗号データCiを得る処理であり、
    前記合成処理部は、第1番目〜第n番目の暗号化処理によって得られた合計n組の暗号データC1〜Cnを所定の合成処理アルゴリズムSに基づいて合成し、得られた合成データQを前記変換後データQとして出力し、
    前記合成処理アルゴリズムSは、前記n組の暗号データC1〜Cnに基づいて一義的に合成データQが定まるアルゴリズムであり、かつ、前記合成データQに基づいて前記n組の暗号データC1〜Cnを復元することはできない非可逆的な合成を行うアルゴリズムであり、
    前記暗号化処理部は、前記変換前データPが与えられるたびに、所定の順序決定アルゴリズムHに基づいて、前記実行順序を決定し、
    合成処理部が、n組の暗号データC1〜Cnの中から2組の暗号データを選択し、選択された2組の暗号データについて所定の論理演算を実行し、未選択の暗号データが存在する限り、当該未選択の暗号データのうちの1組を新たに選択し、直前に行われた論理演算の演算結果と新たに選択された暗号データとについての論理演算を繰り返し実行し、最終的に得られた論理演算の演算結果を合成データQとし、
    暗号化処理部によって、n組の暗号データC1〜Cnが互いに同一のデータ長となるような暗号化処理を実行し、
    2組のデータについての論理演算として、当該2組のデータを同一の分割態様に基づいてそれぞれ分割することにより、それぞれ複数u個の分割データを作成し、所定ビット長mを有する第j番目(1≦j≦u)の分割データ同士の和の下位mビットを第j番目の分割演算結果として求める処理をj=1〜uについて実行し、第1番目の分割演算結果〜第u番目の分割演算結果を連結する演算を実行することを特徴とするデータ変換装置。
  2. 請求項1に記載のデータ変換装置において、
    複数n通りの暗号化処理にそれぞれ用いられる暗号化アルゴリズムおよび暗号鍵は、相互に、暗号化アルゴリズムおよび暗号鍵のうちの少なくとも一方が異なっていることを特徴とするデータ変換装置。
  3. 請求項2に記載のデータ変換装置において、
    複数n通りの暗号化処理には、同一の共通暗号化アルゴリズムに基づく演算が行われ、かつ、相互に異なる暗号鍵を用いた演算が行われることを特徴とするデータ変換装置。
  4. 請求項に記載のデータ変換装置において、
    暗号化処理部によって、n組の暗号データC1〜Cnのデータ長が同一となるような暗号化処理を実行し、
    2組のデータについての論理演算として、排他的論理和演算を実行することを特徴とするデータ変換装置。
  5. 請求項1〜3のいずれかに記載のデータ変換装置において、
    合成処理部が、n組の暗号データC1〜Cnを連結して得られる連結データに対して、一方向性関数を作用させることにより得られるデータを合成データQとすることを特徴とするデータ変換装置。
  6. 請求項1〜のいずれかに記載のデータ変換装置を利用した認証システムであって、
    認証処理を実行する第1の情報処理ユニットと、認証処理の対象となる第2の情報処理ユニットと、を備え、
    前記第1の情報処理ユニットは、乱数を利用してチャレンジコードを発生させるチャレンジコード発生部と、前記チャレンジコードを前記第2の情報処理ユニットに送信するチャレンジコード送信部と、前記チャレンジコードに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第1の変換コードを生成する第1のデータ変換装置と、前記第2の情報処理ユニットから送信されてきたレスポンスコードを受信するレスポンスコード受信部と、前記第1の変換コードと前記レスポンスコードとの整合性を判定する照合判定部と、を有し、
    前記第2の情報処理ユニットは、前記第1の情報処理ユニットから送信されてきたチャレンジコードを受信するチャレンジコード受信部と、受信したチャレンジコードに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第2の変換コードを生成する第2のデータ変換装置と、前記第2の変換コードをレスポンスコードとして前記第1の情報処理ユニットに送信するレスポンスコード送信部と、を有し、
    前記第1のデータ変換装置および前記第2のデータ変換装置として、請求項1〜のいずれかに記載のデータ変換装置であって、同じ変換前データPが与えられたときに同じ変換後データQを生成する一対のデータ変換装置を用いることを特徴とする認証システム。
  7. 請求項1〜のいずれかに記載のデータ変換装置を利用した認証システムであって、
    認証処理を実行する第1の情報処理ユニットと、認証処理の対象となる第2の情報処理ユニットと、を備え、
    前記第1の情報処理ユニットは、乱数を利用してチャレンジコードを発生させるチャレンジコード発生部と、前記チャレンジコードを前記第2の情報処理ユニットに送信するチャレンジコード送信部と、前記チャレンジコードに所定の前処理を施すことにより第1の前処理コードを生成する第1の前処理装置と、前記第1の前処理コードに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第1の変換コードを生成する第1のデータ変換装置と、前記第2の情報処理ユニットから送信されてきたレスポンスコードを受信するレスポンスコード受信部と、前記第1の変換コードと前記レスポンスコードとの整合性を判定する照合判定部と、を有し、
    前記第2の情報処理ユニットは、前記第1の情報処理ユニットから送信されてきたチャレンジコードを受信するチャレンジコード受信部と、受信したチャレンジコードに前記前処理を施すことにより第2の前処理コードを生成する第2の前処理装置と、前記第2の前処理コードに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第2の変換コードを生成する第2のデータ変換装置と、前記第2の変換コードをレスポンスコードとして前記第1の情報処理ユニットに送信するレスポンスコード送信部と、を有し、
    前記第1のデータ変換装置および前記第2のデータ変換装置として、請求項1〜のいずれかに記載のデータ変換装置であって、同じ変換前データPが与えられたときに同じ変換後データQを生成する一対のデータ変換装置を用いることを特徴とする認証システム。
  8. 請求項に記載の認証システムにおいて、
    第1の前処理装置および第2の前処理装置として、処理前のデータを構成する個々のバイトに所定の規則に従ってオフセット値を増減する処理を行う装置を用いることを特徴とする認証システム。
  9. 請求項に記載の認証システムにおいて、
    第2の前処理装置として、処理前のデータを構成する個々のバイトに、複数k通りの値の中からランダムに選択されたオフセット値を増減する処理を行う装置を用い、
    第1の前処理装置として、処理前のデータを構成する個々のバイトに前記k通りのオフセット値を増減する処理を行うことによりk通りのデータを処理後のデータとして得る装置を用い、
    照合判定部が、k通りのバリエーションについて合致判定を行い、いずれか1つのバリエーションについて合致する旨の判定が得られた場合に整合性ありとの判定を行うことを特徴とする認証システム。
  10. 請求項に記載の認証システムにおいて、
    第1の前処理装置および第2の前処理装置として、処理前のデータの個々の構成要素を所定の規則に従って並び替える処理を行う装置を用いることを特徴とする認証システム。
  11. 請求項1〜のいずれかに記載のデータ変換装置を利用した秘匿通信システムであって、
    秘匿情報を送信する第1の情報処理ユニットと、秘匿情報を受信する第2の情報処理ユニットと、を備え、
    前記第1の情報処理ユニットは、所定の規則に従ってデータストリームを生成する第1のストリーム生成装置と、前記第1のストリーム生成装置が生成したデータストリームに対して所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第1の変換コードを生成する第1のデータ変換装置と、送信対象となる平文データを前記第1の変換コードを利用して暗号化して暗号文データを得る暗号化装置と、前記暗号文データを前記第2の情報処理ユニットに送信する暗号文送信装置と、を有し、
    前記第2の情報処理ユニットは、前記規則に従ってデータストリームを生成する第2のストリーム生成装置と、前記第2のストリーム生成装置が生成したデータストリームに対して所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより第2の変換コードを生成する第2のデータ変換装置と、前記暗号文送信装置から送信されてきた暗号文データを受信する暗号文受信装置と、受信した暗号文データを前記第2の変換コードを利用して復号して平文データを得る復号装置と、を有し、
    前記第1のデータ変換装置および前記第2のデータ変換装置として、請求項1〜のいずれかに記載のデータ変換装置であって、同じ変換前データPが与えられたときに同じ変換後データQを生成する一対のデータ変換装置を用いることを特徴とする秘匿通信システム。
  12. 請求項11に記載の秘匿通信システムにおいて、
    第1のストリーム生成装置および第2のストリーム生成装置が、所定の規則に従って単位データの順列からなるデータストリームを生成し、
    第1のデータ変換装置および第2のデータ変換装置が、データストリームを構成する個々の単位データに対して演算を実行することにより個々の変換コードを求め、これら変換コードの順列からなる鍵ストリームを生成し、
    暗号化装置が、平文データを所定データ長の単位平文データに分割し、個々の単位平文データを前記鍵ストリームを構成する個々の変換コードを利用して暗号化することにより個々の単位暗号文データを生成し、この単位暗号文データの集合体として暗号文データを生成し、
    復号装置が、暗号文データを所定データ長の単位暗号文データに分割し、個々の単位暗号文データを前記鍵ストリームを構成する個々の変換コードを利用して復号することにより個々の単位平文データを生成し、この単位平文データの集合体として平文データを生成することを特徴とする秘匿通信システム。
  13. 変換前データPに対して、所定の暗号鍵を用いた所定の暗号化アルゴリズムに基づく演算を施すことにより、変換後データQを生成するデータ変換方法であって、
    複数n通り(但し、n≧2)の暗号化処理を所定の実行順序に従って実行する暗号化処理装置を用意し、第i番目(但し、1≦i≦n)の暗号化処理により、前記変換前データPに対して第i番目の暗号データCiを求める演算を実行することにより、第1番目〜第n番目の暗号データC1〜Cnを求める暗号化処理段階と、
    合成処理装置により、前記暗号データC1〜Cnを所定の合成処理アルゴリズムSに基づいて合成し、得られた合成データQを前記変換後データQとして出力する合成処理段階と、
    を有し、
    前記複数n通りの暗号化処理のうち、第i番目(但し、1≦i≦n)の暗号化処理は、前記変換前データPに対して、第i番目の暗号鍵Kiを用いた第i番目の暗号化アルゴリズムAiに基づく暗号化処理の演算を施すことにより、第i番目の暗号データCiを求める処理であり、
    前記複数n通りの暗号化処理がそれぞれ用いる暗号化アルゴリズムおよび暗号鍵は、相互に、暗号化アルゴリズムおよび暗号鍵のうちの少なくとも一方が異なっており、
    前記合成処理アルゴリズムSは、前記暗号データC1〜Cnに基づいて一義的に合成データQが定まるアルゴリズムであり、かつ、前記合成データQに基づいて前記暗号データC1〜Cnを復元することはできない非可逆的な合成を行うアルゴリズムであり、
    前記変換前データPが与えられるたびに、所定の順序決定アルゴリズムHに基づいて、前記複数n通りの暗号化処理の実行順序を決定し、
    前記暗号データC1〜Cnの中から2組の暗号データを選択し、選択された2組の暗号データについて所定の論理演算を実行し、未選択の暗号データが存在する限り、当該未選択の暗号データのうちの1組を新たに選択し、直前に行われた論理演算の演算結果と新たに選択された暗号データとについての論理演算を繰り返し実行し、最終的に得られた論理演算の演算結果を合成データQとし、
    前記暗号データC1〜Cnが互いに同一のデータ長となるような暗号化処理を実行し、
    2組のデータについての論理演算として、当該2組のデータを同一の分割態様に基づいてそれぞれ分割することにより、それぞれ複数u個の分割データを作成し、所定ビット長mを有する第j番目(1≦j≦u)の分割データ同士の和の下位mビットを第j番目の分割演算結果として求める処理をj=1〜uについて実行し、第1番目の分割演算結果〜第u番目の分割演算結果を連結する演算を実行することを特徴とするデータ変換方法。
  14. 請求項13に記載のデータ変換方法を利用して、認証処理を実行する第1の情報処理ユニットが認証処理の対象となる第2の情報処理ユニットを正規の情報処理ユニットとして認証する認証方法であって、
    前記第1の情報処理ユニットが、乱数を利用してチャレンジコードを発生させるチャレンジコード発生段階と、
    前記第1の情報処理ユニットが、前記チャレンジコードを第1の変換コードに変換する第1のデータ変換段階と、
    前記第1の情報処理ユニットが、前記チャレンジコードを前記第2の情報処理ユニットに送信するチャレンジコード送信段階と、
    前記第2の情報処理ユニットが、前記チャレンジコードを受信するチャレンジコード受信段階と、
    前記第2の情報処理ユニットが、前記チャレンジコードを第2の変換コードに変換する第2のデータ変換段階と、
    前記第2の情報処理ユニットが、前記第2の変換コードをレスポンスコードとして前記第1の情報処理ユニットに送信するレスポンスコード送信段階と、
    前記第1の情報処理ユニットが、前記第2の情報処理ユニットから送信されてきたレスポンスコードを受信するレスポンスコード受信段階と、
    前記第1の情報処理ユニットが、前記第1の変換コードと前記レスポンスコードとの整合性を判定する照合判定段階と、
    を有し、
    前記第1のデータ変換段階および前記第2のデータ変換段階において、請求項13に記載のデータ変換方法であって、同じ変換前データPが与えられたときに同じ変換後データQを生成する同じデータ変換方法を含む方法を用いることを特徴とする認証方法。
  15. 請求項14に記載の認証方法において、
    第1のデータ変換段階および第2のデータ変換段階において、請求項14に記載のデータ変換方法を実行する前に所定の前処理を実行することを特徴とする認証方法。
  16. 請求項13に記載のデータ変換方法を利用して、第1の情報処理ユニットから第2の情報処理ユニットへ秘匿情報を送信する秘匿通信方法であって、
    前記第1の情報処理ユニットが、所定の規則に従って単位データの順列からなるデータストリームを生成する第1のストリーム生成段階と、
    前記第1の情報処理ユニットが、前記第1のストリーム生成段階で生成されたデータストリームを構成する個々の単位データを第1の変換コードに変換する第1のデータ変換段階と、
    前記第1の情報処理ユニットが、送信対象となる平文データを前記第1の変換コードを利用して暗号化して暗号文データを得る暗号化段階と、
    前記第1の情報処理ユニットが、前記暗号文データを前記第2の情報処理ユニットに送信する暗号文送信段階と、
    前記第2の情報処理ユニットが、前記第1の情報処理ユニットから送信されてきた前記暗号文データを受信する暗号文受信段階と、
    前記第2の情報処理ユニットが、前記規則に従ってデータストリームを生成する第2のストリーム生成段階と、
    前記第2の情報処理ユニットが、前記第2のストリーム生成段階で生成されたデータストリームを構成する個々の単位データを第2の変換コードに変換する第2のデータ変換段階と、
    前記第2の情報処理ユニットが、前記暗号文データを前記第2の変換コードを利用して復号して平文データを得る復号段階と、
    を有し、
    前記第1のデータ変換段階および前記第2のデータ変換段階において、請求項13に記載のデータ変換方法であって、同じ変換前データPが与えられたときに同じ変換後データQを生成する同じデータ変換方法を用いることを特徴とする秘匿通信方法。
JP2018101447A 2018-05-28 2018-05-28 データ変換装置 Active JP6617375B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018101447A JP6617375B2 (ja) 2018-05-28 2018-05-28 データ変換装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018101447A JP6617375B2 (ja) 2018-05-28 2018-05-28 データ変換装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014156313A Division JP6365076B2 (ja) 2014-07-31 2014-07-31 データ変換装置

Publications (2)

Publication Number Publication Date
JP2018128706A JP2018128706A (ja) 2018-08-16
JP6617375B2 true JP6617375B2 (ja) 2019-12-11

Family

ID=63172870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018101447A Active JP6617375B2 (ja) 2018-05-28 2018-05-28 データ変換装置

Country Status (1)

Country Link
JP (1) JP6617375B2 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757913A (en) * 1993-04-23 1998-05-26 International Business Machines Corporation Method and apparatus for data authentication in a data communication environment
FR2789535B1 (fr) * 1999-02-04 2001-09-28 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique
JP2000286836A (ja) * 1999-03-30 2000-10-13 Fujitsu Ltd 認証装置および記録媒体
EP1063811B1 (en) * 1999-06-22 2008-08-06 Hitachi, Ltd. Cryptographic apparatus and method
DE10061998A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
JP2003044436A (ja) * 2001-08-02 2003-02-14 Sony Corp 認証処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP2004004341A (ja) * 2002-05-31 2004-01-08 Toshiba Corp べき乗剰余計算装置、べき乗剰余計算方法及びプログラム
JP2005176231A (ja) * 2003-12-15 2005-06-30 Oki Electric Ind Co Ltd 認証システムおよび方法、ならびに、証明装置および検証装置
US7974409B2 (en) * 2007-06-28 2011-07-05 Samsung Electronics Co., Ltd. Changing the order of public key cryptographic computations
JP5423512B2 (ja) * 2010-03-18 2014-02-19 日本電気株式会社 放送型データストリーム保護システム、方法及びユーザ端末特定プログラム

Also Published As

Publication number Publication date
JP2018128706A (ja) 2018-08-16

Similar Documents

Publication Publication Date Title
Nir et al. ChaCha20 and Poly1305 for IETF Protocols
KR102539111B1 (ko) 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치
JP3339688B2 (ja) 非決定論的ミクスチャー発生器ストリーム暗号化システム
US7110545B2 (en) Method and apparatus for symmetric-key encryption
US7715553B2 (en) Encrypting a plaintext message with authentication
US8712036B2 (en) System for encrypting and decrypting a plaintext message with authentication
JP4596686B2 (ja) Dpaに対して安全な暗号化
EP2148462A1 (en) A differential side-channel analysis countermeasure
Mahendran et al. Generation of key matrix for hill cipher encryption using classical cipher
Wu et al. JAMBU lightweight authenticated encryption mode and AES-JAMBU
McEvoy et al. All-or-nothing transforms as a countermeasure to differential side-channel analysis
US20210266175A1 (en) Device for data encryption and integrity
JP6365076B2 (ja) データ変換装置
JP6617375B2 (ja) データ変換装置
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
Altigani et al. Analyzing the performance of the advanced encryption standard block cipher modes of operation: highlighting the national institute of standards and technology recommendations
JPH1117673A (ja) 共通鍵暗号通信方法及びその通信ネットワーク
PRAKASH Performance evaluation of cloud data security framework using symmetric key algorithm
Liu et al. iCETD: An improved tag generation design for memory data authentication in embedded processor systems
Howells et al. Novel techniques for ensuring secure communications for distributed low power devices
Praveen et al. A highly secured three-phase symmetric cipher technique
Altigani et al. Evaluating AES Performance Using NIST Recommended Block Cipher Modes of Operation
Banafa Attacks on Blowfish Block Cipher: An Overview
Salih et al. Dynamic Stream Ciphering Algorithm
NURGALIYEV МРНТИ 81.93. 29 COMPARATIVE STUDY OF SYMMETRIC CRYPTOGRAPHIC ALGORITHMS

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180528

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190723

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190919

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: 20191008

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20191030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191021

R150 Certificate of patent or registration of utility model

Ref document number: 6617375

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150