JP5469631B2 - 復号結果検証装置、方法及びプログラム - Google Patents

復号結果検証装置、方法及びプログラム Download PDF

Info

Publication number
JP5469631B2
JP5469631B2 JP2011077726A JP2011077726A JP5469631B2 JP 5469631 B2 JP5469631 B2 JP 5469631B2 JP 2011077726 A JP2011077726 A JP 2011077726A JP 2011077726 A JP2011077726 A JP 2011077726A JP 5469631 B2 JP5469631 B2 JP 5469631B2
Authority
JP
Japan
Prior art keywords
function
decryption
decoding
verification
true
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
JP2011077726A
Other languages
English (en)
Other versions
JP2012212031A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011077726A priority Critical patent/JP5469631B2/ja
Publication of JP2012212031A publication Critical patent/JP2012212031A/ja
Application granted granted Critical
Publication of JP5469631B2 publication Critical patent/JP5469631B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、コンピュータによる計算技術に関する。特に、他の計算機に行わせた計算結果を用いて計算を行う技術に関する。
パリティビット等の確認情報Q(m)を用いて、復号装置に行わせた復号の計算結果が正しいかどうかを判断する以下のような技術が考えられる。パリティビットについては、例えば非特許文献1を参照のこと。
依頼装置は、メッセージmに対してパリティビット等の確認情報Q(m)をビット結合して得られるm||Q(m)を平文とした暗号文E(m||Q(m))を、復号装置に行わせる計算結果を用いて復号する。ここで、Q(m)を例えば偶数性のパリティビットとする。すなわち、Q(m)を構成するビットのうち1のビットの数が、偶数の場合には0を出力し、奇数の場合には1を出力するパリティビットとする。
まず、依頼装置が、暗号文E(m||Q(m))を復号装置に送信する。
復号装置は、受信した暗号文E(m||Q(m))を復号し、計算結果m||Q(m)を依頼装置に送信する。
依頼装置は、受信した計算結果m||Q(m)を、メッセージmと確認情報Q(m)とに分離する。依頼装置は、分離された確認情報Q(m)と、分離されたメッセージmから生成した確認情報Q(m)とが一致しているか判断する。
一致していれば、受信した計算結果m||Q(m)は正しいと判断することができ、分離されたメッセージmを、正しく復号されたメッセージmとする。
一致していなければ、受信した計算結果m||Q(m)は正しくないと判断することができ、分離されたメッセージmを、正しく復号されたメッセージmではないとする。
これにより、依頼装置は、復号装置の計算結果m||Q(m)が偶発的な誤りを含む場合に、その誤りを一定の確率で検出することができる。
長尾真(外7名)編,「岩波 情報科学辞典」,第1刷,岩波書店,1995年5月25日,p.592
背景技術に記載した技術では、復号装置は依頼装置の判断を欺きながら、メッセージmを改変することが可能である。
例えば、復号装置は、暗号文E(m||Q(m))を復号したm||Q(m)から確認情報Q(m)を分離する。復号装置は、任意の改変されたメッセージm及びこのメッセージmに対応する確認情報Q(m)を生成する。例えば、mを構成するビットのうち何れか2つのビットの値を反転させたものをmとする。この場合、Q(m)の値とQ(m)の値とは同じになる。復号装置は、m||Q(m)に代えてm||Q(m)を依頼装置に送信する。
この場合、依頼装置は、受信したm||Q(m)を、メッセージmと確認情報Q(m)とに分離し、分離された確認情報Q(m)と、分離されたメッセージmから生成した確認情報Q(m)とが一致しているか判断するが、この値は一致してしまう。
このようにして、復号装置は依頼装置の判断を欺きながら、メッセージmを改変することが可能である。言い換えれば、背景技術の依頼装置は、復号装置が復号のための計算を正しく行ったかどうかを検証することはできない。
この発明の課題は、復号装置が復号のための計算を正しく行ったかどうかを検証可能な復号結果検証装置、方法及びプログラムを提供することである。
この発明の一態様による復号結果検証装置は、Gを可換群、EをGの元を平文とする公開鍵暗号方式における準同型性の暗号化関数、Bを集合S⊆Gを値域とし任意の0ではないx∈Gについて(S+x)∩Sの元で0ではないものを計算することが困難な関数、mをメッセージ、C=E(B(m))を暗号文、IをGの元xを入力としてx=B(m’)となるm’が存在する場合には真を出力する関数として、乱数r∈Gを生成する乱数生成部と、送信情報C=E(r)を計算する送信情報生成部と、C+Cを、暗号化関数Eを復号可能であり受信したC+Cを復号しその復号結果dを出力する復号装置に送信する送信部と、復号装置から復号結果dを受信する受信部と、d’=d−rを計算する検証情報生成部と、I(d’)=真であるか判定する判定部と、を含む。
復号結果検証装置は、復号装置が復号のための計算を正しく行ったかどうかを検証することができる。
実施形態の復号結果検証装置の構成を説明するためのブロック図。 実施形態の復号結果検証装置の処理を説明するためのフローチャート。
以下、図面を参照してこの発明の一実施形態を説明する。
[記号の定義]
まず、以下のように記号を定義する。
Gは、可換群である。なお、群の演算は、加法的に表記する。
Eは、Gの元を平文とする公開鍵暗号方式における準同型性の暗号化関数である。Eは、準同型性の性質を有するため、任意のa∈G及び任意のb∈Gに対してE(a)+E(b)=E(a+b)である。Eは公開されており、復号結果検証装置1は関数Eの計算が可能であるとする。
Dは、Eに対応する公開鍵暗号方式における復号関数である。すなわち、任意のy∈Gに対してD(E(y))=yである。
Bは、集合S⊆Gを値域とする関数である。また、Bは、任意の0ではないx∈Gについて(S+x)∩Sの元で0ではないものを計算することが困難な関数であるという性質を有する。
mは、メッセージである。
C=E(B(m))は、復号の対象となる暗号文である。暗号文Cは、図示されていない暗号文生成装置により生成されたものである。
Iは、Gの元xを入力としてx=B(m’)となるm’が存在する場合には真を出力し、存在しない場合には偽を出力する関数である。
Aは、Gの元を入力としてあるメッセージを出力する関数で任意のメッセージmに対してA(B(m))=mの性質を満たす関数である。
hは、例えばSHA−256等の安全なハッシュ関数である。
||は、ビット結合である。
[復号結果検証装置及び方法]
この発明の一実施形態である復号結果検証装置1(図1)は、復号装置2に行わせた所定の計算の結果を用いて、暗号文E(B(m))を復号する。その際、復号結果検証装置1は、復号装置2の計算結果が、正しく行われたかどうかを検証可能である。言い換えれば、復号装置2が、メッセージmを改変したかどうか検証可能である。
図1に示すように、復号結果検証装置1は、乱数生成部11、送信情報生成部12、送信部13、受信部14、検証情報生成部15、判定部16、出力部17を例えば含む。
復号結果検証装置1の乱数生成部11(図1)は、乱数r∈Gを生成する(ステップS1)。生成された乱数rは、送信情報生成部12及び検証情報生成部15に送信される。
復号結果検証装置1の送信情報生成部12は、乱数rを用いて、送信情報C=E(r)を生成する(ステップS2)。生成された送信情報Cは、送信部13に送信される。
復号結果検証装置1の送信部13には、暗号文C=E(B(m))及び送信情報Cが入力される。送信部13は、C+Cを計算して、復号装置2に送信する(ステップS3)。
復号装置2は、C+Cを受信する。復号装置2は、暗号化関数Eを復号可能であり、受信したC+Cを復号し、その復号結果dを復号結果検証装置1に送信する(ステップS4)。復号装置2は、具体的には、復号関数Dを用いて、C+Cを復号する。Eの準同型性から、復号装置2の計算が正しく行われた場合には、復号結果d=D(C+C)=D(E(B(m))+E(r))=D(E(B(m)+r))=B(m)+rとなる。
復号結果検証装置1の受信部14は、復号結果dを受信する(ステップS5)。受信部14は、受信した復号結果dを検証情報生成部15に送信する。
復号結果検証装置1の検証情報生成部15は、復号結果d及び乱数rを用いて、検証情報d’=d−rを計算する(ステップS6)。計算された’は、判定部16に送信される。
判定部16は、I(d’)=真であるか判定する(ステップS7)。すなわち、検証情報d’が、集合Sに属するかどうかを判定する。
I(d’)=真であれば、復号装置2の復号結果dは正しいと判断することができる。その理由については後述する。この場合、判定部16は、検証情報d’を出力部17に送信する。検証情報d’を受信した出力部17は、A(d’)を計算して出力する(ステップS8)。この場合、A(d’)=mとなる。
I(d’)=真でなければ、復号装置2の復号結果dは正しいと判断することはできない。その理由については後述する。この場合、判定部16は、エラーが生じた旨の情報を出力する。
このようにして、復号結果検証装置1は、復号装置2が復号のための計算を正しく行ったかどうかを検証することができる。
[B,A及びIの具体例]
例えば、B(m)=m||h(m)とすることができる。もし、このように定義されたBが、Bの性質を満たさなければ、hをランダムオラクルと識別することができるが、安全なハッシュ関数をランダムオラクルと識別するための実施可能なアルゴリズムは存在しないと考えられている。よって、このように定義されたBは、Bの性質を満たす。
ハッシュ関数hの出力のビット長をLとすると、Aは、入力に対して下位Lビットを除いたビット列を出力する関数である。
また、I(d’)は、dの下位Lビットと、d’の下位Lビット以外のビットのハッシュ値h(A(d’))とが一致している場合に真を出力し、一致していない場合に偽を出力する関数である。
[I(d’)の値に基づいて、復号装置2の復号結果dが正しいかどうか判断することができる理由]
上記の実施形態のアルゴリズムは、次の<方式1>のように記述することができる。ここで、暗号文C=E(B(m))である。機械Xは、上記実施形態の復号装置2に対応する。
<方式1>
1.乱数rを生成し、C=E(r)を計算する。
2.機械Xに暗号文C+Cを入力し、機械Xから復号結果dを受信する。
3.d’=d−rを計算する。
4.I(d’)が真であれば、A(d)を出力する。そうでなければ、エラーを出力
する。
<方式1>において、機械Xが悪意を持って返答する可能性を考慮するときに、I(d’)が真でかつA(d’)がm以外となる事象を、Xによる攻撃が成功したと呼ぶことにする。以下では、機械Xによる攻撃が成功する確率を評価する。
<方式1>において機械Xに送信する情報の暗号化を省略すると下記の<方式2>が得られる。機械Xが悪意を持って返答する可能性を考慮するときに、I(d’)が真でかつA(d’)がm以外となる事象を、機械Xによる攻撃が成功したと呼ぶことにする。
<方式2>
1.機械XにB(m)+rを入力し、機械Xから復号結果dを受信する。
2.d’=d−rを計算する。
3.I(d’)が真であれば、A(d’)を出力する。そうでなければ、エラーを出力
する。
記号rをr−B(m)で置き換えると、次の<方式3>を得る。機械Xが悪意を持って返答する可能性を考慮するときに、I(d’)が真でかつA(d’)がm以外となる事象を、機械Xによる攻撃が成功したとよぶことにする。
<方式3>
1.機械Xに暗号文rを入力し、機械Xから復号結果dを受信する。
2.d’=d−r+B(m)を計算する。
3.I(d’)が真であれば、A(d’)を出力する。そうでなければ、エラーを出力する。
任意のB(m)について、乱数rとr+B(m)の分布は等しいか、識別困難であるから、任意の機械Xについて、<方式2>において攻撃が成功する確率と<方式3>において攻撃が成功する確率は等しいまたは識別困難である。
ここで、次の<方式4>を考える。機械Yが悪意を持って返答する可能性を考慮するときに、I(d’)が真でかつA(d’)がm以外となる事象を、機械Yによる攻撃が成功したとよぶことにする。
<方式4>
1.機械Yから復号結果dを受信する。
2.d’=d+B(m)を計算する。
3.I(d’)が真であれば、A(d’)を出力する。そうでなければ、エラーを出力する。
さて、ある機械Xが存在して、<方式3>において攻撃が成功する確率がpであるとする。機械Xをサブルーチンとして用いて外部の機械Mと通信する機械Yを次のように構成することができる。
<Y
1.乱数rを生成し、機械Xに送信する。機械Xからdを受信する。
2.d−rを計算し、機械Mに返信する。
<方式4>を機械Mとみなして、<方式4>における機械Yを機械Yに置き換えると、置き換えて得られた方式の出力は<方式3>と等しい。したがって、機械Xが<方式3>の攻撃に成功する確率は、機械Yが<方式4>の攻撃に成功する確率と等しい。
ところで、上記実施形態のBについての定義を仮定すると、任意の機械Yについて、機械Yが<方式4>の攻撃に成功する確率は無視できる。そのBについての定義とは、「Bは次の性質を満たすとする:Bの値域をSとするとき、任意の0ではないx∈Gについて(S+x)∩Sの元で0ではないものを計算することは困難である。」というものである。
なぜならば、もし<方式4>の攻撃に成功するならばd≠0であり、I(d’)が真であるならば、B(m)∈SについてB(m)+d∈Sとなり、dを上記のx∈Gとみなせば、B(m)∈(S+x)∩Sを計算できたことになるからである。
したがって、任意の機械Xについて機械Yを機械Yとして用いれば、機械Yが<方式4>の攻撃に成功する確率は無視できる。機械Xが<方式3>の攻撃に成功する確率は、機械Yが<方式4>の攻撃に成功する確率と等しいから、任意の機械Xについてpは無視できる量である。
<方式2>は<方式1>から公開鍵暗号による暗号化を取り去ったものであるから、任意の機械Xが<方式1>の攻撃に成功する確率は、機械Xが<方式2>の攻撃に成功する確率よりも小さい。よって、任意の機械Xが<方式1>の攻撃に成功する確率は無視できる量である。
すなわち、復号装置2は復号結果検証装置1の判断を欺きながら、メッセージmを改変することはできない。言い換えれば、復号結果検証装置1は、復号装置2が復号のための計算を正しく行ったかどうかを検証することができる。
[変形例等]
乱数rは、復号装置2が知ることができない所定の整数であってもよい。
復号結果検証装置1の各部間のデータのやり取りは直接行われてもよいし、図示していない記憶部を介して行われてもよい。
その他、この発明は上述の実施形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
1 復号結果検証装置
11 乱数生成部
12 送信情報生成部
13 送信部
14 受信部
15 検証情報生成部
16 判定部
17 出力部
2 復号装置

