情報暗号化方法、情報暗号化装置、プログラム、および記録媒体
【課題】高い安全性を備え、高効率な通信量、計算量であり、通信対象の情報がストリーミングデータでも対応でき、標準規格の装置を流用できる。
【解決手段】共通鍵を用いる情報暗号化方法であって、共通鍵Rを用いて、通信対象の情報mのビット長に等しいマスクMを生成し(1322、S62)、マスクMと情報mとの排他的論理和を計算して、情報mを暗号化し(1324、S84)、入力された定数Pn+1と暗号化情報c’を結合し(1325、S86)、共通鍵Rと暗号化情報c’を用いて、RKA安全に、暗号化情報c’の認証子Tagを生成し(1326、S64)、暗号化情報c’と認証子Tagを結合させる。
【解決手段】共通鍵を用いる情報暗号化方法であって、共通鍵Rを用いて、通信対象の情報mのビット長に等しいマスクMを生成し(1322、S62)、マスクMと情報mとの排他的論理和を計算して、情報mを暗号化し(1324、S84)、入力された定数Pn+1と暗号化情報c’を結合し(1325、S86)、共通鍵Rと暗号化情報c’を用いて、RKA安全に、暗号化情報c’の認証子Tagを生成し(1326、S64)、暗号化情報c’と認証子Tagを結合させる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報暗号化方法、情報暗号化装置、プログラムおよび記録媒体に関する。
【背景技術】
【0002】
まず、本明細書中で使用する用語について説明する。「暗号化する」とは、送信の対象となる情報(ビット列、以下「平文」とも呼び、テキスト文章に限られず映像情報、音声情報なども含む)をある鍵(ビット列)を用いて他の(通常元のデータとはまったく異なる)ビット列(以下「暗号文」とも呼ぶ)に変換することを言う。ただし、暗号文だけからでは平文に関する情報を得ることが困難なこと、対応する平文と暗号文の組だけからでは鍵に関する情報を得ることが困難なことなど、状況によって様々な安全性が要求される。「暗号化装置」とは、データを暗号化する装置を指す。また、「復号する」とは、鍵を用いて暗号文を元のデータ(平文)に復元することを言い、「復号装置」とは、暗号化されたデータを復号する装置を指す。さらに、単に「暗号」、「暗号技術」、「暗号アルゴリズム」、「暗号装置」、「暗号方法」、「暗号手段」、というときは、暗号化と復号の両方を含むものとする。
【0003】
一般に、暗号は公開鍵暗号と共通鍵暗号の2種類に類別できる。公開鍵暗号は、送信側が受信側の(秘密ではない)公開鍵を使ってデータ(平文)を暗号化して送信するために利用される。一方、共通鍵暗号は、送信側と受信側が同じ鍵を秘密に保持しているときデータ(平文)を暗号化して送信するために利用される。通常、公開鍵暗号は共通鍵暗号より低速なため、暗号化通信を行う際には、共通鍵暗号で問題となる秘密鍵の共有問題(鍵配送問題)の解決に公開鍵暗号を利用し、秘密鍵が共有された後の通信秘匿には共通鍵暗号を用いることが多い。公開鍵暗号システムは、公開鍵を登録する公開鍵簿、送信装置、および受信装置からなるシステムである。公開鍵暗号システムは公開鍵暗号のみでも実装できるが、公開鍵暗号で鍵配送をし、その時共有された秘密鍵で、共通鍵暗号を使って平文を暗号化通信するのが一般的な公開鍵暗号(ハイブリッド暗号)システムである。
【0004】
標準化が進められているハイブリッド暗号の実現方法として、KEM(Key Encapsulation Mechanism)−DEM(Data Encapsulation Mechanism)による構成がある(非特許文献1)。この構成について以下に説明する。
【0005】
図1に鍵カプセル化装置(KEM)2の機能構成を示す。本手段は、鍵ビット長パラメータ4、鍵生成部6、秘密鍵生成・暗号化部8、秘密鍵復号部10から構成される。鍵ビット長パラメータ4は、確定的アルゴリズムを実行する構成部であって、セキュリティパラメータλから秘密鍵のビット長パラメータklを出力する。記号では、kl=KL(λ)と表すこととする。ここで、セキュリティパラメータλとは、0以上の整数であって、送信者と受信者の間であらかじめ定まっているものとする。セキュリティパラメータλは理論上必要なパラメータであって、これを引数に取る各アルゴリズムが、λに関する多項式時間内で終了することを規定するために設けてあるものである。鍵生成部6は、確率的アルゴリズムを実行する構成部であって、セキュリティパラメータλから公開鍵pkと私有鍵skの組を出力する。記号では、(pk,sk)←KG(λ)と表すこととする。秘密鍵生成・暗号化部8は、確率的アルゴリズムを実行する構成部であって、公開鍵pkから秘密鍵aと暗号化した秘密鍵eの組を出力する。記号では、(a,e)←KE(pk)と表すこととする。ここで秘密鍵aは、ビット長がklの0または1からなり、記号ではa∈{0,1}klと表す。また暗号化した秘密鍵は、ビット長が任意の0または1からなり、記号ではe∈{0,1}*と表す。秘密鍵復号部10は、確定的アルゴリズムを実行する構成部であって、私有鍵skを用いて暗号化された秘密鍵eを復号し、秘密鍵aを出力する。記号では、a=KDsk(e)と表すこととする。鍵カプセル化装置(KEM)2では、任意の(pk,sk)←KG(λ)と(a,e)←KE(pk)に対して、常にa=KDsk(e)が成り立つ。上述した「←」は確率的に求められるということであり、「=」は確定的に求められることを示す。
【0006】
図2にデータカプセル化装置(DEM)12の機能構成を示す。本装置は、鍵ビット長パラメータ14、情報暗号化部16、情報復号部18から構成される。鍵ビット長パラメータ14は、確定的アルゴリズムを実行する構成部であって、セキュリティパラメータλから秘密鍵のビット長パラメータdlを出力する。記号では、dl=DL(λ)と表すこととする。情報暗号化部16は、確定的アルゴリズムの構成部であって、秘密鍵aを用いて平文mを暗号化し、暗号文cを出力する。記号では、c=DEa(m)と表すこととする。ここで秘密鍵aは、ビット長がdlの0または1からなるビット列である(a∈{0,1}dl)。また平文mおよび暗号文cは、ビット長が任意の0または1からなるビット列である(m∈{0,1}*、c∈{0,1}*)。情報復号部18は、確定的アルゴリズムを実行する構成部であって、秘密鍵aを用いて暗号文cを復号し、平文mを出力する。記号では、m=DDa(c)と表すこととする。データカプセル化装置(DEM)12では、任意のa∈{0,1}dlとm∈{0,1}*に対して、常にDDa(DEa(m))=mが成り立つ。
【0007】
図3にハイブリッド暗号システムの機能構成を示す。ハイブリッド暗号システムは、鍵カプセル化装置2内の構成装置とデータカプセル化装置12内の構成装置とを組み合わせた、暗号化装置20と復号装置40から構成される。また、鍵カプセル化装置2とデータカプセル化装置12との両方で秘密鍵aは使用されることから、このシステム内ではkl=dlが成立することが必要である。
【0008】
暗号化装置20は、秘密鍵生成・暗号化部8によって、受信者の公開鍵pkから秘密鍵aと暗号化した秘密鍵e(e∈{0,1}*)の組を得る((a,e)←KE(pk))。次に、情報暗号化部16で、秘密鍵aを用いて平文m(m∈{0,1}*)を暗号化し、暗号文c(c∈{0,1}*)を得る(c=DEa(m))。このようにして暗号化装置20は、復号装置40への出力として、暗号化した秘密鍵eと暗号文cの組(e,c)を得る。
【0009】
復号装置40は、あらかじめ鍵生成部42で、セキュリティパラメータλから公開鍵pkと私有鍵skの組を得る((pk,sk)←KG(λ))。公開鍵pkは、あらかじめ公開され、暗号化装置20によって上記のように使用される。また私有鍵skは、あらかじめ復号装置40内の私有鍵・公開鍵記憶部44に記憶される。復号装置40は、暗号化装置20からの暗号化された秘密鍵eと暗号文cとの組を受信すると、復号装置40は、私有鍵skを用いて暗号化された秘密鍵eを復号し、秘密鍵aを得る(a=KDsk(e))。次に、情報復号部18が、秘密鍵aを用いて暗号文cを復号し、平文mを得る(m=DDa(c))
【0010】
また、同報通信に特化した暗号方法の提案としては、例えば特許文献1がある。
以下に、同報通信の暗号方法の効率化を図った従来技術であるKEM/DEM/DEM方式の送受信とTagーKEM/OTP/OTP方式の送受信について説明する。まず、これら2つの方式に共通する事項を説明する。
【0011】
図4は鍵共有化装置50の機能構成例である。鍵共有化装置50は、鍵ビット長パラメータ52、共通鍵生成部54、共通鍵暗号化部56、共通鍵復号部58からなる。鍵ビット長パラメータ52は、セキュリティパラメータλから共通鍵Rのビット長mlを出力する確定的アルゴリズム装置である。記号では、ml=ML(λ)と表すこととする。
【0012】
共通鍵生成部54は、入力の無い確率的アルゴリズム装置として、もしくは秘密鍵a1,…,anの全部または一部を入力する確定的アルゴリズム装置として、共通鍵R(R∈{0,1}ml)を出力する。記号では、確率的アルゴリズムの場合はR←MG()、確定的アルゴリズムの場合はR=MG(a1,…,an)と表すこととする。
【0013】
共通鍵暗号化部56は、共通鍵Rを各装置の秘密鍵aiを用いて暗号化し、暗号化された共通鍵yiを出力する確定的アルゴリズム装置である。記号としては、yi=MEai(R)と表すこととする。
【0014】
共通鍵復号部58は、暗号化された共通鍵yiを秘密鍵aiを用いて復号し、共通鍵Rを出力する確定的アルゴリズム装置である。記号としては、R=MDai(yi)と表すこととする。鍵共有化装置50では、任意のai∈{0,1}kliと任意のR←MG()または確定的なR=MG(a1,…,an)に対して、常にMDai(MEai(R))=Rが成り立つ。
【0015】
図5は、暗号化同報通信を行うシステムの例である。この例はn+1個の送受信装置60i(i=0,1,2,…,n)から構成されている。各送受信装置60iは、鍵カプセル化装置2内の構成装置、データカプセル化装置12内の構成装置、および鍵共有化装置50内の構成装置を組み合わせた、送信装置62i、受信装置64i、記録装置66iから構成されている。
【0016】
次に、KEM/DEM/DEM方式の送受信とTagーKEM/OTP/OTP方式の送受信について説明する。1つ目の処理「KEM」と「Tag−KEM」については秘密鍵を生成する処理と生成された秘密鍵を暗号化する処理を示し、2つ目の処理「DEM」と「OTP」とは生成された共通鍵を暗号化する処理を示し、3つ目の処理「DEM」と「OTP」の処理は送信対象となる情報、つまり平文mを暗号化する処理を示す。以下、これら2つの方式の詳細を説明する。
【0017】
KEM/DEM/DEM方式
図6はKEM/DEM/DEM方式の送受信装置の機能構成例を示したものであり、図7はKEM/DEM/DEM方式の送受信装置の主な処理の流れを示したフローチャートである。上述の図と同一機能構成部分には同一参照番号を付け、重複説明を省略する。以下の説明についても同様である。
【0018】
また、iの値が「0」である送受信装置600の送信装置と、それ以外のn個の送受信装置60i(i=1,2,…,n)の受信装置との同報通信による送受信を説明する。
【0019】
送受信装置600中の送信装置70は、秘密鍵生成・暗号化部8、共通鍵生成部54、鍵長変更部55、共通鍵暗号化部56、情報暗号化部16により構成される。送信装置70中の秘密鍵生成・暗号化部8は受信装置の数だけ、つまりn個存在する。
【0020】
送受信装置60iの受信装置80iは秘密鍵復号部10i、共通鍵復号部58i、情報復号部18i、鍵生成部6iにより構成されている。
【0021】
まず、鍵生成部6iでセキュリティパラメータλを用いて、(pki、ski)←KG(λ)により、公開鍵pkiと私有鍵ski(i=1、...、n)を生成する(ステップS2)。生成された私有鍵skiは一旦、私有鍵・公開鍵記憶部76iに記憶される(ステップS4)。また公開鍵pkiは私有鍵・公開鍵記憶部76iに記憶しても良い(ステップS6)。公開鍵pkiは公開され、送信装置70の秘密鍵生成・暗号化部8に入力される。
【0022】
秘密鍵生成・暗号化部8(KEM)では、(ai、ei)←KE(pki)により、秘密鍵aiと秘密鍵aiを暗号化された秘密鍵eiが生成される(ステップS8)。秘密鍵aiは共通鍵生成部54および共通鍵暗号化部56に入力される。
【0023】
共通鍵生成部54では、R←MG()、もしくは、R=MG(a1、a2、...、an)により、共通鍵Rが生成される(ステップS10)。共通鍵Rは破線で示す共通鍵記憶部74iに記憶して、2回目以降の同報通信で同じ共通鍵Rを使用してよい。
【0024】
鍵長変更部55では、擬似乱数生成器であるPRNG(pseudo-random number generator)を用いて、共通鍵Rの鍵長を2倍にして、第1の共通鍵rと第2の共通鍵r’が生成される。なおR、r、r’のビット長は全て等しく、第1の共通鍵rと第2の共通鍵r’とが各々独立したものである。第1の共通鍵rと第2の共通鍵r’とが結合された状態r‖r’で、共通鍵暗号化部56に入力される。この明細書、図面の説明で、「‖」は結合されていることを示す。第1の共通鍵rと第2の共通鍵r’は独立した状態で、情報暗号化部16に入力される。
【0025】
共通鍵暗号化部56(DEM)では、秘密鍵aiを用いて、共通鍵r‖r’を暗号化して、暗号化された共通鍵yiが生成される。具体的には、yi=MEai(r‖r’)により生成される(ステップS12)。
【0026】
次に、情報暗号化部16であるDEMについて説明する。各々独立した第1の共通鍵rと第2の共通鍵r’を用いて、情報暗号化部16では平文mが暗号化され、暗号文cが生成される。具体的には、c=DEr、r’(m)により暗号化して暗号文cが生成される(ステップS13)。
【0027】
DEM(情報暗号化部16)には通常3通りの構成が考えられる。Encrypt−and−MAC,MAC−then−Encrypt,Encrypt−then−MACの3通りである。DEM(情報暗号化部16)は、情報暗号化手段(Encrypt)と、認証子生成手段(MAC:メッセージ認証コード Message Authentication Code)と
、結合手段とを有するが、それぞれの構成で、処理の順番が異なる。送信装置70の情報暗号化部16(DEM)の構成はこれら3通りのどの構成をとってもよい。以下、これら3通りの処理について説明する。
【0028】
図8にEncrypt−and−MACの構成を示し,図9にMAC−then−Encryptの構成を示し,図10にEncrypt−then−MACの構成を示す。
【0029】
図8記載のEncrypt−and−MACでは、情報暗号化手段(Encrypt)160で、第1の共通鍵rを用いて、平文mを暗号化して仮暗号文c’が生成される。具体的には、c’=Encr(m)により生成される。また、認証子生成手段(MAC)162で、第2の共通鍵r’を用いて、平文mの認証子Tagが生成される。具体的には、Tag=MACr(m)により生成される。生成された暗号文c’と認証子Tagは結合手段164に入力される。
【0030】
結合手段164で、仮暗号文c’と認証子Tagが結合され、暗号文cが生成される。具体的には、c=c’‖Tagにより生成される。
【0031】
図9記載のMAC−then−Encryptでは、認証子生成手段166(MAC)で、第2の共通鍵r’を用いて、平文mの認証子Tagが生成される。具体的には、Tag=MACr’(m)により生成される。生成された認証子Tagは結合手段168に入力される。
【0032】
結合手段168で、平文mと生成された認証子Tagを結合させ、m‖Tagが生成される。生成されたm‖Tagは情報暗号化手段170(Encrypt)に入力される。
【0033】
情報暗号化手段170では、第1の共通鍵rを用いてm‖Tagを暗号化し、暗号文cが生成される。具体的には、c=Encr(m‖Tag)により生成される。
【0034】
図10記載のEncrypt−then−MACでは、情報暗号化手段172で、第1の共通鍵rを用いて、平文mを暗号化し、仮暗号文c’が生成される。具体的には、c’=Encr(m)により生成される。生成された仮暗号文c’は認証子生成手段174と結合手段176に入力される。
【0035】
認証子生成手段174では、第2の共通鍵r’を用いて仮暗号文c’の認証子Tagが生成される。具体的には、Tag=MACr’(c’)により生成される。生成された認証子Tagは結合手段176に入力される。
【0036】
結合手段176では、認証子Tagと仮暗号文c’とが結合され、暗号文cが生成される。具体的にはc=c’‖Tagにより生成される。
【0037】
説明を図6に戻すと、送信装置70からは、各受信装置80i用に暗号化した秘密鍵ei(i=1,2,…,n)と、各受信装置80i用に暗号化した共通鍵yiと、1つの暗号文cの組を送信する。
【0038】
上述したように、秘密鍵生成・暗号化部8がKEMに相当し、共通鍵暗号化部56がDEMに相当し、情報暗号化部16がDEMに相当する。
【0039】
次に受信装置80iの復号について説明する。秘密鍵復号部10iで、私有鍵・公開鍵記憶部76iで記憶された私有鍵skiと復号関数KDを用いて、送信装置70から受信した暗号化された秘密鍵eiを復号して、秘密鍵aiが求められる。具体的には、ai=KDski(ei)により求める(ステップS14)。
【0040】
共通鍵復号部58iで、秘密鍵aiと復号関数MDを用いて、送信装置から受信した暗号化された共通鍵yiを復号して、第1の共通鍵rと第2の共通鍵r’とが求められる。具体的にはr‖r’=MDai(yi)により求められる(ステップS16)。
【0041】
情報復号部18iで、求められた第1の共通鍵rと、第2の共通鍵r’と、復号関数DDを用いて、送信装置から受信した暗号文cを復号して、平文mが求められる。具体的には、m=DDr、r’(c)により求められる(ステップS18)。なお、KEM/DEM/DEM方式の詳細は、特許文献2に記されている。
【0042】
TagーKEM/OTP/OTP
次に、TagーKEM/OTP/OTP方式の送受信装置について説明する。詳細は非特許文献2に記載されている。ここで、OTPとはワンタイムパッドの意味であり、データと鍵(鍵長がデータ長に比べて短い場合は、擬似乱数生成器(PRNG)で鍵長をデータ長と同一の長さに伸張したもの)の排他的論理和を計算することである。図11は、TagーKEM/OTP/OTP方式の送受信装置の機能構成例を示したものであり、送信装置90と受信装置100i(i=1、...、n)により構成されている。図12はTagーKEM/OTP/OTP方式の送受信装置の主な処理の流れを示したフローチャートである。
【0043】
送信装置90は、秘密鍵・内部状態生成部92と、鍵長変更部93と、共通鍵生成部54と、情報暗号化部95と、共通鍵暗号化部94と、秘密鍵暗号化部96と、で構成されている。また、受信装置100iは秘密鍵復号部102iと、共通鍵復号部104iと、情報復号部106iと鍵生成部6iとで構成されている。
【0044】
受信装置100i内の鍵生成部6iで私有鍵skiと公開鍵pkiが生成され、私有鍵skiが私有鍵・公開鍵記憶部76iに記憶され、公開鍵pkiが公開される(ステップS20、ステップS22、ステップS24)。公開鍵pkiは秘密鍵・内部状態生成部92に入力される。
【0045】
秘密鍵・内部状態生成部92で、公開鍵pkiとTag−KEM秘密鍵生成関数Giを用いて、秘密鍵aiと内部状態ωiが生成される。具体的には、(ai、ωi)←Gi(pki)により生成される(ステップS28)。秘密鍵aiは秘密鍵暗号化部96、共通鍵暗号化部94に入力され、内部状態ωiは秘密鍵暗号化部96に入力される。
【0046】
また、共通鍵生成部54により共通鍵Rが生成される(ステップS29)。生成された共通鍵Rは、鍵長変更部93(PRNG:擬似乱数生成器)に入力される。共通鍵Rのビット長は、平文mのビット長と比較して短い。よって、以下で説明する情報暗号化部95の処理のために、共通鍵Rのビット長と平文mのビット長とを同一にしなければならない。鍵長変更部93では、共通鍵Rのビット長が平文mと同一になるように、共通鍵Rのビット長が変更され、共通鍵R’が生成される。共通鍵R’は、情報暗号化部95、共通鍵暗号化部94に入力される。
【0047】
共通鍵暗号化部94で、共通鍵R’と秘密鍵aiの排他的論理和を計算する、つまり以下の式を計算することで共通鍵R’を暗号化して、暗号化された共通鍵xiが求められる(ステップS30)。
【0048】
【数1】
【0049】
暗号化された共通鍵xiは秘密鍵暗号化部96に入力される。
【0050】
また情報暗号化部95では、共通鍵R’を用いて、平文mを暗号化して暗号文cが求められる。具体的には、以下の式により暗号文cを求める(ステップS31)。
【0051】
【数2】
【0052】
求められた暗号文cは、秘密鍵暗号化部96に入力される。
【0053】
秘密鍵暗号化部96で、Tag−KEM暗号化関数Eiと、内部状態ωiと、暗号文cとを用いて秘密鍵aiは暗号化され、暗号化された秘密鍵ziが求められる。具体的には、zi←Ei(ωi、xi‖c)により求められる(ステップS32)。
【0054】
送信装置90から、各受信装置100i用に暗号化された秘密鍵ziと、各受信装置100i用に暗号化された共通鍵xiと、1つの暗号文cとが送信される。
【0055】
なお秘密鍵・内部状態生成部92と秘密鍵暗号化部96がTag−KEMに相当し、共通鍵暗号化部94が1つ目のOTPに相当し、情報暗号化部95が2つ目のOTPに相当する。
【0056】
次に受信装置100iの処理について説明する。秘密鍵復号部102iでは、送信装置90から受信した暗号化された秘密鍵ziを、私有鍵skiと復号関数Diを用いて、復号する。具体的には、ai=Di(zi、xi‖c)により復号される(ステップS36)。
【0057】
秘密鍵復号部102iの秘密鍵ziの復号は、復号式を見れば明らかなように、全ての暗号文cを受信しないと、秘密鍵aiを求めることは出来ない(ステップS34)。つまり、平文mが映像等であり、ストリーミングデータの場合は、TagーKEM/OTP/OTP方式を用いることは出来ない。
【0058】
共通鍵復号部104iで、求められた秘密鍵aiを用いて、暗号化された共通鍵xiを復号してビット長が伸ばされた共通鍵R’を求める。具体的には、以下の式で求めることが出来る(ステップS38)。
【0059】
【数3】
【0060】
求められた共通鍵R’は情報復号部106iに入力される。情報復号部106iで、共通鍵R’を用いて暗号文cは復号されて平文mが求められる。具体的には、以下の式により平文mが求められる(ステップS40)。
【0061】
【数4】
【先行技術文献】
【非特許文献】
【0062】
【非特許文献1】V. Shoup, ”FCD 18033-2 Encryption algorithms - Part2: Asymmetric ciphers," ISO/IEC JTC 1/SC 27, Berlin, 2004.
【非特許文献2】”Tag−KEM/DEM:A New Framework for Hybrid Encryption and a New Analysis of Kurosawa-Desmedt KEM” Masayuki Abe,Rosario Gennaro,Kaoru Kurosawa,and Victor Shou 2005年3月22日Eurocrypt 2005会議
【特許文献】
【0063】
【特許文献1】特公平08−004265号
【特許文献2】特願2005−015154号公報
【発明の概要】
【発明が解決しようとする課題】
【0064】
以下に従来の技術の問題点を4点述べる。
【0065】
(1)通信量の問題
図13A〜Fは暗号化された秘密鍵などを概念的に示した図である。図13Aは、TagーKEM/OTP/OTP方式の場合のn個(全ての受信装置の数)の暗号化された秘密鍵ziを示すものあり、図13Bは、TagーKEM/OTP/OTP方式の場合のn個の暗号化された共通鍵xiを示すものであり、図13CはTagーKEM/OTP/OTP方式の場合の暗号文cを示すものであり、図13Dは、KEM/DEM/DEM方式の場合のn個の暗号化された秘密鍵eiを示すものであり、図13Eは、KEM/DEM/DEM方式の場合のn個の暗号化された共通鍵yiを示すものであり、図13FはKEM/DEM/DEM方式の場合の暗号文cを示したものである。
【0066】
KEM/DEM/DEM方式の場合、図13E、図13Fに斜線で示すように、暗号化された共通鍵yiと暗号文cには、認証子Tagが付加される。この認証子の大きさはセキュリティパラメータに依存するが、大抵の場合、共通鍵yiのサイズに等しい。暗号文cに付加された認証子の容量は暗号文の容量と比べて、かなり小さい。また、各受信装置に送る暗号文cは1つである。よって、暗号文cに付加された認証子については特に問題はない。
【0067】
しかし、暗号化された共通鍵yiは、認証子Tagが付加されることで、容量が2倍になる。また、暗号化された共通鍵yiは、n個の受信装置に送るので、n種類存在する。従って、通信量が多くなり、伝送効率は悪くなる。
【0068】
一方、TagーKEM/OTP/OTP方式では効率的な伝送を行うことが出来る。
【0069】
従って、KEM/DEM/DEM方式では通信量が多くなるという問題がある。
【0070】
(2)計算量の問題
次に計算量の問題について、説明する。この(2)計算量の問題の説明のみ、KEM/DEM/DEM方式とTagーKEM/OTP/OTP方式について、説明簡略化のために、KEM/DEM1/DEM2方式、TagーKEM/OTP1/OTP2として説明する。
【0071】
最初に、送信装置から1台の受信装置に暗号化通信をする場合の計算量について説明する。一般的に、それぞれの処理の計算量について、以下の式が成り立つ。なお[A]はAの処理の計算量を示す。
[KEM]<[Tag−KEM]
[DEM1]>[OTP1]
[DEM2]>[OTP2]
[KEM]+[DEM2]=[Tag−KEM]+[OTP2]
よって、[KEM]+[DEM1]+[DEM2]>[Tag−KEM]+[OTP1]+[OTP2]となる。よって、送信装置から1台の受信装置に暗号化通信をする場合はKEM/DEM/DEM方式の計算量が、TagーKEM/OTP/OTP方式の計算量より多くなる。
【0072】
次に、送信装置からn(n≧2)台の受信装置に暗号化通信をする場合の計算量について説明する。
【0073】
KEM/DEM/DEM方式の場合、秘密鍵生成・暗号化部8で、暗号化された秘密鍵eiを生成する際に、(ai、ei)←KE(pki)の計算を受信装置数n分だけ計算すればよく、暗号文cのサイズは考慮されない。
【0074】
一方、TagーKEM/OTP/OTP方式の場合、上述のように、図8記載の秘密鍵暗号化部96で、暗号文cのサイズが考慮され、秘密鍵暗号化処理は行われる(zi←Ei(ωi、ai‖c))。よって、暗号文cのサイズが大きい場合は、nの値が大きくなるほど、TagーKEM/OTP/OTP方式の計算量は、KEM/DEM/DEM方式の計算量よりも多くなる。従って、送信装置からn(n≧2)台の受信装置に暗号化通信をする場合は、TagーKEM/OTP/OTP方式の計算量は、KEM/DEM/DEM方式の計算量よりも多くなる。
【0075】
(3)ストリーミングの問題
KEM/DEM/DEM方式の場合、図6に示す秘密鍵復号部10iによる秘密鍵aiの復号処理についても、図7記載のステップS14からも明らかなように、ai=KDski(ei)を計算するだけでよい。よって、平文mがストリーミングデータであっても対応することが出来る。
【0076】
一方、TagーKEM/OTP/OTP方式の場合、図11に示す受信装置100iの復号処理において、上述した図12記載のステップS34に示した通り、秘密鍵復号部102iで、全ての暗号文cが受信されないと、復号処理を行うことは出来ない。これは秘密鍵復号部102iによる復号計算ai=Di(zi、xi‖c)からも明らかである。よって、平文mがストリーミングデータである場合は、TagーKEM/OTP/OTP方式を適用することは出来ないという問題が生じる。
【0077】
(4)標準規格の問題
KEM/DEM方式は、ISO(International Organization for Standardization)やNESSIE(New European Schemes for Signatures, Integrity, and Encryption)等の標準化団体で規格化されているため、KEM/DEM/DEM方式であれば、これらの標準仕様に準拠し、既存のモジュールを流用することが出来る。
【0078】
一方、Tag−KEMに相当する秘密鍵・内部状態生成部92と秘密鍵暗号化部96(図11参照)については、規格化されておらず、新たにモジュールを作成しなければならないという問題が生じる。また、新たに開発しても、標準規格に準拠したものにはならないため、相互互換性(インターオペラビリティ)が確保できない。
【課題を解決するための手段】
【0079】
この発明は、複数の送信先に情報を暗号化して送信する同報通信暗号化方法であって、秘密鍵生成・暗号化手段で、送信先の公開鍵と暗号化関数を用いて、秘密鍵と、当該秘密鍵を暗号化した暗号化秘密鍵を生成する。共通鍵生成手段で、第1の共通鍵と第2の共通鍵を合成したもの(以下、合成共通鍵という)を生成し、共通鍵暗号化手段で、合成共通鍵と秘密鍵との排他的論理和を計算して、合成共通鍵を暗号化する。情報暗号化手段で、第1の共通鍵を用いて、情報を暗号化し、認証子生成手段で、第2の共通鍵を用いて、関係鍵攻撃に対して安全に、暗号化された情報の認証子を生成し、結合手段で、暗号化された情報と認証子を結合する。
【0080】
また、複数の送信先に情報を暗号化して送信する同報通信暗号化方法であって、秘密鍵生成・暗号化手段で、送信先の公開鍵と暗号化関数を用いて、秘密鍵および当該秘密鍵を暗号化した暗号化秘密鍵を生成し、共通鍵生成手段で、共通鍵を生成する。共通鍵暗号化手段で、共通鍵と秘密鍵との排他的論理和を計算することで、共通鍵を暗号化し、認証子生成手段で、共通鍵を用いて、通信対象の情報のビット長に等しいマスクを擬似ランダムに生成する。情報暗号化手段で、マスクと情報との排他的論理和を計算することで、情報を暗号化し、認証子生成手段で、共通鍵と暗号化された情報を用いて、関係鍵攻撃に対して安全に、暗号化情報の認証子を生成し、結合手段で、暗号化された情報と認証子を結合させる。
【0081】
また、暗号化された情報を復号する情報復号方法であって、鍵生成手段で、公開鍵と私有鍵を生成し、秘密鍵復号手段で、私有鍵と復号関数を用いて、受信した暗号化された秘密鍵を復号して、秘密鍵を求める。共通鍵復号手段で、秘密鍵と受信した暗号化された共通鍵との排他的論理和を計算することで、第1の共通鍵と第2の共通鍵を求め、分離手段で、受信した結合された暗号化された情報と当該暗号化された情報の認証子を分離して、暗号化された情報と暗号化された情報の認証子を求める。情報復号手段で、第1の共通鍵を用いて、暗号化された情報を復号して情報を求め、認証子判定手段で、第2の共通鍵を用いて、確認用認証子を生成し、暗号化された情報の認証子と確認用認証子とが一致するか否かを判定する。認証子判定手段が一致しないと判定した場合は、情報復号手段が情報を廃棄する。
【0082】
また、暗号化された情報を復号する情報復号方法であって、鍵生成手段で、公開鍵と私有鍵を生成し、秘密鍵復号手段で、私有鍵と復号関数を用いて、受信した暗号化された秘密鍵を復号して、秘密鍵を求める。共通鍵復号手段で、秘密鍵と受信した暗号化された共通鍵との排他的論理和を計算することで、共通鍵を求め、分離手段で、受信した結合された暗号化された情報と当該暗号化された情報の認証子を分離して、暗号化された情報と暗号化された情報の認証子を求める。認証子生成手段で、共通鍵を用いて、暗号化された情報のビット長に等しいマスクを生成し、情報復号手段で、暗号化された情報とマスクの排他的論理和を計算することで、暗号化された情報を復号し、情報を求める。認証子判定手段で、共通鍵を用いて、確認用認証子を生成し、暗号化された情報の認証子と確認用認証子とが一致するか否かを判定し、認証子判定手段が一致しないと判定すると、情報復号手段が情報を廃棄する。
【発明の効果】
【0083】
上記の構成により、上記(1)通信量の問題については、共通鍵を暗号化する方法をワンタイムパッド(排他的論理和を計算)にすることで、暗号化された共通鍵に認証子Tagが付加されなくなる。その結果、通信量は削減され、上記(1)通信量の問題は解決される。
【0084】
上記(2)計算量の問題については、共通鍵を暗号化する方法をワンタイムパッド処理にすることで、共通鍵を暗号化する際の計算量は削減される。また、秘密鍵暗号化処理には、暗号文cを用いず、暗号文cのサイズは考慮されない。よって、上記(2)計算量の問題は解決される。
【0085】
上記(3)ストリーミングの問題については、受信側の秘密鍵の復号処理に、暗号化された情報を用いない。よって、全ての暗号化された情報を受信しなくても、復号処理に支障はなく、情報がストリーミングデータであっても、対応することが出来る。よって、上記(3)ストリーミングの問題は解決される。
【0086】
上記(4)標準規格の問題については、この発明で使用されるのは、KEM、OTP、DEMである。KEM/DEM方式は標準化団体で規格化されている。よってこの標準仕様を流用することが出来る。従って、上記(4)標準規格の問題については解決される。
【図面の簡単な説明】
【0087】
【図1】鍵カプセル化装置2の機能構成を示す図。
【図2】データカプセル化装置12の機能構成を示す図。
【図3】ハイブリッド暗号システムの機能構成を示す図。
【図4】鍵共有化装置50の機能構成例を示す図。
【図5】暗号化同報通信を行うシステムの例を示す図。
【図6】KEM/DEM/DEM方式の送受信装置の機能構成例を示す図。
【図7】KEM/DEM/DEM方式の送受信装置の主な処理を示したフローチャート。
【図8】Encrypt−and−MACであるDEMの機能構成例を示す図。
【図9】MAC−then−EncryptであるDEMの機能構成例を示す図。
【図10】Encrypt−then−MACであるDEMの機能構成例を示す図。
【図11】TagーKEM/OTP/OTP方式の送受信装置の機能構成例を示す図。
【図12】TagーKEM/OTP/OTP方式の送受信装置の主な処理の流れを示すフローチャート。
【図13】従来の技術の問題点を示す概念図。
【図14】この発明の実施例1の送信装置110の機能構成例を示す図。
【図15】この発明の実施例1の受信装置120iの機能構成例を示す図。
【図16】この発明の実施例1の受信装置120iの主な処理の流れを示すフローチャート。
【図17】この発明の実施例1の送信装置110の主な処理の流れを示すフローチャート。
【図18】この発明の実施例2の送信装置130の機能構成例を示す図。
【図19】この発明の実施例2の受信装置140iの機能構成例を示す図。
【図20】この発明の実施例2の受信装置140iの主な処理の流れを示すフローチャート。
【図21】この発明の実施例2の送信装置130の主な処理の流れを示すフローチャート。
【図22】この発明の実施例2の情報暗号化部132のデータの流れ等を示した図。
【発明を実施するための形態】
【0088】
この発明を実施するための最良の形態を説明する前に、この発明の原理を説明する。まず、上記問題点(1)を解決するために、KEM/DEM/DEM方式をKEM/OTP/DEM方式にする。つまり、共通鍵の暗号化をワンタイムパッド処理(OTP)(排他的論理和の計算)に変更したものである。KEM/DEM/DEM方式では、図6記載の共通鍵暗号化部56で、共通鍵Rの暗号化をyi=MEai(R)により行っていたが、KEM/OTP/DEM方式では、共通鍵Rの暗号化を、共通鍵Rと秘密鍵aiとの排他的論理和を計算すること、つまり、以下の式を計算することで行う。
【0089】
【数5】
【0090】
これにより、計算量を少なくすることが出来る。しかし、このKEM/OTP/DEM方式は安全ではない。すなわち、KEM、DEMが共に通常の「CCA安全」なものであっても、KEM/OTP/DEM方式が安全であるとは限らない。そこで、DEMが通常の「CCA安全」よりも強力な安全である「関係鍵攻撃に対して安全(RKA安全)」であれば、KEMは通常のCCA安全のまま、KEM/OTP/DEM方式が安全であることを示すことが出来る。
【0091】
次に、「関係鍵攻撃に対して安全(RKA安全)」なDEMについて説明する。上述したようにDEMには通常、Encrypt−and−MAC,MAC−then−Encrypt,Encrypt−then−MACの3通りの構成がある(図8〜図10参照)。この3通りのDEMにおいて、「関係鍵攻撃に対して安全(RKA安全)」なDEMを形成するにはどの構成が最もよいか説明する。
【0092】
DEMの構成が図8に示すEncrypt−and−MACである場合は、情報暗号化手段160(Encrypt)と認証子生成手段162(MAC)の両方が共にRKA安全でなければならない。よってEncrypt−and−MAC構成のDEMをRKA安全にすることは妥当ではない。
【0093】
DEMの構成が図9に示すMAC−then−Encryptの場合は、最も後段の情報暗号化手段170(Encrypt)がRKA安全であれば、DEM全体がRKA安全になる。しかし、RKA安全な情報暗号化手段170(Encrypt)は、非常に強い制約条件で、RKA安全なDEMであることと事実上同値であり、RKA安全な情報暗号化手段170の構成法も明らかではない。よって、MAC−then−Encrypt構成のDEMをRKA安全にすることは妥当ではない。
【0094】
DEMの構成が、図10に示すEncrypt−then−MACの場合は、最も後段の認証子生成手段174(MAC)がRKA安全であれば、DEM全体がRKA安全である。RKA安全な認証子生成手段174(MAC)の構成方法が問題となるが、事実上、既存のMACの殆どがRKA安全であることが仮定できる。何故なら、MACに対するRKA安全性は非常に弱い制約条件であるためである。よって、DEM全体をRKA安全にする構成として、Encrypt−and−MACであり、かつMACがRKA安全であることが最もふさわしい。よって、以下の実施例1で説明する送信装置中の情報暗号化部(DEM)については、Encrypt−and−MACを採用する。
【実施例1】
【0095】
この発明の実施例1の送信装置の機能構成例を図14に示し、受信装置の機能構成例を図15に示し、受信装置の主な処理の流れを図16に示し、送信装置の主な処理の流れを図17に示す。
【0096】
図14記載の送信装置110は、秘密鍵生成・暗号化部8、共通鍵生成部54、情報暗号化部116、共通鍵暗号化部94、出力部114により構成され、必要に応じて、共通鍵記憶部72も追加される。また、情報暗号化部116(DEM)については、図10で説明したEncrypt−and−MACの構成である。情報暗号化部116は仮暗号文生成手段(図10では情報暗号化手段)172、認証子生成手段174、結合手段176により構成されている。認証子生成手段174はRKA安全である。
【0097】
図15記載の受信装置120iは鍵生成部6i、秘密鍵復号部10i、共通鍵復号部58i、入力部121i、分離部122i、情報復号部18i、認証子判定部124i、により構成され、必要に応じて、私有鍵・公開鍵記憶部76i、共通鍵記憶部74i、が追加される。また認証子判定部124iは、確認用認証子生成手段1242iと判定手段1244iにより構成される。
【0098】
まず、図15記載の鍵生成部6iでセキュリティパラメータλより公開鍵pkiと私有鍵skiの組が生成される(ステップS50)。具体的には、(pki、ski)←KG(λ)により生成される。生成された私有鍵skiは私有鍵・公開鍵記憶部76iに記憶され(ステップS52)、公開鍵pkiは公開される。また必要に応じて、公開鍵pkiは私有鍵・公開鍵記憶部76iに記憶してもよい(ステップS54)。
【0099】
公開された公開鍵pkiは図14記載の秘密鍵生成・暗号化部8に入力される。秘密鍵生成・暗号化部8では上記送信先の公開鍵pkiと暗号化関数KEを用いて、各受信装置120i(i=1、...、n)用の秘密鍵aiおよび当該秘密鍵を暗号化された秘密鍵eiが生成される。具体的には、(ai、ei)←KE(pki)で生成される(図17記載のステップS56)。暗号化された秘密鍵eiは出力部114に入力され、秘密鍵aiは共通鍵暗号化部94および、共通鍵生成部54に入力される。
【0100】
共通鍵生成部54では、合成共通鍵r‖r’が生成される。rは第1の共通鍵を表し、r’は第2の共通鍵を表す。具体的な生成式は、r‖r’←MG()により生成されるか、もしくは各受信装置120i用の秘密鍵aiの全て、もしくは一部を用いて、r‖r’=MG(a1、a2、...、ai)により生成される(ステップS57)。
【0101】
合成共通鍵r‖r’は共通鍵暗号化部94に入力され、第1の共通鍵rが仮暗号文生成手段172に入力され、第2の共通鍵r’は認証子生成手段174に入力される。
【0102】
共通鍵暗号化部94で、秘密鍵aiと合成共通鍵r‖r’との排他的論理和を計算することで、合成共通鍵r‖r’は暗号化され、暗号化された合成共通鍵wiが生成される。具体的には、以下の式を計算することで、暗号化される(ステップS60)。
【0103】
【数6】
【0104】
暗号化された合成共通鍵wiは出力部114に入力される。
【0105】
情報暗号化部116では、平文mが暗号化され、暗号文cが生成される(ステップS61)。情報暗号化部116の具体的処理について説明する。上述したように、情報暗号化部(DEM)116はEncrypt−then−MACの構成であり、認証子生成手段(MAC)174は、RKA安全な(関係鍵攻撃に対して安全な)MACである。
【0106】
情報暗号化手段(Encrypt)172で第1の共通鍵rを用いて、平文mを暗号化し、仮暗号文c’が生成される(ステップS62)。具体的には、c’=Encr(m)により生成される。生成された仮暗号文c’は認証子生成手段174と結合手段176に入力される。
【0107】
認証子生成手段174では、第2の共通鍵r’を用いて仮暗号文c’の認証子Tagを関係鍵攻撃に対して安全に(RKA安全に)生成する。具体的には、Tag=MACr’(c’)により生成される(ステップS64)。生成された認証子Tagは結合手段176に入力される。
【0108】
結合手段176では、認証子Tagと仮暗号文c’とが結合され、暗号文cが生成される。具体的にはc=c’‖Tagにより生成される(ステップS66)。生成された暗号文cは出力部114に入力される。
【0109】
出力部114から各受信装置120i用の暗号化された秘密鍵ei(i=1、...、n)と各受信装置120i用の暗号化された共通鍵wiと1つの暗号文cが送信される。
【0110】
次に、図15記載の受信装置120iについて説明する。送信装置110よりの暗号化された秘密鍵eiと、暗号化された共通鍵wiと、暗号文cとが入力部121iに入力される。暗号文cは分離部122iに入力され、暗号化された共通鍵wiは共通鍵復号部58iに入力され、暗号化された秘密鍵eiは秘密鍵復号部10iに入力される。
【0111】
まず、秘密鍵復号部10iで、私有鍵skiと復号関数KDを用いて、受信した暗号化された秘密鍵eiを復号して、秘密鍵aiが求られる。具体的には、ai=KDski(ei)により求める(図16記載のステップS68)。求められた秘密鍵aiは共通鍵復号部58iに入力される。
【0112】
共通鍵復号部58iで、暗号化された共通鍵wiと秘密鍵aiとの排他的論理和を計算することで、合成共通鍵r‖r’が求められる。具体的には、以下の式により求められる(ステップS70)。
【0113】
【数7】
【0114】
合成共通鍵r‖r’は第1の共通鍵rと第2の共通鍵r’に分離され、第1の共通鍵rは情報復号部18iに入力され、第2の共通鍵r’は確認用認証子生成手段1242iに入力される。
【0115】
分離部122iでは、暗号文c(=c’‖Tag)が分離され、仮暗号文c’と仮暗号文c’の認証子Tagが求められる。仮暗号文c’は、確認用認証子生成手段1242iと情報復号部18iとに入力され、認証子Tagは判定手段1244iに入力される。
【0116】
情報復号部18iでは第1の共通鍵rと復号関数Enc−1を用いて、仮暗号文c’を復号して、平文mが求められる。具体的には、m=Enc−1r(c’)により求められる(ステップS72)。
【0117】
次に、受信装置120iの送信者が正しいか否かを判定する認証処理について説明する。確認用認証子生成手段1242iは、送信装置110の認証子生成手段174(MAC)(図14参照)と同じアルゴリズムである。確認用認証子生成手段1242iで、第2の共通鍵r’を用いて、確認用認証子Tag’が生成される。具体的には、Tag’=MACr’(c’)により生成される(ステップS73)。生成された確認用認証子Tag’は判定手段1244iに入力される。
【0118】
また、判定手段1244iでは、分離部122iからの認証子Tagと、確認用認証子生成手段1242iからの確認用認証子Tag’とが一致するか否かが判定される(ステップS74)。もし、一致していないと、送信途中で送信情報が改ざんされた等の可能性があるということである。もしTagとTag’とが一致しない場合は、情報復号部18iによる情報の復号処理を行わずに、情報復号部18i中の仮暗号文c’は廃棄される。
【0119】
また、平文m(受信した送信対象の情報)がストリーミングデータm1である場合を説明する。受信装置120iで、全ての暗号データc1を受信して、復号し、ストリーミングデータm1を全て求めた後に、認証子判定部124iによる判定を行えばよい。
【0120】
このような送信装置、受信装置の構成にすることで、共通鍵の暗号化にワンタイムパッドが用いられ、暗号化された共通鍵に認証子Tagが付加されなくなる。よって、上記問題点(1)の通信量の問題は解決される。
【0121】
また、図17記載の共通鍵復号部58iの共通鍵暗号化処理をワンタイムパッド処理にすることで、共通鍵を暗号化する際の計算量は削減される。また、秘密鍵生成・暗号化部8の秘密鍵暗号化処理には、暗号文cを用いず、暗号文cのサイズは考慮されない。よって、上記(2)計算量の問題は解決される。
【0122】
よって、上記(2)計算量の問題は解決される。
【0123】
また、図15記載の秘密鍵復号部10iの処理のように、受信側の秘密鍵の復号処理に、暗号化された情報を用いない。よって、全ての暗号化された情報を受信しなくても、復号処理に支障はなく、情報がストリーミングデータであっても、対応することが出来る。よって、上記(3)ストリーミングの問題は解決される。
【0124】
また、標準化団体で規格化されているKEM(秘密鍵生成・暗号化部8)やDEM(情報暗号化部16)が使用されるため、標準仕様を流用することが出来、上記問題点(4)も解決できる。
【実施例2】
【0125】
実施例1で説明した送信装置110(図14参照)であると、情報暗号化部116中の仮暗号文生成手段172で使用される共通鍵(第1の共通鍵r)と、認証子生成手段174とで使用される共通鍵(第2の共通鍵r’)が独立したものでなければならない。そのため、第1の共通鍵rと第2の共通鍵r’が必要であり、共通鍵生成部54では第1の共通鍵rと第2の共通鍵r’の2つが生成される。その結果、暗号化された共通鍵に認証子は付加されないが、共通鍵の鍵長が2倍になり、鍵長の通信量が問題になる。
【0126】
実施例2では、この鍵長の問題点を解消した情報暗号化装置、その送受信装置の構成を説明する。図18は送信装置130の機能構成例を示した図であり、図19は、受信装置140iの機能構成例を示した図であり、図20は受信装置140iの処理の流れを示したフローチャートであり、図21は送信装置130の処理の流れを示したフローチャートである。
【0127】
実施例1の送信装置110と実施例2の送信装置130とで相違する点は、実施例2では共通鍵を1つしか用いなくても良い点と、情報暗号化部の構成が違う点である。
【0128】
情報暗号化部132は、マスク生成手段1322、仮暗号文生成手段1324、定数付加手段1325、認証子生成手段1326、結合手段1328とで構成される。また、図22は情報暗号化部132中のデータの流れを詳細に示したものである。
【0129】
共通鍵生成部54よりの共通鍵Rはマスク生成手段1322に入力される。また、カウンターモードpg(g=1〜G)もマスク生成手段1322に入力される。Gの値については後ほど説明する。カウンターモードpgとは、送信者と受信者とで予め決めていた定数であり、例えば、pg=0‖1である。マスク生成手段1322で、共通鍵Rを用いてカウンターモードpgのマスクMが生成される。実際は、マスク生成手段1322の処理において、1個のMACがG回の処理を行うが、説明簡略化のために、図22にはG個のMAC1320g(g=1、...、G)が設けられているとして記載する。以下に詳細な処理を説明する。
【0130】
MAC1320gで擬似ランダムにカウンターモードの認証子CTaggが生成される。具体的には、CTagg=MACR(pg)により生成される。ここで、擬似ランダムに認証子を生成するMACについて説明する。擬似ランダム認証子を生成するMACとは、PRF(Pseudo Random Function:擬似乱数関数族)型のMACであり、通常のMACよりも強い安全性を備えたものである。例えば、ブロック暗号ベースのOMAC、ハッシュ関数型のHMACなどは、PRF型のMACである。生成されたCTaggは認証子結合手段1323に入力される。
【0131】
認証子結合手段1323では、認証子CTagg(g=1、...、G)が結合され、マスクMが求められる。具体的には、M=MACR(p1)‖MACR(p2)‖、...、‖MACR(pG)で生成される。生成されたマスクMは仮暗号文生成手段1324に入力される。
【0132】
仮暗号文生成手段1324(OTP)で、マスクMを用いて、平文mは暗号化され、仮暗号文c’が生成される。具体的には、平文mとマスクMとの排他的論理和が計算され、つまり以下の式を計算することで、仮暗号文c’は生成される。
【0133】
【数8】
【0134】
求められた仮暗号文c’は定数付加手段1325、結合手段1328に入力される。
【0135】
ここで、カウンターモードpg(g=1〜G)のGの値について説明する。上述のように、仮暗号文生成手段1324で、マスクMと平文mの排他的論理和が計算される。よって、マスクMのビット長と平文mのビット長は一致していなければならない。また、マスク生成手段1322(MAC)により生成されるマスクMのビット長αは予め決まっている(例えばα=128ビット)。そこで、平文mのビット長をβとすると、βをαで除算して、その商を繰り上げた値がGの値となる。
【0136】
例えば、平文mのビット長βが500ビット、マスクMのビット長αを128ビットとすると、500÷128=3.90625となり、商を繰り上げた値「4」がGの値となる。しかし、この例の場合、平文mのビット長βは500ビット、マスクMのビット長αは128×4=512ビットとなり、αとβは一致しない。そこで、この場合は、マスクMを12ビット切り取り、αとβの値を一致させればよい。
【0137】
定数付加手段1325では、仮暗号文c’と入力されたカウンターモードpg+1とが結合されてc’‖pg+1が求められる。求められたc’‖pg+1は認証子生成手段1326に入力される。なお、カウンターモードpg+1も予め送信者と受信者との間で、決められていた定数である。
【0138】
認証子生成手段1326では、共通鍵Rを用いて、関係鍵攻撃に対して安全に(RKA安全に)、c’‖pg+1の認証子Tagが生成される。具体的にはTag=MACR(pg+1‖c’)により生成される。生成されたTagは結合手段1328に入力される。
【0139】
結合手段1328では、仮暗号文c’とTagとが結合され、暗号文cが求められる。具体的には、c=c’‖Tagにより生成される。
【0140】
また、共通鍵暗号化部94(図18参照)では秘密鍵aiと共通鍵Rとの排他的論理和を計算することで、暗号化された共通鍵ziを生成する。具体的には以下の式により求められる。
【0141】
【数9】
【0142】
上述したように、マスク生成手段1322(MAC)と認証子生成手段1326(MAC)とは同一である。仮暗号文生成手段1324よりの仮暗号文cに、定数付加手段1325で定数pn+1を付加させることで、共通鍵を1つのみ用いて、情報を暗号化することを実現できる。
【0143】
次に、マスク生成手段1322について留意すべき点を述べる。上述したように、マスク生成手段1322(MAC)と認証子生成手段1326(MAC)とは、同一のアルゴリズムである。通常、MACはある一定のビット長γの倍数のデータ(例えば、512の倍数ビット)しか入力を受け付けない。よって、マスク生成手段1322に入力されるカウンターモードpgのビット長や、認証子生成手段1326に入力されるpg+1‖cのビット長がデータγの倍数ビット長であるか否かに関わらず、常にデータが付加(パディング)されるのが通常である。何故ならpgやpg+1‖cのデータの一意性を保ちながら、かつ、そのビット長がγの倍数になるようにするためである。
【0144】
また、カウンターモードpg(g=1、...、G)それぞれの値、パディング後のカウンターモードpg(g=1、...、G)それぞれの値、pg+1‖cの値、パディング後のpg+1‖cの値、全てが相違していなければならない。
【0145】
何故なら、攻撃者は、マスク生成手段1322よりのマスクMや認証子生成手段1326よりの認証子Tagを自由に見ることが出来る。もし、入力される(パディング後の)カウンターモードpgの値や(パディング後の)pg+1‖cの値が同一であれば、MACを判別することが出来、DEM自体が安全でなくなるからである。
【0146】
そのほかの処理については実施例1と同様であるので、省略する。
【0147】
上述したように、DEMを情報暗号化部132の構成にすることで、1個の共通鍵で平文m(情報)を暗号化することができる。よって、実施例1では解決できなかった鍵長の問題を解決することが出来る。また、この実施例2では、情報暗号化部132をKEM−OTP−DEM方式の送信装置130に適用した例を説明したが、この情報暗号化部132はその他の方式の送信装置にも適用することが出来る。
【0148】
また、MAC(マスク生成手段1322や認証子生成手段1326)をPRF型にすることで、より高効率な暗号化同報通信を行うことが出来る。
【0149】
次に、受信装置140iについて説明する。実施例1で説明した受信装置120iと相違する点は、確認用認証子生成手段1482iの処理内容と、情報復号部146iの処理内容と、マスク生成部144iが新たに追加されたことである。
【0150】
マスク生成部144iで、共通鍵Rと、カウンターモードpgを用いて、マスクMが生成される(ステップS100)。ここで使用されるカウンターモードpgは送信側のマスク生成手段1322で使用されたカウンターモードpgと同一である。マスクMは情報復号部146iに入力される。
【0151】
情報復号部146iで、マスクMを用いて仮暗号文c’が復号され、平文mが求められる。具体的には、以下の式で求められる(ステップS102)。
【0152】
【数10】
【0153】
また、確認用認証子生成手段1482iで確認用認証子Tag’が生成される。具体的には、Tag’=MACr(pn+1‖c’)により生成される(ステップS104)。確認用認証子Tag’は判定手段1244iに入力される。
【0154】
そのほかの処理については実施例1の受信装置120iと同様であるので省略する。
【0155】
以上の各実施形態の他、本発明である同報通信暗号化方法、復号方法は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、同報通信暗号化方法、復号方法において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【0156】
また、この発明の同報通信暗号化方法、復号方法における処理をコンピュータによって実現する場合、同報通信暗号化方法、復号方法が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、同報通信暗号化方法、復号方法における処理機能がコンピュータ上で実現される。
【0157】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(DigitalVersatileDisc)、DVD−RAM(RandomAccessMemory)、CD−ROM(CompactDiscReadOnlyMemory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto−Opticaldisc)等を、半導体メモリとしてEEP−ROM(ElectronicallyErasableandProgrammable−ReadOnlyMemory)等を用いることができる。
【0158】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0159】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(ApplicationServiceProvider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0160】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、同報通信暗号化方法、復号方法を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【技術分野】
【0001】
この発明は、情報暗号化方法、情報暗号化装置、プログラムおよび記録媒体に関する。
【背景技術】
【0002】
まず、本明細書中で使用する用語について説明する。「暗号化する」とは、送信の対象となる情報(ビット列、以下「平文」とも呼び、テキスト文章に限られず映像情報、音声情報なども含む)をある鍵(ビット列)を用いて他の(通常元のデータとはまったく異なる)ビット列(以下「暗号文」とも呼ぶ)に変換することを言う。ただし、暗号文だけからでは平文に関する情報を得ることが困難なこと、対応する平文と暗号文の組だけからでは鍵に関する情報を得ることが困難なことなど、状況によって様々な安全性が要求される。「暗号化装置」とは、データを暗号化する装置を指す。また、「復号する」とは、鍵を用いて暗号文を元のデータ(平文)に復元することを言い、「復号装置」とは、暗号化されたデータを復号する装置を指す。さらに、単に「暗号」、「暗号技術」、「暗号アルゴリズム」、「暗号装置」、「暗号方法」、「暗号手段」、というときは、暗号化と復号の両方を含むものとする。
【0003】
一般に、暗号は公開鍵暗号と共通鍵暗号の2種類に類別できる。公開鍵暗号は、送信側が受信側の(秘密ではない)公開鍵を使ってデータ(平文)を暗号化して送信するために利用される。一方、共通鍵暗号は、送信側と受信側が同じ鍵を秘密に保持しているときデータ(平文)を暗号化して送信するために利用される。通常、公開鍵暗号は共通鍵暗号より低速なため、暗号化通信を行う際には、共通鍵暗号で問題となる秘密鍵の共有問題(鍵配送問題)の解決に公開鍵暗号を利用し、秘密鍵が共有された後の通信秘匿には共通鍵暗号を用いることが多い。公開鍵暗号システムは、公開鍵を登録する公開鍵簿、送信装置、および受信装置からなるシステムである。公開鍵暗号システムは公開鍵暗号のみでも実装できるが、公開鍵暗号で鍵配送をし、その時共有された秘密鍵で、共通鍵暗号を使って平文を暗号化通信するのが一般的な公開鍵暗号(ハイブリッド暗号)システムである。
【0004】
標準化が進められているハイブリッド暗号の実現方法として、KEM(Key Encapsulation Mechanism)−DEM(Data Encapsulation Mechanism)による構成がある(非特許文献1)。この構成について以下に説明する。
【0005】
図1に鍵カプセル化装置(KEM)2の機能構成を示す。本手段は、鍵ビット長パラメータ4、鍵生成部6、秘密鍵生成・暗号化部8、秘密鍵復号部10から構成される。鍵ビット長パラメータ4は、確定的アルゴリズムを実行する構成部であって、セキュリティパラメータλから秘密鍵のビット長パラメータklを出力する。記号では、kl=KL(λ)と表すこととする。ここで、セキュリティパラメータλとは、0以上の整数であって、送信者と受信者の間であらかじめ定まっているものとする。セキュリティパラメータλは理論上必要なパラメータであって、これを引数に取る各アルゴリズムが、λに関する多項式時間内で終了することを規定するために設けてあるものである。鍵生成部6は、確率的アルゴリズムを実行する構成部であって、セキュリティパラメータλから公開鍵pkと私有鍵skの組を出力する。記号では、(pk,sk)←KG(λ)と表すこととする。秘密鍵生成・暗号化部8は、確率的アルゴリズムを実行する構成部であって、公開鍵pkから秘密鍵aと暗号化した秘密鍵eの組を出力する。記号では、(a,e)←KE(pk)と表すこととする。ここで秘密鍵aは、ビット長がklの0または1からなり、記号ではa∈{0,1}klと表す。また暗号化した秘密鍵は、ビット長が任意の0または1からなり、記号ではe∈{0,1}*と表す。秘密鍵復号部10は、確定的アルゴリズムを実行する構成部であって、私有鍵skを用いて暗号化された秘密鍵eを復号し、秘密鍵aを出力する。記号では、a=KDsk(e)と表すこととする。鍵カプセル化装置(KEM)2では、任意の(pk,sk)←KG(λ)と(a,e)←KE(pk)に対して、常にa=KDsk(e)が成り立つ。上述した「←」は確率的に求められるということであり、「=」は確定的に求められることを示す。
【0006】
図2にデータカプセル化装置(DEM)12の機能構成を示す。本装置は、鍵ビット長パラメータ14、情報暗号化部16、情報復号部18から構成される。鍵ビット長パラメータ14は、確定的アルゴリズムを実行する構成部であって、セキュリティパラメータλから秘密鍵のビット長パラメータdlを出力する。記号では、dl=DL(λ)と表すこととする。情報暗号化部16は、確定的アルゴリズムの構成部であって、秘密鍵aを用いて平文mを暗号化し、暗号文cを出力する。記号では、c=DEa(m)と表すこととする。ここで秘密鍵aは、ビット長がdlの0または1からなるビット列である(a∈{0,1}dl)。また平文mおよび暗号文cは、ビット長が任意の0または1からなるビット列である(m∈{0,1}*、c∈{0,1}*)。情報復号部18は、確定的アルゴリズムを実行する構成部であって、秘密鍵aを用いて暗号文cを復号し、平文mを出力する。記号では、m=DDa(c)と表すこととする。データカプセル化装置(DEM)12では、任意のa∈{0,1}dlとm∈{0,1}*に対して、常にDDa(DEa(m))=mが成り立つ。
【0007】
図3にハイブリッド暗号システムの機能構成を示す。ハイブリッド暗号システムは、鍵カプセル化装置2内の構成装置とデータカプセル化装置12内の構成装置とを組み合わせた、暗号化装置20と復号装置40から構成される。また、鍵カプセル化装置2とデータカプセル化装置12との両方で秘密鍵aは使用されることから、このシステム内ではkl=dlが成立することが必要である。
【0008】
暗号化装置20は、秘密鍵生成・暗号化部8によって、受信者の公開鍵pkから秘密鍵aと暗号化した秘密鍵e(e∈{0,1}*)の組を得る((a,e)←KE(pk))。次に、情報暗号化部16で、秘密鍵aを用いて平文m(m∈{0,1}*)を暗号化し、暗号文c(c∈{0,1}*)を得る(c=DEa(m))。このようにして暗号化装置20は、復号装置40への出力として、暗号化した秘密鍵eと暗号文cの組(e,c)を得る。
【0009】
復号装置40は、あらかじめ鍵生成部42で、セキュリティパラメータλから公開鍵pkと私有鍵skの組を得る((pk,sk)←KG(λ))。公開鍵pkは、あらかじめ公開され、暗号化装置20によって上記のように使用される。また私有鍵skは、あらかじめ復号装置40内の私有鍵・公開鍵記憶部44に記憶される。復号装置40は、暗号化装置20からの暗号化された秘密鍵eと暗号文cとの組を受信すると、復号装置40は、私有鍵skを用いて暗号化された秘密鍵eを復号し、秘密鍵aを得る(a=KDsk(e))。次に、情報復号部18が、秘密鍵aを用いて暗号文cを復号し、平文mを得る(m=DDa(c))
【0010】
また、同報通信に特化した暗号方法の提案としては、例えば特許文献1がある。
以下に、同報通信の暗号方法の効率化を図った従来技術であるKEM/DEM/DEM方式の送受信とTagーKEM/OTP/OTP方式の送受信について説明する。まず、これら2つの方式に共通する事項を説明する。
【0011】
図4は鍵共有化装置50の機能構成例である。鍵共有化装置50は、鍵ビット長パラメータ52、共通鍵生成部54、共通鍵暗号化部56、共通鍵復号部58からなる。鍵ビット長パラメータ52は、セキュリティパラメータλから共通鍵Rのビット長mlを出力する確定的アルゴリズム装置である。記号では、ml=ML(λ)と表すこととする。
【0012】
共通鍵生成部54は、入力の無い確率的アルゴリズム装置として、もしくは秘密鍵a1,…,anの全部または一部を入力する確定的アルゴリズム装置として、共通鍵R(R∈{0,1}ml)を出力する。記号では、確率的アルゴリズムの場合はR←MG()、確定的アルゴリズムの場合はR=MG(a1,…,an)と表すこととする。
【0013】
共通鍵暗号化部56は、共通鍵Rを各装置の秘密鍵aiを用いて暗号化し、暗号化された共通鍵yiを出力する確定的アルゴリズム装置である。記号としては、yi=MEai(R)と表すこととする。
【0014】
共通鍵復号部58は、暗号化された共通鍵yiを秘密鍵aiを用いて復号し、共通鍵Rを出力する確定的アルゴリズム装置である。記号としては、R=MDai(yi)と表すこととする。鍵共有化装置50では、任意のai∈{0,1}kliと任意のR←MG()または確定的なR=MG(a1,…,an)に対して、常にMDai(MEai(R))=Rが成り立つ。
【0015】
図5は、暗号化同報通信を行うシステムの例である。この例はn+1個の送受信装置60i(i=0,1,2,…,n)から構成されている。各送受信装置60iは、鍵カプセル化装置2内の構成装置、データカプセル化装置12内の構成装置、および鍵共有化装置50内の構成装置を組み合わせた、送信装置62i、受信装置64i、記録装置66iから構成されている。
【0016】
次に、KEM/DEM/DEM方式の送受信とTagーKEM/OTP/OTP方式の送受信について説明する。1つ目の処理「KEM」と「Tag−KEM」については秘密鍵を生成する処理と生成された秘密鍵を暗号化する処理を示し、2つ目の処理「DEM」と「OTP」とは生成された共通鍵を暗号化する処理を示し、3つ目の処理「DEM」と「OTP」の処理は送信対象となる情報、つまり平文mを暗号化する処理を示す。以下、これら2つの方式の詳細を説明する。
【0017】
KEM/DEM/DEM方式
図6はKEM/DEM/DEM方式の送受信装置の機能構成例を示したものであり、図7はKEM/DEM/DEM方式の送受信装置の主な処理の流れを示したフローチャートである。上述の図と同一機能構成部分には同一参照番号を付け、重複説明を省略する。以下の説明についても同様である。
【0018】
また、iの値が「0」である送受信装置600の送信装置と、それ以外のn個の送受信装置60i(i=1,2,…,n)の受信装置との同報通信による送受信を説明する。
【0019】
送受信装置600中の送信装置70は、秘密鍵生成・暗号化部8、共通鍵生成部54、鍵長変更部55、共通鍵暗号化部56、情報暗号化部16により構成される。送信装置70中の秘密鍵生成・暗号化部8は受信装置の数だけ、つまりn個存在する。
【0020】
送受信装置60iの受信装置80iは秘密鍵復号部10i、共通鍵復号部58i、情報復号部18i、鍵生成部6iにより構成されている。
【0021】
まず、鍵生成部6iでセキュリティパラメータλを用いて、(pki、ski)←KG(λ)により、公開鍵pkiと私有鍵ski(i=1、...、n)を生成する(ステップS2)。生成された私有鍵skiは一旦、私有鍵・公開鍵記憶部76iに記憶される(ステップS4)。また公開鍵pkiは私有鍵・公開鍵記憶部76iに記憶しても良い(ステップS6)。公開鍵pkiは公開され、送信装置70の秘密鍵生成・暗号化部8に入力される。
【0022】
秘密鍵生成・暗号化部8(KEM)では、(ai、ei)←KE(pki)により、秘密鍵aiと秘密鍵aiを暗号化された秘密鍵eiが生成される(ステップS8)。秘密鍵aiは共通鍵生成部54および共通鍵暗号化部56に入力される。
【0023】
共通鍵生成部54では、R←MG()、もしくは、R=MG(a1、a2、...、an)により、共通鍵Rが生成される(ステップS10)。共通鍵Rは破線で示す共通鍵記憶部74iに記憶して、2回目以降の同報通信で同じ共通鍵Rを使用してよい。
【0024】
鍵長変更部55では、擬似乱数生成器であるPRNG(pseudo-random number generator)を用いて、共通鍵Rの鍵長を2倍にして、第1の共通鍵rと第2の共通鍵r’が生成される。なおR、r、r’のビット長は全て等しく、第1の共通鍵rと第2の共通鍵r’とが各々独立したものである。第1の共通鍵rと第2の共通鍵r’とが結合された状態r‖r’で、共通鍵暗号化部56に入力される。この明細書、図面の説明で、「‖」は結合されていることを示す。第1の共通鍵rと第2の共通鍵r’は独立した状態で、情報暗号化部16に入力される。
【0025】
共通鍵暗号化部56(DEM)では、秘密鍵aiを用いて、共通鍵r‖r’を暗号化して、暗号化された共通鍵yiが生成される。具体的には、yi=MEai(r‖r’)により生成される(ステップS12)。
【0026】
次に、情報暗号化部16であるDEMについて説明する。各々独立した第1の共通鍵rと第2の共通鍵r’を用いて、情報暗号化部16では平文mが暗号化され、暗号文cが生成される。具体的には、c=DEr、r’(m)により暗号化して暗号文cが生成される(ステップS13)。
【0027】
DEM(情報暗号化部16)には通常3通りの構成が考えられる。Encrypt−and−MAC,MAC−then−Encrypt,Encrypt−then−MACの3通りである。DEM(情報暗号化部16)は、情報暗号化手段(Encrypt)と、認証子生成手段(MAC:メッセージ認証コード Message Authentication Code)と
、結合手段とを有するが、それぞれの構成で、処理の順番が異なる。送信装置70の情報暗号化部16(DEM)の構成はこれら3通りのどの構成をとってもよい。以下、これら3通りの処理について説明する。
【0028】
図8にEncrypt−and−MACの構成を示し,図9にMAC−then−Encryptの構成を示し,図10にEncrypt−then−MACの構成を示す。
【0029】
図8記載のEncrypt−and−MACでは、情報暗号化手段(Encrypt)160で、第1の共通鍵rを用いて、平文mを暗号化して仮暗号文c’が生成される。具体的には、c’=Encr(m)により生成される。また、認証子生成手段(MAC)162で、第2の共通鍵r’を用いて、平文mの認証子Tagが生成される。具体的には、Tag=MACr(m)により生成される。生成された暗号文c’と認証子Tagは結合手段164に入力される。
【0030】
結合手段164で、仮暗号文c’と認証子Tagが結合され、暗号文cが生成される。具体的には、c=c’‖Tagにより生成される。
【0031】
図9記載のMAC−then−Encryptでは、認証子生成手段166(MAC)で、第2の共通鍵r’を用いて、平文mの認証子Tagが生成される。具体的には、Tag=MACr’(m)により生成される。生成された認証子Tagは結合手段168に入力される。
【0032】
結合手段168で、平文mと生成された認証子Tagを結合させ、m‖Tagが生成される。生成されたm‖Tagは情報暗号化手段170(Encrypt)に入力される。
【0033】
情報暗号化手段170では、第1の共通鍵rを用いてm‖Tagを暗号化し、暗号文cが生成される。具体的には、c=Encr(m‖Tag)により生成される。
【0034】
図10記載のEncrypt−then−MACでは、情報暗号化手段172で、第1の共通鍵rを用いて、平文mを暗号化し、仮暗号文c’が生成される。具体的には、c’=Encr(m)により生成される。生成された仮暗号文c’は認証子生成手段174と結合手段176に入力される。
【0035】
認証子生成手段174では、第2の共通鍵r’を用いて仮暗号文c’の認証子Tagが生成される。具体的には、Tag=MACr’(c’)により生成される。生成された認証子Tagは結合手段176に入力される。
【0036】
結合手段176では、認証子Tagと仮暗号文c’とが結合され、暗号文cが生成される。具体的にはc=c’‖Tagにより生成される。
【0037】
説明を図6に戻すと、送信装置70からは、各受信装置80i用に暗号化した秘密鍵ei(i=1,2,…,n)と、各受信装置80i用に暗号化した共通鍵yiと、1つの暗号文cの組を送信する。
【0038】
上述したように、秘密鍵生成・暗号化部8がKEMに相当し、共通鍵暗号化部56がDEMに相当し、情報暗号化部16がDEMに相当する。
【0039】
次に受信装置80iの復号について説明する。秘密鍵復号部10iで、私有鍵・公開鍵記憶部76iで記憶された私有鍵skiと復号関数KDを用いて、送信装置70から受信した暗号化された秘密鍵eiを復号して、秘密鍵aiが求められる。具体的には、ai=KDski(ei)により求める(ステップS14)。
【0040】
共通鍵復号部58iで、秘密鍵aiと復号関数MDを用いて、送信装置から受信した暗号化された共通鍵yiを復号して、第1の共通鍵rと第2の共通鍵r’とが求められる。具体的にはr‖r’=MDai(yi)により求められる(ステップS16)。
【0041】
情報復号部18iで、求められた第1の共通鍵rと、第2の共通鍵r’と、復号関数DDを用いて、送信装置から受信した暗号文cを復号して、平文mが求められる。具体的には、m=DDr、r’(c)により求められる(ステップS18)。なお、KEM/DEM/DEM方式の詳細は、特許文献2に記されている。
【0042】
TagーKEM/OTP/OTP
次に、TagーKEM/OTP/OTP方式の送受信装置について説明する。詳細は非特許文献2に記載されている。ここで、OTPとはワンタイムパッドの意味であり、データと鍵(鍵長がデータ長に比べて短い場合は、擬似乱数生成器(PRNG)で鍵長をデータ長と同一の長さに伸張したもの)の排他的論理和を計算することである。図11は、TagーKEM/OTP/OTP方式の送受信装置の機能構成例を示したものであり、送信装置90と受信装置100i(i=1、...、n)により構成されている。図12はTagーKEM/OTP/OTP方式の送受信装置の主な処理の流れを示したフローチャートである。
【0043】
送信装置90は、秘密鍵・内部状態生成部92と、鍵長変更部93と、共通鍵生成部54と、情報暗号化部95と、共通鍵暗号化部94と、秘密鍵暗号化部96と、で構成されている。また、受信装置100iは秘密鍵復号部102iと、共通鍵復号部104iと、情報復号部106iと鍵生成部6iとで構成されている。
【0044】
受信装置100i内の鍵生成部6iで私有鍵skiと公開鍵pkiが生成され、私有鍵skiが私有鍵・公開鍵記憶部76iに記憶され、公開鍵pkiが公開される(ステップS20、ステップS22、ステップS24)。公開鍵pkiは秘密鍵・内部状態生成部92に入力される。
【0045】
秘密鍵・内部状態生成部92で、公開鍵pkiとTag−KEM秘密鍵生成関数Giを用いて、秘密鍵aiと内部状態ωiが生成される。具体的には、(ai、ωi)←Gi(pki)により生成される(ステップS28)。秘密鍵aiは秘密鍵暗号化部96、共通鍵暗号化部94に入力され、内部状態ωiは秘密鍵暗号化部96に入力される。
【0046】
また、共通鍵生成部54により共通鍵Rが生成される(ステップS29)。生成された共通鍵Rは、鍵長変更部93(PRNG:擬似乱数生成器)に入力される。共通鍵Rのビット長は、平文mのビット長と比較して短い。よって、以下で説明する情報暗号化部95の処理のために、共通鍵Rのビット長と平文mのビット長とを同一にしなければならない。鍵長変更部93では、共通鍵Rのビット長が平文mと同一になるように、共通鍵Rのビット長が変更され、共通鍵R’が生成される。共通鍵R’は、情報暗号化部95、共通鍵暗号化部94に入力される。
【0047】
共通鍵暗号化部94で、共通鍵R’と秘密鍵aiの排他的論理和を計算する、つまり以下の式を計算することで共通鍵R’を暗号化して、暗号化された共通鍵xiが求められる(ステップS30)。
【0048】
【数1】
【0049】
暗号化された共通鍵xiは秘密鍵暗号化部96に入力される。
【0050】
また情報暗号化部95では、共通鍵R’を用いて、平文mを暗号化して暗号文cが求められる。具体的には、以下の式により暗号文cを求める(ステップS31)。
【0051】
【数2】
【0052】
求められた暗号文cは、秘密鍵暗号化部96に入力される。
【0053】
秘密鍵暗号化部96で、Tag−KEM暗号化関数Eiと、内部状態ωiと、暗号文cとを用いて秘密鍵aiは暗号化され、暗号化された秘密鍵ziが求められる。具体的には、zi←Ei(ωi、xi‖c)により求められる(ステップS32)。
【0054】
送信装置90から、各受信装置100i用に暗号化された秘密鍵ziと、各受信装置100i用に暗号化された共通鍵xiと、1つの暗号文cとが送信される。
【0055】
なお秘密鍵・内部状態生成部92と秘密鍵暗号化部96がTag−KEMに相当し、共通鍵暗号化部94が1つ目のOTPに相当し、情報暗号化部95が2つ目のOTPに相当する。
【0056】
次に受信装置100iの処理について説明する。秘密鍵復号部102iでは、送信装置90から受信した暗号化された秘密鍵ziを、私有鍵skiと復号関数Diを用いて、復号する。具体的には、ai=Di(zi、xi‖c)により復号される(ステップS36)。
【0057】
秘密鍵復号部102iの秘密鍵ziの復号は、復号式を見れば明らかなように、全ての暗号文cを受信しないと、秘密鍵aiを求めることは出来ない(ステップS34)。つまり、平文mが映像等であり、ストリーミングデータの場合は、TagーKEM/OTP/OTP方式を用いることは出来ない。
【0058】
共通鍵復号部104iで、求められた秘密鍵aiを用いて、暗号化された共通鍵xiを復号してビット長が伸ばされた共通鍵R’を求める。具体的には、以下の式で求めることが出来る(ステップS38)。
【0059】
【数3】
【0060】
求められた共通鍵R’は情報復号部106iに入力される。情報復号部106iで、共通鍵R’を用いて暗号文cは復号されて平文mが求められる。具体的には、以下の式により平文mが求められる(ステップS40)。
【0061】
【数4】
【先行技術文献】
【非特許文献】
【0062】
【非特許文献1】V. Shoup, ”FCD 18033-2 Encryption algorithms - Part2: Asymmetric ciphers," ISO/IEC JTC 1/SC 27, Berlin, 2004.
【非特許文献2】”Tag−KEM/DEM:A New Framework for Hybrid Encryption and a New Analysis of Kurosawa-Desmedt KEM” Masayuki Abe,Rosario Gennaro,Kaoru Kurosawa,and Victor Shou 2005年3月22日Eurocrypt 2005会議
【特許文献】
【0063】
【特許文献1】特公平08−004265号
【特許文献2】特願2005−015154号公報
【発明の概要】
【発明が解決しようとする課題】
【0064】
以下に従来の技術の問題点を4点述べる。
【0065】
(1)通信量の問題
図13A〜Fは暗号化された秘密鍵などを概念的に示した図である。図13Aは、TagーKEM/OTP/OTP方式の場合のn個(全ての受信装置の数)の暗号化された秘密鍵ziを示すものあり、図13Bは、TagーKEM/OTP/OTP方式の場合のn個の暗号化された共通鍵xiを示すものであり、図13CはTagーKEM/OTP/OTP方式の場合の暗号文cを示すものであり、図13Dは、KEM/DEM/DEM方式の場合のn個の暗号化された秘密鍵eiを示すものであり、図13Eは、KEM/DEM/DEM方式の場合のn個の暗号化された共通鍵yiを示すものであり、図13FはKEM/DEM/DEM方式の場合の暗号文cを示したものである。
【0066】
KEM/DEM/DEM方式の場合、図13E、図13Fに斜線で示すように、暗号化された共通鍵yiと暗号文cには、認証子Tagが付加される。この認証子の大きさはセキュリティパラメータに依存するが、大抵の場合、共通鍵yiのサイズに等しい。暗号文cに付加された認証子の容量は暗号文の容量と比べて、かなり小さい。また、各受信装置に送る暗号文cは1つである。よって、暗号文cに付加された認証子については特に問題はない。
【0067】
しかし、暗号化された共通鍵yiは、認証子Tagが付加されることで、容量が2倍になる。また、暗号化された共通鍵yiは、n個の受信装置に送るので、n種類存在する。従って、通信量が多くなり、伝送効率は悪くなる。
【0068】
一方、TagーKEM/OTP/OTP方式では効率的な伝送を行うことが出来る。
【0069】
従って、KEM/DEM/DEM方式では通信量が多くなるという問題がある。
【0070】
(2)計算量の問題
次に計算量の問題について、説明する。この(2)計算量の問題の説明のみ、KEM/DEM/DEM方式とTagーKEM/OTP/OTP方式について、説明簡略化のために、KEM/DEM1/DEM2方式、TagーKEM/OTP1/OTP2として説明する。
【0071】
最初に、送信装置から1台の受信装置に暗号化通信をする場合の計算量について説明する。一般的に、それぞれの処理の計算量について、以下の式が成り立つ。なお[A]はAの処理の計算量を示す。
[KEM]<[Tag−KEM]
[DEM1]>[OTP1]
[DEM2]>[OTP2]
[KEM]+[DEM2]=[Tag−KEM]+[OTP2]
よって、[KEM]+[DEM1]+[DEM2]>[Tag−KEM]+[OTP1]+[OTP2]となる。よって、送信装置から1台の受信装置に暗号化通信をする場合はKEM/DEM/DEM方式の計算量が、TagーKEM/OTP/OTP方式の計算量より多くなる。
【0072】
次に、送信装置からn(n≧2)台の受信装置に暗号化通信をする場合の計算量について説明する。
【0073】
KEM/DEM/DEM方式の場合、秘密鍵生成・暗号化部8で、暗号化された秘密鍵eiを生成する際に、(ai、ei)←KE(pki)の計算を受信装置数n分だけ計算すればよく、暗号文cのサイズは考慮されない。
【0074】
一方、TagーKEM/OTP/OTP方式の場合、上述のように、図8記載の秘密鍵暗号化部96で、暗号文cのサイズが考慮され、秘密鍵暗号化処理は行われる(zi←Ei(ωi、ai‖c))。よって、暗号文cのサイズが大きい場合は、nの値が大きくなるほど、TagーKEM/OTP/OTP方式の計算量は、KEM/DEM/DEM方式の計算量よりも多くなる。従って、送信装置からn(n≧2)台の受信装置に暗号化通信をする場合は、TagーKEM/OTP/OTP方式の計算量は、KEM/DEM/DEM方式の計算量よりも多くなる。
【0075】
(3)ストリーミングの問題
KEM/DEM/DEM方式の場合、図6に示す秘密鍵復号部10iによる秘密鍵aiの復号処理についても、図7記載のステップS14からも明らかなように、ai=KDski(ei)を計算するだけでよい。よって、平文mがストリーミングデータであっても対応することが出来る。
【0076】
一方、TagーKEM/OTP/OTP方式の場合、図11に示す受信装置100iの復号処理において、上述した図12記載のステップS34に示した通り、秘密鍵復号部102iで、全ての暗号文cが受信されないと、復号処理を行うことは出来ない。これは秘密鍵復号部102iによる復号計算ai=Di(zi、xi‖c)からも明らかである。よって、平文mがストリーミングデータである場合は、TagーKEM/OTP/OTP方式を適用することは出来ないという問題が生じる。
【0077】
(4)標準規格の問題
KEM/DEM方式は、ISO(International Organization for Standardization)やNESSIE(New European Schemes for Signatures, Integrity, and Encryption)等の標準化団体で規格化されているため、KEM/DEM/DEM方式であれば、これらの標準仕様に準拠し、既存のモジュールを流用することが出来る。
【0078】
一方、Tag−KEMに相当する秘密鍵・内部状態生成部92と秘密鍵暗号化部96(図11参照)については、規格化されておらず、新たにモジュールを作成しなければならないという問題が生じる。また、新たに開発しても、標準規格に準拠したものにはならないため、相互互換性(インターオペラビリティ)が確保できない。
【課題を解決するための手段】
【0079】
この発明は、複数の送信先に情報を暗号化して送信する同報通信暗号化方法であって、秘密鍵生成・暗号化手段で、送信先の公開鍵と暗号化関数を用いて、秘密鍵と、当該秘密鍵を暗号化した暗号化秘密鍵を生成する。共通鍵生成手段で、第1の共通鍵と第2の共通鍵を合成したもの(以下、合成共通鍵という)を生成し、共通鍵暗号化手段で、合成共通鍵と秘密鍵との排他的論理和を計算して、合成共通鍵を暗号化する。情報暗号化手段で、第1の共通鍵を用いて、情報を暗号化し、認証子生成手段で、第2の共通鍵を用いて、関係鍵攻撃に対して安全に、暗号化された情報の認証子を生成し、結合手段で、暗号化された情報と認証子を結合する。
【0080】
また、複数の送信先に情報を暗号化して送信する同報通信暗号化方法であって、秘密鍵生成・暗号化手段で、送信先の公開鍵と暗号化関数を用いて、秘密鍵および当該秘密鍵を暗号化した暗号化秘密鍵を生成し、共通鍵生成手段で、共通鍵を生成する。共通鍵暗号化手段で、共通鍵と秘密鍵との排他的論理和を計算することで、共通鍵を暗号化し、認証子生成手段で、共通鍵を用いて、通信対象の情報のビット長に等しいマスクを擬似ランダムに生成する。情報暗号化手段で、マスクと情報との排他的論理和を計算することで、情報を暗号化し、認証子生成手段で、共通鍵と暗号化された情報を用いて、関係鍵攻撃に対して安全に、暗号化情報の認証子を生成し、結合手段で、暗号化された情報と認証子を結合させる。
【0081】
また、暗号化された情報を復号する情報復号方法であって、鍵生成手段で、公開鍵と私有鍵を生成し、秘密鍵復号手段で、私有鍵と復号関数を用いて、受信した暗号化された秘密鍵を復号して、秘密鍵を求める。共通鍵復号手段で、秘密鍵と受信した暗号化された共通鍵との排他的論理和を計算することで、第1の共通鍵と第2の共通鍵を求め、分離手段で、受信した結合された暗号化された情報と当該暗号化された情報の認証子を分離して、暗号化された情報と暗号化された情報の認証子を求める。情報復号手段で、第1の共通鍵を用いて、暗号化された情報を復号して情報を求め、認証子判定手段で、第2の共通鍵を用いて、確認用認証子を生成し、暗号化された情報の認証子と確認用認証子とが一致するか否かを判定する。認証子判定手段が一致しないと判定した場合は、情報復号手段が情報を廃棄する。
【0082】
また、暗号化された情報を復号する情報復号方法であって、鍵生成手段で、公開鍵と私有鍵を生成し、秘密鍵復号手段で、私有鍵と復号関数を用いて、受信した暗号化された秘密鍵を復号して、秘密鍵を求める。共通鍵復号手段で、秘密鍵と受信した暗号化された共通鍵との排他的論理和を計算することで、共通鍵を求め、分離手段で、受信した結合された暗号化された情報と当該暗号化された情報の認証子を分離して、暗号化された情報と暗号化された情報の認証子を求める。認証子生成手段で、共通鍵を用いて、暗号化された情報のビット長に等しいマスクを生成し、情報復号手段で、暗号化された情報とマスクの排他的論理和を計算することで、暗号化された情報を復号し、情報を求める。認証子判定手段で、共通鍵を用いて、確認用認証子を生成し、暗号化された情報の認証子と確認用認証子とが一致するか否かを判定し、認証子判定手段が一致しないと判定すると、情報復号手段が情報を廃棄する。
【発明の効果】
【0083】
上記の構成により、上記(1)通信量の問題については、共通鍵を暗号化する方法をワンタイムパッド(排他的論理和を計算)にすることで、暗号化された共通鍵に認証子Tagが付加されなくなる。その結果、通信量は削減され、上記(1)通信量の問題は解決される。
【0084】
上記(2)計算量の問題については、共通鍵を暗号化する方法をワンタイムパッド処理にすることで、共通鍵を暗号化する際の計算量は削減される。また、秘密鍵暗号化処理には、暗号文cを用いず、暗号文cのサイズは考慮されない。よって、上記(2)計算量の問題は解決される。
【0085】
上記(3)ストリーミングの問題については、受信側の秘密鍵の復号処理に、暗号化された情報を用いない。よって、全ての暗号化された情報を受信しなくても、復号処理に支障はなく、情報がストリーミングデータであっても、対応することが出来る。よって、上記(3)ストリーミングの問題は解決される。
【0086】
上記(4)標準規格の問題については、この発明で使用されるのは、KEM、OTP、DEMである。KEM/DEM方式は標準化団体で規格化されている。よってこの標準仕様を流用することが出来る。従って、上記(4)標準規格の問題については解決される。
【図面の簡単な説明】
【0087】
【図1】鍵カプセル化装置2の機能構成を示す図。
【図2】データカプセル化装置12の機能構成を示す図。
【図3】ハイブリッド暗号システムの機能構成を示す図。
【図4】鍵共有化装置50の機能構成例を示す図。
【図5】暗号化同報通信を行うシステムの例を示す図。
【図6】KEM/DEM/DEM方式の送受信装置の機能構成例を示す図。
【図7】KEM/DEM/DEM方式の送受信装置の主な処理を示したフローチャート。
【図8】Encrypt−and−MACであるDEMの機能構成例を示す図。
【図9】MAC−then−EncryptであるDEMの機能構成例を示す図。
【図10】Encrypt−then−MACであるDEMの機能構成例を示す図。
【図11】TagーKEM/OTP/OTP方式の送受信装置の機能構成例を示す図。
【図12】TagーKEM/OTP/OTP方式の送受信装置の主な処理の流れを示すフローチャート。
【図13】従来の技術の問題点を示す概念図。
【図14】この発明の実施例1の送信装置110の機能構成例を示す図。
【図15】この発明の実施例1の受信装置120iの機能構成例を示す図。
【図16】この発明の実施例1の受信装置120iの主な処理の流れを示すフローチャート。
【図17】この発明の実施例1の送信装置110の主な処理の流れを示すフローチャート。
【図18】この発明の実施例2の送信装置130の機能構成例を示す図。
【図19】この発明の実施例2の受信装置140iの機能構成例を示す図。
【図20】この発明の実施例2の受信装置140iの主な処理の流れを示すフローチャート。
【図21】この発明の実施例2の送信装置130の主な処理の流れを示すフローチャート。
【図22】この発明の実施例2の情報暗号化部132のデータの流れ等を示した図。
【発明を実施するための形態】
【0088】
この発明を実施するための最良の形態を説明する前に、この発明の原理を説明する。まず、上記問題点(1)を解決するために、KEM/DEM/DEM方式をKEM/OTP/DEM方式にする。つまり、共通鍵の暗号化をワンタイムパッド処理(OTP)(排他的論理和の計算)に変更したものである。KEM/DEM/DEM方式では、図6記載の共通鍵暗号化部56で、共通鍵Rの暗号化をyi=MEai(R)により行っていたが、KEM/OTP/DEM方式では、共通鍵Rの暗号化を、共通鍵Rと秘密鍵aiとの排他的論理和を計算すること、つまり、以下の式を計算することで行う。
【0089】
【数5】
【0090】
これにより、計算量を少なくすることが出来る。しかし、このKEM/OTP/DEM方式は安全ではない。すなわち、KEM、DEMが共に通常の「CCA安全」なものであっても、KEM/OTP/DEM方式が安全であるとは限らない。そこで、DEMが通常の「CCA安全」よりも強力な安全である「関係鍵攻撃に対して安全(RKA安全)」であれば、KEMは通常のCCA安全のまま、KEM/OTP/DEM方式が安全であることを示すことが出来る。
【0091】
次に、「関係鍵攻撃に対して安全(RKA安全)」なDEMについて説明する。上述したようにDEMには通常、Encrypt−and−MAC,MAC−then−Encrypt,Encrypt−then−MACの3通りの構成がある(図8〜図10参照)。この3通りのDEMにおいて、「関係鍵攻撃に対して安全(RKA安全)」なDEMを形成するにはどの構成が最もよいか説明する。
【0092】
DEMの構成が図8に示すEncrypt−and−MACである場合は、情報暗号化手段160(Encrypt)と認証子生成手段162(MAC)の両方が共にRKA安全でなければならない。よってEncrypt−and−MAC構成のDEMをRKA安全にすることは妥当ではない。
【0093】
DEMの構成が図9に示すMAC−then−Encryptの場合は、最も後段の情報暗号化手段170(Encrypt)がRKA安全であれば、DEM全体がRKA安全になる。しかし、RKA安全な情報暗号化手段170(Encrypt)は、非常に強い制約条件で、RKA安全なDEMであることと事実上同値であり、RKA安全な情報暗号化手段170の構成法も明らかではない。よって、MAC−then−Encrypt構成のDEMをRKA安全にすることは妥当ではない。
【0094】
DEMの構成が、図10に示すEncrypt−then−MACの場合は、最も後段の認証子生成手段174(MAC)がRKA安全であれば、DEM全体がRKA安全である。RKA安全な認証子生成手段174(MAC)の構成方法が問題となるが、事実上、既存のMACの殆どがRKA安全であることが仮定できる。何故なら、MACに対するRKA安全性は非常に弱い制約条件であるためである。よって、DEM全体をRKA安全にする構成として、Encrypt−and−MACであり、かつMACがRKA安全であることが最もふさわしい。よって、以下の実施例1で説明する送信装置中の情報暗号化部(DEM)については、Encrypt−and−MACを採用する。
【実施例1】
【0095】
この発明の実施例1の送信装置の機能構成例を図14に示し、受信装置の機能構成例を図15に示し、受信装置の主な処理の流れを図16に示し、送信装置の主な処理の流れを図17に示す。
【0096】
図14記載の送信装置110は、秘密鍵生成・暗号化部8、共通鍵生成部54、情報暗号化部116、共通鍵暗号化部94、出力部114により構成され、必要に応じて、共通鍵記憶部72も追加される。また、情報暗号化部116(DEM)については、図10で説明したEncrypt−and−MACの構成である。情報暗号化部116は仮暗号文生成手段(図10では情報暗号化手段)172、認証子生成手段174、結合手段176により構成されている。認証子生成手段174はRKA安全である。
【0097】
図15記載の受信装置120iは鍵生成部6i、秘密鍵復号部10i、共通鍵復号部58i、入力部121i、分離部122i、情報復号部18i、認証子判定部124i、により構成され、必要に応じて、私有鍵・公開鍵記憶部76i、共通鍵記憶部74i、が追加される。また認証子判定部124iは、確認用認証子生成手段1242iと判定手段1244iにより構成される。
【0098】
まず、図15記載の鍵生成部6iでセキュリティパラメータλより公開鍵pkiと私有鍵skiの組が生成される(ステップS50)。具体的には、(pki、ski)←KG(λ)により生成される。生成された私有鍵skiは私有鍵・公開鍵記憶部76iに記憶され(ステップS52)、公開鍵pkiは公開される。また必要に応じて、公開鍵pkiは私有鍵・公開鍵記憶部76iに記憶してもよい(ステップS54)。
【0099】
公開された公開鍵pkiは図14記載の秘密鍵生成・暗号化部8に入力される。秘密鍵生成・暗号化部8では上記送信先の公開鍵pkiと暗号化関数KEを用いて、各受信装置120i(i=1、...、n)用の秘密鍵aiおよび当該秘密鍵を暗号化された秘密鍵eiが生成される。具体的には、(ai、ei)←KE(pki)で生成される(図17記載のステップS56)。暗号化された秘密鍵eiは出力部114に入力され、秘密鍵aiは共通鍵暗号化部94および、共通鍵生成部54に入力される。
【0100】
共通鍵生成部54では、合成共通鍵r‖r’が生成される。rは第1の共通鍵を表し、r’は第2の共通鍵を表す。具体的な生成式は、r‖r’←MG()により生成されるか、もしくは各受信装置120i用の秘密鍵aiの全て、もしくは一部を用いて、r‖r’=MG(a1、a2、...、ai)により生成される(ステップS57)。
【0101】
合成共通鍵r‖r’は共通鍵暗号化部94に入力され、第1の共通鍵rが仮暗号文生成手段172に入力され、第2の共通鍵r’は認証子生成手段174に入力される。
【0102】
共通鍵暗号化部94で、秘密鍵aiと合成共通鍵r‖r’との排他的論理和を計算することで、合成共通鍵r‖r’は暗号化され、暗号化された合成共通鍵wiが生成される。具体的には、以下の式を計算することで、暗号化される(ステップS60)。
【0103】
【数6】
【0104】
暗号化された合成共通鍵wiは出力部114に入力される。
【0105】
情報暗号化部116では、平文mが暗号化され、暗号文cが生成される(ステップS61)。情報暗号化部116の具体的処理について説明する。上述したように、情報暗号化部(DEM)116はEncrypt−then−MACの構成であり、認証子生成手段(MAC)174は、RKA安全な(関係鍵攻撃に対して安全な)MACである。
【0106】
情報暗号化手段(Encrypt)172で第1の共通鍵rを用いて、平文mを暗号化し、仮暗号文c’が生成される(ステップS62)。具体的には、c’=Encr(m)により生成される。生成された仮暗号文c’は認証子生成手段174と結合手段176に入力される。
【0107】
認証子生成手段174では、第2の共通鍵r’を用いて仮暗号文c’の認証子Tagを関係鍵攻撃に対して安全に(RKA安全に)生成する。具体的には、Tag=MACr’(c’)により生成される(ステップS64)。生成された認証子Tagは結合手段176に入力される。
【0108】
結合手段176では、認証子Tagと仮暗号文c’とが結合され、暗号文cが生成される。具体的にはc=c’‖Tagにより生成される(ステップS66)。生成された暗号文cは出力部114に入力される。
【0109】
出力部114から各受信装置120i用の暗号化された秘密鍵ei(i=1、...、n)と各受信装置120i用の暗号化された共通鍵wiと1つの暗号文cが送信される。
【0110】
次に、図15記載の受信装置120iについて説明する。送信装置110よりの暗号化された秘密鍵eiと、暗号化された共通鍵wiと、暗号文cとが入力部121iに入力される。暗号文cは分離部122iに入力され、暗号化された共通鍵wiは共通鍵復号部58iに入力され、暗号化された秘密鍵eiは秘密鍵復号部10iに入力される。
【0111】
まず、秘密鍵復号部10iで、私有鍵skiと復号関数KDを用いて、受信した暗号化された秘密鍵eiを復号して、秘密鍵aiが求られる。具体的には、ai=KDski(ei)により求める(図16記載のステップS68)。求められた秘密鍵aiは共通鍵復号部58iに入力される。
【0112】
共通鍵復号部58iで、暗号化された共通鍵wiと秘密鍵aiとの排他的論理和を計算することで、合成共通鍵r‖r’が求められる。具体的には、以下の式により求められる(ステップS70)。
【0113】
【数7】
【0114】
合成共通鍵r‖r’は第1の共通鍵rと第2の共通鍵r’に分離され、第1の共通鍵rは情報復号部18iに入力され、第2の共通鍵r’は確認用認証子生成手段1242iに入力される。
【0115】
分離部122iでは、暗号文c(=c’‖Tag)が分離され、仮暗号文c’と仮暗号文c’の認証子Tagが求められる。仮暗号文c’は、確認用認証子生成手段1242iと情報復号部18iとに入力され、認証子Tagは判定手段1244iに入力される。
【0116】
情報復号部18iでは第1の共通鍵rと復号関数Enc−1を用いて、仮暗号文c’を復号して、平文mが求められる。具体的には、m=Enc−1r(c’)により求められる(ステップS72)。
【0117】
次に、受信装置120iの送信者が正しいか否かを判定する認証処理について説明する。確認用認証子生成手段1242iは、送信装置110の認証子生成手段174(MAC)(図14参照)と同じアルゴリズムである。確認用認証子生成手段1242iで、第2の共通鍵r’を用いて、確認用認証子Tag’が生成される。具体的には、Tag’=MACr’(c’)により生成される(ステップS73)。生成された確認用認証子Tag’は判定手段1244iに入力される。
【0118】
また、判定手段1244iでは、分離部122iからの認証子Tagと、確認用認証子生成手段1242iからの確認用認証子Tag’とが一致するか否かが判定される(ステップS74)。もし、一致していないと、送信途中で送信情報が改ざんされた等の可能性があるということである。もしTagとTag’とが一致しない場合は、情報復号部18iによる情報の復号処理を行わずに、情報復号部18i中の仮暗号文c’は廃棄される。
【0119】
また、平文m(受信した送信対象の情報)がストリーミングデータm1である場合を説明する。受信装置120iで、全ての暗号データc1を受信して、復号し、ストリーミングデータm1を全て求めた後に、認証子判定部124iによる判定を行えばよい。
【0120】
このような送信装置、受信装置の構成にすることで、共通鍵の暗号化にワンタイムパッドが用いられ、暗号化された共通鍵に認証子Tagが付加されなくなる。よって、上記問題点(1)の通信量の問題は解決される。
【0121】
また、図17記載の共通鍵復号部58iの共通鍵暗号化処理をワンタイムパッド処理にすることで、共通鍵を暗号化する際の計算量は削減される。また、秘密鍵生成・暗号化部8の秘密鍵暗号化処理には、暗号文cを用いず、暗号文cのサイズは考慮されない。よって、上記(2)計算量の問題は解決される。
【0122】
よって、上記(2)計算量の問題は解決される。
【0123】
また、図15記載の秘密鍵復号部10iの処理のように、受信側の秘密鍵の復号処理に、暗号化された情報を用いない。よって、全ての暗号化された情報を受信しなくても、復号処理に支障はなく、情報がストリーミングデータであっても、対応することが出来る。よって、上記(3)ストリーミングの問題は解決される。
【0124】
また、標準化団体で規格化されているKEM(秘密鍵生成・暗号化部8)やDEM(情報暗号化部16)が使用されるため、標準仕様を流用することが出来、上記問題点(4)も解決できる。
【実施例2】
【0125】
実施例1で説明した送信装置110(図14参照)であると、情報暗号化部116中の仮暗号文生成手段172で使用される共通鍵(第1の共通鍵r)と、認証子生成手段174とで使用される共通鍵(第2の共通鍵r’)が独立したものでなければならない。そのため、第1の共通鍵rと第2の共通鍵r’が必要であり、共通鍵生成部54では第1の共通鍵rと第2の共通鍵r’の2つが生成される。その結果、暗号化された共通鍵に認証子は付加されないが、共通鍵の鍵長が2倍になり、鍵長の通信量が問題になる。
【0126】
実施例2では、この鍵長の問題点を解消した情報暗号化装置、その送受信装置の構成を説明する。図18は送信装置130の機能構成例を示した図であり、図19は、受信装置140iの機能構成例を示した図であり、図20は受信装置140iの処理の流れを示したフローチャートであり、図21は送信装置130の処理の流れを示したフローチャートである。
【0127】
実施例1の送信装置110と実施例2の送信装置130とで相違する点は、実施例2では共通鍵を1つしか用いなくても良い点と、情報暗号化部の構成が違う点である。
【0128】
情報暗号化部132は、マスク生成手段1322、仮暗号文生成手段1324、定数付加手段1325、認証子生成手段1326、結合手段1328とで構成される。また、図22は情報暗号化部132中のデータの流れを詳細に示したものである。
【0129】
共通鍵生成部54よりの共通鍵Rはマスク生成手段1322に入力される。また、カウンターモードpg(g=1〜G)もマスク生成手段1322に入力される。Gの値については後ほど説明する。カウンターモードpgとは、送信者と受信者とで予め決めていた定数であり、例えば、pg=0‖1である。マスク生成手段1322で、共通鍵Rを用いてカウンターモードpgのマスクMが生成される。実際は、マスク生成手段1322の処理において、1個のMACがG回の処理を行うが、説明簡略化のために、図22にはG個のMAC1320g(g=1、...、G)が設けられているとして記載する。以下に詳細な処理を説明する。
【0130】
MAC1320gで擬似ランダムにカウンターモードの認証子CTaggが生成される。具体的には、CTagg=MACR(pg)により生成される。ここで、擬似ランダムに認証子を生成するMACについて説明する。擬似ランダム認証子を生成するMACとは、PRF(Pseudo Random Function:擬似乱数関数族)型のMACであり、通常のMACよりも強い安全性を備えたものである。例えば、ブロック暗号ベースのOMAC、ハッシュ関数型のHMACなどは、PRF型のMACである。生成されたCTaggは認証子結合手段1323に入力される。
【0131】
認証子結合手段1323では、認証子CTagg(g=1、...、G)が結合され、マスクMが求められる。具体的には、M=MACR(p1)‖MACR(p2)‖、...、‖MACR(pG)で生成される。生成されたマスクMは仮暗号文生成手段1324に入力される。
【0132】
仮暗号文生成手段1324(OTP)で、マスクMを用いて、平文mは暗号化され、仮暗号文c’が生成される。具体的には、平文mとマスクMとの排他的論理和が計算され、つまり以下の式を計算することで、仮暗号文c’は生成される。
【0133】
【数8】
【0134】
求められた仮暗号文c’は定数付加手段1325、結合手段1328に入力される。
【0135】
ここで、カウンターモードpg(g=1〜G)のGの値について説明する。上述のように、仮暗号文生成手段1324で、マスクMと平文mの排他的論理和が計算される。よって、マスクMのビット長と平文mのビット長は一致していなければならない。また、マスク生成手段1322(MAC)により生成されるマスクMのビット長αは予め決まっている(例えばα=128ビット)。そこで、平文mのビット長をβとすると、βをαで除算して、その商を繰り上げた値がGの値となる。
【0136】
例えば、平文mのビット長βが500ビット、マスクMのビット長αを128ビットとすると、500÷128=3.90625となり、商を繰り上げた値「4」がGの値となる。しかし、この例の場合、平文mのビット長βは500ビット、マスクMのビット長αは128×4=512ビットとなり、αとβは一致しない。そこで、この場合は、マスクMを12ビット切り取り、αとβの値を一致させればよい。
【0137】
定数付加手段1325では、仮暗号文c’と入力されたカウンターモードpg+1とが結合されてc’‖pg+1が求められる。求められたc’‖pg+1は認証子生成手段1326に入力される。なお、カウンターモードpg+1も予め送信者と受信者との間で、決められていた定数である。
【0138】
認証子生成手段1326では、共通鍵Rを用いて、関係鍵攻撃に対して安全に(RKA安全に)、c’‖pg+1の認証子Tagが生成される。具体的にはTag=MACR(pg+1‖c’)により生成される。生成されたTagは結合手段1328に入力される。
【0139】
結合手段1328では、仮暗号文c’とTagとが結合され、暗号文cが求められる。具体的には、c=c’‖Tagにより生成される。
【0140】
また、共通鍵暗号化部94(図18参照)では秘密鍵aiと共通鍵Rとの排他的論理和を計算することで、暗号化された共通鍵ziを生成する。具体的には以下の式により求められる。
【0141】
【数9】
【0142】
上述したように、マスク生成手段1322(MAC)と認証子生成手段1326(MAC)とは同一である。仮暗号文生成手段1324よりの仮暗号文cに、定数付加手段1325で定数pn+1を付加させることで、共通鍵を1つのみ用いて、情報を暗号化することを実現できる。
【0143】
次に、マスク生成手段1322について留意すべき点を述べる。上述したように、マスク生成手段1322(MAC)と認証子生成手段1326(MAC)とは、同一のアルゴリズムである。通常、MACはある一定のビット長γの倍数のデータ(例えば、512の倍数ビット)しか入力を受け付けない。よって、マスク生成手段1322に入力されるカウンターモードpgのビット長や、認証子生成手段1326に入力されるpg+1‖cのビット長がデータγの倍数ビット長であるか否かに関わらず、常にデータが付加(パディング)されるのが通常である。何故ならpgやpg+1‖cのデータの一意性を保ちながら、かつ、そのビット長がγの倍数になるようにするためである。
【0144】
また、カウンターモードpg(g=1、...、G)それぞれの値、パディング後のカウンターモードpg(g=1、...、G)それぞれの値、pg+1‖cの値、パディング後のpg+1‖cの値、全てが相違していなければならない。
【0145】
何故なら、攻撃者は、マスク生成手段1322よりのマスクMや認証子生成手段1326よりの認証子Tagを自由に見ることが出来る。もし、入力される(パディング後の)カウンターモードpgの値や(パディング後の)pg+1‖cの値が同一であれば、MACを判別することが出来、DEM自体が安全でなくなるからである。
【0146】
そのほかの処理については実施例1と同様であるので、省略する。
【0147】
上述したように、DEMを情報暗号化部132の構成にすることで、1個の共通鍵で平文m(情報)を暗号化することができる。よって、実施例1では解決できなかった鍵長の問題を解決することが出来る。また、この実施例2では、情報暗号化部132をKEM−OTP−DEM方式の送信装置130に適用した例を説明したが、この情報暗号化部132はその他の方式の送信装置にも適用することが出来る。
【0148】
また、MAC(マスク生成手段1322や認証子生成手段1326)をPRF型にすることで、より高効率な暗号化同報通信を行うことが出来る。
【0149】
次に、受信装置140iについて説明する。実施例1で説明した受信装置120iと相違する点は、確認用認証子生成手段1482iの処理内容と、情報復号部146iの処理内容と、マスク生成部144iが新たに追加されたことである。
【0150】
マスク生成部144iで、共通鍵Rと、カウンターモードpgを用いて、マスクMが生成される(ステップS100)。ここで使用されるカウンターモードpgは送信側のマスク生成手段1322で使用されたカウンターモードpgと同一である。マスクMは情報復号部146iに入力される。
【0151】
情報復号部146iで、マスクMを用いて仮暗号文c’が復号され、平文mが求められる。具体的には、以下の式で求められる(ステップS102)。
【0152】
【数10】
【0153】
また、確認用認証子生成手段1482iで確認用認証子Tag’が生成される。具体的には、Tag’=MACr(pn+1‖c’)により生成される(ステップS104)。確認用認証子Tag’は判定手段1244iに入力される。
【0154】
そのほかの処理については実施例1の受信装置120iと同様であるので省略する。
【0155】
以上の各実施形態の他、本発明である同報通信暗号化方法、復号方法は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、同報通信暗号化方法、復号方法において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【0156】
また、この発明の同報通信暗号化方法、復号方法における処理をコンピュータによって実現する場合、同報通信暗号化方法、復号方法が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、同報通信暗号化方法、復号方法における処理機能がコンピュータ上で実現される。
【0157】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(DigitalVersatileDisc)、DVD−RAM(RandomAccessMemory)、CD−ROM(CompactDiscReadOnlyMemory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto−Opticaldisc)等を、半導体メモリとしてEEP−ROM(ElectronicallyErasableandProgrammable−ReadOnlyMemory)等を用いることができる。
【0158】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0159】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(ApplicationServiceProvider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0160】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、同報通信暗号化方法、復号方法を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【特許請求の範囲】
【請求項1】
共通鍵を用いる情報暗号化方法であって、
送信装置が、認証子生成手段で、上記共通鍵を用いて、通信対象の情報のビット長に等しいマスクを擬似ランダムに生成するマスク生成過程と、
送信装置が、仮暗号文生成手段で、上記マスクと上記情報との排他的論理和を計算することで、上記情報を暗号化して仮暗号文を生成する仮暗号文生成過程と、
送信装置が、定数付加手段で、入力された定数と上記仮暗号文とを結合させ、定数付加仮暗号文を生成する定数付加過程と、
送信装置が、上記認証子生成手段で、上記共通鍵と上記定数付加仮暗号文を用いて、関係鍵攻撃に対して安全に、上記仮暗号文の認証子を生成する認証子生成過程と、
送信装置が、結合手段で、上記仮暗号文と上記認証子を結合させることで、上記情報を暗号化する結合過程とを有することを特徴とする情報暗号化方法。
【請求項2】
共通鍵を用いる情報暗号化装置であって、
上記共通鍵を用いて、通信対象の情報のビット長に等しいマスクを擬似ランダムに生成する認証子生成部と、
上記マスクと上記情報との排他的論理和を計算することで、上記情報を暗号化して仮暗号文を生成する仮暗号文生成部と、
入力された定数と上記仮暗号文とを結合させ、定数付加仮暗号文を生成する定数付加部と、
上記共通鍵と上記定数付加仮暗号文を用いて、関係鍵攻撃に対して安全に、上記仮暗号文の認証子を生成する上記認証子生成部と、
上記仮暗号文と上記認証子を結合することで、上記情報を暗号化する結合部と、を有することを特徴とする情報暗号化装置。
【請求項3】
請求項1に記載した方法の各過程をコンピュータに実行させるためのプログラム。
【請求項4】
請求項3記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項1】
共通鍵を用いる情報暗号化方法であって、
送信装置が、認証子生成手段で、上記共通鍵を用いて、通信対象の情報のビット長に等しいマスクを擬似ランダムに生成するマスク生成過程と、
送信装置が、仮暗号文生成手段で、上記マスクと上記情報との排他的論理和を計算することで、上記情報を暗号化して仮暗号文を生成する仮暗号文生成過程と、
送信装置が、定数付加手段で、入力された定数と上記仮暗号文とを結合させ、定数付加仮暗号文を生成する定数付加過程と、
送信装置が、上記認証子生成手段で、上記共通鍵と上記定数付加仮暗号文を用いて、関係鍵攻撃に対して安全に、上記仮暗号文の認証子を生成する認証子生成過程と、
送信装置が、結合手段で、上記仮暗号文と上記認証子を結合させることで、上記情報を暗号化する結合過程とを有することを特徴とする情報暗号化方法。
【請求項2】
共通鍵を用いる情報暗号化装置であって、
上記共通鍵を用いて、通信対象の情報のビット長に等しいマスクを擬似ランダムに生成する認証子生成部と、
上記マスクと上記情報との排他的論理和を計算することで、上記情報を暗号化して仮暗号文を生成する仮暗号文生成部と、
入力された定数と上記仮暗号文とを結合させ、定数付加仮暗号文を生成する定数付加部と、
上記共通鍵と上記定数付加仮暗号文を用いて、関係鍵攻撃に対して安全に、上記仮暗号文の認証子を生成する上記認証子生成部と、
上記仮暗号文と上記認証子を結合することで、上記情報を暗号化する結合部と、を有することを特徴とする情報暗号化装置。
【請求項3】
請求項1に記載した方法の各過程をコンピュータに実行させるためのプログラム。
【請求項4】
請求項3記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2011−250466(P2011−250466A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2011−166174(P2011−166174)
【出願日】平成23年7月29日(2011.7.29)
【分割の表示】特願2007−11431(P2007−11431)の分割
【原出願日】平成19年1月22日(2007.1.22)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願日】平成23年7月29日(2011.7.29)
【分割の表示】特願2007−11431(P2007−11431)の分割
【原出願日】平成19年1月22日(2007.1.22)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]