図面 (/)

技術 階層型IDベース暗号化装置及び復号化装置、それらの方法、プログラム及び記録媒体

出願人 日本電信電話株式会社
発明者 小林鉄太郎大久保美也子高橋元知加良盛
出願日 2008年12月25日 (11年10ヶ月経過) 出願番号 2008-329776
公開日 2010年7月8日 (10年4ヶ月経過) 公開番号 2010-154193
状態 特許登録済
技術分野 暗号化・復号化装置及び秘密通信
主要キーワード オクテット列 導出関数 データカプセル ベースポイント 用手法 楕円曲線 復号失敗 双線形性
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2010年7月8日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (12)

課題

階層型IDベース暗号方式を採用しつつ、任意の長さの平文を暗号化することを可能とする。

解決手段

階層型IDベース暗号方式を構成する4つの機能(初期設定機能鍵生成機能暗号化機能、及び復号機能)のうち、暗号化機能と復号機能を鍵カプセル化メカニズムに対応させることによって、階層型IDベース暗号方式によりセッション鍵の生成・暗号化及び復号を行い、平文の暗号化及び復号を当該セッション鍵を用いた共通鍵暗号方式により行う。

概要

背景

IDベース暗号方式は、公開鍵暗号方式公開鍵として、受信者のIDやEメールアドレスなど一意に受信者を識別できる周知の個人情報を用いる公開鍵暗号方式の応用技術である。公開鍵として周知の個人情報を用いるため、一般的な公開鍵暗号方式のように公開鍵の真正性を(公開鍵証明書により)確認する必要が無く利便性に優れている。しかし、IDベース暗号方式は、鍵生成センタ(以下、「ノード」という。)が秘密鍵の生成を担う方式であるところ、秘密鍵の生成を要求する受信者の認証、秘密鍵の生成、及び受信者への秘密鍵の安全な配布などの各処理を1つのノードが一手に担うことになるため、ユーザの増大により、いずれはノードの処理能力限界に達し、それ以上はユーザを増やせなくなってしまうという問題があった。

そこで、ノードを階層的に複数配置することで、各ノードに受信者(のID)を適宜割り付けることによりノードにかかる負荷の分散を図ることができ、かつ、ノードの増設も容易にできる階層型IDベース暗号方式考案された(非特許文献1参照)。以下、その概要について説明する。

階層型IDベース暗号方式においては、最上位のノード(以下、「ルート」という。)の傘下の各ノードに割り付けられた受信者の(IDに対応する)秘密鍵は、基本的には当該受信者が割り付けられたノードの親ノードが、当該受信者のIDと当該親ノードの親ノードから受け取った自身の秘密鍵とから生成して当該受信者に配布する。

この一連の処理を、ノードを上位からルート、第1ノード、第2ノードという3階層で構成した場合を例にとって、図6のブロック図により具体的に説明する。この構成において、例えば、第2ノード12に属する受信者2から第1ノード11(ここでは受信者1)に利用要求があった時には、受信者1はまず、受信者2を認証した上で、ルート10から自身の秘密鍵(S1、Q0)を受け取る。そして、これと周知情報である受信者2のID情報組(id0、id1a、id2a)とから当該受信者2の秘密鍵(S2、Q1)を生成して受信者2に配布する。第3ノード以下の層がある場合にもこれと同様な方法で秘密鍵が配布される。なお、第1ノード11に属する受信者1からルート10に利用要求があった時には、ルート10は受信者1を認証した上で、自身が保持する秘密鍵s0と周知情報である受信者1のID情報組(id0、id1a)とから当該受信者1の秘密鍵(S1、Q0)を生成して受信者1に配布する。送信者3が受信者1に平文Mを暗号化して送る際には、送信者3は周知情報である受信者1のID情報組(id0、id1a)とルートの公開パラメータP0、p、Q0とを用いて平文Mから暗号文mを作成して送信し、暗号文mを受信した受信者1は、ルート10から配布を受けた自身の秘密鍵(S1、Q0)を用いて平文Mを復号する。なお、図1の構成例では各ノードには1ユーザだけが割り付けられているが、複数のユーザを割り付けても構わない。

従来の階層型IDベース暗号方式は、初期設定、鍵生成、暗号化、復号化の4つの機能から構成される。以下、各機能について処理の一例を説明する。

≪初期設定≫
初期設定はルートの機能であり、ルート秘密鍵s0と全ユーザに対する公開パラメータP0、p、Q0の生成を行う。また、ルートのID情報としてid0を設定する。図6の構成においては、ルート10が当該機能を担う。

本方式においては、楕円曲線上の演算を行うため、有限体Fq上に定義される楕円曲線Eと楕円曲線E上のベースポイントP0(位数:p)を決定した上で、以下の処理を行う。
(1)ランダム整数s0∈{0、1、2、・・・、p−1}を生成する。
(2)Q0=s0・P0を計算する。
(3)P0、p、Q0を出力する。

≪鍵生成≫
鍵生成機能はルート及びルート以外の各ノード(に属する各受信者)の機能であり、下位ノードに属する各受信者のID情報組に対応する秘密鍵を発行する。以下、第t−1階層のノードが第t階層のノードの受信者のために秘密鍵を発行する処理を説明する(0階層はルートとする)。なお、tの値により処理が3通りに分かれるため、それぞれについて説明する。図6の構成においては、鍵生成装置21、22が当該機能を担う。

<t=1の場合>
ルートが第1階層のノードの受信者のために秘密鍵を発行する処理である(図7参照)。
[入力]
・受信者のID情報組(周知情報、文字列):id0、id1
・ルートの公開パラメータ(初期設定にて生成):Q0
・ルートの秘密鍵(初期設定にて生成):s0
処理内容
(1)P1を、P1=IDenc(id0‖id1)により計算する。

(IDencは文字列を楕円曲線E上に写像する関数、‖は連結を表す)
(2)S1を、S1=s0・P1により計算する。

[出力]
・当該受信者のIDに対する秘密鍵:(S1、Q0)

<t=2の場合>
第1階層のノードが第2階層のノードの受信者のために秘密鍵を発行する処理である(図8参照)。
[入力]
・受信者のID情報組(周知情報、文字列):id0、id1、id2
・ルートの公開パラメータ(公開情報):P0
・第1階層の秘密鍵(ルートから入手):(S1、Q0)
[処理内容]
(1)ランダムな整数s1∈{0、1、2、・・・、p−1}を生成する。
(2)P2を、P2=IDenc(id0‖id1‖id2)により計算する。
(3)S2を、S2=S1+s1・P2により計算する。
(4)Q1を、Q1=s1・P0により計算する。
[出力]
・当該受信者のIDに対する秘密鍵:(S2、Q1)

