JP6171649B2 - 暗号化装置、復号装置、暗号化方法および暗号化プログラム - Google Patents

暗号化装置、復号装置、暗号化方法および暗号化プログラム Download PDF

Info

Publication number
JP6171649B2
JP6171649B2 JP2013147269A JP2013147269A JP6171649B2 JP 6171649 B2 JP6171649 B2 JP 6171649B2 JP 2013147269 A JP2013147269 A JP 2013147269A JP 2013147269 A JP2013147269 A JP 2013147269A JP 6171649 B2 JP6171649 B2 JP 6171649B2
Authority
JP
Japan
Prior art keywords
block
ciphertext
decryption
encryption
bit
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
Application number
JP2013147269A
Other languages
English (en)
Other versions
JP2015022318A (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
Priority to JP2013147269A priority Critical patent/JP6171649B2/ja
Publication of JP2015022318A publication Critical patent/JP2015022318A/ja
Application granted granted Critical
Publication of JP6171649B2 publication Critical patent/JP6171649B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、共通鍵を用いて暗号化された暗号文の重複排除を行う暗号化装置、暗号化方法および暗号化プログラム並びに暗号文の復号を行う復号装置、復号方法および復号プログラムに関する。
ストレージ装置や、Web上で提供されるストレージサービスの容量の圧迫を避けるために、重複排除という技術が広く使われている。これは、複数の同じファイルをストレージに格納する際、どちらか一つのみを実際に格納するものである。
典型的な重複排除の方法では、ファイルごとにハッシュ値が保存され、新たに追加されるファイルについて、計算したハッシュ値が過去に保存したハッシュ値と一致する場合に、既に同じファイルがあるものとして、新たなファイルは保存しないという判断が行われる。なお、保存されたファイルはハッシュ値ベースでアクセスされる。
用いられるハッシュ関数が暗号学的に安全であれば、上記のような処理を行った場合に、同じハッシュ値を持つ二つの異なるファイルを作り出すことは困難と考えられる。そのため、保存すべき新しいファイルを誤って保存しないという危険性は、十分低いと考えられる。
実際には、ファイルがより細かいチャンク単位に分割されたうえでハッシュ値が求められ、チャンク単位で重複排除が行われることが多い。チャンク単位で重複排除を行う具体的な方式は、例えば、特許文献1に記載されている。
なお、関連する技術として、非特許文献1や非特許文献2には、初期ベクトルを持たない暗号化方式(確定的暗号化、Deterministic Encryption)が記載されている。また、特許文献2には、収束暗号化(CE:Convergent Encryption )と呼ばれる方式が記載されている。また、非特許文献3には、Scramble All, Encrypt Smallとよばれる暗号化方式が記載されている。
また、非特許文献4には、スポンジ構造のハッシュ関数について記載されており、非特許文献5には、ブロック暗号のブロックサイズを変更する方法について記載されている。
国際公開第2010/086922号 欧州特許第1299971号明細書
NIST Special Publication 800-38E, "Recommendation for Block Cipher Modes of Operation: The XTS-AES Mode for Confidentiality on Storage Devices", Jan. 2010. Debrup Chakraborty, Palash Sarkar, "HCH: A New Tweakable Enciphering Scheme Using the Hash-Encrypt-Hash Approach", pp. 287-302, Progress in Cryptology - INDOCRYPT 2006, Proceedings. Lecture Notes in Computer Science 4329 Springer 2006. M. Jakobsson, J. P. Stern, and M. Yung., "Scramble All, Encrypt Small", L. Knudsen (Ed.): FSE’99, LNCS 1636, pp. 95-111, 1999. G. Bertoni, J. Daemen, M. Peeters and G. Van Assche, "Sponge functions, Ecrypt Hash Workshop", May 2007. Mihir Bellare, Thomas Ristenpart, Phillip Rogaway, Till Stegers, "Format-Preserving Encryption", SAC 2009, pp. 295-312.
ストレージ装置や、ストレージサービスを利用する場合に、データを秘匿することを目的として、共通鍵暗号による暗号化が用いられることがある。重複排除技術と暗号化を組み合わせることを考えた場合、ストレージ側で鍵を持てば、重複排除技術した後に暗号化すればよいため容易である。しかし、この場合、装置の管理者の内部犯行などによる、ストレージからの情報漏洩のリスクは残る。このようなリスクをなくすため、ストレージを使うユーザのみが鍵を持ち、ユーザ側で暗号化と、ストレージ装置へ暗号文を送信することが考えられる。
ここで、カウンターモードなど、一般的な暗号化方式を用いると、たとえ同じ平文と同じ鍵であっても、初期ベクトルの違いにより異なる暗号文へ変換されてしまうため、ストレージ側での重複排除は不可能になる。
ユーザが単一かつ用いる鍵も一つである場合、非特許文献1や非特許文献2に記載された暗号化方式を用いることで、同じ平文、同じ鍵であれば同じ暗号文が生成されるようになり、重複排除が可能になる。
しかし、ユーザが複数存在する(マルチユーザ)場合には、ユーザごとに鍵が異なるため、初期ベクトルを持たない暗号化方法でも重複排除は不可能になる。特許文献2に記載された収束暗号化方式CEを用いることで、この問題を解決することは可能である。
図10は、収束暗号化方式の例を示す説明図である。収束暗号化方式は、平文Mに対して、暗号学的ハッシュ関数h(*)と、共通鍵暗号による確定的暗号化Enc(*,*)を組み合わせて、暗号文C= Enc(h(M), M) を生成する方式である。
ここで、Enc(K,X)は、鍵K を用いたX の暗号化結果である。したがって、収束暗号化方式CEは、平文のハッシュ値を鍵とした確定的暗号化ということができる。この方法では、異なるユーザが同じ平文Mを持っている場合に、生成される暗号文は、どのユーザでも同一である。よって、ストレージ側で暗号文が一致するか否かを判断できるため、重複排除が可能になる。
収束暗号化方式CEでは、平文ごとに異なる鍵が生成されるため、この鍵をどのように管理するかが問題になる。一つの方法として、ユーザがすべての鍵を記憶し、その鍵と対応する暗号文とを関連づけて、データベースなどで管理する方法がある。また、他の方法として、ユーザがマスター鍵MKを一つ用意しておく。このマスター鍵MKを用いて、平文Mの暗号化に用いた鍵h(M) を暗号化し、Mの暗号文Cと、鍵h(M) の暗号文L = Enc(MK, h(M)) とをストレージに保存する、という方法を用いることも可能である。この場合、ストレージ側で、鍵の暗号文L と平文の暗号文Cとの対応付けを記憶しておく必要がある。
いずれにせよ、収束暗号化方式CEでは、鍵は平文ごとに生成される。そのため、平文ごとにユーザまたはストレージ側で保持するデータが鍵の分増加してしまう。さらに、収束暗号化方式CEでは、鍵の暗号文を保持するエンティティにおいて、鍵の暗号文と平文の暗号文とを対応付けて管理する手間が増えてしまうという問題がある。
そこで、本発明は、複数のユーザがユーザごとに独立に生成した鍵を用いてデータの暗号化を行う場合に、暗号化されたデータが格納されるストレージ側でユーザが生成した鍵を知らなくても、データの重複排除を行うことができる暗号化装置、暗号化方法および暗号化プログラム並びに暗号文の復号を行う復号装置、復号方法および復号プログラムを提供することを目的とする。
本発明による暗号化装置は、暗号化の対象となるn-bit 以上の平文を、その平文の右端のn-bit の固定長ブロックである右端ブロックと、平文からその右端ブロックを除いたブロックである左ブロックとに分割する平文分割手段と、暗号学的ハッシュ関数を用いて、左ブロックについてn-bit ハッシュ値を算出する第一ハッシュ値算出手段と、第一ハッシュ値算出手段が算出したハッシュ値と右端ブロックとの排他的論理和を入力ブロックとして、左ブロックと等しい長さの疑似乱数を生成する暗号化用疑似乱数生成手段と、入力ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号化を行うことで、暗号化されたn-bit のブロック暗号文を生成する共通鍵ブロック暗号化手段と、疑似乱数と左ブロックとの排他的論理和と、ブロック暗号文とを連結して暗号文を生成する暗号文生成手段と、暗号文生成手段により生成された2つの暗号文における左ブロックのハッシュ値または実際の値を比較し、一致すると判断した場合に、2つの暗号文のうち一方の暗号文の左ブロックを削除する重複排除手段とを備えたことを特徴とする。
本発明による復号装置は、復号の対象となるn-bit 以上の暗号文を、その暗号文の右端のn-bit の固定長ブロックである暗号文右端ブロックと、暗号文からその暗号文右端ブロックを除いたブロックである暗号文左ブロックとに分割する暗号文分割手段と、暗号文右端ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号により復号を行うことで、復号された復号ブロックを生成する共通鍵ブロック復号手段と、共通鍵ブロック復号手段が生成した復号ブロックを用いて、暗号文左ブロックと等しい長さの疑似乱数を生成する復号用疑似乱数生成手段と、暗号学的ハッシュ関数を用いて、疑似乱数と暗号文左ブロックとの排他的論理和についてのハッシュ値を算出する第二ハッシュ値算出手段と、疑似乱数と暗号文左ブロックとの排他的論理和と、ハッシュ値と復号ブロックとの排他的論理和とを連結した結果を復号結果の平文として生成する平文生成手段とを備えたことを特徴とする。
本発明による暗号化方法は、暗号化の対象となるn-bit 以上の平文を、その平文の右端のn-bit の固定長ブロックである右端ブロックと、平文からその右端ブロックを除いたブロックである左ブロックとに分割し、暗号学的ハッシュ関数を用いて、左ブロックについてn-bit ハッシュ値を算出し、算出されたハッシュ値と右端ブロックとの排他的論理和を入力ブロックとして、左ブロックと等しい長さの疑似乱数を生成し、入力ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号化を行うことで、暗号化されたn-bit のブロック暗号文を生成し、疑似乱数と左ブロックとの排他的論理和と、ブロック暗号文とを連結して暗号文を生成し、生成された2つの暗号文における左ブロックのハッシュ値または実際の値を比較し、一致すると判断した場合に、2つの暗号文のうち一方の暗号文の左ブロックを削除することを特徴とする。
本発明による復号方法は、復号の対象となるn-bit 以上の暗号文を、その暗号文の右端のn-bit の固定長ブロックである暗号文右端ブロックと、暗号文からその暗号文右端ブロックを除いたブロックである暗号文左ブロックとに分割し、暗号文右端ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号により復号を行うことで、復号された復号ブロックを生成し、生成された復号ブロックを用いて、暗号文左ブロックと等しい長さの疑似乱数を生成し、暗号学的ハッシュ関数を用いて、疑似乱数と暗号文左ブロックとの排他的論理和についてのハッシュ値を算出し、疑似乱数と暗号文左ブロックとの排他的論理和と、ハッシュ値と復号ブロックとの排他的論理和とを連結した結果を復号結果の平文として生成することを特徴とする。
本発明による暗号化プログラムは、コンピュータに、暗号化の対象となるn-bit 以上の平文を、その平文の右端のn-bit の固定長ブロックである右端ブロックと、平文からその右端ブロックを除いたブロックである左ブロックとに分割する平文分割処理、暗号学的ハッシュ関数を用いて、左ブロックについてn-bit ハッシュ値を算出する第一ハッシュ値算出処理、第一ハッシュ値算出処理で算出されたハッシュ値と右端ブロックとの排他的論理和を入力ブロックとして、左ブロックと等しい長さの疑似乱数を生成する暗号化用疑似乱数生成処理、入力ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号化を行うことで、暗号化されたn-bit のブロック暗号文を生成する共通鍵ブロック暗号化処理、疑似乱数と左ブロックとの排他的論理和と、ブロック暗号文とを連結して暗号文を生成する暗号文生成処理、および、暗号文生成処理で生成された2つの暗号文における左ブロックのハッシュ値または実際の値を比較し、一致すると判断した場合に、2つの暗号文のうち一方の暗号文の左ブロックを削除する重複排除処理を実行させることを特徴とする。
本発明による復号プログラムは、コンピュータに、復号の対象となるn-bit 以上の暗号文を、その暗号文の右端のn-bit の固定長ブロックである暗号文右端ブロックと、暗号文からその暗号文右端ブロックを除いたブロックである暗号文左ブロックとに分割する暗号文分割処理、暗号文右端ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号により復号を行うことで、復号された復号ブロックを生成する共通鍵ブロック復号処理、共通鍵ブロック復号処理で生成された復号ブロックを用いて、暗号文左ブロックと等しい長さの疑似乱数を生成する復号用疑似乱数生成処理、暗号学的ハッシュ関数を用いて、疑似乱数と暗号文左ブロックとの排他的論理和についてのハッシュ値を算出する第二ハッシュ値算出処理、および、疑似乱数と暗号文左ブロックとの排他的論理和と、ハッシュ値と復号ブロックとの排他的論理和とを連結した結果を復号結果の平文として生成する平文生成処理を実行させることを特徴とする。
本発明によれば、複数のユーザがユーザごとに独立に生成した鍵を用いてデータの暗号化を行う場合に、暗号化されたデータが格納されるストレージ側でユーザが生成した鍵を知らなくても、データの重複排除を行うことができる。
本発明による重複排除付きの暗号化装置の一実施形態を示すブロック図である。 暗号化部11の構成例を示すブロック図である。 重複排除手段105が行う重複排除の例を示す説明図である。 本発明による復号装置の一実施形態を示すブロック図である。 暗号化部11の動作例を示すフローチャートである。 重複排除手段105の動作例を示すフローチャートである。 復号装置20の動作例を示すフローチャートである。 本発明による暗号化装置の概要を示すブロック図である。 本発明による復号装置の概要を示すブロック図である。 収束暗号化方式の例を示す説明図である。
以下、本発明の実施形態を図面を参照して説明する。以下の説明では、特に断りのない限り、1ブロックの長さをn ビットとする。
図1は、本発明による重複排除付きの暗号化装置の一実施形態を示すブロック図である。本発明の重複排除付き暗号化装置10は、暗号化部11と、重複排除手段105とを備えている。また、暗号化部11は、平文入力手段100と、ハッシュ手段101と、鍵なし疑似乱数生成手段102と、共通鍵ブロック暗号化手段103と、暗号文出力手段104とを含む。
重複排除付き暗号化装置10は、CPU(Central Processing Unit )、メモリおよび磁気ディスク装置により実現可能である。重複排除付き暗号化装置10の各手段は、プログラム(暗号化プログラム)を磁気ディスク装置に格納しておき、このプログラムをCPU上で動作させることにより実現できる。
図2は、本実施形態の暗号化部11の構成例を示すブロック図である。平文入力手段100は、暗号化対象となるm ブロックの平文Mを入力する手段である。ただし、m は2以上である。平文入力手段100は、例えば、キーボードなどの文字入力装置により実現されてもよく、ネットワーク装置等を介して他の装置から送信されるデータを受信するインタフェースにより実現されていてもよい。
ハッシュ手段101は、平文Mの左m-1 ブロックをMとし、右端の1 ブロックをMとしたときに、SHA-1 などの暗号学的ハッシュ関数H を用いて、ハッシュ値S=H(M) を出力する手段である。
例えば、共通鍵ブロック暗号が用いられる場合、標準的なブロック長は16バイトであり、Mは、128ビットになる。以下、この右端のブロックの長さを、n-bit と記すこともある。また、平文Mは、この右端のブロックを少なくとも含むことから、平文の長さは、少なくともn-bit 以上の長さを有する。
以下の説明では、平文Mの右端のn-bit 固定長ブロックを右端ブロックまたはMと記し、平文Mで右端ブロックを除いたそれ以外のブロック(すなわち、平文の左側のブロック)のことを左ブロックまたはMと記すこともある。すなわち、ハッシュ手段101は、平文Mを右端ブロックと左ブロックに分割する処理を行っていると言える。
鍵なし疑似乱数生成手段102は、ハッシュ手段101が出力する、ハッシュ値S と平文右端の1 ブロックMとの排他的論理和の結果をブロックV としたとき、このブロックV を入力として疑似乱数R を出力する手段である。ここで、疑似乱数R は、Mと同じ長さである。
また、鍵なし疑似乱数生成手段102は、内部で秘密鍵やその他の乱数を用いない関数を使用する。鍵なし疑似乱数生成手段102は、例えば、ブロックV を鍵としたストリーム暗号の出力を疑似乱数R とすればよい。
なお、一般的な暗号学的ハッシュ関数は、可変長の入力で、かつ比較的短い固定長の結果を出力する。そのため、一般的な暗号学的ハッシュ関数を単に用いるだけでは、鍵なし疑似乱数生成手段102の機能を実現できない。しかし、暗号学的ハッシュ関数が内部で用いる固定長入出力の圧縮関数と呼ばれる関数を部品化し、固定長入力および可変長出力のハッシュ関数を構成すれば、上述する鍵なし疑似乱数生成手段102の機能を実現可能である。
また、鍵なし疑似乱数生成手段102は、ブロックV を基に、固定長入力および可変長出力のハッシュ関数から出力される結果を疑似乱数R としてもよい。また、鍵なし疑似乱数生成手段102は、例えば、非特許文献4に記載されたスポンジ構造のハッシュ関数を用いてもよい。この関数は、可変長入力、可変長出力を実現する関数であるため、この関数を直接的に用いることで、上述する鍵なし疑似乱数生成手段102の機能を実現可能である。
共通鍵ブロック暗号化手段103は、ブロックV を、秘密鍵を備えたAES (Advanced Encryption Standard)などの共通鍵ブロック暗号で暗号化し、暗号文の右端ブロックであるCを生成する手段である。なお、ブロックV は、長さが標準的な共通鍵ブロック暗号に用いられるブロックサイズでない場合、共通鍵ブロック暗号化手段103は、例えば、非特許文献5に記載された方法を用いて、既存のブロック暗号から任意のブロックサイズのブロック暗号を生成すればよい。
暗号文出力手段104は、共通鍵ブロック暗号化手段103が出力する暗号文の右端ブロックCと、鍵なし疑似乱数生成手段102が出力する疑似乱数R とMとの排他的論理和(この排他的論理和をCとする)をもとに、CとCとを連結した暗号文Cを出力する。
重複排除手段105は、上記の平文入力手段100、ハッシュ手段101、鍵なし疑似乱数生成手段102、共通鍵ブロック暗号化手段103および暗号文出力手段104を含む暗号化部11によって出力された二つの暗号文CおよびC’を入力として、重複排除を行う手段である。
なお、二つの暗号文CとC’の鍵は同じである必要はない。また、重複排除手段105は、鍵を持たずに重複排除処理を行う。
具体的には、暗号文Cの右端ブロックをC、それ以外のブロックをC、暗号文C’の右端ブロックをC’、それ以外のブロックをC’とする。このとき、重複排除手段105は、CとC’が長さも含めて等しい場合に重複排除を行い、(C, C, C’)を出力する。一方、CとC’が異なる場合、重複排除手段105は、重複排除を行わずに、(C, C, C’, C’)を出力する。
とC’の同一性をチェックする際、重複排除手段105は、一部のブロックが一致するか否かで判断してもよいし、ハッシュ関数H を用いて判断してもよい。すなわち、重複排除手段105は、H(C)とH(C’) が等しい場合に、CとC’が等しいと見なしてもよい。また、重複排除手段105は、ハッシュ値だけでなく、実際の値を比較して、CとC’の同一性をチェックしてもよい。
また、二つ以上の任意の暗号文が存在した場合、重複排除手段105は、上述する2つの暗号文に対する同一性チェックを全ての組み合わせについて実行し、各暗号文の右端ブロック以外について、重複排除を行うことも可能である。
図3は、重複排除手段105が行う重複排除の例を示す説明図である。図3に示す例では、暗号化部11に入力された平文M、M’が暗号化されて、それぞれC、C’として出力される。このとき、重複排除手段105は、CとC’が等しい場合に、C’を除いたCおよびC’を出力し、それ以外の場合に、CおよびC’を出力する。
なお、図3では、暗号化部11を2つ示しているが、暗号化部11の数は2つに限定されない。1つの暗号化部11が、複数の暗号化処理を行ってもよく、3つ以上の暗号化部11がそれぞれ独立に暗号化処理を行ってもよい。
本発明における重複排除付きの暗号化装置は、コンピュータと、そのコンピュータ上で実行されるプログラムにより実現することができる。具体的には、平文入力手段100と、ハッシュ手段101と、鍵なし疑似乱数生成手段102と、共通鍵ブロック暗号化手段103と、暗号文出力手段104と、重複排除手段105とは、プログラム(暗号化プログラム)に従って動作するコンピュータのCPUによって実現される。
例えば、プログラムは、重複排除付き暗号化装置10の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、平文入力手段100、ハッシュ手段101、鍵なし疑似乱数生成手段102、共通鍵ブロック暗号化手段103、暗号文出力手段104および重複排除手段105として動作してもよい。
また、平文入力手段100と、ハッシュ手段101と、鍵なし疑似乱数生成手段102と、共通鍵ブロック暗号化手段103と、暗号文出力手段104と、重複排除手段105とは、それぞれが専用のハードウェアで実現されていてもよい。
図4は、本発明による復号装置の一実施形態を示すブロック図である。本発明の復号装置20は、暗号文入力手段200と、共通鍵ブロック復号手段201と、鍵なし疑似乱数生成手段202と、ハッシュ手段203と、平文出力手段204とを備えている。
暗号文入力手段200は、復号対象となるm ブロックの暗号文Cを入力する手段である。ただし、m は2以上である。暗号文入力手段200は、例えば、キーボードなどの文字入力装置により実現されてもよく、ネットワーク装置等を介して他の装置から送信されるデータを受信するインタフェースにより実現されていてもよい。
共通鍵ブロック復号手段201は、暗号文Cの左m-1 ブロックをCとし、右端の1 ブロックをCとしたときに、Cを、秘密鍵を備えたAESなどの共通鍵ブロック暗号で復号し、ブロックV を生成する手段である。
なお、暗号化の場合と同様、暗号文Cの右端のブロックの長さを、n-bit と記すこともある。また、暗号文Cは、この右端のブロックを少なくとも含むことから、暗号文の長さは、少なくともn-bit 以上の長さを有する。
ここでは、暗号文Cの右端のn-bit 固定長ブロックを暗号文右端ブロックまたはCと記し、暗号文Cで暗号文右端ブロックを除いたそれ以外のブロック(すなわち、暗号文の左側のブロック)のことを暗号文左ブロックまたはCと記す。すなわち、共通鍵ブロック復号手段201は、暗号文Cを暗号文右端ブロックと暗号文左ブロックに分割する処理を行っていると言える。
鍵なし疑似乱数生成手段202は、共通鍵ブロック復号手段201が出力するブロックV を入力として疑似乱数R を出力する手段である。ここで、疑似乱数R は、Cと同じ長さである。また、ブロックV から疑似乱数R を生成するために用いられる関数は、重複排除付き暗号化装置10の鍵なし疑似乱数生成手段102が用いる関数と同様である。
すなわち、鍵なし疑似乱数生成手段202は、復号されたブロックを鍵としたストリーム暗号の出力を疑似乱数R としてもよく、復号されたブロックを基に、固定長入力および可変長出力のハッシュ関数から出力される結果を疑似乱数R としてもよい。このとき、鍵なし疑似乱数生成手段202は、鍵を用いずに疑似乱数R を生成する。
ハッシュ手段203は、SHA-1 などの暗号学的ハッシュ関数H を用いて、疑似乱数R とCとの排他的論理和を入力とし、ハッシュ値S を出力する手段である。
平文出力手段204は、ハッシュ手段203に入力される、疑似乱数R とCとの排他的論理和を、平文の右端以外のブロックMとし、ハッシュ手段203が出力する、疑似乱数R とブロックV との排他的論理和を、平文の右端ブロックMとして、MとMとを連結した平文Mを出力する。
暗号文入力手段200と、共通鍵ブロック復号手段201と、鍵なし疑似乱数生成手段202と、ハッシュ手段203と、平文出力手段204とは、プログラム(復号プログラム)に従って動作するコンピュータのCPUによって実現される。
例えば、プログラムは、復号装置20の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、暗号文入力手段200、共通鍵ブロック復号手段201、鍵なし疑似乱数生成手段202、ハッシュ手段203および平文出力手段204として動作してもよい。
また、暗号文入力手段200と、共通鍵ブロック復号手段201と、鍵なし疑似乱数生成手段202と、ハッシュ手段203と、平文出力手段204とは、それぞれが専用のハードウェアで実現されていてもよい。
次に、本実施形態の重複排除付き暗号化装置10および復号装置20の動作を説明する。初めに、重複排除付き暗号化装置10における暗号化部11の暗号化処理を説明する。図5は、本実施形態の暗号化部11の動作例を示すフローチャートである。
まず、平文入力手段100が、暗号化対象となるm ブロックの平文Mを入力する(ステップS11)。ただし、m は2 以上である。また、平文Mは、MとMが結合した文であると言うこともできる。
次に、ハッシュ手段101が、平文M の左m-1 ブロックをMとし、右端の1 ブロックをMとしたときに、SHA-1 などの暗号学的ハッシュ関数H を用いて、ハッシュ値S=H(M) を計算する(ステップS12)。
ハッシュ値S と平文右端の1 ブロックMとの排他的論理和を算出した結果をブロックV としたとき、鍵なし疑似乱数生成手段102が、このブロックV を入力として、疑似乱数R を計算する(ステップS13)。
次に、共通鍵ブロック暗号化手段103は、ブロックV を秘密鍵を備えたAES などの共通鍵ブロック暗号で暗号化し、ブロックCを求める(ステップS14)。
を暗号文の右端ブロックとし、鍵なし疑似乱数生成手段102が出力する疑似乱数R とMとの排他的論理和の算出結果をCとしたとき、暗号文出力手段104は、CとCを連結して暗号文Cを求め(ステップS15)、求めた暗号文Cを出力する(ステップS16)。
次に、重複排除付き暗号化装置10における重複排除手段105の重複排除処理を説明する。図6は、本実施形態の重複排除手段105の動作例を示すフローチャートである。
また、重複排除手段105は、暗号化部11が出力する2つの暗号文CとC’を入力する(ステップS21)。ここでは、2つの暗号文CとC’のそれぞれの右端ブロックをC、C’とし、残りのブロックをC、C’とする。
重複排除手段105は、CとC’が長さも含めて等しいか否かを判断する(ステップS22)。CとC’が長さも含めて等しい場合(ステップS22におけるyes)、重複排除手段105は、重複排除を行って、(C, C, C’)を出力する(ステップS23)。一方、CとC’が異なる場合(ステップS22におけるno)、重複排除手段105は、重複排除を行わずに、(C, C, C’, C’)を出力する(ステップS24)。
次に、復号装置20の復号処理を説明する。図7は、本実施形態の復号装置20の動作例を示すフローチャートである。
まず、暗号文入力手段200は、復号対象となるm ブロックの暗号文Cを入力する(ステップS31)。ただし m は、2 以上である。また、暗号文Cは、CとCが結合した文であると言うこともできる。
次に、共通鍵ブロック復号手段201は、暗号文Cの左m-1 ブロックをCとし、右端の1 ブロックをCとしたときに、Cを、秘密鍵を備えたAES などの共通鍵ブロック暗号で復号し、ブロックV を生成する(ステップS32)。
次に、ブロックV を入力として、鍵なし疑似乱数生成手段202は、疑似乱数R を出力する(ステップS33)。
疑似乱数R とCとの排他的論理和をMとしたとき、ハッシュ手段203は、SHA-1 などの暗号学的ハッシュ関数H を用いて、ハッシュ値S=H(M) を出力する(ステップS34)。
平文出力手段204は、ハッシュ値S とブロックV との排他的論理和の結果を、平文右端の1 ブロックMとし、MとMを連結して平文Mを復号する(ステップS35)。そして、平文出力手段204は、平文M(すなわち、MとMの連結結果)を出力する(ステップS36)。
以上のように、本実施形態によれば、ハッシュ手段101が、入力された平文MをMとMとに分割し、暗号学的ハッシュ関数を用いて、Mについてハッシュ値S を算出する。次に、鍵なし疑似乱数生成手段102が、ハッシュ値S とMとの排他的論理和を入力ブロックV として、Mと等しい長さの疑似乱数R を生成する。次に、共通鍵ブロック暗号化手段103が、入力ブロックV について、秘密鍵を用いた共通鍵ブロック暗号化を行うことで、暗号化されたCを生成し、暗号文出力手段104が、疑似乱数R とMとの排他的論理和Cと、Cとを連結して暗号文Cを生成する。最後に、重複排除手段105が、生成された2つの暗号文における左ブロックCおよびC’のハッシュ値または実際の値を比較し、一致すると判断した場合に、2つの暗号文のうち一方の暗号文のC(C’)を削除する。
したがって、複数のユーザがユーザごとに独立に生成した鍵を用いてデータの暗号化を行う場合に、暗号化されたデータが格納されるストレージ側でユーザが生成した鍵を知らなくても、データの重複排除を行うことができる。
具体的には、暗号文の特定箇所の1 ブロックを除いた部分が、平文全体に対する鍵無しの計算から決定されるように、平文が暗号化される。そして、残る1 ブロックについてのみ、ユーザが任意に設定した秘密鍵とブロック暗号で暗号化が行われる。これにより、平文が一致すれば、用いた鍵によらず、暗号文の特定箇所の1 ブロックを除いた部分が一致するという特徴を有することになる。したがって、ストレージ側では鍵を知らなくとも、1 ブロックを除いた部分について重複排除が可能になる。
また、鍵無しの計算を行う処理では、ハッシュ関数を用いた2 ラウンドの処理が用いられるため、鍵を知らない者が暗号文から平文を復号するという攻撃を防ぐことが可能になる。
例えば、本発明を用いることで、Convergent Encryption における本質的な制約である、平文ごとに鍵が生成されるという問題が解決される。平文ごとに鍵が生成されると、平文ごとにユーザ側やサーバ(ストレージ)側で保持するデータが鍵の分増加し、さらに鍵の暗号文を保持するエンティティにおいて、鍵の暗号文と平文の暗号文とを対応付けて管理する手間が増えるというデメリットが生じるからである。
一方、本実施形態によれば、暗号化部11が、単一の鍵を生成するため、暗号化により保持すべきデータが増加することはない。本実施形態で用いられる暗号化方式では、暗号文は、その右端ブロックを除き、鍵無しの計算により決定されるため、平文が一致すれば、用いた鍵によらず、暗号文のほとんどが一致するという特徴を持つ。これにより、サーバ(ストレージ)側では、鍵を知らなくとも、暗号文の右端ブロックを除いた部分について重複排除が可能になる。
また、本実施形態によれば、共通鍵ブロック復号手段201が、入力された暗号文Cを、CとCとに分割し、Cについて、秘密鍵を用いた共通鍵ブロック暗号により復号を行うことで、復号された復号ブロックV を生成する。次に、鍵なし疑似乱数生成手段202が、生成された復号ブロックV を用いて、Cと等しい長さの疑似乱数R を生成し、ハッシュ手段203が、暗号学的ハッシュ関数を用いて、疑似乱数R とCとの排他的論理和についてのハッシュ値を算出する。そして、平文出力手段204が、疑似乱数とCとの排他的論理和Mと、ハッシュ値と復号ブロックV との排他的論理和Mとを連結した結果を復号結果の平文Mとして生成する。
そのため、重複排除付き暗号化装置10により重複排除されて格納されたデータも正しく復号することが可能になる。
以下、具体例を用いて説明する。ユーザAとユーザBが独立に、同じm ブロックの平文Mについて暗号化を行ったとする。このとき、ユーザAは、暗号文C=(C, C)を得たとする。ただし、Cは、1 ブロック、Cは、m-1 ブロックである。また、ユーザBは、暗号文C’=(C’, C’)を得たとする。ただし、C’は、1 ブロック、C’は、m-1 ブロックである。この場合、C=C’が満たされるため、サーバはm+1 ブロックのデータ(C, C, C’)を保持すればよい。
そして、ユーザAがサーバにアクセスしてきた場合、サーバは、(C, C)を返し、ユーザBがサーバにアクセスしてきた場合、サーバは(C, C’)を返すことで、どちらのユーザも正しく平文Mを復号できる。
なお、本実施形態で用いられる暗号化方式は、例えば、非特許文献3に記載されたScramble All, Encrypt Small とよばれる暗号化方式と似ているとも言える。しかし、非特許文献3に記載された暗号化方式では、暗号化において、平文と独立な、nonce と呼ばれる乱数が用いられる。そのため、この方法では、平文がたとえ同じであっても暗号文が毎回変わるため、暗号文の重複排除は不可能である。
また、重複排除手段105が重複排除できる範囲は、暗号文全体より常に1 ブロック少なくなる。そのため、Convergent Encryption と比べた重複排除の効果はわずかに劣る。しかし、現実には平文のブロック長m は、ある程度大きいと考えられるため、効果の劣化は、無視できるレベルと言える。
例えば、平文の長さがHDD (Hard disk drive )の標準的なセクタ長である4K(4096)byte、ブロック長が、共通鍵ブロック暗号の標準的なブロック長である16byteである場合、本実施形態における重複排除の効率は、16/4096=約0.4%しか低下しない。同様に、Convergent Encryption の場合では、4Kbyte単位の暗号化で約0.4%データが増えることになる。
両者は、割合としては同じだが、一般に重複排除は、大量の暗号化データのある一部分に対してのみ機能する。そのため、全体のデータ量の削減量を考えると、一般に本実施形態で用いられる重複削除の方が有利と言える。
したがって、本実施形態によれば、Convergent Encryption の課題である暗号化によるデータの増加と、データごとに鍵が生成されることを解消できる。
次に、本発明の概要を説明する。図8は、本発明による暗号化装置の概要を示すブロック図である。本発明の暗号化装置(例えば、重複排除付き暗号化装置10)は、暗号化の対象となるn-bit 以上の平文(例えば、平文M)を、平文の右端のn-bit の固定長ブロックである右端ブロック(例えば、M)と、平文から右端ブロックを除いたブロックである左ブロック(例えば、M)とに分割する平文分割手段81(例えば、ハッシュ手段101)と、暗号学的ハッシュ関数を用いて、左ブロックについてn-bit ハッシュ値(例えば、ハッシュ値S )を算出する第一ハッシュ値算出手段82(例えば、ハッシュ手段101)と、第一ハッシュ値算出手段82が算出したハッシュ値と右端ブロックとの排他的論理和を入力ブロック(例えば、ブロックV )として、左ブロックと等しい長さの疑似乱数(例えば、疑似乱数R )を生成する暗号化用疑似乱数生成手段83(例えば、鍵なし疑似乱数生成手段102)と、入力ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号化を行うことで、暗号化されたn-bit のブロック暗号文(例えば、C)を生成する共通鍵ブロック暗号化手段84(例えば、共通鍵ブロック暗号化手段103)と、疑似乱数と左ブロックとの排他的論理和(例えば、C)と、ブロック暗号文(例えば、C)とを連結して暗号文(例えば、C)を生成する暗号文生成手段85(例えば、暗号文出力手段104)と、(例えば、独立した秘密鍵を用いて)暗号文生成手段85により生成された2つの暗号文(例えば、(C, C), (C’, C’)。ただし、CとC’は右端のn-bit 固定長ブロック)における左ブロック(CとC’)のハッシュ値または実際の値を比較し、一致すると判断した場合に、2つの暗号文のうち一方の暗号文の左ブロックを削除する(すなわち、(C, C, C’)を出力する)重複排除手段86(例えば、重複排除手段105)とを備えている。
そのような構成により、複数のユーザがユーザごとに独立に生成した鍵を用いてデータの暗号化を行う場合に、暗号化されたデータが格納されるストレージ側でユーザが生成した鍵を知らなくても、データの重複排除を行うことができる。また、そのような構成により、鍵の暗号文と平文の暗号文とを対応付けて管理する手間も削減できる。
このとき、暗号化用疑似乱数生成手段83は、入力ブロックを鍵として生成されるストリーム暗号、または、入力ブロックを入力として固定長入力および可変長出力のハッシュ関数から出力される結果を疑似乱数としてもよい。
また、図9は、本発明による復号装置の概要を示すブロック図である。本発明による復号装置(例えば、復号装置20)は、復号の対象となるn-bit 以上の暗号文(例えば、暗号文C)を、その暗号文の右端のn-bit の固定長ブロックである暗号文右端ブロック(例えば、C)と、暗号文から暗号文右端ブロックを除いたブロックである暗号文左ブロック(例えば、C)とに分割する暗号文分割手段91(例えば、共通鍵ブロック復号手段201)と、暗号文右端ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号により復号を行うことで、復号された復号ブロック(例えば、ブロックV )を生成する共通鍵ブロック復号手段92(例えば、共通鍵ブロック復号手段201)と、共通鍵ブロック復号手段92が生成した復号ブロックを用いて、暗号文左ブロックと等しい長さの疑似乱数を生成する復号用疑似乱数生成手段93(例えば、鍵なし疑似乱数生成手段202)と、暗号学的ハッシュ関数を用いて、疑似乱数と暗号文左ブロックとの排他的論理和(例えば、M)についてのハッシュ値を算出する第二ハッシュ値算出手段94(例えば、ハッシュ手段203)と、疑似乱数と暗号文左ブロックとの排他的論理和(例えば、M)と、ハッシュ値と復号ブロックとの排他的論理和(例えば、M)とを連結した結果を復号結果の平文として生成する平文生成手段95(例えば、平文出力手段204)とを備えている。
そのような構成により、例えば、図8に例示する暗号化装置により重複排除されて格納されたデータも正しく復号することが可能になる。
このとき、復号用疑似乱数生成手段93は、復号ブロックを鍵として生成されるストリーム暗号、または、復号ブロックを入力として固定長入力および可変長出力のハッシュ関数から出力される結果を疑似乱数としてもよい。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)コンピュータに、暗号化の対象となるn-bit 以上の平文を、当該平文の右端のn-bit の固定長ブロックである右端ブロックと、前記平文から当該右端ブロックを除いたブロックである左ブロックとに分割する平文分割処理、暗号学的ハッシュ関数を用いて、前記左ブロックについてn-bit ハッシュ値を算出する第一ハッシュ値算出処理、前記第一ハッシュ値算出処理で算出されたハッシュ値と前記右端ブロックとの排他的論理和を入力ブロックとして、前記左ブロックと等しい長さの疑似乱数を生成する暗号化用疑似乱数生成処理、前記入力ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号化を行うことで、暗号化されたn-bit のブロック暗号文を生成する共通鍵ブロック暗号化処理、前記疑似乱数と前記左ブロックとの排他的論理和と、前記ブロック暗号文とを連結して暗号文を生成する暗号文生成処理、および、前記暗号文生成処理で生成された2つの暗号文における左ブロックのハッシュ値または実際の値を比較し、一致すると判断した場合に、前記2つの暗号文のうち一方の暗号文の左ブロックを削除する重複排除処理を実行させるための暗号化プログラム。
(付記2)暗号化用疑似乱数生成処理で、入力ブロックを鍵として生成されるストリーム暗号、または、入力ブロックを入力として固定長入力および可変長出力のハッシュ関数から出力される結果を疑似乱数とさせる付記1記載の暗号化プログラム。
(付記3)コンピュータに、復号の対象となるn-bit 以上の暗号文を、当該暗号文の右端のn-bit の固定長ブロックである暗号文右端ブロックと、前記暗号文から当該暗号文右端ブロックを除いたブロックである暗号文左ブロックとに分割する暗号文分割処理、前記暗号文右端ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号により復号を行うことで、復号された復号ブロックを生成する共通鍵ブロック復号処理、前記共通鍵ブロック復号処理で生成された復号ブロックを用いて、前記暗号文左ブロックと等しい長さの疑似乱数を生成する復号用疑似乱数生成処理、暗号学的ハッシュ関数を用いて、前記疑似乱数と前記暗号文左ブロックとの排他的論理和についてのハッシュ値を算出する第二ハッシュ値算出処理、および、前記疑似乱数と前記暗号文左ブロックとの排他的論理和と、前記ハッシュ値と前記復号ブロックとの排他的論理和とを連結した結果を復号結果の平文として生成する平文生成処理を実行させるための復号プログラム。
(付記4)復号用疑似乱数生成処理で、復号ブロックを鍵として生成されるストリーム暗号、または、復号ブロックを入力として固定長入力および可変長出力のハッシュ関数から出力される結果を疑似乱数とさせる付記3記載の復号プログラム。
本発明は、共通鍵を用いて暗号化された暗号文の重複排除を行う暗号化装置に好適に適用される。例えば、無線もしくは有線のデータ通信における暗号化、データベースなどのストレージを保護するといった用途に本発明を適用できる。
10 重複排除付き暗号化装置
11 暗号化部
100 平文入力手段
101 ハッシュ手段
102 鍵なし疑似乱数生成手段
103 共通鍵ブロック暗号化手段
104 暗号文出力手段
105 重複排除手段
20 復号装置
200 暗号文入力手段
201 共通鍵ブロック復号手段
202 鍵なし疑似乱数生成手段
203 ハッシュ手段
204 平文出力手段