Claims (5)

  1. Gを可換群、EをGの元を平文とする公開鍵暗号方式における準同型性の暗号化関数、Bを集合S⊆Gを値域とし任意の0ではないx∈Gについて(S+x)∩Sの元で0ではないものを計算することが困難な関数、mをメッセージ、C=E(B(m))を暗号文、IをGの元xを入力としてx=B(m’)となるm’が存在する場合には真を出力する関数として、
    乱数r∈Gを生成する乱数生成部と、
    送信情報C=E(r)を計算する送信情報生成部と、
    C+Cを、上記暗号化関数Eを復号可能であり受信したC+Cを復号しその復号結果dを出力する復号装置に送信する送信部と、
    上記復号装置から上記復号結果dを受信する受信部と、
    検証情報d’=d−rを計算する検証情報生成部と、
    I(d’)=真であるか判定する判定部と、
    を含む復号結果検証装置。
  2. 請求項1の復号結果検証装置において、
    AをGの元を入力としてあるメッセージを出力する関数で任意のメッセージmに対してA(B(m))=mの性質を満たす関数として、
    I(d’)=真であれば、A(d’)を出力する出力部を更に含む、
    復号結果検証装置。
  3. 請求項1又は2の復号結果検証装置において、
    hをハッシュ関数、||をビット結合として、
    上記B(m)=m||h(m)であることを特徴とする、
    復号結果検証装置。
  4. Gを可換群、EをGの元を平文とする公開鍵暗号方式における準同型性の暗号化関数、Bを集合S⊆Gを値域とし任意の0ではないx∈Gについて(S+x)∩Sの元で0ではないものを計算することが困難な関数、mをメッセージ、C=E(B(m))を暗号文、IをGの元xを入力としてx=B(m’)となるm’が存在する場合には真を出力する関数として、
    乱数生成部が、乱数r∈Gを生成する乱数生成ステップと、
    送信情報生成部が、送信情報C=E(r)を計算する送信情報生成ステップと、
    送信部が、C+Cを、上記暗号化関数Eを復号可能であり受信したC+Cを復号しその復号結果dを出力する復号装置に送信する送信ステップと、
    受信部が、上記復号装置から上記復号結果dを受信する受信ステップと、
    検証情報生成部が、検証情報d’=d−rを計算する検証情報生成ステップと、
    判定部が、I(d’)=真であるか判定する判定ステップと、
    を含む復号結果検証方法。
  5. 請求項1から3の何れかに記載の復号結果検証装置の各部としてコンピュータを機能させるためのプログラム。