<t>2の場合>
第2階層以降(第t−1階層)の各ノードが下位階層(第t階層)のノードの受信者のために秘密鍵を発行する処理である(図9参照:第2階層のノードが第3階層のノードに発行する例)。
[入力]
・受信者のID情報組(周知情報、文字列):id0、id1、・・・、idt
・ルートの公開パラメータ(公開情報):P0
・第t−1階層の秘密鍵(第t−2階層から入手)
:(St、Q1、Q2、・・・、Qt-2)
[処理内容]
(1)ランダムな整数st-1∈{0、1、2、・・・、p−1}を生成する。
(2)Ptを、Pt=IDenc(id0‖id1‖・・・‖idt)により計算する。
(3)Stを、St=St-1+st-1・Ptにより計算する。
(4)Qt-1を、Qt-1=st-1・P0により計算する。
[出力]
・当該受信者のIDに対する秘密鍵:(St、Q1、Q2、・・・、Qt-1)

≪暗号化≫
暗号化機能は送信者のための機能であり、受信者のID情報組とルートの公開パラメータとを用いて、平文Mが暗号化された暗号文cを生成する。図6〜9においては、階層型IDベース暗号化装置300がこれにあたる。
(1)ランダムな値r∈{0、1、2、・・・、p−1}を生成して出力する。
(2)ID情報組id0、id1、id2、・・・、idtに基づき、P1、P2、・・・、Ptをそれぞれ、
Pi=IDenc(id0‖id1‖・・・‖idi) (1≦i≦t)
により計算する。
(3)P0、P2、P3、・・・、Ptとrとから、U0、U2、U3、・・・、Utをそれぞれ、
Uj=r・Pj (j=0又は2≦j≦t)
により計算する。
(4)Q0とP1とrとから、任意のペアリング関数eを用いてQを、Q=e(Q0 、P1 )rにより計算する。なお、ペアリング関数eとは2入力1出力の関数で、楕円曲線E上の2点P、Qについて、e(aP、bQ)=e(P、Q)ab=e(bP、aQ)というような双線形性成立させる関数である。
(5)Qと平文Mとが入力され、所定の長さのデータ列を出力する任意の一方向関数hashを用いてc´を、
c´=Mxor hash(Q)
(xorは排他的論理和演算を表す)により計算する。
(6)U0、U2、U3、・・・、Utとc´とが入力され、Ujをデータ列に変換した上で暗号文cを、
c=U0‖U2‖U3‖・・・‖Ut‖c´
により計算して出力する。

≪復号化≫
復号化機能は受信者のための機能であり、当該受信者のID情報組に対応する秘密鍵を用いて暗号文cから平文Mを復号する。図6〜9においては、階層型IDベース暗号化装置400がこれにあたる。
(1)暗号文cが入力され、c=U0‖U2‖U3‖・・・‖Ut‖c´であるとして、U0、U2、U3、・・・、Utとc´とに分割する。
(2) U0、U2、U3、・・・、Utと秘密鍵St、Q1、Q2、・・・、Qt-1とから、Ujを楕円曲線E上の点に変換した上でペアリング関数eを用いてQを、

により計算する。
(3)c´とQとから、一方向関数hashを用いて平文Mを、
M=c´xor hash(Q)
により計算して出力する。なお、計算に際してはQをデータ列に変換した上で行う。
Craig Gentry and Alice Silverberg、"Hierarchical ID-Based Criptography"、ASIACRYPT2002、LNCS 2501、2002年、p.548-566
日本電信電話株式会社、「PSEC-KEM仕様書version 2.2」、[online]、平成20年4月14日、[平成20年11月26日検索]、インターネット

概要

階層型IDベース暗号方式を採用しつつ、任意の長さの平文を暗号化することを可能とする。階層型IDベース暗号方式を構成する4つの機能(初期設定機能、鍵生成機能、暗号化機能、及び復号機能)のうち、暗号化機能と復号機能を鍵カプセル化メカニズムに対応させることによって、階層型IDベース暗号方式によりセッション鍵の生成・暗号化及び復号を行い、平文の暗号化及び復号を当該セッション鍵を用いた共通鍵暗号方式により行う。

目的

以上説明したPSEC−KEMは、楕円曲線暗号による一般的な公開鍵暗号方式をKEM−DEM構成に対応させる技術、すなわちKEM化する技術である。もし階層型IDベース暗号方式についても図1に示すようにKEM化することができれば、平文の暗号化は共通鍵暗号により行われるため、任意長の平文を暗号化することが可能となる。本発明の目的は、PSEC−KEMを階層型IDベース暗号方式に応用し、KEM化された階層型IDベース暗号化装置及び復号化装置を実現することにある。

効果

実績

技術文献被引用数
1件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

有限体Fq上で定義される楕円曲線E上の点P0及びその位数pと、Q0=s0・P0(s0∈{0、1、2、・・、p−1})により計算されるQ0と、任意の文字列であるID情報組id0、id1、id2、・・・、idt(tは当該ID情報組が属するノードの階層数、t≧1)とが入力され、暗号文cとセッション鍵kとを出力する階層型IDベース暗号化装置であって、所定の長さhLenオクテットランダムな値r∈{0、1、2、・・・、p−1}を生成して出力する乱数生成部と、上記rが入力され、任意の一方向関数hash1を用いて長さzLen+keyLenオクテットのhを、h=hash1(r)(zLen、keyLenはそれぞれ所定のオクテット長。)により計算して出力する第1ハッシュ計算部と、上記hが入力され、h=z‖k(‖は連結を表す。)であるとして、長さzLenオクテットのzと、長さkeyLenオクテットのセッション鍵kとに分割して出力する分割部と、上記zと上記pとが入力され、zを整数に変換した上でαをα=z mod pにより計算して出力するα計算部と、上記ID情報組id0、id1、id2、・・・、idtが入力され、文字列を楕円曲線E上の点に写像する関数IDencを用いてP1、P2、・・・、Ptをそれぞれ、Pi=IDenc(id0‖id1‖・・・‖idi)(1≦i≦t)により計算して出力するP計算部と、上記P0、P2、P3、・・・、Ptと上記αとが入力され、U0、U2、U3、・・・、Utをそれぞれ、Uj=α・Pj(j=0又は2≦j≦t)により計算して出力するU計算部と、上記Q0と上記P1と上記αとが入力され、任意のペアリング関数eを用いてQを、Q=e(Q0 、P1 )αにより計算して出力するQ計算部と、上記rと上記U0、U2、U3、・・・、Utと上記Qと上記ID情報組id0、id1、id2、・・・、idtとが入力され、U0、U2、U3、・・・、UtとQをオクテット列に変換した上で任意の一方向関数hash2を用いて長さhLenオクテットのc´を、c´=rxor hash2(U0‖U2‖・・・‖Ut‖Q‖id0‖id1‖id2‖・・・‖idt)(xorは排他的論理和演算を表す。)により計算して出力する第2ハッシュ計算部と、上記U0、U2、U3、・・・、Utと上記c´とが入力され、U0、U2、U3、・・・、Utをオクテット列に変換した上で暗号文cを、c=U0‖U2‖U3‖・・・‖Ut‖c´により計算して出力する暗号文計算部と、を備えることを特徴とする階層型IDベース暗号化装置。