Claims (10)

  1. 暗号化の対象となるn-bit 以上の平文を、当該平文の右端のn-bit の固定長ブロックである右端ブロックと、前記平文から当該右端ブロックを除いたブロックである左ブロックとに分割する平文分割手段と、
    暗号学的ハッシュ関数を用いて、前記左ブロックについてn-bit ハッシュ値を算出する第一ハッシュ値算出手段と、
    前記第一ハッシュ値算出手段が算出したハッシュ値と前記右端ブロックとの排他的論理和を入力ブロックとして、前記左ブロックと等しい長さの疑似乱数を生成する暗号化用疑似乱数生成手段と、
    前記入力ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号化を行うことで、暗号化されたn-bit のブロック暗号文を生成する共通鍵ブロック暗号化手段と、
    前記疑似乱数と前記左ブロックとの排他的論理和と、前記ブロック暗号文とを連結して暗号文を生成する暗号文生成手段と、
    前記暗号文生成手段により生成された2つの暗号文における左ブロックのハッシュ値または実際の値を比較し、一致すると判断した場合に、前記2つの暗号文のうち一方の暗号文の左ブロックを削除する重複排除手段とを備えた
    ことを特徴とする暗号化装置。
  2. 暗号化用疑似乱数生成手段は、入力ブロックを鍵として生成されるストリーム暗号、または、入力ブロックを入力として固定長入力および可変長出力のハッシュ関数から出力される結果を疑似乱数とする
    請求項1記載の暗号化装置。
  3. 復号の対象となるn-bit 以上の暗号文を、当該暗号文の右端のn-bit の固定長ブロックである暗号文右端ブロックと、前記暗号文から当該暗号文右端ブロックを除いたブロックである暗号文左ブロックとに分割する暗号文分割手段と、
    前記暗号文右端ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号により復号を行うことで、復号された復号ブロックを生成する共通鍵ブロック復号手段と、
    前記共通鍵ブロック復号手段が生成した復号ブロックを用いて、前記暗号文左ブロックと等しい長さの疑似乱数を生成する復号用疑似乱数生成手段と、
    暗号学的ハッシュ関数を用いて、前記疑似乱数と前記暗号文左ブロックとの排他的論理和についてのハッシュ値を算出する第二ハッシュ値算出手段と、
    前記疑似乱数と前記暗号文左ブロックとの排他的論理和と、前記ハッシュ値と前記復号ブロックとの排他的論理和とを連結した結果を復号結果の平文として生成する平文生成手段とを備えた
    ことを特徴とする復号装置。
  4. 復号用疑似乱数生成手段は、復号ブロックを鍵として生成されるストリーム暗号、または、復号ブロックを入力として固定長入力および可変長出力のハッシュ関数から出力される結果を疑似乱数とする
    請求項3記載の復号装置。
  5. 暗号化の対象となるn-bit 以上の平文を、当該平文の右端のn-bit の固定長ブロックである右端ブロックと、前記平文から当該右端ブロックを除いたブロックである左ブロックとに分割し、
    暗号学的ハッシュ関数を用いて、前記左ブロックについてn-bit ハッシュ値を算出し、
    算出されたハッシュ値と前記右端ブロックとの排他的論理和を入力ブロックとして、前記左ブロックと等しい長さの疑似乱数を生成し、
    前記入力ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号化を行うことで、暗号化されたn-bit のブロック暗号文を生成し、
    前記疑似乱数と前記左ブロックとの排他的論理和と、前記ブロック暗号文とを連結して暗号文を生成し、
    生成された2つの暗号文における左ブロックのハッシュ値または実際の値を比較し、一致すると判断した場合に、前記2つの暗号文のうち一方の暗号文の左ブロックを削除する
    ことを特徴とする暗号化方法。
  6. 入力ブロックを鍵として生成されるストリーム暗号、または、入力ブロックを入力として固定長入力および可変長出力のハッシュ関数から出力される結果を疑似乱数とする
    請求項5記載の暗号化方法。
  7. 復号の対象となるn-bit 以上の暗号文を、当該暗号文の右端のn-bit の固定長ブロックである暗号文右端ブロックと、前記暗号文から当該暗号文右端ブロックを除いたブロックである暗号文左ブロックとに分割し、
    前記暗号文右端ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号により復号を行うことで、復号された復号ブロックを生成し、
    生成された復号ブロックを用いて、前記暗号文左ブロックと等しい長さの疑似乱数を生成し、
    暗号学的ハッシュ関数を用いて、前記疑似乱数と前記暗号文左ブロックとの排他的論理和についてのハッシュ値を算出し、
    前記疑似乱数と前記暗号文左ブロックとの排他的論理和と、前記ハッシュ値と前記復号ブロックとの排他的論理和とを連結した結果を復号結果の平文として生成する
    ことを特徴とする復号方法。
  8. 復号ブロックを鍵として生成されるストリーム暗号、または、復号ブロックを入力として固定長入力および可変長出力のハッシュ関数から出力される結果を疑似乱数とする
    請求項7記載の復号方法。
  9. コンピュータに、
    暗号化の対象となるn-bit 以上の平文を、当該平文の右端のn-bit の固定長ブロックである右端ブロックと、前記平文から当該右端ブロックを除いたブロックである左ブロックとに分割する平文分割処理、
    暗号学的ハッシュ関数を用いて、前記左ブロックについてn-bit ハッシュ値を算出する第一ハッシュ値算出処理、
    前記第一ハッシュ値算出処理で算出されたハッシュ値と前記右端ブロックとの排他的論理和を入力ブロックとして、前記左ブロックと等しい長さの疑似乱数を生成する暗号化用疑似乱数生成処理、
    前記入力ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号化を行うことで、暗号化されたn-bit のブロック暗号文を生成する共通鍵ブロック暗号化処理、
    前記疑似乱数と前記左ブロックとの排他的論理和と、前記ブロック暗号文とを連結して暗号文を生成する暗号文生成処理、および、
    前記暗号文生成処理で生成された2つの暗号文における左ブロックのハッシュ値または実際の値を比較し、一致すると判断した場合に、前記2つの暗号文のうち一方の暗号文の左ブロックを削除する重複排除処理
    を実行させるための暗号化プログラム。
  10. コンピュータに、
    復号の対象となるn-bit 以上の暗号文を、当該暗号文の右端のn-bit の固定長ブロックである暗号文右端ブロックと、前記暗号文から当該暗号文右端ブロックを除いたブロックである暗号文左ブロックとに分割する暗号文分割処理、
    前記暗号文右端ブロックについて、秘密鍵を用いたn-bit 共通鍵ブロック暗号により復号を行うことで、復号された復号ブロックを生成する共通鍵ブロック復号処理、
    前記共通鍵ブロック復号処理で生成された復号ブロックを用いて、前記暗号文左ブロックと等しい長さの疑似乱数を生成する復号用疑似乱数生成処理、
    暗号学的ハッシュ関数を用いて、前記疑似乱数と前記暗号文左ブロックとの排他的論理和についてのハッシュ値を算出する第二ハッシュ値算出処理、および、
    前記疑似乱数と前記暗号文左ブロックとの排他的論理和と、前記ハッシュ値と前記復号ブロックとの排他的論理和とを連結した結果を復号結果の平文として生成する平文生成処理
    を実行させるための復号プログラム。