JP2011077726A 2011-03-31 2011-03-31 復号結果検証装置、方法及びプログラム Active JP5469631B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011077726A JP5469631B2 (ja) 2011-03-31 2011-03-31 復号結果検証装置、方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011077726A JP5469631B2 (ja) 2011-03-31 2011-03-31 復号結果検証装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2012212031A JP2012212031A (ja) 2012-11-01
JP5469631B2 true JP5469631B2 (ja) 2014-04-16

Family

ID=47266051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011077726A Active JP5469631B2 (ja) 2011-03-31 2011-03-31 復号結果検証装置、方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5469631B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5912281B2 (ja) * 2011-04-18 2016-04-27 日本電信電話株式会社 復号結果検証装置、方法、システム及びプログラム
EP3001401A4 (en) 2013-07-18 2017-03-22 Nippon Telegraph And Telephone Corporation Decoding device, decoding ability providing device, method thereof, and program
KR101833323B1 (ko) 2018-01-12 2018-02-28 한국스마트인증 주식회사 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법

Also Published As

Publication number Publication date
JP2012212031A (ja) 2012-11-01

Similar Documents

Publication Publication Date Title
JP6058237B1 (ja) 暗号文変換装置、暗号文変換プログラム及び暗号文変換方法
CN114036565B (zh) 隐私信息检索系统及隐私信息检索方法
US20180091301A1 (en) Method and system for switching public keys in ciphertexts
JP6059347B2 (ja) 復号装置、復号能力提供装置、それらの方法、およびプログラム
JP6738062B2 (ja) 暗号文照合システム、方法、および記録媒体
JP2015184594A (ja) 暗号文処理装置、暗号文処理方法、暗号文処理プログラムおよび情報処理装置
JP5198539B2 (ja) 記憶装置、アクセス装置およびプログラム
JP6738061B2 (ja) 暗号文照合システム、方法、および記録媒体
CN113141247A (zh) 一种同态加密方法、装置、系统及可读存储介质
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
JP5469631B2 (ja) 復号結果検証装置、方法及びプログラム
JP2007114494A (ja) 秘匿計算方法及び装置
JP2008176192A (ja) 暗号変換方法および装置、並びにプログラム
JP5755557B2 (ja) 時限暗号システム、時限暗号方法、装置、プログラム
CN111970130B (zh) 量子区块链建立方法及系统
WO2018102382A1 (en) Method and system for switching public keys in ciphertexts
JP2016157055A (ja) 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法
JP2010258708A (ja) 情報処理装置、演算検証方法およびプログラム
US8036378B2 (en) System and method of authentication
JP5337076B2 (ja) 秘密計算システム、秘密計算方法、不正使用防止方法
US20230132163A1 (en) Memory processing apparatus, memory verification apparatus, memory updating apparatus, memory protection system, method, and computer readable medium
JP2015026892A (ja) 情報処理システム
JP5912281B2 (ja) 復号結果検証装置、方法、システム及びプログラム
Abdul-Jabbar Secure QR-code generation in healthcare
JP5142361B2 (ja) 正当性検証装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140131

R150 Certificate of patent or registration of utility model

Ref document number: 5469631

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150