加密數據運算系統、裝置以及程序的制作方法
【技術領域】
[0001 ] 本發明的實施方式涉及加密數據運算系統、裝置以及程序。
【背景技術】
[0002] 對數值a、b進行加密,可獲得加密數據E(a)、E(b)。已知有不對這種加密數據 E(a)、E(b)進行解密、而是基于加密數據E(a)、E(b)對數值a、b的大小進行比較的大小比 較方法。
[0003] 在這種大小比較方法中,首先,某個實體A選擇隨機數r,并基于隨機數r以及加密 數據E(a)、E(b)計算加密數據E(r(a-b))。其他多個(例如三個)實體B、C、D分割并保 持用于將加密數據E(r(a-b))解密的解密密鑰。
[0004] 其他實體B、C、D攜帶分割后的解密密鑰,并基于該攜帶的解密密鑰對加密數據 E(r(a-b))進行解密。另外,通過解密結果r(a-b)的正負判定數值a、b的大小關系。 此外,在該大小比較方法中,也將大小比較所需的解密密鑰稱作比較密鑰。
[0005]現有技術文獻 [0006] 非專利文獻
[0007]非專利文獻 1:KunPeng,JuanmaGonzalezNietoandEdDawson,"Ciphertext Comparison,aNewSolutiontotheMillionaireProblem, ',//eprints.qut. edu.au/24891/l/Ciphertext_Comparison% 2C_a_New_Solution_to_the_Mi11ionaire_ Problem,pdf
【發明內容】
[0008] 發明要解決的問題
[0009] 然而,雖然以上那種大小比較方法通常沒有特別的問題,但根據本發明人的研究, 不能使用各加密數據E(a)、E(b)、E(C)、…對各數值進行加減運算(例如E(3a+b- 4c))。 因此,不能判定該加減運算中的被減數(例如3a+b)與減數(例如4c)之間的大小關系。
[0010] 本發明要解決的課題在于提供一種能夠使用將各數值加密而成的各加密數據對 該各數值進行加減運算、從而能夠判定該加減運算中的被減數與減數之間的大小關系的加 密數據運算系統、裝置以及程序。
[0011] 用于解決問題的手段
[0012] 實施方式的加密數據運算系統具備客戶終端、運算裝置以及運算輔助裝置。
[0013] 上述客戶終端具備數值存儲機構、密鑰生成機構以及加密機構。
[0014] 上述數值存儲機構存儲多個數值。
[0015] 上述密鑰生成機構生成用于將上述各數值加密的加密密鑰、以及構成與上述加密 密鑰對應的解密密鑰的二次運算密鑰和三次運算密鑰。
[0016] 上述加密機構基于上述加密密鑰將上述各數值加密,生成多個加密數據。
[0017] 上述運算裝置具備三次運算密鑰存儲機構、一次運算機構、三次運算機構以及大 小判定機構。
[0018] 上述三次運算密鑰存儲機構存儲上述三次運算密鑰。
[0019] 上述一次運算機構基于上述各加密數據執行一次運算處理,從而生成一次運算結 果,該一次運算結果相當于將對上述各數值進行了加減運算的式子的運算結果加密而得的 數據。
[0020] 在通過上述運算輔助裝置生成使上述一次運算結果隨機化而得的二次運算結果 的情況下,上述三次運算機構基于上述二次運算結果以及上述三次運算密鑰執行三次運算 處理,從而生成三次運算結果,該三次運算結果相當于僅用隨機數將進行了上述加減運算 的式子的運算結果秘密化而得的數據。
[0021] 上述大小判定機構基于上述三次運算結果判定上述式子中的被減數與減數之間 的大小關系。
[0022] 上述運算輔助裝置具備二次運算密鑰存儲機構、隨機數生成機構以及二次運算機 構。
[0023] 上述二次運算密鑰存儲機構存儲上述二次運算密鑰。
[0024] 上述隨機數生成機構生成上述隨機數。
[0025] 上述二次運算機構基于上述一次運算結果、上述二次運算密鑰以及上述隨機數執 行二次運算處理,從而生成上述二次運算結果。
【附圖說明】
[0026]圖1是表示第1實施方式的加密數據運算系統的構成例的示意圖。
[0027]圖2是表示該實施方式中的加密數據運算系統的其他構成例的示意圖。
[0028] 圖3是表示該實施方式中的加密數據運算系統的概要的示意圖。
[0029] 圖4是表示該實施方式中的各裝置的構成的示意圖。
[0030] 圖5是用于說明該實施方式中的密鑰生成處理的動作的序列圖。
[0031] 圖6是用于說明該實施方式中的加密處理的動作的序列圖。
[0032] 圖7是用于說明該實施方式中的一次運算處理的動作的序列圖。
[0033] 圖8是用于說明該實施方式中的二次運算處理的動作的序列圖。
[0034] 圖9是用于說明該實施方式中的三次運算處理的動作的序列圖。
【具體實施方式】
[0035] 以下,使用附圖對各實施方式進行說明。此外,以下的各裝置能夠分別通過硬 件構成、或者硬件資源與軟件的組合構成中的任意一者來實施。作為組合構成的軟件, 使用如圖1、圖2以及圖4所示預先從網絡或者非易失性的計算機可讀取的存儲介質 (non-transitorycomputer-readablestoragemedium)Ml~M5、M2'、M4'、M5'安裝于計 算機的程序,該程序用于通過被該計算機的處理器執行,而使該計算機實現對應的裝置的 功能。
[0036](第1實施方式)
[0037] 首先,使用圖1對本實施方式的加密數據運算系統的構成例進行說明。加密數據 運算系統具備密鑰生成裝置10、加密裝置20、存儲裝置30、運算裝置40以及運算輔助裝置 50〇
[0038] 這里,密鑰生成裝置10、存儲裝置30、運算裝置40以及運算輔助裝置50是提供服 務的服務提供者所具有的信息處理裝置。
[0039] 加密裝置20是作為該服務的使用者的用戶所具有的信息處理裝置。各裝置10、 20、30、40、50能夠經由通信網絡而可通信地連接。
[0040] 通信網絡例如是無線LAN(LocalAreaNetwork,局域網)、有線LAN、光線路網、電 話線路網、內部網、以太網(注冊商標)以及互聯網、或它們的組合。另外,在圖1中,示出 了連接于加密數據運算系統的各裝置分別僅為一個,但它們也可以分別為多個。另外,在圖 1中,示出了各裝置分別獨立地連接于加密數據運算系統的例子,但并不局限于此,也可以 使多個裝置包含于一個信息處理裝置中。例如,如圖2所示,密鑰生成裝置10以及加密裝 置20也可以包含于一個客戶終端(未圖示)中。此外,雖然未圖示,例如也可以使存儲裝 置30以及運算裝置40包含于一個服務器裝置中。
[0041] 圖3是表示加密數據運算系統的概要的示意圖。該加密數據運算系統包括用戶、 服務提供者A、以及服務提供者B。另外,在圖3中,省略了密鑰生成裝置10的圖示,但密鑰 生成裝置10既可以由能夠信賴的第三者保持,也可以由用戶保持。
[0042] 用戶使用在密鑰生成裝置10中生成的加密密鑰,在加密裝置20中對數值叫。= 1,2,3,…)進行加密。接下來,用戶將生成的加密數據E(mi)向服務提供者A發送。
[0043] 服務提供者A將接收的加密數據E〇1〇存儲于存儲裝置30。服務提供者A從存儲 裝置30獲取(一次運算處理所需的)加密數據E〇1〇,并在運算裝置40中進行一次運算處 理。服務提供者A將一次運算處理結果向服務提供者B發送。
[0044] 服務提供者B被預先傳遞在密鑰生成裝置10中生成的、用于進行二次運算的密鑰 (以下,稱作二次運算密鑰)。服務提供者B使用所接收的一次運算處理結果和預先傳遞的 二次運算密鑰,在運算輔助裝置50中進行二次運算處理。服務提供者B將二次運算處理結 果向服務提供者A發送。
[0045] 服務提供者A被預先傳遞在密鑰生成裝置10中生成的、用于進行三次運算的密鑰 (以下,稱作三次運算密鑰)。服務提供者A使用所接收的二次運算處理結果和預先傳遞的 三次運算密鑰,在運算裝置40中進行三次運算處理。最后,服務提供者A將三次運算處理 結果向用戶發送。或者,服務提供者A也可以向用戶發送對執行多次上述處理而得的多個 三次運算處理結果進一步進行運算處理的結果。
[0046] 關于由哪個實體保持哪個裝置,并不限定于上述的例子,能夠應用各種變更。
[0047] 接著,使用圖4具體地說明密鑰生成裝置10、加密裝置20、存儲裝置30、運算裝置 40以及運算輔助裝置50的構成。
[0048] 密鑰生成裝置10具備密鑰生成參數存儲部11、暫時數據存儲部12、參數生成部 13、密鑰生成部14、通信部15以及控制部16。
[0049] 這里,密鑰生成參數存儲部11是存儲密鑰生成參數的存儲裝置。作為密鑰生成參 數,例如能夠使用用于確定關于密鑰生成的合成數N=pq的比特數的下限的安全參數入。
[0050] 暫時數據存儲部12是存儲運算對象的多個數值、各生成部13、14的處理中途以及 處理結果等的暫時數據的存儲裝置。
[0051]參數生成部13生成密鑰生成的參數。
[0052] 密鑰生成部14生成加密密鑰(例如a、sv)、二次運算密鑰(例如a\s)、以及三 次運算密鑰(例如v)。加密密鑰是用于對各數值進行加密的密鑰。二次運算密鑰以及三次 運算密鑰構成了與加密密鑰對應的解密密鑰(例如a\s、v)。
[0053] 通信部15是用于與其他裝置20~50進行通信的通信接口,例如具有被控制部 16控制而將暫時數據存儲部12內的二次運算密鑰、三次運算密鑰分別發送到運算輔助裝 置50、運算裝置40的功能。此外,在以下的說明中,出于避免收發信號時冗長的記載的觀 點,在收發信號時,有時省略經由通信部15的意思記載。這對于其他裝置20~50的通信 部25、32、44、55也是相同的。
[0054] 控制部16具有控制各部11~15執行圖5所示的動作的功能。
[0055] 加密裝置20具備加密參數生成部21、暫時數據存儲部22、密文生成部23、加密密 鑰存儲部24、通信部25以及控制部26。
[0056] 這里,加密參數生成部21生成加密參數。作為加密參數,例如能夠使用從0以上 且小于N2的整數的集合ZN2中隨機地選擇的k個隨機數巧、…、rk。
[0057] 暫時數據存儲部22是存儲各生成部21、23的處理中途以及處理結果等的暫時數 據的存儲裝置。
[0058] 密文生成部23基于加密密鑰對各數值進行加密,生成多個密文(多個加密數據)。
[0059] 加密密鑰存儲部24是存儲加密密鑰的存儲裝置。
[0060] 通信部25是用于與其他裝置10、30~50進行通信的通信接口,例如具有被控制 部26控制而將暫時數據存儲部22內的密文發送到存儲裝置3