請求項2

請求項1に記載の階層型IDベース暗号化装置において、上記第1ハッシュ計算部は、更に上記ID情報組id0、id1、id2、・・・、idtが入力され、hを、h=hash1(r‖id0‖id1‖id2‖・・・‖idt)により計算することを特徴とする階層型IDベース暗号化装置。

請求項3

有限体Fq上で定義される楕円曲線E上の点P0及びその位数pと、任意の文字列であるID情報組id0、id1、id2、・・・、idt(tは当該ID情報組が属するノードの階層数、t≧1)と、所定の方法により予め生成された、上記ID情報組に対応する秘密鍵St、Q1、Q2、・・・、Qt-1(St、Q1、Q2、・・・、Qt-1は楕円曲線E上の点)と、暗号文cとが入力され、セッション鍵kを出力する階層型IDベース復号化装置であって、上記暗号文cが入力され、c=U0‖U2‖U3‖・・・‖Ut‖c´(‖は連結を表す。)であるとして、長さhLenオクテットのc´と、残りをt等分したU0、U2、U3、・・・、Utとに分割する第1分割部と、上記秘密鍵St、Q1、Q2、・・・、Qt-1と上記U0、U2、U3、・・・、Utとが入力され、U0、U2、U3、・・・、Utを楕円曲線E上の点に変換した上で任意のペアリング関数eを用いてQを、により計算して出力するQ計算部と、上記U0、U2、U3、・・・、Utと、上記c´と、上記Qと、上記ID情報組id0、id1、id2、・・・、idtとが入力され、U0、U2、U3、・・・、UtとQをオクテット列に変換した上で任意の一方向関数hash2を用いて長さhLenオクテットのrを、r=c´xor hash2(U0‖U2‖U3‖・・・‖Ut‖Q‖id0‖id1‖id2‖・・・‖idt)(xorは排他的論理和演算を表す。)により計算して出力する第2ハッシュ計算部と、上記rが入力され、任意の一方向関数hash1を用いて長さzLen+keyLenオクテットのhを、h=hash1(r)(zLen、keyLenはそれぞれ所定のオクテット長。)により計算して出力する第1ハッシュ計算部と、上記hが入力され、h=z‖kであるとして、長さzLenオクテットのzと、長さkeyLenオクテットのセッション鍵kとに分割して出力する第2分割部と、上記zと上記pとが入力され、zを整数に変換した上でαをα=z mod pにより計算して出力するα計算部と、上記ID情報組id0、id1、id2、・・・、idtが入力され、文字列を楕円曲線E上の点に写像する関数IDencを用いてP2、P3、・・・、Ptをそれぞれ、Pi=IDenc(id0‖id1‖・・・‖idi)(2≦i≦t)により計算して出力するP計算部と、上記P0、P2、P3、・・・、Ptと上記αと上記セッション鍵kとが入力され、α・P0、α・P2、α・P3、・・・、α・Ptを計算し、それぞれU0、U2、U3、・・・、Utと一致するか否かを検証して、一致した場合には上記セッション鍵kを出力し、一致しなかった場合には復号失敗を示す情報を出力する検証部と、を備えることを特徴とする階層型IDベース復号化装置。

請求項4

請求項3に記載の階層型IDベース復号化装置において、上記第1ハッシュ計算部は、更に上記ID情報組id0、id1、id2、・・・、idtが入力され、hを、h=hash1(r‖id0‖id1‖id2‖・・・‖idt)により計算することを特徴とする階層型IDベース復号化装置。

請求項5

有限体Fq上で定義される楕円曲線E上の点P0及びその位数pと、Q0=s0・P0(s0∈{0、1、2、・・・、p−1})により計算されるQ0と、任意の文字列であるID情報組id0、id1、id2、・・・、idt(tは当該ID情報組が属するノードの階層数、t≧1)とから、暗号文cとセッション鍵kとを求める階層型IDベース暗号化方法であって、乱数生成部が、所定の長さhLenオクテットのランダムな値r∈{0、1、2、・・・、p−1}を生成する乱数生成ステップと、第1ハッシュ計算部が、任意の一方向関数hash1を用いて長さzLen+keyLenオクテットのhを、h=hash1(r)またはh=hash1(r‖id0‖id1‖id2‖・・・‖idt)(zLen、keyLenはそれぞれ所定のオクテット長、‖は連結を表す。)により計算する第1ハッシュ計算ステップと、分割部が、上記hをh=z‖kであるとして、長さzLenオクテットのzと長さkeyLenオクテットのセッション鍵kとに分割する分割ステップと、α計算部が、zを整数に変換した上でαをα=z mod pにより計算するα計算ステップと、P計算部が、文字列を楕円曲線E上の点に写像する関数IDencを用いてP1、P2、・・・、Ptをそれぞれ、Pi=IDenc(id0‖id1‖・・・‖idi)(1≦i≦t)により計算するP計算ステップと、U計算部が、U0、U2、U3、・・・、Utをそれぞれ、Uj=α・Pj(j=0又は2≦j≦t)により計算するU計算ステップと、Q計算部が、任意のペアリング関数eを用いてQを、Q=e(Q0 、P1 )αにより計算するQ計算ステップと、第2ハッシュ計算部が、U0、U2、U3、・・・、UtとQをオクテット列に変換した上で任意の一方向関数hash2を用いて長さhLenオクテットのc´を、c´=rxor hash2(U0‖U2‖・・・‖Ut ‖Q‖id0‖id1‖id2‖・・・‖idt)(xorは排他的論理和演算を表す。)により計算する第2ハッシュ計算ステップと、暗号文計算部が、U0、U2、U3、・・・、Utをオクテット列に変換した上で暗号文cを、c=U0‖U2‖U3‖・・・‖Ut‖c´により計算する暗号文計算ステップと、を実行することを特徴とする階層型IDベース暗号化方法。

請求項6

有限体Fq上で定義される楕円曲線E上の点P0及びその位数pと、任意の文字列であるID情報組id0、id1、id2、・・・、idt(tは当該ID情報組が属するノードの階層数、t≧1)と、所定の方法により予め生成された、上記ID情報組に対応する秘密鍵St、Q1、Q2、・・・、Qt-1(St、Q1、Q2、・・・、Qt-1は楕円曲線E上の点)と、暗号文cとから、セッション鍵kを求める階層型IDベース復号化方法であって、第1分割部が、上記暗号文cがc=U0‖U2‖U3‖・・・‖Ut‖c´(‖は連結を表す。)であるとして、長さhLenオクテットのc´と、残りをt等分したU0、U2、U3、・・・、Utとに分割する第1分割ステップと、Q計算部が、U0、U2、U3、・・・、Utを楕円曲線E上の点に変換した上で任意のペアリング関数eを用いてQを、により計算するQ計算ステップと、第2ハッシュ計算部が、U0、U2、U3、・・・、UtとQをオクテット列に変換した上で任意の一方向関数hash2を用いて長さhLenオクテットのrを、r=c´xor hash2(U0‖U2‖U3‖・・・‖Ut ‖Q‖id0‖id1‖id2‖・・・‖idt)(xorは排他的論理和演算を表す。)により計算する第2ハッシュ計算ステップと、第1ハッシュ計算部が、一方向関数hash1を用いて長さzLen+keyLenオクテットのhを、h=hash1(r)またはh=hash1(r‖id0‖id1‖id2‖・・・‖idt)(zLen、keyLenはそれぞれ所定のオクテット長。)により計算する第1ハッシュ計算ステップと、第2分割部が、上記hをh=z‖kであるとして、長さzLenオクテットのzと、長さkeyLenオクテットのセッション鍵kとに分割する第2分割ステップと、α計算部が、zを整数に変換した上でαをα=z mod pにより計算するα計算ステップと、P計算部が、文字列を楕円曲線E上の点に写像する関数IDencを用いてP2、P3、・・・、Ptをそれぞれ、Pi=IDenc(id0‖id1‖・・・‖idi)(2≦i≦t)により計算するP計算ステップと、検証部が、α・P0、α・P2、α・P3、・・・、α・Ptを計算し、それぞれU0、U2、U3、・・・、Utと一致するか否かを検証して、一致した場合には上記セッション鍵kを出力し、一致しなかった場合には復号失敗を示す情報を出力する検証ステップと、を実行することを特徴とする階層型IDベース復号化方法。

請求項7

請求項1に記載の階層型IDベース暗号化装置と請求項3に記載の階層型IDベース復号化装置との組、又は、請求項2に記載の階層型IDベース暗号化装置と請求項4に記載の階層型IDベース復号化装置との組、のいずれかを含む階層型IDベース暗号システム

請求項8

請求項1〜4、7のいずれかに記載した装置又はシステムとしてコンピュータを機能させるためのプログラム

請求項9

請求項8に記載したプログラムを記録したコンピュータが読み取り可能な記録媒体

技術分野

0001

本発明は、データを暗号化する装置に関し、特に公開鍵暗号暗号鍵として周知のユーザ情報を利用する階層型IDベース暗号化装置及び復号化装置、それらの方法、プログラム及び記録媒体に関する。

背景技術

0002

IDベース暗号方式は、公開鍵暗号方式公開鍵として、受信者のIDやEメールアドレスなど一意に受信者を識別できる周知の個人情報を用いる公開鍵暗号方式の応用技術である。公開鍵として周知の個人情報を用いるため、一般的な公開鍵暗号方式のように公開鍵の真正性を(公開鍵証明書により)確認する必要が無く利便性に優れている。しかし、IDベース暗号方式は、鍵生成センタ(以下、「ノード」という。)が秘密鍵の生成を担う方式であるところ、秘密鍵の生成を要求する受信者の認証、秘密鍵の生成、及び受信者への秘密鍵の安全な配布などの各処理を1つのノードが一手に担うことになるため、ユーザの増大により、いずれはノードの処理能力限界に達し、それ以上はユーザを増やせなくなってしまうという問題があった。

0003

そこで、ノードを階層的に複数配置することで、各ノードに受信者(のID)を適宜割り付けることによりノードにかかる負荷の分散を図ることができ、かつ、ノードの増設も容易にできる階層型IDベース暗号方式考案された(非特許文献1参照)。以下、その概要について説明する。

0004

階層型IDベース暗号方式においては、最上位のノード(以下、「ルート」という。)の傘下の各ノードに割り付けられた受信者の(IDに対応する)秘密鍵は、基本的には当該受信者が割り付けられたノードの親ノードが、当該受信者のIDと当該親ノードの親ノードから受け取った自身の秘密鍵とから生成して当該受信者に配布する。

0005

この一連の処理を、ノードを上位からルート、第1ノード、第2ノードという3階層で構成した場合を例にとって、図6ブロック図により具体的に説明する。この構成において、例えば、第2ノード12に属する受信者2から第1ノード11(ここでは受信者1)に利用要求があった時には、受信者1はまず、受信者2を認証した上で、ルート10から自身の秘密鍵(S1、Q0)を受け取る。そして、これと周知情報である受信者2のID情報組(id0、id1a、id2a)とから当該受信者2の秘密鍵(S2、Q1)を生成して受信者2に配布する。第3ノード以下の層がある場合にもこれと同様な方法で秘密鍵が配布される。なお、第1ノード11に属する受信者1からルート10に利用要求があった時には、ルート10は受信者1を認証した上で、自身が保持する秘密鍵s0と周知情報である受信者1のID情報組(id0、id1a)とから当該受信者1の秘密鍵(S1、Q0)を生成して受信者1に配布する。送信者3が受信者1に平文Mを暗号化して送る際には、送信者3は周知情報である受信者1のID情報組(id0、id1a)とルートの公開パラメータP0、p、Q0とを用いて平文Mから暗号文mを作成して送信し、暗号文mを受信した受信者1は、ルート10から配布を受けた自身の秘密鍵(S1、Q0)を用いて平文Mを復号する。なお、図1の構成例では各ノードには1ユーザだけが割り付けられているが、複数のユーザを割り付けても構わない。

0006

従来の階層型IDベース暗号方式は、初期設定、鍵生成、暗号化、復号化の4つの機能から構成される。以下、各機能について処理の一例を説明する。

0007

≪初期設定≫
初期設定はルートの機能であり、ルート秘密鍵s0と全ユーザに対する公開パラメータP0、p、Q0の生成を行う。また、ルートのID情報としてid0を設定する。図6の構成においては、ルート10が当該機能を担う。

0008

本方式においては、楕円曲線上の演算を行うため、有限体Fq上に定義される楕円曲線Eと楕円曲線E上のベースポイントP0(位数:p)を決定した上で、以下の処理を行う。
(1)ランダム整数s0∈{0、1、2、・・・、p−1}を生成する。
(2)Q0=s0・P0を計算する。
(3)P0、p、Q0を出力する。

0009

≪鍵生成≫
鍵生成機能はルート及びルート以外の各ノード(に属する各受信者)の機能であり、下位ノードに属する各受信者のID情報組に対応する秘密鍵を発行する。以下、第t−1階層のノードが第t階層のノードの受信者のために秘密鍵を発行する処理を説明する(0階層はルートとする)。なお、tの値により処理が3通りに分かれるため、それぞれについて説明する。図6の構成においては、鍵生成装置21、22が当該機能を担う。

0010

<t=1の場合>
ルートが第1階層のノードの受信者のために秘密鍵を発行する処理である(図7参照)。
[入力]
・受信者のID情報組(周知情報、文字列):id0、id1
・ルートの公開パラメータ(初期設定にて生成):Q0
・ルートの秘密鍵(初期設定にて生成):s0
処理内容
(1)P1を、P1=IDenc(id0‖id1)により計算する。

0011

(IDencは文字列を楕円曲線E上に写像する関数、‖は連結を表す)
(2)S1を、S1=s0・P1により計算する。

0012

[出力]
・当該受信者のIDに対する秘密鍵:(S1、Q0)

0013

<t=2の場合>
第1階層のノードが第2階層のノードの受信者のために秘密鍵を発行する処理である(図8参照)。
[入力]
・受信者のID情報組(周知情報、文字列):id0、id1、id2
・ルートの公開パラメータ(公開情報):P0
・第1階層の秘密鍵(ルートから入手):(S1、Q0)
[処理内容]
(1)ランダムな整数s1∈{0、1、2、・・・、p−1}を生成する。
(2)P2を、P2=IDenc(id0‖id1‖id2)により計算する。
(3)S2を、S2=S1+s1・P2により計算する。
(4)Q1を、Q1=s1・P0により計算する。
[出力]
・当該受信者のIDに対する秘密鍵:(S2、Q1)

0014

<t>2の場合>
第2階層以降(第t−1階層)の各ノードが下位階層(第t階層)のノードの受信者のために秘密鍵を発行する処理である(図9参照:第2階層のノードが第3階層のノードに発行する例)。
[入力]
・受信者のID情報組(周知情報、文字列):id0、id1、・・・、idt
・ルートの公開パラメータ(公開情報):P0
・第t−1階層の秘密鍵(第t−2階層から入手)
:(St、Q1、Q2、・・・、Qt-2)
[処理内容]
(1)ランダムな整数st-1∈{0、1、2、・・・、p−1}を生成する。
(2)Ptを、Pt=IDenc(id0‖id1‖・・・‖idt)により計算する。
(3)Stを、St=St-1+st-1・Ptにより計算する。
(4)Qt-1を、Qt-1=st-1・P0により計算する。
[出力]
・当該受信者のIDに対する秘密鍵:(St、Q1、Q2、・・・、Qt-1)

0015

≪暗号化≫
暗号化機能は送信者のための機能であり、受信者のID情報組とルートの公開パラメータとを用いて、平文Mが暗号化された暗号文cを生成する。図6〜9においては、階層型IDベース暗号化装置300がこれにあたる。
(1)ランダムな値r∈{0、1、2、・・・、p−1}を生成して出力する。
(2)ID情報組id0、id1、id2、・・・、idtに基づき、P1、P2、・・・、Ptをそれぞれ、
Pi=IDenc(id0‖id1‖・・・‖idi) (1≦i≦t)
により計算する。
(3)P0、P2、P3、・・・、Ptとrとから、U0、U2、U3、・・・、Utをそれぞれ、
Uj=r・Pj (j=0又は2≦j≦t)
により計算する。
(4)Q0とP1とrとから、任意のペアリング関数eを用いてQを、Q=e(Q0 、P1 )rにより計算する。なお、ペアリング関数eとは2入力1出力の関数で、楕円曲線E上の2点P、Qについて、e(aP、bQ)=e(P、Q)ab=e(bP、aQ)というような双線形性成立させる関数である。
(5)Qと平文Mとが入力され、所定の長さのデータ列を出力する任意の一方向関数hashを用いてc´を、
c´=Mxor hash(Q)
(xorは排他的論理和演算を表す)により計算する。
(6)U0、U2、U3、・・・、Utとc´とが入力され、Ujをデータ列に変換した上で暗号文cを、
c=U0‖U2‖U3‖・・・‖Ut‖c´
により計算して出力する。

0016

≪復号化≫
復号化機能は受信者のための機能であり、当該受信者のID情報組に対応する秘密鍵を用いて暗号文cから平文Mを復号する。図6〜9においては、階層型IDベース暗号化装置400がこれにあたる。
(1)暗号文cが入力され、c=U0‖U2‖U3‖・・・‖Ut‖c´であるとして、U0、U2、U3、・・・、Utとc´とに分割する。
(2) U0、U2、U3、・・・、Utと秘密鍵St、Q1、Q2、・・・、Qt-1とから、Ujを楕円曲線E上の点に変換した上でペアリング関数eを用いてQを、

0017

0018

により計算する。
(3)c´とQとから、一方向関数hashを用いて平文Mを、
M=c´xor hash(Q)
により計算して出力する。なお、計算に際してはQをデータ列に変換した上で行う。
Craig Gentry and Alice Silverberg、"Hierarchical ID-Based Criptography"、ASIACRYPT2002、LNCS 2501、2002年、p.548-566
日本電信電話株式会社、「PSEC-KEM仕様書version 2.2」、[online]、平成20年4月14日、[平成20年11月26日検索]、インターネット

発明が解決しようとする課題

0019

図10は、上記説明した従来の階層型IDベース暗号方式における平文Mに対する暗号化処理形態を端的に示したものである。上記の機能説明及びこの図からわかるように、従来の階層型IDベース暗号方式は、公開パラメータPにより平文Mを直接暗号化し、暗号文mを秘密鍵Sを用いて復号するという、ごく一般的な公開鍵暗号方式を基礎としている。

0020

各種公開鍵暗号方式のうち、階層型IDベース暗号方式への応用手法確立されているのは、現状では楕円曲線暗号を用いる方式(非特許文献1参照)に限られている。しかし、楕円曲線暗号を用いる方式においては、平文データを楕円曲線上の点に対応させて暗号化処理を行うため、一度の処理で暗号化できる平文の長さ(データ量)が楕円曲線上の点の数(例えば160bit)程度に限られてしまうという問題があった。

0021

楕円曲線暗号による公開鍵暗号方式のメリットを生かしつつ、任意長の平文を効率的に暗号化することを可能とする方式として、PSEC−KEM(Provably Secure Elliptic Curve encryption - Key Encapsulation Mechanisms)が実現されている(非特許文献2参照)。以下、その概要について説明する。

0022

