JP5855696B2 - 完全性検証を含むブロック暗号化方法およびブロック復号化方法 - Google Patents
完全性検証を含むブロック暗号化方法およびブロック復号化方法 Download PDFInfo
- Publication number
- JP5855696B2 JP5855696B2 JP2014081031A JP2014081031A JP5855696B2 JP 5855696 B2 JP5855696 B2 JP 5855696B2 JP 2014081031 A JP2014081031 A JP 2014081031A JP 2014081031 A JP2014081031 A JP 2014081031A JP 5855696 B2 JP5855696 B2 JP 5855696B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- encrypted
- message
- encryption
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 153
- 238000012795 verification Methods 0.000 title description 11
- 239000013598 vector Substances 0.000 claims description 227
- 238000012545 processing Methods 0.000 claims description 177
- 238000012360 testing method Methods 0.000 claims description 11
- 238000004422 calculation algorithm Methods 0.000 description 38
- 230000006870 function Effects 0.000 description 38
- 238000004364 calculation method Methods 0.000 description 37
- 238000010586 diagram Methods 0.000 description 19
- 230000007246 mechanism Effects 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000001010 compromised effect Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- 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/72—Signcrypting, i.e. digital signing and encrypting simultaneously
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Description
具体的には、メッセージブロックの第1のブロック(すなわちメッセージブロックm1)に対して、暗号化機構はまず、メッセージブロックm1および初期ベクトルIVに対して排他的論理和(XOR)演算を実施し、次に対称暗号化アルゴリズムおよび鍵Kを用いてXOR演算の結果に対して暗号化演算Eを実施して、メッセージブロックm1に対応する暗号化ブロックc1を生成する。その他の各々のメッセージブロック(すなわちメッセージブロックm2,m3,m4,……,mt)に対して、暗号化機構はまず、そのメッセージブロックと、そのメッセージブロックの1つ前のメッセージブロックに対応する暗号化ブロック(すなわち暗号化ブロックc1,c2,c3,c4,……,ct−1)とに対してXOR演算を実施し、次に対称暗号化アルゴリズムおよび同じ鍵Kを用いてXOR演算の結果に対して暗号化演算Eを実施して、暗号化ブロック(すなわち暗号化ブロックc2,c3,c4,……,ct)を生成する。
最後に、暗号化機構は、暗号化ブロックc1,c2,c3,……,ctを連結して電子暗号化ファイルCを生成する。
具体的には、暗号化ブロックの第1のブロック(すなわち暗号化ブロックc1)に対して、復号化機構はまず、対称暗号化アルゴリズムに対応する対称復号化アルゴリズムおよび同じ鍵Kを用いて復号化演算Dを実施し、次に、復号化結果および初期ベクトルIVに対してXOR演算を実施して、暗号化ブロックc1に対応するメッセージブロックm1を生成する。その他の各々の暗号化ブロック(すなわち暗号化ブロックc2,c3,c4,……,ct)に対して、復号化機構は同じく、まず対称復号化アルゴリズムおよび同じ鍵Kを用いて復号化演算Dを実施し、次に復号化結果と、その暗号化ブロックの1つ前の暗号化ブロック(すなわち暗号化ブロックc1,c2,c3,c4,……,ct−1)に対してXOR演算を実施して、メッセージブロック(すなわちメッセージブロックm2,m3,m4,……,mt)を生成する。
最後に、復号化機構は、メッセージブロックm1,m2,m3,……,mtを連結して電子ファイルMを生成する。
例えば、前述の(暗号化ブロックc1,c2,c3,……,ctを含む)電子暗号化ファイルCが攻撃者によって改竄されて(暗号化ブロックc1’,c2,c3,……,ctを含む)電子暗号化ファイルC’になった場合、受信者は、図1Cに示したように、依然として電子暗号化ファイルC’を復号化して(メッセージブロックm1’,m2’,m3,m4,……,mtを含む)電子ファイルM’にすることができる。しかし、ほとんどの場合、受信者は、復号化によって得られたメッセージ(例えば電子ファイルM’)が本物であるかどうかを判断できない。特に、送信者から送信されるであろうメッセージがプログラムであるか、あるいはサーバまたは人間が認識できないメッセージである場合、受信者は、改竄された電子暗号化ファイルを復号化して得られたメッセージの異常に気づくことができない。
受信者は、受信した電子暗号化ファイルおよび復号化して得られた平文の何らかの異常に気づくことができない。なぜなら、受信者は完全性検証を実施できないからである。その主な理由は、鍵を送信者と受信者との両方が所有しており、そのために受信者は、実際には電子暗号化ファイルが攻撃者から送信されていても、復号化して得られた平文を送信者から送信されたものと考えるからである。このことからわかるように、完全性の要件を対称暗号化/復号化アルゴリズムで満たすことができない場合は、ソースを認証することができない。
送信者および受信者は、2つの鍵KおよびKmについて事前に合意に達している。送信者が電子ファイルMSを受信者に送信したいとき、送信者はまず、鍵Kmを用いて電子ファイルMSに対してメッセージ認証コード(MAC)演算MACを実施してメッセージ認証コードz1を生成する。次に、送信者は、電子ファイルMSとメッセージ認証コードz1とを連結し、対称暗号化アルゴリズムおよび鍵Kを用いて連結結果に対して暗号化演算Eを実施して電子暗号化ファイルCNを生成する。電子暗号化ファイルCNを受信した後、受信者はまず、対称復号化アルゴリズムおよび鍵Kを用いて復号化演算Dを実施し、電子ファイルMDおよびメッセージ認証コードz2を得る。次に、受信者は、鍵Kmを用いて電子ファイルMDに対してメッセージ認証コード演算MACを実施してメッセージ認証コードz3を生成する。その後、受信者は、復号化して得られたメッセージ認証コードz3およびメッセージ認証コードz2に対して比較演算CMPを実施する。
比較演算CMPの結果が、メッセージ認証コードz3がメッセージ認証コードz2と同じであるという結果であれば、電子ファイルMDは通信中に改竄されず、送信者から送信された電子ファイルMSの内容と一致していることを示している。しかし、比較演算CMPの結果が、メッセージ認証コードz3がメッセージ認証コードz2と異なるという結果であれば、復号化して得られた電子ファイルMDは通信中に改竄されたことを示している。
先行技術では、メッセージ認証コードを計算する複数の方法を利用できる。一般的な方法は、ハッシュ関数によって作成した鍵付きハッシュメッセージ認証コード(HMAC)を使用することである。もう1つの方法は、CBCモードと合わせて暗号ブロック連鎖メッセージ認証コードを使用することである(CBC−MAC)。HMACの計算効率は、採用したハッシュ関数によって算出される。安全要件を満たすために通常採用されるハッシュアルゴリズムは、SHA−1、SHA−2などである。しかし、これらの比較的複雑なハッシュアルゴリズムの計算効率は、高度共通暗号化方式(AES)の計算効率に極めて近い。
一方、CBC−MACに関しては、暗号化ファイルの最終ブロックのみが出力として使用されるが、全体の入力データは、計算プロセスの過程で1回暗号化される。換言すれば、CBC−MACの計算効率は、採用されるブロック暗号化アルゴリズムの計算効率に等しい。
メッセージ認証コードを計算するには余分な時間がかかる。暗号化するメッセージのデータサイズが非常に大きい場合、かかる2倍の時間は、一般的な用途に対しては依然として無視できない重荷である。したがって、時間的なコストを削減できるとともに、機密性、完全性およびソース認証という基本的な安全要件を満たすことのできる解決策を提供するという喫緊の必要性が存在する。
本ブロック暗号化方法はさらに、各々のメッセージブロックに対してシーケンスに合わせて以下の演算を実施するステップ(d)を含む。(d1)入力ブロックを生成するステップであって、入力ブロックの値が、そのメッセージブロックと、そのメッセージブロックの1つ前のメッセージブロックに対応する出力ブロックと、そのメッセージブロックの1つ前のメッセージブロックの前のメッセージブロックとに対して排他的論理和(XOR)演算を実施して得られた値に等しいステップ、(d2)鍵を用いて入力ブロックを暗号化して出力ブロックを得るステップ、および(d3)出力ブロックと、そのメッセージブロックの1つ前のメッセージブロックとに対してXOR演算を実施して暗号化ブロックを得るステップ。
ステップ(d)がメッセージブロックの第1のブロックを処理するとき、メッセージブロックの1つ前のメッセージブロックに対応する出力ブロックは第1のベクトルで、メッセージブロックの1つ前のメッセージブロックの前のメッセージブロックはオールゼロベクトルであり、ステップ(d)がメッセージブロックの第2のブロックを処理するとき、メッセージブロックの1つ前のメッセージブロックの前のメッセージブロックは第2のベクトルである。
本ブロック暗号化方法はさらに、暗号化ブロックをシーケンスに合わせて連結して電子暗号化ファイルを生成するステップ(e)を含む。
本ブロック復号化方法はさらに、各々の暗号化ブロックに対してシーケンスに合わせて以下の演算を実施するステップ(c)を含む。(c1)入力ブロックを生成するステップであって、入力ブロックの値が、暗号化ブロックと、その暗号化ブロックの1つ前の暗号化ブロックに対応する出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックとに対してXOR演算を実施して得られた値に等しいステップ、(c2)鍵を用いて入力ブロックを復号化して出力ブロックを得るステップ、および(c3)メッセージブロックを生成するステップであって、メッセージブロックの値が、出力ブロックと、暗号化ブロックの1つ前の暗号化ブロックとに対してXOR演算を実施して得られた値に等しいステップ。
ステップ(c)が暗号化ブロックの第1のブロックを処理するとき、暗号化ブロックの1つ前の暗号化ブロックに対応する出力ブロックは第2のベクトルであり、暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックはオールゼロベクトルであり、ステップ(c)が暗号化ブロックの第2のブロックを処理するとき、暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックは第1のベクトルである。
本ブロック復号化方法はさらに、以下のステップを含む。(d)メッセージブロックの最後のブロックを検査ベクトルと比較するステップ、および(e)メッセージブロックの最後のブロックが検査ベクトルと同じとき、メッセージブロックの最後のブロックを排除したメッセージブロックをシーケンスに合わせて連結して復号化ファイルを生成するステップ。
本ブロック復号化方法はさらに、各々の暗号化ブロックに対して第2のシーケンスに合わせて以下の演算を実施するステップ(f)を含む。(f1)入力ブロックを生成するステップであって、入力ブロックの値が、暗号化ブロックと、その暗号化ブロックの1つ前の暗号化ブロックに対応する出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックとに対してXOR演算を実施して得られた値に等しいステップ、(f2)鍵を用いて入力ブロックを暗号化して出力ブロックを得るステップ、および(f3)出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックとに対してXOR演算を実施することによってメッセージブロックを生成するステップ。
ステップ(f1)が暗号化ブロックの第1のブロックを処理するとき、暗号化ブロックの1つ前の暗号化ブロックに対応する出力ブロックは検査ベクトルで、暗号化ブロックの1つ前のブロックの前の暗号化ブロックはオールゼロベクトルであり、ステップ(f1)が暗号化ブロックの第2のブロックを処理するとき、暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックは基準ベクトルである。
本ブロック復号化方法はさらに、以下のステップを含む。(g)メッセージブロックの最後のブロックを第2のベクトルと比較するステップ、および(h)メッセージブロックの最後のブロックが、メッセージブロックの最後のブロックを排除した第2のベクトルと同じ場合に、他のメッセージブロックを第2のシーケンスに合わせて連結して復号化ファイルを生成するステップ。
メッセージブロックの最後のブロックが何であるはずかがわかるため、本復号化方法は、電子暗号化ファイルの完全性が損なわれたことに気づくことができ、それによって電子暗号化ファイルを破棄できる。したがって、本発明によって開示した技術は、メッセージ認証コード演算を実施することなく暗号化および復号化を効果的に達成できる一方で、引き続き機密性、完全性およびソース認証という3つの基本的な安全要件を満たすものである。
しかし、これらの例示的な実施形態は、これらの実施形態に記載した任意の特別な例、実施形態、環境、用途または特定の実装に本発明を限定しようとするものではない。したがって、これらの例示的な実施形態についての記載は、本発明を限定するのではなく説明することのみを目的としている。
以下の実施形態および添付の図面においては、本発明と無関係の要素を描写から省略している。
このように、受信者が、メッセージブロックの最後のブロックが何になるはずかを事前に知っていれば、受信者は、電子暗号化ファイルの完全性が損なわれたことに気づくことができ、それによって電子暗号化ファイルを破棄できる。
記憶部21は、メモリ、フロッピー(登録商標)ディスク、ハードディスク、コンパクトディスク(CD)、モバイルディスク、磁気テープ、データベース、または同一機能を有し当業者に公知のその他の任意の記録媒体もしくは回路であってよい。処理部23は、様々なプロセッサ、中央処理装置(CPU)、マイクロプロセッサまたは当業者に公知のその他の計算装置のいずれであってもよい。
このほか、ブロック暗号化装置2にさらに入力インターフェースが備わっている場合は、電子ファイルMは、入力インターフェースによって外部から受信されてよい。
このほか、処理部23は、これらのメッセージブロックの中にメッセージブロックmcvをメッセージブロックの最後のブロックとして加算する。換言すれば、処理部23は、メッセージブロックm1,m2,m3,m4,……,mt−1,mcvを順に処理していく。
各々のメッセージブロックm1,m2,m3,m4,……,mt−1,mcvを処理する場合、入力ブロックの値は、メッセージブロックと、そのメッセージブロックの前段メッセージブロックに対応する出力ブロックと、そのメッセージブロックの1つ前のメッセージブロックの前のメッセージブロックとに対してXOR演算を実施して得られる値に等しく、以下の式(1)で表されるとおりである。
はXOR演算を表している。
メッセージブロックの第1のブロック(すなわちメッセージブロックm1)が処理部23で処理されるとき、メッセージブロックm1の1つ前のメッセージブロックに対応する出力ブロックは、第1のベクトルIV1(すなわちO[0]の値は第1のベクトルIV1の値に等しい)であり、メッセージブロックm1の1つ前のメッセージブロックの前のメッセージブロックは、オールゼロベクトル(すなわちm[−1]=0)である。
メッセージブロックの第2のブロック(すなわちメッセージブロックm2)が処理部23で処理されるとき、メッセージブロックm2の1つ前のメッセージブロックの前のメッセージブロックは、第2のベクトルIV2である(すなわちm[0]の値は第2のベクトルIV2の値に等しい)。
処理部23は、第1のベクトルIV1の値をメッセージブロックm1の1つ前のメッセージブロックに対応する暗号化ブロックの値とみなす。次に、処理部23は、鍵Kおよび対称暗号化アルゴリズムを用いて入力ブロックI1に対して暗号化演算Eを実施して出力ブロックO1を得る。その後、処理部23は、出力ブロックO1とメッセージブロックm1の1つ前のメッセージブロックとに対してXOR演算を実施して暗号化ブロックc1を得る。
処理部23は、第2のベクトルIV2の値をメッセージブロックm1の1つ前のメッセージブロックの値とみなす。換言すれば、処理部23は、出力ブロックO1および第2のベクトルIV2に対してXOR演算を実施して暗号化ブロックc1を得る。
例えば、処理部23は、暗号化ブロックc1,c2,c3,c4,……,ct−1に対してXOR演算を実施して仮ブロックを得た後、その仮ブロックに対して関数演算を実施してメッセージブロックmcvを得ることができる。前述の関数演算は、鍵暗号化演算、回転演算、ハッシュ演算または復号化の点で事前に合意に達しているその他の任意の関数演算であってよい。
処理部23は、このような実装では暗号化ブロックc1,c2,c3,c4,……,ct−1を用いてメッセージブロックmcvを生成するため、最後の暗号化ブロックctを改竄している攻撃者が引き起こす攻撃を回避できる。
したがって、電子暗号化ファイルCの暗号化ブロックc1,c2,c3,c4,……,ctのうちの任意の1つが改竄されれば(または誤って送信されれば)、ブロック暗号化装置2と一緒に用いた復号化装置(これについてはこれ以降に詳述する)によって電子暗号化ファイルCを復号化して得られたメッセージブロックの最後のブロックは、偽である。
メッセージブロックの最後のブロックが何であるはずかもわかっているため、復号化装置は、電子暗号化ファイルCの完全性がそれに伴って損なわれたことに気づくことができ、それに伴い電子暗号化ファイルを破棄できる。また、ブロック暗号化装置2がさらに、暗号化ブロックc1,c2,c3,c4,……,ct−1を用いてメッセージブロックmcvを検査ベクトルとして生成すれば、暗号化ブロックの最後のブロックを改竄している攻撃者が引き起こす攻撃を回避できる。
入力ブロックを生成する演算、鍵を用いて入力ブロックを暗号化して出力ブロックを得る演算、および出力ブロックとメッセージブロックの1つ前のメッセージブロックとに対してXOR演算を実施して暗号化ブロックを得る演算。各々のメッセージブロックm1,m2,m3,m4,……,mt−1,mcvを処理するとき、入力ブロックの値は、メッセージブロックと、そのメッセージブロックの前段メッセージブロックに対応する出力ブロックと、そのメッセージブロックの1つ前のメッセージブロックの前のメッセージブロックとに対してXOR演算を実施して得られる値に等しく、この演算は前述の式(1)で表される。
メッセージブロックと、そのメッセージブロックの1つ前のメッセージブロックの前のメッセージブロックとに対してXOR演算を実施して仮ブロックを得る演算、および仮ブロックと、そのメッセージブロックの1つ前のメッセージブロックに対応する出力ブロックとに対してXOR演算を実施して入力ブロックを得る演算。メッセージブロックの第1のブロック(すなわちメッセージブロックm1)が処理部23で処理されるとき、メッセージブロックm1の1つ前のメッセージブロックの前のメッセージブロックは、オールゼロベクトル(すなわちm[−1]=0)であり、メッセージブロックm1の1つ前のメッセージブロックに対応する出力ブロックは、第1のベクトルIV1である(すなわちO[0]の値は第1のベクトルIV1の値に等しい)。
メッセージブロックの第2のブロック(すなわちメッセージブロックm2)が処理部23で処理されるとき、メッセージブロックの1つ前のメッセージブロックの前のメッセージブロックm2は、第2のベクトルIV2である(すなわちm[0]の値は第2のベクトルIV2の値に等しい)。
処理部23は、オールゼロベクトルをそのメッセージブロックm1の1つ前のメッセージブロックの前のメッセージブロックの値とみなす。次に、処理部23は、仮ブロックt1と、およびそのメッセージブロックm1の1つ前のメッセージブロックに対応する出力ブロックとに対してXOR演算を実施して入力ブロックI1を得る。処理部23は、第1のベクトルIV1の値をそのメッセージブロックm1の1つ前のメッセージブロックに対応する出力ブロックの値とみなす。その後、処理部23は、鍵Kおよび対称暗号化アルゴリズムを用いて入力ブロックI1を暗号化して出力ブロックO1を得る。次に、処理部23は、出力ブロックO1と、メッセージブロックm1の1つ前のメッセージブロックとに対してXOR演算を実施して暗号化ブロックc1を得る。
処理部23は、第2のベクトルIV2をメッセージブロックm1の1つ前のメッセージブロックとみなす。換言すれば、処理部23は、出力ブロックO1と第2のベクトルIV2とに対してXOR演算を実施して暗号化ブロックc1を得る。
全メッセージブロックの第2のブロック(すなわちメッセージブロックm2)が処理部23で処理されるとき、第2のベクトルIV2の値は、そのメッセージブロックm2の1つ前のメッセージブロックの前のメッセージブロックの値とみなされる。次に、処理部23は、各々の仮ブロックt2,t3,t4,……,ttと、そのメッセージブロックの1つ前のメッセージブロックに対応する出力ブロックとにXOR演算をそれぞれ実施して入力ブロックI2,I3,I4,……,Itを得る。
例えば、処理部23は、暗号化ブロックc1,c2,c3,c4,……,ct−1に対してXOR演算を実施して仮ブロックを得た後、その仮ブロックに対して関数演算を実施してメッセージブロックmcvを得ることができる。前述の関数演算は、鍵暗号化演算、回転演算、ハッシュ演算または復号化の点で事前に合意に達しているその他の任意の関数演算であってよい。
メッセージブロックの第1のブロック(すなわちメッセージブロックm1)が処理部23で処理されるとき、メッセージブロックm1の1つ前のメッセージブロックの前のメッセージブロックは、オールゼロベクトル(すなわちm[−1]=0)である。メッセージブロックの第2のブロック(すなわちメッセージブロックm2)が処理部23で処理されるとき、メッセージブロックm2の1つ前のメッセージブロックの前のメッセージブロックは、第2のベクトルIV2である。
出力ブロックO1が処理されるとき、処理部23は、第2のベクトルIV2を出力ブロックO1の1つ前のメッセージブロックとみなす。換言すれば、処理部23は、出力ブロックO1と、第2のベクトルIV2とに対してXOR演算を実施して暗号化ブロックc1を得て、各々の出力ブロックO2,O3,O4,……,Otと、メッセージブロックm1,m2,m3,……,mt−1とに対してそれぞれXOR演算を実施して暗号化ブロックc2,c3,……,ct−1,ctを得る。
記憶部41は、メモリ、フロッピーディスク、ハードディスク、コンパクトディスク(CD)、モバイルディスク、磁気テープ、データベース、同一機能を有し当業者に公知のその他の任意の記録媒体もしくは回路であってよい。処理部43は、様々なプロセッサ、中央処理装置(CPU)、マイクロプロセッサまたは当業者に公知のその他の計算装置のいずれであってもよい。
処理部43はまず、復号化する電子暗号化ファイルCを複数の暗号化ブロックc1,c2,c3,c4,……,ctに分割する。暗号化ブロックc1,c2,c3,c4,……,ctはシーケンスを有する(すなわち暗号化ブロックc1,c2,c3,c4,……,ctの順序になっている)。電子暗号化ファイルCは、記憶部41に記憶されてよい。このほか、ブロック復号化装置4にさらに入力インターフェースが備わっている場合には、電子暗号化ファイルCは、入力インターフェースを介して送信者から受信されてよい。
入力ブロックを生成する演算、鍵Kを用いて入力ブロックを復号化して出力ブロックを得る演算、およびメッセージブロックを生成する演算。各々の暗号化ブロックc1,c2,c3,c4,……,ctが処理部43で処理されるとき、各入力ブロックの値は、処理されている暗号化ブロックと、その暗号化ブロックの1つ前の暗号化ブロックに対応する出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックとに対してXOR演算を実施して得られた値と等しく、メッセージブロックの値は、処理されている暗号化ブロックに対応する出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックとに対してXOR演算を実施して得られた値に等しい。具体的には、各々の前述の入力ブロックを、以下の式(3)に従って表すことができる。
はXOR演算を表している。
暗号化ブロックの第1のブロック(すなわち暗号化ブロックc1)が処理部43で処理されるとき、その暗号化ブロックc1の1つ前の暗号化ブロックに対応する出力ブロックは、第2のベクトルIV2であり(すなわちo[0]の値は第2のベクトルIV2の値に等しい)、その暗号化ブロックc1の1つ前の暗号化ブロックの前の暗号化ブロックはオールゼロベクトル(すなわちc[−1]=0)である。
暗号化ブロックの第2のブロック(すなわち暗号化ブロックc2)が処理部43で処理されるとき、その暗号化ブロックc2の1つ前の暗号化ブロックの前の暗号化ブロックは、第1のベクトルIV1である(すなわちc[0]の値は第1のベクトルIV1の値に等しい)。
処理部43はまず、暗号化ブロックc1と、その暗号化ブロックc1の1つ前の暗号化ブロックに対応するメッセージブロックとに対してXOR演算を実施して入力ブロックi1を得る。処理部43は、第2のベクトルIV2を暗号化ブロックc1の1つ前の暗号化ブロックに対応するメッセージブロックの値とみなす。換言すれば、処理部43は、暗号化ブロックc1と第2のベクトルIV2とに対してXOR演算を実施して入力ブロックi1を得る。次に、処理部43は、鍵Kとブロック暗号化装置2によって用いられた対称暗号化アルゴリズムに対応する対称復号化アルゴリズムとを用いて入力ブロックi1に対して復号化演算Dを実施して、出力ブロックo1を得る。その後、処理部43は、出力ブロックo1と、暗号化ブロックc1の1つ前の暗号化ブロックとに対してXOR演算を実施してメッセージブロックm1を得る。
処理部43は、第1のベクトルIV1の値を暗号化ブロックc1の1つ前の暗号化ブロックの値とみなす。換言すれば、処理部43は、出力ブロックo1と第1のベクトルIV1とに対してXOR演算を実施してメッセージブロックm1を得る。
処理部43は、メッセージブロックm1,m2,m3,m4,……,mtの最後のブロック(すなわちメッセージブロックmt)を排除し、メッセージブロックm1,m2,m3,m4,……,mt−1をシーケンスに合わせて連結して復号化ファイル(すなわち電子ファイルM)を生成する。メッセージブロックmtがメッセージブロックmcvと異なっていれば、電子暗号化ファイルCが検証に不合格であることを示し、処理部43は電子暗号化ファイルCを破棄する。
例えば、ブロック暗号化装置2が暗号化ブロックc1,c2,c3,c4,……,ct−1に対してXOR演算を実施して仮ブロックを得て、その仮ブロックに対して関数演算を実施してメッセージブロックmcvをあらかじめ得る場合、ブロック復号化装置4の処理部43は、電子暗号化ファイルCを暗号化ブロックc1,c2,c3,c4,……,ctに分割した後に、同じように暗号化ブロックc1,c2,c3,c4,……,ct−1に対して同じ演算を実施してメッセージブロックmcvを得なければならない。
前述の関数演算は、鍵暗号化演算、回転演算、ハッシュ演算またはその他の任意の関数演算であってよい。暗号化する当事者および復号化する当事者は、同じ関数演算に関して事前に合意に達している必要がある。
例えば、電子暗号化ファイルCの暗号化ブロックc2が改竄されて(または誤って送信されて)暗号化ブロックc2’になれば、復号化して得られたメッセージブロックm2,m3,m4,……,mtはすべて偽になる。したがって、ブロック復号化装置4は、メッセージブロックmtをメッセージブロックmcvと比較することによって、電子暗号化ファイルCが改竄された(または誤って送信された)かどうかを判断できる。
第5の実施形態のほとんどの演算は、第4の実施形態の演算と同様であり、第5の実施形態と第4の実施形態との唯一の相違点について以下に詳述する。
次に、処理部43は、各々の暗号化ブロックc1,c2,c3,c4,……,ctに対してシーケンスに合わせて以下の演算を実施する。入力ブロックを生成する演算、入力ブロック鍵を用いてを暗号化して出力ブロックを得る演算、およびメッセージブロックを生成する演算。入力ブロックの値は、暗号化ブロックと、その暗号化ブロックの1つ前の暗号化ブロックに対応する出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックとに対してXOR演算を実施して得られた値に等しい。
メッセージブロックの値は、出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックとに対してXOR演算を実施して得られた値に等しい。
また、暗号化ブロックの第2のブロック(すなわち暗号化ブロックc2)が処理部43で処理されるとき、その暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックに対応しているメッセージブロックは、第2のベクトルである。
処理部43はまず、暗号化ブロックc1と、その暗号化ブロックc1の1つ前の暗号化ブロックに対応しているメッセージブロックとに対してXOR演算を実施して入力ブロックi1を生成する。処理部43は、第2のベクトルIV2をその暗号化ブロックc1の1つ前の暗号化ブロックに対応しているメッセージブロックとみなす。換言すれば、処理部43は、暗号化ブロックc1と第2のベクトルIV2とに対してXOR演算を実施して入力ブロックi1を生成する。次に、処理部43は、鍵Kとブロック暗号化装置2によって用いられた対称暗号化アルゴリズムに対応する対称復号化アルゴリズムとを用いて、入力ブロックi1に対して復号化演算Dを実施して、出力ブロックo1を得る。その後、処理部43は、出力ブロックo1と、その暗号化ブロックc1の1つ前の暗号化ブロックに対応する入力ブロックとに対してXOR演算を実施して仮ブロックt1を得て、その後、仮ブロックt1と、その暗号化ブロックc1の1つ前の暗号化ブロックの前の暗号化ブロックに対応しているメッセージブロックとに対してXOR演算を実施してメッセージブロックm1を得る。
処理部43は、第1のベクトルIV1を暗号化ブロックc1の1つ前の暗号化ブロックに対応する入力ブロックとみなし(すなわちi[0]の値は第1のベクトルIV1の値に等しい)、フルゼロベクトルを暗号化ブロックc1の1つ前の暗号化ブロックの前の暗号化ブロックに対応するメッセージブロックとみなす(すなわちm[−1]の値はフルゼロベクトルの値に等しい)。換言すれば、処理部43は、出力ブロックo1と第1のベクトルIV1とに対してXOR演算を実施して仮ブロックt1を得た後、仮ブロックt1とフルゼロベクトルとに対してXOR演算を実施してメッセージブロックm1を得る。
処理部43は、メッセージブロックm1,m2,m3,m4,……,mtの最後のブロック(すなわちメッセージブロックmt)を排除した後、メッセージブロックm1,m2,m3,m4,……,mt−1をシーケンスに合わせて連結して復号化ファイル(すなわち電子ファイルM)を生成する。メッセージブロックmtがメッセージブロックmcvと異なっていれば、電子暗号化ファイルCが検証に不合格であることを示し、処理部43は電子暗号化ファイルCを破棄する。
例えば、ブロック暗号化装置2が暗号化ブロックc1,c2,c3,c4,……,ct−1に対してXOR演算を実施して仮ブロックを得て、その仮ブロックに対して関数演算を実施してメッセージブロックmcvをあらかじめ得る場合、ブロック復号化装置4の処理部43は、電子暗号化ファイルCを暗号化ブロックc1,c2,c3,c4,……,ctに分割した後に、暗号化ブロックc1,c2,c3,c4,……,ct−1に対して同じ演算を実施してメッセージブロックmcvを得なければならない。
前述の関数演算は、鍵暗号化演算、回転演算、ハッシュ演算またはその他の任意の関数演算であってよい。暗号化する当事者および復号化する当事者は、同じ関数演算に関して事前に合意に達している必要がある。
第6の実施形態のいくつかの演算は、第4の実施形態および第5の実施形態の演算と同様であり、第6の実施形態と第4および第5の実施形態との唯一の相違点について以下に詳述する。
入力ブロックを生成する演算、鍵を用いて入力ブロックを暗号化して出力ブロックを得る演算、および出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックとに対してXOR演算を実施してメッセージブロックを生成する演算。入力ブロックの値は、暗号化ブロックと、その暗号化ブロックの1つ前の暗号化ブロックに対応する出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックとに対してXOR演算を実施して得られた値に等しく、以下の式(7)で表されるとおりである。
また、暗号化ブロックの第2のブロック(すなわち暗号化ブロックct−2)が処理部43で処理されるとき、暗号化ブロックct−2の1つ前の暗号化ブロックの前の暗号化ブロックは、暗号化ブロックctである(すなわちc[0]の値は基準ベクトルである暗号化ブロックctの値に等しい)。
処理部43はまず、暗号化ブロックct−1と、暗号化ブロックct−1の1つ前の暗号化ブロックに対応しているメッセージブロックとに対してXOR演算を実施して入力ブロックit−1を生成する。処理部43は、検査ベクトルであるメッセージブロックmcvを1つ前の暗号化ブロックに対応するメッセージブロックとみなす。換言すれば、処理部43は、暗号化ブロックct−1とメッセージブロックmcvとに対してXOR演算を実施して入力ブロックit−1を得る。次に、処理部43は、鍵Kとブロック暗号化装置2によって用いられた対称暗号化アルゴリズムとを用いて、入力ブロックit−1に対して暗号化演算Eを実施して、出力ブロックot−1を得る。その後、処理部43は、出力ブロックot−1と、その暗号化ブロックct−1の1つ前の暗号化ブロックとに対してXOR演算を実施してメッセージブロックmt−1を得る。
処理部43は、基準ベクトルである暗号化ブロックctをその暗号化ブロックct−1の1つ前の暗号化ブロックとみなす。換言すれば、処理部43は、出力ブロックot−1と暗号化ブロックctとに対してXOR演算を実施してメッセージブロックmt−1を得る。
具体的には、処理部43はまず、各々の暗号化ブロックct−2,……,c1,c0と、その暗号化ブロックの1つ前の暗号化ブロックに対応するメッセージブロック(すなわちメッセージブロックmt−1,……,m2,m1)とに対してそれぞれXOR演算を実施して入力ブロックit−2,……,i1,i0を得、鍵Kおよび同じ対称暗号化アルゴリズムを用いて各々の入力ブロックit−2,……,i1,i0に対して暗号化演算Eを実施して出力ブロックot−2,……,o1,o0をそれぞれ得、次に、各々の出力ブロックot−2,……,o1,o0と、その暗号化ブロックの1つ前の暗号化ブロック(すなわち暗号化ブロックct−1,…,c2,c1)とにそれぞれXOR演算を実施してメッセージブロックmt−2,……,m1,m0を得る。
処理部43は、メッセージブロックmt−1,mt−2,……,m1,m0の最後のブロック(すなわちメッセージブロックm0)を排除し、メッセージブロックmt−1,mt−2,……,m1を第2のシーケンスに合わせて逆に連結して復号化ファイル(すなわち電子ファイルM)を生成する。換言すれば、処理部43は、メッセージブロックm1,……,mt−2,mt−1を連結して復号化ファイルを生成する。メッセージブロックm0が第2のベクトルIV2と異なっていれば、電子暗号化ファイルCが検証に不合格であることを示し、処理部43は電子暗号化ファイルCを破棄する。
例えば、ブロック暗号化装置2が暗号化ブロックc1,c2,c3,c4,……,ct−1に対してXOR演算を実施して仮ブロックを得て、その仮ブロックに対して関数演算を実施してメッセージブロックmcvをあらかじめ得る場合、ブロック復号化装置4の処理部43は、電子暗号化ファイルCを暗号化ブロックc1,c2,c3,c4,……,ctに分割した後に、暗号化ブロックc1,c2,c3,c4,……,ct−1に対して同じ演算を実施してメッセージブロックmcvを得なければならない。
前述の関数演算は、鍵暗号化演算、回転演算、ハッシュ演算またはその他の任意の関数演算であってよい。暗号化する当事者および復号化する当事者は、同じ関数演算に関して事前に合意に達している必要がある。
具体的には、暗号化ブロックc0,c1,c2,c3,c4,……,ct−1をブロック暗号化装置2の入力として暗号化ブロックct−1,ct−2,……,c1,c0に再構成する必要がある。このほか、ブロック暗号化装置2に入力される第1のベクトルIV1および第2のベクトルIV2は、メッセージブロックmcvおよび暗号化ブロックctに置換される。ブロック暗号化装置2は、メッセージブロックmcvおよび暗号化ブロックctを用いて暗号化ブロックct−1,ct−2,……,c1,c0を復号化してメッセージブロックmt−1,mt−2,……,m1,m0を生成する。次にメッセージブロックmt−1,mt−2,……,m1は、逆に再構成されて復号化ファイルを得る。
この実施形態では、ステップS705は、メッセージブロックと、そのメッセージブロックの1つ前のメッセージブロックに対応する暗号化ブロックとに対してXOR演算を実施して入力ブロックを生成する。ステップS707では、鍵および対称暗号化アルゴリズムを用いて入力ブロックを暗号化して出力ブロックを得る。ステップS709では、出力ブロックと、そのメッセージブロック1つ前のメッセージブロックとに対してXOR演算を実施して暗号化ブロックを得る。
さらに説明すると、メッセージブロックの第1のブロックがステップS705およびS709で処理されるとき、そのメッセージブロックの1つ前のメッセージブロックに対応する出力ブロックは、第1のベクトルであり、そのメッセージブロックの1つ前のメッセージブロックの前のメッセージブロックは、オールゼロベクトルである。メッセージブロックの第2のブロックがステップS705およびS709で処理されるとき、そのメッセージブロックの1つ前のメッセージブロックの前のメッセージブロックは、第2のベクトルである。
前述の関数演算は、鍵暗号化演算、回転演算、ハッシュ演算または復号化の点で事前に合意に達しているその他の任意の関数演算であってよい。
この実施形態では、ステップS805は、メッセージブロックと、そのメッセージブロックの1つ前のメッセージブロックの前のメッセージブロックとに対してXOR演算を実施して仮ブロックを得た後、仮ブロックと、そのメッセージブロックの1つ前のメッセージブロックに対応する出力ブロックとに対してXOR演算を実施して入力ブロックを得る。
さらに説明すると、メッセージブロックの第1のブロックがステップS805およびS709で処理されるとき、そのメッセージブロックの1つ前のメッセージブロックに対応する出力ブロックは、第1のベクトルであり、そのメッセージブロックの1つ前のメッセージブロックの前のメッセージブロックは、オールゼロベクトルである。メッセージブロックの第2のブロックがステップS805およびS709で処理されるとき、そのメッセージブロックの1つ前のメッセージブロックの前のメッセージブロックは、第2のベクトルである。
また、前述のステップに加えて、第9の実施形態も同じく、第2の実施形態に記載した演算および関数をすべて実行できる。第9の実施形態がこのような演算および関数をどのように実行するのかについては、第2の実施形態の説明を基に当業者は容易に理解すると思われるため、これについてはここでこれ以上説明しない。
第10の実施形態と第9の実施形態との相違点のみを以下に詳述する。理解しやすいように、図3Cを併せて参照されたい。
メッセージブロックの第1のブロックがステップS811で処理されるとき、そのメッセージブロックの1つ前のメッセージブロックの前のメッセージブロックは、フルゼロベクトルである。メッセージブロックの第2のブロックがステップS811で処理されるとき、そのメッセージブロックの1つ前のメッセージブロックの前のメッセージブロックは、第2のベクトルである。
出力ブロックの最初のブロックがステップS815で処理されるとき、出力ブロックの1つ前のメッセージブロックは第2のベクトルである。その後、ステップS713を実行して、暗号化ブロックをシーケンスに合わせて連結して電子暗号化ファイルを生成する。
第10の実施形態がこのような演算および関数をどのように実行するのかについては、第3の実施形態の説明を基に当業者は容易に理解すると思われるため、これについてはここでこれ以上説明しない。
その後、ステップS901を実行して電子暗号化ファイルを複数の暗号化ブロックに分割し、暗号化ブロックはシーケンスを有する。次に、各々の暗号化ブロックに対してシーケンスに合わせてステップS903、S905、S907およびS909を実行し、暗号化ブロックがすべて処理されるまで行う。
次に、ステップS905では、鍵および対称復号化アルゴリズムを用いて入力ブロックを復号化して出力ブロックを得る。対称復号化アルゴリズムは、第8から第10の実施形態で用いた対称暗号化アルゴリズムに相当する。ステップS907では、メッセージブロックを生成する。メッセージブロックの値は、出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックとに対してXOR演算を実施して得られた値に等しい。この実施形態では、ステップS907は、出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックとに対してXOR演算を実施してメッセージブロックを生成する。
暗号化ブロックの第1のブロックがステップS903およびS907で処理されるとき、その暗号化ブロックの1つ前の暗号化ブロックに対応する出力ブロックは、第2のベクトルであり、その暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックは、オールゼロベクトルである。
暗号化ブロックの第2のブロックがステップS903およびS907で処理されるとき、その暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックは、第1のベクトルである。
次に、ステップS911を実行し、メッセージブロックの最後のブロックを検査ベクトルと比較して、メッセージブロックの最後のブロックが検査ベクトルと同じであるかどうかを判断する。ステップS911の判断結果が「はい」であれば、ステップS913を実行し、メッセージブロックの最後のブロックを排除したメッセージブロックをシーケンスに合わせて連結して、復号化ファイルを生成する。ステップS911の判断結果が「いいえ」であれば、ステップS915を実行して電子暗号化ファイルを破棄する。
具体的には、ブロック復号化方法によってステップS901を実行した後、もう1つのステップ(図示せず)を実行して、暗号化ブロックの最後のブロックを排除した暗号化ブロックを用いて検査ベクトルを生成することができる。検査ベクトルは、1つ前の実施形態で説明したように生成されるが、これについてはここでこれ以上説明しない。
その後、ステップS901を実行して電子暗号化ファイルを複数の暗号化ブロックに分割し、暗号化ブロックはシーケンスを有する。次に、各々の暗号化ブロックに対してシーケンスに合わせてステップS903、S905およびS101を実行し、暗号化ブロックがすべて処理されるまで行う。
この実施形態では、ステップS101は、その暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックに対応するメッセージブロックと、出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックに対応する入力ブロックとに対してXOR演算を実施することによってメッセージブロックを得る。
具体的には、ブロック復号化方法によってステップS901を実行した後、もう1つのステップ(図示せず)を実行して、暗号化ブロックの最後のブロックを排除した暗号化ブロックを用いて検査ベクトルを生成することができる。検査ベクトルは、前述の実施形態で説明したように生成され、これについてはここでこれ以上説明しない。
暗号化ブロックの最後のブロックは、基準ベクトルとみなされる。次に、ステップS203を実行して暗号化ブロックの最後のブロックを排除する。次に、ステップS205では、暗号化ブロックを第1のシーケンスと逆である第2のシーケンスに合わせて再構成する。ステップS207では、第1のベクトルを暗号化ブロックの最後のブロックとして暗号化ブロックに加算する。
この実施形態では、ステップS209は、暗号化ブロックと、その暗号化ブロックの1つ前の暗号化ブロックに対応するメッセージブロックとに対してXOR演算を実施して入力ブロックを生成する。暗号化ブロックの第1のブロックがステップS209で処理されるとき、その暗号化ブロックの1つ前の暗号化ブロックに対応する出力ブロックは、検査ベクトルであり、その暗号化ブロックの1つ前のブロックの前の暗号化ブロックは、オールゼロベクトルである。
暗号化ブロックの第2のブロックがステップS209で処理されるとき、その暗号化ブロックの1つ前の暗号化ブロックの前の暗号化ブロックは、基準ベクトルである。その後、ステップS211では、鍵および対称暗号化アルゴリズムを用いて入力ブロックを暗号化して出力ブロックを得る。この対称暗号化アルゴリズムは、第8から第10の実施形態で用いた対称暗号化アルゴリズムと同じである。次に、ステップS213では、出力ブロックと、その暗号化ブロックの1つ前の暗号化ブロックとに対してXOR演算を実施してメッセージブロックを得る。
ステップS217の判断結果が「はい」であれば、ステップS219を実行してメッセージブロックの最後のブロックを排除したのち、他のメッセージブロックを第2のシーケンスに合わせて逆に連結して復号化ファイルを生成する。ステップS217の判断結果が「いいえ」であれば、ステップS221を実行して電子暗号化ファイルを破棄する。
前述のコンピュータプログラム製品は、ネットワークを通じて送信できるファイルであってもよいし、あるいは、読み出し専用メモリ(ROM)、フラッシュメモリ、フロッピーディスク、ハードディスク、コンパクトディスク、モバイルディスク、磁気テープ、ネットワークにアクセス可能なデータベース、または同一機能を有し当業者に公知のその他の任意の記録媒体のような有形のコンピュータ可読媒体に記憶されてもよい。
メッセージブロックの最後のブロックが何であるはずかがわかるため、復号化装置および復号化方法は、電子暗号化ファイルの完全性が損なわれたことに気づくことができ、それによって電子暗号化ファイルを破棄できる。したがって、本発明によって開示した技術は、メッセージ認証コード演算を実施することなく暗号化および復号化を効果的に達成できる一方で、引き続き機密性、完全性およびソース認証という3つの基本的な安全要件を満たすものである。
Claims (16)
- ロードしたプログラムを実行する処理部と、検査ベクトルおよび鍵を記憶する記憶部と、を備えたブロック暗号化装置によって実行される、ブロック暗号化方法であって、
(a)前記処理部により、第1のベクトルおよび第2のベクトルを得ることと;
(b)前記処理部により、電子ファイルを複数のメッセージブロックに分割することであって、前記メッセージブロックがシーケンスを有することと;
(c)前記処理部により、前記検査ベクトルを前記メッセージブロックの最後のブロックとして前記メッセージブロックに加算することと;
(d)前記処理部により、各々のメッセージブロックに対して前記シーケンスに合わせて:
(d1)前記処理部により、入力ブロックを生成する演算であって、前記入力ブロックの値が、前記メッセージブロックと、前記メッセージブロックの1つ前のメッセージブロックに対応する出力ブロックと、前記メッセージブロックの前記1つ前のメッセージブロックの前のメッセージブロックとに対してXOR演算を実施して得られた値に等しい演算;
(d2)前記処理部により、前記鍵を用いて前記入力ブロックを暗号化して出力ブロックを得る演算;および
(d3)前記処理部により、前記出力ブロックと、前記メッセージブロックの前記1つ前のメッセージブロックとに対してXOR演算を実施して暗号化ブロックを得る演算;
を実施することと、
(e)前記暗号化ブロックを前記シーケンスに合わせて連結して電子暗号化ファイルを生成することと、
を含むブロック暗号化方法において、
前記ステップ(d)が前記メッセージブロックの第1のブロックを処理するとき、前記メッセージブロックの前記1つ前のメッセージブロックに対応する前記出力ブロックは、前記第1のベクトルであり、前記メッセージブロックの前記1つ前のメッセージブロックの前の前記メッセージブロックは、オールゼロベクトルであり、
前記ステップ(d)が前記メッセージブロックの第2のブロックを処理するとき、前記メッセージブロックの前記1つ前のメッセージブロックの前の前記メッセージブロックは、前記第2のベクトルである、
ブロック暗号化方法。 - 前記ステップ(d1)は、前記メッセージブロックと、前記メッセージブロックの前記1つ前のメッセージブロックに対応する前記暗号化ブロックとに対してXOR演算を実施して前記入力ブロックを生成する、請求項1に記載のブロック暗号化方法。
- 前記ステップ(d1)は、
前記処理部により、前記メッセージブロックと、前記メッセージブロックの前記1つ前のメッセージブロックの前の前記メッセージブロックとに対してXOR演算を実施して仮ブロックを得ることと、
前記処理部により、前記仮ブロックと、前記メッセージブロックの前記1つ前のメッセージブロックに対応する前記出力ブロックとに対してXOR演算を実施して前記入力ブロックを得ることと
を含む、
請求項1に記載のブロック暗号化方法。 - 前記ステップ(d1)、前記ステップ(d2)、および前記ステップ(d3)は、
前記処理部により、各々の前記メッセージブロックに対して:
前記処理部により、前記メッセージブロックと、前記メッセージブロックの前記1つ前のメッセージブロックの前の前記メッセージブロックとに対してXOR演算を実施する演算と;
前記処理部により、前記鍵、前記第1のベクトルおよび暗号ブロック連鎖装置を用いて前記仮ブロックを暗号化して前記出力ブロックにする演算と;
前記処理部により、各々の出力ブロックと、前記対応する1つ前のメッセージブロックとに対してXOR演算を実施して暗号化ブロックを得る演算と
を実施して複数の仮ブロックを得るステップを含む、
請求項1に記載のブロック暗号化方法。 - 前記処理部により、前記メッセージブロックの前記最後のブロックを処理する前に、前記暗号化ブロックに対してXOR演算を実施して仮ブロックを得ることと;
前記処理部により、前記仮ブロックに対して関数演算を実施して前記検査ベクトルを得ることと
をさらに含む、請求項1に記載のブロック暗号化方法。 - 前記関数演算は、鍵暗号化演算、回転演算およびハッシュ演算のうちの1つである、請求項5に記載のブロック暗号化方法。
- ロードしたプログラムを実行する処理部と、検査ベクトルおよび鍵を記憶する記憶部と、を備えたブロック復号化装置によって実行される、ブロック復号化方法であって、
(a)前記処理部により、第1のベクトルおよび第2のベクトルを得ることと、
(b)前記処理部により、電子暗号化ファイルを複数の暗号化ブロックに分割することであって、前記暗号化ブロックがシーケンスを有することと、
(c)前記処理部により、各々の暗号化ブロックに対して前記シーケンスに合わせて:
(c1)前記処理部により、入力ブロックを生成する演算であって、前記入力ブロックの値が、前記暗号化ブロックと、前記暗号化ブロックの1つ前の暗号化ブロックに対応する出力ブロックと、前記暗号化ブロックの前記1つ前の暗号化ブロックの前の暗号化ブロックとに対してXOR演算を実施して得られた値に等しい演算、
(c2)前記処理部により、前記鍵を用いて前記入力ブロックを復号化して出力ブロックを得る演算、および
(c3)前記処理部により、メッセージブロックを生成する演算であって、前記メッセージブロックの値が、前記出力ブロックと、前記暗号化ブロックの前記1つ前の暗号化ブロックとに対してXOR演算を実施して得られた値に等しい演算、
を実施することと、
(d)前記処理部により、前記メッセージブロックの最後のブロックを前記検査ベクトルと比較することと、
(e)前記処理部により、前記メッセージブロックの最後のブロックが前記検査ベクトルと同じとき、前記メッセージブロックの最後のブロックを排除した前記メッセージブロックを前記シーケンスに合わせて連結して復号化ファイルを生成することと、
を含むブロック復号化方法において、
前記ステップ(c)が前記暗号化ブロックの第1のブロックを処理するとき、前記暗号化ブロックの前記1つ前の暗号化ブロックに対応する前記出力ブロックは、第2のベクトルであり、前記暗号化ブロックの前記1つ前の暗号化ブロックの前の前記暗号化ブロックは、オールゼロベクトルであり、前記ステップ(c)が前記暗号化ブロックの第2のブロックを処理するとき、前記暗号化ブロックの前記1つ前の暗号化ブロックの前の前記暗号化ブロックは、第1のベクトルである、
ブロック復号化方法。 - 前記ステップ(c1)は、前記暗号化ブロックと、前記暗号化ブロックの前記1つ前の暗号化ブロックに対応する前記メッセージブロックとに対してXOR演算を実施することによって前記入力ブロックを生成し、前記ステップ(c3)は、前記出力ブロックと、前記暗号化ブロックの前記1つ前の暗号化ブロックとに対してXOR演算を実施することによって前記メッセージブロックを生成する、請求項7に記載のブロック復号化方法。
- 前記ステップ(c1)は、前記暗号化ブロックと、前記暗号化ブロックの前記1つ前の暗号化ブロックに対応する前記メッセージブロックとに対してXOR演算を実施することによって前記入力ブロックを生成し、
前記ステップ(c3)は、前記暗号化ブロックの前記1つ前の暗号化ブロックの前の暗号化ブロックに対応する前記メッセージブロックと、前記出力ブロックと、前記暗号化ブロックの前記1つ前の暗号化ブロックに対応する前記入力ブロックとに対してXOR演算を実施することによって前記メッセージブロックを得て、
前記ステップ(c3)が前記暗号化ブロックの第1のブロックを処理するとき、前記暗号化ブロックの前記1つ前の暗号化ブロックの前の暗号化ブロックに対応する前記メッセージブロックは、オールゼロベクトルであり、前記暗号化ブロックの前記1つ前の暗号化ブロックに対応する前記入力ブロックは、前記第1のベクトルであり、
前記ステップ(c3)が前記暗号化ブロックの第2のブロックを処理するとき、前記暗号化ブロックの前記1つ前の暗号化ブロックの前の暗号化ブロックに対応する前記メッセージブロックは、前記第2のベクトルである、請求項7に記載のブロック復号化方法。 - 前記処理部により、前記暗号化ブロックの最後のブロックを排除した前記暗号化ブロックに対してXOR演算を実施して仮ブロックを得ることと、
前記処理部により、前記仮ブロックに対して関数演算を実施して前記検査ベクトルを得ることと
をさらに含む、請求項7に記載のブロック復号化方法。 - 前記関数演算は、鍵暗号化演算、回転演算およびハッシュ演算のうちの1つである、請求項10に記載のブロック復号化方法。
- ロードしたプログラムを実行する処理部と、鍵を記憶する記憶部と、を備えたブロック復号化装置によって実行される、ブロック復号化方法であって、
(f)前記処理部により、第1のベクトルおよび第2のベクトルを得ることと、
(g)前記処理部により、電子暗号化ファイルを複数の暗号化ブロックに分割することであって、前記暗号化ブロックが第1のシーケンスを有し、前記暗号化ブロックの最後のブロックが基準ベクトルであることと、
(h)前記処理部により、前記暗号化ブロックの最後のブロックを排除することと、
(i)前記処理部により、前記ステップ(h)の後に、前記暗号化ブロックを第2のシーケンスに合わせて再構成することであって、前記第2のシーケンスが前記第1のシーケンスの逆であることと、
(j)前記処理部により、前記第1のベクトルを前記暗号化ブロックの最後のブロックとして前記暗号化ブロックに加算することと、
(k)前記処理部により、各々の前記暗号化ブロックに対して前記第2のシーケンスに合わせて:
(k1)前記処理部により、入力ブロックを生成する演算であって、前記入力ブロックの値が、前記暗号化ブロックと、前記暗号化ブロックの1つ前の暗号化ブロックに対応する出力ブロックと、前記暗号化ブロックの前記1つ前の暗号化ブロックの前の暗号化ブロックとに対してXOR演算を実施して得られた値に等しい演算、
(k2)前記処理部により、前記鍵を用いて前記入力ブロックを暗号化して出力ブロックを得る演算、および
(k3)前記処理部により、前記出力ブロックと、前記暗号化ブロックの前記1つ前の暗号化ブロックとに対してXOR演算を実施することによってメッセージブロックを生成する演算、
を実施することと、
(l)前記処理部により、前記メッセージブロックの前記最後のブロックを前記第2のベクトルと比較することと、
(m)前記処理部により、前記メッセージブロックの最後のブロックが、前記メッセージブロックの最後のブロックを排除した前記第2のベクトルと同じ場合、他のメッセージブロックを前記第2のシーケンスに合わせて連結して復号化ファイルを生成することと、
を含むブロック復号化方法において、
前記ステップ(k1)が前記暗号化ブロックの第1のブロックを処理するとき、前記暗号化ブロックの前記1つ前の暗号化ブロックに対応する前記出力ブロックは、検査ベクトルであり、前記暗号化ブロックの前記1つ前のブロックの前の前記暗号化ブロックは、オールゼロベクトルであり、前記ステップ(k1)が前記暗号化ブロックの第2のブロックを処理するとき、前記暗号化ブロックの前記1つ前の暗号化ブロックの前の前記暗号化ブロックは、前記基準ベクトルである、
ブロック復号化方法。 - 前記ステップ(k1)は、前記暗号化ブロックと、前記暗号化ブロックの前記1つ前の暗号化ブロックに対応する前記メッセージブロックとに対してXOR演算を実施することによって前記入力ブロックを生成する、請求項12に記載のブロック復号化方法。
- 前記処理部により、前記ステップ(g)の後に、前記暗号化ブロックの最後のブロックを排除した前記暗号化ブロックに対してXOR演算を実施して仮ブロックを得ることと、
前記処理部により、前記仮ブロックに対して関数演算を実施して前記検査ベクトルを得ることと
をさらに含む、請求項12に記載のブロック復号化方法。 - 前記関数演算は、鍵暗号化演算、回転演算およびハッシュ演算のうちの1つである、請求項14に記載のブロック復号化方法。
- 前記ステップ(k)の前記ステップ(k1)、前記ステップ(k2)および前記ステップ(k3)は、
(n1)前記処理部により、請求項1に記載の前記ブロック暗号化装置によって実施された前記演算(d)で用いた、前記メッセージブロック、前記第1のベクトル、前記第2のベクトルおよび前記鍵として、前記暗号化ブロック、前記検査ベクトル、前記基準ベクトルおよび前記鍵をそれぞれ用いるステップと、
(n2)前記処理部により、請求項1に記載の前記ブロック暗号化装置を用いて請求項1に記載の前記演算(d)を実施して前記メッセージブロックを得るステップと
を含む、請求項12に記載のブロック復号化方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310613143.5 | 2013-11-27 | ||
CN201310613143.5A CN104683093B (zh) | 2013-11-27 | 2013-11-27 | 兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015104119A JP2015104119A (ja) | 2015-06-04 |
JP5855696B2 true JP5855696B2 (ja) | 2016-02-09 |
Family
ID=50287732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014081031A Active JP5855696B2 (ja) | 2013-11-27 | 2014-04-10 | 完全性検証を含むブロック暗号化方法およびブロック復号化方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9158931B2 (ja) |
JP (1) | JP5855696B2 (ja) |
CN (1) | CN104683093B (ja) |
GB (2) | GB2520778B8 (ja) |
TW (1) | TWI528773B (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2014297854B2 (en) * | 2013-08-02 | 2016-12-22 | Nec Corporation | Authenticated encryption device, authenticated encryption method, and program for authenticated encryption |
US10382206B2 (en) * | 2016-03-10 | 2019-08-13 | Futurewei Technologies, Inc. | Authentication mechanism for 5G technologies |
US9853813B2 (en) | 2016-03-17 | 2017-12-26 | Crater Dog Technologies, LLC | Method for securing a private key |
CN106788969B (zh) * | 2016-12-02 | 2019-03-01 | 中科星图股份有限公司 | 一种数据文件的传输方法 |
US20180191492A1 (en) * | 2017-01-04 | 2018-07-05 | International Business Machines Corporation | Decryption-Side Initialization Vector Discovery |
GB2564878B (en) * | 2017-07-25 | 2020-02-26 | Advanced Risc Mach Ltd | Parallel processing of fetch blocks of data |
JP6735926B2 (ja) * | 2017-09-01 | 2020-08-05 | 三菱電機株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム |
CN110401527B (zh) * | 2018-04-25 | 2022-03-08 | 腾讯科技(深圳)有限公司 | 数据加密、解密方法、装置以及存储介质 |
US10984115B2 (en) * | 2018-12-04 | 2021-04-20 | Bank Of America Corporation | System for triple format preserving encryption |
US11139969B2 (en) | 2018-12-04 | 2021-10-05 | Bank Of America Corporation | Centralized system for a hardware security module for access to encryption keys |
US11349644B1 (en) * | 2020-04-29 | 2022-05-31 | Wells Fargo Bank, N.A. | Database exclusion (DBX) for multi party access (MPA) to sensitive personal information (SPI) |
US11893090B2 (en) * | 2020-12-30 | 2024-02-06 | Comcast Cable Communications, Llc | Synchronization of digital rights management data |
CN112752122B (zh) * | 2020-12-30 | 2022-11-11 | 厦门市美亚柏科信息股份有限公司 | 智能摄像头的视频加密传输方法及计算机可读存储介质 |
TWI819516B (zh) * | 2022-03-09 | 2023-10-21 | 瑞昱半導體股份有限公司 | 基於消息驗證的金鑰擴展的處理方法與電路 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2001260970A1 (en) * | 2000-01-31 | 2001-08-07 | Vdg Inc. | Block encryption method and schemes for data confidentiality and integrity protection |
US7093126B1 (en) * | 2000-04-14 | 2006-08-15 | International Business Machines Corporation | Encryption schemes with almost free integrity awareness |
US7046802B2 (en) | 2000-10-12 | 2006-05-16 | Rogaway Phillip W | Method and apparatus for facilitating efficient authenticated encryption |
US6963976B1 (en) * | 2000-11-03 | 2005-11-08 | International Business Machines Corporation | Symmetric key authenticated encryption schemes |
US7200227B2 (en) | 2001-07-30 | 2007-04-03 | Phillip Rogaway | Method and apparatus for facilitating efficient authenticated encryption |
CN100527664C (zh) * | 2003-09-29 | 2009-08-12 | 威盛电子股份有限公司 | 具最佳化区块密码功能的微处理器及方法 |
TWI282685B (en) * | 2005-05-27 | 2007-06-11 | Chunghwa Telecom Co Ltd | High speed AES algorithm chip |
CN1323507C (zh) * | 2005-06-28 | 2007-06-27 | 华为技术有限公司 | 分组加密算法中对短分组的处理方法 |
US7428306B2 (en) * | 2006-04-18 | 2008-09-23 | International Business Machines Corporation | Encryption apparatus and method for providing an encrypted file system |
US20070294541A1 (en) * | 2006-06-16 | 2007-12-20 | Phani Bhushan Avadhanam | Methods and apparatus for encryption verification |
US8687800B2 (en) * | 2006-08-15 | 2014-04-01 | Alcatel Lucent | Encryption method for message authentication |
GB0711711D0 (en) * | 2007-06-15 | 2007-07-25 | Ibm | Method and system for encryption of blocks of data |
FR2918830B1 (fr) * | 2007-07-13 | 2009-10-30 | Viaccess Sa | Verification de code mac sans revelation. |
EP2197144A1 (en) * | 2008-12-15 | 2010-06-16 | Thomson Licensing | Methods and devices for a chained encryption mode |
US8195932B2 (en) * | 2009-01-30 | 2012-06-05 | Texas Instruments Incorporated | Authentication and encryption for secure data transmission |
US8467532B2 (en) * | 2010-01-04 | 2013-06-18 | Tata Consultancy Services Limited | System and method for secure transaction of data between a wireless communication device and a server |
CN102136904A (zh) * | 2011-03-30 | 2011-07-27 | 中国科学院软件研究所 | 一种基于分组密码的消息鉴别方法 |
-
2013
- 2013-11-27 CN CN201310613143.5A patent/CN104683093B/zh active Active
-
2014
- 2014-01-03 TW TW103100172A patent/TWI528773B/zh active
- 2014-01-29 GB GB1401493.0A patent/GB2520778B8/en active Active
- 2014-01-29 GB GB1501275.0A patent/GB2520861B/en active Active
- 2014-02-23 US US14/187,292 patent/US9158931B2/en active Active
- 2014-04-10 JP JP2014081031A patent/JP5855696B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
GB2520778B (en) | 2015-12-09 |
TWI528773B (zh) | 2016-04-01 |
GB201401493D0 (en) | 2014-03-12 |
CN104683093A (zh) | 2015-06-03 |
GB201501275D0 (en) | 2015-03-11 |
GB2520778C (en) | 2016-01-06 |
JP2015104119A (ja) | 2015-06-04 |
GB2520778B8 (en) | 2016-05-18 |
GB2520778A (en) | 2015-06-03 |
GB2520778A8 (en) | 2016-05-04 |
US9158931B2 (en) | 2015-10-13 |
TW201521411A (zh) | 2015-06-01 |
CN104683093B (zh) | 2018-01-26 |
GB2520861A (en) | 2015-06-03 |
GB2520861B (en) | 2015-12-09 |
US20150149771A1 (en) | 2015-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5855696B2 (ja) | 完全性検証を含むブロック暗号化方法およびブロック復号化方法 | |
CN108809646B (zh) | 安全共享密钥共享系统 | |
JP6740902B2 (ja) | 認証暗号化方法、認証復号方法および情報処理装置 | |
JP6665204B2 (ja) | データ暗号化装置及び方法、並びにデータ復号化装置及び方法 | |
US10880100B2 (en) | Apparatus and method for certificate enrollment | |
JP6035459B2 (ja) | 暗号化装置、復号化装置、及びプログラム | |
JP6575532B2 (ja) | 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム | |
US8577024B2 (en) | Concealing plain text in scrambled blocks | |
JP2022520675A (ja) | 暗号システムおよび方法 | |
JP5047198B2 (ja) | 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム | |
JPWO2016067524A1 (ja) | 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム | |
JP6738061B2 (ja) | 暗号文照合システム、方法、および記録媒体 | |
US20230139104A1 (en) | Authenticated encryption apparatus, authenticated decryption apparatus, authenticated encryption system, method, and computer readable medium | |
JP7362676B2 (ja) | データの暗号化および完全性のためのデバイス | |
US11108552B1 (en) | Data encryption method and system | |
TWI488478B (zh) | 執行對稱加密的技術 | |
JP6631989B2 (ja) | 暗号化装置、制御方法、及びプログラム | |
WO2015173905A1 (ja) | 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム | |
JP5431190B2 (ja) | 認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラム | |
Mukhi et al. | Survey on triple system security in cloud computing | |
Nori | Improving Security Using Cryptography Based on Smartphone User Locations | |
JP2005204125A (ja) | 認証システム | |
Ruan et al. | Building blocks of the security and management engine | |
TW201737147A (zh) | 資料加解密系統及其加解密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150407 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150630 |
|
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: 20151124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151209 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5855696 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |