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

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

▶ 日本電信電話株式会社の特許一覧 ▶ 学校法人神奈川大学の特許一覧 ▶ 国立大学法人茨城大学の特許一覧

特開2023-54920暗号システム、端末、方法、及びプログラム
<>
  • 特開-暗号システム、端末、方法、及びプログラム 図1
  • 特開-暗号システム、端末、方法、及びプログラム 図2
  • 特開-暗号システム、端末、方法、及びプログラム 図3
  • 特開-暗号システム、端末、方法、及びプログラム 図4
  • 特開-暗号システム、端末、方法、及びプログラム 図5
  • 特開-暗号システム、端末、方法、及びプログラム 図6
  • 特開-暗号システム、端末、方法、及びプログラム 図7
  • 特開-暗号システム、端末、方法、及びプログラム 図8
  • 特開-暗号システム、端末、方法、及びプログラム 図9
  • 特開-暗号システム、端末、方法、及びプログラム 図10
  • 特開-暗号システム、端末、方法、及びプログラム 図11
  • 特開-暗号システム、端末、方法、及びプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023054920
(43)【公開日】2023-04-17
(54)【発明の名称】暗号システム、端末、方法、及びプログラム
(51)【国際特許分類】
   H04L 9/08 20060101AFI20230410BHJP