KEM(鍵カプセル化メカニズム)は、共通鍵暗号方式で用いるセッション鍵の生成・配送に公開鍵暗号方式を用いるフレームワークであり、当該セッション鍵を用いて平文の暗号化及び復号を行う共通鍵暗号方式によるフレームワークであるDEM(Data Encapsulation Mechanisms:データカプセルメカニズム)とセットでハイブリッド暗号を実現するものである。このようなKEM−DEM構成を用いることで、公開鍵暗号方式の「鍵の管理・配布が容易」というメリットと、共通鍵暗号方式の「暗号化・復号化処理高速であり、かつ、暗号化できる平文の長さに制約が無い」というメリットの双方を享受することができる。図11は、KEM−DEM構成における平文に対する暗号化処理形態を示したものである。この構成においては、まず、送信者のKEM暗号化装置500において、受信者の公開鍵Pを用いて共通鍵であるセッション鍵kを生成するとともに、このセッション鍵kを含む暗号文cを生成して送信する。そして、受信者のKEM復号化装置600において暗号文cを受信し、これを秘密鍵Sを用いて復号してセッション鍵kを取り出す。このようにセッション鍵kを共有した後、送信者のDEM暗号化装置700においてセッション鍵kを用いて平文Mを暗号化して送信し、受信者のDEM復号化装置800において、受信した暗号文mをセッション鍵kを用いて復号し平文Mを取り出す。

0023

PSEC−KEMは、KEMを楕円曲線暗号により構成する方式であり、上記のメリットに加え、「安全性を維持しつつ鍵長を短く構成することが可能」、「鍵生成処理が高速」などのメリットも享受できる。PSEC−KEMは、鍵生成、暗号化、復号化の3つの機能から構成される。以下、各機能を簡単に説明する。

0024

〔鍵生成機能〕
PSEC−KEMでは、楕円曲線上の演算を行うため、まず、有限体Fq上に定義される楕円曲線Eと楕円曲線E上のベースポイントP0(位数:p)を決定した上で以下の処理を行い、ベースポイントP0とその位数p、公開鍵P=Q0、及び秘密鍵S=s0を出力する。
(1)ランダムな整数s0∈{0、1、2、・・・、p−1}を生成する。
(2)Q0=s0・P0を計算する。
(3)ベースポイントP0とその位数p、公開鍵P=Q0、及び秘密鍵S=s0をそれぞれ出力する。

0025

〔暗号化機能〕
ベースポイントP0とその位数p、及び公開鍵P=Q0を入力とし、暗号文c及びセッション鍵kを出力する。
(1)所定の長さhLenオクテットのランダムな値r∈{0、1、2、・・・、p−1}を生成する。
(2)長さzLen+keyLenオクテットのh=KDF(0x00000000‖r)を生成する。ここで、zLen、keyLenはそれぞれ所定のオクテット長であり、KDF()は任意の鍵導出関数であり、‖はオクテット列の連結を表す。
(3)h=z‖kとして、hを長さzLenオクテットのzと長さkeyLenオクテットのkとに分割する。
(4)zを整数に変換した上で、α=z mod pを計算する。なお、計算は行う。
(5)U0=α・P0、Q=α・Q0を計算する。
(6)U0、Qをオクテット列に変換した上で、長さhLenオクテットのh´を
h´=KDF(0x00000001‖U0‖Q)により計算する。
(7)長さhLenオクテットのc´をc´=r xor h´により計算する。ここで、xorは排他的論理和演算を表す。
(8) U0をオクテット列に変換した上で、暗号文c=U0‖c´及びセッション鍵kとを出力する。

0026

〔復号化機能〕
秘密鍵S=s0、暗号文c、ベースポイントP0とその位数pを入力とし、セッション鍵k(又は復号失敗を示す情報)を出力する。
(1)暗号文c=U0‖c´を、U0と長さhLenオクテットのc´とに分割する。
(2)U0を楕円曲線E上の点に変換した上で、Q=s0・U0を計算する。
(3)Qをオクテット列に変換した上で、長さhLenオクテットのh´を
h´=KDF(0x00000001‖U0‖Q)により計算する。
(4)長さhLenオクテットのrをr=c´xor h´により計算する。
(5)長さzLen+keyLenオクテットのhをh=KDF(0x00000000‖r)により計算 する。
(6)h=z‖kとして、hを長さzLenオクテットのzと長さkeyLenオクテットのkとに分割する。
(7)zを整数に変換した上で、α=z mod pを計算する。
(8)U0=α・P0が成立するか否かをチェックし、成立すればセッション鍵kを出力し、成立しなければ"INVALID"等の復号失敗を示す情報を出力する。

0027

以上説明したPSEC−KEMは、楕円曲線暗号による一般的な公開鍵暗号方式をKEM−DEM構成に対応させる技術、すなわちKEM化する技術である。もし階層型IDベース暗号方式についても図1に示すようにKEM化することができれば、平文の暗号化は共通鍵暗号により行われるため、任意長の平文を暗号化することが可能となる。本発明の目的は、PSEC−KEMを階層型IDベース暗号方式に応用し、KEM化された階層型IDベース暗号化装置及び復号化装置を実現することにある。

課題を解決するための手段

0028

本発明の階層型IDベース暗号化装置は、乱数生成部と第1ハッシュ計算部と分割部とα計算部とP計算部とU計算部とQ計算部と第2ハッシュ計算部と暗号文計算部とから構成される。

0029

乱数生成部は、所定の長さhLenオクテットのランダムな値r∈{0、1、2、・・・、p−1}を生成して出力する。

0030

第1ハッシュ計算部は、rが入力され、任意の一方向関数hash1を用いて長さzLen+keyLenオクテットのhを、
h=hash1(r)
(zLen、keyLenはそれぞれ所定のオクテット長)により計算して出力する。

0031

分割部は、hが入力され、h=z‖k(‖は連結を表す)であるとして、長さzLenオクテットのzと、長さkeyLenオクテットのセッション鍵kとに分割して出力する。

0032

α計算部は、zと公開パラメータpとが入力され、zを整数に変換した上でαをα=z mod pにより計算して出力する。

0033

P計算部は、ID情報組id0、id1、id2、・・・、idtが入力され、文字列を楕円曲線E上の点に写像する関数IDencを用いてP1、P2、・・・、Ptをそれぞれ、
Pi=IDenc(id0‖id1‖・・・‖idi) (1≦i≦t)
により計算して出力する。

0034

U計算部は、P2、P3、・・・、Ptとαと公開パラメータP0とが入力され、U0、U2、U3、・・・、Utをそれぞれ、
Uj=α・Pj (j=0又は2≦j≦t)
により計算して出力する。

0035

Q計算部は、P1とαと公開パラメータQ0とが入力され、任意のペアリング関数eを用いてQを、
Q=e(Q0 、P1 )α
により計算して出力する。

0036

