JPWO2016088453A1 - 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム - Google Patents

暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム Download PDF

Info

Publication number
JPWO2016088453A1
JPWO2016088453A1 JP2016562335A JP2016562335A JPWO2016088453A1 JP WO2016088453 A1 JPWO2016088453 A1 JP WO2016088453A1 JP 2016562335 A JP2016562335 A JP 2016562335A JP 2016562335 A JP2016562335 A JP 2016562335A JP WO2016088453 A1 JPWO2016088453 A1 JP WO2016088453A1
Authority
JP
Japan
Prior art keywords
key
block
encryption
decryption
cipher
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.)
Granted
Application number
JP2016562335A
Other languages
English (en)
Other versions
JP6575532B2 (ja
Inventor
俊則 荒木
俊則 荒木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2016088453A1 publication Critical patent/JPWO2016088453A1/ja
Application granted granted Critical
Publication of JP6575532B2 publication Critical patent/JP6575532B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

取得部(2020)は平文ブロック列及び第1暗号鍵を取得する。平文ブロック列は複数の平文ブロックで構成される。第2暗号鍵生成部(2040)は第2暗号鍵を生成する。第3暗号鍵生成部(2060)は第3暗号鍵を生成する。第3暗号鍵は、第1暗号鍵と、第2暗号鍵の一部又は全部との排他的論理和として算出される。カウンタモード暗号化部(2080)は、第3暗号鍵を暗号鍵として用いて平文ブロック列を暗号化し、暗号ブロック列を生成する。暗号化には、カウンタモードを暗号利用モードとするブロック暗号が用いられる。鍵ブロック生成部(2100)は鍵ブロックを生成する。鍵ブロックは、第2暗号鍵と暗号ブロック列の各ブロックとの排他的論理和として算出される。

Description

本発明は、ブロック暗号に関する。
暗号方式の一つとして、ブロック暗号がある。ブロック暗号は、暗号化と復号に同一の鍵を用いる共通鍵暗号方式に分類される。ブロック暗号は、暗号化処理及び復号処理から構成される。暗号化処理は暗号化対象のデータ(平文)及び鍵を入力として、暗号文を出力する。復号処理は、暗号文及び鍵を入力として平文を出力する。
ブロック暗号では、鍵長及びブロック長が固定である。例えばアメリカ国立標準技術研究所(NIST)によって規格化された共通鍵暗号方式 AES では、鍵長は 128 ビット、192 ビット、及び 256 ビットから選択でき、ブロック長は128ビットである。
ブロック暗号を用いてブロック長より長いデータを扱う場合、例えばデータを複数のブロックに分割し、ブロックごとに暗号化及び復号を行う。このようにブロック長より長いデータを扱うためのブロック暗号の利用方法は、暗号利用モードと呼ばれる。
ここで、各ブロックをそれぞれ暗号化する方法では、暗号文の一部と鍵を取得すると、その取得した部分を復号することができてしまう。そこで、暗号文の一部が復号されることを防ぐため、All Or Nothing Transform(AONT)と呼ばれる技術が用いられる。AONT を用いて暗号化及び復号を行う方法は、例えば非特許文献1や非特許文献2に開示されている。
Anand Desai、「The Security of All-or-Nothing Encryption: Protecting against Exhaustive Key Search」、Advances in Cryptology(CRYPTO 2000)、2000 年 8 月 11 日、pp. 359-375 Ghassan O. Karame、他3名、「Securing Cloud Data in the New Attacker Model」、[online]、2014年7月16日、[2014年10月30日検索]、インターネット<URL: https://eprint.iacr.org/2014/556.pdf>
非特許文献1の方法では、n ブロックの平文が入力されると、n+1 ブロックの暗号文が出力される。そして、n+1 ブロックの暗号文全てを取得できないと、平文の一部であっても復号できない。しかし、非特許文献2の方法と比較し、暗号処理(暗号化処理及び復号処理)の計算量が多い。
一方、非特許文献2の方法は、非特許文献1の方法よりも少ない計算量で、n ブロックの平文から n+1 ブロックの暗号文を出力できる。しかし、n+1 ブロックの暗号文の内の n ブロックが取得できると平文の一部を復号できてしまうため、非特許文献2の方法は非特許文献1の方法よりも安全性が低い。
本発明は、以上の課題に鑑みてなされたものである。本発明の目的は、ブロック暗号について、暗号文の安全性を向上しつつ、少ない計算量で暗号処理を行う技術を提供することである。
本願発明が提供する暗号化装置は、複数の平文ブロックで構成される平文ブロック列、及び第1暗号鍵を取得する取得手段と、第2暗号鍵を生成する第2暗号鍵生成手段と、前記第1暗号鍵と、前記第2暗号鍵の一部又は全部との排他的論理和として、第3暗号鍵を算出する第3暗号鍵生成手段と、前記第3暗号鍵を暗号鍵とするカウンタモードのブロック暗号で前記平文ブロック列を暗号化して、暗号ブロック列を生成するカウンタモード暗号化手段と、前記第2暗号鍵と前記暗号ブロック列の各ブロックとの排他的論理和を算出することで鍵ブロックを生成する鍵ブロック生成手段と、を有する。
本発明が提供する復号装置は、鍵ブロック及び複数の暗号ブロックを有する暗号ブロック列、並びに第1復号鍵を取得する取得手段と、前記暗号ブロック列に含まれる各暗号ブロックの排他的論理和を算出し、その算出結果を用いて第2復号鍵を生成する第2復号鍵生成手段と、前記第1復号鍵と、前記第2復号鍵の一部又は全部との排他的論理和として、第3復号鍵を算出する第3復号鍵生成手段と、前記第3復号鍵を復号鍵とするカウンタモードのブロック暗号で前記暗号ブロック列を復号して平文ブロック列を生成するカウンタモード復号手段と、を有する。
本発明が提供する暗号処理システムは、本発明が提供する暗号化装置及び復号装置を有する。
本発明が提供する暗号化方法は、コンピュータによって実行される。当該暗号化方法は、複数の平文ブロックで構成される平文ブロック列、及び第1暗号鍵を取得する取得ステップと、第2暗号鍵を生成する第2暗号鍵生成ステップと、前記第1暗号鍵と、前記第2暗号鍵の一部又は全部との排他的論理和として、第3暗号鍵を算出する第3暗号鍵生成ステップと、前記第3暗号鍵を暗号鍵とするカウンタモードのブロック暗号で前記平文ブロック列を暗号化して、暗号ブロック列を生成するカウンタモード暗号化ステップと、前記第2暗号鍵と前記暗号ブロック列の各ブロックとの排他的論理和を算出することで鍵ブロックを生成する鍵ブロック生成ステップと、を有する。
本発明が提供する復号方法は、コンピュータによって実行される。当該復号方法は、鍵ブロック及び複数の暗号ブロックを有する暗号ブロック列、並びに第1復号鍵を取得する取得ステップと、前記暗号ブロック列に含まれる各暗号ブロックの排他的論理和を算出し、その算出結果を用いて第2復号鍵を生成する第2復号鍵生成ステップと、前記第1復号鍵と、前記第2復号鍵の一部又は全部との排他的論理和として、第3復号鍵を算出する第3復号鍵生成ステップと、前記第3復号鍵を復号鍵とするカウンタモードのブロック暗号で前記暗号ブロック列を復号して平文ブロック列を生成するカウンタモード復号ステップと、を有する。
本発明が提供する暗号化プログラムは、コンピュータに、本発明が提供する暗号化装置として動作する機能を持たせる。
本発明が提供する復号プログラムは、コンピュータに、本発明が提供する復号装置として動作する機能を持たせる。
本発明によれば、ブロック暗号について、暗号文の安全性を向上しつつ、少ない計算量で暗号処理を行う技術が提供される。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
実施形態1に係る暗号化装置を例示するブロック図である。 暗号化装置によって実行される処理を数式等を用いて例示した図である。 鍵ブロック生成部が複数の鍵ブロックを生成する方法を概念的に例示する図である。 実施形態1の暗号化装置によって実行される処理の流れを例示するフローチャートである。 暗号化装置のハードウエア構成を例示するブロック図である。 非特許文献1における暗号化処理を例示する図である。 非特許文献1における復号処理を例示する図である。 非特許文献2における暗号化処理を例示する図である。 非特許文献2における復号処理を例示する図である。 実施形態2に係る復号装置を例示するブロック図である。 復号装置によって実行される処理を数式等を用いて例示した図である。 複数の鍵ブロックから第2復号鍵を生成する処理を概念的に例示する図である。 実施形態2の復号装置によって実行される処理の流れを例示するフローチャートである。 復号装置のハードウエア構成を例示するブロック図である。 実施形態3に係る暗号処理システムを例示するブロック図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
[実施形態1]
図1は、実施形態1に係る暗号化装置2000を例示するブロック図である。図1において、矢印は情報の流れを表している。さらに、図1において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
暗号化装置2000は、取得部2020、第2暗号鍵生成部2040、第3暗号鍵生成部2060、カウンタモード暗号化部2080、及び鍵ブロック生成部2100を有する。
取得部2020は平文ブロック列及び第1暗号鍵を取得する。平文ブロック列は複数の平文ブロックで構成される。第2暗号鍵生成部2040は第2暗号鍵を生成する。第3暗号鍵生成部2060は第3暗号鍵を生成する。第3暗号鍵は、第1暗号鍵と、第2暗号鍵の一部又は全部との排他的論理和として算出される。カウンタモード暗号化部2080は、第3暗号鍵を暗号鍵として用いて平文ブロック列を暗号化し、暗号ブロック列を生成する。暗号化には、カウンタモードを暗号利用モードとするブロック暗号が用いられる。鍵ブロック生成部2100は鍵ブロックを生成する。鍵ブロックは、第2暗号鍵と暗号ブロック列の各ブロックとの排他的論理和として算出される。
図2は、暗号化装置2000によって実行される処理を数式等を用いて例示した図である。以下、図2を適宜参照しながら、それぞれの機能構成部の機能について説明する。ただし、図2に示す処理はあくまで例示であり、暗号化装置2000によって実行される処理は図2に示す処理に限定されない。また、図2の例では、第1暗号鍵の鍵長 L が、平文ブロックのブロック長よりも長い場合を想定している。しかし、第1暗号鍵の鍵長 L は、平文ブロックのブロック長以下であってもよい。
<取得部2020>
取得部2020が行う処理は、例えば図2の(1)で表される。ここで、取得部2020が第1暗号鍵及び平文ブロック列を取得する方法は様々である。例えば取得部2020は、外部の装置から入力される第1暗号鍵及び平文ブロック列を取得する。その他にも例えば、取得部2020は、手動で入力される第1暗号鍵及び平文ブロック列を取得する。さらに取得部2020は、外部の装置にアクセスして、第1暗号鍵及び平文ブロック列を取得してもよい。また、取得部2020は、第1暗号鍵と平文ブロック列とを異なる方法で取得してもよい。例えば、第1暗号鍵は外部の装置から取得され、平文ブロック列は手動で入力される。
<第2暗号鍵生成部2040>
第2暗号鍵生成部2040が第2暗号鍵を生成する方法は様々である。例えば第2暗号鍵生成部2040は、所定のビット長のランダムなビット列を生成し、これを第2暗号鍵とする。また例えば、第2暗号鍵の候補を複数用意しておき、第2暗号鍵生成部2040は、その中から利用する第2暗号鍵を選択してもよい。なお、上述の「所定のビット長」は、予め第2暗号鍵生成部2040に設定されていてもよいし、所定のビット長を記憶している記憶装置等から第2暗号鍵生成部2040が取得するようにしてもよい。
第2暗号鍵生成部2040が行う処理は、例えば図2の(2)で表される。図2の(2)では、第2暗号鍵の鍵長(上述の「所定のビット長」)が、平文ブロックのブロック長と等しい。ただし、第2暗号鍵の鍵長は、平文ブロックのブロック長と異なっていてもよい。
<第3暗号鍵生成部2060>
前述の通り、第3暗号鍵生成部2060は第1暗号鍵と、第2暗号鍵の一部又は全部との排他的論理和として第3暗号鍵を生成する。
第2暗号鍵のビット長が第1暗号鍵のビット長よりも長い場合、第3暗号鍵生成部2060は、第1暗号と、第2暗号鍵の一部との排他的論理和を算出する。例えばこの処理は、図2の(3)及び(4)で表される。図2において、平文ブロックのブロック長は、第1暗号鍵の鍵長 L より長い。そこで第3暗号鍵生成部2060は、図2の(3)の処理によって第2暗号鍵 ke2 の下位 L ビットを算出し、この値を k とする。そして、図2の(4)において、第3暗号鍵生成部2060は、L ビットの第1暗号鍵 ke1 と、第2暗号鍵の下位 L ビットである k との排他的論理和を算出することで、第3暗号鍵 ke3 を算出する。
なお、第2暗号鍵のビット長が第1暗号鍵のビット長以下である場合、図2の(3)の処理は不要となる。
<カウンタモード暗号化部2080>
カウンタモード暗号化部2080は、ブロック暗号の暗号化利用モードの一つであるカウンタモードを利用して、複数の平文ブロックを暗号化する。ここで、カウンタモードのブロック暗号では、暗号鍵、カウンタの初期値、及び暗号化対象の平文ブロック列を入力として、暗号ブロック列を生成する。
カウンタモード暗号化部2080は、前述の第3暗号鍵を暗号鍵として用いる。また、カウンタモード暗号化部2080は、暗号化対象の平文ブロック列として、取得部2020によって取得された平文ブロック列を用いる。さらにカウンタモード暗号化部2080は、カウンタの初期値として、例えば0を用いる。ただし、カウンタの初期値は任意の値でよく、0に限定されない。
ここで、入力された暗号鍵、カウンタの初期値、及び平文ブロック列を用いてカウンタモードのブロック暗号で暗号化を行う方法自体は既存の技術である。そのため、この方法についての詳細な説明は省略する。
カウンタモード暗号化部2080が行う処理は、例えば図2の(5)で表される。ここで、EncCtr(ke3; i; x[1],..., x[n]) は、「暗号鍵 ke3、カウンタの初期値 i、及び平文ブロック列 {x[1]、...、x[n]} を入力とし、カウンタモードのブロック暗号で暗号化を行う関数」を表している。図2の(5)では、暗号ブロック列として、{y[1]、...、y[n]} が生成される。
<鍵ブロック生成部2100>
鍵ブロック生成部2100は、第2暗号鍵及び暗号ブロック列の各ブロックとの排他的論理和として、鍵ブロックを生成する。この処理は、例えば図2の(6)で表される。図2の(6)において、y[n+1] は鍵ブロックを表す。こうすることで、第2暗号鍵が、暗号ブロック列によってマスクされる。
ここで、第2暗号鍵のビット長が各暗号ブロックのビット長より長い場合、そのまま第2暗号鍵と各暗号ブロックとの排他的論理和を計算すると、第2暗号鍵の一部がマスクされない。そこで例えば、鍵ブロック生成部2100は、第2暗号鍵を複数の部分鍵に分割し、各部分鍵について暗号ブロック列との排他的論理和演算をすることで、複数の鍵ブロックを生成する。こうすることで、第2暗号鍵の全体が暗号ブロック列によってマスクされるようにする。
図3は、鍵ブロック生成部2100が複数の鍵ブロックを生成する方法を概念的に例示する図である。図3において、第2暗号鍵の鍵長は暗号ブロックのブロック長の2倍である。ここで、暗号ブロックのブロック長を X とおく。例えば鍵ブロック生成部2100は、第2暗号鍵を2等分し、上位 X ビットから成る部分鍵 kp1 及び下位 X ビットから成る部分鍵 kp2 を生成する。
そして、鍵ブロック生成部2100は、暗号ブロック列を2等分し、片方のブロック列及び部分鍵 kp1 とを用いて第1の鍵ブロックを生成する。また、鍵ブロック生成部2100は、もう片方のブロック列及び部分鍵 kp2 を用いて第2の鍵ブロックを生成する。具体的には、鍵ブロック生成部2100は、部分鍵 kp1 と、ブロック列 {y[1],...,y[n/2]} に含まれる各ブロックとの排他的論理和を算出し、算出された値を第1の鍵ブロックとする。さらに、鍵ブロック生成部2100は、部分鍵 kp2 と、ブロック列 {y[(n/2)+1],...,y[n]} に含まれる各ブロックとの排他的論理和を算出し、算出された値を第2の鍵ブロックとする。
<その他の機能について>
暗号化装置2000は、出力部2120をさらに有していてもよい(図示せず)。出力部2120は、暗号ブロック列及び鍵ブロックを出力する。例えば出力部2120は、暗号ブロック列及び鍵ブロックから成るブロック列(以下、出力ブロック列)を出力する。出力部2120が行う処理は、例えば図2の(7)で表される。図2の(7)において、出力ブロック列は、暗号ブロック列 {y[1],...,y[n]} と鍵ブロック y[n+1] とを結合したブロック列 {y[1],...,y[n],y[n+1]} である。ただし、出力部2120は、暗号ブロック列及び鍵ブロックを別々に出力してもよい。
なお、鍵ブロックが複数生成された場合、出力部2120は、生成した鍵ブロックを全て出力する。例えば図3の例の場合、出力部2120は、暗号ブロック列 {y[1],...,y[n]}、並びに鍵ブロック y[n+1] 及び y[n+2] を出力する。
出力部2120によって出力された暗号ブロック列及び鍵ブロックの利用方法は様々である。例えば出力部2120によって出力された暗号ブロック列及び鍵ブロックは、暗号化装置2000の内部又は外部に設けられた記憶部に記録される。その後、その記憶部に記録された暗号ブロック列及び鍵ブロックは、暗号ブロック列の復号処理を行う装置(例えば後述の復号装置3000)によって取得される。また、出力部2120は、暗号ブロック列及び鍵ブロックを外部に送信してもよい。
なお、暗号ブロック列及び鍵ブロックは異なる記憶部に記憶されてもよい。また、暗号ブロック列に含まれる各ブロックは異なる記憶部に記憶されてもよい。例えば、出力ブロック列を m 個(m > 0)のブロック列に分割し、分割後のブロック列をそれぞれ異なる記憶装置に記憶する。このように出力ブロック列を複数に分割してそれぞれ異なる記憶装置に記憶することにより、悪意ある第三者が暗号ブロック列及び鍵ブロックの全てを取得してしまう確率を低くすることができる。
また、出力ブロック列を RAID や多重化などの冗長化手段によって冗長化した後に記憶装置に記憶するようにしてもよい。さらに、冗長化された出力ブロック列を複数のブロック列に分け、それぞれ異なる記憶装置に記憶するようにしてもよい。
<処理の流れ>
図4は、実施形態1の暗号化装置2000によって実行される処理の流れを例示するフローチャートである。取得部2020は平文ブロック列及び第1暗号鍵を取得する(S102)。第2暗号鍵生成部2040は第2暗号鍵を生成する(S104)。第3暗号鍵生成部2060は第3暗号鍵を生成する(S106)。カウンタモード暗号化部2080は、第3暗号鍵を暗号鍵としてカウンタモードのブロック暗号で平文ブロック列を暗号化し、暗号ブロック列を生成する(S108)。鍵ブロック生成部2100は鍵ブロックを生成する(S110)。
<ハードウエア構成例>
暗号化装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、各機能構成部をハードウエアとソフトウエアとの組み合わせで実現する場合について、その構成を具体的に例示する。
暗号化装置2000は、PC(Personal Computer)、携帯端末、又はサーバマシンなどの種々の計算機として実装される。ここで暗号化装置2000は、暗号化装置2000を実装するための専用の計算機に実装されてもよいし、その他のアプリケーション等も含まれている汎用の計算機に実装されてもよい。
図5は、暗号化装置2000のハードウエア構成を例示するブロック図である。暗号化装置2000は、バス1020、プロセッサ1040、メモリ1060、ストレージ1080、及び入出力インタフェース1100を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージ1080、及び入出力インタフェース1100が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。プロセッサ1040は、例えば CPU (Central Processing Unit) や GPU (Graphics Processing Unit) などの演算処理装置である。メモリ1060は、例えば RAM (Random Access Memory) や ROM (Read Only Memory) などのメモリである。ストレージ1080は、例えばハードディスク、SSD (Solid State Drive)、又はメモリカードなどの記憶装置である。また、ストレージ1080は、RAM や ROM 等のメモリであってもよい。入出力インタフェース1100は、暗号化装置2000が入出力デバイスや外部の装置等との間でデータを送受信するための入出力インタフェースである。
ストレージ1080は、暗号化装置2000の機能を実現するためのプログラムを記憶している。具体的には、取得部2020、第2暗号鍵生成部2040、第3暗号鍵生成部2060、カウンタモード暗号化部2080、及び鍵ブロック生成部2100の機能をそれぞれ実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールを実行することで、取得部2020、第2暗号鍵生成部2040、第3暗号鍵生成部2060、カウンタモード暗号化部2080、及び鍵ブロック生成部2100の機能をそれぞれ実現する。ここでプロセッサ1040は、上記各モジュールを実行する際、これらのモジュールをメモリ1060上に読み出してから実行してもよいし、メモリ1060上に読み出さずに実行してもよい。
暗号化装置2000のハードウエア構成は図5に示した構成に限定されない。例えば、各プログラムモジュールはメモリ1060に格納されてもよい。この場合、暗号化装置2000は、ストレージ1080を備えていなくてもよい。
<作用・効果>
非特許文献1に記載されている手法及び非特許文献2に記載されている手法について説明した後、本実施形態の暗号化装置の作用・効果について説明する。
図6は非特許文献1における暗号文生成処理 EplsAenc() を例示する図であり、図7は非特許文献1における復号処理 EplsAdec() を例示する図である。一方、図8は非特許文献2における暗号文生成処理 AONEenc() を例示する図であり、図9は非特許文献2における復号処理 AONEdec() を例示する図である。なお、図7における Enc() は、ブロックを暗号化する任意の暗号化処理を表す関数である。また、図8における Dec() は、Enc() で暗号化されたブロックを復号する任意の復号処理を表す関数である。
非特許文献2の手法は、非特許文献1の暗号文生成処理よりも少ない計算量で暗号文生成処理を実現している。非特許文献1の暗号文生成処理では、2n+1 回の暗号化処理(n 回の EncCtr 及び n+1 回の Enc)及び 2n 回の排他的論理和演算処理が行われている。これに対し、非特許文献2の暗号文生成処理では、n 回の暗号化処理(EncCtr)及び 3n+1 回の排他的論理和演算処理が行われている。よって、非特許文献2の暗号文生成処理は、非特許文献1の暗号文生成処理と比較して、暗号化処理が少なくなり、排他的論理和演算処理が多くなっている。ここで一般に、暗号化処理は排他的論理和演算処理よりも計算量が多い。そのため、非特許文献2の暗号文生成処理は、非特許文献1の暗号文生成処理よりも計算量が少なくなっている。
ただし、非特許文献2の手法では、以下に示す理由から、生成される暗号文の安全性が、非特許文献1の手法で生成される暗号文の安全性よりも低い。図7に示す非特許文献1の復号処理では、暗号ブロック [1],...,y[n+1] のいずれか1つでも足りないと、図7(1)の処理で k' が計算できない。そのため、図7(3)の処理で平文ブロック x[1],...,x[n] のいずれもが計算できない。よって、非特許文献1の手法では、暗号文生成処理で出力される全てのブロックが揃わなければ平文ブロックのいずれもが復号できない。
一方、図9に示す非特許文献2の復号処理では、n+1 個の暗号ブロックの内、n ブロックが取得されてしまうと、平文の一部を復号できてしまう。これは、n ブロックの暗号文から y'[n+1] を復号できてしまうことに起因する。非特許文献2の手法では、AONEenc() の処理を非決定的にしている情報は、鍵 k 及び y'[n+1] である。そのため、鍵 k が手に入る状況では、y'[n+1] のみが AONEenc() の処理を非決定的にする情報となる。そのため、y'[n+1] を復元できると、AONEenc() の処理の非決定性が損なわれてしまう。
例えば、n ブロックの暗号文を取得し、それらを用いて y'[n+1] を復元した悪意ある第三者は、この y'[n+1]、及び適当に生成した n ブロックの平文ブロック列 w[1],...,w[n] を用いて AONEenc() の処理を実行する。そして、この悪意ある第三者は、生成された暗号文と取得した暗号文とを比較する。ここで、もしこれらが異なれば、「平文は w[1],...,w[n] ではない」ということが分かってしまう。このように平文の内容を推測できてしまうことは、暗号文の安全性が低いことを意味する。
本実施形態の暗号化装置2000によれば、暗号化処理に用いる暗号鍵として、第1暗号鍵と第2暗号鍵との排他的論理和として算出した第3暗号鍵が用いられる。よって、第1暗号鍵及び第2暗号鍵のいずれかが秘匿されていれば、平文の一部であっても復号することができない。また、暗号化処理の回数は非特許文献2の暗号文生成処理と同様に n 回であり、非特許文献1の手法よりも計算量が少ない。
よって、本実施形態の暗号化装置2000によれば、ブロック暗号の安全性を向上させつつ、少ない計算量で暗号文を生成できる。
[実施形態2]
図10は、実施形態2に係る復号装置3000を例示するブロック図である。図10において、矢印は情報の流れを表している。さらに、図10において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
復号装置3000は、暗号ブロック列を復号して平文ブロック列を生成する。復号装置3000が処理対象とする暗号ブロック列は、暗号化装置2000によって生成された暗号ブロック列である。そのために、復号装置3000は、取得部3020、第2復号鍵生成部3040、第3復号鍵生成部3060、及びカウンタモード復号部3080を有する。
取得部3020は、対象ブロック列及び第1復号鍵を取得する。対象ブロック列は、前述した鍵ブロック及び暗号ブロック列を有する。暗号ブロック列は、複数の暗号ブロックを有する。第2復号鍵生成部3040は、第2復号鍵を生成する。第2復号鍵は、暗号ブロック列に含まれる各暗号ブロックの排他的論理和として生成される。第3復号鍵生成部3060は、第3復号鍵を生成する。第3復号鍵は、第1復号鍵及び第2復号鍵の排他的論理和として生成される。カウンタモード復号部3080は、暗号ブロックを復号して平文ブロック列を生成する。なお、カウンタモード復号部3080は、ブロック暗号の利用モードとして、カウンタモードを利用する。また、カウンタモード復号部3080は、第3復号鍵を復号鍵として利用する。
図11は、復号装置3000によって実行される処理を数式等を用いて例示した図である。以下、図11を適宜参照しながら、それぞれの機能構成部の機能について説明する。ただし、図11に示す処理はあくまで例示であり、復号装置3000によって実行される処理は図11に示す処理に限定されない。また、図11の例では、第1復号鍵の鍵長 L が、暗号ブロックのブロック長よりも長い場合を想定している。しかし、第1復号鍵の鍵長 L は、暗号ブロックのブロック長以下であってもよい。
<取得部3020の詳細>
対象ブロック列に含まれる暗号ブロック列は、暗号化装置2000のカウンタモード暗号化部2080によって生成された暗号ブロック列である。また、対象ブロック列に含まれる鍵ブロックは、暗号化装置2000の鍵ブロック生成部2100によって生成された鍵ブロックである。つまり、対象ブロックは、出力部2120によって出力された出力ブロックに相当する。取得部3020が行う処理は、例えば図11の(1)で表される。
例えば取得部3020は、暗号化装置2000によって記憶装置に記憶された暗号ブロック列及び鍵ブロックを取得する。また例えば、暗号化装置2000によって送信される暗号ブロック列及び鍵ブロックを受信することで、対象ブロック列を取得する。また例えば、取得部3020は、手動で入力される暗号ブロック列及び鍵ブロックを取得してもよい。
また、取得部3020が取得する第1復号鍵は、暗号化装置2000が暗号ブロック列を生成する際に用いた第1暗号鍵と同じ値である。取得部3020は、暗号化装置2000から第1復号鍵を取得してもよいし、手動で入力される第1復号鍵を取得してもよいし、復号装置3000の内部又は外部の記憶装置に記憶されている第1復号鍵を取得してもよい。
<第2復号鍵生成部3040>
第2復号鍵生成部3040は、暗号ブロック列の各ブロック列及び鍵ブロックとの排他的論理和を算出し、その算出結果を用いて第2復号鍵を生成する。例えば第2復号鍵生成部3040の処理は、図11の(2)で表される。図11の(2)において、第2復号鍵生成部3040は、対象ブロック列 {y[1],...,y[n+1]} の各ブロックの排他的論理和を算出し、その算出結果を第2復号鍵 kd2 とする。
ここで、対象ブロック列に鍵ブロックが複数含まれる場合がある。この場合、第2復号鍵生成部3040は、各鍵ブロックから部分鍵を生成し、その部分鍵を結合することで第2復号鍵を生成する。図12は、複数の鍵ブロックから第2復号鍵を生成する処理を概念的に例示する図である。図12において、対象ブロックには、第1の鍵ブロック y[n+1] 及び第2の鍵ブロック y[n+2] が含まれる。
第2復号鍵生成部3040は、暗号ブロック列の一部である {y[1],...,y[n/2]} の各ブロックと第1の鍵ブロック y[n+1] との排他的論理和を算出することで、第1の部分鍵を生成する。次に、第2復号鍵生成部3040は、暗号ブロック列の一部である {y[(n/2)+1],...,y[n]} の各ブロックと第2の鍵ブロック y[n+2] との排他的論理和を算出することで、第2の部分鍵を生成する。そして、第2復号鍵生成部3040は、第1の部分鍵と第2の部分鍵を結合することで、第2復号鍵を生成する。
なお、第2復号鍵生成部3040は、「暗号ブロック列に含まれる各ブロックの内、どのブロックをどの部分鍵との排他的論理和演算に用いるか」を把握する必要がある。例えば第2復号鍵生成部3040は、m 個の部分鍵を取得した場合、暗号ブロック列を m 等分して複数のブロック列に分け、各ブロック列をいずれか1つの部分鍵との排他的論理和演算に用いるように構成されている。また、第2復号鍵生成部3040は、「暗号ブロック列に含まれる各ブロックの内、どのブロックをどの部分鍵との排他的論理和演算に用いるか」を示す情報を、鍵ブロックと共に取得してもよい。第2復号鍵生成部3040は、暗号化装置2000から出力されるこの情報を取得してもよいし、手動で入力されるこの情報を取得してもよいし、復号装置3000の内部又は外部の記憶装置に記憶されているこの情報を取得してもよい。
<第3復号鍵生成部3060>
第3復号鍵生成部3060は、第2復号鍵の一部又は全部と第1復号鍵との排他的論理和を算出し、その算出結果を第3復号鍵とする。第2復号鍵のビット長が第1復号鍵のビット長より長い場合、第3復号鍵生成部3060は、第2復号鍵の一部と第1復号鍵との排他的論理和を算出し、第3復号鍵とする。この場合における第3復号鍵生成部3060の処理は、例えば図11の(3)及び(4)で表される。図11において、第1復号鍵のビット長は L である。そこで、図11の(3)において、第3復号鍵生成部3060は、第2復号鍵の下位 L ビットである部分鍵 k を生成している。そして、図11の(4)において、第3復号鍵生成部3060は、第1復号鍵 kd1 と部分鍵 k との排他的論理和を算出し、その算出結果を第3復号鍵 kd3 としている。
一方、第2復号鍵のビット長が第1復号鍵のビット長以下である場合、第3復号鍵生成部3060は、第2復号鍵の全部と第1復号鍵との排他的論理和を第3復号鍵とする。この場合、図11の(3)の処理は不要となる。
<カウンタモード復号部3080>
カウンタモード復号部3080は、ブロック暗号の暗号化利用モードの一つであるカウンタモードを利用して暗号ブロック列を復号し、平文ブロックを生成する。カウンタモード復号部3080は、前述の第3復号鍵を復号鍵として用いる。また、カウンタモード復号部3080は、復号対象の暗号ブロック列として、取得部3020によって取得された暗号ブロック列を用いる。さらに、カウンタモード復号部3080は、カウンタモード暗号化部2080が暗号ブロック列の生成に利用したカウンタの初期値と同じ値を、復号処理におけるカウンタの初期値として用いる。カウンタモード復号部3080は、暗号化装置2000からカウンタの初期値を取得してもよいし、手動で入力されるカウンタの初期値を取得してもよいし、復号装置3000の内部又は外部に記憶されているカウンタの初期値を取得してもよい。またカウンタの初期値は、カウンタモード復号部3080に予め設定されていてもよい。
なお、入力された復号鍵、カウンタの初期値、及び暗号ブロック列を用い、カウンタモードのブロック暗号で復号処理を行う方法自体は、既存の技術である。そのため、この方法についての詳細な説明は省略する。
カウンタモード復号部3080が行う処理は、例えば図11の(5)で表される。ここで、DecCtr(kd3; i; y[1], ... , y[n]) は、「復号鍵 kd3、カウンタの初期値 i、暗号ブロック列 {y[1]、...、y[n]} を入力とし、カウンタモードのブロック暗号で復号処理を行う関数」を表している。図11の(5)では、平文ブロック列として、x[1],...,x[n] が生成される。
<出力部3100>
復号装置3000は、出力部3100をさらに有していてもよい(図示せず)。出力部3100は、カウンタモード復号部3080によって復号された平文ブロックを出力する(例えば図11の(6))。
<処理の流れ>
図13は、実施形態2の復号装置3000によって実行される処理の流れを例示するフローチャートである。取得部3020は、対象ブロック列及び第1復号鍵を取得する(S202)。第2復号鍵生成部3040は、第2復号鍵を生成する(S204)。第3復号鍵生成部3060は、第3復号鍵を生成する(S206)。カウンタモード復号部3080は、暗号ブロック列をカウンタモードのブロック暗号で復号し、平文ブロック列を生成する(S208)。
<ハードウエア構成例>
復号装置3000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、各機能構成部をハードウエアとソフトウエアとの組み合わせで実現する場合について、その構成を具体的に例示する。
復号装置3000は、PC(Personal Computer)、携帯端末、又はサーバマシンなどの種々の計算機として実装される。ここで復号装置3000は、復号装置3000を実装するための専用の計算機に実装されてもよいし、その他のアプリケーション等も含まれている汎用の計算機に実装されてもよい。
図14は、復号装置3000のハードウエア構成を例示するブロック図である。復号装置3000は、バス4020、プロセッサ4040、メモリ4060、ストレージ4080、及び入出力インタフェース4100を有する。ここで、バス4020、プロセッサ4040、メモリ4060、ストレージ4080、及び入出力インタフェース4100はそれぞれ、図5の暗号化装置2000におけるバス1020、プロセッサ1040、メモリ1060、ストレージ1080、及び入出力インタフェース1100と同様の機能を有する。
ストレージ4080は、復号装置3000の機能を実現するためのプログラムを記憶している。具体的には、取得部3020、第2復号鍵生成部3040、第3復号鍵生成部3060、及びカウンタモード復号部3080の機能をそれぞれ実現するプログラムモジュールを記憶している。プロセッサ4040は、これら各プログラムモジュールを実行することで、取得部3020、第2復号鍵生成部3040、第3復号鍵生成部3060、及びカウンタモード復号部3080の機能をそれぞれ実現する。ここでプロセッサ4040は、上記各モジュールを実行する際、これらのモジュールをメモリ4060上に読み出してから実行してもよいし、メモリ4060上に読み出さずに実行してもよい。
復号装置3000のハードウエア構成は図14に示した構成に限定されない。例えば、各プログラムモジュールはメモリ4060に格納されてもよい。この場合、復号装置3000は、ストレージ4080を備えていなくてもよい。
<作用・効果>
本実施形態の復号装置3000によれば、実施形態1の暗号化装置2000によって生成された暗号ブロック列を復号し、平文ブロック列を得ることができる。
[実施形態3]
図15は、実施形態3の暗号処理システム5000を例示するブロック図である。暗号処理システム5000は、実施形態1の暗号化装置2000及び実施形態2の復号装置3000を有する。暗号化装置2000の構成は例えば図1で表される。また、復号装置3000の構成は、例えば図10で表される。そのため図15において、暗号化装置2000と復号装置3000が有する各機能構成部は省略されている。
復号装置3000は、実施形態2で説明したいずれかの方法で、暗号化装置2000によって生成された暗号ブロック列及び鍵ブロックから成る対象ブロック列を取得する。本実施形態の暗号処理システム5000によれば、安全性が高く、かつ計算量が少ない方法で暗号化及び復号が行える。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の組み合わせ、及び上記実施形態以外の様々な構成を採用することもできる。
以下、参考形態の例を付記する。
1. 複数の平文ブロックで構成される平文ブロック列、及び第1暗号鍵を取得する取得手段と、
第2暗号鍵を生成する第2暗号鍵生成手段と、
前記第1暗号鍵と、前記第2暗号鍵の一部又は全部との排他的論理和として、第3暗号鍵を算出する第3暗号鍵生成手段と、
前記第3暗号鍵を暗号鍵とするカウンタモードのブロック暗号で前記平文ブロック列を暗号化して、暗号ブロック列を生成するカウンタモード暗号化手段と、
前記第2暗号鍵と前記暗号ブロック列の各ブロックとの排他的論理和を算出することで鍵ブロックを生成する鍵ブロック生成手段と、
を有する暗号化装置。
2. 前記第2暗号鍵のサイズが前記平文ブロックのサイズより大きい場合、前記鍵ブロック生成手段は、前記第2暗号鍵を n 分割 (n >= 2) した各部分と、前記暗号ブロック列を n 分割した各部分ブロックとの排他的論理和をそれぞれ算出することで、n 個の鍵ブロックを生成する、1.に記載の暗号化装置。
3. 前記暗号ブロック列及び前記鍵ブロックを有するブロック列を出力するブロック列出力手段を有する1.又は2.に記載の暗号化装置。
4. 鍵ブロック、複数の暗号ブロックを有する暗号ブロック列、及び第1復号鍵を取得する取得手段と、
前記暗号ブロック列に含まれる各暗号ブロックの排他的論理和を算出し、その算出結果を用いて第2復号鍵を生成する第2復号鍵生成手段と、
前記第1復号鍵と、前記第2復号鍵の一部又は全部との排他的論理和として、第3復号鍵を算出する第3復号鍵生成手段と、
前記第3復号鍵を復号鍵とするカウンタモードのブロック暗号で前記暗号ブロック列を復号して平文ブロック列を生成するカウンタモード復号手段と、
を有する復号装置。
5. 前記取得手段は、複数の鍵ブロックを取得し、
前記第2復号鍵生成手段は、各前記鍵ブロックと、前記暗号ブロック列を n (n > 0) 分割した各部分ブロックとの排他的論理和をそれぞれ算出し、算出した複数の値を結合することで前記第2復号鍵を生成する4.に記載の復号装置。
6. 1.乃至3.いずれか一つに記載の暗号化装置と、4.又は5.に記載の復号装置とを有する暗号処理システム。
7. コンピュータによって実行される暗号化方法であって、
複数の平文ブロックで構成される平文ブロック列、及び第1暗号鍵を取得する取得ステップと、
第2暗号鍵を生成する第2暗号鍵生成ステップと、
前記第1暗号鍵と、前記第2暗号鍵の一部又は全部との排他的論理和として、第3暗号鍵を算出する第3暗号鍵生成ステップと、
前記第3暗号鍵を暗号鍵とするカウンタモードのブロック暗号で前記平文ブロック列を暗号化して、暗号ブロック列を生成するカウンタモード暗号化ステップと、
前記第2暗号鍵と前記暗号ブロック列の各ブロックとの排他的論理和を算出することで鍵ブロックを生成する鍵ブロック生成ステップと、
を有する暗号化方法。
8. 前記第2暗号鍵のサイズが前記平文ブロックのサイズより大きい場合、前記鍵ブロック生成ステップは、前記第2暗号鍵を n 分割 (n >= 2) した各部分と、前記暗号ブロック列を n 分割した各部分ブロックとの排他的論理和をそれぞれ算出することで、n 個の鍵ブロックを生成する、7.に記載の暗号化方法。
9. 前記暗号ブロック列及び前記鍵ブロックを有するブロック列を出力するブロック列出力ステップを有する7.又は8.に記載の暗号化方法。
10. コンピュータによって実行される復号方法であって、
鍵ブロック、複数の暗号ブロックを有する暗号ブロック列、及び第1復号鍵を取得する取得ステップと、
前記暗号ブロック列に含まれる各暗号ブロックの排他的論理和を算出し、その算出結果を用いて第2復号鍵を生成する第2復号鍵生成ステップと、
前記第1復号鍵と、前記第2復号鍵の一部又は全部との排他的論理和として、第3復号鍵を算出する第3復号鍵生成ステップと、
前記第3復号鍵を復号鍵とするカウンタモードのブロック暗号で前記暗号ブロック列を復号して平文ブロック列を生成するカウンタモード復号ステップと、
を有する復号方法。
11. 前記取得ステップは、複数の鍵ブロックを取得し、
前記第2復号鍵生成ステップは、各前記鍵ブロックと、前記暗号ブロック列を n (n > 0) 分割した各部分ブロックとの排他的論理和をそれぞれ算出し、算出した複数の値を結合することで前記第2復号鍵を生成する10.に記載の復号方法。
12. コンピュータに、1.乃至3.いずれか一つに記載の暗号化装置として動作する機能を持たせる暗号化プログラム。
13. コンピュータに、4.又は5.に記載の復号装置として動作する機能を持たせる復号プログラム。
この出願は、2014年12月4日に出願された日本出願特願2014−245932号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (10)

  1. 複数の平文ブロックで構成される平文ブロック列、及び第1暗号鍵を取得する取得手段と、
    第2暗号鍵を生成する第2暗号鍵生成手段と、
    前記第1暗号鍵と、前記第2暗号鍵の一部又は全部との排他的論理和として、第3暗号鍵を算出する第3暗号鍵生成手段と、
    前記第3暗号鍵を暗号鍵とするカウンタモードのブロック暗号で前記平文ブロック列を暗号化して、暗号ブロック列を生成するカウンタモード暗号化手段と、
    前記第2暗号鍵と前記暗号ブロック列の各ブロックとの排他的論理和を算出することで鍵ブロックを生成する鍵ブロック生成手段と、
    を有する暗号化装置。
  2. 前記第2暗号鍵のサイズが前記平文ブロックのサイズより大きい場合、前記鍵ブロック生成手段は、前記第2暗号鍵を n 分割 (n >= 2) した各部分と、前記暗号ブロック列を n 分割した各部分ブロックとの排他的論理和をそれぞれ算出することで、n 個の鍵ブロックを生成する、請求項1に記載の暗号化装置。
  3. 前記暗号ブロック列及び前記鍵ブロックを有するブロック列を出力するブロック列出力手段を有する請求項1又は2に記載の暗号化装置。
  4. 鍵ブロック、複数の暗号ブロックを有する暗号ブロック列、及び第1復号鍵を取得する取得手段と、
    前記暗号ブロック列に含まれる各暗号ブロックの排他的論理和を算出し、その算出結果を用いて第2復号鍵を生成する第2復号鍵生成手段と、
    前記第1復号鍵と、前記第2復号鍵の一部又は全部との排他的論理和として、第3復号鍵を算出する第3復号鍵生成手段と、
    前記第3復号鍵を復号鍵とするカウンタモードのブロック暗号で前記暗号ブロック列を復号して平文ブロック列を生成するカウンタモード復号手段と、
    を有する復号装置。
  5. 前記取得手段は、複数の鍵ブロックを取得し、
    前記第2復号鍵生成手段は、各前記鍵ブロックと、前記暗号ブロック列を n (n > 0) 分割した各部分ブロックとの排他的論理和をそれぞれ算出し、算出した複数の値を結合することで前記第2復号鍵を生成する請求項4に記載の復号装置。
  6. 請求項1乃至3いずれか一項に記載の暗号化装置と、請求項4又は5に記載の復号装置とを有する暗号処理システム。
  7. コンピュータによって実行される暗号化方法であって、
    複数の平文ブロックで構成される平文ブロック列、及び第1暗号鍵を取得する取得ステップと、
    第2暗号鍵を生成する第2暗号鍵生成ステップと、
    前記第1暗号鍵と、前記第2暗号鍵の一部又は全部との排他的論理和として、第3暗号鍵を算出する第3暗号鍵生成ステップと、
    前記第3暗号鍵を暗号鍵とするカウンタモードのブロック暗号で前記平文ブロック列を暗号化して、暗号ブロック列を生成するカウンタモード暗号化ステップと、
    前記第2暗号鍵と前記暗号ブロック列の各ブロックとの排他的論理和を算出することで鍵ブロックを生成する鍵ブロック生成ステップと、
    を有する暗号化方法。
  8. コンピュータによって実行される復号方法であって、
    鍵ブロック、複数の暗号ブロックを有する暗号ブロック列、及び第1復号鍵を取得する取得ステップと、
    前記暗号ブロック列に含まれる各暗号ブロックの排他的論理和を算出し、その算出結果を用いて第2復号鍵を生成する第2復号鍵生成ステップと、
    前記第1復号鍵と、前記第2復号鍵の一部又は全部との排他的論理和として、第3復号鍵を算出する第3復号鍵生成ステップと、
    前記第3復号鍵を復号鍵とするカウンタモードのブロック暗号で前記暗号ブロック列を復号して平文ブロック列を生成するカウンタモード復号ステップと、
    を有する復号方法。
  9. コンピュータに、請求項1乃至3いずれか一項に記載の暗号化装置として動作する機能を持たせる暗号化プログラム。
  10. コンピュータに、請求項4又は5に記載の復号装置として動作する機能を持たせる復号プログラム。
JP2016562335A 2014-12-04 2015-10-13 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム Active JP6575532B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014245932 2014-12-04
JP2014245932 2014-12-04
PCT/JP2015/078908 WO2016088453A1 (ja) 2014-12-04 2015-10-13 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム

Publications (2)

Publication Number Publication Date
JPWO2016088453A1 true JPWO2016088453A1 (ja) 2017-09-14
JP6575532B2 JP6575532B2 (ja) 2019-09-18

Family

ID=56091409

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016562335A Active JP6575532B2 (ja) 2014-12-04 2015-10-13 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム

Country Status (3)

Country Link
US (1) US10305689B2 (ja)
JP (1) JP6575532B2 (ja)
WO (1) WO2016088453A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111314053B (zh) * 2018-12-12 2023-02-10 上海领甲数据科技有限公司 一种数据加密和解密方法
CN111125740B (zh) * 2019-12-27 2023-09-19 湖南鼎一致远科技发展有限公司 热转打印机、上位机、耗材加密系统及方法
US11271919B2 (en) 2020-06-02 2022-03-08 Bank Of America Corporation Network security system for rogue devices
US11558362B2 (en) 2020-06-02 2023-01-17 Bank Of America Corporation Secure communication for remote devices
US11343097B2 (en) 2020-06-02 2022-05-24 Bank Of America Corporation Dynamic segmentation of network traffic by use of pre-shared keys
EP3923512A1 (en) 2020-06-08 2021-12-15 Barclays Execution Services Limited Method for processing encrypted data
US11265255B1 (en) 2020-08-11 2022-03-01 Bank Of America Corporation Secure communication routing for remote devices
EP3996321A1 (en) 2020-11-06 2022-05-11 Barclays Execution Services Limited Method for processing encrypted data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09230787A (ja) * 1996-02-20 1997-09-05 Internatl Business Mach Corp <Ibm> 暗号化方法および装置
JP2006311383A (ja) * 2005-04-28 2006-11-09 Trusted Solutions Kk データ管理方法、データ管理システムおよびデータ管理装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007050B2 (en) * 2001-05-17 2006-02-28 Nokia Corporation Method and apparatus for improved pseudo-random number generation
WO2005086950A2 (en) * 2004-03-11 2005-09-22 Teknovus, Inc., Method for data encryption in an ethernet passive optical network
JP4490192B2 (ja) * 2004-07-02 2010-06-23 株式会社エヌ・ティ・ティ・ドコモ マルチタスク実行システム
US7418100B2 (en) * 2004-10-20 2008-08-26 Cisco Technology, Inc. Enciphering method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09230787A (ja) * 1996-02-20 1997-09-05 Internatl Business Mach Corp <Ibm> 暗号化方法および装置
JP2006311383A (ja) * 2005-04-28 2006-11-09 Trusted Solutions Kk データ管理方法、データ管理システムおよびデータ管理装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BELLARE, M. AND BOLDYREVA, A.: "The Security of Chaffing and Winnowing", LECTURE NOTES IN COMPUTER SCIENCE, vol. 1976, JPN6010055745, 2000, pages 517 - 530, ISSN: 0004081168 *
DESAI, A.: "The Security of All-or-Nothing Encryption: Protecting against Exhaustive Key Search", LECTURE NOTES IN COMPUTER SCIENCE, vol. 1880, JPN6019016834, 2000, pages 359 - 375, XP001003410, ISSN: 0004081169 *

Also Published As

Publication number Publication date
US10305689B2 (en) 2019-05-28
JP6575532B2 (ja) 2019-09-18
WO2016088453A1 (ja) 2016-06-09
US20170272243A1 (en) 2017-09-21

Similar Documents

Publication Publication Date Title
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
JP6934963B2 (ja) データを暗号化する方法およびシステム
US8121294B2 (en) System and method for a derivation function for key per page
JP6083234B2 (ja) 暗号処理装置
JP6035459B2 (ja) 暗号化装置、復号化装置、及びプログラム
JP5855696B2 (ja) 完全性検証を含むブロック暗号化方法およびブロック復号化方法
JP6413743B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
WO2019130528A1 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
KR20150130788A (ko) 데이터를 암호화하는 방법 및 그를 위한 장치
US11153068B2 (en) Encryption device, encryption method, decryption device and decryption method
WO2014007296A1 (ja) 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
Sharma et al. Analysis of AES Encryption with ECC
CN113098675B (zh) 基于多项式完全同态的二进制数据加密系统及方法
JP6194136B2 (ja) 疑似乱数生成装置及び疑似乱数生成プログラム
WO2016088251A1 (ja) 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
JP6203387B2 (ja) 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム
CN112640359B (zh) 消息认证装置、消息认证方法及计算机可读取的存储介质
Arora et al. Performance analysis of cryptography algorithms
US11811741B2 (en) Information processing system and information processing method
JP2013205437A (ja) 非線形関数S−boxの計算方法及び装置
WO2022239163A1 (ja) 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム
JP2014219548A (ja) 暗号処理システム
Mandal et al. Securing Message using Recursive Modulo-2 and Key Rotation Operation (RMRO)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190712

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190805

R150 Certificate of patent or registration of utility model

Ref document number: 6575532

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150