IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 三菱電機株式会社の特許一覧

特許7614469秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム
<>
  • 特許-秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム 図1
  • 特許-秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム 図2
  • 特許-秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム 図3
  • 特許-秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム 図4
  • 特許-秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム 図5
  • 特許-秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム 図6
  • 特許-秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム 図7
  • 特許-秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム 図8
  • 特許-秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム 図9
  • 特許-秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム 図10
  • 特許-秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-01-06
(45)【発行日】2025-01-15
(54)【発明の名称】秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20250107BHJP
【FI】
G09C1/00 650Z
【請求項の数】 7
(21)【出願番号】P 2024566358
(86)(22)【出願日】2023-03-27
(86)【国際出願番号】 JP2023012095
【審査請求日】2024-11-08
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】廣政 良
【審査官】塩澤 如正
(56)【参考文献】
【文献】AGRAWAL, Shweta et al.,Deniable fully homomorphic encryption from LWE,Cryptology ePrint Archive [online],2021年11月,Paper 2020/1588, version 20211112:234815,p.1-45,Retrieved from the Internet: <URL: https://eprint.iacr.org/archive/2020/1588/20211112:234815>,[2024年11月27日検索]
【文献】BRAKERSKI, Zvika et al.,Lattice-Based Fully Dynamic Multi-Key FHE with Short Ciphertexts,Cryptology ePrint Archive [online],2016年11月,Paper 2016/339, version 20161118:093848,p.1-23,Retrieved from the Internet: <URL: https://eprint.iacr.org/archive/2016/339/20161118:093848>,[2024年11月27日検索]
【文献】安田 聖 ほか,複数鍵準同型代理人再暗号,2018年 暗号と情報セキュリティシンポジウム(SCIS2018),日本,2018年01月,1A2-5,p.1-8
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00- 3/00
H04L 9/00- 9/40
(57)【特許請求の範囲】
【請求項1】
暗号化鍵と復号鍵と準同型演算鍵を生成する鍵生成装置と、
暗号化鍵で平文データを暗号化した暗号化データを生成する暗号化装置と、
暗号化鍵と暗号文データとを入力とし、平文データの開示の否認のための否認乱数データを生成する否認乱数生成装置と、
準同型演算鍵と暗号化データとを入力とし、平文データの計算結果を準同型演算した準同型演算後暗号文データを生成する準同型演算装置と、
準同型演算後暗号文データを復号する復号装置と
を備えた秘匿情報処理システム。
【請求項2】
前記鍵生成装置は、
前記暗号化鍵として、否認可能暗号に用いる否認可能暗号化鍵と複数鍵準同型暗号に用いる複数鍵準同型暗号化鍵とを出力する請求項1に記載の秘匿情報処理システム。
【請求項3】
前記鍵生成装置は、
前記復号鍵として、否認可能暗号に用いる否認可能復号鍵と複数鍵準同型暗号に用いる複数鍵準同型復号鍵を出力する請求項2に記載の秘匿情報処理システム。
【請求項4】
前記鍵生成装置は、
前記準同型演算鍵として、前記否認可能復号鍵を複数鍵準同型暗号で暗号化した複数鍵準同型暗号文を出力する請求項3に記載の秘匿情報処理システム。
【請求項5】
前記準同型演算装置は、
準同型演算時に、暗号化したまま否認可能準同型暗号の復号処理を計算することで、暗号化データを否認可能暗号文から複数鍵準同型暗号文に変換する請求項4に記載の秘匿情報処理システム。
【請求項6】
鍵生成装置が、暗号化鍵と復号鍵と準同型演算鍵を生成し、
暗号化装置が、暗号化鍵で平文データを暗号化した暗号化データを生成し、
否認乱数生成装置が、暗号化鍵と暗号文データとを入力とし、平文データの開示の否認のための否認乱数データを生成し、
準同型演算装置が、準同型演算鍵と暗号化データとを入力とし、平文データの計算結果を準同型演算した準同型演算後暗号文データを生成し、
復号装置が、準同型演算後暗号文データを復号する秘匿情報処理システムに用いられる秘匿情報処理方法。
【請求項7】
暗号化鍵と復号鍵と準同型演算鍵を生成する鍵生成処理と、
暗号化鍵で平文データを暗号化した暗号化データを生成する暗号化処理と、
暗号化鍵と暗号文データとを入力とし、平文データの開示の否認のための否認乱数データを生成する否認乱数生成処理と、
準同型演算鍵と暗号化データとを入力とし、平文データの計算結果を準同型演算した準同型演算後暗号文データを生成する準同型演算処理と、
準同型演算後暗号文データを復号する復号処理と
をコンピュータに実行させる秘匿情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、秘匿情報処理システム、秘匿情報処理方法、および秘匿情報処理プログラムに関する。
【背景技術】
【0002】
準同型暗号とは、データを暗号化したまま分析処理できる暗号技術である。昨今、クラウドサービスの利用が広まりつつあるが、クラッキングあるいはクラウドの信頼性の懸念から、クラウド上ではデータを暗号化して保管することが考えられる。準同型暗号は、暗号化されているデータに対して、復号することなく演算を施すことができるため、安全性を損なうことなくクラウドサービスの利用を可能とする技術である。
【0003】
準同型暗号の安全性を向上するために、暗号文に暗号化されているデータに対して、例えば政府といった特権的なユーザによる強制的なデータ開示を防ぐための機能が否認可能性である。
一般的な公開鍵暗号技術における暗号化アルゴリズムは、平文データを暗号化するために公開鍵データと乱数データを用いる。公開鍵データは公開情報なので、平文データと乱数データが決まれば暗号文データは一意に定まる。否認可能性は、ある暗号文データに実際に暗号化されている平文データとは異なるデータをその暗号文データに暗号化するための乱数データを生成することができる性質である。この性質により、クラウドサービスに分析処理を委託するためにユーザが保存している暗号文データに対して、ユーザは偽のデータをその暗号文データに暗号化できる乱数データを生成することできる。これにより、特権的なユーザから平文データの開示を強制されたときに、データの強制開示から逃れることができる。
【0004】
非特許文献1には、否認可能性を満たす準同型暗号の初めての構成例が記されている。
【先行技術文献】
【非特許文献】
【0005】
【文献】Shweta Agrawal, Shafi Goldwasser, and Saleet Mossel. Deniable Fully Homomorphic Encryption from LWE. In CRYPTO, pages 641-670, 2021.
【文献】Adriana Lopez-Alt, Eran Tromer, and Vinod Vaikuntanathan. On-the-Fly Multiparty Computation on the Cloud via Multikey Fully Homomorphic Encryption. In STOC, pages 1219-1234, 2012.
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1で示されている否認可能性を持つ準同型暗号は、同じ鍵の下で暗号化された暗号文データ同士でしか分析処理できない。そのため、非特許文献1で示されている否認可能準同型暗号を用いたクラウドサービスで様々なユーザのデータを用いて分析処理を行う場合、ユーザ同士で鍵を共有する必要があり、ユーザ間でのデータの秘匿性が担保されない。
【0007】
本開示では、各々のユーザが異なる鍵を用いてデータを暗号化できるような否認可能準同型暗号を実現することを目的とする。
【課題を解決するための手段】
【0008】
本開示に係る秘匿情報処理システムは、
暗号化鍵PKと復号鍵SKと準同型演算鍵EVKを生成する鍵生成装置と、
前記暗号化鍵PKで平文データmを暗号化した暗号化データCDPK(m)を生成する暗号化装置と、
前記暗号化鍵PKと暗号文データCDPK(m)とを入力とし、平文データmの開示の否認のための否認乱数データrを生成する否認乱数生成装置と、
前記準同型演算鍵EVKで平文データの計算結果を準同型演算した準同型演算後暗号文データCMPK(M)を生成する準同型演算装置と、
準同型演算後暗号文データを復号する復号装置とを備える。
【発明の効果】
【0009】
本開示に係る秘匿情報処理システムでは、継続的な秘匿情報処理を、対象者にとって無意識的に実現することにより、対象者の入れ替わりあるいはなりすましの検出を行うことができる。
【図面の簡単な説明】
【0010】
図1】実施の形態1に係る秘匿情報処理システムのシステム構成例を示す図。
図2】実施の形態1に係る鍵生成装置の構成を示すブロック図。
図3】実施の形態1に係る暗号化装置の構成を示すブロック図。
図4】実施の形態1に係る否認乱数生成装置の構成を示すブロック図。
図5】実施の形態1に係る準同型演算装置の構成を示すブロック図。
図6】実施の形態1に係る復号装置の構成を示すブロック図。
図7】実施の形態1に係る秘匿情報処理システムの各装置の動作を示すフローチャート。
図8】実施の形態1に係る秘匿情報処理システムの準同型演算を示すフローチャート。
図9】実施の形態1に係る秘匿情報処理システムの準同型演算を示すフローチャート。
図10】実施の形態1に係る秘匿情報処理システムの各装置のハードウェア構成例を示す図。
図11】実施の形態1の変形例に係る秘匿情報処理システムの各装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【0011】
以下、本実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。図中の矢印はデータの流れまたは処理の流れを主に示している。
【0012】
実施の形態1.
***構成の説明***
図1は、本実施の形態に係る秘匿情報処理システム100のシステム構成例を示す図である。
秘匿情報処理システム100は、鍵生成装置200と、暗号化装置300と、否認乱数生成装置400と、準同型演算装置500と、復号装置600とを有する。
インターネット101は、鍵生成装置200と、複数の暗号化装置300と、否認乱数生成装置400と、準同型演算装置500と、復号装置600とを接続する通信路である。インターネット101は、ネットワークの例である。インターネット101の代わりに、他の種類のネットワークが用いられてもよい。
【0013】
鍵生成装置200は、例えば、PCである。PCは、Personal Computerの略語である。
鍵生成装置200は、暗号化に利用する暗号化鍵と、準同型演算に利用する準同型演算鍵と、暗号文データの復号に利用する復号鍵を作成する。鍵生成装置200は、インターネット101を介して、暗号化装置300と否認乱数生成装置400へ暗号化鍵を、準同型演算装置500へ準同型演算鍵を送信し、復号装置600へ復号鍵を送信する。なお、これらの鍵は、郵送などで直接的に送信してもよい。復号鍵は秘密の情報であるため、漏えいしないよう鍵生成装置200と復号装置600の内部に保管される。
【0014】
暗号化装置300は、暗号化鍵で平文データを暗号化した暗号化データを生成する。暗号化装置300は、単一の暗号化鍵を用いて平文データを暗号化した暗号化データを生成する。暗号化装置300は、例えば、PCである。暗号化装置300は、工場のセンサなどから得られた平文データを、保管している暗号化鍵で暗号化することで暗号文データを生成する。暗号化装置300は、暗号文データを準同型演算装置500に送信する。
【0015】
否認乱数生成装置400は、暗号化鍵と暗号文データとを入力とし、平文データの開示の否認のための否認乱数データを生成する。否認乱数生成装置400は、例えば、PCである。否認乱数生成装置400は、鍵生成装置200から送られてきた暗号化鍵を受信し、暗号化鍵を保管する暗号化鍵保管装置としても機能する。
否認乱数生成装置400は、暗号化装置300から送られてきた、暗号文データと、平文データと、乱数データから、否認乱数データを生成し、保管する。
【0016】
準同型演算装置500は、準同型演算鍵と暗号化データとを入力とし、平文データの計算結果を準同型演算した準同型演算後暗号文データを生成する。準同型演算装置500は、例えば、大容量の記憶媒体を持つ計算機である。準同型演算装置500は、データ保管装置としても機能する。すなわち、準同型演算装置500は、暗号化装置300から暗号文データの保管要求があればそれらの暗号文データを保管する。
準同型演算装置500は、保管暗号文データに対して準同型演算を行う装置としても機能する。すなわち、準同型演算装置500は、保管準同型演算鍵と、保管暗号文データから、暗号文データの平文データに対する演算結果の暗号文データ(準同型演算後暗号文データ)を生成し、復号装置600に送信する。保管準同型演算鍵は準同型演算装置500に保管されている準同型演算鍵である。保管暗号文データは準同型演算装置500に保管されている暗号文データである。
【0017】
復号装置600は、準同型演算後暗号文データを復号する。復号装置600は、例えば、PCである。復号装置600は、鍵生成装置200から送られてきた復号鍵を受信し、復号鍵を保管する復号鍵保管装置としても機能する。
復号装置600は、準同型演算装置500から送られてきた、暗号文データ(準同型演算後暗号文データ)を受け取り、保管されている復号鍵で復号することで演算結果を取得する暗号文データ復号装置として動作するPCでもある。
【0018】
なお、同じPC内に、鍵生成装置200、暗号化装置300、否認乱数生成装置400、準同型演算装置500、および復号装置600のいずれかが同時に含まれていてもよい。
【0019】
以下、本実施の形態の構成について説明する。
図1に示したように、秘匿情報処理システム100は、鍵生成装置200と、暗号化装置300と、否認乱数生成装置400と、準同型演算装置500と、復号装置600とを備える。以下では、鍵生成装置200の構成、暗号化装置300の構成、否認乱数生成装置400の構成、準同型演算装置500の構成、復号装置600の構成について順番に説明する。
【0020】
図2は、本実施の形態に係る鍵生成装置200の構成を示すブロック図である。
図2に示すように、鍵生成装置200は、機能要素として、入力部201と、否認可能復号鍵生成部202と、否認可能暗号化鍵生成部203と、複数鍵準同型復号鍵生成部204と、複数鍵準同型暗号化鍵生成部205と、準同型演算鍵生成部206と、送信部207とを備える。
また、図示していないが、鍵生成装置200は、鍵生成装置200の各部で使用されるデータを記憶する記憶部を備える。
【0021】
入力部201は、セキュリティパラメータλを受け取り、セキュリティパラメータλを否認可能復号鍵生成部202と複数鍵準同型復号鍵生成部204へ送る。
否認可能復号鍵生成部202は、入力部201から受け取ったセキュリティパラメータλを入力として、否認可能復号鍵DSKを生成する。さらに、否認可能復号鍵生成部202は、否認可能復号鍵DSKを否認可能暗号化鍵生成部203と準同型演算鍵生成部206と送信部207へ送る。
否認可能暗号化鍵生成部203は、否認可能復号鍵生成部202から受け取った否認可能復号鍵DSKを入力として、否認可能暗号化鍵DPKを生成する。さらに、否認可能暗号化鍵生成部203は、否認可能暗号化鍵DPKを送信部207へ送る。
【0022】
複数鍵準同型復号鍵生成部204は、入力部201から受け取ったセキュリティパラメータλを入力として、複数鍵準同型復号鍵MSKを生成する。さらに、複数鍵準同型復号鍵生成部204は、複数鍵準同型復号鍵MSKを複数鍵準同型暗号化鍵生成部205と送信部207へ送る。
複数鍵準同型暗号化鍵生成部205は、複数鍵準同型復号鍵生成部204から受け取った複数鍵準同型復号鍵MSKを入力として、複数鍵準同型暗号化鍵MPKを生成する。さらに、複数鍵準同型暗号化鍵生成部205は、複数鍵準同型暗号化鍵MPKを準同型演算鍵生成部206と送信部207へ送る。
【0023】
準同型演算鍵生成部206は、否認可能復号鍵生成部202から受け取った否認可能復号鍵DSKと、複数鍵準同型暗号化鍵生成部205から受け取った複数鍵準同型暗号化鍵MPKを入力として、準同型演算鍵EVKを生成する。さらに、準同型演算鍵生成部206は、準同型演算鍵EVKを送信部207へ送る。
【0024】
送信部207は、否認可能復号鍵生成部202で生成された否認可能復号鍵DSKと複数鍵準同型復号鍵生成部204で生成された複数鍵準同型復号鍵MSKから復号鍵SK=(DSK,MSK)を生成し、復号装置600へ送信する。または、否認可能暗号化鍵生成部203で生成された否認可能暗号化鍵DPKと複数鍵準同型暗号化鍵生成部205で生成された複数鍵準同型暗号化鍵MPKから暗号化鍵PKを生成し、暗号化装置300と否認乱数生成装置400へ送信する。または、準同型演算鍵生成部206で生成された準同型演算鍵EVKを準同型演算装置500へ送信する。
【0025】
図3は、本実施の形態に係る暗号化装置300の構成を示すブロック図である。
図3に示すように、暗号化装置300は、機能要素として、入力部301と、暗号化鍵保管部302と、平文保管部303と、乱数生成部304と、暗号化部305と、乱数保管部306と、送信部307とを備える。
また、図示していないが、暗号化装置300は、暗号化装置300の各部で使用されるデータを記憶する記憶部を備える。
【0026】
入力部301は、鍵生成装置200から送信されてきた暗号化鍵PKを受け取り、暗号化鍵保管部302へ送信する。または、入力部301は、平文データmを受け取り、それらの平文データmを平文保管部303へ送信する。
暗号化鍵保管部302は、入力部301から受け取った暗号化鍵PKを保管する。
平文保管部303は、入力部301から受け取った平文データmを保管する。
乱数生成部304は、暗号化鍵保管部302に保存されている暗号化鍵PKから乱数データrを生成し暗号化部305と乱数保管部306へ送信する。
【0027】
暗号化部305は、暗号化鍵保管部302から送信された暗号化鍵PKと、平文保管部303から送信された平文データmと、乱数生成部304から乱数データrを受け取り、平文データmの暗号文データCPK(m)を生成する。そして、暗号化部305は、暗号文データCPK(m)を送信部307へ送信する。以降では、CPK(m)で平文データmを暗号化鍵PKで暗号化して得られる暗号文データを表す。
乱数保管部306は、乱数生成部304から受け取った乱数データrを保管する。
送信部307は、暗号化部305から暗号文データCPK(m)を受け取り、否認乱数生成装置400と準同型演算装置500へ送信する。
【0028】
図4は、本実施の形態に係る否認乱数生成装置400の構成を示すブロック図である。
図4に示すように、否認乱数生成装置400は、機能要素として、入力部401と、暗号化鍵保管部402と、否認乱数生成部403と、否認乱数保管部404とを備える。
また、図示していないが、否認乱数生成装置400は、否認乱数生成装置400の各部で使用されるデータを記憶する記憶部を備える。
【0029】
入力部401は、鍵生成装置200から送信されてきた暗号化鍵PKを受信し、暗号化鍵保管部402へ送る。または、暗号化装置300から送信されてきた暗号文データCPK(m)と乱数データrを受信し、否認乱数生成部403へ送る。
暗号化鍵保管部402は、否認乱数生成装置400の入力部401から受け取った暗号化鍵PKを保管する。
否認乱数生成部403は、入力部401から受け取った暗号文データCPK(m)と乱数データrと、暗号化鍵保管部402に保管されている暗号化鍵PKから、否認乱数データrを生成し、否認乱数保管部404へ送る。
否認乱数保管部404は、否認乱数生成部403から受け取った否認乱数データrを保管する。
【0030】
図5は、本実施の形態に係る準同型演算装置500の構成を示すブロック図である。
図5に示すように、準同型演算装置500は、機能要素として、入力部501と、準同型演算鍵保管部502と、暗号文保管部503と、演算処理構成部504と、準同型演算部505と、送信部506とを備える。
また、図示していないが、準同型演算装置500は、準同型演算装置500の各部で使用されるデータを記憶する記憶部を備える。
【0031】
入力部501は、鍵生成装置200から送信されてきた準同型演算鍵EVK1とEVK2を受信し、準同型演算鍵保管部502へ送る。または、暗号化装置300から送信されてきた暗号文データCPK1(m1)とCPK2(m2)を受信し、暗号文保管部503へ送る。または、演算回路fを受信し、演算処理構成部504へ送る。
【0032】
準同型演算鍵保管部502は、入力部501から受け取った準同型演算鍵EVK1とEVK2を保管する。
暗号文保管部503は、入力部501から受け取った暗号文データCPK1(m1)と暗号文データCPK2(m2)を保管する。
演算処理構成部504は、入力部501から受け取った演算回路fと、暗号文保管部503から受け取った暗号文データCPK1(m1)とCPK2(m2)を入力として、準同型演算回路Cを生成する。
【0033】
準同型演算部505は、準同型演算鍵保管部502から準同型演算鍵EVK1とEVK2と、演算処理構成部504から準同型演算回路Cとを受けとり、平文データm1と平文データm2に演算回路fを適用して得られる演算結果データM=f(m1,m2)に関する暗号文データCPK(M)を計算し、送信部506へ送る。ここで、f(m1,m2)は、2つの平文データm1、m2を入力として演算回路fを計算した結果を表し、PKは暗号化鍵PK1とPK2からなる集合{PK1、PK2}を表す。また、以降ではCPK(M)で、暗号化鍵集合PK={PK1、PK2}に関する演算結果データMの準同型演算後暗号文データを表す。準同型演算後暗号文データCPK(M)からは、復号鍵SK1とSK2を用いることで、演算結果データMを復号できる。
送信部506は、準同型演算部505から受け取った準同型演算後暗号文データCPK(M)を復号装置600に送信する。
【0034】
図6は、本実施の形態に係る復号装置600の構成を示すブロック図である。
図6に示すように、復号装置600は、機能要素として、入力部601と、復号鍵保管部602と、復号処理部603と、復号結果保管部604とを備える。
また、図示していないが、復号装置600は、復号装置600の各部で使用されるデータを記憶する記憶部を備える。
【0035】
入力部601は、鍵生成装置200から送信された復号鍵SK1とSK2とを受信する。または、準同型演算装置500から送信された暗号化鍵の集合PK={PK1,PK2}に関する演算結果データMの準同型演算後暗号文データCPK(M)を受信する。
復号鍵保管部602は、入力部601から受け取った復号鍵SK1とSK2とを保管する。
復号処理部603は、入力部601から準同型演算後暗号文データCPK(M)と、復号鍵保管部602から復号鍵SK1とSK2とを受け取る。復号処理部603は、準同型演算後暗号文データCPK(M)を復号鍵SK1とSK2とで、暗号化されていた演算結果データMを復号し、復号結果保管部604へ送る。
復号結果保管部604は、復号処理部603から演算結果データMを受け取り、保管する。
【0036】
***動作の説明***
次に、本実施の形態に係る秘匿情報処理システム100の動作について説明する。秘匿情報処理システム100の動作手順は、秘匿情報処理方法に相当する。また、秘匿情報処理システム100の動作を実現するプログラムは、秘匿情報処理プログラムに相当する。
【0037】
図7は、本実施の形態に係る秘匿情報処理システム100の各装置の動作を示すフローチャートである。
図7のフローチャートでは、暗号化鍵・復号鍵・準同型演算鍵の生成・保管処理を示している。
【0038】
図7のステップS701からステップS713は、鍵生成装置200と、暗号化装置300と、否認乱数生成装置400、準同型演算装置500と、復号装置600とが実行する処理である。
ステップS701からステップS705は、鍵生成装置200によって実行される。
ステップS706からステップS707は、暗号化装置300によって実行される。
ステップS708からステップS709は、否認乱数生成装置400によって実行される。
ステップS710からステップS711は、準同型演算装置500によって実行される。
ステップS712からステップS713は、復号装置600によって実行される。
【0039】
ステップS701において、鍵生成装置200の入力部201は、セキュリティパラメータλを受信する。
ステップS702において、鍵生成装置200の否認可能復号鍵生成部202は、ステップS701において鍵生成装置200の入力部201が受信したセキュリティパラメータλを入力として、否認可能復号鍵DSKを生成する。さらに、鍵生成装置200の複数鍵準同型復号鍵生成部204は、ステップS701において鍵生成装置200の入力部201が受信したセキュリティパラメータλを入力として、複数鍵準同型復号鍵MSKを生成する。ここで、否認可能復号鍵DSKは、非特許文献1記載の鍵生成アルゴリズムを用いて生成される。また、複数鍵準同型復号鍵MSKは非特許文献2記載の鍵生成アルゴリズムを用いて生成される。
【0040】
ステップS703において、鍵生成装置200の否認可能暗号化鍵生成部203は、否認可能復号鍵DSKを入力として、否認可能暗号化鍵DPKを生成する。さらに、鍵生成装置200の複数鍵準同型暗号化鍵生成部205は、複数鍵準同型復号鍵MSKを入力として、複数鍵準同型暗号化鍵MPKを生成する。ここで、否認可能暗号化鍵DPKは非特許文献1記載の鍵生成アルゴリズムを用いて生成される。また、複数鍵準同型暗号化鍵MPKは非特許文献2記載の鍵生成アルゴリズムを用いて生成される。
【0041】
ステップS704において、鍵生成装置200の準同型演算鍵生成部206は、準同型演算鍵EVKとして、否認可能復号鍵DSKを複数鍵準同型暗号で暗号化した複数鍵準同型暗号文を出力する。具体的には、準同型演算鍵生成部206は、否認可能復号鍵DSKと、複数鍵準同型暗号化鍵MPKとを入力として、以下の(数1)の形式で準同型演算鍵EVKを生成する。
【0042】
EVK=Enc(MPK,DSK) (数1)
ここで、アルゴリズムEncは非特許文献2記載の暗号化アルゴリズムである。
【0043】
ステップS705において、鍵生成装置200の送信部207は、否認可能復号鍵DSKと、複数鍵準同型復号鍵MSKから、以下の(数2)の形式で表される復号鍵SKを生成する。さらに、鍵生成装置200の送信部207は、否認可能暗号化鍵DPKと、複数鍵準同型暗号化鍵MPKから、以下の(数3)の形式で表される暗号化鍵PKを生成する。
【0044】
SK=(DSK,MSK) (数2)
PK=(DPK,MPK) (数3)
【0045】
鍵生成装置200の送信部207は、暗号化鍵PKを暗号化装置300と否認乱数生成装置400へ送信する。また、鍵生成装置200の送信部207は、鍵生成装置200の準同型演算鍵生成部206が生成した準同型演算鍵EVKを準同型演算装置500へ送信する。また、鍵生成装置200の送信部207は、復号鍵SKを復号装置600へ送信する。
【0046】
ステップS706において、暗号化装置300の入力部301は、ステップS705において鍵生成装置200の送信部207が送信した暗号化鍵PKを受信する。
ステップS707において、暗号化装置300の暗号化鍵保管部302は、ステップS706において暗号化装置300の入力部301が受信した暗号化鍵PKを保管する。
【0047】
ステップS708において、否認乱数生成装置400の入力部401は、ステップS705において鍵生成装置200の送信部207が送信した暗号化鍵PKを受信する。
ステップS709において、否認乱数生成装置400の暗号化鍵保管部402は、ステップS708において否認乱数生成装置400の入力部401が受信した暗号化鍵PKを保管する。
【0048】
ステップS710において、準同型演算装置500の入力部501は、ステップS705において鍵生成装置200の送信部207が送信した準同型演算鍵EVKを受信する。
ステップS711において、準同型演算装置500の準同型演算鍵保管部502は、ステップS710において準同型演算装置500の入力部501が受信した準同型演算鍵EVKを保管する。
【0049】
ステップS712において、復号装置600の入力部601は、ステップS705において鍵生成装置200の送信部207が送信した復号鍵SKを受信する。
ステップS713において、復号装置600の復号鍵保管部602において、ステップS712において復号装置600の入力部601が受信した復号鍵SKを保管する。
【0050】
図8は、本実施の形態に係る秘匿情報処理システム100の準同型演算を示すフローチャートである。
図8のステップS801からステップS815は、暗号化装置300と準同型演算装置500と復号装置600とが実行する処理である。
ステップS801からステップS806は、暗号化装置300によって実行される処理である。
ステップS807からステップS812は、準同型演算装置500によって実行される処理である。
ステップS807からステップS815は、復号装置600によって実行される処理である。
【0051】
ステップS801において、暗号化装置300の入力部301は、例えばセンサなどから収集された平文データm1とm2を受け取り、平文データm1とm2を平文保管部303へ送る。
ステップS802において、暗号化装置300の平文保管部303は、暗号化装置300の入力部301から受け取った平文データm1とm2を保管する。
ステップS803において、暗号化装置300の乱数生成部304は、乱数データr1とr2を生成し、暗号化装置300の乱数保管部306へ送る。
ステップS804において、暗号化装置300の乱数保管部306は、暗号化装置300の乱数生成部304から受け取った乱数データr1とr2を保管する。
【0052】
ステップS805において、暗号化装置300の暗号化部305は、暗号化装置300の暗号化鍵保管部302に保管されている否認可能暗号化鍵DPK1と、乱数保管部306に保管されている乱数データr1と、平文保管部303に保管されている平文データm1とから暗号文データCDPK1(m1)を生成する。さらに、暗号化装置300の暗号化部305は、暗号化装置300の暗号化鍵保管部302に保管されている否認可能暗号化鍵DPK2と、乱数保管部306に保管されている乱数データr2と、平文保管部303に保管されている平文データm2とから暗号文データCDPK2(m2)を生成する。暗号文データCDPK1(m1)とCDPK2(m2)を、暗号化装置300の送信部307へ送る。
ステップS806において、暗号化装置300の送信部307は、ステップS805において暗号化部305によって送られた暗号文データCDPK1(m1)とCDPK2(m2)を受け取り、準同型演算装置500へ送信する。
【0053】
ステップS807において、準同型演算装置500の入力部501は、暗号化装置300の送信部307から送られた暗号文データCDPK1(m1)とCDPK2(m2)を受け取り、暗号文保管部503へ送る。
ステップS808において、準同型演算装置500の暗号文保管部503は、ステップS807において準同型演算装置500の入力部501から送られた暗号文データCDPK1(m1)とCDPK2(m2)を受け取り、保管する。
ステップS809において、準同型演算装置500の入力部501は、キーボードあるいはマウス、記憶装置などから入力された演算回路fを受け取り、演算処理構成部504へ送る。
ステップS810において、準同型演算装置500の演算処理構成部504は、ステップS808において準同型演算装置500の暗号文保管部503に保管されている暗号文データCDPK1(m1)とCDPK2(m2)と、ステップS809において準同型演算装置500の入力部501から送られてきた演算回路fを入力として、以下の(数4)の形式で表される準同型演算処理回路Fを生成する。準同型演算処理回路Fを、準同型演算装置500の準同型演算部505へ送信する。
【0054】
F(DSK1,DSK2)=f(Dec(DSK1,CDPK1(m1)),Dec(DSK2,CDPK2(m2))) (数4)
ここで、アルゴリズムDecは非特許文献1記載の復号アルゴリズムである。
準同型演算装置500では、準同型演算時に、暗号化したまま否認可能準同型暗号の復号処理を計算することで、暗号化データを否認可能暗号文から複数鍵準同型暗号文に変換する。
【0055】
ステップS811において、準同型演算装置500の準同型演算部505は、準同型演算鍵EVKと、準同型演算処理回路Fを入力として、非特許文献2記載の準同型演算アルゴリズムを用いることで準同型演算後暗号文データCMPK(M)を生成し、準同型演算後暗号文データCMPK(M)を送信部506へ送る。
ステップS812において、準同型演算装置500の送信部506は、準同型演算後暗号文データCMPK(M)を復号装置600へ送る。
【0056】
ステップS813において、復号装置600の入力部601は、ステップS812において準同型演算装置500の送信部506から送られた準同型演算後暗号文データCMPK(M)を受け取り、復号処理部603へ送る。
ステップS814において、復号装置600の復号処理部603は、ステップS813において復号装置600の入力部601から送られてきた準同型演算後暗号文データCMPK(M)と、復号装置600の復号鍵保管部602に保管されている復号鍵MSK1とMSK2とを用いて復号処理を行い、復号結果Mを得る。ここで、準同型演算後暗号文データCMPK(M)の暗号化鍵集合MPK={MPK1,MPK2}に対して、複数鍵準同型暗号化鍵MPK1が複数鍵準同型復号鍵MSK1を入力として複数鍵準同型暗号化鍵生成部205で生成されており、複数鍵準同型暗号化鍵MPK2が複数鍵準同型復号鍵MSK2を入力として複数鍵準同型暗号化鍵生成部205で生成されている時に限り、復号結果M=f(m1,m2)を復号することができる。復号処理部603は復号結果Mを復号結果保管部604に送る。
【0057】
ステップS815において、復号装置600の復号結果保管部604は、ステップS814において復号装置600の復号処理部603から送られてきた復号結果Mを保管する。
なお、復号装置600は、入力として準同型演算後暗号文だけを受け付ける。しかし、準同型演算前暗号文を復号したい場合は、準同型演算装置500に、入力と同じ値をそのまま出力する演算について準同型演算を要求し、得られた準同型演算後暗号文をステップS814における処理と同様にして復号することで、準同型演算前暗号文の平文データを復号することができる。
ステップS815により、秘匿情報処理システム100の準同型演算処理は終了する。
【0058】
図9は、本実施の形態に係る秘匿情報処理システム100の準同型演算を示すフローチャートである。
図9のステップS901からステップS904は、暗号化装置300と否認乱数生成装置400とが実行する処理である。
ステップS901は、暗号化装置300によって実行される処理である。
ステップS902からS904は、否認乱数生成装置400によって実行される処理である。
【0059】
ステップS901において、暗号化装置300の送信部307は、暗号化装置300の平文保管部303に保管されている平文データm1とm2と、暗号化装置300の乱数保管部306に保管されている乱数データr1とr2とを否認乱数生成装置400へ送る。
【0060】
ステップS902において、否認乱数生成装置400の入力部401は、ステップS901において暗号化装置300の送信部307から送られてきた平文データm1とm2と、乱数データr1とr2とを受け取り、否認乱数生成装置400の否認乱数生成部403へ送る。
ステップS903において、否認乱数生成装置400の否認乱数生成部403は、ステップS902において否認乱数生成装置400の入力部401から受け取った平文データm1と乱数データr1を受け取り、否認乱数データr1を生成する。さらに、否認乱数生成装置400の否認乱数生成部403は、ステップS902において否認乱数生成装置400の入力部401から受け取った平文データm2と乱数データr2を受け取り、否認乱数データr2を生成する。否認乱数データr1とr2を、否認乱数生成装置400の否認乱数保管部404に送る。
ステップS904において、否認乱数生成装置400の否認乱数保管部404は、S903において否認乱数生成装置400の否認乱数生成部403から受け取った否認乱数データr1とr2を保管する。
【0061】
本実施の形態では、以下のような秘匿情報処理システム100について説明した。
鍵生成装置200は、否認可能暗号に用いられる第1否認可能暗号化鍵と第1否認可能復号鍵、および第2否認可能暗号化鍵と第2否認可能復号鍵を生成する。第1否認可能暗号化鍵と第1否認可能復号鍵、および第2否認可能暗号化鍵と第2否認可能復号鍵の各々の組は、異なるユーザにより生成される個別の鍵である。また、鍵生成装置200は、複数鍵準同型暗号に用いられる第1複数鍵準同型暗号化鍵と第1複数鍵準同型復号鍵、および第2複数鍵準同型暗号化鍵と第2複数鍵準同型復号鍵を生成する。また、鍵生成装置200は、第1否認可能復号鍵と第1複数鍵準同型暗号化鍵とから第1準同型演算鍵を生成する。また、鍵生成装置200は、第2否認可能復号鍵と第2複数鍵準同型暗号化鍵とから第2準同型演算鍵を生成する。
暗号化装置300は、第1否認可能暗号化鍵で第1平文データを暗号化し、第1暗号化データとする。また、暗号化装置300は、第2否認可能暗号化鍵で第2平文データを暗号化し、第2暗号化データとする。
否認乱数生成装置400は、第1否認可能暗号化鍵と第1暗号文データとを入力とし、第1平文データの開示の否認のための第1否認乱数データを生成する。また、否認乱数生成装置400は、第2否認可能暗号化鍵と第2暗号文データとを入力とし、第2平文データの開示の否認のための第2否認乱数データを生成する。
準同型演算装置500は、第1準同型演算鍵と第2準同型演算鍵、および第1暗号化データと第2暗号化データを入力とし、第1平文データと第2平文データとの計算結果を準同型演算した準同型演算後暗号文データを生成する。
復号装置600は、第1否認可能復号鍵および第2否認可能復号鍵を用いて、準同型演算後暗号文データを復号する。
【0062】
***ハードウェア構成の説明***
図10は、本実施の形態に係る秘匿情報処理システム100の各装置のハードウェア構成例を示す図である。
以下において、鍵生成装置200と暗号化装置300と否認乱数生成装置400と準同型演算装置500と復号装置600との各装置を、秘匿情報処理システム100の各装置と呼ぶ場合がある。
【0063】
秘匿情報処理システム100の各装置は、コンピュータである。秘匿情報処理システム100の各装置は、プロセッサ910を備えるとともに、メモリ921、補助記憶装置922、入力インタフェース930、出力インタフェース940、および通信装置950といった他のハードウェアを備える。プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0064】
図2から図6で説明したように、秘匿情報処理システム100の各装置は、機能要素を備えている。
秘匿情報処理システム100の各装置の機能要素は、ソフトウェアにより実現される。また、秘匿情報処理システム100の各装置の記憶部は、メモリ921に備えられる。なお、記憶部は、補助記憶装置922に備えられていてもよいし、メモリ921と補助記憶装置922に分散して備えられていてもよい。
【0065】
プロセッサ910は、秘匿情報処理プログラムを実行する装置である。秘匿情報処理プログラムは、秘匿情報処理システム100の各装置の機能要素を実現するプログラムである。
プロセッサ910は、演算処理を行うICである。プロセッサ910の具体例は、CPU、DSP、GPUである。ICは、Integrated Circuitの略語である。CPUは、Central Processing Unitの略語である。DSPは、Digital Signal Processorの略語である。GPUは、Graphics Processing Unitの略語である。
【0066】
メモリ921は、データを一時的に記憶する記憶装置である。メモリ921の具体例は、SRAM、あるいはDRAMである。SRAMは、Static Random Access Memoryの略語である。DRAMは、Dynamic Random Access Memoryの略語である。
補助記憶装置922は、データを保管する記憶装置である。補助記憶装置922の具体例は、HDDである。また、補助記憶装置922は、SD(登録商標)メモリカード、CF、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬の記憶媒体であってもよい。なお、HDDは、Hard Disk Driveの略語である。SD(登録商標)は、Secure Digitalの略語である。CFは、CompactFlash(登録商標)の略語である。DVDは、Digital Versatile Diskの略語である。
【0067】
入力インタフェース930は、マウス、キーボード、あるいはタッチパネルといった入力装置と接続されるポートである。入力インタフェース930は、具体的には、USB端子である。なお、入力インタフェース930は、LANと接続されるポートであってもよい。USBは、Universal Serial Busの略語である。LANは、Local Area Networkの略語である。
【0068】
出力インタフェース940は、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェース940は、具体的には、USB端子またはHDMI(登録商標)端子である。ディスプレイは、具体的には、LCDである。出力インタフェース940は、表示器インタフェースともいう。HDMI(登録商標)は、High Definition Multimedia Interfaceの略語である。LCDは、Liquid Crystal Displayの略語である。
【0069】
通信装置950は、レシーバとトランスミッタを有する。通信装置950は、LAN、インターネット、電話回線、あるいはWi-Fi(登録商標)といった通信網に接続している。通信装置950は、具体的には、通信チップまたはNICである。NICは、Network Interface Cardの略語である。
【0070】
秘匿情報処理プログラムは、秘匿情報処理システム100において実行される。秘匿情報処理プログラムは、プロセッサ910に読み込まれ、プロセッサ910によって実行される。メモリ921には、秘匿情報処理プログラムだけでなく、OSも記憶されている。OSは、Operating Systemの略語である。プロセッサ910は、OSを実行しながら、秘匿情報処理プログラムを実行する。秘匿情報処理プログラムおよびOSは、補助記憶装置922に記憶されていてもよい。補助記憶装置922に記憶されている秘匿情報処理プログラムおよびOSは、メモリ921にロードされ、プロセッサ910によって実行される。なお、秘匿情報処理プログラムの一部または全部がOSに組み込まれていてもよい。
【0071】
秘匿情報処理システム100は、プロセッサ910を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、秘匿情報処理プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ910と同じように、秘匿情報処理プログラムを実行する装置である。
【0072】
秘匿情報処理プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ921、補助記憶装置922、または、プロセッサ910内のレジスタあるいはキャッシュメモリに記憶される。
【0073】
秘匿情報処理システム100の各装置の機能要素の各部の「部」を「回路」、「工程」、「手順」、「処理」、あるいは「サーキットリー」に読み替えてもよい。秘匿情報処理プログラムは、秘匿情報処理システム100の各装置の機能要素の各部の「部」を「処理」に読み替えた処理を、コンピュータに実行させる。秘匿情報処理システム100の各装置の機能要素の各部の「部」を「プログラム」、「プログラムプロダクト」、「プログラムを記憶したコンピュータ読取可能な記憶媒体」、または「プログラムを記録したコンピュータ読取可能な記録媒体」に読み替えてもよい。また、秘匿情報処理方法は、秘匿情報処理システム100が秘匿情報処理プログラムを実行することにより行われる方法である。
秘匿情報処理プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、秘匿情報処理プログラムは、プログラムプロダクトとして提供されてもよい。
【0074】
***他の構成***
本実施の形態では、秘匿情報処理システム100の各装置の機能要素がソフトウェアで実現される。変形例として、秘匿情報処理システム100の各装置の機能要素がハードウェアで実現されてもよい。
具体的には、秘匿情報処理システム100の各装置は、プロセッサ910に替えて電子回路909を備える。
【0075】
図11は、本実施の形態の変形例に係る秘匿情報処理システム100の各装置のハードウェア構成例を示す図である。
電子回路909は、秘匿情報処理システム100の各装置の機能要素を実現する専用の電子回路である。電子回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。FPGAは、Field-Programmable Gate Arrayの略語である。
【0076】
秘匿情報処理システム100の各装置の機能要素は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
【0077】
別の変形例として、秘匿情報処理システム100の各装置の機能要素の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。また、秘匿情報処理システム100の各装置の機能要素の一部またはすべての機能がファームウェアで実現されてもよい。
【0078】
プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、秘匿情報処理システム100の各装置の機能要素は、プロセッシングサーキットリにより実現される。
【0079】
***本実施の形態の効果の説明***
本実施の形態に係る秘匿情報処理システムでは、例えば、以下のような効果を奏する。
通常、準同型暗号を用いたクラウドへの分析処理の委託を想定する場合、否認可能性は分析処理前の暗号文に対して成り立てば十分であり、分析処理後の暗号文は否認可能性を持つ準同型暗号の暗号文である必要はない。
本実施の形態に係る秘匿情報処理システムでは、否認可能性を持つ準同型暗号に複数鍵準同型暗号を組み合わせることで、否認可能性を担保したまま異なる鍵で暗号化されたデータ同士でも分析処理できる機能を付与する。
本実施の形態に係る秘匿情報処理システムでは、否認可能性を持つ準同型暗号と複数鍵準同型暗号を組み合わせるために、否認可能性を持つ準同型暗号の暗号文から複数鍵準同型暗号の暗号文に変換しつつ分析処理を行う特殊な分析処理回路を設計することで、否認可能性を保ったまま異なる鍵で暗号化されたデータ同士での分析処理を可能にする。
これにより、異なる鍵で暗号化されたデータ同士で分析処理できる準同型暗号を提供できる。また、暗号化データは暗号化データ生成者の鍵だけで暗号化すれば十分であり、効率性の改善にも寄与するという効果がある。
【0080】
通常、内部で同じ鍵の下で暗号化されたデータ同士でしか準同型演算できない準同型暗号を用いて平文データを暗号化しているため、異なる鍵の下で暗号化されたデータ同士では準同型演算できなかった。本実施の形態に係る秘匿情報処理システムによれば、異なる暗号化鍵の下で生成された暗号文データ同士でも準同型演算することができる。
【0081】
また、本実施の形態に係る秘匿情報処理システムによれば、異なる暗号化鍵の下で生成された暗号文データ同士で準同型演算することができるので、より小さな暗号文データサイズでクラウドサーバに分析処理を委託することができる。通常、同じ鍵の下で暗号化されたデータ同士でしか準同型演算できないため、暗号文データ作成者は自身の平文データを他の暗号文データ生成者の鍵の下でも暗号化する必要があり、暗号文データのサイズが非常に大きかった。本実施の形態に係る秘匿情報処理システムによれば、そのような他の暗号文データ生成者の鍵の下での暗号文データを生成する必要がないため、効率性の向上に寄与するという効果がある。
【0082】
以上のように、本実施の形態に係る秘匿情報処理システムによれば、否認可能暗号と複数鍵準同型暗号という二種類の暗号技術を上手く組み合わせることで、異なる鍵で暗号化されたデータ同士で分析処理できる準同型暗号を提供することができる。また、暗号化データは暗号化データ生成者の鍵だけで暗号化すれば十分であり、効率性の改善にも寄与するという効果がある。
【0083】
以上の実施の形態1では、秘匿情報処理システムの各装置の各部を独立した機能ブロックとして説明した。しかし、秘匿情報処理システムの各装置の構成は、上述した実施の形態のような構成でなくてもよい。秘匿情報処理システムの各装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。また、秘匿情報処理システムの各装置は、1つの装置でなく、複数の装置から構成されたシステムでもよい。
また、実施の形態1のうち、複数の部分を組み合わせて実施しても構わない。あるいは、この実施の形態のうち、1つの部分を実施しても構わない。その他、この実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
すなわち、実施の形態1では、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【0084】
なお、上述した実施の形態は、本質的に好ましい例示であって、本開示の範囲、本開示の適用物の範囲、および本開示の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。例えば、フロー図あるいはシーケンス図を用いて説明した手順は、適宜に変更してもよい。
【符号の説明】
【0085】
100 秘匿情報処理システム、101 インターネット、200 鍵生成装置、201,301,401,501,601 入力部、202 否認可能復号鍵生成部、203 否認可能暗号化鍵生成部、204 複数鍵準同型復号鍵生成部、205 複数鍵準同型暗号化鍵生成部、206 準同型演算鍵生成部、207,307,506 送信部、300 暗号化装置、302,402 暗号化鍵保管部、303 平文保管部、304 乱数生成部、305 暗号化部、306 乱数保管部、400 否認乱数生成装置、403 否認乱数生成部、404 否認乱数保管部、500 準同型演算装置、502 準同型演算鍵保管部、503 暗号文保管部、504 演算処理構成部、505 準同型演算部、600 復号装置、602 復号鍵保管部、603 復号処理部、604 復号結果保管部、909 電子回路、910 プロセッサ、921 メモリ、922 補助記憶装置、930 入力インタフェース、940 出力インタフェース、950 通信装置。
【要約】
鍵生成装置(200)は、暗号化鍵PKと復号鍵SKと準同型演算鍵EVKを生成する。暗号化装置(300)は、暗号化鍵PKで平文データmを暗号化した暗号化データCDPK(m)を生成する。否認乱数生成装置(400)は、暗号化鍵PKと暗号文データCDPK(m)とを入力とし、平文データmの開示の否認のための否認乱数データrを生成する。準同型演算装置(500)は、準同型演算鍵EVKで平文データの計算結果を準同型演算した準同型演算後暗号文データCMPK(M)を生成する。復号装置(600)は、準同型演算後暗号文データCMPK(M)を復号する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11