第2ハッシュ計算部は、rとU0、U2、U3、・・・、UtとQと受信者のID情報組id0、id1、id2、・・・、idtとが入力され、U0、U2、U3、・・・、UtとQをオクテット列に変換した上で任意の一方向関数hash2を用いて長さhLenオクテットのc´を、
c´=rxor hash2(U0‖U2‖・・・‖Ut ‖Q‖id0‖id1‖id2‖・・・‖idt)
(xorは排他的論理和演算を表す)により計算して出力する。

0037

暗号文計算部は、U0、U2、U3、・・・、Utとc´とが入力され、U0、U2、U3、・・・、Utをオクテット列に変換した上で暗号文cを、
c=U0‖U2‖U3‖・・・‖Ut‖c´
により計算して出力する。

0038

また、本発明の階層型IDベース復号化装置は、第1分割部とQ計算部と第2ハッシュ計算部と第1ハッシュ計算部と第2分割部とα計算部とP計算部と検証部とから構成される。

0039

第1分割部は、暗号文cが入力され、c=U0‖U2‖U3‖・・・‖Ut‖c´であるとして、長さhLenオクテットのc´と、残りをt等分したU0、U2、U3、・・・、Utとに分割する。

0040

Q計算部は、U0、U2、U3、・・・、Utと所定の方法により予め生成された秘密鍵St、Q1、Q2、・・・、Qt-1とが入力され、U0、U2、U3、・・・、Utを楕円曲線E上の点に変換した上でペアリング関数eを用いてQを、

0041

により計算して出力する。

0042

第2ハッシュ計算部は、U0、U2、U3、・・・、Utとc´とQとID情報組id0、id1、id2、・・・、idtとが入力され、U0、U2、U3、・・・、UtとQをオクテット列に変換した上で一方向関数hash2を用いて長さhLenオクテットのrを、
r=c´xor hash2(U0‖U2‖U3‖・・・‖Ut ‖Q‖id0‖id1‖id2‖・・・‖idt)
(xorは排他的論理和演算を表し、‖は連結を表す)により計算して出力する。

0043

第1ハッシュ計算部は、rとID情報組id0、id1、id2、・・・、idtとが入力され、一方向関数hash1を用いて長さzLen+keyLenオクテットのhを、
h=hash1(r)
(zLen、keyLenはそれぞれ所定のオクテット長)により計算して出力する。

0044

第2分割部は、hが入力され、h=z‖kであるとして、長さzLenオクテットのzと、長さkeyLenオクテットのセッション鍵kとに分割して出力する。

0045

α計算部は、zとpとが入力され、zを整数に変換した上でαをα=z mod pにより計算して出力する。

0046

P計算部は、ID情報組id0、id1、id2、・・・、idtが入力され、文字列を楕円曲線E上の点に写像する関数IDencを用いてP2、P3、・・・、Ptをそれぞれ、
Pi=IDenc(id0‖id1‖・・・‖idi) (2≦i≦t)
により計算して出力する。

0047

検証部は、P0、P2、P3、・・・、Ptとαとセッション鍵kとが入力され、α・P0、α・P2、α・P3、・・・、α・Ptを計算し、それぞれU0、U2、U3、・・・、Utと一致するか否かを検証する。そして、一致した場合にはセッション鍵kを出力し、一致しなかった場合には復号失敗を示す情報を出力する。

発明の効果

0048

本発明の階層型IDベース暗号化装置及び復号化装置により、階層型IDベース暗号方式をKEM化することができるため、任意長の平文を暗号化することが可能となる。

発明を実施するための最良の形態

0049

上記の背景技術でも記したとおり、階層型IDベース暗号方式は、トポロジー面ではルートを頂点に、割り付けられた受信者に対して秘密鍵を発行するノードが、階層的に複数配置されることを特徴とし、機能面では初期設定、鍵生成、暗号化、復号化の4つの機能から構成されることを特徴とするが、本発明においてもこれらの特徴は同様である。

0050

4つの機能のうち、KEM化にかかわる部分は暗号化機能と復号化機能であり、本発明はこれらの機能にPSEC−KEMの技術を応用したものである。以下、各機能について説明する。なお、初期設定機能と鍵生成機能については、従来技術と同様であり、それらの機能における入出力及び処理は上記背景技術にて示したとおりであるため、ここでは説明を省略する。

0051

≪暗号化≫
本発明の階層型IDベース暗号化装置100の機能構成例図2に、処理フロー例を図3にそれぞれ示す。本発明の階層型IDベース暗号化装置100は、乱数生成部101と第1ハッシュ計算部102と分割部103とα計算部104とP計算部105とU計算部106とQ計算部107と第2ハッシュ計算部108と暗号文計算部109とから構成される。

0052

乱数生成部101は、所定の長さhLenオクテットのランダムな値r∈{0、1、2、・・・、p−1}を生成して出力する(S1)。安全性の確保にあたり、hLenは16オクテット以上が目安となるが、可能であれば32オクテット以上とすることが望ましい。

0053

第1ハッシュ計算部102は、rが入力され、任意の一方向関数hash1を用いて長さzLen+keyLenオクテットのhを、h=hash1(r)により計算して出力する(S2)。ここで、zLen、keyLenはそれぞれ所定のオクテット長である。安全性の確保にあたり、zLenは36オクテット以上が目安となるが、可能であれば48オクテット以上とすることが望ましい。また、セッション鍵長にあたるkeyLenは32オクテット以上とすることが望ましい。

0054

なおhは、h=hash1(r‖id0‖id1‖id2‖・・・‖idt)により計算してもよい。この場合は、第1ハッシュ計算部102には受信者のID情報組id0、id1、id2、・・・、idtが更に入力され、また、復号側の第1ハッシュ計算部204においてもhをh=hash1(r‖id0‖id1‖id2‖・・・‖idt)により計算する。

0055

分割部103は、hが入力され、h=z‖kであるとして、長さzLenオクテットのzと、長さkeyLenオクテットのセッション鍵kとに分割して出力する(S3)。ここで出力されたセッション鍵kが、受信者と共有するセッション鍵である。

0056

α計算部104は、zと公開パラメータpとが入力され、zを整数に変換した上でαをα=z mod pにより計算して出力する(S4)。

0057

P計算部105は、受信者のID情報組id0、id1、id2、・・・、idtが入力され、文字列を楕円曲線E上の点に写像する関数IDencを用いてP1、P2、・・・、Ptをそれぞれ、
Pi=IDenc(id0‖id1‖・・・‖idi) (1≦i≦t)
により計算して出力する(S5)。

0058

U計算部106は、P2、P3、・・・、Ptとαと公開パラメータP0とが入力され、U0、U2、U3、・・・、Utをそれぞれ、
Uj=α・Pj (j=0又は2≦j≦t)
により計算して出力する(S6)。

0059

