JP4036648B2 - 暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents
暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/10—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Description
この発明は、暗号化復号装置及び暗号化復号方法に関するものである。特に、データの暗号化復号の最中に他のデータの暗号化復号ができる発明に関するものである。
背景技術
図43は、Cipher Block Chaining Mode(以下、CBCモードという)による暗号化装置を示す図である。
図43に示すCBCモードでの暗号方法は、64ビットの平文ブロックデータMiをブロック単位で入力して、暗号鍵Kを用いた暗号化モジュール51により暗号化し、更に、この暗号化された暗号文ブロックデータCiと次の平文ブロックデータMi+1との排他的論理和を演算し、排他的論理和の演算結果を次の暗号化の入力として、暗号鍵Kを用いた暗号化モジュール51に供給することにより暗号化する方法である。そして、この処理を繰り返して次々と連鎖させることにより、平文M全体を暗号文Cに暗号化するものである。
図44は、CBCモードを用いた復号装置を示す図である。
図44に示す復号装置は、図43に示す暗号化装置により暗号化された暗号文を復号する装置である。暗号文ブロックデータC1が暗号鍵Kを用いた復号モジュール71に入力され、イニシャルバリューIVとの排他的論理和が計算され、平文ブロックデータM1が復号される。暗号文ブロックデータC2が入力された場合には、暗号鍵Kを用いた復号モジュール71で復号され、先に入力され、レジスタ111に保存された暗号文ブロックデータC1との排他的論理和がとられ、平文ブロックデータM2を復号する。
なお、レジスタ111は、セレクタ73の内部に設けられていてもよい。
平文ブロックデータをMi(i=1,2,・・・,n)、暗号文ブロックデータCi(i=1,2,・・・,n)とし、暗号鍵Kを用いた暗号化処理をEK、暗号鍵Kを用いた復号処理をDKとすると、CBCモードは次式で表される。
C1=EK(M1EXR IV)
Ci=EK(MiEXR Ci−1)(i=2,3,・・・,n)
M1=DK(C1)EXR IV
Mi=DK(Ci)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が平文ブロックデータM1,平文ブロックデータM2,平文ブロックデータM3から構成されており、平文Nが平文ブロックデータN1のみで構成されている場合を説明する。
平文ブロックデータM1の暗号化がスタートすると、暗号文ブロックデータC1が出力されるとともに、暗号文ブロックデータC1は、平文ブロックデータM2の暗号化に用いられる。このように、暗号文ブロックデータCiは、平文ブロックデータMi+1の暗号化にフィードバックされて連鎖処理が行われる。従って、平文ブロックデータM1から平文ブロックデータM3までの暗号化が終わらなければ、平文ブロックデータN1の暗号化を行うことができない。
図50は、図49と同様に、CBCモードで暗号化を行う場合を示している。
図50の場合は、平文ブロックデータM1、平文ブロックデータM2、平文ブロックデータM3の各データが準備されるのに時間がかかってしまう場合を示している。一方、暗号化処理は、次の平文ブロックデータMi+1が準備できる前に終了しており、アイドル時間(例えば、T1〜T2、T3〜T4の時間)が発生してしまう場合を示している。このように、アイドル時間が発生する場合でも、暗号文ブロックデータCiが次の平文ブロックデータMi+1にフィードバックされる連鎖処理を行わなければならないため、平文ブロックデータN1の処理は平文ブロックデータM3の処理が終了してからでなければ行えない。
図51は、データの秘匿処理とデータの完全性を保証する処理を示す図である。平文Mは、例えば、OFBモードの暗号装置により暗号文Cに暗号化される。CBCモードの暗号装置により認証子Pが演算され、暗号文Cの最後に認証子Pが付加される。暗号化され、かつ、認証子Pが付加されたデータを受信した場合には、暗号文Cから平文MをOFBモードの復号装置により復号するとともに、暗号文CからCBCモードの復号装置により認証子Pを演算し、伝送されてきた認証子Pと同一か否かを比較することにより、伝送されてきたCが改竄されていないことを確認することができる。
図52は、図51に示した秘匿処理と認証子演算処理の手順を示す図である。
平文ブロックデータM1〜平文ブロックデータM3は、順に暗号文ブロックデータC1〜暗号文ブロックデータC3に暗号化される。その後、暗号文ブロックデータC1〜暗号文ブロックデータC3を順に入力して認証子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を構成する平文ブロックデータ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を選択してフィードバックループに供給するセレクタと
を備えたことを特徴とする。
上記メモリは、
複数の平文に対応した複数のレジスタと、
暗号化処理をする平文に対応してレジスタを切り替えるスイッチと
を備えたことを特徴とする。
この発明に係る暗号化方法は、暗号化モジュールから出力される暗号文ブロックデータCi(i=1,2,3,・・・)を用いて第1の平文Mの平文ブロックデータMi(i=1,2,3,・・・)を暗号化する工程と、
上記平文ブロックデータMiを暗号化している途中で又は平文ブロックデータMiを暗号化した後に、第1の平文Mの平文ブロックデータMi+1の暗号化に用いられる暗号文ブロックデータCiをメモリに記憶する工程と、
上記平文ブロックデータMi+1の暗号化に用いられる暗号文ブロックデータCiをメモリに記憶した後に、第2の平文Nの少なくとも1つの平文ブロックデータを暗号化する工程と、
上記第2の平文Nの少なくとも1つの平文ブロックデータを暗号化した後に、メモリに記憶された、平文ブロックデータMi+1の暗号化に用いられる暗号文ブロックデータCiを入力し、暗号化モジュールを用いて第1の平文Mの平文ブロックデータMi+1を暗号化する工程と
を備えたことを特徴とする。
この発明に係る暗号化装置は、1つ以上の平文ブロックデータからなる平文を暗号化ユニット暗号文にし、暗号文に対して暗号文の完全性を保証するための認証子を生成する暗号化装置において、
平文ブロックデータを暗号化ユニットにより暗号化したときに暗号化ユニットが出力した暗号文ブロックデータCiを暗号化ユニットへフィードバックする第1のフィードバックループを有し、平文ブロックデータを入力し、第1のフィードバックループにより暗号文ブロックデータCiをフィードバックさせ暗号化処理を行い、暗号文ブロックデータを出力する暗号化部と、
認証子演算途中結果をフィードバックする第2のフィードバックループを有し、暗号化部から暗号文ブロックデータが出力されるたびに暗号文ブロックデータを入力し、データ処理を行い、第2のフィードバックループにより認証子演算途中結果をフィードバックさせ、暗号文の完全性を保証するための認証子を生成する認証子生成部と
を備えたことを特徴とする。
上記暗号化部と認証子生成部とは、1つの暗号化モジュールと、1つのフィードバックループとを兼用して暗号化処理と認証子生成処理とを交互に行うとともに、
上記1つのフィードバックループは、
暗号化処理と認証子生成処理との結果をそれぞれ記録し出力するメモリと、
暗号化処理と認証生成処理とを交互に実行するために、メモリから暗号化処理と認証子生成処理との結果を交互に選択して暗号化モジュールに出力するセレクタと
を備えたことを特徴とする。
この発明に係る暗号化方法は、1つ以上の平文ブロックデータからなる平文を暗号化ユニットにより暗号文にし、暗号文に対して暗号文の完全性を保証するための認証子を生成する暗号化方法において、
平文ブロックデータを暗号化ユニットにより暗号化したときに暗号化ユニットが出力した暗号文ブロックデータCiを暗号化ユニットへフィードバックする第1のフィードバック工程を有し、平文ブロックデータを入力し、第1のフィードバックループにより暗号文ブロックデータCiをフィードバックさせ暗号化処理を行い、暗号文ブロックデータを出力する暗号化工程と、
認証子演算途中結果をフィードバックする第2のフィードバック工程を有し、暗号化工程から暗号文ブロックデータが出力されるたびに暗号文ブロックデータを入力し、データ処理を行い、第2のフィードバック工程により認証子演算途中結果をフィードバックさせ、暗号文の完全性を保証するための認証子を生成する認証子生成工程と
を備えたことを特徴とする。
この発明に係る復号装置は、第1の処理データと、第2の処理データとの復号処理をする復号装置において、
復号処理の状態を記憶するメモリを備え、
第1の処理データの復号処理が完了する前に第2の処理データの復号処理を開始するとともに、第2の処理データの復号処理を開始する場合に第1の処理データの復号処理の状態を上記メモリに記憶させ、第1の処理データの復号処理を再開する場合に、復号装置の復号処理の状態を、メモリに記憶した第1の処理データの復号処理の状態に復帰させてから第1の処理データの復号処理を再開することを特徴とする。
上記復号装置は、第2の処理データの復号処理の完了する前に第1の処理データの復号処理を再開するとともに、上記メモリは、第1の処理データの復号処理を再開する場合に第2の処理データの復号処理状態を記憶し、第2の処理データの復号処理を再開する場合は、復号装置の復号処理の状態を、メモリに記憶した第2の処理データの復号処理の状態に復帰させてから第2の処理データの復号処理を再開することを特徴とする。
上記第1の処理データは、第1の暗号文であり、上記第2の処理データは、第2の暗号文であることを特徴とする。
上記復号装置は、割り込みにより第2の処理データの最初のブロックデータの復号処理を開始することを特徴とする。
この発明に係る復号装置は、暗号文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の暗号文Cの暗号文ブロックデータCi(i=1,2,3,・・・)を復号する工程と、
上記暗号文ブロックデータCiを復号している途中で又は暗号文ブロックデータCiを復号した後に、第1の暗号文Cの暗号文ブロックデータCi+1の復号に用いられる暗号文ブロックデータCiをメモリに記憶する工程と、
上記暗号文ブロックデータCi+1の復号に用いられる暗号文ブロックデータCiをメモリに記憶した後に、第2の暗号文Dの少なくとも1つの暗号文ブロックデータを復号する工程と、
上記第2の暗号文Dの少なくとも1つの暗号文ブロックデータを復号した後に、メモリに記憶された、暗号文ブロックデータCi+1の復号に用いられる暗号文ブロックデータCiを入力し、復号モジュールを用いて第1の暗号文Cの暗号文ブロックデータCi+1を復号する工程と
を備えたことを特徴とする。
この発明に係る復号装置は、1つ以上の暗号文ブロックデータからなる暗号文を平文に復号し、かつ、暗号文に対して暗号文の完全性を確認するための認証子を生成する復号装置において、
復号モジュールによりデータを復号したときに生成したモジュール出力ブロックデータTiを復号モジュールへフィードバックする第1のフィードバックループを有し、暗号文ブロックデータを入力し、第1のフィードバックループによりモジュール出力ブロックデータTiをフィードバックさせ復号処理を行い、平文ブロックデータを出力する復号部と、
認証子演算途中結果をフィードバックする第2のフィードバックループを有し、復号部に入力される暗号文ブロックデータと同一の暗号文ブロックデータを入力し、データ処理を行い認証子演算途中結果を出力し、第2のフィードバックループにより認証子演算途中結果をフィードバックさせ、暗号文の完全性を確認するための認証子を生成する認証子生成部と
を備えたことを特徴とする。
上記復号部と認証子生成部とは、1つの復号モジュールと、1つのフィードバックループとを兼用して復号処理と認証子生成処理とを交互に行うとともに、
上記1つのフィードバックループは、
復号処理と認証子生成処理との結果をそれぞれ記録し出力するメモリと、
復号処理と認証生成処理とを交互に実行するために、メモリから復号処理と認証子生成処理との結果を交互に選択して復号モジュールに出力するセレクタと
を備えたことを特徴とする。
この発明に係る復号方法は、1つ以上の暗号文ブロックデータからなる暗号文を平文に復号し、かつ、暗号文に対して暗号文の完全性を確認するための認証子を生成する復号方法において、
復号モジュールによりデータを復号したときに生成したモジュール出力ブロックデータTiを復号モジュールへフィードバックする第1のフィードバック工程を有し、暗号文ブロックデータを入力し、第1のフィードバックループによりモジュール出力ブロックデータTiをフィードバックさせ復号処理を行い、平文ブロックデータを出力する復号工程と、
認証子演算途中結果をフィードバックする第2のフィードバック工程を有し、復号工程に入力される暗号文ブロックデータと同一の暗号文ブロックデータを入力し、データ処理を行い認証子演算途中結果を出力し、第2のフィードバック工程により認証子演算途中結果をフィードバックさせ、暗号文の完全性を確認するための認証子を生成する認証子生成工程と
を備えたことを特徴とする。
この発明に係る暗号化装置は、平文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を選択してフィードバックループに供給するセレクタと
を備えたことを特徴とする。
上記メモリは、
複数の平文に対応した複数のレジスタと、
暗号化処理をする平文に対応してレジスタを切り替えるスイッチと
を備えたことを特徴とする。
この発明に係る暗号化方法は、暗号化モジュールから出力されるモジュール出力ブロックデータTi(i=1,2,3,・・・)を用いて第1の平文Mの平文ブロックデータMi(i=1,2,3,・・・)を暗号化する工程と、
上記平文ブロックデータMiを暗号化している途中で又は平文ブロックデータMiを暗号化した後に、第1の平文Mの平文ブロックデータMi+1の暗号化に用いられるモジュール出力ブロックデータTiをメモリに記憶する工程と、
上記平文ブロックデータMi+1の暗号化に用いられるモジュール出力ブロックデータTiをメモリに記憶した後に、第2の平文Nの少なくとも1つの平文ブロックデータを暗号化する工程と、
上記第2の平文Nの少なくとも1つの平文ブロックデータを暗号化した後に、メモリに記憶された、平文ブロックデータMi+1の暗号化に用いられるモジュール出力ブロックデータTiを入力し、暗号化モジュールを用いて第1の平文Mの平文ブロックデータMi+1を暗号化する工程と
を備えたことを特徴とする。
この発明に係る暗号化装置は、1つ以上の平文ブロックデータからなる平文を暗号化モジュールにより暗号文にし、暗号文に対して暗号文の完全性を保証するための認証子を生成する暗号化装置において、
平文ブロックデータを暗号化モジュールにより暗号化したときに暗号化モジュールが出力したモジュール出力ブロックデータTiを暗号化モジュールへフィードバックする第1のフィードバックループを有し、平文ブロックデータを入力し、第1のフィードバックループによりモジュール出力ブロックデータTiをフィードバックさせ暗号化処理を行い、暗号文ブロックデータを出力する暗号化部と、
認証子演算途中結果をフィードバックする第2のフィードバックループを有し、暗号化部から暗号文ブロックデータが出力されるたびに暗号文ブロックデータを入力し、データ処理を行い、第2のフィードバックループにより認証子演算途中結果をフィードバックさせ、暗号文の完全性を保証するための認証子を生成する認証子生成部と
を備えたことを特徴とする。
上記暗号化部と認証子生成部とは、1つの暗号化モジュールと、1つのフィードバックループとを兼用して暗号化処理と認証子生成処理とを交互に行うとともに、
上記1つのフィードバックループは、
暗号化処理と認証子生成処理との結果をそれぞれ記録し出力するメモリと、
暗号化処理と認証生成処理とを交互に実行するために、メモリから暗号化処理と認証子生成処理との結果を交互に選択して暗号化モジュールに出力するセレクタと
を備えたことを特徴とする。
この発明に係る暗号化方法は、1つ以上の平文ブロックデータからなる平文を暗号化モジュールにより暗号文にし、暗号文に対して暗号文の完全性を保証するための認証子を生成する暗号化方法において、
平文ブロックデータを暗号化モジュールにより暗号化したときに暗号化モジュールが出力したモジュール出力ブロックデータTiを暗号化モジュールへフィードバックする第1のフィードバック工程を有し、平文ブロックデータを入力し、第1のフィードバックループによりモジュール出力ブロックデータTiをフィードバックさせ暗号化処理を行い、暗号文ブロックデータを出力する暗号化工程と、
認証子演算途中結果をフィードバックする第2のフィードバック工程を有し、暗号化工程から暗号文ブロックデータが出力されるたびに暗号文ブロックデータを入力し、データ処理を行い、第2のフィードバック工程により認証子演算途中結果をフィードバックさせ、暗号文の完全性を保証するための認証子を生成する認証子生成工程と
を備えたことを特徴とする。
この発明に係る復号装置は、暗号文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を選択してフィードバックループに供給するセレクタと
を備えたことを特徴とする。
上記メモリは、
複数の暗号文に対応した複数のレジスタと、
復号処理をする暗号文に対応してレジスタを切り替えるスイッチと
を備えたことを特徴とする。
この発明に係る復号方法は、復号モジュールから出力されるモジュール出力ブロックデータTi(i=1,2,3,・・・)を用いて第1の暗号文Cの暗号文ブロックデータCi(i=1,2,3,・・・)を復号する工程と、
上記暗号文ブロックデータCiを復号している途中で又は暗号文ブロックデータCiを復号した後に、第1の暗号文Cの暗号文ブロックデータCi+1の復号に用いられるモジュール出力ブロックデータTiをメモリに記憶する工程と、
上記暗号文ブロックデータCi+1の復号に用いられるモジュール出力ブロックデータTiをメモリに記憶した後に、第2の暗号文Dの少なくとも1つの暗号文ブロックデータを復号する工程と、
上記第2の暗号文Dの少なくとも1つの暗号文ブロックデータを復号した後に、メモリに記憶された、暗号文ブロックデータCi+1の復号に用いられるモジュール出力ブロックデータTiを入力し、復号モジュールを用いて第1の暗号文Cの暗号文ブロックデータCi+1を復号する工程と
を備えたことを特徴とする。
この発明に係る復号装置は、1つ以上の暗号文ブロックデータからなる暗号文を復号ユニットにより平文に復号し、かつ、暗号文に対して暗号文の完全性を確認するための認証子を生成する復号装置において、
暗号文ブロックデータCiを復号ユニットへフィードバックする第1のフィードバックループを有し、暗号文ブロックデータを入力し、第1のフィードバックループにより暗号文ブロックデータCiをフィードバックさせ復号処理を行い、平文ブロックデータを出力する復号部と、
認証子演算途中結果をフィードバックする第2のフィードバックループを有し、復号部に入力される暗号文ブロックデータと同一の暗号文ブロックデータを入力し、データ処理を行い認証子演算途中結果を出力し、第2のフィードバックループにより認証子演算途中結果をフィードバックさせ、暗号文の完全性を確認するための認証子を生成する認証子生成部と
を備えたことを特徴とする。
上記復号部と認証子生成部とは、1つの復号モジュールと、1つのフィードバックループとを兼用して復号処理と認証子生成処理とを交互に行うとともに、
上記1つのフィードバックループは、
復号処理と認証子生成処理との結果をそれぞれ記録し出力するメモリと、
復号処理と認証生成処理とを交互に実行するために、メモリから復号処理と認証子生成処理との結果を交互に選択して復号モジュールに出力するセレクタと
を備えたことを特徴とする。
この発明に係る復号方法は、1つ以上の暗号文ブロックデータからなる暗号文を復号ユニットにより平文に復号し、かつ、暗号文に対して暗号文の完全性を確認するための認証子を生成する復号方法において、
暗号文ブロックデータCiを復号ユニットへフィードバックする第1のフィードバック工程を有し、暗号文ブロックデータを入力し、第1のフィードバックループにより暗号文ブロックデータCiをフィードバックさせ復号処理を行い、平文ブロックデータを出力する復号工程と、
認証子演算途中結果をフィードバックする第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により暗号化された暗号文ブロックデータCiは、フィードバックループにより再び排他的論理和回路58に入力され、排他的論理和回路58でモジュール入力データSiが生成される。そして、生成されたモジュール入力データSiが暗号鍵Kを用いた暗号化モジュール51に供給される。
メモリ55は、フィードバックライン65と並列に設けられている。メモリ55は、レジスタ56とスイッチ57により構成されている。スイッチ57は、暗号鍵Kを用いた暗号化モジュール51の出力をレジスタ56に入力させるか無視するかを切り替えるものである。この切り替えは、例えば、割り込みITにより行われる。割り込みITが発生した場合には、スイッチ57はEに接続され、割り込みITが解除された場合には、スイッチ57はFに接続される。レジスタ56は、Eを経由してきた暗号文ブロックデータCiを入力して記憶するものである。レジスタ56に記憶された暗号文ブロックデータCiは、セレクタ54に出力される。セレクタ54は、A,B,Cの3つの入力を有しており、いずれか1つの入力を選択するものである。これらの選択は、後述するように割り込みITに依存する。
図2は、図1に示した暗号化装置の動作手順を示す図である。
図3は、図1に示した暗号化装置の動作フローチャートである。
この暗号化装置が電源を投入された場合のセレクタ54の入力はAに設定されており、スイッチ57はEに接続されているものとする。また、平文Nの暗号化要求があるときは、割り込みITが発生し、平文Nの暗号化要求が解除されるまで、割り込みITがオンになり続けるものとする。また、平文Mは、鍵K1を用いて暗号化され、平文Nは、鍵K2を用いて暗号化されるものとする。また、割り込みITが発生したとき又は割り込みITが解除されたときには、鍵K2又は鍵K1が暗号化モジュール51に支給され直すものとする。
時刻T0において、鍵K1が支給され、平文ブロックデータM1の暗号化処理がスタートする。時刻T0において、平文ブロックデータM1の暗号化がスタートした場合には、セレクタ54の入力Aから一旦イニシャルバリューIVが入力された後、セレクタ54はBに切り替わる。そして、平文ブロックデータM1が鍵K1を用いて暗号化されている途中の時刻Xにおいて、平文ブロックデータN1の暗号化を要求する割り込みITが発生したとする。時刻T1までに、暗号文ブロックデータC1はメモリ55に記憶された状態になる。そして、割り込みITの発生により時刻T1において、鍵K2が暗号化モジュール51に支給される。また、時刻T1において、セレクタ54は入力をAに設定する。また、時刻T1において、スイッチ57はFに接続される。時刻T1以降は、鍵K2を用いて平文ブロックデータN1の暗号化が行われ、暗号文ブロックデータD1が出力される。時刻Yにおいて、平文ブロックデータN1の暗号化が終了し、割り込みITが解除されたものとする。この割り込みITの解除により時刻T2において、鍵K1が暗号化モジュール51に支給され、セレクタ54の入力はCに切り替えられ、スイッチ57はEに接続される。セレクタ54がCに切り替わったことにより、メモリ55に記憶されていた暗号文ブロックデータC1が平文ブロックデータM2の暗号化のために入力され、鍵K1を用いた暗号化モジュール51により平文ブロックデータM2が暗号化されて、暗号文ブロックデータC2が出力される。時刻T3以前においては、セレクタ54の入力はBに切り替えられ、平文ブロックデータM3を暗号化する場合には、フィードバックループのフィードバックライン65からフィードバックされた暗号文ブロックデータC2が入力され、鍵K1を用いた暗号化モジュール51により平文ブロックデータM3暗号化されて、暗号文ブロックデータC3が出力される。
なお、平文Mと平文Nの鍵が同一(K1=K2)の場合は、鍵は暗号処理のスタート時に一度だけ供給されればよい。
図3のフローチャートを用いて全体の動作を説明する。
S1において、平文Mの暗号化処理がスタートし続行される。最後のブロックデータまで処理を終えた場合には、処理を終了する。S2において、任意の時点で生じる割り込みITの発生が監視される。割り込みITの発生がない場合には、S1の処理が続行される。平文ブロックデータMiの処理中に割り込みITが発生した場合には、S3において、現在処理中の平文ブロックデータMiの暗号文ブロックデータCiをメモリ55のレジスタ56に記憶する。S4において、割り込みITにより暗号化処理の要求があった平文Nの暗号化処理を行う。このS4の暗号化処理は、S5に示すように、割り込みITの解除があるまで連続して行われる。割り込みITの解除があった場合には、S6において、メモリ55のレジスタ56に記憶した暗号文ブロックデータCiを用いてMi+1の暗号化処理を行う。それ以降の処理は、S1に戻り、暗号化処理が続行される。
図4は、セレクタ54のオペレーション処理を示す図である。
電源がオンになった場合には、S11に示すように、入力をAに設定する。S12において、暗号化がスタートした場合には、S13において、入力をBに設定する。即ち、フィードバックループのフィードバックライン65によりフィードバックされる暗号文ブロックデータCiが用いられる。S14において、現在処理しているブロックデータが最後であるということが判定された場合には、S11に戻り電源オンと同じ状態に戻る。S15において、割り込みITの発生が確認された場合には、S16において、入力をAに設定し、暗号化がスタートした場合には、S18において、入力をBに設定する。割り込みITの解除があるまでは、入力がBに設定されたままで動作する。即ち、フィードバックループのフィードバックライン65によりフィードバックされる暗号文ブロックデータCiが用いられる。S19において、割り込みITの解除があったことが検知された場合には、S20において、入力をCに設定する。この入力をCに設定することにより、メモリ55に記憶された暗号文ブロックデータCiが入力されることになる。このCからの入力による暗号化がスタートした場合には、S13に戻り入力をBに設定する。
このようにして、割り込みITの発生に基づき、セレクタ54を切り替えることができる。
なお、平文Mの暗号化処理も、割り込みITにより任意の時刻にスタートさせてもよい。
図5は、スイッチ57の割り込み処理のフローチャートである。
電源がオンになった場合、そして、その後の最初の平文の暗号化処理の場合は、スイッチ57はEに接続される。そして、S31において、割り込みITが発生した場合には、スイッチ57をEからFに接続する。そして、S33において、割り込みITの解除が検出された場合には、スイッチ57をFからEに接続する。このようにして、スイッチ57は、割り込みITの発生から解除までは暗号文ブロックデータCiを無視する。従って、メモリ55のレジスタ56には、割り込みITが発生したときに生成された暗号文ブロックデータCiが記憶され続けることになる。
以上のように、図1〜図5に示した暗号化装置は、平文Mを構成する平文ブロックデータMi(i=1,2,3,・・・)と平文Nを構成する平文ブロックデータNj(j=1,2,3,・・・)とを暗号化する暗号化装置において、平文Mの暗号化処理中に平文Nの暗号化要求を平文Mの暗号化処理完了前に受け付ける割り込み処理メカニズムを示している。
また、図1〜図5に示した暗号化装置は、平文ブロックデータMiの暗号化処理を行い、暗号文ブロックデータCiを出力する暗号化モジュール51と、暗号化モジュール51から出力された暗号文ブロックデータCiをフィードバックライン65を介し暗号化ユニット52にフィードバックするフィードバックループ65,66と、フィードバックループのフィードバックライン65と並列に設けられ、上記割り込み処理により上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータMi+1が平文ブロックデータMiの次に続けて暗号化されない場合、フィードバックされる暗号文ブロックデータCiを記憶するメモリ55とを有している。
また、図1〜図5に示した暗号化装置は、平文ブロックデータMi+1が平文ブロックデータMiの次に続けて暗号化される場合は、上記フィードバックループのフィードバックライン65によりフィードバックされる暗号文ブロックデータCiを選択してフィードバックループを介して暗号化ユニット52に供給し、上記平文ブロックデータMi+1が平文ブロックデータMiの次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリ55に記憶された暗号文ブロックデータCiを選択してフィードバックループを介して暗号化ユニット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により排他的論理和演算されたモジュール入力データSiを記憶する。そして、平文ブロックデータN1を暗号化する。次に、メモリ55に記憶されたモジュール入力データSiを第2セレクタ62により選択させ、暗号鍵Kを用いた暗号化モジュール51に入力し、暗号化して暗号文ブロックデータC1を出力する。
図1及び図12及び図14に示すように、メモリ55は、フィードバックライン65とフィードバックライン66とフィードバックライン67のいずれのラインと並列の設けられていても構わない。メモリ55は、暗号化装置が、あるデータの暗号化処理中に他のデータの暗号化を開始するとき、他のデータの暗号化を開始する直前の状態を覚えておくものであり、他のデータの暗号化処理が終了した時点で、メモリ55に記憶されたデータを用いて暗号化装置が元の状態に復帰できるのであれば、メモリ55は、どの場所に設けられていても構わない。また、メモリ55は、複数箇所に設けられていてもよい。
以上のように、この実施の形態に係る暗号化装置は、1つ以上のブロックデータMi(i=1,2,3,・・・,m)からなる第1の処理データ(平文M)と、1つ以上のブロックデータNj(j=1,2,3,・・・,n)からなる第2の処理データ(平文N)との暗号化処理をする暗号化装置において、暗号化処理の状態を記憶するメモリ55を備え、第1の処理データの全ブロックデータ(M1〜Mm)の暗号化処理が完了する前に第2の処理データの最初のブロックデータN1の暗号化処理を開始するとともに、第2の処理データの最初のブロックデータN1の暗号化処理を開始する場合に第1の処理データの暗号化処理の状態(例えば、暗号化ブロックデータCi)を上記メモリ55に記憶させ、第1の処理データの暗号化処理を再開する場合に、暗号化装置の暗号化処理の状態を、メモリに記憶した第1の処理データの暗号化処理の状態に復帰させてから第1の処理データの暗号化処理を再開することを特徴とする。
また、上記暗号化装置は、第2の処理データの全ブロックデータ(N1〜Nn)の暗号処理の完了する前に第1の処理データの暗号化処理を再開するとともに、上記メモリ55は、第1の処理データの暗号化処理を再開する場合に第2の処理データの暗号化処理状態(例えば、暗号化ブロックデータDj)を記憶し、第2の処理データの暗号化処理を再開する場合は、暗号化装置の暗号化処理の状態を、メモリに記憶した第2の処理データの暗号化処理の状態に復帰させてから第2の処理データの暗号化処理を再開することを特徴とする。
図16は、OFBモードの暗号化装置の構成図である。
図45に比べて、メモリ55が追加されている点が特徴である。メモリ55は、暗号化モジュール51から出力されたモジュール出力データT1を記憶するものである。
図16は、平文Mを構成する平文ブロックデータMi(i=1,2,3,・・・)と平文Nを構成する平文ブロックデータNj(j=1,2,3,・・・)とを暗号化する暗号化装置において、平文Mの暗号化処理中に平文Nの暗号化要求を平文Mの暗号化処理完了前に受け付ける割り込み処理メカニズムと、暗号化処理を行ったデータをモジュール出力ブロックデータTiとして出力する暗号化モジュール51と、暗号化モジュール51から出力されたモジュール出力ブロックデータTiをフィードバックライン65を介し暗号化モジュールにフィードバックするフィードバックループ65,66と、フィードバックループのフィードバックライン65と並列に設けられ、上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータMi+1が平文ブロックデータMiの次に続けて暗号化されない場合、フィードバックされるモジュール出力ブロックデータTiを記憶するメモリ55と、平文ブロックデータMi+1や、が平文ブロックデータMiの次に続けて暗号化される場合は、上記フィードバックループのフィードバックライン65によりフィードバックされるモジュール出力ブロックデータTiを選択してフィードバックループを介して暗号化モジュール51に供給し、上記平文ブロックデータMi+1が平文ブロックデータMiの次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリ55に記憶されたモジュール出力ブロックデータTiを選択してフィードバックループを介して暗号化モジュール51に供給するセレクタ54とを備えたことを特徴とする。
図17は、図16のOFBモードの暗号化装置の動作説明図である。
図17は、図2のCBCモードの動作がOFBモードの動作になったものであり、その他の動作は図2の動作と同じである。
図18は、CFBモードの暗号化装置を示す図である。
図47に比べて、メモリ55が設けられている点が特徴である。メモリ55は、排他的論理和回路58から出力された暗号文ブロックデータCiを記憶するものである。
また、排他的論理和回路58と暗号鍵Kを用いた暗号化モジュール51とは、暗号化ユニット52を構成している。
図18は、平文Mを構成する平文ブロックデータMi(i=1,2,3,・・・)と平文Nを構成する平文ブロックデータNj(j=1,2,3,・・・)とを暗号化する暗号化装置において、平文Mの暗号化処理中に平文Nの暗号化要求を平文Mの暗号化処理完了前に受け付ける割り込み処理メカニズムと、平文ブロックデータMiの暗号化処理を行い暗号文ブロックデータCiを出力する暗号化ユニット52と、暗号化モジュールから出力された暗号文ブロックデータCiをフィードバックライン65を介し暗号化処理にフィードバックするフィードバックループ65,66と、フィードバックループのフィードバックライン65と並列に設けられ、上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータMi+1が平文ブロックデータMiの次に続けて暗号化されない場合、フィードバックされる暗号文ブロックデータCiを記憶するメモリ55と、平文ブロックデータMi+1が平文ブロックデータMiの次に続けて暗号化される場合は、上記フィードバックループのフィードバックライン65によりフィードバックされる暗号文ブロックデータCiを選択してフィードバックループを介して暗号化ユニット52に供給し、上記平文ブロックデータMi+1が平文ブロックデータMiの次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリ55に記憶された暗号文ブロックデータCiを選択してフィードバックループを介して暗号化ユニット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を構成する暗号文ブロックデータCi(i=1,2,3,・・・)と暗号文Dを構成する暗号文ブロックデータNj(j=1,2,3,・・・)とを復号する復号装置において、暗号文Cの復号処理中に暗号文Dの復号要求を任意の時点で受け付ける割り込み処理メカニズムを有している。
また、図20に示す復号装置は、暗号文ブロックデータCiの復号処理を行ったデータをモジュール出力ブロックデータTiとして出力する復号モジュール71と、暗号文ブロックデータCi+1を復号するための暗号文ブロックデータCiをフィードバックライン85,111,82を介し復号ユニット72にフィードバックするフィードバックループ85,111,82,86と、フィードバックループのフィードバックライン85,111,82と並列に設けられ、上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータCi+1が暗号文ブロックデータCiの次に続けて復号されない場合、フィードバックされるブロックデータを記憶するメモリ71とを有している。
また、図20に示す復号装置は、暗号文ブロックデータCi+1が暗号文ブロックデータCiの次に続けて復号される場合は、上記フィードバックループのフィードバックライン85,111,82によりフィードバックされる暗号文ブロックデータCiを選択してフィードバックループを介して暗号ユニット72に供給し、上記暗号文ブロックデータCi+1が暗号文ブロックデータCiの次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリに記憶された暗号文ブロックデータCiを選択してフィードバックループを介して暗号ユニット72に供給するセレクタ74を備えている。
なお、上述した図20の説明において、「フィードバックライン」、「フィードバックループ」という用語を用いているが、「自己の出力を自己の入力にする」という意味での「フィードバック」ではない。ここでは、「フィードバック」という用語は、暗号文ブロックデータCiを復号した後に、暗号文ブロックデータCi+1を復号するために、暗号文ブロックデータCiを再び供給するという意味で用いるものとする。
図21は、図20の復号装置の動作手順を示す図である。
暗号鍵(復号鍵ともいう)K1を用いて、暗号文ブロックデータC1を復号している最中に割り込みITの発生があった場合には、暗号文ブロックデータC1がメモリ75のレジスタ76に記憶される。その後、暗号鍵(復号鍵ともいう)K2を用いて、暗号文ブロックデータD1の復号が行われ、平文ブロックデータN1が復号される。そして、メモリ75のレジスタ76に記憶された暗号文ブロックデータC1が読み出され、暗号文ブロックデータC2の復号が行われ、平文ブロックデータM2が復号される。セレクタ74の動作は、図4に示したものと同じである。また、スイッチ77の動作は、図5に示したものと同じである。
図22は、OFBモードの復号装置を示す図である。
図22は、暗号文Cを構成する暗号文ブロックデータCi(i=1,2,3,・・・)と暗号文Dを構成する暗号文ブロックデータDj(j=1,2,3,・・・)とを復号する復号装置において、暗号文Cの復号処理中に暗号文Dの復号要求を任意の時点で受け付ける割り込み処理メカニズムと、復号処理を行ったデータをモジュール出力ブロックデータTiとして出力する復号モジュール71と、復号モジュール71から出力されたモジュール出力ブロックデータTiをフィードバックライン85を介し復号モジュール71にフィードバックするフィードバックループ85,86と、フィードバックループのフィードバックライン85と並列に設けられ、上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータCi+1が暗号文ブロックデータCiの次に続けて復号されない場合、フィードバックされるモジュール出力ブロックデータTiを記憶するメモリ75と、暗号文ブロックデータCi+1が暗号文ブロックデータCiの次に続けて復号される場合は、上記フィードバックループのフィードバックライン85によりフィードバックされるモジュール出力ブロックデータTiを選択してフィードバックループを介して復号モジュール71に供給し、上記暗号文ブロックデータCi+1が暗号文ブロックデータCiの次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリ75に記憶されたモジュール出力ブロックデータTiを選択してフィードバックループを介して復号モジュール71に供給するセレクタ74とを備えたことを特徴とする。
図23は、図22のOFBモードの暗号化装置の動作説明図である。
図23は、図21のCBCモードの動作がOFBモードの動作になったものであり、その他の動作は図21の動作と同じである。
図24は、CFBモードの復号装置を示す図である。
また、排他的論理和回路78と鍵Kを用いた復号モジュール71により復号ユニット72を構成している。
なお、レジスタ111は、セレクタ74の内部に設けられていてもよい。
図24は、暗号文Cを構成する暗号文ブロックデータCi(i=1,2,3,・・・)と暗号文Dを構成する暗号文ブロックデータDj(j=1,2,3,・・・)とを復号する復号装置において、暗号文Cの復号処理中に暗号文Dの復号要求を任意の時点で受け付ける割り込み処理メカニズムと、暗号文ブロックデータCiの復号処理を行ったデータをモジュール出力ブロックデータTiとして出力する復号モジュール71と、暗号文ブロックデータCi+1を復号するための暗号文ブロックデータCiをフィードバックライン85,111,82を介し復号ユニット72にフィードバックするフィードバックループ85,111,82,86と、フィードバックループのフィードバックライン85,111,82と並列に設けられ、上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータCi+1が暗号文ブロックデータCiの次に続けて復号されない場合、フィードバックされる暗号文ブロックデータCiを記憶するメモリ75と、暗号文ブロックデータCi+1が暗号文ブロックデータCiの次に続けて復号される場合は、上記フィードバックループのフィードバックライン85,111,82によりフィードバックされる暗号文ブロックデータCiを選択してフィードバックループを介して復号モジュール71に供給し、上記暗号文ブロックデータCi+1が暗号文ブロックデータCiの次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリ75に記憶された暗号文ブロックデータCiを選択してフィードバックループを介して復号モジュール71に供給するセレクタ74とを備えたことを特徴とする。
なお、上述した図24の説明において、「フィードバックライン」、「フィードバックループ」という用語を用いているが、「自己の出力を自己の入力にする」という意味での「フィードバック」ではない。ここでは、「フィードバック」という用語は、暗号文ブロックデータCiを復号した後に、暗号文ブロックデータCi+1を復号するために、暗号文ブロックデータCiを再び供給するという意味で用いるものとする。
図25は、図24のCFBモードの暗号化装置の動作説明図である。
図25は、図21のCBCモードの動作がCFBモードの動作になったものであり、その他の動作は図21の動作と同じである。
図26は、図1に示したCBCモードの暗号化装置の改良例を示す図である。
図26の暗号化装置は、セレクタ154とメモリ155とが追加されている。図1の場合は、鍵K1が割り込みITの解除のとき外部から支給される場合を示したが、ここでは、一度外部から支給された鍵K1を保存して再利用する場合について説明する。
メモリ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は、鍵K1を用いて暗号化され、平文Nは、鍵K2を用いて暗号化されるものとする。鍵K1又は鍵K2が暗号化モジュール51に支給されるものとする。
時刻T0において、鍵K1が鍵KIとして外部から支給される。セレクタ154は、Aに接続されているので、鍵KIを鍵Kとして暗号化モジュール51に出力する。また、スイッチ157がEに接続されているので、鍵K1がレジスタ156に記憶される。そして、平文ブロックデータM1の暗号化処理がスタートする。時刻T0において、平文ブロックデータM1の暗号化がスタートした場合には、セレクタ54の入力Aから一旦イニシャルバリューIVが入力された後、セレクタ54はBに切り替わる。そして、平文ブロックデータM1が鍵K1を用いて暗号化されている途中の時刻Xにおいて、平文ブロックデータN1の暗号化を要求する割り込みITが発生したとする。時刻T1までに、暗号文ブロックデータC1はメモリ55に記憶された状態になる。そして、割り込みITの発生により時刻T1において、鍵K2が鍵KIとして外部から暗号化モジュール51に支給される。セレクタ154は、Aに接続されているので、鍵KIを鍵Kとして暗号化モジュール51に出力する。また、時刻T1において、セレクタ54は入力をAに設定する。また、時刻T1において、スイッチ57とスイッチ157はFに接続される。従って、鍵K2は、レジスタ156に記憶されない。時刻T1以降は、鍵K2を用いて平文ブロックデータN1の暗号化が行われ、暗号文ブロックデータD1が出力される。時刻Yにおいて、平文ブロックデータN1の暗号化が終了し、割り込みITが解除されたものとする。この割り込みITの解除により時刻T2において、セレクタ54の入力はCに切り替えられ、スイッチ57はEに接続される。従って、鍵K1がレジスタ156から鍵KIとしてセレクタ154に出力され、セレクタ154から鍵K1が鍵Kとして暗号化モジュール51に支給される。また、セレクタ54がCに切り替わったことにより、メモリ55に記憶されていた暗号文ブロックデータC1が平文ブロックデータM2の暗号化のために入力され、鍵K1を用いた暗号化モジュール51により平文ブロックデータM2が暗号化されて、暗号文ブロックデータC2が出力される。時刻T3以前においては、セレクタ54の入力はBに切り替えられ、平文ブロックデータM3を暗号化する場合には、フィードバックループのフィードバックライン65からフィードバックされた暗号文ブロックデータC2が入力され、鍵K1を用いた暗号化モジュール51により平文ブロックデータM3が暗号化されて、暗号文ブロックデータC3が出力される。
また、時刻T3以前においては、セレクタ154の入力は、Aに切り替えられる。
セレクタ154のオペレーション処理を説明する。
電源がオンになった場合には、入力をAに設定する。また、割り込みITの発生が確認された場合でも、入力をAに設定し続ける。割り込みITの解除があるまでは、セレクタ154は、入力がAに設定されたままで動作する。セレクタ154は、割り込みITの解除があったことが検知された場合に、入力をCに設定する。この入力をCに設定することにより、メモリ55に記憶された鍵K1が鍵Kとして暗号化モジュール51に入力されることになる。このCからの鍵入力による暗号化がスタートした場合には、セレクタ154は、入力をAに設定する。
このようにして、割り込みITの発生に基づき、セレクタ154を切り替えることができる。
次に、スイッチ157の割り込み処理のオペレーションを説明する。
電源がオンになった場合、そして、その後の最初の平文Mの暗号化処理の場合は、スイッチ157はEに接続され、平文Mの鍵K1がレジスタ156に記憶される。そして、時刻Xにて、割り込みITが発生した場合には、時刻T1でスイッチ157をEからFに接続し、平文Nの鍵K2を無視する。そして、時刻Yにて、割り込みITの解除が検出された場合には、時刻T2にて、スイッチ157をFからEに接続する。このようにして、スイッチ157は、割り込みITの発生から解除までは平文Nの鍵K2を無視する。従って、メモリ155のレジスタ156には、平文Mの鍵K1が記憶され続けることになる。
図28は、図20に示した復号装置に対して鍵K1を保存して再利用する場合の構成を示している。
図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に示すような構成を追加して鍵K1を保存するようにしてもよい。
また、図26のメモリ55とメモリ155とは、同一の動作をするので、1つのメモリに統合してもよい。また、図28のメモリ75とメモリ175とは、同一の動作をするので、1つのメモリに統合してもよい。
以上のように、この実施の形態に係る復号装置は、1つ以上のブロックデータCi(i=1,2,3,・・・,m)からなる第1の処理データ(暗号文C)と、1つ以上のブロックデータDj(j=1,2,3,・・・,n)からなる第2の処理データ(暗号文D)との復号処理をする復号装置において、復号処理の状態を記憶するメモリ75を備え、第1の処理データの全ブロックデータ(C1〜Cm)の復号処理が完了する前に第2の処理データの最初のブロックデータD1の復号処理を開始するとともに、第2の処理データの最初のブロックデータD1の復号処理を開始する場合に第1の処理データの復号処理の状態を上記メモリに記憶させ、第1の処理データの復号処理を再開する場合に復号装置の復号処理の状態をメモリ75に記憶した第1の処理データの復号処理の状態に復帰させてから第1の処理データの復号処理を再開することを特徴とする。
また、上記復号装置は、第2の処理データの全ブロックデータ(D1〜Dn)の復号処理の完了する前に第1の処理データの復号処理を再開するとともに、上記メモリ74は、第1の処理データの復号処理を再開する場合に第2の処理データの復号処理の状態を記憶し、第2の処理データの復号処理を再開する場合は、復号装置の復号処理の状態をメモリに記憶した第2の処理データの復号処理の状態に復帰させてから第2の処理データの復号処理を再開することを特徴とする。
ここで、暗号化処理の状態とは、例えば、
図1のCBCモードでは、暗号化ブロックデータCi (及び鍵K1)
図16のOFBモードでは、モジュール出力データTi(及び鍵K1)
図18のCFBモードでは、暗号化ブロックデータCi(及び鍵K1)
のことであり、また、復号処理の状態とは、例えば、
図20のCBCモードでは、暗号化ブロックデータCi(及び鍵K1)
図22のOFBモードでは、モジュール出力データTi(及び鍵K1)
図24のCFBモードでは、暗号化ブロックデータCi(及び鍵K1)
のことである。
前述した説明においては、3つのモードの場合の暗号化装置と復号装置を説明したが、前述した3つのモードは一例であり、これらのモードの改良されたもの、或いは、これらのモードが変形されたものであっても構わない。特に、特徴となる点は、先のブロックデータが暗号化復号されたときに生成されたブロックデータCi又はMi又はTiが次のブロックデータMi+1又はCi+1の暗号化復号処理にフィードバックデータとして用いられる暗号化復号方法において、暗号化復号の状態を記憶するメモリ55を設け、他のデータの暗号化復号化の処理後にブロックデータCi又はMi又はTiを用いて再び元の状態に復帰可能にできる点である。従って、特に暗号化モード、復号モードは問わない。
なお、割り込みITを用いず、ポーリング方式やトークン取得方式等の他のメカニズムを用いて暗号化要求を受け付け、2以上の暗号化復号処理のインタラクティブな並列処理を行うようにしてもよい。
また、暗号鍵Kを用いる暗号化復号処理の場合を示したが、暗号鍵Kを用いない暗号化復号処理の場合でもよい。
実施の形態2.
この実施の形態においては、暗号化装置が秘匿処理とデータの完全性保証処理を行う場合について説明する。
データの秘匿処理とは、データを暗号化し、データが盗聴されても、或いは、盗まれても意味が分からなくすることである。また、データの完全性保証とは、データが何者かにより置き換えられていることがないことを保証することをいう。データを伝送する場合には、データの秘匿処理を行った上にデータの完全性を保証して伝送したい場合がある。データの秘匿処理は、データを暗号化することにより行われる。データの完全性保証処理は、データの最後に認証子(MAC:Message Authentication Code)を付加し、その認証子を検証することにより改竄を発見することにより行われる。
図29は、OFBモードの暗号化部100により秘匿処理を行い、CBCモードの認証子生成部200により認証子(MAC)を生成する場合を示している。
図29は、1つ以上の平文ブロックデータからなる平文を暗号化モジュール51により暗号文にし、暗号文に対して暗号文の完全性を保証するための認証子を生成する暗号化装置において、平文ブロックデータを暗号化モジュール51により暗号化したときに暗号化モジュール51が出力したモジュール出力ブロックデータTiを暗号化モジュール51へ暗号化モジュールへフィードバックする第1のフィードバックループ65を有し、平文ブロックデータを入力し、第1のフィードバックループ65によりモジュール出力ブロックデータTiをフィードバックさせ暗号化処理を行い、暗号文ブロックデータCiを出力する暗号化部100と、認証子演算途中結果Tiをフィードバックする第2のフィードバックループ66を有し、暗号化部100から暗号文ブロックデータCiが出力されるたびに暗号文ブロックデータCiを入力し、認証子演算処理を行い、第2のフィードバックループ66により認証子演算途中結果Tiをフィードバックさせ、暗号文の完全性を保証するための認証子Pを生成する認証子生成部200とを備えたことを特徴とする。
図30は、図29に示す暗号化装置の動作手順を示す図である。
平文ブロックデータM1が、まず暗号文ブロックデータC1に暗号化される。次に、平文ブロックデータM2が入力され、暗号文ブロックデータC2に暗号化される。この平文ブロックデータM2の暗号化と同じ時刻に暗号文ブロックデータC1が入力され、認証子の演算が始まる。時刻T1とT2の間に平文ブロックデータM2の暗号化と暗号文ブロックデータC1に基づく認証子演算が行われる。また、時刻T2とT3の間では、平文ブロックデータM3の暗号化と暗号文ブロックデータC2に基づく認証子の演算が行われる。時刻T3においては、暗号文ブロックデータC3に基づく認証子の演算が行われ、認証子Pが出力される。
図29で特徴となる点は、排他的論理和回路58から出力される暗号文ブロックデータCiがフィードライン69により排他的論理和回路59に入力されている点である。フィードライン69によりOFBモードとCBCモードの暗号化処理を結合することにより、図30に示すように、秘匿処理と完全性認証処理がパイプライン処理で実行される。図52に示した場合は、時刻T6で処理時間がかかったが、図30の場合は、時刻T4で処理が終了して高速処理が行われたことになる。
図31は、図29に示した暗号化装置の動作フローチャート図である。
S51において、ブロックデータカウンタiを1とする。S52は、暗号化部100の動作であり、暗号化部100は、平文ブロックデータMiを入力して平文ブロックデータMiを暗号化し、暗号文ブロックデータCiを生成して暗号文ブロックデータCiを出力する。S53は、認証子生成部200の動作であり、暗号文ブロックデータCiを入力し暗号文ブロックデータCiを暗号化し、認証子を演算する。S54は、ブロックデータカウンタiが最後のブロックデータnを示しているかどうかを判断し、最後のブロックデータでない場合には、S55において、ブロックデータカウンタiを増加させ、再びS52の処理に戻る。即ち、暗号化部100と認証子生成部200の処理を繰り返す。S54において、最後のブロックデータの処理が終了した場合には、S53で演算された直前の認証子が最終的な認証子であるから、S56において、その認証子を暗号文ブロックデータCiの最後に付加する。図31に示すように、暗号化部100が暗号文ブロックデータCiを生成するたびに、認証子生成部200が暗号文ブロックデータCiを入力して認証子を演算することによりパイプライン処理が可能になり、高速処理が行われる。
図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から出力されたモジュール出力データTiを記録するものである。メモリ93は、入力スイッチ96と出力スイッチ97と第1レジスタ98と第2レジスタ99により構成されている。入力スイッチ96と出力スイッチ97は、第3セレクタ63の切り替えと同期しており、第3セレクタ63が切り替わるたびに入力スイッチ96及び出力スイッチ97も切り替わる。
図33は、図32に示す暗号化装置の動作手順を示す図である。
時刻T0とT1の間で平文ブロックデータM1の秘匿処理が行われる。秘匿処理の途中で生成されたモジュール出力データは、第1レジスタ98に記憶される。時刻T1とT2の間では、暗号文ブロックデータC1に基づく認証子の演算が行われる。完全性保証処理により生成された認証子演算途中結果は、第2レジスタ99に記憶される。次に、時刻T2とT3の間では、第1レジスタ98に記憶されたモジュール出力データと平文ブロックデータM2に基づいて平文ブロックデータM2の秘匿処理が行われる。次に、時刻T3とT4の間では、第2レジスタ99に記憶された認証子中間演算結果と暗号文ブロックデータC2が入力され、認証子の演算が行われる。この動作を繰り返すことにより、秘匿処理と完全性認証処理が完了し、暗号文と認証子Pが出力される。図33に示す場合は、時刻T6までで処理が終了し、時間の短縮は図られていないが、図32に示すように、暗号鍵Kを用いた暗号化モジュール51と排他的論理和回路58とフィードバックライン67,68(フィードバックループ)が兼用されているので、回路規模を小さくすることができる。
図34は、OFBモードの復号化部300とCBCモードの認証子生成部400を有する復号装置を示す図である。
この認証子生成部400は、認証子生成部200と同一構成のものである。
図34は、1つ以上の暗号文ブロックデータからなる暗号文を平文に復号し、かつ、暗号文に対して暗号文の完全性を確認するための認証子を生成する復号装置において、暗号文ブロックデータCiを復号モジュール71により復号したときに生成したモジュール出力ブロックデータTiをフィードバックする第1のフィードバックループ65を有し、暗号文ブロックデータCiを入力し、第1のフィードバックループ65によりモジュール出力ブロックデータTiをフィードバックさせ復号処理を行い、平文ブロックデータMiを出力する復号部300と、認証子演算途中結果Tiをフィードバックする第2のフィードバックループ66を有し、復号部300に入力される暗号文ブロックデータCiと同一の暗号文ブロックデータを入力し、認証子演算処理を行い認証子演算途中結果Tiを出力し、第2のフィードバックループ66により認証子演算途中結果Tiをフィードバックさせ、暗号文の完全性を確認するための認証子Qを生成する認証子生成部400とを備えたことを特徴とする。
暗号文ブロックデータCiは、復号化部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から出力されたモジュール出力データTiを記録するものである。メモリ93は、入力スイッチ96と出力スイッチ97と第1レジスタ98と第2レジスタ99により構成されている。入力スイッチ96と出力スイッチ97は、第3セレクタ83の切り替えと同期しており、第3セレクタ83が切り替わるたびに入力スイッチ96及び出力スイッチ97も切り替わる。
図36は、図35に示した復号装置の動作手順を示す図である。
復号装置は、暗号文と認証子Pを入力する。
時刻T0とT1の間で暗号文ブロックデータC1の復号処理と暗号文ブロックデータC1のレジスタ111への保存が行われる。復号処理の途中で生成されたモジュール出力データは、第1レジスタ98に記憶される。時刻T1とT2の間では、レジスタ111に保存された暗号文ブロックデータC1に基づく認証子の演算が行われる。完全性保証処理により生成された認証子演算途中結果は、第2レジスタ99に記憶される。次に、時刻T2とT3の間では、暗号文ブロックデータC2がレジスタ111に保存され、第1レジスタ98に記憶されたモジュール出力データと暗号文ブロックデータC2に基づいて平文ブロックデータM2の復号処理が行われる。次に、時刻T3とT4の間では、第2レジスタ99に記憶された認証子中間演算結果とレジスタ111に保存された暗号文ブロックデータC2が入力され、認証子の演算が行われる。この動作を繰り返すことにより、平文と認証子Qが出力される。この認証子Qは、認証子Pと比較され、認証子Pと認証子Qが一致していれば、データの完全性が認証できたことになる。これで、復号処理と完全性認証処理が完了する。
図37は、図29のOFBモードの暗号化部100をCBCモードの暗号化部100にしたものである。
図37は、1つ以上の平文ブロックデータからなる平文を暗号文にし、暗号文に対して暗号文の完全性を保証するための認証子を生成する暗号化装置において、平文ブロックデータを暗号化ユニット52により暗号化したときに暗号化モジュール51が出力した暗号文ブロックデータCiをフィードバックする第1のフィードバックループ65を有し、平文ブロックデータMiを入力し、第1のフィードバックループ65により暗号文ブロックデータCiをフィードバックさせ暗号化処理を行い、暗号文ブロックデータCiを出力する暗号化部100と、認証子演算途中結果Tiをフィードバックする第2のフィードバックループ66を有し、暗号化部100から暗号文ブロックデータCiが出力されるたびに暗号文ブロックデータCiを入力し、認証子演算処理を行い、第2のフィードバックループ66により認証子演算途中結果Tiをフィードバックさせ、暗号文の完全性を保証するための認証子Pを生成する認証子生成部400とを備えたことを特徴とする。
図38は、図34のOFBモードの復号部300をCBCモードの復号部300にしたものである。
図38は、1つ以上の暗号文ブロックデータからなる暗号文を平文に復号し、かつ、暗号文に対して暗号文の完全性を確認するための認証子を生成する復号装置において、暗号文ブロックデータCiをフィードバックする第1のフィードバックループ85,82を有し、暗号文ブロックデータCiを入力し、第1のフィードバックループ85,82により暗号文ブロックデータCiをフィードバックさせ復号処理を行い、平文ブロックデータMiを出力する復号部300と、認証子演算途中結果Tiをフィードバックする第2のフィードバックループ66を有し、復号部300に入力される暗号文ブロックデータCiと同一の暗号文ブロックデータCiを入力し、認証子演算処理を行い認証子演算途中結果Tiを出力し、第2のフィードバックループにより認証子演算途中結果Tiをフィードバックさせ、暗号文の完全性を確認するための認証子Qを生成する認証子生成部400とを備えたことを特徴とする。
以上のように、図29,図37は、データを入力して暗号化し、暗号データを出力する暗号化部と、暗号化部が出力した暗号データを入力して暗号文の完全性を保証するための認証子を生成する認証子生成部とを備え、認証子生成部は、暗号化部によるデータの暗号化が完了する前に認証子の生成を開始することを特徴とする暗号化装置を示している。
また、図34,図38は、データを入力して復号し、復号データを出力する復号部と、復号部が入力したデータを入力して暗号文の完全性を保証するための認証子を生成する認証子生成部とを備え、認証子生成部は、復号部によるデータの復号が完了する前に認証子の生成を開始することを特徴とする復号装置を示している。
なお、図示していないが、OFBモードの暗号化部100又は復号部300を用いてもよい。
また、図示していないが、OFBモード又はCFBモードの認証子生成部200を用いてもよい。
図39は、暗号化モジュール51又は復号モジュール71の構成図である。
暗号化モジュール51は、鍵スケジュール部511とデータランダマイズ部512を有している。鍵スケジュール部511は、1つの鍵Kを入力してn個の拡大鍵ExtK1〜ExtKnを生成する。データランダマイズ部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)
- 平文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のセレクタと
を備えたことを特徴とする暗号化装置。 - 上記メモリは、
複数の平文に対応した複数のレジスタと、
暗号化処理をする平文に対応してレジスタを切り替えるスイッチと
を備えたことを特徴とする請求項1記載の暗号化装置。 - 平文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 を選択してフィードバックループに供給するセレクタ工程と
を備えたことを特徴とする暗号化装置の暗号化方法。 - 暗号文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のセレクタと
を備えたことを特徴とする復号装置。 - 上記メモリは、
複数の暗号文に対応した複数のレジスタと、
復号処理をする暗号文に対応してレジスタを切り替えるスイッチと
を備えたことを特徴とする請求項4記載の復号装置。 - 暗号文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 を選択してフィードバックループに供給するセレクタ工程と
を備えたことを特徴とする復号装置の復号方法。 - 平文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 を選択してフィードバックループに供給するセレクタと
を備えたことを特徴とする暗号化装置。 - 上記メモリは、
複数の平文に対応した複数のレジスタと、
暗号化処理をする平文に対応してレジスタを切り替えるスイッチと
を備えたことを特徴とする請求項7記載の暗号化装置。 - 平文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 を選択してフィードバックループに供給するセレクタ工程と
を備えたことを特徴とする暗号化装置の暗号化方法。 - 暗号文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 を選択してフィードバックループに供給するセレクタと
を備えたことを特徴とする復号装置。 - 上記メモリは、
複数の暗号文に対応した複数のレジスタと、
復号処理をする暗号文に対応してレジスタを切り替えるスイッチと
を備えたことを特徴とする請求項10記載の復号装置。 - 暗号文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 を選択してフィードバックループに供給するセレクタ工程と
を備えたことを特徴とする復号装置の復号方法。 - 上記請求項3記載の暗号化方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
- 上記請求項6記載の復号方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
- 上記請求項9記載の暗号化方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
- 上記請求項12記載の復号方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
- 上記暗号化処理は、ブロック暗号アルゴリズムを用いることを特徴とする請求項1記載の暗号化装置。
- 上記復号処理は、ブロック暗号アルゴリズムを用いることを特徴とする請求項4記載の復号装置。
- 上記メモリは、さらに、
上記平文Nの暗号化要求を受け付け、平文Nのいずれかの平文ブロックデータの暗号化処理を開始することにより、上記平文ブロックデータM i+1 が平文ブロックデータM i の次に続けて暗号化されない場合、暗号化ユニットに供給する平文Mを暗号化するための暗号鍵を記憶し、
上記暗号化装置は、さらに、
上記平文ブロックデータM i+1 が平文ブロックデータM i の次に続けて暗号化されず、平文Nのいずれかの平文ブロックデータの次に暗号化される場合は、上記メモリに記憶された平文Mを暗号化するための暗号鍵を選択して暗号化ユニットに供給する第2のセレクタを備えることを特徴とする請求項1記載の暗号化装置。 - 上記メモリは、さらに、
上記暗号文Dの復号要求を受け付け、暗号文Dのいずれかの暗号文ブロックデータの復号処理を開始することにより、上記暗号文ブロックデータC i+1 が暗号文ブロックデータC i の次に続けて復号されない場合、復号ユニットへ供給される暗号文Cを復号するための復号鍵を記憶し、
上記復号装置は、さらに、
上記暗号文ブロックデータC i+1 が暗号文ブロックデータC i の次に続けて復号されず、暗号文Dのいずれかの暗号文ブロックデータの次に復号される場合は、上記メモリに記憶された暗号文Cを復号するための復号鍵を選択して復号ユニットに供給する第2のセレクタを備えることを特徴とする請求項4記載の復号装置。
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)
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)
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 | データ暗号復号化通信方法及びシステム |
-
2000
- 2000-12-22 DE DE60042062T patent/DE60042062D1/de not_active Expired - Lifetime
- 2000-12-22 JP JP2001552574A patent/JP4036648B2/ja not_active Expired - Lifetime
- 2000-12-22 CA CA002366353A patent/CA2366353C/en not_active Expired - Lifetime
- 2000-12-22 ES ES07075185.4T patent/ES2548860T3/es not_active Expired - Lifetime
- 2000-12-22 AU AU24008/01A patent/AU760811C/en not_active Expired
- 2000-12-22 DK DK07075185.4T patent/DK1816782T3/en active
- 2000-12-22 CN CNA2005101251648A patent/CN1783774A/zh active Pending
- 2000-12-22 EP EP07075185.4A patent/EP1816782B1/en not_active Expired - Lifetime
- 2000-12-22 SG SG200307863A patent/SG117471A1/en unknown
- 2000-12-22 KR KR10-2001-7011643A patent/KR100406223B1/ko active IP Right Grant
- 2000-12-22 CN CNB008050317A patent/CN100385850C/zh not_active Expired - Fee Related
- 2000-12-22 WO PCT/JP2000/009129 patent/WO2001052472A1/ja active Application Filing
- 2000-12-22 AT AT00987707T patent/ATE429746T1/de not_active IP Right Cessation
- 2000-12-22 EP EP00987707A patent/EP1161027B1/en not_active Expired - Lifetime
- 2000-12-27 TW TW089128024A patent/TW546938B/zh not_active IP Right Cessation
-
2001
- 2001-09-13 NO NO20014443A patent/NO332197B1/no not_active IP Right Cessation
-
2002
- 2002-05-22 HK HK02103850.1A patent/HK1041998B/zh unknown
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 |