JP2004325677A - 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム - Google Patents
暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2004325677A JP2004325677A JP2003118873A JP2003118873A JP2004325677A JP 2004325677 A JP2004325677 A JP 2004325677A JP 2003118873 A JP2003118873 A JP 2003118873A JP 2003118873 A JP2003118873 A JP 2003118873A JP 2004325677 A JP2004325677 A JP 2004325677A
- Authority
- JP
- Japan
- Prior art keywords
- data
- plaintext
- conversion
- cryptographic processing
- input
- 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.)
- Pending
Links
Images
Abstract
【解決手段】入力平文の全体または一部を演算処理部に入力し、演算処理を実行して、平文要約値をチェックサムやMAC、MDC、CRC等の算出により求め、この値を初期値、または中間データとして適用して、各ブロックとともに暗号処理を実行する構成とした。また、乱数、入力平文の要約値と、入力平文ブロックに対応するアドレス等の固有値に基づくハッシュ値を算出し、このハッシュ値を適用して、各ブロックとともに暗号処理を実行する構成とした。入力ブロックが同一アドレス、同一データを含む場合においても出力を異ならせることが可能となり、安全性を向上させた暗号処理が可能となる。
【選択図】 図5
Description
【発明の属する技術分野】
本発明は、暗号処理装置および暗号処理方法、並びにコンピュータ・プログラムに関する。特に、データストリームを固定長データブロック単位の複数ブロックに分割し、それぞれのブロック単位での暗号化/復号処理を行なう暗号処理装置および暗号処理方法、並びにコンピュータ・プログラムに関する。
【0002】
【従来の技術】
近年のインターネット等、通信網の発達に伴い、暗号通信分野における研究も盛んに行われている。暗号処理アルゴリズムには様々なものがあるが、大きく分類すると、暗号化鍵と復号化鍵を異なる鍵、例えば公開鍵と秘密鍵として設定する公開鍵暗号方式と、暗号化鍵と復号化鍵を共通の鍵として設定する共通鍵暗号方式とに分類される。
【0003】
共通鍵ブロック暗号のアルゴリズムとしては、例えばDES(Data Encryption Standard)がよく知られている。ブロック暗号の最も簡単な処理例について、図1を参照して説明する。図1に示す処理は、ECB(Electronic Code Book)モードと呼ばれるものである。
【0004】
以下の説明において、ブロック暗号のブロックサイズをnビット、平文のブロック数をmブロックと表すことにする。このとき平文:Mの全長はn×mビットとなる。図1中、M[i]101がm個のブロックに分割されたi番目のブロックの平文である。i(1≦i≦m)はブロックにつけられた番号を示す。M[1],M[2],…,M[m]が各ブロックの平文を示す。
【0005】
平文ブロックの暗号化後のデータがC[i]102である。M[1],M[2],…,M[m]の各平文ブロックに対する暗号文のブロックが、C[1],C[2],…,C[m]として示される。
【0006】
図1中、平文ブロック:M[1],M[2],…,M[m]は、暗号処理部100において暗号処理がなされ、暗号文ブロック:C[1],C[2],…,C[m]を出力する。暗号処理部100におけるEeKは、暗号鍵eKを適用したブロック暗号処理:E()を実行することを示す。
【0007】
このような暗号処理構成、すなわちECBモードでブロック暗号を使用したとき、例えば平文の分割ブロックM[1],…,M[m]が全て同じ値だったような場合、暗号化した後の暗号文ブロックC[1],…,C[m]も全て同じ値になる。すなわち同じ入力平文を与えた場合、出力が同じとなってしまう。このような場合、共通鍵ブロック暗号に対する代表的な攻撃法である差分攻撃および線形攻撃などにより、暗号処理部100における暗号処理アルゴリズムが露呈してしまう可能性が高い、すなわち、平文の統計的性質などの特徴が暗号文にも残ってしまい、攻撃に対して弱いものとなる。
【0008】
これを改善するための手段として、CBC(Cipher Block Chaining)、CFB(Cipher Feedback)、OFB(Output Feedback)などの暗号利用モードが知られている。これらの技法は、各ブロックの暗号文を入力側にフィードバックすることで、ブロック暗号のストリーム化を図り、解読作業をより困難にするものである。
【0009】
DES−CBCモードの暗号処理手法の概略について図2を用いて説明する。まず、暗号処理を施すデータ(メッセージ)をxバイト(例えば8バイト)単位に分割しブロックデータとする。(以下、分割されたブロックデータをM[1]、M[2]、・・・、M[m]とする)。そして、初期値(Initial Value(以下、IVとする))とM[1]を排他的論理和部151において排他的論理和する(その結果をI1とする)。次に、I1をDES暗号処理部152に入れ、所定の鍵(eK)を用いて暗号化し出力をC[1]を得る。続けて、C[1]およびM[2]を排他的論理和し、その出力I2をDES暗号処理部へ入れ、鍵eKを用いて暗号化する(出力C[2])。以下、これを繰り返し、全てのメッセージに対して暗号化処理を施す。このように暗号文を連鎖させる方式のことをCBC(Cipher Block Chaining)モードと呼ぶ。
【0010】
CFB(Cipher Feedback)、OFB(Output Feedback)の暗号処理構成を図3に示す。(a)CFB(Cipher Feedback)モードは、レジスタ211、暗号処理部212、ビット選択部213、排他的論理和部214を有し、入力平文ブロックM[i]と、先行するブロックの暗号処理結果の特定の選択ビットとの排他的論理和を行い出力暗号ブロックC[i]を生成するとともに、レジスタ211にフィードバック格納し、暗号処理部212において暗号処理を実行し、ビット選択部213において選択されたビットを後続平文ブロックと排他的論理和する処理を繰り返し実行し、暗号文ブロック:C[1],C[2],…,C[m]を出力する方式である。
【0011】
(b)OFB(Output Feedback)モードは、レジスタ221、暗号処理部222、ビット選択部223、排他的論理和部224を有し、入力平文ブロックM[i]に、ランダム系列を加えた結果を暗号文とするものであり、レジスタ221、暗号処理部222、ビット選択部223の循環により、各入力平文ブロックM[i]に加える、すなわち排他的論理和部224で演算するランダム系列を変更して暗号文ブロック:C[1],C[2],…,C[m]を出力する方式である。
【0012】
しかし、これらの暗号利用モードを持ってしても選択平文攻撃や選択暗号文攻撃に対する安全性は十分とは言えず、より安全性の高い方式が望まれている。
【0013】
安全性の高い暗号処理構成についての研究は盛んに行われており、例えば非特許文献1には、暗号化の前にデータのアドレスから求めた値をハッシュした値を加える方式が示されている。また、特許文献1には、冗長データとメッセージからなる平文をブロック化し、秘密鍵から乱数を生成し、乱数ブロックと平文ブロックとの演算結果を順次フィードバックして暗号処理を実行する構成が記載されている。さらに、特許文献2には、乱数、秘密情報を適用して生成した暗号鍵を用いて平文ブロックに対する暗号化処理を実行する構成が記載されている。
【0014】
暗号の安全性を評価するときの基準として、擬似ランダム置換(PRP:Pseudorandom Permutation)との区別が可能か否かによって判断する方法が知られている。この手法を用いて、図2に示すDES−CBCモードの暗号処理における初期値:IVが固定の場合の安全性について検討する。初期値:IV固定のCBCに対しては、次の選択平文攻撃によってPRPではないことが判別可能であり、安全性に問題がある。
【0015】
[選択平文攻撃1]
CBCまたはPRPのいずれかの処理を実行する処理部としてのオラクルgが存在するとする。
ブロックAとブロックBからなる2ブロッククエリー
ブロックAとブロックCからなる2ブロッククエリー
の2つのクエリーAB,ACをオラクルgに入力し、得られた出力ブロックをWX,YZとする。
【0016】
このとき出力の先行ブロックが等しい、すなわちW=Yであれば1、そうでなければ0を返すとする。初期値IV固定のCBCの場合は、先頭ブロックが両者ともAであり、図2の構成から明らかなように、同一の初期値IVを排他的論理和し、その結果に対して同一の暗号処理を施すことになるので、その結果としての出力ブロックW、Yは同一の値となる。従って、常に1を返す。一方擬似ランダム置換(PRP:Pseudorandom Permutation)の場合、1を返す確率はほぼ0に近いと考えられるため、PRPでは無いことが容易に判断できてしまう。
【0017】
また、CBCに対しては非特許文献2には、別の選択平文攻撃方法と選択暗号文攻撃の例が示されており、安全性の不十分な点が指摘されている。また、非特許文献1に示されている暗号処理マイクロプロセッサとしてのCMP(Crypto Microprocessor)の中で使用されている暗号処理手段は、図4に示す構成を持つ。これをECMPと呼ぶことにする。
【0018】
ECMPは、図4に示すように、暗号化する平文のデータM[i]のアドレスAdr[i](カウンタ値iでも良い)のハッシュ値をハッシュ値生成部251において生成し、排他論理和部252において、入力平文ブロックM[i]に加えてから暗号処理部253において暗号化して暗号文ブロックC[i]を出力する。
【0019】
この構成とすることで、同じ入力値を持つブロックデータであっても、そのデータ格納場所であるアドレスが違えば暗号結果としての出力を異ならせることが可能であり、前述のECBに比べると安全性は向上している。しかし、この方式に対しても、先に説明した選択平文攻撃1によってPRPと違うことが簡単に判別できてしまう。また、ECMPに対しては、さらに次の攻撃も有効である。
【0020】
[選択平文攻撃1B]
2ブロックのクエリーAC,BCをオラクルgに入力し、得られた出力をWX,YZとする。このときX=Zであれば1、そうでなければ0を返す。先に説明した[選択平文攻撃1]との違いは、入力平文ブロックの後ろのブロックデータが一致している点である。ここで、クエリーACのAとCは、それぞれ入力平文ブロックM[1]とM[2]に対応し、AのアドレスはAdr[1]、CのアドレスはAdr[2]となる。また、クエリーBCのBとCは、それぞれ入力平文ブロックM[1]とM[2]に対応し、BのアドレスはAdr[1]、CのアドレスはAdr[2]となる。ECMPにおける出力WX,YZにおいて、XとZを計算するための入力M[2]とAdr[2]が共に等しいためX=Zとなるので、常に1を返す。一方PRPの場合1を返す確率はほぼ0に近いと考えられるため、PRPでは無いことが容易に判断できてしまう。
【0021】
なお、CBCはこの攻撃に対し常に0を返すが、PRPが0を返す確率が非常に低いため、この違いを判別するのは困難であり、この攻撃に対しては安全と考えられる。さらに、ECMPにおいてはAdr[i]を入力するハッシュ関数Hの鍵は固定で、その処理内容は誰でも知ることができる。このため、次の攻撃も可能である。
【0022】
[選択平文攻撃2]
次のクエリーMを用意する。
M[1]=H(Adr[1])
M[2]=H(Adr[2])
M:M[1]...M[m]
ただし、M[3]以降の値は任意
【0023】
H(Adr[i])は、図4におけるハッシュ値生成部251の出力に相当する。図4の構成を持つECMPまたは擬似ランダム置換(PRP)からなるオラクルgに対して上記した平文ブロック系列Mを入力して出力ブロック系列C[1],C[2]を得た後、これらを比較する。C[1]=C[2]ならば1を返し、そうでなければ0を返す。
【0024】
この攻撃に対しECMPは下記のようにC[1]=C[2]=E(eK,0n)となり、必ず一致する。なお、0nは、ビット0がn個連続していることを示している。
【0025】
【数1】
【0026】
一方PRPの場合1を返す確率はほぼ0に近いと考えられるため、ECMPとPRPとの違いが容易に判断できてしまう。
【0027】
ECMPが、上述の[選択暗号文攻撃2]に対して弱いのは、ハッシュ値(H)生成部において適用するハッシュ生成鍵が固定なため、それを利用して攻撃されるためである。ハッシュ生成鍵を暗号化鍵と共に毎回選択できるようにすれば、[平文選択攻撃2]は防ぐことができる。ただし、この場合も[選択平文攻撃1/1B]に対しては効果が無い。
【0028】
以上に示したようにCBC,ECMPともに多くの攻撃方法が存在し、安全性の面で不安があると言わざるを得ない。詳細は割愛するが、CFB,OFBなどの暗号利用モードについても同様のことが言える。
【0029】
【特許文献1】
特許公開2002−305517号公報
【特許文献2】
特開平10−313306号公報
【非特許文献1】
末松俊成,今井秀樹:”CMP(Crypto Microprocessor) の一構成方法とその応用例”,ISEC98−8(1998−05)
【非特許文献2】
M.Ballare,A.Boldyreva,L.Knudsen,C.Namprempre:”Online Ciphers and the Hash−CBC Construction”,CRYPTO 2001, LNCS2139, pp.292−309(2001).
【0030】
【発明が解決しようとする課題】
上述したように暗号化に際し例えばCBCモード等の連鎖技法を用いることは、ブロック暗号の安全性を高める1つの有効な方法ではあるが、入力されたブロックに対する暗号文を次の入力ブロックにフィードバックするという固定的な連鎖関係による暗号化手法は高い解読困難性を持つとは言い難い。
【0031】
本発明は、上述の問題点に鑑みてなされたものであり、データブロック単位での暗号化/復号処理を行なう暗号処理において、解読困難なブロック暗号化手法を実現する暗号処理装置および暗号処理方法、並びにコンピュータ・プログラムを提供するものである。
【0032】
【課題を解決するための手段】
本発明の第1の側面は、
ブロックデータ単位での暗号処理を実行する暗号処理装置であり、
入力平文に基づいて平文変換データを生成する演算手段と、
前記演算手段によって生成する平文変換データと、入力平文ブロックデータとを含むデータに基づいて出力暗号文を生成するデータ処理手段と、
を有することを特徴とする暗号処理装置にある。
【0033】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、CBC(Cipher Block Chaining)モードでの暗号処理を実行する構成を有し、前記データ処理手段は、排他的論理和手段と、暗号鍵を適用した暗号処理を実行する暗号処理手段とを含み、前記演算手段において生成した平文変換データと、平文ブロックデータとを前記排他的論理和手段に入力し、該排他的論理和手段の出力を前記暗号処理手段に入力して暗号処理を実行し、該暗号処理手段の出力を暗号文ブロックデータとして出力する構成であることを特徴とする。
【0034】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、CFB(Cipher Feedback)またはOFB(Output Feedback)モードでの暗号処理を実行する構成を有し、前記データ処理手段は、レジスタと、暗号鍵を適用した暗号処理を実行する暗号処理手段と、ビット選択部と、排他的論理和手段とを含み、前記演算手段において生成した平文変換データを前記レジスタを介して前記暗号処理手段に入力して暗号処理を実行し、該暗号処理手段の出力を前記ビット選択部に入力し、該ビット選択部の出力と平文ブロックデータとを前記排他的論理和手段に入力し、該排他的論理和手段の出力を暗号文ブロックデータとして出力する構成であることを特徴とする。
【0035】
さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理装置は、CBC(Cipher Block Chaining)モード、CFB(Cipher Feedback)、およびOFB(Output Feedback)モード、いずれかの暗号処理を実行する構成を有し、前記演算手段によって生成する平文変換データを初期値として設定した構成を有することを特徴とする。
【0036】
さらに、本発明の暗号処理装置の一実施態様において、前記演算処理手段は、入力平文に対する一方向性関数を適用した演算を実行して平文変換データを生成する構成であることを特徴とする。
【0037】
さらに、本発明の暗号処理装置の一実施態様において、前記演算処理手段は、入力平文に対するチェックサム算出処理、MAC(Message Authentication Code)算出処理、MDC(Message Digest Code)算出処理、CRC(Cyclic Redundancy Check)算出処理の少なくともいずれかを実行する構成であることを特徴とする。
【0038】
さらに、本発明の第2の側面は、
ブロックデータ単位での暗号処理を実行する暗号処理装置であり、
乱数生成処理を実行する乱数生成手段と、
前記乱数生成手段によって生成する乱数と、入力平文ブロックデータに対応する固有値とを含むデータについてのデータ変換を実行するデータ変換手段と、
前記データ変換手段の出力と、入力平文ブロックデータとから生成されるデータに対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理手段と、
を有することを特徴とする暗号処理装置にある。
【0039】
さらに、本発明の暗号処理装置の一実施態様において、前記データ変換手段は、前記乱数生成手段によって生成する乱数と、入力平文ブロックデータに対応する固有値との排他的論理和演算処理を実行する排他的論理和手段と、該排他的論理和手段の出力に対するハッシュ値を算出するハッシュ値生成手段とを有し、前記暗号処理手段は、前記ハッシュ値生成手段の出力と、入力平文ブロックデータとの排他的論理和を入力して出力暗号文ブロックデータを生成する構成であることを特徴とする。
【0040】
さらに、本発明の暗号処理装置の一実施態様において、前記入力平文ブロックデータに対応する固有値は、入力平文ブロックデータのメモリ格納アドレス、または入力平文ブロックデータ毎に異なる値として設定されたカウンタ値のいずれかであることを特徴とする。
【0041】
さらに、本発明の第3の側面は、
ブロックデータ単位での暗号処理を実行する暗号処理装置であり、
入力平文に基づいて平文変換データを生成する第1のデータ変換手段と、
前記第1のデータ変換手段によって生成する第1変換データと、入力平文ブロックデータに対応する固有値とを含むデータについての第2のデータ変換を実行する第2データ変換手段と、
前記第2データ変換手段の出力と、入力平文ブロックデータとから生成されるデータに対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理手段と、
を有することを特徴とする暗号処理装置にある。
【0042】
さらに、本発明の暗号処理装置の一実施態様において、前記第1データ変換手段は、入力平文に対するチェックサム算出処理、MAC(Message Authentication Code)算出処理、MDC(Message Digest Code)算出処理、CRC(Cyclic Redundancy Check)算出処理の少なくともいずれかを実行する構成であることを特徴とする。
【0043】
さらに、本発明の暗号処理装置の一実施態様において、前記第2データ変換手段は、前記第1データ変換手段によって生成する第1変換データと、入力平文ブロックデータに対応する固有値との排他的論理和演算処理を実行する排他的論理和手段と、該排他的論理和手段の出力に対するハッシュ値を算出するハッシュ値生成手段とを有し、前記暗号処理手段は、前記ハッシュ値生成手段の出力と、入力平文ブロックデータとの排他的論理和を入力して出力暗号文ブロックデータを生成する構成であることを特徴とする。
【0044】
さらに、本発明の暗号処理装置の一実施態様において、前記第2データ変換手段は、前記第1データ変換手段によって生成する第1変換データと、入力平文ブロックデータに対応する固有値との結合データ生成処理を実行する演算手段と、該演算手段の出力に対するハッシュ値を算出するハッシュ値生成手段とを有し、前記暗号処理手段は、前記ハッシュ値生成手段の出力と、入力平文ブロックデータとの排他的論理和を入力して出力暗号文ブロックデータを生成する構成であることを特徴とする。
【0045】
さらに、本発明の暗号処理装置の一実施態様において、前記入力平文ブロックデータに対応する固有値は、入力平文ブロックデータのメモリ格納アドレス、または入力平文ブロックデータ毎に異なる値として設定されたカウンタ値のいずれかであることを特徴とする。
【0046】
さらに、本発明の第4の側面は、
ストリーム暗号処理を実行する暗号処理装置であり、
入力平文に基づいて平文変換データを生成する第1のデータ変換手段と、
前記第1のデータ変換手段によって生成する第1変換データと、入力平文ブロックデータに対応する固有値とを含むデータについての第2のデータ変換を実行する第2データ変換手段と、
前記第2データ変換手段の出力と、入力平文ブロックデータとの排他的論理和データを出力暗号文として出力する構成を有することを特徴とする暗号処理装置にある。
【0047】
さらに、本発明の暗号処理装置の一実施態様において、前記第1データ変換手段は、入力平文に対するチェックサム算出処理、MAC(Message Authentication Code)算出処理、MDC(Message Digest Code)算出処理、CRC(Cyclic Redundancy Check)算出処理の少なくともいずれかを実行する構成であることを特徴とする。
【0048】
さらに、本発明の暗号処理装置の一実施態様において、前記第2データ変換手段は、前記第1データ変換手段によって生成する第1変換データと、入力平文ブロックデータに対応する固有値との排他的論理和または結合データ生成処理を実行する演算手段と、該演算手段の出力に対するハッシュ値を算出するハッシュ値生成手段とを有し、前記ハッシュ値生成手段の出力と、入力平文ブロックデータとの排他的論理和データを出力暗号文として出力する構成を有することを特徴とする。
【0049】
さらに、本発明の暗号処理装置の一実施態様において、前記入力平文ブロックデータに対応する固有値は、入力平文ブロックデータのメモリ格納アドレス、または入力平文ブロックデータ毎に異なる値として設定されたカウンタ値のいずれかであることを特徴とする。
【0050】
さらに、本発明の第5の側面は、
ブロックデータ単位での暗号処理を実行する暗号処理装置であり、
入力平文に基づいて平文変換データを生成する第1のデータ変換手段と、
前記第1のデータ変換手段によって生成する第1変換データと、入力平文ブロックデータに対応する固有値と、入力平文ブロックデータとを含むデータについての第2のデータ変換を実行する第2データ変換手段と、
前記第2データ変換手段の出力に対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理手段と、
を有することを特徴とする暗号処理装置にある。
【0051】
さらに、本発明の暗号処理装置の一実施態様において、前記第1データ変換手段は、入力平文に対するチェックサム算出処理、MAC(Message Authentication Code)算出処理、MDC(Message Digest Code)算出処理、CRC(Cyclic Redundancy Check)算出処理の少なくともいずれかを実行する構成であることを特徴とする。
【0052】
さらに、本発明の第6の側面は、
ブロックデータ単位での暗号処理を実行する暗号処理方法であり、
入力平文に基づいて平文変換データを生成する演算ステップと、
前記演算ステップにおいて生成する平文変換データと、入力平文ブロックデータとを含むデータに基づいて出力暗号文を生成するデータ処理ステップと、
を有することを特徴とする暗号処理方法にある。
【0053】
さらに、本発明の第7の側面は、
ブロックデータ単位での暗号処理を実行する暗号処理方法であり、
乱数生成処理を実行する乱数生成ステップと、
前記乱数生成ステップにおいて生成する乱数と、入力平文ブロックデータに対応する固有値とを含むデータについてのデータ変換を実行するデータ変換ステップと、
前記データ変換ステップにおける出力と、入力平文ブロックデータとから生成されるデータに対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理ステップと、
を有することを特徴とする暗号処理方法にある。
【0054】
さらに、本発明の第8の側面は、
ブロックデータ単位での暗号処理を実行する暗号処理方法であり、
入力平文に基づいて平文変換データを生成する第1のデータ変換ステップと、
前記第1のデータ変換ステップにおいて生成する第1変換データと、入力平文ブロックデータに対応する固有値とを含むデータについての第2のデータ変換を実行する第2データ変換ステップと、
前記第2データ変換ステップにおける出力と、入力平文ブロックデータとから生成されるデータに対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理ステップと、
を有することを特徴とする暗号処理方法にある。
【0055】
さらに、本発明の第9の側面は、
ストリーム暗号処理を実行する暗号処理方法であり、
入力平文に基づいて平文変換データを生成する第1のデータ変換ステップと、
前記第1のデータ変換ステップにおいて生成する第1変換データと、入力平文ブロックデータに対応する固有値とを含むデータについての第2のデータ変換を実行する第2データ変換ステップと、
前記第2データ変換ステップにおける出力と、入力平文ブロックデータとの排他的論理和データを出力暗号文として出力するステップと、
を有することを特徴とする暗号処理方法にある。
【0056】
さらに、本発明の第10の側面は、
ブロックデータ単位での暗号処理を実行する暗号処理方法であり、
入力平文に基づいて平文変換データを生成する第1のデータ変換ステップと、
前記第1のデータ変換ステップにおいて生成する第1変換データと、入力平文ブロックデータに対応する固有値と、入力平文ブロックデータとを含むデータについての第2のデータ変換を実行する第2データ変換ステップと、
前記第2データ変換ステップにおける出力に対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理ステップと、
を有することを特徴とする暗号処理方法にある。
【0057】
さらに、本発明の第11の側面は、
ブロックデータ単位での暗号処理を実行するコンピュータ・プログラムであり、
入力平文に基づいて平文変換データを生成する演算ステップと、
前記演算ステップにおいて生成する平文変換データと、入力平文ブロックデータとを含むデータに基づいて出力暗号文を生成するデータ処理ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【0058】
さらに、本発明の第12の側面は、
ブロックデータ単位での暗号処理を実行するコンピュータ・プログラムであり、
乱数生成処理を実行する乱数生成ステップと、
前記乱数生成ステップにおいて生成する乱数と、入力平文ブロックデータに対応する固有値とを含むデータについてのデータ変換を実行するデータ変換ステップと、
前記データ変換ステップにおける出力と、入力平文ブロックデータとから生成されるデータに対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【0059】
さらに、本発明の第13の側面は、
ブロックデータ単位での暗号処理を実行するコンピュータ・プログラムであり、
入力平文に基づいて平文変換データを生成する第1のデータ変換ステップと、
前記第1のデータ変換ステップにおいて生成する第1変換データと、入力平文ブロックデータに対応する固有値とを含むデータについての第2のデータ変換を実行する第2データ変換ステップと、
前記第2データ変換ステップにおける出力と、入力平文ブロックデータとから生成されるデータに対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【0060】
さらに、本発明の第14の側面は、
ストリーム暗号処理を実行するコンピュータ・プログラムであり、
入力平文に基づいて平文変換データを生成する第1のデータ変換ステップと、
前記第1のデータ変換ステップにおいて生成する第1変換データと、入力平文ブロックデータに対応する固有値とを含むデータについての第2のデータ変換を実行する第2データ変換ステップと、
前記第2データ変換ステップにおける出力と、入力平文ブロックデータとの排他的論理和データを出力暗号文として出力するステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【0061】
さらに、本発明の第15の側面は、
ブロックデータ単位での暗号処理を実行するコンピュータ・プログラムであり、
入力平文に基づいて平文変換データを生成する第1のデータ変換ステップと、
前記第1のデータ変換ステップにおいて生成する第1変換データと、入力平文ブロックデータに対応する固有値と、入力平文ブロックデータとを含むデータについての第2のデータ変換を実行する第2データ変換ステップと、
前記第2データ変換ステップにおける出力に対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【0062】
【作用】
本発明の構成に従えば、入力平文の全体または一部を演算処理部に入力し、演算処理を実行して、平文要約値をチェックサムやMAC、MDC、CRC等の算出により求め、この値を初期値、または中間データとして適用して、各ブロックとともに暗号処理を実行する構成としたので、入力平文ブロックの一部が同一データであった場合においても出力暗号文ブロックを異ならしめることが可能となり、差分攻撃や線形攻撃などにより、暗号処理アルゴリズムや適用鍵が露呈してしまう可能性を低減させた安全な暗号処理が可能となる。
【0063】
さらに、本発明の構成によれば、乱数、あるいは、入力平文の要約値と、入力平文ブロックに対応するメモリ格納アドレス等の固有値に基づくハッシュ値を算出し、このハッシュ値を適用して、各ブロックとともに暗号処理を実行する構成としたので、入力平文ブロックの一部が例えば同一アドレスの同一データを含む場合においても出力暗号文ブロックを異ならしめることが可能となり、差分攻撃や線形攻撃などにより、暗号処理アルゴリズムが露呈してしまう可能性を低減させた安全な暗号処理が可能となる。
【0064】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する媒体、例えば、CDやFD、MOなどの記憶媒体に格納されて提供可能であり、またネットワークなどの伝送媒体などによっても提供可能なコンピュータ・プログラムである。
【0065】
このようなプログラムは、プロセッサ制御の下でプログラムの読み取りに基づき、システムの有する各種機能の実行を規程するとともに、システム上の協働的作用を発揮するものであり、本発明の他の側面と同様の作用効果を得ることができるものである。
【0066】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0067】
【発明の実施の形態】
本発明の暗号処理装置および暗号処理方法、並びにコンピュータ・プログラムの実施例について、以下、図面を参照しながら説明する。
【0068】
[実施例1]
本発明の暗号処理装置の第1実施例の構成を図5に示す。実施例1は、暗号化に先立ち平文全体:M、または一部を入力とする所定の処理によって平文:Mの要約にあたる値を導き出し、暗号化処理の過程でこの平文要約値を利用することを特徴とする暗号化方式である。
【0069】
図5に示す構成は、CBC(Cipher Block Chaining)モードの暗号処理構成を基本としている。従来構成のCBCモード暗号処理構成(図2参照)において用いた固定された初期値(IV:Initial Value)を用いることなく、入力平文:M全体を演算処理部301に入力し、その演算結果f(M)を初期値の代わりに適用する。
【0070】
なお、入力平文:Mは、平文ブロック:M[1],M[2],…,M[m]の全体を意味する。演算処理部301の演算処理の一例として、平文:Mからのチェックサム(sum)算出処理がある。平文:Mからのチェックサム(sum)算出は、例えば下記式に従って実行される。
sum=M[1]+M[2]+…+M[m]
である。あるいは、各ブロックの排他的論理和を算出してもよい。
sumの計算結果が入力平文ブロックM[i]のビット数(n)を超える場合は、下位nビットを選択するなどの処理によってnビットにする。この平文:Mからのチェックサム(sum)が平文の要約値となり、この要約値を演算手段301からの出力値f(M)として排他的論理和手段302において先頭平文ブロックM[1]と、排他的論理和する。
【0071】
本実施例の暗号処理シーケンスについて、図5を用いて説明する。まず、暗号処理を施すデータ(メッセージ):Mをnビット単位に分割しブロックデータとする。(以下、分割されたブロックデータをM[1]、M[2]、・・・、M[m]とする)。
【0072】
演算処理部301に入力平文:Mを入力し、上述した演算に従って平文:Mからのチェックサム(sum)を算出する。算出した結果をf(M)とする。算出値f(M)と平文ブロックの先頭ブロックM[1]を排他的論理和部302において排他的論理和する(その結果をI1とする)。次に、I1を暗号処理部303に入れ、所定の鍵(eK)を用いて暗号化し出力C[1]を得る。続けて、C[1]およびM[2]を排他的論理和し、その出力I2を暗号処理部へ入れ、鍵eKを用いて暗号化する(出力C[2])。以下、これを繰り返し、全てのメッセージに対して暗号化処理を施す。
【0073】
この実施例1の暗号の安全性について、従来技術の欄で説明したと同様の手法を適用して評価する。[選択平文攻撃1]を行なった場合について考察する。すなわち、上述の実施例1に対応する構成を持つ改良されたCBCまたはPRPのいずれかの処理を実行する処理部としてのオラクルgが存在するとする。
ブロックAとブロックBからなる2ブロッククエリー
ブロックAとブロックCからなる2ブロッククエリー
の2つのクエリーAB,ACをオラクルgに入力し、得られた出力ブロックをWX,YZとする。
【0074】
このとき出力の先行ブロックが等しい、すなわちW=Yであれば1、そうでなければ0を返すとする。前述したように、従来構成、すなわち、初期値IV固定のCBCの場合は、先頭ブロックが両者ともAであり、図2の構成から明らかなように、同一の初期値IVを排他的論理和し、その結果に対して同一の暗号処理を施すことになるので、その結果としての出力ブロックW、Yは同一の値となる。従って、常に1を返す。一方擬似ランダム置換(PRP:Pseudorandom Permutation)の場合、1を返す確率はほぼ0に近いと考えられるため、PRPでは無いことが容易に判断できてしまう。
【0075】
一方、本実施例の構成においては、2ブロックのクエリーABを図5に示す演算処理部301に入力して得られるチェックサム(sum1)と、クエリーACを演算処理部301に入力して得られるチェックサム(sum2)とは異なる値となる。
【0076】
従ってこれらをオラクルgに入力して得られる出力WX,YZのWとYが偶然一致する確率は極めて低くなり、この攻撃に対する安全性を向上でき、固定初期値IVを使用する従来構成に比べ安全性が向上することが証明される。
【0077】
従来技術の欄において説明したように、初期値IVが固定だとCBCは、上述した選択平文攻撃1を防ぐことができない。このため、従来は初期値IVの値を毎回変える事でこのような攻撃を防ぐことが考えられてきた。このとき初期値IVとして乱数やカウンタ値などが使用されていたが、カウンタ値のように、次に使用される初期値IVが容易に推測される場合は、平文の最初のデータを初期値IVと同じ値にするなどの方法によって攻撃することが可能になり、高い安全性を維持することはできない。
【0078】
また、乱数を用いる場合も、もし攻撃者に発生する乱数の系列を事前に知られてしまうと同様の攻撃が可能になるため、安全性には限界がある。このような攻撃方法は、初期値IVを生成する系列が平文とは無関係に決められるために可能となる。
【0079】
例えば、乱数発生方法として、PN(Pseudo Noise)系列等の擬似ランダム信号を利用する手法が広く知られている。PN系列は、シフトレジスタと排他的論理和(Exclusive OR)回路によって生成されるが、シフトレジスタの初期値が同じ場合には、乱数生成処理開始後、毎回全く同じタイミングで全く同一の乱数が発生することになり、相互認証時や暗号化通信に使用する鍵生成時において、安全性が著しく損なわれてしまう。
【0080】
また、乱数生成処理開始時からある一定期間内に乱数が確定するようなシステムの場合、発生する乱数が擬似ランダム信号の持つ周期に対してある特定の期間内に発生する乱数のみに偏ってしまうため、総当たり攻撃に対する耐性が低下してしまうという問題が生じる。
【0081】
図6にシフトレジスタと排他的論理和(Exclusive OR)回路によって構成されるPN系列発生手段例を示す。
【0082】
図6(a)に示す例は、3ビットの乱数を発生する周期7のPN系列発生手段例であり、シフトレジスタ351,352,353の各レジスタにセットされる1または0の値をあるタイミングで乱数値として取り出す、
【0083】
シフトレジスタ351の値は、シフトレジスタ352に出力され、シフトレジスタ352の値は、シフトレジスタ353に出力され、シフトレジスタ353の値は、排他的論理和演算手段354に入力され、シフトレジスタ351の値との排他的論理和演算が実行され、その結果がシフトレジスタ351に入力される。これら各シフトレジスタ間のデータ入出力は、所定のクロックタイミングに基づいて制御されることになる。その結果、図6(a)の構成を持つPN系列発生手段は、図6(b)に示す7種の値を周期的に発生することになる。
【0084】
従って、シフトレジスタの初期値が同じ場合には、乱数生成処理開始後、毎回全く同じタイミングで全く同一の乱数が発生することになり、相互認証時や暗号化通信に使用する鍵生成時において、安全性が著しく損なわれてしまうという問題点が発生する。
【0085】
本実施例のように、初期値IVとして平文のチェックサムのような要約値を用いることで、平文を変えたときに初期値IVが必然的に変化するため、このような攻撃を防ぐことが可能となる。
【0086】
なお、上述した実施例1においては、入力平文の演算処理部301における演算処理として、チェックサムを算出する例を示したが、入力平文の演算処理部301における演算処は、チェックサム算出に限るものではなく、MAC(Message Authentication Code)またはMDC(Message Digest Code)等の一方向性関数、CRC(Cyclic Redundancy Check)等さまざまな方法で求めた値を利用することができる。
【0087】
また、入力平文の演算処理部301における演算処理によって、求めたチェックサムやMAC、MDC、CRC等の値としてのf(M)を、さらにハッシュ処理を実行した結果としての値:H(f(M))を求め、この値H(f(M))を排他的論理和部302において排他的論理和する構成としてもよい。
【0088】
なお、上述した例では、入力平文の全体:Mを演算処理部301に入力し、演算処理を実行する構成としたが、演算処理部301に入力データを入力平文の全体:Mから選択した一部のブロックあるいは一部のデータ:M’とし、平文部分データ:M’からチェックサムやMAC、MDC、CRC等の値としてのf(M’)を求め、この値を排他的論理和部302において排他的論理和する構成としてもよい。
【0089】
いずれにしても平文の全体または一部を入力とし、平文の要約値を導き出し、これを従来構成におけるCBCモードの初期値IVの代わりに適用する。このように、平文要約値を使用することで初期値IVが固定の場合に比べて安全性は向上できる。
【0090】
ただし、上述した実施例1の構成において、演算処理部301の出力する平文要約値の種類によっては別の攻撃が可能な場合がある。例えば、チェックサムの場合について考えてみると、これは同じ値を導く平文が比較的簡単に偽造できるため、図5に示す改良CBCモード構成を持つ暗号処理アルゴリズムに対しては以下に説明する攻撃の可能性がある。
【0091】
3ブロック構成の2つのクエリーP:ABCおよびQ:ACBを想定する。クエリーP,QともブロックA,B,Cから構成され順番が異なるのみの構成である。これらの2つのクエリーを上述した実施例1の改良CBCモード構成を持つ暗号処理アルゴリズムあるいは、擬似ランダム置換(PRP)からなるオラクルgに入力し、得られた結果をUVW、およびXYZとする。
【0092】
オラクルgからの出力ブロックの先頭ブロックを比較し、U=Xなら1、そうでなければ0を返すとする。
【0093】
上述した実施例1の改良CBCモード構成を持つ暗号処理アルゴリズムの場合、2つのクエリーのチェックサム(sum)が同じ値になるため、U=Xとなり、常に1を返す。一方PRPの場合1を返す確率はほぼ0であるため、上述した実施例1の改良CBCモード構成を持つ暗号処理アルゴリズムとPRPとの違いが判断できる。
【0094】
このように、同じ平文要約値を得る平文:Mを偽造することが容易な場合には、図5に示す改良CBCモード構成を持つ暗号処理アルゴリズムは安全性の面で問題が残る。この場合には、平文要約値としてMACやMDCのような一方向性関数で、要約値から平文を偽造することが困難な値を使用することによって安全性を向上できる。
【0095】
また平文要約値は一般に、受信側で復号したデータが正しいかどうかの検証にも利用できるので、一石二鳥の働きを持つという利点がある。
【0096】
上述したように、入力平文の全体または一部を図5に示す構成中の演算処理部301に入力し、演算処理を実行して、平文要約値をチェックサムやMAC、MDC、CRC等の算出により求め、この値を排他的論理和部302において排他的論理和する構成とすることで、初期値IVが固定の場合に比べて安全性の向上した暗号処理が可能となる。
【0097】
なお、上述した実施例においては、CBCモードの処理例を代表例として説明したが、CFB、OFBにおいても、固定初期値IVの代わりに平文要約値を使用して安全性を向上させることが可能である。
【0098】
図7を参照して、本実施例に係る改良型CFB(Cipher Feedback)、改良型OFB(Output Feedback)の暗号処理構成を説明する。(a)改良型CFB(Cipher Feedback)モードを実行する暗号処理装置は、演算処理部371、レジスタ372、暗号処理部373、ビット選択部374、排他的論理和部375を有する。
【0099】
入力平文の全体または一部(Mとする)を演算処理部371に入力し、演算処理を実行して、平文要約値をチェックサムやMAC、MDC、CRC等の算出により求め、この演算結果としての要約値:f(M)をレジスタ372に格納する。その後、要約値:f(M)の暗号処理部373における暗号処理結果をビット選択部374において選択した特定ビットの選択結果と、入力平文ブロックM[1]とを排他的論理和部375に入力し、排他的論理和を行い出力暗号ブロックC[1]を生成する。
【0100】
その後は、従来のCFBモードと同様、出力暗号ブロックC[i]をレジスタ372にフィードバック格納し、暗号処理部373において暗号処理を実行し、ビット選択部374において選択されたビットを後続平文ブロックと排他的論理和する処理を繰り返し実行し、暗号文ブロック:C[1],C[2],…,C[m]を出力する。
【0101】
(b)改良型OFB(Output Feedback)モードを実行する暗号処理装置は、演算処理部381、レジスタ382、暗号処理部383、ビット選択部384、排他的論理和部385を有する。
【0102】
入力平文の全体または一部(Mとする)を演算処理部381に入力し、演算処理を実行して、平文要約値をチェックサムやMAC、MDC、CRC等の算出により求め、この演算結果としての要約値:f(M)をレジスタ382に格納する。その後、要約値:f(M)の暗号処理部383における暗号処理結果をビット選択部384において選択した特定ビットの選択結果(ランダム系列)と、入力平文ブロックM[1]とを排他的論理和部385に入力し、排他的論理和を行い出力暗号ブロックC[1]を生成する。
【0103】
ビット選択部384において選択した特定ビットの選択結果(ランダム系列)は、レジスタ382にフィードバック格納される。以下の処理は、従来のOFBモードに従った処理として実行され、レジスタ382、暗号処理部383、ビット選択部384の循環によりランダム系列を変更して、各入力平文ブロックM[i]との排他的論理和を実行して暗号文ブロック:C[1],C[2],…,C[m]を出力する。
【0104】
このように、CFBまたはOFBモードでも、平文データ全体または一部を演算処理部に入力し、演算処理を実行して、平文要約値をチェックサムやMAC、MDC、CRC等の算出により求め、この演算結果としての要約値:f(M)を固定された初期値IVの代わりに適用することで、固定された初期値に起因する入出力の因果関係が解消され、安全性を高めることが可能となる。
【0105】
なお、CBCは暗号としてだけでなくMACの生成にも広く利用されている(CBC−MACと呼ばれる)。従って、平文要約値としてCBC−MACを使用する場合、MACの計算と暗号化に同じCBCの回路を使用することも可能となる。この場合、MACの計算には任意の初期値IVを使い、求めたMACを暗号化の初期入力値:f(M)として使用することになる。なお、暗号処理部において適用する鍵はMAC生成と暗号化で同じものを使用しても良いし、変えても良い。同じ鍵を使用すれば、鍵と回路を兼用でき効率的になる。
【0106】
なお、上述した実施例では、平文データ全体または一部を演算処理部に入力し、演算処理を実行して、平文要約値をチェックサムやMAC、MDC、CRC等の算出により求め、この演算結果としての要約値:f(M)を固定された初期値IVの代わりに適用する構成例を説明したが、平文要約値:f(M)を初期値の変わりに適用するのではなく、暗号処理過程中で任意の方法で利用できる。
【0107】
例えば図8に示すように、演算処理部391の演算処理結果としての要約値:f(M)、すなわち、平文データ全体または一部を演算処理部391に入力し、演算処理を実行して算出したチェックサムやMAC、MDC、CRC等を排他的論理和部392に入力し、平文ブロックM[i]の入力と排他的論理和演算を行い、その後、さらに、初期値、あるいは前段の結果出力としてのC[i−1]と排他的論理和部393において排他的論理和演算を行い、結果を暗号処理部394に入れ、暗号化処理を行ってC[i]を得る。続けて、C[i]を次段に入力する。
【0108】
このように、各段において、平文データ全体または一部の演算処理を実行して算出したチェックサムやMAC、MDC、CRC等を入力値として適用する。
【0109】
図8に示すように、平文データ全体または一部を演算処理部391に入力し、演算処理を実行して算出したチェックサムやMAC、MDC、CRC等を暗号化処理の過程で使用する構成によっても、暗号の安全性を向上させることができる。
【0110】
なお、演算処理部で算出する平文要約値:f(M)は平文全体を入力とし、平文のどこか一部でも変われば値が変化するものが安全性の観点から望ましいのであるが、処理速度を優先するなどの事情がある場合、平文の一部を入力とした演算によって求めた値を利用する構成としてもよい。具体的には、平文データの構成ビットの所定ビットを選択して、演算処理部に入力し、平文要約値を計算する手法が可能である。この場合、演算処理部前段にビット選択部を設け、その出力を演算処理部に入力する構成とする。
【0111】
[実施例2]
次に、本発明の暗号処理装置の実施例2の構成について説明する。実施例2の暗号処理の特徴は、暗号処理の過程で、暗号化の対象となる平文の他に、個々の平文ごとに変化する値を利用すること、さらに平文または各ブロックに対応する固有値、例えば個々のデータ位置(アドレス)に関わる情報を利用する構成としたことである。
【0112】
図9を参照して、本実施例の暗号処理の構成について説明する。図9に示す構成は、暗号処理マイクロプロセッサとしてのCMP(Crypto Microprocessor)の中で使用されている暗号処理手段(ECMP)(図4参照)の改良型である。
【0113】
図において、ハッシュ値生成部503中の、HhKは、鍵hKを持つハッシュ関数H()を実行することを示す。暗号処理部505中のEeKは、鍵eKを持つブロック暗号E()を実行することを示している。rndは乱数であり、個々の入力平文:Mごとに乱数生成部501において、生成し異なる乱数を適用するものとする。なお、必要であれば、乱数rndを一つの平文の中でさらに小さい単位(例えば平文ブロックM[i])ごとに変更する構成としてもよい。
【0114】
ここでは1つの処理対象平文:Mに対して1つの乱数rndを適用した例について説明する。図9中、Adr[i]は平文ブロックデータM[i]の記憶部の格納アドレス情報を示す。
【0115】
図9に示す改良型ECMPは、暗号化する平文のデータM[i]のアドレスAdr[i](カウンタ値iでも良い)と、乱数生成部501において生成した乱数rndとを排他的論理和部502において、排他的論理和し、その結果をハッシュ値生成部503に入力してハッシュ値を生成し、生成したハッシュ値と、入力平文ブロックM[i]とを排他論理和部504において、排他的論理和し、その結果を暗号処理部505において暗号化して暗号文ブロックC[i]を出力する。
【0116】
この構成とすることで、同じ入力値を持つブロックデータであっても、そのデータ格納場所であるアドレスが違えば暗号結果としての出力を異ならせることが可能となるとともに、同一データ、同一アドレスを持つブロックデータを入力とした場合であっても適用する乱数rndを異ならせることで安全性が向上する。
【0117】
なお、この改良型ECMPは、前述したように、暗号処理マイクロプロセッサとしてのCMP(Crypto Microprocessor)の中で使用されている暗号処理手段である。CMPの構成例について、図10を参照して説明する。
【0118】
図10は、CMPの一構成例を示すブロック図である。CMP510は、各データ処理部の統括的制御、データ入出力制御を実行するCPU511、保護が必要な重要データを格納するための内部メモリ512、外部メモリとCPU511間で入出力されるデータに対して暗号処理を実行する暗号処理部516、秘密鍵517、秘密鍵517の復号により暗号処理に適用する鍵519を生成する復号部518、暗号処理部516の制御を実行する制御部515、アドレスのオフセット値を格納し、アドレス算出部514に出力するオフセットレジスタ513、オフセットレジスタ513からの入力アドレスオフセット値に基づいて各データブロックのアドレスを算出し、暗号処理部516に出力するアドレス算出部514を有する。処理対象データ、プログラムなどは外部メモリに置かれ、データ入力の際はCPU511のアドレスバスにより指定されたデータが暗号処理部516によって復号されてCPU511に取り込まれる。データ出力の際はCPU511のデータが暗号処理部516によって暗号化されてアドレスバスにより指定された外部メモリに出力される。この機能により、外部メモリにおいては暗号化された状態のデータやプログラムを逐次暗号化または復号しながら処理することができる。図9に示す改良型ECMP構成は、図10に示す暗号処理部516の詳細構成を示すものである。
【0119】
図9に示す構成を持つ改良型ECMPの安全性について考察する。従来技術の欄で説明したと同様の手法[選択平文攻撃1]を行なった場合について考察する。上述の実施例2に対応する構成を持つ改良型ECMPまたはPRPのいずれかの処理を実行する処理部としてのオラクルgが存在するとして、オラクルgに、
ブロックAとブロックBからなる2ブロッククエリー
ブロックAとブロックCからなる2ブロッククエリー
の2つのクエリーAB,ACを入力し、得られた出力ブロックをWX,YZとする。ここで、クエリーACのAとCは、それぞれ入力平文ブロックM[1]とM[2]に対応し、AのアドレスはAdr[1]、CのアドレスはAdr[2]となる。また、クエリーBCのBとCは、それぞれ入力平文ブロックM[1]とM[2]に対応し、BのアドレスはAdr[1]、CのアドレスはAdr[2]となる。
【0120】
このとき出力の先行ブロックが等しい、すなわちW=Yであれば1、そうでなければ0を返すとする。本実施例の構成においては、2つのクエリーAB,ACに対して異なる乱数rnd1、rnd2が適用されるため、2つのクエリーAB,ACの先行ブロックAのデータおよびアドレスが等しい場合でも、出力WX,YZについてW=Yは成立しなくなり、この攻撃に対して常に0を返すようになる。従って、改良型ECMPまたはPRPであるかの判別は困難となる。すなわち、改良型ECMPは、高い安全性を持つ。
【0121】
同様に、従来技術の欄で説明した[選択平文攻撃1B]も防ぐことができる。[選択平文攻撃1B]は、2ブロックのクエリーAC,BCをオラクルgに入力し、得られた出力をWX,YZとし、このときX=Zであれば1、そうでなければ0を返すものである。[選択平文攻撃1]との違いは、入力平文ブロックの後ろのブロックデータが一致している点である。ここで、クエリーACのAとCは、それぞれ入力平文ブロックM[1]とM[2]に対応し、AのアドレスはAdr[1]、CのアドレスはAdr[2]となる。また、クエリーBCのBとCは、それぞれ入力平文ブロックM[1]とM[2]に対応し、BのアドレスはAdr[1]、CのアドレスはAdr[2]となる。2ブロックのクエリーAC,BCの両者ともブロックCのアドレスはAdr[2]であるが、2つのクエリーAC,BCに対して異なる乱数rnd1、rnd2が適用されるため、改良型ECMPにおける出力WX,YZにおいて、X=Zとならず、この攻撃に対して常に0を返すようになる。従って、改良型ECMPまたはPRPであるかの判別は困難となる。すなわち、改良型ECMPは、高い安全性を持つ。
【0122】
また、ハッシュ値生成部503の実行するハッシュ関数H()において適用する鍵hKが秘密であるため、選択平文攻撃2に対しても安全である。[選択平文攻撃2]は、クエリーMとして、
M[1]=H(Adr[1])
M[2]=H(Adr[2])
M:M[1]...M[m]
ただし、M[3]以降の値は任意
を設定した処理である。
【0123】
図9の構成を持つ改良型ECMPまたは擬似ランダム置換(PRP)からなるオラクルgに対して上記した平文ブロック系列Mを入力して出力ブロック系列C[1],C[2]を得た後、これらを比較する。C[1]=C[2]ならば1を返し、そうでなければ0を返す。
【0124】
この攻撃に対し先に説明した従来型ECMP(図4)は、C[1]=C[2]=E(eK,0n)となり、必ず一致し、ECMPとPRPとの違いが容易に判断できてしまうという脆弱性をもっていたが、本実施例に係る改良型ECMPは、ハッシュ値生成部503の実行するハッシュ関数H()において適用する鍵hKを秘密に設定したため、入力値として、M[1]=H(Adr[1])、M[2]=H(Adr[2])を設定することが不可能であり、選択平文攻撃2に対しても安全となる。なお、0nは、ビット0がn個連続していることを示している。
【0125】
このように、個々の平文ごとに異なる乱数rndを適用することで、改良型ECMPは、乱数を用いない従来のECMPに比較して安全性を向上することができる。
【0126】
ところで乱数rndは、平文とは無関係に選ばれるが、万一この発生パターンを攻撃者に知られてしまうと、既知のパターンを利用した攻撃によって安全性が危うくなる可能性がある。そこで、個々の平文ごとに変化する値として、乱数の代わりに、入力平文:Mに基づいて生成したMAC(Message Authentication Code)を使用した構成例について、以下説明する。
【0127】
図11において、ハッシュ値生成部553中の、HhKは、鍵hKを持つハッシュ関数H()を実行することを示す。暗号処理部555中のEeKは、鍵eKを持つブロック暗号E()を実行することを示している。MAC算出部551は、処理対象の平文:Mを入力し、MAC(Message Authentication Code)を出力する。
【0128】
図11に示すMAC適用改良型ECMPは、暗号化する平文のデータM[i]のアドレスAdr[i](カウンタ値iでも良い)と、MAC算出部551において入力平文に基づいて生成したMACとを排他的論理和部552において、排他的論理和し、その結果をハッシュ値生成部553に入力してハッシュ値を生成し、生成したハッシュ値と、入力平文ブロックM[i]とを排他論理和部554において、排他的論理和し、その結果を暗号処理部555において暗号化して暗号文ブロックC[i]を出力する。
【0129】
この構成とすることで、同じ入力値を持つブロックデータであっても、そのデータ格納場所であるアドレスが違えば暗号結果としての出力を異ならせることが可能となる。また同一アドレスを持つブロックデータを含む異なる平文を入力とした場合であっても、MAC算出部551において入力平文に基づいて生成したMACは異なることになり、結果として出力する暗号文ブロックC[i]を異ならせることが可能となり、安全性が向上する。
【0130】
図11に示す暗号処理構成において実行する暗号化および復号化の処理を下式に示す。
[暗号化]
【数2】
【0131】
[復号化]
【数3】
【0132】
なお、上記各式において、eKは、図11に示す暗号処理部555において適用する鍵、hKは、ハッシュ値生成部553において適用するハッシュ生成鍵、aKは、MAC生成部551において適用するMAC生成鍵である。
【0133】
この方式は、先に図9を参照して説明した改良型ECMPにおける乱数の代わりに平文に基づくMACを適用した点である。このMAC適用改良型ECMP方式によっても、上述した改良型ECMPの安全性評価の説明と同様の理由が成立し、選択平文攻撃1、1B、2に対する安全性が保障される。
【0134】
なお、このMAC適用改良型ECMP方式において、暗号文の復号処理には、暗号処理において生成した平文に基づくMAC値が必要であるため、これを受信者に渡す必要がある。MAC値の送り方は基本的には自由であり、暗号文と共に送る、または、暗号処理部において適用する秘密鍵:eKなどの鍵と一緒に送るなどの方法が考えられる。安全性を重視する場合はMAC値を暗号文と一緒に送らずに秘密鍵と一緒にセキュアなデータ通信処理として実行される鍵キー交換プロトコルを適用して安全に送るようにすることが望ましい。
【0135】
なお、図11に示す構成では、個々の平文ごとに変化する値として、MAC値を適用したが、MAC値の代わりにチェックサム、MDC(Message Digest Code)、CRC(Cyclic Redundancy Check)等を入力平文:Mに基づいて算出して、算出値と、個々のデータM[i]の位置を示す情報Adr[i]とを排他的論理和(XOR)して、その結果をハッシュ値生成部553に入力する処理構成としてもよい。
【0136】
また、図11に示す構成では、個々の平文ごとに変化する値であるMAC値と、個々のデータM[i]の位置を示す情報Adr[i]を排他的論理和(XOR)して、その結果をハッシュ値生成部553に入力する形式としているが、本方式はこれに限るものではなく、例えば図12に示すようにMAC生成部551において生成した平文Mに基づくMAC値を演算処理部571に入力し、MAC値とAdr[i]の連結データ[MAC‖Adr[i]]を算出して、これをハッシュ値生成部553に入力する構成としてもよい。ハッシュ関数は通常、入力データの長さに関わらず固定長のハッシュ値を生成することができるため、このような構成でも問題は無い。なお、演算処理部571において生成する連結データは、[MAC‖Adr[i]]または、[Adr[i]‖MAC]のいずれかの態様とすることが可能である。
【0137】
また、ハッシュ値生成部553によって生成されるハッシュ値は擬似ランダム系列と考えることができるので、暗号処理部を省略してストリーム暗号として使用する図13のような構成も可能である。
【0138】
さらに、図14に示すように、ハッシュ値生成部を省略した構成としてもよい。図14に示す構成では、MAC算出部581において入力平文に基づいて生成したMACとを排他的論理和部582において、排他的論理和し、その結果と、暗号化する平文のデータM[i]のアドレスAdr[i](カウンタ値iでも良い)とを排他的論理和部583において、さらに排他的論理和し、その結果を暗号処理部584において暗号化して暗号文ブロックC[i]を出力する。
【0139】
本構成においても、同じ入力値を持つブロックデータであっても、そのデータ格納場所であるアドレスが違えば暗号結果としての出力を異ならせることが可能となる。また同一アドレスを持つブロックデータを含む異なる平文を入力とした場合であっても、MAC算出部581において入力平文に基づいて生成したMACは異なることになり、結果として出力する暗号文ブロックC[i]を異ならせることが可能となり、安全性が向上する。
【0140】
以上、本実施例2のいくつかの具体的構成例を図9〜図14を参照して説明した。上述した実施例においては、個々の入力平文ごとに変化する値としてMACを用いた例に関する種々の構成例を示したが、上述したように、MACの代わりに乱数や平文のカウンタを使用したり、MDC、チェックサム、CRCのような平文要約値を使用しても良い。個々の平文ごとに変化する値としては、ここに示した例に限るものではなく、どのような手段によって求めた値でも利用することができる。なお、安全性の面からはMACやMDCのような偽造に強い一方向性関数によって求めた値を使用することが望ましい。
【0141】
Adr[i]は平文内の個々のデータM[i]の位置i(i=1,2,…,m)に関わる情報を表すものであり、個々のデータごとに違う値を取るものであればどんなものでも良い。例えば、データM[i]のカウンタ値i、すなわち、入力平文ブロックデータ毎に異なる値として設定されたカウンタ値や、データM[i]のメモリ上のアドレスなどを適用することが可能である。
【0142】
なお、暗号文C[1],C[2],…,C[m]から求めたMACを暗号文に付加するようにしておき、受信側でMACの検査を行なった結果、不正と判断された場合には復号しないことにすれば、暗号文の改ざん検証が可能であり、より安全性を高めた通信が可能となる。
【0143】
上述した実施例1または実施例2の構成を持つ暗号処理部を持ち、インターネット等の通信網を介したデータ送受信可能な情報処理装置の一構成例について図15を参照して説明する。
【0144】
情報処理装置710において、CPU(Central Processing Unit)701は、ROM(Read Only Memory)702、またはHDD704等に記憶されているプログラムに従って、各種の処理を実行し、各種のデータ処理、あるいは通信制御処理を実行する。RAM703には、CPU701が実行するプログラムやデータが適宜記憶される。CPU701、ROM702、およびRAM703、HDD704は、バスを介して相互に接続されている。
【0145】
バスには、通信インタフェース705が接続されており、インターネット、あるいはLAN等の各種通信網を介したデータ通信を実行する。上述した実施例1、実施例2において説明した暗号処理構成は、セキュアモジュール715に構成され、暗号化または復号化処理、乱数生成処理等を実行する暗号/復号化部722、暗号鍵、ハッシュ値生成鍵、MAC生成鍵等の鍵データを格納した内部メモリ723、暗号処理、復号処理におけるデータ転送制御、シーケンス制御を実行する制御部721を有する。
【0146】
通信I/Fを介して入出力するデータ、あるいはハードディスク(HDD)704の格納データについて、CPU701の制御の下、セキュアモジュール715に暗号化または復号化対象データが入力され、上述した実施例に従った暗号処理が実行される。
【0147】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0148】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【0149】
例えば、プログラムは記憶媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【0150】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記憶媒体にインストールすることができる。
【0151】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【0152】
【発明の効果】
以上、説明したように、本発明の構成によれば、入力平文の全体または一部を演算処理部に入力し、演算処理を実行して、平文要約値をチェックサムやMAC、MDC、CRC等の算出により求め、この値を初期値、または中間データとして適用して、各ブロックとともに暗号処理を実行する構成としたので、入力平文ブロックの一部が同一データであった場合においても出力暗号文ブロックを異ならしめることが可能となり、差分攻撃や線形攻撃などにより、暗号処理アルゴリズムや適用鍵が露呈してしまう可能性を低減させた安全な暗号処理が可能となる。
【0153】
さらに、本発明の構成によれば、乱数、あるいは、入力平文の要約値と、入力平文ブロックに対応するメモリ格納アドレス等の固有値に基づくハッシュ値を算出し、このハッシュ値を適用して、各ブロックとともに暗号処理を実行する構成としたので、入力平文ブロックの一部が例えば同一アドレスの同一データを含む場合においても出力暗号文ブロックを異ならしめることが可能となり、差分攻撃や線形攻撃などにより、暗号処理アルゴリズムが露呈してしまう可能性を低減させた安全な暗号処理が可能となる。
【図面の簡単な説明】
【図1】ECB(Electronic Code Book)モードによる暗号処理を説明する図である。
【図2】CBC(Cipher Block Chaining)モードによる暗号処理構成を説明する図である。
【図3】CFB(Cipher Feedback)、OFB(Output Feedback)モードによる暗号処理構成を説明する図である。
【図4】CMP(Crypto Microprocessor)の中で使用されている暗号処理手段構成例を示す図である。
【図5】本発明の暗号処理装置におけるCBC(Cipher Block Chaining)モードを基本とした暗号処理構成を説明する図である。
【図6】PN(Pseudo Noise)系列等の擬似ランダム信号生成処理について説明する図である。
【図7】本発明の改良型CFB(Cipher Feedback)、改良型OFB(Output Feedback)の暗号処理構成を説明する図である。
【図8】本発明の暗号処理装置におけるCBC(Cipher Block Chaining)モードを基本とし、中間データとして平文変換データを適用した構成を説明する図である。
【図9】本発明の暗号処理装置の実施例2としての、暗号処理マイクロプロセッサとしてのCMP(Crypto Microprocessor)の中で使用可能な改良型暗号処理手段(ECMP)の構成例を示す図である。
【図10】暗号処理マイクロプロセッサとしてのCMP(Crypto Microprocessor)構成例を示す図である。
【図11】入力平文:Mに基づいて生成したMAC(Message Authentication Code)を使用した改良型暗号処理手段(ECMP)の構成例を示す図である。
【図12】MAC値とAdr[i]の連結データ[MAC‖Adr[i]]を算出して、ハッシュ値生成部に入力する構成とした改良型暗号処理手段(ECMP)の構成例を示す図である。
【図13】暗号処理部を省略してストリーム暗号として使用する構成例を示す図である。
【図14】ハッシュ値生成部を省略した構成例を示す図である。
【図15】通信網を介したデータ送受信可能な情報処理装置の一構成例について示す図である。
【符号の説明】
100 暗号処理部
101 平文ブロックデータ
102 暗号文ブロックデータ
151 排他的論理和部
152 暗号処理部
211 レジスタ
212 暗号処理部
213 ビット選択部
214 排他的論理和部
221 レジスタ
222 暗号処理部
223 ビット選択部
224 排他的論理和部
251 ハッシュ値生成部
252 排他的論理和部
253 暗号処理部
301 演算処理部
302 排他的論理和部
303 暗号処理部
351〜353 シフトレジスタ
354 排他的論理和部
371 演算処理部
372 レジスタ
373 暗号処理部
374 ビット選択部
375 排他的論理和部
381 演算処理部
382 レジスタ
383 暗号処理部
384 ビット選択部
385 排他的論理和部
391 演算処理部
392,393 排他的論理和部
394 暗号処理部
501 乱数生成部
502 排他的論理和部
503 ハッシュ値生成部
504 排他的論理和部
505 暗号処理部
510 CMP(Crypto Microprocessor)
511 CPU
512 メモリ
513 オフセットレジスタ
514 アドレス出力部
515 制御部
516 暗号処理部
517 秘密鍵
518 復号部
519 鍵
551 MAC生成部
552 排他的論理和部
553 ハッシュ値算出部
554 排他的論理和部
555 暗号処理部
571 演算処理部
581 MAC生成部
582,583 排他的論理和部
584 暗号処理部
710 情報処理装置
701 CPU
702 ROM
703 RAM
704 HDD
705 通信I/F
715 セキュアモジュール
721 制御部
722 暗号/復号化部
723 内部メモリ
Claims (30)
- ブロックデータ単位での暗号処理を実行する暗号処理装置であり、
入力平文に基づいて平文変換データを生成する演算手段と、
前記演算手段によって生成する平文変換データと、入力平文ブロックデータとを含むデータに基づいて出力暗号文を生成するデータ処理手段と、
を有することを特徴とする暗号処理装置。 - 前記暗号処理装置は、CBC(Cipher Block Chaining)モードでの暗号処理を実行する構成を有し、
前記データ処理手段は、
排他的論理和手段と、暗号鍵を適用した暗号処理を実行する暗号処理手段とを含み、
前記演算手段において生成した平文変換データと、平文ブロックデータとを前記排他的論理和手段に入力し、該排他的論理和手段の出力を前記暗号処理手段に入力して暗号処理を実行し、該暗号処理手段の出力を暗号文ブロックデータとして出力する構成であることを特徴とする請求項1に記載の暗号処理装置。 - 前記暗号処理装置は、CFB(Cipher Feedback)またはOFB(Output Feedback)モードでの暗号処理を実行する構成を有し、
前記データ処理手段は、
レジスタと、暗号鍵を適用した暗号処理を実行する暗号処理手段と、ビット選択部と、排他的論理和手段とを含み、
前記演算手段において生成した平文変換データを前記レジスタを介して前記暗号処理手段に入力して暗号処理を実行し、該暗号処理手段の出力を前記ビット選択部に入力し、該ビット選択部の出力と平文ブロックデータとを前記排他的論理和手段に入力し、該排他的論理和手段の出力を暗号文ブロックデータとして出力する構成であることを特徴とする請求項1に記載の暗号処理装置。 - 前記暗号処理装置は、CBC(Cipher Block Chaining)モード、CFB(Cipher Feedback)、およびOFB(Output Feedback)モード、いずれかの暗号処理を実行する構成を有し、
前記演算手段によって生成する平文変換データを初期値として設定した構成を有することを特徴とする請求項1に記載の暗号処理装置。 - 前記演算処理手段は、入力平文に対する一方向性関数を適用した演算を実行して平文変換データを生成する構成であることを特徴とする請求項1に記載の暗号処理装置。
- 前記演算処理手段は、入力平文に対するチェックサム算出処理、MAC(Message Authentication Code)算出処理、MDC(Message Digest Code)算出処理、CRC(Cyclic Redundancy Check)算出処理の少なくともいずれかを実行する構成であることを特徴とする請求項1に記載の暗号処理装置。
- ブロックデータ単位での暗号処理を実行する暗号処理装置であり、
乱数生成処理を実行する乱数生成手段と、
前記乱数生成手段によって生成する乱数と、入力平文ブロックデータに対応する固有値とを含むデータについてのデータ変換を実行するデータ変換手段と、
前記データ変換手段の出力と、入力平文ブロックデータとから生成されるデータに対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理手段と、
を有することを特徴とする暗号処理装置。 - 前記データ変換手段は、
前記乱数生成手段によって生成する乱数と、入力平文ブロックデータに対応する固有値との排他的論理和演算処理を実行する排他的論理和手段と、該排他的論理和手段の出力に対するハッシュ値を算出するハッシュ値生成手段とを有し、
前記暗号処理手段は、
前記ハッシュ値生成手段の出力と、入力平文ブロックデータとの排他的論理和を入力して出力暗号文ブロックデータを生成する構成であることを特徴とする請求項7に記載の暗号処理装置。 - 前記入力平文ブロックデータに対応する固有値は、入力平文ブロックデータのメモリ格納アドレス、または入力平文ブロックデータ毎に異なる値として設定されたカウンタ値のいずれかであることを特徴とする請求項7に記載の暗号処理装置。
- ブロックデータ単位での暗号処理を実行する暗号処理装置であり、
入力平文に基づいて平文変換データを生成する第1のデータ変換手段と、
前記第1のデータ変換手段によって生成する第1変換データと、入力平文ブロックデータに対応する固有値とを含むデータについての第2のデータ変換を実行する第2データ変換手段と、
前記第2データ変換手段の出力と、入力平文ブロックデータとから生成されるデータに対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理手段と、
を有することを特徴とする暗号処理装置。 - 前記第1データ変換手段は、入力平文に対するチェックサム算出処理、MAC(Message Authentication Code)算出処理、MDC(Message Digest Code)算出処理、CRC(Cyclic Redundancy Check)算出処理の少なくともいずれかを実行する構成であることを特徴とする請求項10に記載の暗号処理装置。
- 前記第2データ変換手段は、
前記第1データ変換手段によって生成する第1変換データと、入力平文ブロックデータに対応する固有値との排他的論理和演算処理を実行する排他的論理和手段と、該排他的論理和手段の出力に対するハッシュ値を算出するハッシュ値生成手段とを有し、
前記暗号処理手段は、
前記ハッシュ値生成手段の出力と、入力平文ブロックデータとの排他的論理和を入力して出力暗号文ブロックデータを生成する構成であることを特徴とする請求項10に記載の暗号処理装置。 - 前記第2データ変換手段は、
前記第1データ変換手段によって生成する第1変換データと、入力平文ブロックデータに対応する固有値との結合データ生成処理を実行する演算手段と、該演算手段の出力に対するハッシュ値を算出するハッシュ値生成手段とを有し、
前記暗号処理手段は、
前記ハッシュ値生成手段の出力と、入力平文ブロックデータとの排他的論理和を入力して出力暗号文ブロックデータを生成する構成であることを特徴とする請求項10に記載の暗号処理装置。 - 前記入力平文ブロックデータに対応する固有値は、入力平文ブロックデータのメモリ格納アドレス、または入力平文ブロックデータ毎に異なる値として設定されたカウンタ値のいずれかであることを特徴とする請求項10に記載の暗号処理装置。
- ストリーム暗号処理を実行する暗号処理装置であり、
入力平文に基づいて平文変換データを生成する第1のデータ変換手段と、
前記第1のデータ変換手段によって生成する第1変換データと、入力平文ブロックデータに対応する固有値とを含むデータについての第2のデータ変換を実行する第2データ変換手段と、
前記第2データ変換手段の出力と、入力平文ブロックデータとの排他的論理和データを出力暗号文として出力する構成を有することを特徴とする暗号処理装置。 - 前記第1データ変換手段は、入力平文に対するチェックサム算出処理、MAC(Message Authentication Code)算出処理、MDC(Message Digest Code)算出処理、CRC(Cyclic Redundancy Check)算出処理の少なくともいずれかを実行する構成であることを特徴とする請求項15に記載の暗号処理装置。
- 前記第2データ変換手段は、
前記第1データ変換手段によって生成する第1変換データと、入力平文ブロックデータに対応する固有値との排他的論理和または結合データ生成処理を実行する演算手段と、該演算手段の出力に対するハッシュ値を算出するハッシュ値生成手段とを有し、
前記ハッシュ値生成手段の出力と、入力平文ブロックデータとの排他的論理和データを出力暗号文として出力する構成を有することを特徴とする請求項15に記載の暗号処理装置。 - 前記入力平文ブロックデータに対応する固有値は、入力平文ブロックデータのメモリ格納アドレス、または入力平文ブロックデータ毎に異なる値として設定されたカウンタ値のいずれかであることを特徴とする請求項15に記載の暗号処理装置。
- ブロックデータ単位での暗号処理を実行する暗号処理装置であり、
入力平文に基づいて平文変換データを生成する第1のデータ変換手段と、
前記第1のデータ変換手段によって生成する第1変換データと、入力平文ブロックデータに対応する固有値と、入力平文ブロックデータとを含むデータについての第2のデータ変換を実行する第2データ変換手段と、
前記第2データ変換手段の出力に対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理手段と、
を有することを特徴とする暗号処理装置。 - 前記第1データ変換手段は、入力平文に対するチェックサム算出処理、MAC(Message Authentication Code)算出処理、MDC(Message Digest Code)算出処理、CRC(Cyclic Redundancy Check)算出処理の少なくともいずれかを実行する構成であることを特徴とする請求項19に記載の暗号処理装置。
- ブロックデータ単位での暗号処理を実行する暗号処理方法であり、
入力平文に基づいて平文変換データを生成する演算ステップと、
前記演算ステップにおいて生成する平文変換データと、入力平文ブロックデータとを含むデータに基づいて出力暗号文を生成するデータ処理ステップと、
を有することを特徴とする暗号処理方法。 - ブロックデータ単位での暗号処理を実行する暗号処理方法であり、
乱数生成処理を実行する乱数生成ステップと、
前記乱数生成ステップにおいて生成する乱数と、入力平文ブロックデータに対応する固有値とを含むデータについてのデータ変換を実行するデータ変換ステップと、
前記データ変換ステップにおける出力と、入力平文ブロックデータとから生成されるデータに対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理ステップと、
を有することを特徴とする暗号処理方法。 - ブロックデータ単位での暗号処理を実行する暗号処理方法であり、
入力平文に基づいて平文変換データを生成する第1のデータ変換ステップと、
前記第1のデータ変換ステップにおいて生成する第1変換データと、入力平文ブロックデータに対応する固有値とを含むデータについての第2のデータ変換を実行する第2データ変換ステップと、
前記第2データ変換ステップにおける出力と、入力平文ブロックデータとから生成されるデータに対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理ステップと、
を有することを特徴とする暗号処理方法。 - ストリーム暗号処理を実行する暗号処理方法であり、
入力平文に基づいて平文変換データを生成する第1のデータ変換ステップと、
前記第1のデータ変換ステップにおいて生成する第1変換データと、入力平文ブロックデータに対応する固有値とを含むデータについての第2のデータ変換を実行する第2データ変換ステップと、
前記第2データ変換ステップにおける出力と、入力平文ブロックデータとの排他的論理和データを出力暗号文として出力するステップと、
を有することを特徴とする暗号処理方法。 - ブロックデータ単位での暗号処理を実行する暗号処理方法であり、
入力平文に基づいて平文変換データを生成する第1のデータ変換ステップと、
前記第1のデータ変換ステップにおいて生成する第1変換データと、入力平文ブロックデータに対応する固有値と、入力平文ブロックデータとを含むデータについての第2のデータ変換を実行する第2データ変換ステップと、
前記第2データ変換ステップにおける出力に対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理ステップと、
を有することを特徴とする暗号処理方法。 - ブロックデータ単位での暗号処理を実行するコンピュータ・プログラムであり、
入力平文に基づいて平文変換データを生成する演算ステップと、
前記演算ステップにおいて生成する平文変換データと、入力平文ブロックデータとを含むデータに基づいて出力暗号文を生成するデータ処理ステップと、
を有することを特徴とするコンピュータ・プログラム。 - ブロックデータ単位での暗号処理を実行するコンピュータ・プログラムであり、
乱数生成処理を実行する乱数生成ステップと、
前記乱数生成ステップにおいて生成する乱数と、入力平文ブロックデータに対応する固有値とを含むデータについてのデータ変換を実行するデータ変換ステップと、
前記データ変換ステップにおける出力と、入力平文ブロックデータとから生成されるデータに対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理ステップと、
を有することを特徴とするコンピュータ・プログラム。 - ブロックデータ単位での暗号処理を実行するコンピュータ・プログラムであり、
入力平文に基づいて平文変換データを生成する第1のデータ変換ステップと、
前記第1のデータ変換ステップにおいて生成する第1変換データと、入力平文ブロックデータに対応する固有値とを含むデータについての第2のデータ変換を実行する第2データ変換ステップと、
前記第2データ変換ステップにおける出力と、入力平文ブロックデータとから生成されるデータに対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理ステップと、
を有することを特徴とするコンピュータ・プログラム。 - ストリーム暗号処理を実行するコンピュータ・プログラムであり、
入力平文に基づいて平文変換データを生成する第1のデータ変換ステップと、
前記第1のデータ変換ステップにおいて生成する第1変換データと、入力平文ブロックデータに対応する固有値とを含むデータについての第2のデータ変換を実行する第2データ変換ステップと、
前記第2データ変換ステップにおける出力と、入力平文ブロックデータとの排他的論理和データを出力暗号文として出力するステップと、
を有することを特徴とするコンピュータ・プログラム。 - ブロックデータ単位での暗号処理を実行するコンピュータ・プログラムであり、
入力平文に基づいて平文変換データを生成する第1のデータ変換ステップと、
前記第1のデータ変換ステップにおいて生成する第1変換データと、入力平文ブロックデータに対応する固有値と、入力平文ブロックデータとを含むデータについての第2のデータ変換を実行する第2データ変換ステップと、
前記第2データ変換ステップにおける出力に対する暗号処理を実行し、出力暗号文ブロックデータを生成する暗号処理ステップと、
を有することを特徴とするコンピュータ・プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003118873A JP2004325677A (ja) | 2003-04-23 | 2003-04-23 | 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003118873A JP2004325677A (ja) | 2003-04-23 | 2003-04-23 | 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004325677A true JP2004325677A (ja) | 2004-11-18 |
Family
ID=33498291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003118873A Pending JP2004325677A (ja) | 2003-04-23 | 2003-04-23 | 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004325677A (ja) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007013503A (ja) * | 2005-06-29 | 2007-01-18 | Seiko Precision Inc | 暗号化装置及び方法、復号化装置及び方法 |
JP2007193654A (ja) * | 2006-01-20 | 2007-08-02 | Nec Personal Products Co Ltd | コンテンツ記録装置、コンテンツ処理方法、およびプログラム |
JP2008039844A (ja) * | 2006-08-01 | 2008-02-21 | Fujitsu Broad Solution & Consulting Inc | 暗号処理プログラムおよび暗号処理方法 |
JP2008283415A (ja) * | 2007-05-10 | 2008-11-20 | Mitsubishi Electric Corp | 暗号化装置、暗号化方法、暗号化プログラム、復号装置、復号方法及び復号プログラム |
US7492894B2 (en) | 2003-11-04 | 2009-02-17 | Sony Corporation | Information-processing apparatus, control method, program and recording medium |
JP2009044481A (ja) * | 2007-08-09 | 2009-02-26 | Ricoh Co Ltd | データ処理装置及び画像形成装置 |
JP2009139899A (ja) * | 2007-12-04 | 2009-06-25 | Tsutomu Tatsuzawa | Pi++ストリーム暗号の暗号方法および復号方法、並びにパイ・データに基づく暗号算法及び復号化算法 |
JP2009175544A (ja) * | 2008-01-25 | 2009-08-06 | Ntt Electornics Corp | 暗号化方法および復号方法 |
JP2011091494A (ja) * | 2009-10-20 | 2011-05-06 | Nippon Hoso Kyokai <Nhk> | データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム |
US8121284B2 (en) | 2006-03-14 | 2012-02-21 | Nec Corporation | Information processing system, information processing method, and information processing program |
JP2013045072A (ja) * | 2011-08-26 | 2013-03-04 | Toshiba Corp | 演算装置 |
JP2015022269A (ja) * | 2013-07-23 | 2015-02-02 | 凸版印刷株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム |
CN104919468A (zh) * | 2013-01-18 | 2015-09-16 | 现代单片机有限公司 | 非挥发性记忆体的二进制数据保护方法及其装置 |
JP2015173497A (ja) * | 2015-05-27 | 2015-10-01 | 株式会社東芝 | 電子機器 |
JP2016523391A (ja) * | 2013-06-27 | 2016-08-08 | クアルコム,インコーポレイテッド | 平文データを暗号化するための方法および装置 |
JPWO2015173905A1 (ja) * | 2014-05-14 | 2017-04-20 | 三菱電機株式会社 | 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム |
JP2018010237A (ja) * | 2016-07-15 | 2018-01-18 | コニカミノルタ株式会社 | 暗号化装置、復号装置、暗号化方法、コンピュータプログラム、データ構造、および記憶媒体 |
JP2019205015A (ja) * | 2018-05-22 | 2019-11-28 | 日立オートモティブシステムズ株式会社 | 車載ネットワークへの不正メッセージ注入防止技術 |
CN112866288A (zh) * | 2021-03-01 | 2021-05-28 | 上海海事大学 | 一种双明文传输的数据对称加密方法 |
CN113037711A (zh) * | 2021-02-05 | 2021-06-25 | 开店宝科技集团有限公司 | 一种商户数据传输存储的防篡改方法及*** |
-
2003
- 2003-04-23 JP JP2003118873A patent/JP2004325677A/ja active Pending
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7492894B2 (en) | 2003-11-04 | 2009-02-17 | Sony Corporation | Information-processing apparatus, control method, program and recording medium |
JP2007013503A (ja) * | 2005-06-29 | 2007-01-18 | Seiko Precision Inc | 暗号化装置及び方法、復号化装置及び方法 |
JP4644053B2 (ja) * | 2005-06-29 | 2011-03-02 | セイコープレシジョン株式会社 | 暗号化装置及び方法、復号化装置及び方法 |
JP2007193654A (ja) * | 2006-01-20 | 2007-08-02 | Nec Personal Products Co Ltd | コンテンツ記録装置、コンテンツ処理方法、およびプログラム |
US8121284B2 (en) | 2006-03-14 | 2012-02-21 | Nec Corporation | Information processing system, information processing method, and information processing program |
JP5131187B2 (ja) * | 2006-03-14 | 2013-01-30 | 日本電気株式会社 | 情報処理システム、情報処理方法および情報処理プログラム |
JP2008039844A (ja) * | 2006-08-01 | 2008-02-21 | Fujitsu Broad Solution & Consulting Inc | 暗号処理プログラムおよび暗号処理方法 |
JP2008283415A (ja) * | 2007-05-10 | 2008-11-20 | Mitsubishi Electric Corp | 暗号化装置、暗号化方法、暗号化プログラム、復号装置、復号方法及び復号プログラム |
JP2009044481A (ja) * | 2007-08-09 | 2009-02-26 | Ricoh Co Ltd | データ処理装置及び画像形成装置 |
JP2009139899A (ja) * | 2007-12-04 | 2009-06-25 | Tsutomu Tatsuzawa | Pi++ストリーム暗号の暗号方法および復号方法、並びにパイ・データに基づく暗号算法及び復号化算法 |
JP4658150B2 (ja) * | 2008-01-25 | 2011-03-23 | Nttエレクトロニクス株式会社 | 暗号化方法および復号方法 |
JP2009175544A (ja) * | 2008-01-25 | 2009-08-06 | Ntt Electornics Corp | 暗号化方法および復号方法 |
JP2011091494A (ja) * | 2009-10-20 | 2011-05-06 | Nippon Hoso Kyokai <Nhk> | データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム |
US9389855B2 (en) | 2011-08-26 | 2016-07-12 | Kabushiki Kaisha Toshiba | Arithmetic device |
JP2013045072A (ja) * | 2011-08-26 | 2013-03-04 | Toshiba Corp | 演算装置 |
US8953783B2 (en) | 2011-08-26 | 2015-02-10 | Kabushiki Kaisha Toshiba | Arithmetic device |
CN104919468A (zh) * | 2013-01-18 | 2015-09-16 | 现代单片机有限公司 | 非挥发性记忆体的二进制数据保护方法及其装置 |
JP2016508629A (ja) * | 2013-01-18 | 2016-03-22 | アバブ セミコンダクタ カンパニー リミテッド | 不揮発性メモリのバイナリデータの保護方法及びその装置 |
JP2016523391A (ja) * | 2013-06-27 | 2016-08-08 | クアルコム,インコーポレイテッド | 平文データを暗号化するための方法および装置 |
JP2015022269A (ja) * | 2013-07-23 | 2015-02-02 | 凸版印刷株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム |
JPWO2015173905A1 (ja) * | 2014-05-14 | 2017-04-20 | 三菱電機株式会社 | 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム |
JP2015173497A (ja) * | 2015-05-27 | 2015-10-01 | 株式会社東芝 | 電子機器 |
JP2018010237A (ja) * | 2016-07-15 | 2018-01-18 | コニカミノルタ株式会社 | 暗号化装置、復号装置、暗号化方法、コンピュータプログラム、データ構造、および記憶媒体 |
JP2019205015A (ja) * | 2018-05-22 | 2019-11-28 | 日立オートモティブシステムズ株式会社 | 車載ネットワークへの不正メッセージ注入防止技術 |
CN113037711A (zh) * | 2021-02-05 | 2021-06-25 | 开店宝科技集团有限公司 | 一种商户数据传输存储的防篡改方法及*** |
CN112866288A (zh) * | 2021-03-01 | 2021-05-28 | 上海海事大学 | 一种双明文传输的数据对称加密方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Burr | Selecting the advanced encryption standard | |
US7907725B2 (en) | Simple universal hash for plaintext aware encryption | |
US8509427B2 (en) | Hybrid mode cryptographic method and system with message authentication | |
US8090098B2 (en) | Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher | |
US8712036B2 (en) | System for encrypting and decrypting a plaintext message with authentication | |
US6973187B2 (en) | Block encryption method and schemes for data confidentiality and integrity protection | |
US10009171B2 (en) | Construction and uses of variable-input-length tweakable ciphers | |
JP2004325677A (ja) | 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム | |
KR100930577B1 (ko) | 스트림 암호를 이용한 메시지 인증 코드 생성 방법과스트림 암호를 이용한 인증 암호화 방법 및 스트림 암호를이용한 인증 복호화 방법 | |
US20080084996A1 (en) | Authenticated encryption method and apparatus | |
US20020048364A1 (en) | Parallel block encryption method and modes for data confidentiality and integrity protection | |
EP2148462A1 (en) | A differential side-channel analysis countermeasure | |
US20120314857A1 (en) | Block encryption device, block decryption device, block encryption method, block decryption method and program | |
US7570759B2 (en) | System and method for secure encryption | |
KR20050027254A (ko) | 데이터 처리 시스템을 위한 효율적인 암호화 및 인증 | |
JPH09230787A (ja) | 暗号化方法および装置 | |
JP2004506246A (ja) | 対称鍵暗号のための線形変換 | |
Koko et al. | Comparison of Various Encryption Algorithms and Techniques for improving secured data Communication | |
JP4737334B2 (ja) | 暗号装置、復号装置、暗号プログラム、復号プログラム、及び記録媒体 | |
WO2008064153A2 (en) | Processing method for message integrity with tolerance for non-sequential arrival of message data | |
US8190892B2 (en) | Message authentication code with blind factorization and randomization | |
JP5489115B2 (ja) | 原本性保証装置、原本性保証プログラム、及びこのプログラムを記録する記録媒体 | |
CN112866288A (zh) | 一种双明文传输的数据对称加密方法 | |
Zajac | Hybrid encryption from McEliece cryptosystem with pseudo-random error vector | |
Nag et al. | DSA security enhancement through efficient nonce generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060316 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090707 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090929 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091120 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091222 |