Q計算部107は、P1とαと公開パラメータQ0とが入力され、任意のペアリング関数eを用いてQを、Q=e(Q0 、P1 )αにより計算して出力する(S7)。

0060

第2ハッシュ計算部108は、rとU0、U2、U3、・・・、UtとQと受信者のID情報組id0、id1、id2、・・・、idtとが入力され、Uj、Qをオクテット列に変換した上で任意の一方向関数hash2を用いて長さhLenオクテットのc´を、
c´=rxor hash2(U0‖U2‖・・・‖Ut ‖Q‖id0‖id1‖id2‖・・・‖idt)
(xorは排他的論理和演算を表す)により計算して出力する(S8)。

0061

暗号文計算部109は、U0、U2、U3、・・・、Utとc´とが入力され、Ujをオクテット列に変換した上で暗号文cを、
c=U0‖U2‖U3‖・・・‖Ut‖c´
により計算して出力する(S9)。

0062

≪復号化≫
本発明の階層型IDベース復号化装置200の機能構成例を図4に、処理フロー例を図5にそれぞれ示す。本発明の階層型IDベース復号化装置200は、第1分割部201とQ計算部202と第2ハッシュ計算部203と第1ハッシュ計算部204と第2分割部205とα計算部206とP計算部207と検証部208とから構成される。階層型IDベース復号化装置200は、上記の背景技術にて説明した鍵生成機能により予め生成された秘密鍵(St、Q1、Q2、・・・、Qt-1)を上位ノードから入手して処理を行う。

0063

第1分割部201は、暗号文cが入力され、c=U0‖U2‖U3‖・・・‖Ut‖c´であるとして、長さhLenオクテットのc´と、残りをt等分したU0、U2、U3、・・・、Utとに分割する(S11)。

0064

Q計算部202は、U0、U2、U3、・・・、Utと秘密鍵St、Q1、Q2、・・・、Qt-1とが入力され、Ujを楕円曲線E上の点に変換した上でペアリング関数eを用いてQを、

0065

により計算して出力する(S12)。

0066

第2ハッシュ計算部203は、U0、U2、U3、・・・、Utとc´とQとID情報組id0、id1、id2、・・・、idtとが入力され、Qをオクテット列に変換した上で一方向関数hash2を用いて長さhLenオクテットのrを、
r=c´xor hash2(U0‖U2‖U3‖・・・‖Ut‖Q‖id0‖id1‖id2‖・・・‖idt)
により計算して出力する(S13)。

0067

第1ハッシュ計算部204は、rが入力され、一方向関数hash1を用いて長さzLen+keyLenオクテットのhを、
h=hash1(r)
により計算して出力する(S14)。

0068

なお、送信側の第1ハッシュ計算部102において、hをh=hash1(r‖id0‖id1‖id2‖・・・‖idt)により計算した場合には、第2ハッシュ計算部204においても受信者のID情報組id0、id1、id2、・・・、idtが更に入力され、hをh=hash1(r‖id0‖id1‖id2‖・・・‖idt)により計算する。

0069

第2分割部205は、hが入力され、h=z‖kであるとして、長さzLenオクテットのzと、長さkeyLenオクテットのセッション鍵kとに分割して出力する(S15)。

0070

α計算部206は、zと公開パラメータpとが入力され、zを整数に変換した上でαをα=z mod pにより計算して出力する(S16)。

0071

P計算部207は、受信者のID情報組id0、id1、id2、・・・、idtが入力され、文字列を楕円曲線E上の点に写像する関数IDencを用いてP2、P3、・・・、Ptをそれぞれ、
Pi=IDenc(id0‖id1‖・・・‖idi) (2≦i≦t)
により計算して出力する(S17)。

0072

検証部208は、P2、P3、・・・、Ptとαと公開パラメータP0とセッション鍵kとが入力され、まず、α・P0、α・P2、α・P3、・・・、α・Ptを計算する(S18a)。そして、それぞれU0、U2、U3、・・・、Utと一致するか否かを検証し、一致した場合には真正なセッション鍵であると判断してセッション鍵kを出力し、不一致の場合には不真正な暗号文であると判断し、セッション鍵kを出力せずに"INVALID"などの復号失敗を表す情報を出力する(S18b)。

0073

以上のように構成することで、階層型IDベース暗号化装置及び復号化装置をKEM化することができ、送信者と受信者双方でセッション鍵kを共有することができる。そのため、このセッション鍵kを用いて平文の暗号化を行うことで、階層型IDベース暗号の利点を生かしつつ、暗号化する平文長の制約を無くすことができる。

0074

本発明における階層型IDベース暗号化装置及び復号化装置、それらの方法、プログラム及び記録媒体は、上記の実施形態に限定されるものではなく、本発明を逸脱しない範囲で適宜変更が可能である。また、上記に説明した処理は記載の順に従った時系列において実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行してもよい。

0075

また、階層型IDベース暗号化装置及び復号化装置における処理機能コンピュータによって実現する場合、階層型IDベース暗号化装置及び復号化装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより上記階層型IDベース暗号化装置及び復号化装置における処理機能がコンピュータ上で実現される。

0076

この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置光ディスク光磁気記録媒体半導体メモリ等どのようなものでもよい。具体的には例えば、磁気記録装置として、ハードディスク装置フレキシブルディスク磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magnet-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。

0077

また、このプログラムの流通は、例えば、このプログラムを記録したDVD、CD−ROM等の可搬型記録媒体販売譲渡貸与等をすることによって行う。更に、このプログラムをサーバコンピュータ記録装置に格納しておき、ネットワークを介してサーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。

0078

このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦自己の記録装置に格納する。そして、処理の実行時、このコンピュータは自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、更に、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータからこのコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって上記の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。また、この形態ではコンピュータ上で所定のプログラムを実行させることにより、階層型IDベース暗号化装置及び復号化装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

図面の簡単な説明

0079

KEM−DEM構成を階層型IDベース暗号方式に適用した場合の暗号化処理形態のイメージ図。
本発明の階層型IDベース暗号化装置100の機能構成例を示す図。
本発明の階層型IDベース暗号化装置100の処理フロー例を示す図。
本発明の階層型IDベース復号化装置200の機能構成例を示す図。
本発明の階層型IDベース暗号化装置200の処理フロー例を示す図。
従来の階層型IDベース暗号方式の構成要素相互の関係を示す図。
層数t=1の場合の秘密鍵発行に際しての構成要素相互の関係を示す図。
階層数t=2の場合の秘密鍵発行に際しての構成要素相互の関係を示す図。
階層数t>2の場合の秘密鍵発行に際しての構成要素相互の関係を示す図。
従来の階層型IDベース暗号方式における平文に対する暗号化処理形態を説明する図。
KEM−DEM構成における平文に対する暗号化処理形態を説明する図。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