JP2013147269A 2013-07-16 2013-07-16 暗号化装置、復号装置、暗号化方法および暗号化プログラム Active JP6171649B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013147269A JP6171649B2 (ja) 2013-07-16 2013-07-16 暗号化装置、復号装置、暗号化方法および暗号化プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013147269A JP6171649B2 (ja) 2013-07-16 2013-07-16 暗号化装置、復号装置、暗号化方法および暗号化プログラム

Publications (2)

Publication Number Publication Date
JP2015022318A JP2015022318A (ja) 2015-02-02
JP6171649B2 true JP6171649B2 (ja) 2017-08-02

Family

ID=52486763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013147269A Active JP6171649B2 (ja) 2013-07-16 2013-07-16 暗号化装置、復号装置、暗号化方法および暗号化プログラム

Country Status (1)

Country Link
JP (1) JP6171649B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102565005B1 (ko) * 2016-08-04 2023-08-07 에스케이하이닉스 주식회사 저항 변화 메모리의 수명 연장 방법 및 그 방법을 이용하는 데이터 저장 시스템
US10277395B2 (en) * 2017-05-19 2019-04-30 International Business Machines Corporation Cryptographic key-generation with application to data deduplication
KR102643708B1 (ko) * 2017-06-09 2024-03-04 오피이 엘엘씨 아날로그 콤포넌트를 갖는 데이터 보안 장치
JP6462968B1 (ja) 2018-01-17 2019-01-30 三菱電機株式会社 データ管理装置、データ管理方法及びデータ管理プログラム
JP7147840B2 (ja) * 2018-03-26 2022-10-05 日本電信電話株式会社 秘密重複排除フィルタ生成システム、秘密重複排除システム、これらの方法、秘密計算装置及びプログラム
US10942906B2 (en) 2018-05-31 2021-03-09 Salesforce.Com, Inc. Detect duplicates with exact and fuzzy matching on encrypted match indexes
CN110059055B (zh) * 2019-03-28 2022-04-29 深圳紫晶存储科技有限公司 一种基于分布式私有云的文件存储及读取方法及装置
CN112187948B (zh) * 2020-10-09 2023-04-25 中国农业银行股份有限公司四川省分行 一种基于SpringBoot框架的审批文件加密批量上传方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428751B2 (en) * 2002-12-05 2008-09-23 Microsoft Corporation Secure recovery in a serverless distributed file system
US20080253561A1 (en) * 2004-12-17 2008-10-16 Nec Corporation Common-Key Block Encryption Device Common-Key Block Encryption Method, and Common-Key Block Encryption Program

