JP4036648B2 - 暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents

暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体 Download PDF

Info

Publication number
JP4036648B2
JP4036648B2 JP2001552574A JP2001552574A JP4036648B2 JP 4036648 B2 JP4036648 B2 JP 4036648B2 JP 2001552574 A JP2001552574 A JP 2001552574A JP 2001552574 A JP2001552574 A JP 2001552574A JP 4036648 B2 JP4036648 B2 JP 4036648B2
Authority
JP
Japan
Prior art keywords
block data
ciphertext
encryption
plaintext
data
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.)
Expired - Lifetime
Application number
JP2001552574A
Other languages
English (en)
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP4036648B2 publication Critical patent/JP4036648B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Description

技術分野
この発明は、暗号化復号装置及び暗号化復号方法に関するものである。特に、データの暗号化復号の最中に他のデータの暗号化復号ができる発明に関するものである。
背景技術
図43は、Cipher Block Chaining Mode(以下、CBCモードという)による暗号化装置を示す図である。
図43に示すCBCモードでの暗号方法は、64ビットの平文ブロックデータMをブロック単位で入力して、暗号鍵Kを用いた暗号化モジュール51により暗号化し、更に、この暗号化された暗号文ブロックデータCと次の平文ブロックデータMi+1との排他的論理和を演算し、排他的論理和の演算結果を次の暗号化の入力として、暗号鍵Kを用いた暗号化モジュール51に供給することにより暗号化する方法である。そして、この処理を繰り返して次々と連鎖させることにより、平文M全体を暗号文Cに暗号化するものである。
図44は、CBCモードを用いた復号装置を示す図である。
図44に示す復号装置は、図43に示す暗号化装置により暗号化された暗号文を復号する装置である。暗号文ブロックデータCが暗号鍵Kを用いた復号モジュール71に入力され、イニシャルバリューIVとの排他的論理和が計算され、平文ブロックデータMが復号される。暗号文ブロックデータCが入力された場合には、暗号鍵Kを用いた復号モジュール71で復号され、先に入力され、レジスタ111に保存された暗号文ブロックデータCとの排他的論理和がとられ、平文ブロックデータMを復号する。
なお、レジスタ111は、セレクタ73の内部に設けられていてもよい。
平文ブロックデータをM(i=1,2,・・・,n)、暗号文ブロックデータC(i=1,2,・・・,n)とし、暗号鍵Kを用いた暗号化処理をE、暗号鍵Kを用いた復号処理をDとすると、CBCモードは次式で表される。
=E(MEXR IV)
=E(MEXR Ci−1)(i=2,3,・・・,n)
=D(C)EXR IV
=D(C)EXR Ci−1(i=2,3,・・・,n)
ここで、EXRは排他的論理和演算である。また、IV(Intial Value)は初期値であり、最初の暗号化と復号の際に用いられる。イニシャルバリューIVは、暗号化側と復号側で同一の値を用いる。
図45は、Output Feedback Mode(以下、OFBモードという)の暗号化装置を示す図である。
図46は、OFBモードの復号装置を示す図である。
図47は、Cipher Feedback Mode(以下、CFBモードという)の暗号化装置を示す図である。
図48は、CFBモードの復号装置を示す図である。
なお、レジスタ111は、セレクタ73の内部に設けられていてもよい。
図49は、CBCモードの暗号化装置を用いて平文Mと平文Nを暗号化する手順を示す図である。
ここでは、平文Mが平文ブロックデータM,平文ブロックデータM,平文ブロックデータMから構成されており、平文Nが平文ブロックデータNのみで構成されている場合を説明する。
平文ブロックデータMの暗号化がスタートすると、暗号文ブロックデータCが出力されるとともに、暗号文ブロックデータCは、平文ブロックデータMの暗号化に用いられる。このように、暗号文ブロックデータCは、平文ブロックデータMi+1の暗号化にフィードバックされて連鎖処理が行われる。従って、平文ブロックデータMから平文ブロックデータMまでの暗号化が終わらなければ、平文ブロックデータNの暗号化を行うことができない。
図50は、図49と同様に、CBCモードで暗号化を行う場合を示している。
図50の場合は、平文ブロックデータM、平文ブロックデータM、平文ブロックデータMの各データが準備されるのに時間がかかってしまう場合を示している。一方、暗号化処理は、次の平文ブロックデータMi+1が準備できる前に終了しており、アイドル時間(例えば、T1〜T2、T3〜T4の時間)が発生してしまう場合を示している。このように、アイドル時間が発生する場合でも、暗号文ブロックデータCが次の平文ブロックデータMi+1にフィードバックされる連鎖処理を行わなければならないため、平文ブロックデータNの処理は平文ブロックデータMの処理が終了してからでなければ行えない。
図51は、データの秘匿処理とデータの完全性を保証する処理を示す図である。平文Mは、例えば、OFBモードの暗号装置により暗号文Cに暗号化される。CBCモードの暗号装置により認証子Pが演算され、暗号文Cの最後に認証子Pが付加される。暗号化され、かつ、認証子Pが付加されたデータを受信した場合には、暗号文Cから平文MをOFBモードの復号装置により復号するとともに、暗号文CからCBCモードの復号装置により認証子Pを演算し、伝送されてきた認証子Pと同一か否かを比較することにより、伝送されてきたCが改竄されていないことを確認することができる。
図52は、図51に示した秘匿処理と認証子演算処理の手順を示す図である。
平文ブロックデータM〜平文ブロックデータMは、順に暗号文ブロックデータC〜暗号文ブロックデータCに暗号化される。その後、暗号文ブロックデータC〜暗号文ブロックデータCを順に入力して認証子Pが演算される。
図42〜図48に示した各モードの暗号化装置及び復号装置は、前のブロックデータの暗号化復号されたデータをフィードバックさせて次のブロックデータの暗号化復号処理に利用しなければならないため、一旦暗号化処理又は復号処理がスタートしてしまうと、その全体の処理が終了しない限り、他の暗号化処理又は復号処理をスタートさせることができないという課題があった。従って、先にスタートした暗号化復号処理が長時間要するものである場合には、後からスタートする暗号化復号処理が長時間待たされてしまうという課題があった。
また、暗号化復号されるデータが準備される時間に比べて、暗号化復号処理に要する時間が短い場合には、暗号化復号化装置にアイドル時間が発生してしまうという課題があった。
また、秘匿処理と完全性保証処理を行う場合には、秘匿処理を行ってから完全性保証処理を行わなければならず、処理時間がかかってしまうという課題があった。
この発明の好適な実施の形態においては、あるデータの暗号化復号処理の最中に他のデータの暗号化復号処理を行える暗号化装置、復号装置及び暗号化方法及び復号方法を得ることを目的とする。
また、この発明の好適な実施の形態においては、優先度の高いデータの暗号化復号を優先的に行えるようにすることを目的とする。
また、この発明の好適な実施の形態においては、秘匿処理と完全性保証処理を並列的に高速に行えるようにすることを目的とする。
発明の開示
この発明に係る暗号化装置は、第1の処理データと、第2の処理データとの暗号化処理をする暗号化装置において、
暗号化処理の状態を記憶するメモリを備え、
第1の処理データの暗号化処理が完了する前に第2の処理データの暗号化処理を開始するとともに、第2の処理データの暗号化処理を開始する場合に第1の処理データの暗号化処理の状態を上記メモリに記憶させ、第1の処理データの暗号化処理を再開する場合に、暗号化装置の暗号化処理の状態を、メモリに記憶した第1の処理データの暗号化処理の状態に復帰させてから第1の処理データの暗号化処理を再開することを特徴とする。
上記暗号化装置は、第2の処理データの暗号処理の完了する前に第1の処理データの暗号化処理を再開するとともに、上記メモリは、第1の処理データの暗号化処理を再開する場合に第2の処理データの暗号化処理状態を記憶し、第2の処理データの暗号化処理を再開する場合は、暗号化装置の暗号化処理の状態を、メモリに記憶した第2の処理データの暗号化処理の状態に復帰させてから第2の処理データの暗号化処理を再開することを特徴とする。
上記第1の処理データは、第1の平文であり、上記第2の処理データは、第2の平文であることを特徴とする。
上記暗号化装置は、割り込みにより第2の処理データの暗号化処理を開始することを特徴とする。
この発明に係る暗号化装置は、平文Mを構成する平文ブロックデータM(i=1,2,3,・・・)と平文Nを構成する平文ブロックデータN(j=1,2,3,・・・)とを暗号化する暗号化装置において、
平文Mの暗号化処理中に平文Nの暗号化要求を平文Mの暗号化処理完了前に受け付けるメカニズムと、
平文ブロックデータMの暗号化処理を行い暗号文ブロックデータCを出力する暗号化ユニットと、
暗号化ユニットから出力された暗号文ブロックデータCをフィードバックラインを介し暗号化ユニットにフィードバックするフィードバックループと、
フィードバックループのフィードバックラインと並列に設けられ、上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化されない場合、フィードバックされる暗号文ブロックデータCを記憶するメモリと、
平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化される場合は、上記フィードバックループのフィードバックラインによりフィードバックされる暗号文ブロックデータCを選択してフィードバックループに供給し、上記平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリに記憶された暗号文ブロックデータCを選択してフィードバックループに供給するセレクタと
を備えたことを特徴とする。
上記メモリは、
複数の平文に対応した複数のレジスタと、
暗号化処理をする平文に対応してレジスタを切り替えるスイッチと
を備えたことを特徴とする。
この発明に係る暗号化方法は、暗号化モジュールから出力される暗号文ブロックデータC(i=1,2,3,・・・)を用いて第1の平文Mの平文ブロックデータM(i=1,2,3,・・・)を暗号化する工程と、
上記平文ブロックデータMを暗号化している途中で又は平文ブロックデータMを暗号化した後に、第1の平文Mの平文ブロックデータMi+1の暗号化に用いられる暗号文ブロックデータCをメモリに記憶する工程と、
上記平文ブロックデータMi+1の暗号化に用いられる暗号文ブロックデータCをメモリに記憶した後に、第2の平文Nの少なくとも1つの平文ブロックデータを暗号化する工程と、
上記第2の平文Nの少なくとも1つの平文ブロックデータを暗号化した後に、メモリに記憶された、平文ブロックデータMi+1の暗号化に用いられる暗号文ブロックデータCを入力し、暗号化モジュールを用いて第1の平文Mの平文ブロックデータMi+1を暗号化する工程と
を備えたことを特徴とする。
この発明に係る暗号化装置は、1つ以上の平文ブロックデータからなる平文を暗号化ユニット暗号文にし、暗号文に対して暗号文の完全性を保証するための認証子を生成する暗号化装置において、
平文ブロックデータを暗号化ユニットにより暗号化したときに暗号化ユニットが出力した暗号文ブロックデータCを暗号化ユニットへフィードバックする第1のフィードバックループを有し、平文ブロックデータを入力し、第1のフィードバックループにより暗号文ブロックデータCをフィードバックさせ暗号化処理を行い、暗号文ブロックデータを出力する暗号化部と、
認証子演算途中結果をフィードバックする第2のフィードバックループを有し、暗号化部から暗号文ブロックデータが出力されるたびに暗号文ブロックデータを入力し、データ処理を行い、第2のフィードバックループにより認証子演算途中結果をフィードバックさせ、暗号文の完全性を保証するための認証子を生成する認証子生成部と
を備えたことを特徴とする。
上記暗号化部と認証子生成部とは、1つの暗号化モジュールと、1つのフィードバックループとを兼用して暗号化処理と認証子生成処理とを交互に行うとともに、
上記1つのフィードバックループは、
暗号化処理と認証子生成処理との結果をそれぞれ記録し出力するメモリと、
暗号化処理と認証生成処理とを交互に実行するために、メモリから暗号化処理と認証子生成処理との結果を交互に選択して暗号化モジュールに出力するセレクタと
を備えたことを特徴とする。
この発明に係る暗号化方法は、1つ以上の平文ブロックデータからなる平文を暗号化ユニットにより暗号文にし、暗号文に対して暗号文の完全性を保証するための認証子を生成する暗号化方法において、
平文ブロックデータを暗号化ユニットにより暗号化したときに暗号化ユニットが出力した暗号文ブロックデータCを暗号化ユニットへフィードバックする第1のフィードバック工程を有し、平文ブロックデータを入力し、第1のフィードバックループにより暗号文ブロックデータCをフィードバックさせ暗号化処理を行い、暗号文ブロックデータを出力する暗号化工程と、
認証子演算途中結果をフィードバックする第2のフィードバック工程を有し、暗号化工程から暗号文ブロックデータが出力されるたびに暗号文ブロックデータを入力し、データ処理を行い、第2のフィードバック工程により認証子演算途中結果をフィードバックさせ、暗号文の完全性を保証するための認証子を生成する認証子生成工程と
を備えたことを特徴とする。
この発明に係る復号装置は、第1の処理データと、第2の処理データとの復号処理をする復号装置において、
復号処理の状態を記憶するメモリを備え、
第1の処理データの復号処理が完了する前に第2の処理データの復号処理を開始するとともに、第2の処理データの復号処理を開始する場合に第1の処理データの復号処理の状態を上記メモリに記憶させ、第1の処理データの復号処理を再開する場合に、復号装置の復号処理の状態を、メモリに記憶した第1の処理データの復号処理の状態に復帰させてから第1の処理データの復号処理を再開することを特徴とする。
上記復号装置は、第2の処理データの復号処理の完了する前に第1の処理データの復号処理を再開するとともに、上記メモリは、第1の処理データの復号処理を再開する場合に第2の処理データの復号処理状態を記憶し、第2の処理データの復号処理を再開する場合は、復号装置の復号処理の状態を、メモリに記憶した第2の処理データの復号処理の状態に復帰させてから第2の処理データの復号処理を再開することを特徴とする。
上記第1の処理データは、第1の暗号文であり、上記第2の処理データは、第2の暗号文であることを特徴とする。
上記復号装置は、割り込みにより第2の処理データの最初のブロックデータの復号処理を開始することを特徴とする。
この発明に係る復号装置は、暗号文Cを構成する暗号文ブロックデータC(i=1,2,3,・・・)と暗号文Dを構成する暗号文ブロックデータD(j=1,2,3,・・・)とを復号する復号装置において、
暗号文Cの復号処理中に暗号文Dの復号要求を任意の時点で受け付けるメカニズムと、
暗号文ブロックデータCの復号処理を行い平文ブロックデータMを出力する復号ユニットと、
暗号文ブロックデータCi+1を復号するための暗号文ブロックデータCをフィードバックラインを介し復号ユニットにフィードバックするフィードバックループと、
フィードバックループのフィードバックラインと並列に設けられ、上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号されない場合、フィードバックされる暗号文ブロックデータCを記憶するメモリと、
暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号される場合は、上記フィードバックループのフィードバックラインによりフィードバックされる暗号文ブロックデータCを選択してフィードバックループに供給し、上記暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリに記憶された暗号文ブロックデータCを選択してフィードバックループに供給するセレクタと
を備えたことを特徴とする。
上記メモリは、
複数の暗号文に対応した複数のレジスタと、
復号処理をする暗号文に対応してレジスタを切り替えるスイッチと
を備えたことを特徴とする。
この発明に係る復号方法は、復号モジュールを用いて第1の暗号文Cの暗号文ブロックデータC(i=1,2,3,・・・)を復号する工程と、
上記暗号文ブロックデータCを復号している途中で又は暗号文ブロックデータCを復号した後に、第1の暗号文Cの暗号文ブロックデータCi+1の復号に用いられる暗号文ブロックデータCをメモリに記憶する工程と、
上記暗号文ブロックデータCi+1の復号に用いられる暗号文ブロックデータCをメモリに記憶した後に、第2の暗号文Dの少なくとも1つの暗号文ブロックデータを復号する工程と、
上記第2の暗号文Dの少なくとも1つの暗号文ブロックデータを復号した後に、メモリに記憶された、暗号文ブロックデータCi+1の復号に用いられる暗号文ブロックデータCを入力し、復号モジュールを用いて第1の暗号文Cの暗号文ブロックデータCi+1を復号する工程と
を備えたことを特徴とする。
この発明に係る復号装置は、1つ以上の暗号文ブロックデータからなる暗号文を平文に復号し、かつ、暗号文に対して暗号文の完全性を確認するための認証子を生成する復号装置において、
復号モジュールによりデータを復号したときに生成したモジュール出力ブロックデータTを復号モジュールへフィードバックする第1のフィードバックループを有し、暗号文ブロックデータを入力し、第1のフィードバックループによりモジュール出力ブロックデータTをフィードバックさせ復号処理を行い、平文ブロックデータを出力する復号部と、
認証子演算途中結果をフィードバックする第2のフィードバックループを有し、復号部に入力される暗号文ブロックデータと同一の暗号文ブロックデータを入力し、データ処理を行い認証子演算途中結果を出力し、第2のフィードバックループにより認証子演算途中結果をフィードバックさせ、暗号文の完全性を確認するための認証子を生成する認証子生成部と
を備えたことを特徴とする。
上記復号部と認証子生成部とは、1つの復号モジュールと、1つのフィードバックループとを兼用して復号処理と認証子生成処理とを交互に行うとともに、
上記1つのフィードバックループは、
復号処理と認証子生成処理との結果をそれぞれ記録し出力するメモリと、
復号処理と認証生成処理とを交互に実行するために、メモリから復号処理と認証子生成処理との結果を交互に選択して復号モジュールに出力するセレクタと
を備えたことを特徴とする。
この発明に係る復号方法は、1つ以上の暗号文ブロックデータからなる暗号文を平文に復号し、かつ、暗号文に対して暗号文の完全性を確認するための認証子を生成する復号方法において、
復号モジュールによりデータを復号したときに生成したモジュール出力ブロックデータTを復号モジュールへフィードバックする第1のフィードバック工程を有し、暗号文ブロックデータを入力し、第1のフィードバックループによりモジュール出力ブロックデータTをフィードバックさせ復号処理を行い、平文ブロックデータを出力する復号工程と、
認証子演算途中結果をフィードバックする第2のフィードバック工程を有し、復号工程に入力される暗号文ブロックデータと同一の暗号文ブロックデータを入力し、データ処理を行い認証子演算途中結果を出力し、第2のフィードバック工程により認証子演算途中結果をフィードバックさせ、暗号文の完全性を確認するための認証子を生成する認証子生成工程と
を備えたことを特徴とする。
この発明に係る暗号化装置は、平文Mを構成する平文ブロックデータM(i=1,2,3,・・・)と平文Nを構成する平文ブロックデータN(j=1,2,3,・・・)とを暗号化する暗号化装置において、
平文Mの暗号化処理中に平文Nの暗号化要求を平文Mの暗号化処理完了前に受け付けるメカニズムと、
暗号化処理を行ったデータをモジュール出力ブロックデータTiとして出力する暗号化モジュールと、
暗号化モジュールから出力されたモジュール出力ブロックデータTをフィードバックラインを介し暗号化モジュールにフィードバックするフィードバックループと、
フィードバックループのフィードバックラインと並列に設けられ、上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化されない場合、フィードバックされるモジュール出力ブロックデータTを記憶するメモリと、
平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化される場合は、上記フィードバックループのフィードバックラインによりフィードバックされるモジュール出力ブロックデータTを選択してフィードバックループに供給し、上記平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリに記憶されたモジュール出力ブロックデータTを選択してフィードバックループに供給するセレクタと
を備えたことを特徴とする。
上記メモリは、
複数の平文に対応した複数のレジスタと、
暗号化処理をする平文に対応してレジスタを切り替えるスイッチと
を備えたことを特徴とする。
この発明に係る暗号化方法は、暗号化モジュールから出力されるモジュール出力ブロックデータT(i=1,2,3,・・・)を用いて第1の平文Mの平文ブロックデータM(i=1,2,3,・・・)を暗号化する工程と、
上記平文ブロックデータMを暗号化している途中で又は平文ブロックデータMを暗号化した後に、第1の平文Mの平文ブロックデータMi+1の暗号化に用いられるモジュール出力ブロックデータTをメモリに記憶する工程と、
上記平文ブロックデータMi+1の暗号化に用いられるモジュール出力ブロックデータTをメモリに記憶した後に、第2の平文Nの少なくとも1つの平文ブロックデータを暗号化する工程と、
上記第2の平文Nの少なくとも1つの平文ブロックデータを暗号化した後に、メモリに記憶された、平文ブロックデータMi+1の暗号化に用いられるモジュール出力ブロックデータTを入力し、暗号化モジュールを用いて第1の平文Mの平文ブロックデータMi+1を暗号化する工程と
を備えたことを特徴とする。
この発明に係る暗号化装置は、1つ以上の平文ブロックデータからなる平文を暗号化モジュールにより暗号文にし、暗号文に対して暗号文の完全性を保証するための認証子を生成する暗号化装置において、
平文ブロックデータを暗号化モジュールにより暗号化したときに暗号化モジュールが出力したモジュール出力ブロックデータTを暗号化モジュールへフィードバックする第1のフィードバックループを有し、平文ブロックデータを入力し、第1のフィードバックループによりモジュール出力ブロックデータTをフィードバックさせ暗号化処理を行い、暗号文ブロックデータを出力する暗号化部と、
認証子演算途中結果をフィードバックする第2のフィードバックループを有し、暗号化部から暗号文ブロックデータが出力されるたびに暗号文ブロックデータを入力し、データ処理を行い、第2のフィードバックループにより認証子演算途中結果をフィードバックさせ、暗号文の完全性を保証するための認証子を生成する認証子生成部と
を備えたことを特徴とする。
上記暗号化部と認証子生成部とは、1つの暗号化モジュールと、1つのフィードバックループとを兼用して暗号化処理と認証子生成処理とを交互に行うとともに、
上記1つのフィードバックループは、
暗号化処理と認証子生成処理との結果をそれぞれ記録し出力するメモリと、
暗号化処理と認証生成処理とを交互に実行するために、メモリから暗号化処理と認証子生成処理との結果を交互に選択して暗号化モジュールに出力するセレクタと
を備えたことを特徴とする。
この発明に係る暗号化方法は、1つ以上の平文ブロックデータからなる平文を暗号化モジュールにより暗号文にし、暗号文に対して暗号文の完全性を保証するための認証子を生成する暗号化方法において、
平文ブロックデータを暗号化モジュールにより暗号化したときに暗号化モジュールが出力したモジュール出力ブロックデータTを暗号化モジュールへフィードバックする第1のフィードバック工程を有し、平文ブロックデータを入力し、第1のフィードバックループによりモジュール出力ブロックデータTをフィードバックさせ暗号化処理を行い、暗号文ブロックデータを出力する暗号化工程と、
認証子演算途中結果をフィードバックする第2のフィードバック工程を有し、暗号化工程から暗号文ブロックデータが出力されるたびに暗号文ブロックデータを入力し、データ処理を行い、第2のフィードバック工程により認証子演算途中結果をフィードバックさせ、暗号文の完全性を保証するための認証子を生成する認証子生成工程と
を備えたことを特徴とする。
この発明に係る復号装置は、暗号文Cを構成する暗号文ブロックデータC(i=1,2,3,・・・)と暗号文Dを構成する暗号文ブロックデータD(j=1,2,3,・・・)とを復号する復号装置において、
暗号文Cの復号処理中に暗号文Dの復号要求を任意の時点で受け付けるメカニズムと、
復号処理を行ったデータをモジュール出力ブロックデータTとして出力する復号モジュールと、
復号モジュールから出力されたモジュール出力ブロックデータTをフィードバックラインを介し復号モジュールにフィードバックするフィードバックループと、
フィードバックループのフィードバックラインと並列に設けられ、上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号されない場合、フィードバックされるモジュール出力ブロックデータTを記憶するメモリと、
暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号される場合は、上記フィードバックループのフィードバックラインによりフィードバックされるモジュール出力ブロックデータTを選択してフィードバックループに供給し、上記暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリに記憶されたモジュール出力ブロックデータTを選択してフィードバックループに供給するセレクタと
を備えたことを特徴とする。
上記メモリは、
複数の暗号文に対応した複数のレジスタと、
復号処理をする暗号文に対応してレジスタを切り替えるスイッチと
を備えたことを特徴とする。
この発明に係る復号方法は、復号モジュールから出力されるモジュール出力ブロックデータT(i=1,2,3,・・・)を用いて第1の暗号文Cの暗号文ブロックデータC(i=1,2,3,・・・)を復号する工程と、
上記暗号文ブロックデータCを復号している途中で又は暗号文ブロックデータCを復号した後に、第1の暗号文Cの暗号文ブロックデータCi+1の復号に用いられるモジュール出力ブロックデータTをメモリに記憶する工程と、
上記暗号文ブロックデータCi+1の復号に用いられるモジュール出力ブロックデータTをメモリに記憶した後に、第2の暗号文Dの少なくとも1つの暗号文ブロックデータを復号する工程と、
上記第2の暗号文Dの少なくとも1つの暗号文ブロックデータを復号した後に、メモリに記憶された、暗号文ブロックデータCi+1の復号に用いられるモジュール出力ブロックデータTを入力し、復号モジュールを用いて第1の暗号文Cの暗号文ブロックデータCi+1を復号する工程と
を備えたことを特徴とする。
この発明に係る復号装置は、1つ以上の暗号文ブロックデータからなる暗号文を復号ユニットにより平文に復号し、かつ、暗号文に対して暗号文の完全性を確認するための認証子を生成する復号装置において、
暗号文ブロックデータCを復号ユニットへフィードバックする第1のフィードバックループを有し、暗号文ブロックデータを入力し、第1のフィードバックループにより暗号文ブロックデータCをフィードバックさせ復号処理を行い、平文ブロックデータを出力する復号部と、
認証子演算途中結果をフィードバックする第2のフィードバックループを有し、復号部に入力される暗号文ブロックデータと同一の暗号文ブロックデータを入力し、データ処理を行い認証子演算途中結果を出力し、第2のフィードバックループにより認証子演算途中結果をフィードバックさせ、暗号文の完全性を確認するための認証子を生成する認証子生成部と
を備えたことを特徴とする。
上記復号部と認証子生成部とは、1つの復号モジュールと、1つのフィードバックループとを兼用して復号処理と認証子生成処理とを交互に行うとともに、
上記1つのフィードバックループは、
復号処理と認証子生成処理との結果をそれぞれ記録し出力するメモリと、
復号処理と認証生成処理とを交互に実行するために、メモリから復号処理と認証子生成処理との結果を交互に選択して復号モジュールに出力するセレクタと
を備えたことを特徴とする。
この発明に係る復号方法は、1つ以上の暗号文ブロックデータからなる暗号文を復号ユニットにより平文に復号し、かつ、暗号文に対して暗号文の完全性を確認するための認証子を生成する復号方法において、
暗号文ブロックデータCを復号ユニットへフィードバックする第1のフィードバック工程を有し、暗号文ブロックデータを入力し、第1のフィードバックループにより暗号文ブロックデータCをフィードバックさせ復号処理を行い、平文ブロックデータを出力する復号工程と、
認証子演算途中結果をフィードバックする第2のフィードバック工程を有し、復号工程に入力される暗号文ブロックデータと同一の暗号文ブロックデータを入力し、データ処理を行い認証子演算途中結果を出力し、第2のフィードバック工程により認証子演算途中結果をフィードバックさせ、暗号文の完全性を確認するための認証子を生成する認証子生成工程と
を備えたことを特徴とする。
上記暗号化処理は、ブロック暗号アルゴリズムを用いることを特徴とする。
上記復号処理は、ブロック暗号アルゴリズムを用いることを特徴とする。
上記メモリは、暗号化処理の状態として、
第1の処理データの暗号化途中結果と、
第1の処理データを暗号化するために用いる暗号鍵と
を記憶することを特徴とする。
上記メモリは、復号処理の状態として、
第2の処理データの復号途中結果と、
第2の処理データを復号するために用いる復号鍵と
を記憶することを特徴とする。
この発明に係る暗号化装置は、データを入力して暗号化し、暗号データを出力する暗号化部と、
暗号化部が出力した暗号データを入力して暗号文の完全性を保証するための認証子を生成する認証子生成部と
を備え、
認証子生成部は、暗号化部によるデータの暗号化が完了する前に認証子の生成を開始することを特徴とする。
この発明に係る復号装置は、データを入力して復号し、復号データを出力する復号部と、
復号部が入力したデータを入力して暗号文の完全性を保証するための認証子を生成する認証子生成部と
を備え、
認証子生成部は、復号部によるデータの復号が完了する前に認証子の生成を開始することを特徴とする。
この発明に係る暗号化方法は、データを入力して暗号化し、暗号データを出力する暗号化工程と、
暗号化工程が出力した暗号データを入力して暗号文の完全性を保証するための認証子を生成する認証子生成工程と
を備え、
認証子生成工程は、暗号化工程によるデータの暗号化が完了する前に認証子の生成を開始することを特徴とする。
この発明に係る復号方法は、データを入力して復号し、復号データを出力する復号工程と、
復号工程が入力したデータを入力して暗号文の完全性を保証するための認証子を生成する認証子生成工程と
を備え、
認証子生成工程は、復号工程によるデータの復号が完了する前に認証子の生成を開始することを特徴とする。
また、この発明は、上記暗号化装置の各部の処理及び上記暗号化方法の各工程の処理をコンピュータに実行させるためのプログラムであることを特徴とする。また、そのプログラムを記録したコンピュータ読み取り可能な記録媒体であることを特徴とする。
また、この発明は、上記復号装置の各部の処理及び上記復号方法の各工程をコンピュータに実行させるためのプログラムであることを特徴とする。また、そのプログラムを記録したコンピュータ読み取り可能な記録媒体であることを特徴とする。
発明を実施するための最良の形態
実施の形態1.
図1は、この実施の形態におけるCBCモードの暗号化装置を示す図である。
この実施の形態の暗号化装置は、セレクタ54と排他的論理和回路58と暗号鍵Kを用いた暗号化モジュール51とメモリ55とにより構成されている。排他的論理和回路58と暗号鍵Kを用いた暗号化モジュール51とは、暗号化ユニット52を構成している。セレクタ54と排他的論理和回路58と暗号鍵Kを用いた暗号化モジュール51は、フィードバックライン65とフィードバックライン66とフィードバックライン67によりフィードバックループを構成している。暗号鍵Kを用いた暗号化モジュール51により暗号化された暗号文ブロックデータCは、フィードバックループにより再び排他的論理和回路58に入力され、排他的論理和回路58でモジュール入力データSが生成される。そして、生成されたモジュール入力データSが暗号鍵Kを用いた暗号化モジュール51に供給される。
メモリ55は、フィードバックライン65と並列に設けられている。メモリ55は、レジスタ56とスイッチ57により構成されている。スイッチ57は、暗号鍵Kを用いた暗号化モジュール51の出力をレジスタ56に入力させるか無視するかを切り替えるものである。この切り替えは、例えば、割り込みITにより行われる。割り込みITが発生した場合には、スイッチ57はEに接続され、割り込みITが解除された場合には、スイッチ57はFに接続される。レジスタ56は、Eを経由してきた暗号文ブロックデータCを入力して記憶するものである。レジスタ56に記憶された暗号文ブロックデータCは、セレクタ54に出力される。セレクタ54は、A,B,Cの3つの入力を有しており、いずれか1つの入力を選択するものである。これらの選択は、後述するように割り込みITに依存する。
図2は、図1に示した暗号化装置の動作手順を示す図である。
図3は、図1に示した暗号化装置の動作フローチャートである。
この暗号化装置が電源を投入された場合のセレクタ54の入力はAに設定されており、スイッチ57はEに接続されているものとする。また、平文Nの暗号化要求があるときは、割り込みITが発生し、平文Nの暗号化要求が解除されるまで、割り込みITがオンになり続けるものとする。また、平文Mは、鍵Kを用いて暗号化され、平文Nは、鍵Kを用いて暗号化されるものとする。また、割り込みITが発生したとき又は割り込みITが解除されたときには、鍵K又は鍵Kが暗号化モジュール51に支給され直すものとする。
時刻T0において、鍵Kが支給され、平文ブロックデータMの暗号化処理がスタートする。時刻T0において、平文ブロックデータMの暗号化がスタートした場合には、セレクタ54の入力Aから一旦イニシャルバリューIVが入力された後、セレクタ54はBに切り替わる。そして、平文ブロックデータMが鍵Kを用いて暗号化されている途中の時刻Xにおいて、平文ブロックデータNの暗号化を要求する割り込みITが発生したとする。時刻T1までに、暗号文ブロックデータCはメモリ55に記憶された状態になる。そして、割り込みITの発生により時刻T1において、鍵Kが暗号化モジュール51に支給される。また、時刻T1において、セレクタ54は入力をAに設定する。また、時刻T1において、スイッチ57はFに接続される。時刻T1以降は、鍵Kを用いて平文ブロックデータNの暗号化が行われ、暗号文ブロックデータDが出力される。時刻Yにおいて、平文ブロックデータNの暗号化が終了し、割り込みITが解除されたものとする。この割り込みITの解除により時刻T2において、鍵Kが暗号化モジュール51に支給され、セレクタ54の入力はCに切り替えられ、スイッチ57はEに接続される。セレクタ54がCに切り替わったことにより、メモリ55に記憶されていた暗号文ブロックデータCが平文ブロックデータMの暗号化のために入力され、鍵Kを用いた暗号化モジュール51により平文ブロックデータMが暗号化されて、暗号文ブロックデータCが出力される。時刻T3以前においては、セレクタ54の入力はBに切り替えられ、平文ブロックデータMを暗号化する場合には、フィードバックループのフィードバックライン65からフィードバックされた暗号文ブロックデータCが入力され、鍵Kを用いた暗号化モジュール51により平文ブロックデータM暗号化されて、暗号文ブロックデータCが出力される。
なお、平文Mと平文Nの鍵が同一(K=K)の場合は、鍵は暗号処理のスタート時に一度だけ供給されればよい。
図3のフローチャートを用いて全体の動作を説明する。
S1において、平文Mの暗号化処理がスタートし続行される。最後のブロックデータまで処理を終えた場合には、処理を終了する。S2において、任意の時点で生じる割り込みITの発生が監視される。割り込みITの発生がない場合には、S1の処理が続行される。平文ブロックデータMの処理中に割り込みITが発生した場合には、S3において、現在処理中の平文ブロックデータMの暗号文ブロックデータCをメモリ55のレジスタ56に記憶する。S4において、割り込みITにより暗号化処理の要求があった平文Nの暗号化処理を行う。このS4の暗号化処理は、S5に示すように、割り込みITの解除があるまで連続して行われる。割り込みITの解除があった場合には、S6において、メモリ55のレジスタ56に記憶した暗号文ブロックデータCを用いてMi+1の暗号化処理を行う。それ以降の処理は、S1に戻り、暗号化処理が続行される。
図4は、セレクタ54のオペレーション処理を示す図である。
電源がオンになった場合には、S11に示すように、入力をAに設定する。S12において、暗号化がスタートした場合には、S13において、入力をBに設定する。即ち、フィードバックループのフィードバックライン65によりフィードバックされる暗号文ブロックデータCが用いられる。S14において、現在処理しているブロックデータが最後であるということが判定された場合には、S11に戻り電源オンと同じ状態に戻る。S15において、割り込みITの発生が確認された場合には、S16において、入力をAに設定し、暗号化がスタートした場合には、S18において、入力をBに設定する。割り込みITの解除があるまでは、入力がBに設定されたままで動作する。即ち、フィードバックループのフィードバックライン65によりフィードバックされる暗号文ブロックデータCが用いられる。S19において、割り込みITの解除があったことが検知された場合には、S20において、入力をCに設定する。この入力をCに設定することにより、メモリ55に記憶された暗号文ブロックデータCが入力されることになる。このCからの入力による暗号化がスタートした場合には、S13に戻り入力をBに設定する。
このようにして、割り込みITの発生に基づき、セレクタ54を切り替えることができる。
なお、平文Mの暗号化処理も、割り込みITにより任意の時刻にスタートさせてもよい。
図5は、スイッチ57の割り込み処理のフローチャートである。
電源がオンになった場合、そして、その後の最初の平文の暗号化処理の場合は、スイッチ57はEに接続される。そして、S31において、割り込みITが発生した場合には、スイッチ57をEからFに接続する。そして、S33において、割り込みITの解除が検出された場合には、スイッチ57をFからEに接続する。このようにして、スイッチ57は、割り込みITの発生から解除までは暗号文ブロックデータCを無視する。従って、メモリ55のレジスタ56には、割り込みITが発生したときに生成された暗号文ブロックデータCが記憶され続けることになる。
以上のように、図1〜図5に示した暗号化装置は、平文Mを構成する平文ブロックデータM(i=1,2,3,・・・)と平文Nを構成する平文ブロックデータN(j=1,2,3,・・・)とを暗号化する暗号化装置において、平文Mの暗号化処理中に平文Nの暗号化要求を平文Mの暗号化処理完了前に受け付ける割り込み処理メカニズムを示している。
また、図1〜図5に示した暗号化装置は、平文ブロックデータMの暗号化処理を行い、暗号文ブロックデータCを出力する暗号化モジュール51と、暗号化モジュール51から出力された暗号文ブロックデータCをフィードバックライン65を介し暗号化ユニット52にフィードバックするフィードバックループ65,66と、フィードバックループのフィードバックライン65と並列に設けられ、上記割り込み処理により上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化されない場合、フィードバックされる暗号文ブロックデータCを記憶するメモリ55とを有している。
また、図1〜図5に示した暗号化装置は、平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化される場合は、上記フィードバックループのフィードバックライン65によりフィードバックされる暗号文ブロックデータCを選択してフィードバックループを介して暗号化ユニット52に供給し、上記平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリ55に記憶された暗号文ブロックデータCを選択してフィードバックループを介して暗号化ユニット52に供給するセレクタ54を有している。
メモリ55は、割り込みITが発生したときの暗号化装置の状態を記憶するメモリである。メモリ55が暗号化処理の状態を記憶しておくことにより、あるデータの暗号化の最中に他のデータの暗号化を行った場合でも、再びあるデータの暗号化の処理に復帰することができる。即ち、メモリ55に記憶されたデータを用いることにより、暗号化が中断されたときと全く同じ状態に暗号化装置を復帰させることができ、中断した暗号化処理を続行させることが可能になる。
図6は、メモリ55の他の例を示す図である。
メモリ55は、割り込み制御部52と入力スイッチ96と出力スイッチ97と複数のレジスタ(REG1,2,3)を有している。このように、複数のレジスタを有することにより、複数の割り込みを受け付けることが可能になる。
図7は、メモリ55の割り込み処理の動作を示す図である。
割り込みITが発生すると、S41において、現在使用中のレジスタkの番号kを記憶する。S42において、入力スイッチ96と出力スイッチ97をレジスタk以外のレジスタlに接続する。この状態で、平文Nの暗号化が継続される。更に、平文Nの暗号化の最中に他の割り込みが発生したかを監視する。S43において、他の割り込みITが発生したことが検出された場合には、再び自分自身であるS40の処理を呼び出す。このように、割り込みITが発生するたびに、自分自身をS40の処理をリカーシブに呼び出すことにより、複数階層の割り込み処理を行うことができる。S44においては、割り込みが解除されたかを検出し、割り込みが解除された場合には、入力スイッチ96と出力スイッチ97を記憶しておいた番号kを用いてレジスタkに切り替える。図6に示す場合は、3つのレジスタがあるので、3階層の割り込み処理を行うことができる。
図8は、メモリ55の他の例を示す図である。
メモリ55は、スタック64を有している。スタック64は、先入れ後出し(FILO)のレジスタである。スタック1を使用中に割り込みITが発生した場合には、スタック1のデータをスタック2に移し、それ以後のデータをスタック1に積み上げ、割り込みITが解除された場合には、積み上げたスタック1のデータを出力し、スタック2のデータをスタック1に戻す。図8に示す場合は、4階層の割り込み処理を行える場合を示している。
図6に示すように、複数階層の割り込み処理を行うことができる場合は、各割り込みに対して優先度を付けることができる。例えば、割り込みIT1を優先度1とし、割り込みIT2を優先度1より優先度の低い優先度2とすることにより、優先度1の割り込みIT1が発生した場合には、優先度2の処理を遅らせることができる。
図9は、優先度1の暗号化処理を優先度2の暗号化処理に優先させた場合を示している。優先度1の暗号化処理を先に終了させている。
図10は、優先度がともに等しい場合の暗号化処理の場合を示している。
優先度が等しい場合には、2つの平文の各ブロックデータを交互に暗号化する。
図11は、優先度1のデータと2つの優先度2のデータを暗号化する場合を示している。
図9〜図11に示すように、割り込みに優先度を付けることによりユーザが望ましいと思われる暗号化処理手順を実現することができる。緊急用のデータや短いデータの場合には、優先度を高くすることにより効率のよい処理を行うことができる。
図12は、メモリ55をフィードバックライン66と並列においた場合を示している。
排他的論理和回路58と暗号鍵Kを用いた暗号化モジュール51とは、暗号化ユニット52を構成している。
図13は、図12の暗号化装置の動作手順を示す図である。
第1セレクタ61と第2セレクタ62とは、以下のような選択接続により、図1のセレクタ54と同じ選択動作をさせるものである。
第1のセレクタ61+第2のセレクタ62=セレクタ54
A + D = A
B + D = B
A + C = C
B + C = C
図13では、第2のセレクタ62がDを選択しているときは、第1のセレクタ61の選択(A又はB)が有効となり、第2のセレクタ62がCを選択しているときは、メモリ55の内容が出力されることになる。即ち、第2のセレクタ62は、メモリ55の内容を用いたいとき(割り込みITが解除されて平文Nから元の平文Mへの暗号化に戻るとき)に、Cを選択すればよい。
図14は、メモリ55をフィードバックライン67と並列においた場合を示している。
図15は、図14の暗号化装置の動作手順を示す図である。
割り込みITが発生した時刻Xが排他的論理和回路58で排他的論理和演算される前である場合には、メモリ55は、排他的論理和回路58により排他的論理和演算されたモジュール入力データSを記憶する。そして、平文ブロックデータNを暗号化する。次に、メモリ55に記憶されたモジュール入力データSを第2セレクタ62により選択させ、暗号鍵Kを用いた暗号化モジュール51に入力し、暗号化して暗号文ブロックデータCを出力する。
図1及び図12及び図14に示すように、メモリ55は、フィードバックライン65とフィードバックライン66とフィードバックライン67のいずれのラインと並列の設けられていても構わない。メモリ55は、暗号化装置が、あるデータの暗号化処理中に他のデータの暗号化を開始するとき、他のデータの暗号化を開始する直前の状態を覚えておくものであり、他のデータの暗号化処理が終了した時点で、メモリ55に記憶されたデータを用いて暗号化装置が元の状態に復帰できるのであれば、メモリ55は、どの場所に設けられていても構わない。また、メモリ55は、複数箇所に設けられていてもよい。
以上のように、この実施の形態に係る暗号化装置は、1つ以上のブロックデータM(i=1,2,3,・・・,m)からなる第1の処理データ(平文M)と、1つ以上のブロックデータN(j=1,2,3,・・・,n)からなる第2の処理データ(平文N)との暗号化処理をする暗号化装置において、暗号化処理の状態を記憶するメモリ55を備え、第1の処理データの全ブロックデータ(M〜M)の暗号化処理が完了する前に第2の処理データの最初のブロックデータNの暗号化処理を開始するとともに、第2の処理データの最初のブロックデータNの暗号化処理を開始する場合に第1の処理データの暗号化処理の状態(例えば、暗号化ブロックデータC)を上記メモリ55に記憶させ、第1の処理データの暗号化処理を再開する場合に、暗号化装置の暗号化処理の状態を、メモリに記憶した第1の処理データの暗号化処理の状態に復帰させてから第1の処理データの暗号化処理を再開することを特徴とする。
また、上記暗号化装置は、第2の処理データの全ブロックデータ(N〜N)の暗号処理の完了する前に第1の処理データの暗号化処理を再開するとともに、上記メモリ55は、第1の処理データの暗号化処理を再開する場合に第2の処理データの暗号化処理状態(例えば、暗号化ブロックデータD)を記憶し、第2の処理データの暗号化処理を再開する場合は、暗号化装置の暗号化処理の状態を、メモリに記憶した第2の処理データの暗号化処理の状態に復帰させてから第2の処理データの暗号化処理を再開することを特徴とする。
図16は、OFBモードの暗号化装置の構成図である。
図45に比べて、メモリ55が追加されている点が特徴である。メモリ55は、暗号化モジュール51から出力されたモジュール出力データTを記憶するものである。
図16は、平文Mを構成する平文ブロックデータM(i=1,2,3,・・・)と平文Nを構成する平文ブロックデータN(j=1,2,3,・・・)とを暗号化する暗号化装置において、平文Mの暗号化処理中に平文Nの暗号化要求を平文Mの暗号化処理完了前に受け付ける割り込み処理メカニズムと、暗号化処理を行ったデータをモジュール出力ブロックデータTとして出力する暗号化モジュール51と、暗号化モジュール51から出力されたモジュール出力ブロックデータTをフィードバックライン65を介し暗号化モジュールにフィードバックするフィードバックループ65,66と、フィードバックループのフィードバックライン65と並列に設けられ、上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化されない場合、フィードバックされるモジュール出力ブロックデータTを記憶するメモリ55と、平文ブロックデータMi+1や、が平文ブロックデータMの次に続けて暗号化される場合は、上記フィードバックループのフィードバックライン65によりフィードバックされるモジュール出力ブロックデータTを選択してフィードバックループを介して暗号化モジュール51に供給し、上記平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリ55に記憶されたモジュール出力ブロックデータTを選択してフィードバックループを介して暗号化モジュール51に供給するセレクタ54とを備えたことを特徴とする。
図17は、図16のOFBモードの暗号化装置の動作説明図である。
図17は、図2のCBCモードの動作がOFBモードの動作になったものであり、その他の動作は図2の動作と同じである。
図18は、CFBモードの暗号化装置を示す図である。
図47に比べて、メモリ55が設けられている点が特徴である。メモリ55は、排他的論理和回路58から出力された暗号文ブロックデータCを記憶するものである。
また、排他的論理和回路58と暗号鍵Kを用いた暗号化モジュール51とは、暗号化ユニット52を構成している。
図18は、平文Mを構成する平文ブロックデータM(i=1,2,3,・・・)と平文Nを構成する平文ブロックデータN(j=1,2,3,・・・)とを暗号化する暗号化装置において、平文Mの暗号化処理中に平文Nの暗号化要求を平文Mの暗号化処理完了前に受け付ける割り込み処理メカニズムと、平文ブロックデータMの暗号化処理を行い暗号文ブロックデータCを出力する暗号化ユニット52と、暗号化モジュールから出力された暗号文ブロックデータCをフィードバックライン65を介し暗号化処理にフィードバックするフィードバックループ65,66と、フィードバックループのフィードバックライン65と並列に設けられ、上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化されない場合、フィードバックされる暗号文ブロックデータCを記憶するメモリ55と、平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化される場合は、上記フィードバックループのフィードバックライン65によりフィードバックされる暗号文ブロックデータCを選択してフィードバックループを介して暗号化ユニット52に供給し、上記平文ブロックデータMi+1が平文ブロックデータMの次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリ55に記憶された暗号文ブロックデータCを選択してフィードバックループを介して暗号化ユニット52に供給するセレクタ54とを備えたことを特徴とする。
図19は、図18のCFBモードの暗号化装置の動作説明図である。
図19は、図2のCBCモードの動作がCFBモードの動作になったものであり、その他の動作は図2の動作と同じである。
図20は、CBCモードの復号装置を示す図である。
図44に比べて、メモリ75が設けられている点が特徴である。
メモリ75は、レジスタ76とスイッチ77により構成されている。
また、排他的論理和回路78と鍵Kを用いた復号モジュール71により復号ユニット72を構成している。
なお、レジスタ111は、セレクタ74の内部に設けられていてもよい。
図20に示す復号装置は、暗号文Cを構成する暗号文ブロックデータC(i=1,2,3,・・・)と暗号文Dを構成する暗号文ブロックデータN(j=1,2,3,・・・)とを復号する復号装置において、暗号文Cの復号処理中に暗号文Dの復号要求を任意の時点で受け付ける割り込み処理メカニズムを有している。
また、図20に示す復号装置は、暗号文ブロックデータCの復号処理を行ったデータをモジュール出力ブロックデータTとして出力する復号モジュール71と、暗号文ブロックデータCi+1を復号するための暗号文ブロックデータCをフィードバックライン85,111,82を介し復号ユニット72にフィードバックするフィードバックループ85,111,82,86と、フィードバックループのフィードバックライン85,111,82と並列に設けられ、上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号されない場合、フィードバックされるブロックデータを記憶するメモリ71とを有している。
また、図20に示す復号装置は、暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号される場合は、上記フィードバックループのフィードバックライン85,111,82によりフィードバックされる暗号文ブロックデータCを選択してフィードバックループを介して暗号ユニット72に供給し、上記暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリに記憶された暗号文ブロックデータCを選択してフィードバックループを介して暗号ユニット72に供給するセレクタ74を備えている。
なお、上述した図20の説明において、「フィードバックライン」、「フィードバックループ」という用語を用いているが、「自己の出力を自己の入力にする」という意味での「フィードバック」ではない。ここでは、「フィードバック」という用語は、暗号文ブロックデータCを復号した後に、暗号文ブロックデータCi+1を復号するために、暗号文ブロックデータCを再び供給するという意味で用いるものとする。
図21は、図20の復号装置の動作手順を示す図である。
暗号鍵(復号鍵ともいう)Kを用いて、暗号文ブロックデータCを復号している最中に割り込みITの発生があった場合には、暗号文ブロックデータCがメモリ75のレジスタ76に記憶される。その後、暗号鍵(復号鍵ともいう)Kを用いて、暗号文ブロックデータDの復号が行われ、平文ブロックデータNが復号される。そして、メモリ75のレジスタ76に記憶された暗号文ブロックデータCが読み出され、暗号文ブロックデータCの復号が行われ、平文ブロックデータMが復号される。セレクタ74の動作は、図4に示したものと同じである。また、スイッチ77の動作は、図5に示したものと同じである。
図22は、OFBモードの復号装置を示す図である。
図22は、暗号文Cを構成する暗号文ブロックデータC(i=1,2,3,・・・)と暗号文Dを構成する暗号文ブロックデータD(j=1,2,3,・・・)とを復号する復号装置において、暗号文Cの復号処理中に暗号文Dの復号要求を任意の時点で受け付ける割り込み処理メカニズムと、復号処理を行ったデータをモジュール出力ブロックデータTとして出力する復号モジュール71と、復号モジュール71から出力されたモジュール出力ブロックデータTをフィードバックライン85を介し復号モジュール71にフィードバックするフィードバックループ85,86と、フィードバックループのフィードバックライン85と並列に設けられ、上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号されない場合、フィードバックされるモジュール出力ブロックデータTを記憶するメモリ75と、暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号される場合は、上記フィードバックループのフィードバックライン85によりフィードバックされるモジュール出力ブロックデータTを選択してフィードバックループを介して復号モジュール71に供給し、上記暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリ75に記憶されたモジュール出力ブロックデータTを選択してフィードバックループを介して復号モジュール71に供給するセレクタ74とを備えたことを特徴とする。
図23は、図22のOFBモードの暗号化装置の動作説明図である。
図23は、図21のCBCモードの動作がOFBモードの動作になったものであり、その他の動作は図21の動作と同じである。
図24は、CFBモードの復号装置を示す図である。
また、排他的論理和回路78と鍵Kを用いた復号モジュール71により復号ユニット72を構成している。
なお、レジスタ111は、セレクタ74の内部に設けられていてもよい。
図24は、暗号文Cを構成する暗号文ブロックデータC(i=1,2,3,・・・)と暗号文Dを構成する暗号文ブロックデータD(j=1,2,3,・・・)とを復号する復号装置において、暗号文Cの復号処理中に暗号文Dの復号要求を任意の時点で受け付ける割り込み処理メカニズムと、暗号文ブロックデータCの復号処理を行ったデータをモジュール出力ブロックデータTとして出力する復号モジュール71と、暗号文ブロックデータCi+1を復号するための暗号文ブロックデータCをフィードバックライン85,111,82を介し復号ユニット72にフィードバックするフィードバックループ85,111,82,86と、フィードバックループのフィードバックライン85,111,82と並列に設けられ、上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号されない場合、フィードバックされる暗号文ブロックデータCを記憶するメモリ75と、暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号される場合は、上記フィードバックループのフィードバックライン85,111,82によりフィードバックされる暗号文ブロックデータCを選択してフィードバックループを介して復号モジュール71に供給し、上記暗号文ブロックデータCi+1が暗号文ブロックデータCの次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリ75に記憶された暗号文ブロックデータCを選択してフィードバックループを介して復号モジュール71に供給するセレクタ74とを備えたことを特徴とする。
なお、上述した図24の説明において、「フィードバックライン」、「フィードバックループ」という用語を用いているが、「自己の出力を自己の入力にする」という意味での「フィードバック」ではない。ここでは、「フィードバック」という用語は、暗号文ブロックデータCを復号した後に、暗号文ブロックデータCi+1を復号するために、暗号文ブロックデータCを再び供給するという意味で用いるものとする。
図25は、図24のCFBモードの暗号化装置の動作説明図である。
図25は、図21のCBCモードの動作がCFBモードの動作になったものであり、その他の動作は図21の動作と同じである。
図26は、図1に示したCBCモードの暗号化装置の改良例を示す図である。
図26の暗号化装置は、セレクタ154とメモリ155とが追加されている。図1の場合は、鍵Kが割り込みITの解除のとき外部から支給される場合を示したが、ここでは、一度外部から支給された鍵Kを保存して再利用する場合について説明する。
メモリ155は、レジスタ156とスイッチ157により構成されている。スイッチ157は、暗号鍵Kをレジスタ156に入力させるか無視するかを切り替えるものである。この切り替えは、例えば、割り込みITにより行われる。割り込みITが発生した場合には、スイッチ157はEに接続され、割り込みITが解除された場合には、スイッチ157はFに接続される。レジスタ156は、Eを経由してきた鍵Kを入力して記憶するものである。レジスタ156に記憶された鍵Kは、セレクタ154に出力される。セレクタ154は、A,Cの2つの入力を有しており、いずれか1つの入力を選択するものである。これらの選択は、後述するように割り込みITに依存する。
図27は、図26に示した暗号化装置の動作手順を示す図である。
この暗号化装置が電源を投入された場合のセレクタ54とセレクタ154の入力はAに設定されており、スイッチ57とスイッチ157はEに接続されているものとする。また、平文Nの暗号化要求があるときは、割り込みITが発生し、平文Nの暗号化要求が解除されるまで、割り込みITがオンになり続けるものとする。また、平文Mは、鍵Kを用いて暗号化され、平文Nは、鍵Kを用いて暗号化されるものとする。鍵K又は鍵Kが暗号化モジュール51に支給されるものとする。
時刻T0において、鍵Kが鍵KIとして外部から支給される。セレクタ154は、Aに接続されているので、鍵KIを鍵Kとして暗号化モジュール51に出力する。また、スイッチ157がEに接続されているので、鍵Kがレジスタ156に記憶される。そして、平文ブロックデータMの暗号化処理がスタートする。時刻T0において、平文ブロックデータMの暗号化がスタートした場合には、セレクタ54の入力Aから一旦イニシャルバリューIVが入力された後、セレクタ54はBに切り替わる。そして、平文ブロックデータMが鍵Kを用いて暗号化されている途中の時刻Xにおいて、平文ブロックデータNの暗号化を要求する割り込みITが発生したとする。時刻T1までに、暗号文ブロックデータCはメモリ55に記憶された状態になる。そして、割り込みITの発生により時刻T1において、鍵Kが鍵KIとして外部から暗号化モジュール51に支給される。セレクタ154は、Aに接続されているので、鍵KIを鍵Kとして暗号化モジュール51に出力する。また、時刻T1において、セレクタ54は入力をAに設定する。また、時刻T1において、スイッチ57とスイッチ157はFに接続される。従って、鍵Kは、レジスタ156に記憶されない。時刻T1以降は、鍵Kを用いて平文ブロックデータNの暗号化が行われ、暗号文ブロックデータDが出力される。時刻Yにおいて、平文ブロックデータNの暗号化が終了し、割り込みITが解除されたものとする。この割り込みITの解除により時刻T2において、セレクタ54の入力はCに切り替えられ、スイッチ57はEに接続される。従って、鍵Kがレジスタ156から鍵KIとしてセレクタ154に出力され、セレクタ154から鍵Kが鍵Kとして暗号化モジュール51に支給される。また、セレクタ54がCに切り替わったことにより、メモリ55に記憶されていた暗号文ブロックデータCが平文ブロックデータMの暗号化のために入力され、鍵Kを用いた暗号化モジュール51により平文ブロックデータMが暗号化されて、暗号文ブロックデータCが出力される。時刻T3以前においては、セレクタ54の入力はBに切り替えられ、平文ブロックデータMを暗号化する場合には、フィードバックループのフィードバックライン65からフィードバックされた暗号文ブロックデータCが入力され、鍵Kを用いた暗号化モジュール51により平文ブロックデータMが暗号化されて、暗号文ブロックデータCが出力される。
また、時刻T3以前においては、セレクタ154の入力は、Aに切り替えられる。
セレクタ154のオペレーション処理を説明する。
電源がオンになった場合には、入力をAに設定する。また、割り込みITの発生が確認された場合でも、入力をAに設定し続ける。割り込みITの解除があるまでは、セレクタ154は、入力がAに設定されたままで動作する。セレクタ154は、割り込みITの解除があったことが検知された場合に、入力をCに設定する。この入力をCに設定することにより、メモリ55に記憶された鍵Kが鍵Kとして暗号化モジュール51に入力されることになる。このCからの鍵入力による暗号化がスタートした場合には、セレクタ154は、入力をAに設定する。
このようにして、割り込みITの発生に基づき、セレクタ154を切り替えることができる。
次に、スイッチ157の割り込み処理のオペレーションを説明する。
電源がオンになった場合、そして、その後の最初の平文Mの暗号化処理の場合は、スイッチ157はEに接続され、平文Mの鍵Kがレジスタ156に記憶される。そして、時刻Xにて、割り込みITが発生した場合には、時刻Tでスイッチ157をEからFに接続し、平文Nの鍵Kを無視する。そして、時刻Yにて、割り込みITの解除が検出された場合には、時刻T2にて、スイッチ157をFからEに接続する。このようにして、スイッチ157は、割り込みITの発生から解除までは平文Nの鍵Kを無視する。従って、メモリ155のレジスタ156には、平文Mの鍵Kが記憶され続けることになる。
図28は、図20に示した復号装置に対して鍵Kを保存して再利用する場合の構成を示している。
図28は、図20に対してセレクタ174とメモリ175を追加したものである。セレクタ174とメモリ175の動作は、図26に示したセレクタ154とメモリ155と同じである。
メモリ55とメモリ155は、割り込みITが発生したときの暗号化装置の状態を記憶するメモリの一例である。このように、メモリ55とメモリ155とが暗号化処理の状態を記憶しておくことにより、あるデータの暗号化の最中に他のデータの暗号化を行った場合でも、再びあるデータの暗号化の処理に復帰することができる。即ち、メモリ55に記憶されたデータとメモリ155に記憶された鍵Kとを用いることにより、暗号化が中断されたときと全く同じ状態に暗号化装置を復帰させることができ、中断した暗号化処理を続行させることが可能になる。
なお、メモリ155とメモリ175は、図6,図8に示すメモリ55と同じ構成のものでもよい。また、図示していないが、図16,図18,図22,図24に対して、図26,図28に示すような構成を追加して鍵Kを保存するようにしてもよい。
また、図26のメモリ55とメモリ155とは、同一の動作をするので、1つのメモリに統合してもよい。また、図28のメモリ75とメモリ175とは、同一の動作をするので、1つのメモリに統合してもよい。
以上のように、この実施の形態に係る復号装置は、1つ以上のブロックデータC(i=1,2,3,・・・,m)からなる第1の処理データ(暗号文C)と、1つ以上のブロックデータD(j=1,2,3,・・・,n)からなる第2の処理データ(暗号文D)との復号処理をする復号装置において、復号処理の状態を記憶するメモリ75を備え、第1の処理データの全ブロックデータ(C〜C)の復号処理が完了する前に第2の処理データの最初のブロックデータDの復号処理を開始するとともに、第2の処理データの最初のブロックデータDの復号処理を開始する場合に第1の処理データの復号処理の状態を上記メモリに記憶させ、第1の処理データの復号処理を再開する場合に復号装置の復号処理の状態をメモリ75に記憶した第1の処理データの復号処理の状態に復帰させてから第1の処理データの復号処理を再開することを特徴とする。
また、上記復号装置は、第2の処理データの全ブロックデータ(D〜D)の復号処理の完了する前に第1の処理データの復号処理を再開するとともに、上記メモリ74は、第1の処理データの復号処理を再開する場合に第2の処理データの復号処理の状態を記憶し、第2の処理データの復号処理を再開する場合は、復号装置の復号処理の状態をメモリに記憶した第2の処理データの復号処理の状態に復帰させてから第2の処理データの復号処理を再開することを特徴とする。
ここで、暗号化処理の状態とは、例えば、
図1のCBCモードでは、暗号化ブロックデータC (及び鍵K
図16のOFBモードでは、モジュール出力データT(及び鍵K
図18のCFBモードでは、暗号化ブロックデータC(及び鍵K
のことであり、また、復号処理の状態とは、例えば、
図20のCBCモードでは、暗号化ブロックデータC(及び鍵K
図22のOFBモードでは、モジュール出力データT(及び鍵K
図24のCFBモードでは、暗号化ブロックデータC(及び鍵K
のことである。
前述した説明においては、3つのモードの場合の暗号化装置と復号装置を説明したが、前述した3つのモードは一例であり、これらのモードの改良されたもの、或いは、これらのモードが変形されたものであっても構わない。特に、特徴となる点は、先のブロックデータが暗号化復号されたときに生成されたブロックデータC又はM又はTが次のブロックデータMi+1又はCi+1の暗号化復号処理にフィードバックデータとして用いられる暗号化復号方法において、暗号化復号の状態を記憶するメモリ55を設け、他のデータの暗号化復号化の処理後にブロックデータC又はM又はTを用いて再び元の状態に復帰可能にできる点である。従って、特に暗号化モード、復号モードは問わない。
なお、割り込みITを用いず、ポーリング方式やトークン取得方式等の他のメカニズムを用いて暗号化要求を受け付け、2以上の暗号化復号処理のインタラクティブな並列処理を行うようにしてもよい。
また、暗号鍵Kを用いる暗号化復号処理の場合を示したが、暗号鍵Kを用いない暗号化復号処理の場合でもよい。
実施の形態2.
この実施の形態においては、暗号化装置が秘匿処理とデータの完全性保証処理を行う場合について説明する。
データの秘匿処理とは、データを暗号化し、データが盗聴されても、或いは、盗まれても意味が分からなくすることである。また、データの完全性保証とは、データが何者かにより置き換えられていることがないことを保証することをいう。データを伝送する場合には、データの秘匿処理を行った上にデータの完全性を保証して伝送したい場合がある。データの秘匿処理は、データを暗号化することにより行われる。データの完全性保証処理は、データの最後に認証子(MAC:Message Authentication Code)を付加し、その認証子を検証することにより改竄を発見することにより行われる。
図29は、OFBモードの暗号化部100により秘匿処理を行い、CBCモードの認証子生成部200により認証子(MAC)を生成する場合を示している。
図29は、1つ以上の平文ブロックデータからなる平文を暗号化モジュール51により暗号文にし、暗号文に対して暗号文の完全性を保証するための認証子を生成する暗号化装置において、平文ブロックデータを暗号化モジュール51により暗号化したときに暗号化モジュール51が出力したモジュール出力ブロックデータTを暗号化モジュール51へ暗号化モジュールへフィードバックする第1のフィードバックループ65を有し、平文ブロックデータを入力し、第1のフィードバックループ65によりモジュール出力ブロックデータTをフィードバックさせ暗号化処理を行い、暗号文ブロックデータCを出力する暗号化部100と、認証子演算途中結果Tをフィードバックする第2のフィードバックループ66を有し、暗号化部100から暗号文ブロックデータCが出力されるたびに暗号文ブロックデータCを入力し、認証子演算処理を行い、第2のフィードバックループ66により認証子演算途中結果Tをフィードバックさせ、暗号文の完全性を保証するための認証子Pを生成する認証子生成部200とを備えたことを特徴とする。
図30は、図29に示す暗号化装置の動作手順を示す図である。
平文ブロックデータMが、まず暗号文ブロックデータCに暗号化される。次に、平文ブロックデータMが入力され、暗号文ブロックデータCに暗号化される。この平文ブロックデータMの暗号化と同じ時刻に暗号文ブロックデータCが入力され、認証子の演算が始まる。時刻TとTの間に平文ブロックデータMの暗号化と暗号文ブロックデータCに基づく認証子演算が行われる。また、時刻T2とT3の間では、平文ブロックデータMの暗号化と暗号文ブロックデータCに基づく認証子の演算が行われる。時刻T3においては、暗号文ブロックデータCに基づく認証子の演算が行われ、認証子Pが出力される。
図29で特徴となる点は、排他的論理和回路58から出力される暗号文ブロックデータCがフィードライン69により排他的論理和回路59に入力されている点である。フィードライン69によりOFBモードとCBCモードの暗号化処理を結合することにより、図30に示すように、秘匿処理と完全性認証処理がパイプライン処理で実行される。図52に示した場合は、時刻T6で処理時間がかかったが、図30の場合は、時刻T4で処理が終了して高速処理が行われたことになる。
図31は、図29に示した暗号化装置の動作フローチャート図である。
S51において、ブロックデータカウンタiを1とする。S52は、暗号化部100の動作であり、暗号化部100は、平文ブロックデータMを入力して平文ブロックデータMを暗号化し、暗号文ブロックデータCを生成して暗号文ブロックデータCを出力する。S53は、認証子生成部200の動作であり、暗号文ブロックデータCを入力し暗号文ブロックデータCを暗号化し、認証子を演算する。S54は、ブロックデータカウンタiが最後のブロックデータnを示しているかどうかを判断し、最後のブロックデータでない場合には、S55において、ブロックデータカウンタiを増加させ、再びS52の処理に戻る。即ち、暗号化部100と認証子生成部200の処理を繰り返す。S54において、最後のブロックデータの処理が終了した場合には、S53で演算された直前の認証子が最終的な認証子であるから、S56において、その認証子を暗号文ブロックデータCの最後に付加する。図31に示すように、暗号化部100が暗号文ブロックデータCを生成するたびに、認証子生成部200が暗号文ブロックデータCを入力して認証子を演算することによりパイプライン処理が可能になり、高速処理が行われる。
図32は、図29に示した暗号化部100と認証子生成部200をあわせたものである。即ち、暗号化部100と認証子生成部200の暗号化モジュール51を兼用し、また、暗号化部100と認証子生成部200の排他的論理和回路58と59を兼用したものである。更には、暗号化部100のフィードバックライン65と認証子生成部200のフィードバックライン66を兼用したものである。
第1セレクタ61は、秘匿処理の開始時にイニシャルバリューIVを選択するものである。第2セレクタ62は、完全性保証処理の開始時にイニシャルバリューIVを選択するものである。第3セレクタ63は、秘匿処理と完全性保証処理を交互に選択するものである。第3セレクタ63は入力をEにすることにより、秘匿処理を行わせることができる。また、第3セレクタ63は入力をFにすることにより、完全性保証処理を行わせることができる。
メモリ93は、暗号鍵Kを用いた暗号化モジュール51から出力されたモジュール出力データTを記録するものである。メモリ93は、入力スイッチ96と出力スイッチ97と第1レジスタ98と第2レジスタ99により構成されている。入力スイッチ96と出力スイッチ97は、第3セレクタ63の切り替えと同期しており、第3セレクタ63が切り替わるたびに入力スイッチ96及び出力スイッチ97も切り替わる。
図33は、図32に示す暗号化装置の動作手順を示す図である。
時刻T0とT1の間で平文ブロックデータMの秘匿処理が行われる。秘匿処理の途中で生成されたモジュール出力データは、第1レジスタ98に記憶される。時刻T1とT2の間では、暗号文ブロックデータCに基づく認証子の演算が行われる。完全性保証処理により生成された認証子演算途中結果は、第2レジスタ99に記憶される。次に、時刻T2とT3の間では、第1レジスタ98に記憶されたモジュール出力データと平文ブロックデータMに基づいて平文ブロックデータMの秘匿処理が行われる。次に、時刻T3とT4の間では、第2レジスタ99に記憶された認証子中間演算結果と暗号文ブロックデータCが入力され、認証子の演算が行われる。この動作を繰り返すことにより、秘匿処理と完全性認証処理が完了し、暗号文と認証子Pが出力される。図33に示す場合は、時刻T6までで処理が終了し、時間の短縮は図られていないが、図32に示すように、暗号鍵Kを用いた暗号化モジュール51と排他的論理和回路58とフィードバックライン67,68(フィードバックループ)が兼用されているので、回路規模を小さくすることができる。
図34は、OFBモードの復号化部300とCBCモードの認証子生成部400を有する復号装置を示す図である。
この認証子生成部400は、認証子生成部200と同一構成のものである。
図34は、1つ以上の暗号文ブロックデータからなる暗号文を平文に復号し、かつ、暗号文に対して暗号文の完全性を確認するための認証子を生成する復号装置において、暗号文ブロックデータCを復号モジュール71により復号したときに生成したモジュール出力ブロックデータTをフィードバックする第1のフィードバックループ65を有し、暗号文ブロックデータCを入力し、第1のフィードバックループ65によりモジュール出力ブロックデータTをフィードバックさせ復号処理を行い、平文ブロックデータMを出力する復号部300と、認証子演算途中結果Tをフィードバックする第2のフィードバックループ66を有し、復号部300に入力される暗号文ブロックデータCと同一の暗号文ブロックデータを入力し、認証子演算処理を行い認証子演算途中結果Tを出力し、第2のフィードバックループ66により認証子演算途中結果Tをフィードバックさせ、暗号文の完全性を確認するための認証子Qを生成する認証子生成部400とを備えたことを特徴とする。
暗号文ブロックデータCは、復号化部300の排他的論理和回路78に入力されると同時に、フィードライン69により認証子生成部400に入力される。このような構成により、復号化部300と認証子生成部400の処理が同時並列実行され、処理速度が向上する。
図35は、図34に示した復号装置の復号化部300と認証子生成部400を一体化したものである。
図35は、暗号鍵Kを用いた復号モジュール71とフィードバックライン87,88(フィードバックループ)が兼用されている場合を示している。
第1セレクタ81は、復号処理の開始時にイニシャルバリューIVを選択するものである。第2セレクタ82は、完全性保証処理の開始時にイニシャルバリューIVを選択するものである。第3セレクタ83は、復号処理と完全性保証処理を交互に選択するものである。第3セレクタ83は入力をEにすることにより、復号処理を行わせることができる。また、第3セレクタ83は入力をFにすることにより、完全性保証処理を行わせることができる。
メモリ93は、暗号鍵Kを用いた暗号化モジュール51から出力されたモジュール出力データTを記録するものである。メモリ93は、入力スイッチ96と出力スイッチ97と第1レジスタ98と第2レジスタ99により構成されている。入力スイッチ96と出力スイッチ97は、第3セレクタ83の切り替えと同期しており、第3セレクタ83が切り替わるたびに入力スイッチ96及び出力スイッチ97も切り替わる。
図36は、図35に示した復号装置の動作手順を示す図である。
復号装置は、暗号文と認証子Pを入力する。
時刻T0とT1の間で暗号文ブロックデータCの復号処理と暗号文ブロックデータCのレジスタ111への保存が行われる。復号処理の途中で生成されたモジュール出力データは、第1レジスタ98に記憶される。時刻T1とT2の間では、レジスタ111に保存された暗号文ブロックデータCに基づく認証子の演算が行われる。完全性保証処理により生成された認証子演算途中結果は、第2レジスタ99に記憶される。次に、時刻T2とT3の間では、暗号文ブロックデータCがレジスタ111に保存され、第1レジスタ98に記憶されたモジュール出力データと暗号文ブロックデータCに基づいて平文ブロックデータMの復号処理が行われる。次に、時刻T3とT4の間では、第2レジスタ99に記憶された認証子中間演算結果とレジスタ111に保存された暗号文ブロックデータCが入力され、認証子の演算が行われる。この動作を繰り返すことにより、平文と認証子Qが出力される。この認証子Qは、認証子Pと比較され、認証子Pと認証子Qが一致していれば、データの完全性が認証できたことになる。これで、復号処理と完全性認証処理が完了する。
図37は、図29のOFBモードの暗号化部100をCBCモードの暗号化部100にしたものである。
図37は、1つ以上の平文ブロックデータからなる平文を暗号文にし、暗号文に対して暗号文の完全性を保証するための認証子を生成する暗号化装置において、平文ブロックデータを暗号化ユニット52により暗号化したときに暗号化モジュール51が出力した暗号文ブロックデータCをフィードバックする第1のフィードバックループ65を有し、平文ブロックデータMを入力し、第1のフィードバックループ65により暗号文ブロックデータCをフィードバックさせ暗号化処理を行い、暗号文ブロックデータCを出力する暗号化部100と、認証子演算途中結果Tをフィードバックする第2のフィードバックループ66を有し、暗号化部100から暗号文ブロックデータCが出力されるたびに暗号文ブロックデータCを入力し、認証子演算処理を行い、第2のフィードバックループ66により認証子演算途中結果Tをフィードバックさせ、暗号文の完全性を保証するための認証子Pを生成する認証子生成部400とを備えたことを特徴とする。
図38は、図34のOFBモードの復号部300をCBCモードの復号部300にしたものである。
図38は、1つ以上の暗号文ブロックデータからなる暗号文を平文に復号し、かつ、暗号文に対して暗号文の完全性を確認するための認証子を生成する復号装置において、暗号文ブロックデータCをフィードバックする第1のフィードバックループ85,82を有し、暗号文ブロックデータCを入力し、第1のフィードバックループ85,82により暗号文ブロックデータCをフィードバックさせ復号処理を行い、平文ブロックデータMを出力する復号部300と、認証子演算途中結果Tをフィードバックする第2のフィードバックループ66を有し、復号部300に入力される暗号文ブロックデータCと同一の暗号文ブロックデータCを入力し、認証子演算処理を行い認証子演算途中結果Tを出力し、第2のフィードバックループにより認証子演算途中結果Tをフィードバックさせ、暗号文の完全性を確認するための認証子Qを生成する認証子生成部400とを備えたことを特徴とする。
以上のように、図29,図37は、データを入力して暗号化し、暗号データを出力する暗号化部と、暗号化部が出力した暗号データを入力して暗号文の完全性を保証するための認証子を生成する認証子生成部とを備え、認証子生成部は、暗号化部によるデータの暗号化が完了する前に認証子の生成を開始することを特徴とする暗号化装置を示している。
また、図34,図38は、データを入力して復号し、復号データを出力する復号部と、復号部が入力したデータを入力して暗号文の完全性を保証するための認証子を生成する認証子生成部とを備え、認証子生成部は、復号部によるデータの復号が完了する前に認証子の生成を開始することを特徴とする復号装置を示している。
なお、図示していないが、OFBモードの暗号化部100又は復号部300を用いてもよい。
また、図示していないが、OFBモード又はCFBモードの認証子生成部200を用いてもよい。
図39は、暗号化モジュール51又は復号モジュール71の構成図である。
暗号化モジュール51は、鍵スケジュール部511とデータランダマイズ部512を有している。鍵スケジュール部511は、1つの鍵Kを入力してn個の拡大鍵ExtK〜ExtKを生成する。データランダマイズ部512は、関数FとXOR回路とにより乱数を発生させる。関数Fは、拡大鍵を入力して非線形データ変換を行う。
上記暗号化装置の暗号モジュール51においては、例えば、
(1)DES(Data Encryption Standard)、又は、
(2)国際公開番号WO97/9705(米国特許出願番号08/83640)に開示されたブロック暗号アルゴリズムであるMISTY、又は、
(3)上記ブロック暗号アルゴリズムMISTYをベースとした64ビットブロック暗号であり、次世代携帯電話用国際標準暗号(IMT2000)として採用されることが決定されたブロック暗号アルゴリズムであるKASUMI(詳細は、http://www.3gpp.org/About_3GPP/3gpp.htmを参照のこと)、又は、
(4)日本特許出願番号2000−64614(出願日2000年3月9日)に記載されたブロック暗号アルゴリズムであるCamelliaなどのブロック暗号アルゴリズムを用いることができる。また、上記復号装置の復号モジュール71においても、DES、MISTY、KASUMI又はCamelliaなどのブロック暗号アルゴリズムを用いることができる。
図40は、前述した暗号化装置又は復号装置の実装形式を示す図である。
図40は、FPGA又はIC又はLSIの中に前述した暗号化装置及び復号装置が実現されている場合を示している。即ち、前述した暗号化装置及び復号装置は、ハードウェアで実現することができる。また、図示していないが、プリントサーキットボードにより実現することも可能である。
図41は、前述した暗号化装置及び復号装置をソフトウェアで実現する場合を示している。
前述した暗号化装置は、暗号化プログラム47で実現することができる。暗号化プログラム47は、ROM(Read Only Memory)42(記録媒体の一例)に記憶されている。暗号化プログラム47は、RAM(Random Access Memory)又はフレキシブルディスク又は固定ディスク等の他の記録媒体に記録されていてもよい。また、暗号化プログラム47は、サーバコンピュータからダウンロードされてもよい。暗号化プログラム47は、サブルーチンとして機能する。暗号化プログラム47は、RAM45に記憶されたアプリケーションプログラム46からサブルーチンコールにより呼び出されて実行される。或いは、暗号化プログラム47は、割り込み制御部43で受け付ける割り込みの発生により起動されるようにしても構わない。メモリ55は、RAM45の一部であっても構わない。アプリケーションプログラム46、暗号化プログラム47は、CPU41により実行されるプログラムである。
図42は、アプリケーションプログラム46が暗号化プログラム47を呼び出すメカニズムを示している。
アプリケーションプログラム46は、鍵KとイニシャルバリューIVと平文Mと暗号文Cをパラメータにして暗号化プログラム47を呼び出す。暗号化プログラム47は、鍵KとイニシャルバリューIVと平文Mを入力し、暗号文Cを返すものである。暗号化プログラム47と復号プログラムが同一のときは、鍵KとイニシャルバリューIVと暗号文Cと平文Mをパラメータにして暗号化プログラム47を呼び出す。
また、図示しないが、暗号化プログラム47は、デジタルシグナルプロセッサと、そのデジタルシグナルプロセッサにより読み込まれて実行されるプログラムによって実現しても構わない。即ち、ハードウェアとソフトウェアの組み合わせによって暗号化プログラム47を実現しても構わない。
図40,図41,図42は、主として、暗号化装置の場合を説明したが、復号装置でも同様の方式で実現できる。
図40及び図41に示したような暗号化装置及び復号装置は、電子機器に対してインストールすることができる。例えば、パーソナルコンピュータやファクシミリ装置や携帯電話やビデオカメラやデジタルカメラやテレビカメラ等のあらゆる電子機器にインストールすることができる。特に、この実施の形態における特徴が発揮できるのは、複数のチャネルからのデータを暗号化復号する場合に有効である。或いは、複数のユーザからのデータがアットランダムに到着して復号する場合に、或いは、複数のユーザに対するデータがアットランダムに発生して、それぞれのデータをリアルタイムに暗号化するような場合に有効である。即ち、暗号化復号するデータの数に比べて暗号化復号する装置の数が少ない場合に、前述した実施の形態の暗号化装置、復号装置が非常に有効である。例えば、多くのクライアントコンピュータをサポートしなければならないサーバコンピュータや多くの携帯電話機からのデータを集配しなければならない基地局や回線コントローラなどに、前述した暗号化装置や復号装置が非常に有効である。
なお、暗号化処理同士及び復号処理同士の並列処理でなく、暗号化処理と復号処理との並列処理を行うようにしてもよい。
また、OFBモードの暗号化部(又は復号化部)とCBCモードの認証子生成部との組み合わせの場合を示したが、OFBモードとCBCモードとCFBモードとこれらのモードの改良モードとその他のモードとのいずれのモードの組み合わせでも構わない。
また、認証子生成部が、暗号鍵Kを用いた暗号化を行う場合を示したが、認証子生成部は、データの攪拌や演算やその他のデータ処理を行う場合であっても構わない。
産業上の利用可能性
以上のように、この発明の好適な実施の形態によれば、平文Mの暗号化の途中で平文Nの暗号化を開始することができる。また、暗号文Cの復号中に他の暗号文Dの復号を開始することができる。
また、この発明の好適な実施の形態によれば、優先度を付けることにより暗号化復号されるデータを優先度に基づいて高速に処理することができる。
また、この発明の好適な実施の形態によれば、秘匿処理と完全性保証処理とを並列処理することにより高速処理が行える。また、秘匿処理と完全性保証処理を統合化された1つのハードウェアで行うことができる。
【図面の簡単な説明】
図1は、実施の形態1のCBCモードの暗号化装置を示す図。
図2は、CBCモードの暗号化装置の動作手順を示す図。
図3は、CBCモードの暗号化装置の動作フローチャート図。
図4は、セレクタ54の動作フローチャート図。
図5は、スイッチ57の割り込み処理フローチャート図。
図6は、メモリ55の他の例を示す図。
図7は、メモリ55の割り込み処理フローチャート図。
図8は、メモリ55の他の例を示す図。
図9は、優先度処理を示す図。
図10は、優先度処理を示す図。
図11は、優先度処理を示す図。
図12は、メモリ55がフィードバックライン66と並列に設けられている図。
図13は、図12の暗号化装置の動作手順を示す図。
図14は、メモリ55がフィードバックライン67に並列に設けられている図。
図15は、図14の暗号化装置の動作手順を示す図。
図16は、OFBモードの暗号化装置を示す図。
図17は、図16の暗号化装置の動作手順を示す図。
図18は、CFBモードの暗号化装置を示す図。
図19は、図18の暗号化装置の動作手順を示す図。
図20は、CBCモードの復号装置を示す図。
図21は、図20の復号装置の動作手順を示す図。
図22は、OFBモードの復号装置を示す図。
図23は、図22の復号装置の動作手順を示す図。
図24は、CFBモードの復号装置を示す図。
図25は、図24の復号装置の動作手順を示す図。
図26は、鍵を保存するCBCモードの暗号化装置を示す図。
図27は、CBCモードの暗号化装置の動作手順を示す図。
図28は、鍵を保存するCBCモードの復号装置を示す図。
図29は、実施の形態2の暗号化部100と認証子生成部200を有する暗号化装置を示す図。
図30は、暗号化部100と認証子生成部200を有する暗号化装置の動作手順を示す図。
図31は、暗号化部100と認証子生成部200を有する暗号化装置のフローチャート図。
図32は、暗号化部100と認証子生成部200を1つにした暗号化装置を示す図。
図33は、暗号化部100と認証子生成部200を1つにした暗号化装置の動作手順を示す図。
図34は、復号化部300と認証子生成部400を有する復号装置を示す図。
図35は、復号化部300と認証子生成部400を1つにした復号装置を示す図。
図36は、復号化部300と認証子生成部400を1つにした復号装置の動作手順を示す図。
図37は、実施の形態2の暗号化部100と認証子生成部200を有する暗号化装置を示す図。
図38は、復号化部300と認証子生成部400を有する復号装置を示す図。
図39は、暗号鍵Kを用いた暗号化モジュール51の代表的構成図。
図40は、暗号化装置及び復号装置のハードウェア実現例を示す図。
図41は、暗号化装置及び復号装置のハードウェア実現例を示す図。
図42は、アプリケーションプログラム46により暗号化プログラム47が呼び出される場合を示す図。
図43は、従来のCBCモードの暗号化装置を示す図。
図44は、従来のCBCモードによる復号装置を示す図。
図45は、従来のOFBモードの暗号化装置を示す図。
図46は、従来のOFBモードによる復号装置を示す図。
図47は、従来のCFBモードの暗号化装置を示す図。
図48は、従来のCFBモードによる復号装置を示す図。
図49は、従来の暗号化手順を示す図。
図50は、従来の暗号化手順を示す図。
図51は、秘匿処理と完全性保証処理を説明する図。
図52は、従来の秘匿処理と完全性保証処理の動作手順を示す図。

Claims (20)

  1. 平文Mを構成する平文ブロックデータMi (i=1,2,3,・・・)と平文Nを構成する平文ブロックデータNj (j=1,2,3,・・・)とを暗号化する暗号化装置において、
    平文Mの暗号化処理中に平文Nの暗号化要求を平文Mの暗号化処理完了前に受け付けるメカニズムと、
    平文ブロックデータMi の暗号化処理を行い暗号文ブロックデータCi を出力する暗号化ユニットと、
    暗号化ユニットから出力された暗号文ブロックデータCi をフィードバックラインを介し暗号化ユニットにフィードバックするフィードバックループと、
    フィードバックループのフィードバックラインと並列に設けられ、上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータMi+1 が平文ブロックデータMi の次に続けて暗号化されない場合、フィードバックされる暗号文ブロックデータCi を記憶するメモリと、
    平文ブロックデータMi+1 が平文ブロックデータMi の次に続けて暗号化される場合は、上記フィードバックループのフィードバックラインによりフィードバックされる暗号文ブロックデータCi を選択してフィードバックループに供給し、上記平文ブロックデータMi+1 が平文ブロックデータMi の次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリに記憶された暗号文ブロックデータCi を選択してフィードバックループに供給する第1のセレクタと
    を備えたことを特徴とする暗号化装置。
  2. 上記メモリは、
    複数の平文に対応した複数のレジスタと、
    暗号化処理をする平文に対応してレジスタを切り替えるスイッチと
    を備えたことを特徴とする請求項記載の暗号化装置。
  3. 平文Mを構成する平文ブロックデータM i (i=1,2,3,・・・)と平文Nを構成する平文ブロックデータN j (j=1,2,3,・・・)とを暗号化する暗号化装置であって、平文Mの暗号化処理中に平文Nの暗号化要求を平文Mの暗号化処理完了前に受け付けるメカニズムを備えた暗号化装置の暗号化方法において、
    暗号化ユニットが、平文ブロックデータM i の暗号化処理を行い暗号文ブロックデータC i を出力する暗号化工程と、
    フィードバックループによって、暗号化ユニットから出力された暗号文ブロックデータC i をフィードバックラインを介し暗号化ユニットにフィードバックするフィードバックループ工程と、
    フィードバックループのフィードバックラインと並列に設けられたメモリが、上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータM i+1 が平文ブロックデータM i の次に続けて暗号化されない場合、フィードバックされる暗号文ブロックデータC i を記憶する記憶工程と、
    セレクタが、平文ブロックデータM i+1 が平文ブロックデータM i の次に続けて暗号化される場合は、上記フィードバックループのフィードバックラインによりフィードバックされる暗号文ブロックデータC i を選択してフィードバックループに供給し、上記平文ブロックデータM i+1 が平文ブロックデータM i の次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリに記憶された暗号文ブロックデータC i を選択してフィードバックループに供給するセレクタ工程と
    を備えたことを特徴とする暗号化装置の暗号化方法。
  4. 暗号文Cを構成する暗号文ブロックデータCi (i=1,2,3,・・・)と暗号文Dを構成する暗号文ブロックデータDj (j=1,2,3,・・・)とを復号する復号装置において、
    暗号文Cの復号処理中に暗号文Dの復号要求を任意の時点で受け付けるメカニズムと、
    暗号文ブロックデータCi の復号処理を行い平文ブロックデータMi を出力する復号ユニットと、
    暗号文ブロックデータCi+1 を復号するための暗号文ブロックデータCi をフィードバックラインを介し復号ユニットにフィードバックするフィードバックループと、
    フィードバックループのフィードバックラインと並列に設けられ、上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータCi+1 が暗号文ブロックデータCi の次に続けて復号されない場合、フィードバックされる暗号文ブロックデータCi を記憶するメモリと、
    暗号文ブロックデータCi+1 が暗号文ブロックデータCi の次に続けて復号される場合は、上記フィードバックループのフィードバックラインによりフィードバックされる暗号文ブロックデータCi を選択してフィードバックループに供給し、上記暗号文ブロックデータCi+1 が暗号文ブロックデータCi の次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリに記憶された暗号文ブロックデータCi を選択してフィードバックループに供給する第1のセレクタと
    を備えたことを特徴とする復号装置。
  5. 上記メモリは、
    複数の暗号文に対応した複数のレジスタと、
    復号処理をする暗号文に対応してレジスタを切り替えるスイッチと
    を備えたことを特徴とする請求項記載の復号装置。
  6. 暗号文Cを構成する暗号文ブロックデータC i (i=1,2,3,・・・)と暗号文Dを構成する暗号文ブロックデータD j (j=1,2,3,・・・)とを復号する復号装置であって、暗号文Cの復号処理中に暗号文Dの復号要求を任意の時点で受け付けるメカニズムを備える復号装置の復号方法において、
    復号ユニットが、暗号文ブロックデータC i の復号処理を行い平文ブロックデータM i を出力する復号工程と、
    フィードバックループが、暗号文ブロックデータC i+1 を復号するための暗号文ブロックデータC i をフィードバックラインを介し復号ユニットにフィードバックするフィードバックループ工程と、
    フィードバックループのフィードバックラインと並列に設けられたメモリが、上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータC i+1 が暗号文ブロックデータC i の次に続けて復号されない場合、フィードバックされる暗号文ブロックデータC i を記憶する記憶工程と、
    セレクタが、暗号文ブロックデータC i+1 が暗号文ブロックデータC i の次に続けて復号される場合は、上記フィードバックループのフィードバックラインによりフィードバックされる暗号文ブロックデータC i を選択してフィードバックループに供給し、上記暗号文ブロックデータC i+1 が暗号文ブロックデータC i の次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリに記憶された暗号文ブロックデータC i を選択してフィードバックループに供給するセレクタ工程と
    を備えたことを特徴とする復号装置の復号方法。
  7. 平文Mを構成する平文ブロックデータMi (i=1,2,3,・・・)と平文Nを構成する平文ブロックデータNj (j=1,2,3,・・・)とを暗号化する暗号化装置において、
    平文Mの暗号化処理中に平文Nの暗号化要求を平文Mの暗号化処理完了前に受け付けるメカニズムと、
    暗号化処理を行ったデータをモジュール出力ブロックデータTi として出力する暗号化モジュールと、
    暗号化モジュールから出力されたモジュール出力ブロックデータTi をフィードバックラインを介し暗号化モジュールにフィードバックするフィードバックループと、
    フィードバックループのフィードバックラインと並列に設けられ、上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータMi+1 が平文ブロックデータMi の次に続けて暗号化されない場合、フィードバックされるモジュール出力ブロックデータTi を記憶するメモリと、
    平文ブロックデータMi+1 が平文ブロックデータMi の次に続けて暗号化される場合は、上記フィードバックループのフィードバックラインによりフィードバックされるモジュール出力ブロックデータTi を選択してフィードバックループに供給し、上記平文ブロックデータMi+1 が平文ブロックデータMi の次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリに記憶されたモジュール出力ブロックデータTi を選択してフィードバックループに供給するセレクタと
    を備えたことを特徴とする暗号化装置。
  8. 上記メモリは、
    複数の平文に対応した複数のレジスタと、
    暗号化処理をする平文に対応してレジスタを切り替えるスイッチと
    を備えたことを特徴とする請求項記載の暗号化装置。
  9. 平文Mを構成する平文ブロックデータM i (i=1,2,3,・・・)と平文Nを構成する平文ブロックデータN j (j=1,2,3,・・・)とを暗号化する暗号化装置であって、平文Mの暗号化処理中に平文Nの暗号化要求を平文Mの暗号化処理完了前に受け付けるメカニズムを備えた暗号化装置の暗号化方法において、
    暗号化モジュールが、暗号化処理を行ったデータをモジュール出力ブロックデータT i として出力する暗号化工程と、
    フィードバックループが、暗号化モジュールから出力されたモジュール出力ブロックデータT i をフィードバックラインを介し暗号化モジュールにフィードバックするフィードバックループ工程と、
    フィードバックループのフィードバックラインと並列に設けられたメモリが、上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータM i+1 が平文ブロックデータM i の次に続けて暗号化されない場合、フィードバックされるモジュール出力ブロックデータT i を記憶する記憶工程と、
    セレクタが、平文ブロックデータM i+1 が平文ブロックデータM i の次に続けて暗号化される場合は、上記フィードバックループのフィードバックラインによりフィードバックされるモジュール出力ブロックデータT i を選択してフィードバックループに供給し、上記平文ブロックデータM i+1 が平文ブロックデータM i の次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリに記憶されたモジュール出力ブロックデータT i を選択してフィードバックループに供給するセレクタ工程と
    を備えたことを特徴とする暗号化装置の暗号化方法。
  10. 暗号文Cを構成する暗号文ブロックデータCi (i=1,2,3,・・・)と暗号文Dを構成する暗号文ブロックデータDj (j=1,2,3,・・・)とを復号する復号装置において、
    暗号文Cの復号処理中に暗号文Dの復号要求を任意の時点で受け付けるメカニズムと、
    復号処理を行ったデータをモジュール出力ブロックデータTi として出力する復号モジュールと、
    復号モジュールから出力されたモジュール出力ブロックデータTi をフィードバックラインを介し復号モジュールにフィードバックするフィードバックループと、
    フィードバックループのフィードバックラインと並列に設けられ、上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータCi+1 が暗号文ブロックデータCi の次に続けて復号されない場合、フィードバックされるモジュール出力ブロックデータTi を記憶するメモリと、
    暗号文ブロックデータCi+1 が暗号文ブロックデータCi の次に続けて復号される場合は、上記フィードバックループのフィードバックラインによりフィードバックされるモジュール出力ブロックデータTi を選択してフィードバックループに供給し、上記暗号文ブロックデータCi+1 が暗号文ブロックデータCi の次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリに記憶されたモジュール出力ブロックデータTi を選択してフィードバックループに供給するセレクタと
    を備えたことを特徴とする復号装置。
  11. 上記メモリは、
    複数の暗号文に対応した複数のレジスタと、
    復号処理をする暗号文に対応してレジスタを切り替えるスイッチと
    を備えたことを特徴とする請求項10記載の復号装置。
  12. 暗号文Cを構成する暗号文ブロックデータC i (i=1,2,3,・・・)と暗号文Dを構成する暗号文ブロックデータD j (j=1,2,3,・・・)とを復号する復号装置であって、暗号文Cの復号処理中に暗号文Dの復号要求を任意の時点で受け付けるメカニズムを備えた復号装置の復号方法において、
    復号モジュールが、復号処理を行ったデータをモジュール出力ブロックデータT i として出力する復号工程と、
    フィードバックループが、復号モジュールから出力されたモジュール出力ブロックデータT i をフィードバックラインを介し復号モジュールにフィードバックするフィードバックループ工程と、
    フィードバックループのフィードバックラインと並列に設けられたメモリが、上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータC i+1 が暗号文ブロックデータC i の次に続けて復号されない場合、フィードバックされるモジュール出力ブロックデータT i を記憶する記憶工程と、
    セレクタが、暗号文ブロックデータC i+1 が暗号文ブロックデータC i の次に続けて復号される場合は、上記フィードバックループのフィードバックラインによりフィードバックされるモジュール出力ブロックデータT i を選択してフィードバックループに供給し、上記暗号文ブロックデータC i+1 が暗号文ブロックデータC i の次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリに記憶されたモジュール出力ブロックデータT i を選択してフィードバックループに供給するセレクタ工程と
    を備えたことを特徴とする復号装置の復号方法。
  13. 上記請求項記載の暗号化方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  14. 上記請求項記載の復号方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  15. 上記請求項記載の暗号化方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  16. 上記請求項12記載の復号方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  17. 上記暗号化処理は、ブロック暗号アルゴリズムを用いることを特徴とする請求項1記載の暗号化装置。
  18. 上記復号処理は、ブロック暗号アルゴリズムを用いることを特徴とする請求項記載の復号装置。
  19. 上記メモリは、さらに、
    上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータM i+1 が平文ブロックデータM i の次に続けて暗号化されない場合、暗号化ユニットに供給する平文Mを暗号化するための暗号鍵を記憶し、
    上記暗号化装置は、さらに、
    上記平文ブロックデータM i+1 が平文ブロックデータM i の次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリに記憶された平文Mを暗号化するための暗号鍵を選択して暗号化ユニットに供給する第2のセレクタを備えることを特徴とする請求項1記載の暗号化装置。
  20. 上記メモリは、さらに、
    上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータC i+1 が暗号文ブロックデータC i の次に続けて復号されない場合、復号ユニットへ供給される暗号文Cを復号するための復号鍵を記憶し、
    上記復号装置は、さらに、
    上記暗号文ブロックデータC i+1 が暗号文ブロックデータC i の次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリに記憶された暗号文Cを復号するための復号鍵を選択して復号ユニットに供給する第2のセレクタを備えることを特徴とする請求項4記載の復号装置。
JP2001552574A 2000-01-14 2000-12-22 暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体 Expired - Lifetime JP4036648B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000005161 2000-01-14
PCT/JP2000/009129 WO2001052472A1 (fr) 2000-01-14 2000-12-22 Procede et dispositif pour chiffrement, procede et dispositif pour dechiffrement, et support lisible sur machine pour l'enregistrement de programme

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007086720A Division JP2007184000A (ja) 2000-01-14 2007-03-29 暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体

Publications (1)

Publication Number Publication Date
JP4036648B2 true JP4036648B2 (ja) 2008-01-23

Family

ID=18533842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001552574A Expired - Lifetime JP4036648B2 (ja) 2000-01-14 2000-12-22 暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体

Country Status (15)

Country Link
EP (2) EP1816782B1 (ja)
JP (1) JP4036648B2 (ja)
KR (1) KR100406223B1 (ja)
CN (2) CN1783774A (ja)
AT (1) ATE429746T1 (ja)
AU (1) AU760811C (ja)
CA (1) CA2366353C (ja)
DE (1) DE60042062D1 (ja)
DK (1) DK1816782T3 (ja)
ES (1) ES2548860T3 (ja)
HK (1) HK1041998B (ja)
NO (1) NO332197B1 (ja)
SG (1) SG117471A1 (ja)
TW (1) TW546938B (ja)
WO (1) WO2001052472A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4710607B2 (ja) * 2003-07-14 2011-06-29 ソニー株式会社 暗号装置、暗号方法および暗号プログラム、復号装置、復号方法および復号プログラム、ならびに、記録媒体
JP2006107380A (ja) * 2004-10-08 2006-04-20 Sony Corp 情報処理装置及び情報処理方法、メモリ装置、並びにコンピュータ・プログラム
JP4549303B2 (ja) * 2005-02-07 2010-09-22 株式会社ソニー・コンピュータエンタテインメント パイプラインを用いてメッセージ認証コードを提供する方法および装置
JP4287398B2 (ja) * 2005-03-29 2009-07-01 東芝情報システム株式会社 暗号化復号化システム、暗号文生成プログラム及び暗号文復号プログラム
JP4287397B2 (ja) * 2005-03-29 2009-07-01 東芝情報システム株式会社 暗号文生成装置、暗号文復号装置、暗号文生成プログラム及び暗号文復号プログラム
US7831039B2 (en) 2006-06-07 2010-11-09 Stmicroelectronics S.R.L. AES encryption circuitry with CCM
US8233619B2 (en) 2006-06-07 2012-07-31 Stmicroelectronics S.R.L. Implementation of AES encryption circuitry with CCM
DE102007052656B4 (de) * 2007-11-05 2010-03-25 Texas Instruments Deutschland Gmbh Digital-Verschlüsselungs-Hardware-Beschleuniger
JP2015114434A (ja) * 2013-12-10 2015-06-22 Kddi株式会社 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
WO2016087395A1 (en) * 2014-12-03 2016-06-09 Nagravision S.A. Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method
JP6544431B2 (ja) * 2015-08-11 2019-07-17 富士通株式会社 情報処理装置、データ表示方法及びデータ表示プログラム
US11438137B2 (en) * 2017-09-01 2022-09-06 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, and computer readable medium
WO2020186125A1 (en) 2019-03-13 2020-09-17 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5769344A (en) * 1980-10-13 1982-04-28 Nippon Telegr & Teleph Corp <Ntt> Controller of stored program
US4791669A (en) * 1985-11-30 1988-12-13 Nec Corporation Encryption/decryption system
JPH0273747A (ja) * 1988-09-09 1990-03-13 Nec Corp 交換処理待ちキュー優先制御回路
JP2918297B2 (ja) * 1990-06-18 1999-07-12 富士通株式会社 割込規制方式
JP2667575B2 (ja) * 1990-11-27 1997-10-27 株式会社東芝 タスクスケジューリング方式
US5365588A (en) * 1993-03-12 1994-11-15 Hughes Aircraft Company High speed encryption system and method
US5673319A (en) * 1995-02-06 1997-09-30 International Business Machines Corporation Block cipher mode of operation for secure, length-preserving encryption
US5796836A (en) * 1995-04-17 1998-08-18 Secure Computing Corporation Scalable key agile cryptography
US5615264A (en) * 1995-06-08 1997-03-25 Wave Systems Corp. Encrypted data package record for use in remote transaction metered data system
US5664016A (en) * 1995-06-27 1997-09-02 Northern Telecom Limited Method of building fast MACS from hash functions
US5631960A (en) * 1995-08-31 1997-05-20 National Semiconductor Corporation Autotest of encryption algorithms in embedded secure encryption devices
US5835599A (en) * 1996-04-15 1998-11-10 Vlsi Technology, Inc. Muti-cycle non-parallel data encryption engine
JPH09298736A (ja) * 1996-05-08 1997-11-18 Matsushita Electric Ind Co Ltd スクランブル伝送装置およびスクランブル装置およびデスクランブル装置および信号処理装置
JP3570114B2 (ja) * 1996-10-21 2004-09-29 富士ゼロックス株式会社 データ検証方法およびデータ検証システム
CN1157020C (zh) * 1997-04-23 2004-07-07 松下电器产业株式会社 提高了安全性的密码处理装置
DE19724072C2 (de) * 1997-06-07 1999-04-01 Deutsche Telekom Ag Vorrichtung zur Durchführung eines Blockchiffrierverfahrens
JP2000022684A (ja) * 1998-07-01 2000-01-21 Nec Corp データ暗号復号化通信方法及びシステム

Also Published As

Publication number Publication date
KR20010114222A (ko) 2001-12-31
SG117471A1 (en) 2005-12-29
NO20014443L (no) 2001-11-13
DE60042062D1 (de) 2009-06-04
CN1343411A (zh) 2002-04-03
AU760811B2 (en) 2003-05-22
TW546938B (en) 2003-08-11
ATE429746T1 (de) 2009-05-15
NO20014443D0 (no) 2001-09-13
EP1816782A1 (en) 2007-08-08
AU2400801A (en) 2001-07-24
CN100385850C (zh) 2008-04-30
EP1161027A4 (en) 2005-09-14
WO2001052472A1 (fr) 2001-07-19
EP1161027B1 (en) 2009-04-22
EP1161027A1 (en) 2001-12-05
HK1041998A1 (en) 2002-07-26
CA2366353A1 (en) 2001-07-19
AU760811C (en) 2003-12-18
HK1041998B (zh) 2009-09-11
CA2366353C (en) 2005-09-06
DK1816782T3 (en) 2015-10-12
CN1783774A (zh) 2006-06-07
NO332197B1 (no) 2012-07-23
ES2548860T3 (es) 2015-10-21
KR100406223B1 (ko) 2003-11-17
EP1816782B1 (en) 2015-07-15

Similar Documents

Publication Publication Date Title
US7184549B2 (en) Method and apparatus for encryption, method and apparatus for decryption, and computer-readable medium storing program
JP3864675B2 (ja) 共通鍵暗号装置
EP1063811B1 (en) Cryptographic apparatus and method
JP4036648B2 (ja) 暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体
EP1223707B1 (en) Variable length key encrypting system
KR20100069610A (ko) 연쇄화된 암호화 모드를 위한 방법 및 디바이스
US20040156500A1 (en) Method and apparatus for generating pseudo random numbers in a video device having an embedded cipher unit
US6732271B1 (en) Method of deciphering ciphered data and apparatus for same
JP2007184000A (ja) 暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2000209195A (ja) 暗号通信システム
AU2003203427B2 (en) Encryptor, encrypting method, decryptor, decrypting method, and computer readable recording medium having program stored therein
CA2496539C (en) Encryptor, encrypting method, decryptor, decrypting method, and computer readable recording medium having program stored therein
JP4287397B2 (ja) 暗号文生成装置、暗号文復号装置、暗号文生成プログラム及び暗号文復号プログラム
JP2001177518A (ja) 暗号化方法、復号化方法及び装置
JP2005309148A (ja) データ変換装置およびデータ変換方法
JP2001285278A (ja) 暗号通信方法及び暗号通信システム
JP4287398B2 (ja) 暗号化復号化システム、暗号文生成プログラム及び暗号文復号プログラム
MXPA01009243A (en) Method and apparatus for encryption, method and apparatus for decryption, and computer-readable medium storing program
JP4752239B2 (ja) 共通鍵暗号方法及び装置
JPH09130618A (ja) ファクシミリ装置
JP3396634B2 (ja) データ暗号/復号化装置及びそのプログラム記録媒体
JPH10303883A (ja) 暗号化方法
JP2008203306A (ja) 暗号処理装置
JP2007206582A (ja) 秘匿システム並びにそれに用いる暗号化装置及び暗号解除装置
JP2005210430A (ja) 暗号鍵生成装置及び方法、情報処理装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040517

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041015

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070329

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071030

R150 Certificate of patent or registration of utility model

Ref document number: 4036648

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121109

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121109

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131109

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term