特許第5835326号(P5835326)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧
特許5835326暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム
<>
  • 特許5835326-暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム 図000002
  • 特許5835326-暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム 図000003
  • 特許5835326-暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム 図000004
  • 特許5835326-暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム 図000005
  • 特許5835326-暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム 図000006
  • 特許5835326-暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム 図000007
  • 特許5835326-暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム 図000008
  • 特許5835326-暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム 図000009
  • 特許5835326-暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5835326
(24)【登録日】2015年11月13日
(45)【発行日】2015年12月24日
(54)【発明の名称】暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20151203BHJP
   G06F 17/30 20060101ALI20151203BHJP
   H04L 9/10 20060101ALI20151203BHJP
【FI】
   G09C1/00 660D
   G06F17/30 120A
   H04L9/00 621A
【請求項の数】7
【全頁数】22
(21)【出願番号】特願2013-522545(P2013-522545)
(86)(22)【出願日】2012年5月29日
(86)【国際出願番号】JP2012063765
(87)【国際公開番号】WO2013005505
(87)【国際公開日】20130110
【審査請求日】2015年4月9日
(31)【優先権主張番号】特願2011-149520(P2011-149520)
(32)【優先日】2011年7月5日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100079164
【弁理士】
【氏名又は名称】高橋 勇
(72)【発明者】
【氏名】古川 潤
【審査官】 金沢 史明
(56)【参考文献】
【文献】 米国特許出願公開第2008/0282096(US,A1)
【文献】 Alexandra BOLDYREVA, et al.,Order-Preserving Symmetric Encryption,Proceedings of EUROCRYPT 2009,2009年,pp. 225-242
【文献】 五十嵐大 他,軽量検証可能3パーティ秘匿関数計算の効率化及びこれを用いたセキュアなデータベース処理,2011年暗号と情報セキュリティシンポジウム予稿集(CD-ROM),2011年 1月25日,2C3-6
【文献】 古川潤,暗号化データベースにおける範囲検索,2012年暗号と情報セキュリティシンポジウム予稿集(CD-ROM),2012年 1月30日,3D1-2
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
G06F 17/30
H04L 9/10
JSTPlus/JMEDPlus/JST7580(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
数値としての平文及びこれに対応する識別子を入力値として予め設定された第1のハッシュ関数による計算により導出鍵を算出する鍵算出部と、
前記識別子および前記導出鍵を入力値として前記第1のハッシュ関数による計算によって前記識別子を暗号化した識別子別暗号文を生成する識別子別暗号文生成部と、
前記導出鍵および前記平文を入力値として予め設定された第2のハッシュ関数による計算を行うことにより前記平文と他の平文との大小比較判定用の値である相対値e,e’を生成する相対値生成部と、
前記導出鍵および前記識別子と前記相対値とを入力値として前記第2のハッシュ関数による計算により前記相対値を暗号化した相対値暗号文を生成する相対値暗号文隠蔽部とを具備すると共に、
前記識別子別暗号文と前記相対値暗号文とから成る文字列を前記平文に対する暗号文として生成し出力する暗号文生成出力機能を備えていることを特徴とした暗号化装置。
【請求項2】
請求項1に記載の暗号化装置において、
前記識別子別暗号文生成は、ある整数nについて、1からnまでの任意の整数kに関して、前記導出鍵のk番目のブロックと前記識別子とから前記識別子別暗号文のk番目のブロック値を生成する機能を有し、
前記相対値生成部は、前記識別子別暗号文が有するn個の各データブロック列それぞれの値に対応したk番目のブロック値を、前記相対値として生成する相対値生成機能を備えていることを特徴とした暗号化装置。
【請求項3】
請求項1に記載の暗号化装置と、この暗号化装置が異なる各平文に対応して生成した第1の暗号文および第2の暗号文を取り込む比較処理装置とを備え、
この比較処理装置が、
前記第1および第2の各暗号文それぞれに対応して設定された前記識別子および導出鍵を入力値として前記第2のハッシュ関数に基づく計算を行い前記各平文に対応した前記相対値e,e’を各別に復元する相対値復元部と、
前記異なる平文それぞれに対応した相対値の大小比較を行うことにより前記異なる平文の大小判定を行う大小比較判定機能を備えた相対値比較判定部とを有することを特徴とした暗号文比較システム。
【請求項4】
請求項3に記載の暗号文比較システムにおいて、
前記比較処理装置の比較部は、前記識別子別暗号分c,c’におけるカウンタ値で異なる値が最初に現れるカウンタ値jを最大不一致カウンタ値jとして特定する最大不一致カウンタ決定部を、予め装備すると共に、
前記比較処理装置の相対値復元部は、各相対値e,e’の復元に際しては、前記最大不一致カウンタ値jおよび各相対値を含む前記第2のハッシュ関数にかかる相対値暗号文の関数の成立有無を判定すると共に、当該関数が成立する場合の当該各相対値e,e’の組を生成すると共に、これを復元した相対値として出力することを特徴とした暗号文比較システム。
【請求項5】
請求項4に記載の暗号文比較システムにおいて、
前記相対値比較判定部は、
前記相対値復元部から出力される識別子IDの相対値eと識別子ID’の相対値e’との差を演算する相対値差演算機能と、
識別子IDの文書Mが識別子ID’の文書Nよりも大きいと判定された場合に「文書M>文書N」を示す判定結果の記号として「0」を出力すると共に、識別子ID’の文書Nが識別子IDの文書Mより大きいいと判定された場合に「文書N>文書M」を示す判定結果の記号として「1」を出力する判定結果出力機能とを備えていることを特徴とした暗号文比較システム。
【請求項6】
異なる数値としての複数の平文それぞれを暗号化する暗号化装置と、この暗号化装置が異なる各平文に対応して生成した第1の暗号文および第2の暗号文を取り込んで両文書の大小を比較処理する比較処理装置とを備えた暗号文比較システムにあって、
数値としての平文及びこれに対応する識別子を入力値として予め設定された第1のハッシュ関数による計算により導出鍵を算出し、
前記識別子および前記導出鍵を入力値として前記第1のハッシュ関数による計算によって前記識別子を暗号化した識別子別暗号文を生成し、
前記導出鍵および前記平文を入力値として予め設定された第2のハッシュ関数による計算を行うことにより前記平文と他の平文との大小比較判定用の値である相対値を生成し、
前記導出鍵,前記識別子,及び前記相対値を入力値として前記第2のハッシュ関数による計算にて前記相対値を暗号化した相対値暗号文を生成し、
前記識別子別暗号文と前記相対値暗号文から成る文字列を、前記平文の暗号文として生成して出力すると共に、
上記各工程内容を前記暗号文比較システムが備えている暗号化装置が実行し、
前記他の平文に対応して生成した第2の暗号文と前記第1の暗号文とを入力として受けた場合に、前記第1および第2の暗号文それぞれにおける識別子および導出鍵に基づく前記第2のハッシュ関数による計算にて前記平文および前記他の平文それぞれに対応した前記相対値を復元し、
前記平文と前記他の平文のそれぞれに対応した相対値の大小比較を行うことにより前記平文の大小判定を行うようにし、
これら各処理工程を前記暗号文比較システムが備えている比較処理装置が実行するようにしたことを特徴とする暗号文比較方法。
【請求項7】
異なる数値としての複数の平文それぞれを暗号化する暗号化装置と、この暗号化装置が異なる各平文に対応して生成した第1の暗号文および第2の暗号文を取り込んで両文書の大小を比較処理する比較処理装置とを備えた暗号文比較システムにあって、
数値としての平文及びこれに対応する識別子を入力値として予め設定された第1のハッシュ関数による計算により導出鍵を算出する鍵算出機能、
前記識別子および前記導出鍵を入力値として前記第1のハッシュ関数による計算によって前記識別子を暗号化した識別子別暗号文を生成する識別子別暗号文生成機能、
前記導出鍵および前記平文を入力値として予め設定された第2のハッシュ関数による計算を行うことにより前記平文と他の平文との大小比較判定用の値である相対値を生成する相対値生成機能、
前記導出鍵及び前記識別子と前記相対値とを入力値とした前記第2のハッシュ関数による計算により前記相対値を暗号化した相対値暗号文を生成する相対値暗号文生成機能、
および前記識別子別暗号文と前記相対値暗号文から成る前記平文と他の平文とについてその大小比較判定用の各文字列を生成する暗号文生成機能、
を設け、これらの各機能を前記暗号化装置が備えているコンピュータに実現させるようにしたことを特徴とする暗号文比較プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、数値データの暗号化を行う暗号化装置に関し、特に、暗号化装置により暗号化した異なる数値データの大小評価するための暗号文比較システムに関する。
【背景技術】
【0002】
データベースには検索対象としての多数の数値データが記憶されており、データベースシステムでは、利用者からの要求に対する数値データの検索、抽出等の処理を行う。
【0003】
例えば、社外秘の数値データを記憶管理するデータベースにおいては、正規ユーザ以外の第3者ユーザに対するデータの漏洩等を抑制するために、データベースに記憶された数値データを暗号化している。データベースの構成要素である各数値データが暗号化されている場合、第3者ユーザに対しては、元の数値データそのものを、ある程度隠匿することは可能である。
【0004】
しかしながら、例えば、数値データが暗号化された暗号文Iについて、暗号化された他の暗号文IIと比べた場合、両暗号文に含まれる文字列を比較することにより、暗号文IおよびIIのそれぞれに対応する元の数値データの大小関係の判別ができてしまうという不都合がある。
また、様々な比較対象データを利用して大小関係の比較処理を繰り返し行うことにより、暗号化に利用された鍵に関する知識を全く持たない利用者からでも、暗号文に対応する数値データそのものが特定されてしまうという不都合がある。
【0005】
具体的には、様々な属性を持つタプルの集合であるテーブル情報(表)を有するデータベースシステムの運用において、ユーザから特定の属性を有する、ある数より大きい(あるいは小さい)数値のタプルを抽出することが要求された場合に、データベースシステム側では、暗号化に使われた鍵を知らずとも、暗号化された数値の大小を判定することが可能であるため、利用者の要求に応えることができる。
【0006】
また、数値データが暗号化されたタプルで対象の暗号文と他の暗号文とに含まれる接頭における一定数の文字列の一致を知ることができる場合、暗号文の大小を直接判別することができない場合がある。
この場合、暗号文に含まれる接頭の文字列が一致する候補となるタプルの暗号文をテーブル情報から全て抽出しなければならず、所望の数値データを確実に抽出することができない。
【0007】
更に、データベースにおけるテーブル情報では、暗号化の前後でデータの順序が保存されるため、暗号文から平文の数値の大きさが推察されてしまうといった不都合がある。
【0008】
これに対する公知の関連技術として、データベースに格納された数値データの暗号化を行う手法が知られている(非特許文献1)。この公知の関連技術では、平文としてのある数値Mと鍵Kとが与えられたとき、暗号文Cはある暗号化関数ENCを用いて、C=ENC(K、M)として生成される。
また、このとき2つの数MとM’(任意のM>M’とする)に関して、ENC(K、M)>ENC(K、M’)が成り立つ。
【0009】
すなわち、C=ENC(K、M)と、C’=ENC(K、M’)とが与えられると、CやC’を復号することなく、MおよびM’の大小関係を判別することができる。
【0010】
又、暗号化された数値の大小比較方法として、非特許文献2に開示されている手法が知られている。
この非特許文献2に開示されている手法は、共通鍵暗号の一種であるが、これは、M=(b[1],・・・,b[N])のように、複数のブロックに分割して表現される平文である文書M(100)を暗号化して、C=(C[1],C[2],・・・,C[n])のように複数のブロックからなる暗号文101を生成するもので、図8乃至図9に、その内容が開示されている。
【0011】
この場合、比較される二つの平文が、もし最初のk個まで同一である場合、それらの暗号文も最初のk個までのブロックは等しいものとなる。このため、部分的な一致を暗号文のまま判別できてしまうため、あるkに関して最初のk個のブロックが二つの平文で一致するとき、一致する接頭がある、あるいはk個の接頭が一致する。
【0012】
また、図8にあって、鍵K105、平文としての文書M100が、M=(b[1],・・・,b[N])として与えられたとき、この非特許文献2では、暗号文C101を生成する暗号方式が開示されている。ここで、C[0]=0とする。
【0013】
そして、この関連技術では、i=1,2,・・・,Nに関してb[i]を選び出し、鍵K105と暗号文のi−1番目のブロック107も併せて利用し、ハッシュ関数等で実現される導出装置104を再帰的に用いて、暗号文のi番目のブロックC[i]106をハッシュ関数(Hash)を利用して計算する。
【0014】
ここで、C[i]=Hash(K、(C[i−1]、b[i]))とする。
又、暗号文C101を、C=(C[1],・・・,C[N])とする。
【0015】
更に、暗号文Cの最初のk個のブロックを、Cの接頭kブロックと呼びC[k]で表すと、
C[k]=(C[1],・・・,C[k])となる。
【0016】
ここで、本暗号方式を使って暗号文の順序を比較する。
特に複数の数の暗号文の集合から、ある数値aより小さな数の暗号文を復号することなく全て選び出したい場合、あるkに関して、aより小さな数とk個の接頭が一致するが、aより大きな数とはk個の接頭は一致しない数の、暗号文Cの接頭kブロックC[k]全ての集合を、P(a)とする。
【0017】
そして、この集合の大きさはaより小さい数の個数より小さい鍵を保持するものがP(a)を生成して、複数の暗号文の集合を保持するものに渡せば、後者は暗号文を復号することなく、その所持する暗号文の集合から、aより小さな数の暗号文を選び出すことが可能となってしまう。
【先行技術文献】
【非特許文献】
【0018】
【非特許文献1】AlexandraBoldyreva, Nathan Chenette, Younho Lee, Adam O'Neill: Order-PreservingSymmetric Encryption. EUROCRYPT 2009: 224-241
【非特許文献2】GeorgiosAmanatidis, Alexandra Boldyreva, Adam O'Neill: Provably-Secure Schemes forBasic Query Support in Outsourced Databases. DBSec 2007: 14-30
【発明の概要】
【発明が解決しようとする課題】
【0019】
しかしながら、上記非特許文献1に開示された関連技術では、正規の利用者からの数値データ要求がない場合でも、暗号化されたデータをデコードすることなくその平文データの大小比較を行うことができてしまう。
このため、データベースにおける数値データが適切に暗号化されている場合でも、数値データに対する不正な検索処理や、データベースにおける特定の数値データが取得され、これにより、データベースの数値データが漏洩してしまうという不都合がある。
【0020】
また、上記非特許文献2では、異なる暗号文の接頭が一致することは、暗号化のための鍵を保持せずとも(つまり、暗号化のための鍵を知らなくても)、暗号文同士を比較することができるため、これをデータベースに対して利用した場合、データベースから接頭の文字列が一致する数値データが漏洩してしまうという不都合が生じ得る。
【0021】
[発明の目的]
本発明は、上記関連技術の有する不都合を改善し、暗号化された数値データの隠匿性を維持しつつ元の数値データの大小判定を行うことを可能とする暗号化装置、暗号文比較システム、暗号文比較方法、暗号文比較プログラムを提供することを、その目的とする。
【課題を解決するための手段】
【0022】
上記目的を達成するために、本発明に係る暗号化装置は、数値としての平文及びこれに対応する識別子を入力値として予め設定された第1のハッシュ関数による計算により導出鍵を算出する鍵算出部と、前記識別子および前記導出鍵を入力値として前記第1のハッシュ関数による計算によって前記識別子を暗号化した識別子別暗号文を生成する識別子別暗号文生成部と、前記導出鍵および前記平文を入力値として予め設定された第2のハッシュ関数による計算を行うことにより前記平文と他の平文との大小比較判定用の値である相対値を生成する相対値生成部と、前記導出鍵および前記識別子と前記相対値とを入力値として前記第2のハッシュ関数による計算により前記相対値を暗号化した相対値暗号文を生成する相対値暗号文隠蔽部307とを具備すると共に、前記識別子別暗号文と前記相対値暗号文とから成る文字列を前記平文に対する暗号文として生成し出力する暗号文生成出力機能506Aを備えていることを特徴としている。
【0023】
また、上記目的を達成するために、本発明にかかる暗号文比較システムは、上気した暗号化装置と、この暗号化装置が異なる各平文に対応して生成した第1の暗号文および第2の暗号文を取り込む比較処理装置とを備え、
この比較処理装置が、前記第1および第2の各暗号文それぞれに対応して設定された前記識別子および導出鍵を入力値として前記第2のハッシュ関数に基づく計算を行い前記各平文に対応した前記相対値e,e, を各別に復元する相対値復元部と、前記異なる平文それぞれに対応した相対値の大小比較を行うことにより前記異なる平文の大小判定を行う大小比較判定機能を備えた相対値比較判定部とを有することを特徴としている。
【0024】
又、上記目的を達成するために、本発明にかかる暗号文比較方法は、異なる数値としての複数の平文それぞれを暗号化する暗号化装置と、この暗号化装置が異なる各平文に対応して生成した第1の暗号文および第2の暗号文を取り込んで両文書の大小を比較処理する比較処理装置とを備えた暗号文比較システムにあって、
数値としての平文及びこれに対応する識別子を入力値として予め設定された第1のハッシュ関数による計算により導出鍵を算出し、前記識別子および前記導出鍵を入力値として前記第1のハッシュ関数による計算によって前記識別子を暗号化した識別子別暗号文を生成し、前記導出鍵および前記平文を入力値として予め設定された第2のハッシュ関数による計算を行うことにより前記平文と他の平文との大小比較判定用の値である相対値を生成し、前記導出鍵,前記識別子,及び前記相対値を入力値として前記第2のハッシュ関数による計算にて前記相対値を暗号化した相対値暗号文を生成し、前記識別子別暗号文と前記相対値暗号文から成る文字列を、前記平文の暗号文として生成して出力すると共に、上記各工程内容を前記暗号文比較システムが備えている暗号化装置が実行し、
前記他の平文に対応して生成した第2の暗号文と前記第1の暗号文とを入力として受けた場合に、前記第1および第2の暗号文それぞれにおける識別子および導出鍵に基づく前記第2のハッシュ関数による計算にて前記平文および前記他の平文それぞれに対応した前記相対値を復元し、前記平文と前記他の平文のそれぞれに対応した相対値の大小比較を行うことにより前記平文の大小判定を行うようにし、
これら各処理工程を前記暗号文比較システムが備えている比較処理装置が実行するようにしたことを特徴としている。
【0025】
又、本発明にかかる暗号文比較プログラムは、異なる数値としての複数の平文それぞれを暗号化する暗号化装置と、この暗号化装置が異なる各平文に対応して生成した第1の暗号文および第2の暗号文を取り込んで両文書の大小を比較処理する比較処理装置とを備えた暗号文比較システムにあって、
数値としての平文及びこれに対応する識別子を入力値として予め設定された第1のハッシュ関数による計算により導出鍵を算出する鍵算出機能、
前記識別子および前記導出鍵を入力値として前記第1のハッシュ関数による計算によって前記識別子を暗号化した識別子別暗号文を生成する識別子別暗号文生成機能、
前記導出鍵および前記平文を入力値として予め設定された第2のハッシュ関数による計算を行うことにより前記平文と他の平文との大小比較判定用の値である相対値を生成する相対値生成機能、
前記導出鍵及び前記識別子と前記相対値とを入力値とした前記第2のハッシュ関数による計算により前記相対値を暗号化した相対値暗号文を生成する相対値暗号文生成機能、
および前記識別子別暗号文と前記相対値暗号文から成る前記平文と他の平文とについてその大小比較判定用の各文字列を生成する暗号文生成機能、
を設け、これらの各機能を前記暗号化装置が備えているコンピュータに実現させるようにしたことを特徴としている。
【発明の効果】
【0026】
本発明は、以上のように構成され機能するので、これによると、平文としての数値データと鍵情報から数値データの相対値を生成する手段と、異なる暗号文それぞれに対応した相対値を復元する手段とを備えた構成としたことにより、暗号化された平文である異なる数値データの隠匿性を維持しつつ数値データの大小比較を行うことを可能とする暗号化装置、暗号文比較システム、暗号文比較方法、暗号文比較プログラムを提供することができる。
【図面の簡単な説明】
【0027】
図1】本実施形態にかかる暗号文比較システムの一実施形態を示すブロック図である。
図2図1に開示した暗号文比較システムにおける暗号化装置(装置A)の導出鍵生成機能の動作内容を示す説明図である。
図3図1に開示した暗号文比較システムにおける暗号化装置(装置A)の暗号文生成機能の動作内容を示す説明図である。
図4図1に開示した暗号文比較システムにおける比較処理装置(装置B)の比較判定部の動作内容を示す説明図である。
図5図1に開示した暗号文比較システムにおける導出鍵を生成するための動作処理ステップを示すフローチャートである。
図6図1に開示した暗号文比較システムにおける暗号文を生成するための動作処理ステップを示すフローチャートである。
図7図1に開示した暗号文比較システムにおける相対値を復元し比較する動作処理ステップを示すフローチャートである。
図8図1に開示した暗号文比較システムの公知の関連技術における暗号文を生成処理するためのブロック図である。
図9図1に開示した暗号文比較システムの公知の関連技術における暗号文を生成する動作内容を示すフローチャートである。
【発明を実施するための形態】
【0028】
[実施形態]
次に、本発明に係る暗号文比較システムの実施形態を、図1乃至図7に基づいて説明する。
最初に、本実施形態における基本形な構成内容を説明し、その後に具体的内容を説明する。
【0029】
図1乃至図4に示すように、本実施形態における暗号文比較システムは、暗号化対象の数値データである文書M(平文)502,この文書M502に対応して設定された識別子ID503,および文書502を暗号化する際に利用するマスターデータキーである主鍵501を入力項目として取得したときに、これらに基づき上記文書M502を暗号化した暗号文C508を生成する暗号化装置(装置A)510と、この暗号化装置510から送り込まれた暗号文C508と予め設定された他の暗号文C’512とを取得した場合に暗号文C508の平文である文書(M)502と暗号文512の平文である文書(N)との大小比較処理を行う比較処理装置(装置B)514とを備えた構成を有する。
【0030】
ここで、暗号文C’512は、当該暗号文C’512に対応して予め設定された識別子ID’511と共に、比較処理装置(装置B)514に外部入力されるものとする。
【0031】
上記装置A510および装置B514は、それぞれCPU(中央演算部)、半導体メモリなどの主記憶部およびHDDなどの記憶装置を備え、プログラム制御によってデータ処理を行うサーバ装置や端末装置などのコンピュータであるものとする。
又、この装置Bは大小比較処理の判定結果を出力表示するためのディスプレイ装置を備えているものとする。
尚、この暗号文比較システムは、上記装置Aおよび装置Bの実行内容を単一のコンピュータにより実現するように構成してもよい。
【0032】
暗号化装置(装置A)510は、図1に示すように、利用者により入力された主鍵501および文書M502に基づき導出鍵505を生成する導出鍵生成部504と、利用者により外部入力される主鍵501,文書502,識別子ID503と、導出鍵生成部504によって生成された導出鍵505とに基づき文書M502に対応する暗号文508を生成する暗号文生成部506を備えている。
【0033】
この装置A510の暗号文生成部506は、図3に示すように、入力された値に基づき第1のハッシュ関数(Hash)を利用した計算を行うことにより識別子別暗号文cを算出する識別子別暗号文生成部303と、第2のハッシュ関数(Hash3)を利用した計算を行うことにより相対値e306を算出する相対値生成部305と、相対値e306を第2のハッシュ関数(Hash3)を利用した暗号化を行うことにより相対値暗号文f308を生成する相対値隠蔽部307とを備え、上記算出された識別子別暗号文c304および相対値暗号文f308から成る暗号文Cを生成し出力する暗号文生成出力部506Aとを備えている。
【0034】
尚、装置A510に対して入力される各文書(例えば、文書M)には、それぞれに対応した識別子IDが割り当てられているものとする。以下、識別子IDと文書Mの組を(ID,M)とする。
【0035】
以下、これを詳説する。
暗号化装置(装置A)510の導出鍵生成部504は、入力された文書Mを二進展開する。これにより、文書Mは、下記に示す(式1)の形式で表される。
M=Σi=1nb[i]2i ・・・(式1)
尚、この(式1)におけるnは文書Mのビット長を示すものとする。
ここで、(式1)におけるb[i]を、b[i]∈{0,1}とする。また、文書Mは、M=(b[1],b[2],・・・,b[n])、であるものとする。
【0036】
次に、暗号化装置(装置A)510の内部構成について説明する。
この装置A510には、予め設定されたハッシュ関数である第1のハッシュ関数(Hash)、第2のハッシュ関数(Hash3)が記憶されているものとする(図示なし)。ここで、Hash、Hash3はそれぞれkを安全変数として以下に示す式2,3として表される。
Hash:{0,1}×{0,1}* → {0,1} ・・・(式2)
Hash3:{0,1}×{0,1}* → {0,1,2} ・・・(式3)
ここで、K∈{0,1}を主鍵とする。
【0037】
(導出鍵生成機能)
ここで、暗号化装置(装置A)510の導出鍵生成部504が導出鍵D505を生成する機能(導出鍵生成機能)を、図2に基づいて説明する。
この図2では、導出鍵生成部504に対して、主鍵K501、文書M502が入力値として送り込まれた場合を示している。
【0038】
このとき、文書M502は、M=(b[1],b[2],・・・,b[n])、として表されるものとする。
また、導出鍵Dは、D=(d[1],d[2],・・・,d[n])、として表されるものとする。
【0039】
導出鍵生成部504は、上記第1のハッシュ関数(Hash)を利用してd[0]を算出する。ここでは、d[0]=Hash(K,0)とする。
【0040】
また、導出鍵生成部504は、カウンタi=1,2,・・・,nについて、1,2,・・・と昇順にb[i]を選出する(iを対象カウンタとする)b[i]選出部504Aを有すると共に、既に算出された導出鍵Dの接頭ブロックに含まれる(i−1)番目のブロックの値と主鍵K501(図2)とを取得し、これに基づきハッシュ関数を利用した計算(以下に示す式4)を行うことにより導出鍵のi番目のブロックの値を算出するブロック値導出機能504Aと、これを導出鍵Dとして出力する導出鍵出力機能504Cとを有する。
【0041】
d[i]=Hash〔K,(d[i−1],b[i])〕 ・・・(式4)
【0042】
この導出鍵生成部504は、対象カウンタが文書M502のビット長nと等しい値になった場合に(n=i)、生成した導出鍵Dを出力する。
この場合、対象カウンタiの値が文書M502のビット長nより小さい場合(i<n)、導出鍵生成部504は、メモリ上に格納された導出鍵バッファ(図示せず)からd[i−1]の値507を入力値として取得し、上記(式4)に基づいて対象カウンタの値を導出する(導出機能:再帰中の第i回目の動作/導出鍵出力機能504C)。
これを1〜i回目まで再帰的に実行することにより、導出鍵を構成するi番目のブロックd[i]それぞれを算出し、上記した導出鍵Dを生成する。
【0043】
(暗号文生成機能)
次に、上記暗号化装置510の暗号文生成部506が、主鍵K501,文書M502,および導出鍵D505を入力値として与えられた場合の暗号文C508を生成する機能(暗号文生成機能)について、図3に基づき説明する。
ここで、導出鍵D505,文書M502は、それぞれ、
導出鍵D505=(d[1],d[2],・・・,d[n])、
文書M502=(b[1],b[2],・・・,b[n])、
であるものとする。
【0044】
この暗号文生成部506は、暗号化装置510の要部を成すもので、図3に示すように、暗号化された識別子(識別子別暗号文)cを生成する識別子別暗号文生成部303と、平文と他の平文との大小比較判定用の値である相対値eを生成する相対値生成部305と、生成された相対値eに基づいてカウンタ値1〜nそれぞれに対応した相対値暗号文fを算出する相対値隠蔽部307と、前記識別子別暗号文cと前記相対値暗号文fとから成る文字列を前記平文に対する暗号文として生成する暗号文生成出力機能506Aとを備えている。
この内、識別子別暗号文生成部303は、入力値として与えられた識別子ID(図1の識別子ID503に対応)および導出鍵Dに基づき、第1のハッシュ関数(Hash)を利用した計算を行うことにより識別子別暗号文c304を算出する。
ここで、識別子別暗号文c304を構成するc[i]は、カウンタi=1,2,・・・,n、について、c[i]=Hash(ID,d[i])と表される。
【0045】
また、相対値生成部305は、入力値として与えられた主鍵K501,文書M502,および導出鍵D505に基づき、第2のハッシュ関数(Hash3)を利用した計算を行うことにより、相対値e306を算出する。
ここで、相対値e306を構成するe[i]は、カウンタi=1,2,・・・,nについて、e[i]=Hash3(0,K,d[i−1])+b[i]mod3と表される。
【0046】
更に、相対値隠蔽部307は、入力された識別子ID,導出鍵D,および相対値生成部305で生成される相対値e306に基づき、第2のハッシュ関数(Hash3)を利用した計算(式6)により、カウンタ値1〜nそれぞれに対応したf[i]からなる相対値暗号文f308を算出する。
【0047】
ここで、導出鍵Dは、識別子IDに対応して生成されたものとする。また、相対値暗号文fを構成するf[i]は、カウンタi=1,2,・・・,n、について、
f[i]=Hash3(1,ID,d[i−1])+e[i]mod3 ・・・(式6)、と表されるものとする。
【0048】
また、前述した暗号文生成部506は、カウンタi=1,2,・・・,nのそれぞれに対応して算出された識別子別暗号文c304および相対値暗号文f308から成る暗号文C508を生成する。
尚、この暗号文C508は、
C=〔(c[1],c[2],・・・c[n]),(f[1],f[2],・・・,f[n])〕と表される。
【0049】
次に、比較処理装置(装置B)514の内部構成について説明する。
この比較処理装置(装置B)514は、図1に示すように、暗号化装置A510から入力された暗号文C508,識別子ID503,および導出鍵D505を取得し、暗号文C508と予め入力されたID’の暗号文(C’とする)それぞれに対応する平分の大小比較を行う比較部513を備えている。
【0050】
この比較部513は、図4に示すように、暗号文C’に対応した識別子である識別子ID’511と識別子ID503に基づき生成されて成る導出鍵D403に基づいて生成したカウンタ値と、文書Nに対応した識別子別暗号文c’におけるカウンタ値における異なる値が最初に現れるカウンタを特定する最大不一致カウンタ決定部408と、上記特定したカウンタの値に基づき暗号文C、C’それぞれに対応した相対値e、e’を復元する相対値復元部409と、復元された相対値eおよびe’の大小比較を行う相対値比較部411を備えている。
【0051】
(比較判定機能)
次に、装置B514の比較部513が、入力として受けた異なる暗号文(暗号文C508と暗号文C’512)に基づき、この暗号文CおよびC’それぞれに対応した元文書Mおよび文書Nの大小比較判定を行う機能(比較判定機能)について、図4に基づき説明する。
【0052】
図4では、比較部513に対して、文書Mに対応する識別子ID503と、この識別子IDに対応して生成された相対値暗号文fと、識別子ID503に対応して生成された導出鍵D505が入力されたことを示している。
【0053】
尚、上記識別子ID503、相対値暗号文f、および導出鍵D505はそれぞれ識別子ID503(図1)、相対値暗号文(図2)、および導出鍵D505(図1)として装置A(暗号化装置)から送り込まれたものであってもよい。
【0054】
また、比較部513には、図4に示すように、暗号文C508との比較対象である暗号文C’512と、この暗号文C’512の識別子である識別子ID503が入力されている。
【0055】
ここで、比較部513に入力された、相対値暗号文fは、
f=(f[1],f[2],・・・,f[n])、
識別子ID(および、暗号文C)に対応する導出鍵Dは、
D=(d[1],d[2],・・・d[n])、
ID’の暗号文(つまり、暗号文C’)は、
C’=〔(c’[1],c’[2],・・・c’[n]),(f’[1],f’[2],・・・,f’[n])〕、として表されるものとする。
【0056】
又、比較部513は、入力されたID’の暗号文(暗号文C’)を解析し、この暗号文をID’の識別子別暗号文c’と、ID’の相対値暗号文f’とを格別に抽出する。
【0057】
ここで、暗号文C’の識別子別暗号文c’を、
c’=(c’[1],c’[2],・・・,c’[n])、
相対値暗号文f’を、
f’=(f’[1],f’[2],・・・,f’[n])とする。
【0058】
上記比較部513の最大不一致カウンタ決定部408は、導出鍵D、識別子ID’を入力値として取得した場合に、この導出鍵D〔=(d[1],d[2],・・・,d[n])〕と識別子ID’に基づいて、カウンタkについて1からnまで昇順にハッシュ関数(Hash)を利用した計算を行う(Hash(ID’,d[k]))。
ここで、上記最大不一致カウンタ決定部408は、カウンタkについて1からnまでそれぞれ算出した値とID’の識別子別暗号文c’(暗号文C’に対応)とが、カウンタkについてそれぞれ等しいか否かを判定する。尚、識別子ID’は、装置B内に予め設定されていてもよい。
【0059】
具体的には、最大不一致カウンタ決定部408は、以下に示す(式8)の等式がカウンタ1〜nそれぞれ(カウンタk)について成り立つか否かを判定する。
【0060】
c’[k]=Hash(ID’,d[k])・・・(式8)
ここで、最大不一致カウンタ決定部408は、カウンタi=1から昇順に、式8の等式成立の可否を判定し、始めてこの等式(式8)が成り立たなくなったカウンタ値を、最大不一致カウンタj413(図4)として決定する。
【0061】
また、相対値復元部409は、識別子ID、ID’、導出鍵D、および相対値暗号文e,e’それぞれに基づいて、以下に示す相対値暗号文f,f’の(式10)または(式11)が成り立つか否かを判定する。尚、e,e’∈{0,1,2}とする。
【0062】
f[j]=Hash3(1,ID ,d[j−1])+e mod3・・・(式10)
f’[j]=Hash3(1,ID’,d[j−1])+e’mod3・・・(式11)
【0063】
ここで、相対値復元部409は、上記(式10)または(式11)が成り立つeおよびe’から成る相対値の組410を生成する。
【0064】
相対値比較部411は、相対値復元部409から相対値の組(eおよびe’の組)を取得し、この相対値の組について、e−e’=1 mod3が成立する場合は、識別子IDの文書Mが識別子ID’の文書Nより大きいと判定し、「文書M>文書N」を示す記号としての値(例えば0)を判定結果412として出力する。
【0065】
また、相対値比較部411は、相対値復元部409から取得した相対値の組について、e−e’=2 mod3が成立する場合は、識別子ID’の文書Nが識別子IDの文書Mより大きいと判定し、「文書N>文書M」を示す記号としての値(例えば1)を判定結果として出力する。
【0066】
以上のように、本実施形態では、暗号化された異なる複数の暗号文について、暗号文に含まれる文字列からそれぞれの暗号文に対応する平文の大小判定がなされるのを有効に抑制することができる。
このため、暗号文の鍵に関する知識を全く持たない第3者が平文である数値データの大小関係を調べることを有効に抑制することが可能となる。
【0067】
本実施形態の暗号文生成機能では、例えば、同一の平文(文書)に対応する、あるいは接頭部分が一致する平文(文書)に対応する、2つの暗号文が与えられた場合であっても、それぞれに対応する導出鍵の接頭は一致するが、異なる識別子を用いて暗号化がなされるため、両平文の一致、あるいは両平文における接頭の一致が判別できないように暗号化することができる。なお、本願明細書では段落[0035]の「式1」の記載の通り、位の小さいものから順番に左から右にビットを並べる表記を採用するので、ここでいう「接頭」とは位の小さい側のビットを意味する。
【0068】
また、装置Bにおける復元判定機能では、ある暗号文(C)と、この暗号文に対応する導出鍵とが与えられた場合に、他の暗号文(C’)と暗号文(C)とでそれらの対応する平文の接頭が一致するか否かを判別することができる。
【0069】
また、2つのカウンタk個まで接頭の文字列が一致する平文の暗号文と、それぞれに対応する導出鍵が与えられた場合に、k以下のカウンタiについては、文書(平文)の二進展開要素であるb[i]が一致するため、e[i]とd[i]とf[i]も一致し、その反面、f[k+1]に関しては一致しないことから、二つのf[k+1]の値から両者の大小を判定することが可能となる。
【0070】
ここでは、二つのf[i]が一致しない場合に、それらの値から二つのb[i]を決定することができ、f[i]が一致した場合には、この値からb[i]を決定することができない。すなわち、接頭がkで一致する2つの平文の暗号文それぞれにおけるkブロック目の不一致と大小関係、つまりは、その値を特定することができるが、この場合、k以下番目のブロックにおける値を有効に隠匿することができる。
【0071】
[実施形態の動作説明]
次に、本実施形態である暗号文比較システムに対して、暗号化された文書の大小比較依頼があった場合について、その全体的な動作を説明する。
【0072】
まず、ユーザからの依頼を受けた暗号化装置(装置A)510の導出鍵生成部504は、数値データとしての文書(平文)とこれに対応する識別子IDを入力値としたハッシュ関数による計算により導出鍵Dを算出し(導出鍵算出工程)、この識別子IDと導出鍵Dを入力値とした上記ハッシュ関数による計算によって識別子IDに対応した識別子毎暗号文を生成する(識別子別暗号文生成工程)。
【0073】
また、暗号部生成部506が、上記入力された導出鍵および文書を入力値とした第2のハッシュ関数による計算を行うことにより上記文書と他の文書との大小比較判定用の値としての相対値を生成する(相対値生成工程)。
次いで、暗号部生成部506の相対値隠蔽装置307が前記第2のハッシュ関数を利用した導出鍵、識別子、および相対値を入力値とする計算により、相対値を暗号化した相対値暗号文を生成する(相対値暗号文生成工程)と共に、この識別子毎暗号文と相対値暗号文を含む上記文書の暗号文として生成する(暗号文生成工程)。
【0074】
次に、比較部514が、暗号処理部が他の文書C’に対応して生成した第2の暗号文と第1及び第2の暗号文に対して第1および第2の暗号文それぞれにおける識別子および導出鍵に基づく前記第2のハッシュ関数による計算をおこなうことにより、文書C、文書C’それぞれに対応した相対値を復元する(相対値復元処理工程)。
次いで、比較部513は、平文および前記他の平文それぞれに対応した相対値の大小比較を行うことにより文書CおよびC’の大小判定を行う(大小比較判定処理工程)。
【0075】
ここで、上記識別子毎暗号文生成工程、相対値生成工程、相対値暗号文生成工程、暗号文生成工程、相対値復元処理工程、および大小比較判定処理工程については、その実行内容をプログラム化し、コンピュータに実行させるように構成してもよい。
また、本プログラムは、非一時的な記憶媒体、例えば、DVD、CD、フラッシュメモリなどに記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
【0076】
[導出鍵生成フェーズ]
次に、上記ハッシュ関数を利用して導出鍵Dを生成する動作工程について、図5のフローチャートに基づき説明する。
【0077】
まず、導出鍵生成部504は、主鍵K501、文書M502が入力値として与えられたときに、ハッシュ関数(Hash)を利用してd[0]を算出し、メモリ上に設定した接頭ブロックの値として特定する。ここでは、d[0]=Hash(K,0)、とする(図5:ステップS51/i=0)。
【0078】
尚、文書Mは、M=(b[1],b[2],・・・,b[n])として表される。また、導出鍵Dは、D=(d[1],d[2],・・・,d[n])として表されるものとする。
【0079】
次いで、導出鍵生成部504は、文書Mにおけるカウンタi=1,2,・・・,n、それぞれについて昇順にb[i]の値を抽出する(図5:ステップS52/i=i+1)。
ここで、導出鍵生成部504は、i番目のブロックの値について、メモリ上に設定した接頭ブロックから(i−1)番目のブロックの値を読み込み(図5:ステップS53)、この値と主鍵K501に基づき、ハッシュ関数を利用した計算(以下に示す式4)を行うことにより、導出鍵K501のi番目のブロックの値を算出する(図5:ステップS54/i番目のブロック算出)。
ここで、導出鍵生成部504は、算出したi番目のブロックの値を接頭ブロックに格納する(iブロックを追加)。
【0080】
d[i]=Hash(K,(d[i−1],b[i])) ・・・(式4)
【0081】
次いで、導出鍵生成部504は、文書Mのビット長nと対象ブロックiとが一致するか否かを判定し、一致しない場合に(図5:ステップS55/ノー)、i+1を対象ブロックとして(図5:ステップS52)再帰的に導出鍵を構成する各ブロックを設定する処理を行う(図5:ステップS53〜55)。
【0082】
一方、文書Mのビット長nと対象ブロックiとが一致した場合には(図5:ステップS55/イエス)、導出鍵Dが生成される。
【0083】
[暗号文生成フェーズ]
次に、本実施形態における暗号化装置(装置A)の暗号文生成部506が、文書M502を暗号化した暗号文C508を生成する動作について、図1のブロック図および図6のフローチャートに基づき説明する。
【0084】
ここで、導出鍵D505、および文書M502をそれぞれ、
導出鍵D=(d[1],d[2],・・・,d[n])、
文書M=(b[1],b[2],・・・,b[n])とする。
まず、暗号文生成部506の識別子別暗号文生成部303は、入力値として与えられた識別子ID503および導出鍵D505に基づき、ハッシュ関数(Hash)を利用した計算を行うことにより、識別子別暗号文cを算出する(図6:ステップS61)。
ここで、識別子別暗号文cを構成する各要素c[i]は、カウンタi=1,2,・・・,nについて、c[i]=Hash(ID,d[i])と表されるものとする。
【0085】
次に、相対値生成部305が、入力値として与えられた主鍵K501、文書M502、および導出鍵D505に基づき、第2のハッシュ関数(Hash3)を利用した計算を行うことにより、相対値e(図3に対応)を算出する(図6:ステップS62)。
ここで、相対値306を構成するe[i]は、カウンタi=1,2,・・・,nについて、e[i]=Hash3(0,K,d[i−1])+b[i]mod3
と表される。
【0086】
次いで、相対値隠蔽部307が、入力された識別子ID503、導出鍵D505、および相対値生成部305で生成された相対値e306に基づき、第2のハッシュ関数(Hash3)を利用した計算(式6)により、カウンタ値1〜nそれぞれに対応したf[i]からなる相対値暗号文f308(図3)を算出する(図6:ステップS63)。
【0087】
上記相対値暗号文f308を構成するf[i]は、カウンタi=1,2,・・・,n、について、
f[i]=Hash3(1,ID,d[i−1])+e[i]mod3・・・(式6)
と表されるものとする。
【0088】
また、暗号文生成部506は、カウンタi=1,2,・・・,n、それぞれに対応して算出された識別子別暗号文c304および相対値暗号文f308から成る暗号文Cを生成する。
尚、暗号文C508は、C=〔(c[1],c[2],・・・c[n]),(f[1],f[2],・・・,f[n])〕、と表される。
【0089】
この暗号文生成フェーズでは、例えば、同一の平文(文書)に対応する、あるいは接頭部分が一致する平文(文書)に対応する、2つの暗号文が与えられた場合であっても、それぞれに対応する導出鍵の接頭は一致するが、異なる識別子を用いて暗号化がなされるため、両平文の一致、あるいは両平文における接頭の一致が判別できないように暗号化することができる。
【0090】
[比較判定フェーズ]
次に、本実施形態における比較処理装置(装置B)514が、暗号文CおよびC’に基づき文書Mおよび文書Nの大小比較を行う動作について、図7のフローチャートに基づき説明する。
【0091】
まず、比較処理装置(装置B)514の比較部513には、識別子ID503、識別子ID503に対応して生成された相対値暗号文f308、識別子ID503に対応して生成された導出鍵D505が入力される。
【0092】
また、この比較部513には、暗号文Cに対する比較対象としての暗号文C’が予め設定されており、この暗号文C’の識別子である識別子ID’と、この識別子ID’511に対応する暗号文C’(ID’の暗号文)とが比較部513に入力されるものとする(図7:ステップS71)。
【0093】
尚、相対値暗号文fは、
f=(f[1],f[2],・・・,f[n])、
識別子ID(および、暗号文C)に対応する導出鍵D505は、
D=(d[1],d[2],・・・d[n])、
ID’の暗号文(暗号文C’)は、
C’=〔(c’[1],c’[2],・・・c’[n]),(f’[1],f’[2],・・・,f’[n])〕、として表されるものとする。
【0094】
上記比較部513は、入力されたID’の暗号文(暗号文C’)を解析し、この暗号文C’をID’の識別子別暗号文c’と、ID’の相対値暗号文f’とを格別に抽出する(図7:ステップS71)。
ここで、は暗号文C’の識別子別暗号文c’を、
c’=(c’[1],c’[2],・・・,c’[n])、
相対値暗号文f’を、
f’=(f’[1],f’[2],・・・,f’[n])、とする。
【0095】
次いで、最大不一致カウンタ決定部408(図4)が、導出鍵D505、識別子ID’511を入力値として取得した場合に、この導出鍵Dと識別子ID’に基づいて、カウンタkについて1からnまで昇順にハッシュ関数(Hash)を利用した計算を行う(Hash(ID’,d[k]))。
ここで、最大不一致カウンタ決定部408は、カウンタkについて1からnまでそれぞれ算出した値とID’の識別子別暗号文cとが、カウンタkについてそれぞれ等しいか否かを判定する。尚、識別子ID’は、装置B内に予め設定されていてもよい。
【0096】
具体的には、最大不一致カウンタ決定部408は、以下に示す(式8)の等式がカウンタ1〜nそれぞれ(カウンタk)について成り立つか否かを判定する。
【0097】
c’[k]=Hash(ID’,d[k])・・・(式8)
ここで、最大不一致カウンタ決定部408は、カウンタ1から昇順に等式成立の可否を判定し、始めてこの等式(式8)が成り立たなくなったカウンタ値kを最大不一致カウンタj(413:図4)として決定する(図7:ステップS72)。
【0098】
次いで、相対値復元部409が、識別子ID、ID’、導出鍵D、および相対値暗号文f,f’それぞれに基づいて、以下に示す(式10)または(式11)が成り立つか否かを判定し、これに基づき相対値e,e’を復元する。ここで、e,e’∈{0,1,2}とする。
【0099】
f[j]=Hash3(1,ID ,d[j−1])+e mod3・・・(式10)
f’[j]=Hash3(1,ID’,d[j−1])+e’mod3・・・(式11)
【0100】
又、相対値復元部409は、上記(式10)または(式11)が成り立つ相対値eおよびe’から成る相対値e,e’の組を生成する(図7:ステップS73)。
【0101】
次いで、相対値比較部411は、相対値復元部409から相対値の組(eおよびe’の組)を取得しこれを比較する(図7:ステップS74)。
【0102】
ここで、相対値比較部411は、この相対値の組について、e−e’=1mod3が成立する場合は、識別子IDの文書Mが識別子ID’の文書Nより大きいと判定し、「文書M>文書N」を示す記号としての値(例えば0)を判定結果として出力する(図7:ステップS75)。
【0103】
また、相対値比較部411は、相対値復元部409から取得した相対値の組について、e−e’=2mod3が成立する場合は、識別子ID’の文書Nが識別子IDの文書Mより大きいと判定し、「文書N>文書M」を示す記号としての値(例えば1)を判定結果412として出力する(図7:ステップS75)。
【0104】
以上のように、本実施形態では、数値データが暗号化された暗号文が与えられたときに、これらの暗号文だけからはそれらの元の数値データの大小を比較することを抑制し、且つデータベースに対して正規利用者からある数値の暗号文に関して対応する数値データの大小比較の要求がなされた場合に、暗号かされた異なる暗号文に含まれる文字列から元の数値データと大小の比較を行うことができる。
このため、本実施形態のデータベースシステムでは、データベース利用者は、暗号化される前の数値データを管理者等に知られることなく、データベースに含まれる、特定の暗号化された数値より大きい(又は小さい)数値データを取得することができる。
【0105】
また、本実施形態では、2つの暗号文に含まれる文字列(例えば、接頭文字列)が一致する場合でも、暗号化のための鍵を知らない第3者がこの接頭文字列の一致に基づいて暗号文に対応する平文を探り当てることを有効に抑制することができる。
【0106】
このため、例えば、暗号化キーを知らない第3者が、データベースを構成する数値データと、データベース内の暗号化された数値データとの、数値データ同士の大小関係を利用して特定の数値データを抽出したり、取得したりするのを抑制することができ、これにより、データベースに含まれるデータのセキュリティを有効に高めることができる。
【0107】
上述の実施形態については、その新規な技術的内容の要点をまとめると、以下のようになる。
尚、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【0108】
〔付記1〕
数値としての平文及びこれに対応する識別子を入力値として予め設定された第1のハッシュ関数による計算により導出鍵を算出する鍵算出部504と、
前記識別子および前記導出鍵を入力値として前記第1のハッシュ関数による計算によって前記識別子を暗号化した識別子別暗号文を生成する識別子別暗号文生成部303と、
前記導出鍵および前記平文を入力値として予め設定された第2のハッシュ関数による計算を行うことにより前記平文と他の平文との大小比較判定用の値である相対値e,e’を生成する相対値生成部305と、
前記導出鍵および前記識別子と前記相対値とを入力値として前記第2のハッシュ関数による計算により前記相対値を暗号化した相対値暗号文を生成する相対値暗号文隠蔽部307とを具備すると共に、
前記識別子別暗号文と前記相対値暗号文とから成る文字列を前記平文に対する暗号文として生成し出力する暗号文生成出力機能506Aを備えていることを特徴とした暗号化装置。
【0109】
〔付記2〕
付記1に記載の暗号化装置において、
前記識別子別暗号文生成手段303は、ある整数nについて、1からnまでの任意の整数kに関して、前記導出鍵のk番目のブロックと前記識別子とから前記識別子別暗号文のk番目のブロック値を生成する機能を有し、[0044][0084]
前記相対値生成部305は、前記識別子別暗号文が有するn個の各データブロック列それぞれの値に対応したk番目のブロック値を、前記相対値として生成する相対値生成機能を備えていることを特徴とした暗号化装置。
【0110】
〔付記3〕
付記1に記載の暗号化装置510と、この暗号化装置が異なる各平文に対応して生成した第1の暗号文および第2の暗号文を取り込む比較処理装置514とを備え、
この比較処理装置514が、
前記第1および第2の各暗号文それぞれに対応して設定された前記識別子および導出鍵を入力値として前記第2のハッシュ関数に基づく計算を行い前記各平文に対応した前記相対値e,e’を各別に復元する相対値復元部409と、
前記異なる平文それぞれに対応した相対値の大小比較を行うことにより前記異なる平文の大小判定を行う大小比較判定機能を備えた相対値比較判定部411とを有することを特徴とした暗号文比較システム。
【0111】
〔付記4〕
付記3に記載の暗号文比較システムにおいて、
前記比較処理装置514の比較部513は、前記識別子別暗号分c,c’におけるカウンタ値で異なる値が最初に現れるカウンタ値jを最大不一致カウンタ値jとして特定する最大不一致カウンタ決定部を、予め装備すると共に[0058]〜[0060]、
前記比較部513の相対値復元部409は、各相対値e,e’の復元に際しては、前記最大不一致カウンタ値jおよび各相対値を含む前記第2のハッシュ関数にかかる相対値暗号文の関数の成立有無を判定すると共に、当該関数が成立する場合の当該各相対値e,e’の組を生成すると共に、これを復元した相対値として出力することを特徴とした暗号文比較システム[0061]〜[0063]。
【0112】
〔付記5〕
付記4に記載の暗号文比較システムにおいて、
前記相対値比較判定部411は、
前記相対値復元部409から出力される識別子IDの相対値eと識別子ID’の相対値e’との差を演算する相対値差演算機能と、
識別子IDの文書Mが識別子ID’の文書Nよりも大きいと判定された場合に「文書M>文書N」を示す判定結果の記号として「0」を出力すると共に、識別子ID’の文書Nが識別子IDの文書Mより大きいいと判定された場合に「文書N>文書M」を示す判定結果の記号として「1」を出力する判定結果出力機能とを備えていることを特徴とした暗号文比較システム。[0101]〜[0103]
【0113】
〔付記6〕
異なる数値としての複数の平文それぞれを暗号化する暗号化装置と、この暗号化装置が異なる各平文に対応して生成した第1の暗号文および第2の暗号文を取り込んで両文書の大小を比較処理する比較処理装置とを備えた暗号文比較システムにあって、
数値としての平文及びこれに対応する識別子を入力値として予め設定された第1のハッシュ関数による計算により導出鍵を算出し(導出鍵算出工程)、
前記識別子および前記導出鍵を入力値として前記第1のハッシュ関数による計算によって前記識別子を暗号化した識別子別暗号文を生成し(識別子別暗号文生成工程)、
前記導出鍵および前記平文を入力値として予め設定された第2のハッシュ関数による計算を行うことにより前記平文と他の平文との大小比較判定用の値である相対値を生成し(相対値生成工程)、
前記導出鍵,前記識別子,及び前記相対値を入力値として前記第2のハッシュ関数による計算にて前記相対値を暗号化した相対値暗号文を生成し(相対値暗号文生成工程)、
前記識別子別暗号文と前記相対値暗号文から成る文字列を、前記平文の暗号文として生成して出力すると共に(暗号文生成出力工程)、
上記各工程内容を前記暗号文比較システムが備えている暗号化装置が実行し、
前記他の平文に対応して生成した第2の暗号文と前記第1の暗号文とを入力として受けた場合に、前記第1および第2の暗号文それぞれにおける識別子および導出鍵に基づく前記第2のハッシュ関数による計算にて前記平文および前記他の平文それぞれに対応した前記相対値を復元し(相対値復元処理工程)、
前記平文と前記他の平文のそれぞれに対応した相対値の大小比較を行うことにより前記平文の大小判定を行うようにし(平文大小判定処理工程)、
これら各処理工程を前記暗号文比較システムが備えている比較処理装置が実行するようにしたことを特徴とする暗号文比較方法。
【0114】
〔付記7〕
異なる数値としての複数の平文それぞれを暗号化する暗号化装置と、この暗号化装置が異なる各平文に対応して生成した第1の暗号文および第2の暗号文を取り込んで両文書の大小を比較処理する比較処理装置とを備えた暗号文比較システムにあって、
数値としての平文及びこれに対応する識別子を入力値として予め設定された第1のハッシュ関数による計算により導出鍵を算出する鍵算出機能、
前記識別子および前記導出鍵を入力値として前記第1のハッシュ関数による計算によって前記識別子を暗号化した識別子別暗号文を生成する識別子別暗号文生成機能、
前記導出鍵および前記平文を入力値として予め設定された第2のハッシュ関数による計算を行うことにより前記平文と他の平文との大小比較判定用の値である相対値を生成する相対値生成機能、
前記導出鍵及び前記識別子と前記相対値とを入力値とした前記第2のハッシュ関数による計算により前記相対値を暗号化した相対値暗号文を生成する相対値暗号文生成機能、
および前記識別子別暗号文と前記相対値暗号文から成る前記平文と他の平文とについてその大小比較判定用の各文字列を生成する暗号文生成機能、
を設け、これらの各機能を前記暗号化装置が備えているコンピュータに実現させるようにしたことを特徴とする暗号文比較プログラム。
【0115】
この出願は2011年7月5日に出願された日本出願特願2011−149520を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【0116】
本発明は、正規の利用者以外の第3者利用者や管理者に対して数値データが暗号化されたテーブル情報を管理するデータベースシステムに対して適用することができる。
【符号の説明】
【0117】
303 識別子別暗号文生成部
305 相対値生成部
307 相対値隠蔽部
408 最大不一致カウンタ決定部
409 相対値復元部
411 相対値比較判定部
504 導出鍵生成部(鍵導出部)
506 暗号文生成部
506A 暗号文生成出力機能
510 暗号化装置(装置A)
513 比較部
514 比較処理装置(装置B)
図1
図2
図3
図4
図5
図6
図7
図8
図9