Also Published As

Publication number Publication date
JP2015022318A (ja) 2015-02-02

Similar Documents

Publication Publication Date Title
JP6171649B2 (ja) 暗号化装置、復号装置、暗号化方法および暗号化プログラム
AU2011363942B2 (en) Method and system for protecting execution of cryptographic hash functions
US8218759B2 (en) System and method for encrypting data
KR101847492B1 (ko) 데이터 암호화 장치 및 방법, 데이터 복호화 장치 및 방법
JP6035459B2 (ja) 暗号化装置、復号化装置、及びプログラム
WO2014007347A1 (ja) 共有秘密鍵生成装置、暗号化装置、復号化装置、共有秘密鍵生成方法、暗号化方法、復号化方法、及びプログラム
JP6386198B1 (ja) 暗号化装置及び復号装置
JP2015158665A (ja) 形態保存暗号化のための可変長ブロック暗号装置および方法
WO2016088453A1 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
JPWO2016063344A1 (ja) サーバ装置及び検索システム及び端末装置及び検索方法及びサーバプログラム及び端末プログラム
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
WO2013065241A1 (ja) インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置
JP7347501B2 (ja) Macタグリスト生成装置、macタグリスト検証装置、方法及びプログラム
JP5732429B2 (ja) 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム
JPWO2019225735A1 (ja) データ処理装置、方法及びコンピュータプログラム
JP5113630B2 (ja) 秘密分散方法、プログラム、及び装置
KR20080044150A (ko) 블록암호 해쉬 운영모드의 압축함수 설계 장치 및 방법
JP2014178379A (ja) 暗号化データ演算システム、装置及びプログラム
KR101583285B1 (ko) 확장 키를 이용한 블록 암호화 방법 및 그 방법에 따른 장치
WO2015173905A1 (ja) 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム
Khalaf et al. Subject Review: Comparison between RSA, ECC & NTRU Algorithms
Chang et al. Research and implementation of file encryption and decryption
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム
KR20150114782A (ko) 포멧유지 컴포넌트 기반 포멧유지암호화 방법
KRUPARAO et al. A Survey on of Enhanced Aggregated Key Cryptosystem for Scalable Data Sharing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160602

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170529

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170619

R150 Certificate of patent or registration of utility model

Ref document number: 6171649

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150