【FI】
H04L9/00 601D
H04L9/00 601F
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021163927
(22)【出願日】2021-10-05
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 2021年1月19日~2021年1月22日(公知日:2021年1月21日)に2021年暗号と情報セキュリティシンポジウムにて公開
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】592218300
【氏名又は名称】学校法人神奈川大学
(71)【出願人】
【識別番号】504203572
【氏名又は名称】国立大学法人茨城大学
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】岡野 裕樹
(72)【発明者】
【氏名】永井 彰
(72)【発明者】
【氏名】藤岡 淳
(72)【発明者】
【氏名】米山 一樹
(57)【要約】      (修正有)
【課題】デバイスの復号可否を制御可能なIDベース暗号を実現する暗号システム、端末、方法及びプログラムを提供する。
【解決手段】暗号システム1は、階層型IDベース暗号の公開パラメータと、マスタ秘密鍵とを生成し、代表端末の識別子と、マスタ秘密鍵と、公開パラメータとを用いて、代表端末のユーザ秘密鍵を生成する秘密鍵生成センタと、自身が利用する1以上の子端末の識別子で構成されるデバイスリストを記憶し、自身の識別子に対応するユーザ秘密鍵と、デバイスリストの更新時間を表すデバイス更新時間と、公開パラメータとを用いて、送信端末から送信される暗号文を復号するためのデバイス秘密鍵を生成し、デバイスリストの子端末に対して前記デバイス秘密鍵を送信する1以上の代表端末と、代表端末の識別子と、デバイス更新時間とを用いて、メッセージを暗号化した暗号文を生成し、代表端末又は子端末に暗号文を送信する送信端末からなる。
【選択図】図1
【特許請求の範囲】
【請求項1】
秘密鍵生成センタと、1以上の代表端末と、前記代表端末と同一のユーザが利用する1以上の子端末と、1以上の送信端末とが含まれる暗号システムであって、
前記秘密鍵生成センタは、
階層型IDベース暗号の公開パラメータと、マスタ秘密鍵とを生成するセットアップ部と、
前記代表端末の識別子と、前記マスタ秘密鍵と、前記公開パラメータとを用いて、前記代表端末のユーザ秘密鍵を生成する第1のユーザ秘密鍵生成部と、を有し、
前記代表端末は、
自身を利用するユーザと同一のユーザが利用する子端末の識別子で構成されるデバイスリストを記憶する記憶部と、
自身の識別子に対応するユーザ秘密鍵と、前記デバイスリストの更新時間を表すデバイス更新時間と、前記公開パラメータとを用いて、前記送信端末から送信される暗号文を復号するためのデバイス秘密鍵を生成するデバイス秘密鍵生成部と、
前記デバイスリストに含まれる識別子が表す子端末に対して前記デバイス秘密鍵を送信する第1の送信部と、を有し、
前記送信端末は、
前記代表端末の識別子と、前記デバイス更新時間とを用いて、メッセージを暗号化した暗号文を生成する暗号化部と、
前記代表端末又は前記子端末に前記暗号文を送信する第2の送信部と、
を有する暗号システム。
【請求項2】
前記第1のユーザ秘密鍵生成部は、
前記代表端末の識別子と、前記代表端末の識別子の更新時間を表すユーザ更新時間と、前記マスタ秘密鍵と、前記公開パラメータとを用いて、前記代表端末のユーザ秘密鍵を生成し、
前記デバイス秘密鍵生成部は、
自身の識別子に対応するユーザ秘密鍵と、前記ユーザ更新時間と、前記デバイス更新時間と、前記公開パラメータとを用いて、前記デバイス秘密鍵を生成し、
前記暗号化部は、
前記代表端末の識別子と、前記ユーザ更新時間と、前記デバイス更新時間とを用いて、前記暗号文を生成する、請求項1に記載の暗号システム。
【請求項3】
前記代表端末は、
前記デバイス更新時間ごとに、前記デバイスリストの更新する更新部を有する請求項1又は2に記載の暗号システム。
【請求項4】
前記デバイスリストの更新には、前記デバイスリストに対して子端末の識別子を追加すること、前記デバイスリストから子端末の識別子の削除すること、が含まれる、請求項3に記載の暗号システム。
【請求項5】
前記暗号システムには、前記代表端末の識別子を発行及び管理する識別子発行サーバが含まれ、
前記識別子発行サーバは、
前記秘密鍵生成センタによって生成された自身のユーザ秘密鍵と、自身が管理する代表端末の識別子と、前記公開パラメータとを用いて、前記代表端末のユーザ秘密鍵を生成する第2の秘密鍵生成部を有する、請求項1乃至4の何れか一項に記載の暗号システム。
【請求項6】
階層型IDベース暗号によりユーザ秘密鍵を生成する秘密鍵生成センタと、同一のユーザが利用する1以上の子端末と、送信端末とに通信可能に接続される端末であって、
前記子端末の識別子で構成されるデバイスリストを記憶する記憶部と、
前記秘密鍵生成センタで生成された、自身の識別子に対応するユーザ秘密鍵と、前記デバイスリストの更新時間を表すデバイス更新時間と、前記秘密鍵生成センタで生成された公開パラメータとを用いて、前記送信端末から送信される暗号文を復号するためのデバイス秘密鍵を生成するデバイス秘密鍵生成部と、
前記デバイスリストに含まれる識別子が表す子端末に対して前記デバイス秘密鍵を送信する送信部と、
を有する端末。
【請求項7】
秘密鍵生成センタと、1以上の代表端末と、前記代表端末と同一のユーザが利用する1以上の子端末と、1以上の送信端末とが含まれる暗号システムに用いられる方法であって、
前記秘密鍵生成センタが、
階層型IDベース暗号の公開パラメータと、マスタ秘密鍵とを生成するセットアップ手順と、
前記代表端末の識別子と、前記マスタ秘密鍵と、前記公開パラメータとを用いて、前記代表端末のユーザ秘密鍵を生成する第1のユーザ秘密鍵生成手順と、を実行し、
前記代表端末が、
自身を利用するユーザと同一のユーザが利用する子端末の識別子で構成されるデバイスリストを記憶部に記憶する記憶手順と、
自身の識別子に対応するユーザ秘密鍵と、前記デバイスリストの更新時間を表すデバイス更新時間と、前記公開パラメータとを用いて、前記送信端末から送信される暗号文を復号するためのデバイス秘密鍵を生成するデバイス秘密鍵生成手順と、
前記デバイスリストに含まれる識別子が表す子端末に対して前記デバイス秘密鍵を送信する第1の送信手順と、を実行し、
前記送信端末が、
前記代表端末の識別子と、前記デバイス更新時間とを用いて、メッセージを暗号化した暗号文を生成する暗号化手順と、
前記代表端末又は前記子端末に前記暗号文を送信する第2の送信手順と、
を実行する方法。
【請求項8】
請求項1乃至5の何れか一項に記載の暗号システムに含まれる秘密鍵生成センタ、代表端末、子端末、又は送信端末、としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号システム、端末、方法、及びプログラムに関する。
【背景技術】
【0002】
IDベース暗号(IBE:Identity-Based Encryption)技術は公開鍵暗号技術の一種であり、公開鍵として利用者のメールアドレスや氏名、IP(Internet Protocol)アドレス等を指定することができる暗号方式である(例えば、非特許文献1)。
【0003】
IDベース暗号技術により暗号化・復号を実現するシステムは、秘密鍵生成センタ(PKG:private key generator)と、利用者(受信者)端末と、送信者端末とで構成され、次のような処理を実行する。まず、秘密鍵生成センタは、システム・セットアップとして公開パラメータとマスタ秘密鍵を生成し、公開パラメータをシステムに属する利用者端末や送信者端末に公開する。利用者端末は、ある識別子IDに対する秘密鍵の生成を秘密鍵生成センタに要求する。秘密鍵生成センタは、利用者端末から識別子IDを受け取ると、この識別IDと公開パラメータ及びマスタ秘密鍵からその識別子IDに対応する秘密鍵を生成し、この秘密鍵を利用者端末に送信する。送信者端末は、利用者端末に送信したいメッセージを公開パラメータとその利用者端末の識別子IDとを用いて暗号化し、この暗号化によって得られた暗号文を当該利用者端末に送信する。暗号文を受信した利用者端末は、公開パラメータと自身の識別子IDに対応する秘密鍵とを用いて暗号文を復号する。以上によって暗号化・復号が実現される。
【0004】
ところで、近年、クラウド技術の進歩に伴って、複数のデバイスから同一のサービスを享受できる機会が増加している。例えば、Webメールサービスでは、デスクトップPC、タブレットPC、スマートフォンのような様々なデバイスで同一のメールアドレスを利用することができる。
【0005】
このような状況を鑑みると、IDベース暗号技術により暗号化・復号を実現するシステムにおいても同様のシナリオを考慮する必要がある。具体的には、例えば、あるクラウドサービスのアカウントを識別子IDに用いて、利用者の識別子IDに対応する秘密鍵を複数のデバイスに格納して運用し、その識別子IDによって暗号化されたデータを当該デバイスで復号して利用する、といったシナリオを考慮する必要がある。一方で、このとき、将来にわたって同一のデバイスが使用し続けられるとは限らず、デバイスの追加や破棄も想定される。また、利用者のアカウントが停止又は削除されることも想定される。したがって、例えば、デバイスが破棄された場合には、他のデバイスで利用されている秘密鍵が、破棄されたデバイスから得られない仕組みが必要である。また、利用者のアカウントが停止又は削除された場合には、そのアカウントに対応する秘密鍵を持つすべてのデバイスでデータを復号できないようにする仕組みも必要である。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Ryuichi SAKAI, Masao KASAHARA, "ID based Cryptosystems with Pairing on Elliptic Curve"
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、非特許文献1に記載されているような既存のIDベース暗号技術では、デバイスの廃棄やアカウントの停止・削除に伴って秘密鍵がデバイスから適切に削除できるとは言い難い。
【0008】
既存のIDベース暗号技術では、1つの識別子IDに対応する秘密鍵を持つデバイスがあれば、その識別子IDで暗号化された暗号文をいつでも復号できる。したがって、例えば、破棄されたデバイスからその識別子IDに対応する秘密鍵が得られれば、そのデバイスが破棄された後であっても、当該識別子IDで暗号化されたメッセージを読み取ることが可能になってしまう。
【0009】
本発明の一実施形態は、上記の点に鑑みてなされたもので、デバイスの復号可否を制御可能なIDベース暗号を実現することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、一実施形態に係る暗号システムは、秘密鍵生成センタと、1以上の代表端末と、前記代表端末と同一のユーザが利用する1以上の子端末と、1以上の送信端末とが含まれる暗号システムであって、前記秘密鍵生成センタは、階層型IDベース暗号の公開パラメータと、マスタ秘密鍵とを生成するセットアップ部と、前記代表端末の識別子と、前記マスタ秘密鍵と、前記公開パラメータとを用いて、前記代表端末のユーザ秘密鍵を生成する第1のユーザ秘密鍵生成部と、を有し、前記代表端末は、自身を利用するユーザと同一のユーザが利用する子端末の識別子で構成されるデバイスリストを記憶する記憶部と、自身の識別子に対応するユーザ秘密鍵と、前記デバイスリストの更新時間を表すデバイス更新時間と、前記公開パラメータとを用いて、前記送信端末から送信される暗号文を復号するためのデバイス秘密鍵を生成するデバイス秘密鍵生成部と、前記デバイスリストに含まれる識別子が表す子端末に対して前記デバイス秘密鍵を送信する第1の送信部と、を有し、前記送信端末は、前記代表端末の識別子と、前記デバイス更新時間とを用いて、メッセージを暗号化した暗号文を生成する暗号化部と、前記代表端末又は前記子端末に前記暗号文を送信する第2の送信部と、を有する。
【発明の効果】
【0011】
デバイスの復号可否を制御可能なIDベース暗号を実現することができる。
【図面の簡単な説明】
【0012】
図1】第一の実施形態に係る暗号システムの全体構成例を示す図である。
図2】秘密鍵生成センタの機能構成例を示す図である。
図3】代表端末の機能構成例を示す図である。
図4】子端末の機能構成例を示す図である。
図5】送信端末の機能構成例である。
図6】実施例1-1における鍵生成例を説明するための図である。
図7】実施例1-2における鍵生成例を説明するための図である。
図8】第二の実施形態に係る暗号システムの全体構成例を示す図である。
図9】識別子発行サーバの機能構成例を示す図である。
図10】実施例2-1における鍵生成例を説明するための図である。
図11】実施例2-2における鍵生成例を説明するための図である。
図12】コンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態として、第一の実施形態と第二の実施形態について説明する。以下の各実施形態では、IDベース暗号によって暗号文の復号が可能な複数のデバイスをユーザが管理している状況を想定し、あるデバイスが廃棄された場合にはそのデバイスが持つ秘密鍵では復号ができないように制御したり、当該識別子IDが失効した場合にはすべてのデバイスで復号ができないように制御したりすることが可能な暗号システム1について説明する。
【0014】
[準備]
各実施形態を説明する前に、その準備として、階層型IDベース暗号(HIBE:Hierarchical Identity-Based Encryption)方式について説明する。
【0015】
ユーザの識別子はID=(ID,・・・,ID)のように階層的に与えられているものとする。tは階層を表し、IDは第t階層目の識別子である。
【0016】
2つの識別子ID,ID'に対して、ID=(ID,・・・,IDt-1)、かつ、ID'=(ID,・・・,IDt-1,ID)であるとき、pa(ID)=ID'と書くことにする。なお、t=1の場合、ID'はPKGを指すものとする(つまり、第0階層目がPKGである。)。
【0017】
このとき、階層型IDベース暗号方式は、以下の4つのアルゴリズム(HIBE.Setup,HIBE.KeyGen,HIBE.Encrypt,HIBE.Decrypt)で構成される。
【0018】
(pp,msk)←HIBE.Setup(1κ):セキュリティパラメータκに対応するビット列1κ(つまり、1のκビット列)を入力として、公開パラメータppとマスタ秘密鍵mskとを生成及び出力する。
【0019】
skID←HIBE.KeyGen(pp,skpa(ID),ID):公開パラメータppと秘密鍵skpa(ID)と識別子IDとを入力として、当該識別子IDに対応する秘密鍵skIDを生成及び出力する。なお、t=1の場合、skpa(ID)=mskである。
【0020】
C←HIBE.Encrypt(pp,ID,M):公開パラメータppと識別子IDと平文Mとを入力として、暗号文Cを生成及び出力する。
【0021】
M'←HIBE.Decrypt(pp,ID,skID,C):公開パラメータppと識別子IDと秘密鍵skIDと暗号文Cとを入力として、平文M'を生成及び出力する。
【0022】
また、任意の(pp,msk)←HIBE.Setup(1κ)と、任意の平文Mと、任意の識別子IDと、その識別子IDに対応する秘密鍵skID←HIBE.KeyGen(pp,skpa(ID),ID)とに対して、M=HIBE.Decrypt(pp,ID,skID,HIBE.Encrypt(pp,ID,M))を満たすものとする。
【0023】
上記の階層型IDベース暗号方式の一例としては、例えば、特許第5097102号公報に記載されている方式が挙げられる。
【0024】
[第一の実施形態]
以下では、第一の実施形態について説明する。
【0025】
<暗号システム1の全体構成例>
本実施形態に係る暗号システム1の全体構成例を図1に示す。図1に示すように、本実施形態に係る暗号システム1は、インターネット等のネットワーク90を介して互いに接続される複数のエンティティで構成される。エンティティとしては、秘密鍵生成センタ10、代表端末20(i=1,・・・,n)、子端末30i,j(i=1,・・・,n j=1,・・・,m_i)、タイムサーバ40、送信端末50が存在する。
【0026】
秘密鍵生成センタ10は、PKGとして機能するサーバである。代表端末20は、識別子IDに対応する秘密鍵を持つデバイスである。子端末30i,jは、代表端末20と同じ識別子IDに対応する秘密鍵を持つデバイスである。代表端末20と子端末30i,j(j=1,・・・,m_i)は、同一ユーザのデバイス群を表すユーザ端末群iを構成する。nは代表端末20の総数、m_iは識別子IDに対応する秘密鍵を持つ子端末30i,jの総数を表す。
【0027】
ここで、代表端末20には識別子IDが割り当てられているものとする。識別子IDとしては、例えば、電話番号、メールアドレス、マイナンバー、社員番号、ソーシャルメディアアカウントのユーザID、代表端末20の製造固有番号、IPアドレス、MAC(Media Access Control)アドレス等が挙げられる。ただし、これらは一例であって、人や組織、機器等の中で一意に識別可能な情報であれば任意の情報を識別子IDとして用いることが可能である。以下では、代表端末20に割り当てられている識別子IDのことをユーザ識別子IDとも呼ぶことにする。
【0028】
また、子端末30i,jにも識別子IDi,jが割り当てられているものとする。識別子IDi,jとしては、例えば、子端末30i,jが携帯電話やスマートフォン等であれば、IMEI(International Mobile Equipment Identity)、SIM(Subscriber Identity Module)カードに紐付いた電話番号等が挙げられる。ただし、これらは一例であって、子端末30i,jを識別可能な情報であれば任意の情報を識別子IDi,jとして用いることが可能である。以下では、子端末30i,jに割り当てられている識別子IDi,jのことをデバイス識別子IDi,jとも呼ぶことにする。
【0029】
タイムサーバ40は、他のエンティティに時刻情報を配信するサーバである。これにより、本実施形態に係る暗号システム1を構成する各エンティティの時刻情報は同期されているものとする。この時刻情報は、後述するデバイス更新時間τやユーザ更新時間T、それらの更新間隔Δτ、ΔTの特定又は算出に用いられる。
【0030】
タイムサーバ40としては、例えば、NTP(Network Time Protocol)サーバ等が挙げられるが、これに限られるものではない。なお、図1に示す例ではタイムサーバ40が1台のみ図示されているが、互いに時刻同期されていれば、複数のタイムサーバ40が存在してもよい。
【0031】
送信端末50は、ユーザ識別子IDを用いてメッセージ(平文)を暗号化し、代表端末20又は子端末30i,jに送信する。なお、代表端末20(i=1,・・・,n)及び子端末30i,j(i=1,・・・,n j=1,・・・,m_i)のいずれかが送信端末50として機能してもよい。
【0032】
<機能構成例>
秘密鍵生成センタ10の機能構成例を図2に示す。図2に示すように、秘密鍵生成センタ10は、セットアップ処理部101と、ユーザ秘密鍵生成部102とを有する。これら各部は、例えば、秘密鍵生成センタ10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。また、秘密鍵生成センタ10は、記憶部103を有する。記憶部103は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、RAM(Random Access Memory)、フラッシュメモリ等のメモリ装置により実現される。
【0033】
セットアップ処理部101は、HIBE.Setupアルゴリズムを実行し、公開パラメータとマスタ秘密鍵とを生成及び出力する。ユーザ秘密鍵生成部102は、HIBE.KeyGenアルゴリズムを実行し、秘密鍵を生成及び出力する。記憶部103は、各種情報(例えば、マスタ秘密鍵、時刻情報、公開パラメータ等)を記憶する。
【0034】
代表端末20の機能構成例を図3に示す。図3に示すように、代表端末20は、デバイス秘密鍵生成部201と、復号部202と、リスト更新部203とを有する。これら各部は、例えば、代表端末20にインストールされた1以上のプログラムが、プロセッサに実行させる処理により実現される。また、代表端末20は、記憶部204を有する。記憶部204は、例えば、メモリ装置により実現される。
【0035】
デバイス秘密鍵生成部201は、HIBE.KeyGenアルゴリズムを実行し、子端末30i,jの秘密鍵(以下、この秘密鍵をデバイス秘密鍵ともいう。)を生成及び出力する。復号部202は、HIBE.Decryptアルゴリズムを実行し、送信端末50から受け取った暗号文を復号する。リスト更新部203は、代表端末20が持つデバイスリストListを更新する。デバイスリストListは、子端末30i,jのデバイス識別子IDi,jを要素として持つリスト形式のデータである。記憶部204は、各種情報(例えば、自身のユーザ識別子ID、このユーザ識別子IDに対応する秘密鍵、時刻情報、公開パラメータ、デバイスリストList等)を記憶する。
【0036】
子端末30i,jの機能構成例を図4に示す。図4に示すように、子端末30i,jは、復号部301i,jを有する。復号部301i,jは、例えば、子端末30i,jにインストールされた1以上のプログラムが、プロセッサに実行させる処理により実現される。また、子端末30i,jは、記憶部302i,jを有する。記憶部302i,jは、例えば、メモリ装置により実現される。
【0037】
復号部301i,jは、HIBE.Decryptアルゴリズムを実行し、送信端末50から受け取った暗号文を復号する。記憶部302i,jは、各種情報(例えば、自身のデバイス識別子IDi,j、デバイス秘密鍵、時刻情報、公開パラメータ等)を記憶する。
【0038】
送信端末50の機能構成例を図5に示す。図5に示すように、送信端末50は、暗号化部501を有する。暗号化部501は、例えば、送信端末50にインストールされた1以上のプログラムが、プロセッサに実行させる処理により実現される。また、送信端末50は、記憶部502を有する。記憶部502は、例えば、メモリ装置により実現される。
【0039】
暗号化部501は、HIBE.Encryptアルゴリズムを実行し、メッセージ(平文)を暗号化する、記憶部502は、各種情報(例えば、ユーザ識別子、時刻情報、公開パラメータ等)を記憶する。
【0040】
<実施例1-1>
以下では、実施例1-1について説明する。本実施例では、ユーザ端末群iの子端末30i,jを追加・削除した場合に、その子端末30i,jの復号可否を制御する場合について説明する。
【0041】
ここで、本実施例では、代表端末20がある更新間隔ΔτごとにデバイスリストListの更新(デバイス識別子IDi,jの追加・削除)を行うと共にデバイス秘密鍵を生成し、自身で管理しているデバイスリストListに含まれるデバイス識別子IDi,jを持つ子端末30i,jにそのデバイス秘密鍵を配信する。このとき、デバイス秘密鍵を生成する際には、ユーザ識別子IDの他に、デバイス更新時間τを用いる。デバイス更新時間τは更新間隔Δτに従ったものであり、例えば、更新間隔Δτが1時間であればτ=2021032515(2021年3月25日15時)というような文字列で与えられ、更新間隔Δτが1日であればτ=20210325(2021年3月25日)というような文字列で与えられる。
【0042】
また、送信端末50は、ユーザ識別子IDの他に、デバイス更新時間τも用いてメッセージ(平文)を暗号化する。これにより、代表端末20の他は、そのデバイス更新時間τにおいてデバイスリストListに含まれているデバイス識別子IDi,jを持つ子端末IDi,jのみが復号できるようになる。したがって、例えば、ある子端末30i,jが破棄され、そのデバイス識別子IDi,jがデバイスリストListから削除された場合には、その子端末30i,jが持つデバイス秘密鍵では、それ以降、暗号文の復号ができないように制御することができる。
【0043】
なお、デバイス更新時間τは更新間隔Δτごとにτ←τ+Δτと更新され、この更新が行われるごとにデバイスリストListの更新とデバイス秘密鍵の生成とが行われる。デバイス更新時間τは、例えば、更新間隔Δτが1時間、現在のデバイス更新時間がτ=2021032515であれば、前回の更新から1時間経過時にτ=2021032516と更新される。同様に、更新間隔Δτが1日、現在のデバイス更新時間がτ=20210325であれば、前回の更新から1日経過時にτ=20210326と更新される。
【0044】
以下、本実施例におけるセットアップ、ユーザ秘密鍵生成、デバイスリスト更新、デバイス秘密鍵生成、暗号化、復号の各処理について説明する。なお、セキュリティパラメータκは安全性強度を表すものであり、例えば、κ=128やκ=256等とすればよい。
【0045】
≪実施例1-1におけるセットアップ≫
秘密鍵生成センタ10のセットアップ処理部101は、(pp,msk)←HIBE.Setup(1κ)を実行し、公開パラメータppとマスタ秘密鍵mskとを生成及び出力する。公開パラメータppは記憶部103に格納されると共に、他のエンティティ(代表端末20、子端末30i,j、送信端末50等)に配布される。マスタ秘密鍵mskは記憶部103に格納され、秘密に管理される。
【0046】
≪実施例1-1におけるユーザ秘密鍵生成≫
秘密鍵生成センタ10のユーザ秘密鍵生成部102は、代表端末20からの要求に応じて、この代表端末20のユーザ識別子IDに対応する秘密鍵skID_iを生成し、当該代表端末20に送信する。なお、秘密鍵skID_iを代表端末20に送信する際には、例えば、TLS(Transport Layer Security)等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_iの送信方法はこれに限定されるものではない。
【0047】
具体的には、秘密鍵生成センタ10のユーザ秘密鍵生成部102は、代表端末20からの要求に応じて、skID_i←HIBE.KeyGen(pp,msk,ID)を実行し、この秘密鍵skID_iを当該代表端末20に送信する。秘密鍵skID_iは記憶部204に格納され、秘密に管理される。
【0048】
≪実施例1-1におけるデバイスリスト更新≫
デバイス更新時間τが更新された場合、代表端末20のリスト更新部203は、デバイスリストListを更新する。ここで、デバイスリストListに追加するデバイス識別子のリストをAddDev、デバイスリストListから削除するデバイス識別子のリストをDelDevとする。なお、AddDev及びDelDevは代表端末20に与えられ、いずれか一方又は両方が空のリストであってもよい。
【0049】
このとき、代表端末20のリスト更新部203は、List←(List\DelDev)∪AddDevによりデバイスリストListを更新する。なお、更新後のデバイスリストListは記憶部204に格納される。
【0050】
≪実施例1-1におけるデバイス秘密鍵生成≫
デバイスリストListが更新された場合、代表端末20のデバイス秘密鍵生成部201は、自身のユーザ識別子IDに対応する秘密鍵skID_iとデバイス更新時間τとを用いてデバイス秘密鍵dskID_i,τを生成し、デバイスリストListに含まれるデバイス識別子IDi,jを持つ子端末30i,jに当該デバイス秘密鍵dskID_i,τを送信する。なお、デバイス秘密鍵dskID_i,τを子端末30i,jに送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、デバイス秘密鍵dskID_i,τの送信方法はこれに限定されるものではない。
【0051】
具体的には、代表端末20のデバイス秘密鍵生成部201は、IDi,τ=(ID,τ)という形の階層的な識別子を作成した上で、dskID_i,τ←HIBE.KeyGen(pp,skID_i,IDi,τ)を実行し、デバイスリストListに含まれるデバイス識別子IDi,jを持つ子端末30i,jに当該デバイス秘密鍵dskID_i,τを送信する。なお、デバイス秘密鍵dskID_i,τは代表端末20の記憶部204に格納されると共に、当該デバイス秘密鍵dskID_i,τを受け取った子端末30i,jの記憶部302i,jに格納され、秘密に管理される。
【0052】
≪実施例1-1における暗号化≫
代表端末20又はその子端末30i,jにメッセージMの暗号文を送信する場合、送信端末50の暗号化部501は、ユーザ識別子IDとデバイス更新時間τとを用いてメッセージMを暗号化し、その暗号文を当該代表端末20又は子端末30i,jに送信する。
【0053】
具体的には、送信端末50の暗号化部501は、IDi,τ=(ID,τ)という形の階層的な識別子を作成した上で、C←HIBE.Encrypt(pp,IDi,τ,M)を実行し、代表端末20又は子端末30i,jに暗号文Cを送信する。
【0054】
≪実施例1-1における復号≫
代表端末20が暗号文Cを受け取った場合、当該代表端末20の復号部202は、M←HIBE.Decrypt(pp,IDi,τ,dskID_i,τ,C)を実行し、暗号文Cを復号する。この復号により得られたメッセージMは記憶部204に格納される。
【0055】
同様に、子端末30i,jが暗号文Cを受け取った場合、当該子端末30i,jの復号部301i,jは、M←HIBE.Decrypt(pp,IDi,τ,dskID_i,τ,C)を実行し、暗号文Cを復号する。なお、これは、デバイス秘密鍵dskID_i,τを持つ子端末30i,jのみが実行可能である。この復号により得られたメッセージMは記憶部302i,jに格納される。
【0056】
≪実施例1-1のまとめ≫
以上のように、本実施例では、ユーザ識別子IDとデバイス更新時間τから階層的な識別子IDi,τ=(ID,τ)を作成した上で、この識別子IDi,τに対応するデバイス秘密鍵dskID_i,τを、デバイスリストListに含まれるデバイス識別子IDi,jを持つ子端末30i,jに配布する。また、メッセージMを暗号化する際にも同様に識別子IDi,τを作成した上で、この識別子IDi,τを用いて暗号文Cを作成する。
【0057】
これにより、代表端末20の他は、デバイスリストListに含まれているデバイス識別子IDi,jを持つ子端末30i,jのみがデバイス秘密鍵dskID_i,τによって暗号文Cを復号することができる。したがって、例えば、ある子端末30i,jが破棄され、そのデバイス識別子IDi,jがデバイスリストListから削除された場合には、その子端末30i,jが持つデバイス秘密鍵が漏洩したとしても、そのデバイス秘密鍵により暗号文が復号されてしまう事態を防止することが可能となる。
【0058】
ここで、本実施例における鍵生成の際の識別子と秘密鍵の関係を図6に示す。図6に示すように、秘密鍵生成センタ10は第0階層目に相当し、代表端末20のユーザ識別子IDに対応する秘密鍵skID_iを生成し、当該代表端末20に配布する。代表端末20は第1階層目に相当し、識別子IDi,τ=(ID,τ)に対応する秘密鍵skID_i,τを生成し、自身の子端末30i,j(ただし、デバイスリストListに含まれるデバイス識別子IDi,jを持つ子端末30i,j)に配布する。各子端末30i,jは第2階層目に相当する。
【0059】
<実施例1-2>
以下では、実施例1-2について説明する。本実施例では、実施例1-1に加えて、ユーザ識別子IDが失効した場合に、ユーザ端末群iに含まれる代表端末20とすべての子端末30i,jで復号できないように制御する場合について説明する。なお、識別子IDの失効には、その識別子ID(又は、その識別子IDに対応するアカウント)が停止又は削除された場合が含まれるものとする。
【0060】
ここで、本実施例では、秘密鍵生成センタ10が代表端末20の秘密鍵を生成する際に、ユーザ識別子IDの他に、ユーザ更新時間Tも用いて、ユーザ識別子IDに対応する秘密鍵を定期的に生成する。このとき、例えば、あるユーザ更新時間Tでユーザ識別子IDを失効させる場合、T+ΔT以降では、ユーザ識別子IDに対応する秘密鍵の生成を行わないようにする。ここで、ΔTはユーザ更新時間Tの更新間隔である。ユーザ更新時間Tは更新間隔ΔTごとにT←T+ΔTと更新される。
【0061】
また、送信端末50は、ユーザ識別子IDの他に、ユーザ更新時間Tとデバイス更新時間τも用いてメッセージ(平文)を暗号化する。これにより、あるユーザ更新時間Tでユーザ識別子IDが失効された場合、T+ΔT以降では、代表端末20とすべての子端末30i,jで復号ができないように制御することができる。
【0062】
なお、ユーザ更新時間Tとデバイス更新時間τとの間には、特に依存関係はなく、互いに独立である。例えば、ユーザ更新時間Tの更新間隔ΔTを1年(例えば、T=2021、ΔT=1)、デバイス更新時間τの更新間隔Δτを1か月(例えば、τ=202103、Δτ=1)等と設定されてもよい。
【0063】
以下、本実施例におけるセットアップ、ユーザ秘密鍵生成、デバイスリスト更新、デバイス秘密鍵生成、暗号化、復号の各処理について説明する。
【0064】
≪実施例1-2におけるセットアップ≫
本実施例におけるセットアップは、実施例1-1と同様であるため、その説明を省略する。
【0065】
≪実施例1-2におけるユーザ秘密鍵生成≫
秘密鍵生成センタ10のユーザ秘密鍵生成部102は、代表端末20からの要求に応じて、この代表端末20のユーザ識別子IDとユーザ更新時間Tとの連結文字列ID||Tに対応する秘密鍵skID_i,Tを生成し、当該代表端末20に送信する。なお、秘密鍵skID_i,Tを代表端末20に送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_i,Tの送信方法はこれに限定されるものではない。
【0066】
具体的には、秘密鍵生成センタ10のユーザ秘密鍵生成部102は、代表端末20からの要求に応じて、skID_i,T←HIBE.KeyGen(pp,msk,ID||T)を実行し、この秘密鍵skID_i,Tを当該代表端末20に送信する。秘密鍵skID_i,Tは記憶部204に格納され、秘密に管理される。
【0067】
なお、上述したように、あるユーザ更新時間Tであるユーザ識別子IDi'を失効させる場合、秘密鍵生成センタ10のユーザ秘密鍵生成部102は、T+ΔT以降のユーザ更新時間T'ではそのユーザ識別子IDi'に対応する秘密鍵skID_i',T'の生成を行わないようにする。
【0068】
≪実施例1-2におけるデバイスリスト更新≫
本実施例におけるデバイスリスト更新は、実施例1-1と同様であるため、その説明を省略する。
【0069】
≪実施例1-2におけるデバイス秘密鍵生成≫
デバイスリストListが更新された場合、代表端末20のデバイス秘密鍵生成部201は、連結文字列ID||Tに対応する秘密鍵skID_i,Tとデバイス更新時間τとを用いてデバイス秘密鍵dskID_i,T,τを生成し、デバイスリストListに含まれるデバイス識別子IDi,jを持つ子端末30i,jに当該デバイス秘密鍵dskID_i,T,τを送信する。なお、デバイス秘密鍵dskID_i,T,τを子端末30i,jに送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、デバイス秘密鍵dskID_i,T,τの送信方法はこれに限定されるものではない。
【0070】
具体的には、代表端末20のデバイス秘密鍵生成部201は、IDi,T,τ=(ID||T,τ)という形の階層的な識別子を作成した上で、dskID_i,T,τ←HIBE.KeyGen(pp,skID_i,T,IDi,T,τ)を実行し、デバイスリストListに含まれるデバイス識別子IDi,jを持つ子端末30i,jに当該デバイス秘密鍵dskID_i,T,τを送信する。なお、デバイス秘密鍵dskID_i,T,τは代表端末20の記憶部204に格納されると共に、当該デバイス秘密鍵dskID_i,T,τを受け取った子端末30i,jの記憶部302i,jに格納され、秘密に管理される。
【0071】
≪実施例1-2における暗号化≫
代表端末20又はその子端末30i,jにメッセージMの暗号文を送信する場合、送信端末50の暗号化部501は、ユーザ識別子IDとユーザ更新時間Tとデバイス更新時間τとを用いてメッセージMを暗号化し、その暗号文を当該代表端末20又は子端末30i,jに送信する。
【0072】
具体的には、送信端末50の暗号化部501は、IDi,T,τ=(ID||T,τ)という形の階層的な識別子を作成した上で、C←HIBE.Encrypt(pp,IDi,T,τ,M)を実行し、代表端末20又は子端末30i,jに暗号文Cを送信する。
【0073】
≪実施例1-2における復号≫
代表端末20が暗号文Cを受け取った場合、当該代表端末20の復号部202は、M←HIBE.Decrypt(pp,IDi,T,τ,dskID_i,T,τ,C)を実行し、暗号文Cを復号する。この復号により得られたメッセージMは記憶部204に格納される。
【0074】
同様に、子端末30i,jが暗号文Cを受け取った場合、当該子端末30i,jの復号部301i,jは、M←HIBE.Decrypt(pp,IDi,T,τ,dskID_i,T,τ,C)を実行し、暗号文Cを復号する。なお、これは、デバイス秘密鍵dskID_i,T,τを持つ子端末30i,jのみが実行可能である。この復号により得られたメッセージMは記憶部302i,jに格納される。
【0075】
≪実施例1-2のまとめ≫
以上のように、本実施例では、ユーザ識別子IDとユーザ更新時間Tとの連結文字列ID||Tに対応する秘密鍵skID_i,Tを生成し、この秘密鍵skID_i,Tを代表端末20に配布する。そして、デバイス秘密鍵dskID_i,T,τを生成する際には、階層的な識別子IDi,T,τ=(ID||T,τ)を作成した上で、この識別子IDi,T,τを用いて当該デバイス秘密鍵dskID_i,T,τを生成する。また、メッセージMを暗号化する際にも同様に識別子IDi,T,τを作成した上で、この識別子IDi,τを用いて暗号文Cを作成する。
【0076】
これにより、デバイス更新時間τだけでなく、ユーザ更新時間Tにも依存するデバイス秘密鍵dskID_i,T,τを生成することができる。したがって、例えば、あるユーザ更新時間Tであるユーザ識別子IDi'を失効させる場合には、T+ΔT以降のユーザ更新時間T'ではそのユーザ識別子IDi'に対応する秘密鍵skID_i',T'の生成を行わないようにすればよい。本実施例により、例えば、ユーザ更新時刻Tでユーザ識別子IDi'が失効された場合、それ以降のユーザ更新時間T'(≧T+ΔT)では、代表端末20i'及びその子端末30i',jが復号できないようにすることができる。また、仮にデバイス秘密鍵dskID_i',Tが漏洩したとしても、ユーザ更新時間T'(≧T+ΔT)では復号することができないようにすることができる。
【0077】
ここで、本実施例における鍵生成の際の識別子と秘密鍵の関係を図7に示す。図7に示すように、秘密鍵生成センタ10は第0階層目に相当し、代表端末20のユーザ識別子IDとユーザ更新時間Tに対応する秘密鍵skID_i,Tを生成し、当該代表端末20に配布する。代表端末20は第1階層目に相当し、識別子IDi,T,τ=(ID||T,τ)に対応する秘密鍵skID_i,T,τを生成し、自身の子端末30i,j(ただし、デバイスリストListに含まれるデバイス識別子IDi,jを持つ子端末30i,j)に配布する。各子端末30i,jは第2階層目に相当する。
【0078】
[第二の実施形態]
以下では、第二の実施形態について説明する。本実施形態では、ユーザ識別子IDを発行する識別子発行サーバ60が存在する場合について説明する。なお、第一の実施形態と同様の構成要素については、その説明を省略するものとする。
【0079】
<暗号システム1の全体構成例>
本実施形態に係る暗号システム1の全体構成例を図8に示す。図8に示すように、本実施形態に係る暗号システム1は、エンティティとして更に識別子発行サーバ60が存在する。
【0080】
識別子発行サーバ60は、クラウドサービス等のアプリケーションを提供するサービス事業者が持つサーバである。識別子発行サーバ60は、自身の秘密鍵と、自身が管理するユーザ識別子IDとを用いて、そのユーザID識別子IDを持つ代表端末20の秘密鍵を生成する。
【0081】
ここで、識別子発行サーバ60には識別子IDが割り当てられているものとする。識別子IDとしては、例えば、電話番号、メールアドレス、マイナンバー、識別子発行サーバ60の製造固有番号、IPアドレス、MACアドレス等が挙げられる。ただし、これらは一例であって、機器等の中で一意に識別可能な情報であれば任意の情報を識別子IDとして用いることが可能である。
【0082】
なお、すべてのユーザ識別子ID(i=1,・・・,n)が識別子発行サーバ60で管理されている必要はなく、例えば、一部のユーザ識別子IDのみ(例えば、i=1,・・・,nのユーザ識別子ID)が識別子発行サーバ60で管理されていてもよい。また、図8に示す例では識別子発行サーバ60が1台のみ図示されているが、複数の識別子発行サーバ60が存在してもよい。例えば、クラウドサービスAのユーザ識別子IDを管理する識別子発行サーバ60Aと、クラウドサービスBのユーザ識別子IDを管理する識別子発行サーバ60Bとが存在してもよい。
【0083】
<機能構成例>
識別子発行サーバ60の機能構成例を図9に示す。図9に示すように、識別子発行サーバ60は、ユーザ秘密鍵生成部601を有する。ユーザ秘密鍵生成部601は、例えば、識別子発行サーバ60にインストールされた1以上のプログラムが、プロセッサに実行させる処理により実現される。また、識別子発行サーバ60は、記憶部602を有する。記憶部602は、例えば、メモリ装置により実現される。
【0084】
ユーザ秘密鍵生成部601は、HIBE.KeyGenアルゴリズムを実行し、秘密鍵を生成及び出力する。記憶部602は、各種情報(例えば、自身の識別子ID、このユーザ識別子IDに対応する秘密鍵、自身が管理しているユーザ識別子ID、時刻情報、公開パラメータ等)を記憶する。
【0085】
<実施例2-1>
以下では、実施例2-1について説明する。本実施例では、ユーザ端末群iの子端末30i,jを追加・削除した場合に、その子端末30i,jの復号可否を制御する場合について説明する。
【0086】
以下、本実施例におけるセットアップ、ユーザ秘密鍵生成、デバイスリスト更新、デバイス秘密鍵生成、暗号化、復号の各処理について説明する。
【0087】
≪実施例2-1におけるセットアップ≫
本実施例におけるセットアップは、実施例1-1と同様であるため、その説明を省略する。
【0088】
≪実施例2-1におけるユーザ秘密鍵生成≫
秘密鍵生成センタ10のユーザ秘密鍵生成部102は、識別子発行サーバ60からの要求に応じて、この識別子発行サーバ60の識別子IDに対応する秘密鍵skID_Sを生成し、当該識別子発行サーバ60に送信する。なお、秘密鍵skID_Sを識別子発行サーバ60に送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_Sの送信方法はこれに限定されるものではない。
【0089】
具体的には、秘密鍵生成センタ10のユーザ秘密鍵生成部102は、識別子発行サーバ60からの要求に応じて、skID_S←HIBE.KeyGen(pp,msk,ID)を実行し、この秘密鍵skID_Sを当該識別子発行サーバ60に送信する。秘密鍵skID_Sは記憶部602に格納され、秘密に管理される。
【0090】
次に、識別子発行サーバ60のユーザ秘密鍵生成部601は、識別子IDと自身が管理しているユーザ識別子IDとに対応する秘密鍵skID_iを生成し、当該ユーザ識別子IDを持つ代表端末20に送信する。なお、秘密鍵skID_iを代表端末20に送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_iの送信方法はこれに限定されるものではない。
【0091】
具体的には、識別子発行サーバ60のユーザ秘密鍵生成部601は、skID_i←HIBE.KeyGen(pp,skID_S,(ID,ID))を実行し、この秘密鍵skID_iを当該代表端末20に送信する。秘密鍵skID_iは記憶部204に格納され、秘密に管理される。
【0092】
≪実施例2-1におけるデバイスリスト更新≫
本実施例におけるデバイスリスト更新は、実施例1-1と同様であるため、その説明を省略する。
【0093】
≪実施例2-1におけるデバイス秘密鍵生成≫
本実施例におけるデバイス秘密鍵生成は、実施例1-1とほぼ同様であるが、IDi,τ=(ID,ID,τ)という形の階層的な識別子を作成した上で、デバイス秘密鍵dskID_i,τを生成する。その他の点については、実施例1-1と同様であるため、その説明を省略する。
【0094】
≪実施例2-1における暗号化≫
本実施例における暗号化は、実施例1-1とほぼ同様であるが、IDi,τ=(ID,ID,τ)という形の階層的な識別子を作成した上で、暗号文Cを生成する。その他の点については、実施例1-1と同様であるため、その説明を省略する。
【0095】
≪実施例2-1における復号≫
本実施例における復号は、実施例1-1とほぼ同様であるが、IDi,τ=(ID,ID,τ)という形の階層的な識別子を作成した上で、暗号文Cを復号する。その他の点については、実施例1-1と同様であるため、その説明を省略する。
【0096】
≪実施例2-1のまとめ≫
以上のように、本実施例では、ユーザ識別子IDを管理する識別子発行サーバ60が存在し、この識別子発行サーバ60が秘密鍵skID_iを生成する。
【0097】
ここで、本実施例における鍵生成の際の識別子と秘密鍵の関係を図10に示す。図10に示すように、秘密鍵生成センタ10は第0階層目に相当し、識別子発行サーバ60の識別子IDに対応する秘密鍵skID_Sを生成し、当該識別子発行サーバ60に配布する。識別子発行サーバ60は第1階層目に相当し、識別子発行サーバ60の識別子IDと代表端末20のユーザ識別子IDとに対応する秘密鍵skID_iを生成し、当該代表端末20に配布する。代表端末20は第2階層目に相当し、識別子IDi,τ=(ID,ID,τ)に対応する秘密鍵skID_i,τを生成し、自身の子端末30i,j(ただし、デバイスリストListに含まれるデバイス識別子IDi,jを持つ子端末30i,j)に配布する。各子端末30i,jは第3階層目に相当する。
【0098】
<実施例2-2>
以下では、実施例2-2について説明する。本実施例では、実施例2-1に加えて、ユーザ識別子IDが失効した場合に、ユーザ端末群iに含まれる代表端末20とすべての子端末30i,jで復号できないように制御する場合について説明する。
【0099】
以下、本実施例におけるセットアップ、ユーザ秘密鍵生成、デバイスリスト更新、デバイス秘密鍵生成、暗号化、復号の各処理について説明する。
【0100】
≪実施例2-2におけるセットアップ≫
本実施例におけるセットアップは、実施例2-1と同様であるため、その説明を省略する。
【0101】
≪実施例2-2におけるユーザ秘密鍵生成≫
秘密鍵生成センタ10のユーザ秘密鍵生成部102は、識別子発行サーバ60からの要求に応じて、この識別子発行サーバ60の識別子IDに対応する秘密鍵skID_Sを生成し、当該識別子発行サーバ60に送信する。なお、秘密鍵skID_Sを識別子発行サーバ60に送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_Sの送信方法はこれに限定されるものではない。
【0102】
具体的には、秘密鍵生成センタ10のユーザ秘密鍵生成部102は、識別子発行サーバ60からの要求に応じて、skID_S←HIBE.KeyGen(pp,msk,ID)を実行し、この秘密鍵skID_Sを当該識別子発行サーバ60に送信する。秘密鍵skID_Sは記憶部602に格納され、秘密に管理される。
【0103】
次に、識別子発行サーバ60のユーザ秘密鍵生成部601は、識別子IDと、自身が管理しているユーザ識別子IDとユーザ更新時間Tとの連結文字列ID||Tとに対応する秘密鍵skID_i,Tを生成し、当該ユーザ識別子IDを持つ代表端末20に送信する。なお、秘密鍵skID_i,Tを代表端末20に送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_i,Tの送信方法はこれに限定されるものではない。
【0104】
具体的には、識別子発行サーバ60のユーザ秘密鍵生成部601は、skID_i,T←HIBE.KeyGen(pp,skID_S,(ID,ID||T))を実行し、この秘密鍵skID_i,Tを当該代表端末20に送信する。秘密鍵skID_i,Tは記憶部204に格納され、秘密に管理される。
【0105】
なお、あるユーザ更新時間Tであるユーザ識別子IDi'を失効させる場合、秘密鍵生成センタ10のユーザ秘密鍵生成部102は、T+ΔT以降のユーザ更新時間T'ではそのユーザ識別子IDi'に対応する秘密鍵skID_i',T'の生成を行わないようにする。
【0106】
≪実施例2-2におけるデバイスリスト更新≫
本実施例におけるデバイスリスト更新は、実施例2-1と同様であるため、その説明を省略する。
【0107】
≪実施例2-2におけるデバイス秘密鍵生成≫
本実施例におけるデバイス秘密鍵生成は、実施例1-2とほぼ同様であるが、IDi,T,τ=(ID,ID||T,τ)という形の階層的な識別子を作成した上で、デバイス秘密鍵dskID_i,T,τを生成する。その他の点については、実施例1-2と同様であるため、その説明を省略する。
【0108】
≪実施例2-2における暗号化≫
本実施例における暗号化は、実施例1-2とほぼ同様であるが、IDi,T,τ=(ID,ID||T,τ)という形の階層的な識別子を作成した上で、暗号文Cを生成する。その他の点については、実施例1-2と同様であるため、その説明を省略する。
【0109】
≪実施例2-2における復号≫
本実施例における復号は、実施例1-2とほぼ同様であるが、IDi,T,τ=(ID,ID||T,τ)という形の階層的な識別子を作成した上で、暗号文Cを復号する。その他の点については、実施例1-2と同様であるため、その説明を省略する。
【0110】
≪実施例2-2のまとめ≫
以上のように、本実施例では、ユーザ識別子IDを管理する識別子発行サーバ60が存在し、この識別子発行サーバ60が秘密鍵skID_i,Tを生成する。これにより、本実施例では、識別子発行サーバ60がユーザ識別子IDの失効に伴う復号可否を制御することが可能となる。
【0111】
ここで、本実施例における鍵生成の際の識別子と秘密鍵の関係を図11に示す。図11に示すように、秘密鍵生成センタ10は第0階層目に相当し、識別子発行サーバ60の識別子IDに対応する秘密鍵skID_Sを生成し、当該識別子発行サーバ60に配布する。識別子発行サーバ60は第1階層目に相当し、(ID,ID||T)に対応する秘密鍵skID_i,Tを生成し、当該代表端末20に配布する。代表端末20は第2階層目に相当し、識別子IDi,T,τ=(ID,ID||T,τ)に対応する秘密鍵skID_i,T,τを生成し、自身の子端末30i,j(ただし、デバイスリストListに含まれるデバイス識別子IDi,jを持つ子端末30i,j)に配布する。各子端末30i,jは第3階層目に相当する。
【0112】
<ハードウェア構成>
上記の各実施例における秘密鍵生成センタ10、代表端末20、子端末30i,j、タイムサーバ40、送信端末50、識別子発行サーバ60は、例えば、図12に示すコンピュータ900のハードウェア構成で実現することが可能である。
【0113】
図12に示すコンピュータ900は、入力装置901と、表示装置902と、外部I/F903と、通信I/F904と、プロセッサ905と、メモリ装置906とを有する。これらの各ハードウェアは、それぞれがバス907により通信可能に接続される。
【0114】
入力装置901は、例えば、キーボードやマウス、タッチパネル、各種物理ボタン等である。表示装置902は、例えば、ディスプレイや表示パネル等である。ただし、コンピュータ900は、入力装置901及び表示装置902のうちの少なくとも一方を有していなくてもよい。
【0115】
外部I/F903は、記録媒体903a等の外部装置とのインタフェースである。なお、記録媒体903aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
【0116】
通信I/F904は、インターネット等の通信ネットワークに接続するためのインタフェースである。プロセッサ905は、例えば、CPU等といった各種演算装置である。メモリ装置906は、例えば、HDD、SSD、フラッシュメモリ、RAM、ROM(Read Only Memory)等といった各種記憶装置である。
【0117】
なお、図12に示すコンピュータ900のハードウェア構成は一例であって、例えば、複数のプロセッサ905を有していてもよいし、複数のメモリ装置906を有していてもよいし、図示したハードウェア以外の様々なハードウェアを有していてもよい。
【0118】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【符号の説明】
【0119】
1:暗号システム、10:秘密鍵生成センタ(PKG)、20:代表端末、30i,j:子端末、40:タイムサーバ、50:送信端末、60:識別子発行サーバ、90:ネットワーク、101:セットアップ処理部、102:ユーザ秘密鍵生成部、103:記憶部、201:デバイス秘密鍵生成部、202:復号部、203:リスト更新部、204:記憶部、301i,j:復号部、302i,j:記憶部、501:暗号化部、502:記憶部、601:ユーザ秘密鍵生成部、602:記憶部、900:コンピュータ、901:入力装置、902:表示装置、903:外部I/F、903a:記録媒体、904:外部I/F、905:プロセッサ、906:メモリ装置、907:バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12