JP2023054920A - 暗号システム、端末、方法、及びプログラム - Google Patents
暗号システム、端末、方法、及びプログラム Download PDFInfo
- Publication number
- JP2023054920A JP2023054920A JP2021163927A JP2021163927A JP2023054920A JP 2023054920 A JP2023054920 A JP 2023054920A JP 2021163927 A JP2021163927 A JP 2021163927A JP 2021163927 A JP2021163927 A JP 2021163927A JP 2023054920 A JP2023054920 A JP 2023054920A
- Authority
- JP
- Japan
- Prior art keywords
- secret key
- terminal
- identifier
- user
- representative
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000003860 storage Methods 0.000 claims description 43
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- VZSRBBMJRBPUNF-UHFFFAOYSA-N 2-(2,3-dihydro-1H-inden-2-ylamino)-N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]pyrimidine-5-carboxamide Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C(=O)NCCC(N1CC2=C(CC1)NN=N2)=O VZSRBBMJRBPUNF-UHFFFAOYSA-N 0.000 description 7
- YLZOPXRUQYQQID-UHFFFAOYSA-N 3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)-1-[4-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidin-5-yl]piperazin-1-yl]propan-1-one Chemical compound N1N=NC=2CN(CCC=21)CCC(=O)N1CCN(CC1)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F YLZOPXRUQYQQID-UHFFFAOYSA-N 0.000 description 7
- AFCARXCZXQIEQB-UHFFFAOYSA-N N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CCNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 AFCARXCZXQIEQB-UHFFFAOYSA-N 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
【課題】デバイスの復号可否を制御可能なIDベース暗号を実現する暗号システム、端末、方法及びプログラムを提供する。【解決手段】暗号システム1は、階層型IDベース暗号の公開パラメータと、マスタ秘密鍵とを生成し、代表端末の識別子と、マスタ秘密鍵と、公開パラメータとを用いて、代表端末のユーザ秘密鍵を生成する秘密鍵生成センタと、自身が利用する1以上の子端末の識別子で構成されるデバイスリストを記憶し、自身の識別子に対応するユーザ秘密鍵と、デバイスリストの更新時間を表すデバイス更新時間と、公開パラメータとを用いて、送信端末から送信される暗号文を復号するためのデバイス秘密鍵を生成し、デバイスリストの子端末に対して前記デバイス秘密鍵を送信する1以上の代表端末と、代表端末の識別子と、デバイス更新時間とを用いて、メッセージを暗号化した暗号文を生成し、代表端末又は子端末に暗号文を送信する送信端末からなる。【選択図】図1
Description
特許法第30条第2項適用申請有り 2021年1月19日~2021年1月22日(公知日:2021年1月21日)に2021年暗号と情報セキュリティシンポジウムにて公開
本発明は、暗号システム、端末、方法、及びプログラムに関する。
IDベース暗号(IBE:Identity-Based Encryption)技術は公開鍵暗号技術の一種であり、公開鍵として利用者のメールアドレスや氏名、IP(Internet Protocol)アドレス等を指定することができる暗号方式である(例えば、非特許文献1)。
IDベース暗号技術により暗号化・復号を実現するシステムは、秘密鍵生成センタ(PKG:private key generator)と、利用者(受信者)端末と、送信者端末とで構成され、次のような処理を実行する。まず、秘密鍵生成センタは、システム・セットアップとして公開パラメータとマスタ秘密鍵を生成し、公開パラメータをシステムに属する利用者端末や送信者端末に公開する。利用者端末は、ある識別子IDに対する秘密鍵の生成を秘密鍵生成センタに要求する。秘密鍵生成センタは、利用者端末から識別子IDを受け取ると、この識別IDと公開パラメータ及びマスタ秘密鍵からその識別子IDに対応する秘密鍵を生成し、この秘密鍵を利用者端末に送信する。送信者端末は、利用者端末に送信したいメッセージを公開パラメータとその利用者端末の識別子IDとを用いて暗号化し、この暗号化によって得られた暗号文を当該利用者端末に送信する。暗号文を受信した利用者端末は、公開パラメータと自身の識別子IDに対応する秘密鍵とを用いて暗号文を復号する。以上によって暗号化・復号が実現される。
ところで、近年、クラウド技術の進歩に伴って、複数のデバイスから同一のサービスを享受できる機会が増加している。例えば、Webメールサービスでは、デスクトップPC、タブレットPC、スマートフォンのような様々なデバイスで同一のメールアドレスを利用することができる。
このような状況を鑑みると、IDベース暗号技術により暗号化・復号を実現するシステムにおいても同様のシナリオを考慮する必要がある。具体的には、例えば、あるクラウドサービスのアカウントを識別子IDに用いて、利用者の識別子IDに対応する秘密鍵を複数のデバイスに格納して運用し、その識別子IDによって暗号化されたデータを当該デバイスで復号して利用する、といったシナリオを考慮する必要がある。一方で、このとき、将来にわたって同一のデバイスが使用し続けられるとは限らず、デバイスの追加や破棄も想定される。また、利用者のアカウントが停止又は削除されることも想定される。したがって、例えば、デバイスが破棄された場合には、他のデバイスで利用されている秘密鍵が、破棄されたデバイスから得られない仕組みが必要である。また、利用者のアカウントが停止又は削除された場合には、そのアカウントに対応する秘密鍵を持つすべてのデバイスでデータを復号できないようにする仕組みも必要である。
Ryuichi SAKAI, Masao KASAHARA, "ID based Cryptosystems with Pairing on Elliptic Curve"
しかしながら、非特許文献1に記載されているような既存のIDベース暗号技術では、デバイスの廃棄やアカウントの停止・削除に伴って秘密鍵がデバイスから適切に削除できるとは言い難い。
既存のIDベース暗号技術では、1つの識別子IDに対応する秘密鍵を持つデバイスがあれば、その識別子IDで暗号化された暗号文をいつでも復号できる。したがって、例えば、破棄されたデバイスからその識別子IDに対応する秘密鍵が得られれば、そのデバイスが破棄された後であっても、当該識別子IDで暗号化されたメッセージを読み取ることが可能になってしまう。
本発明の一実施形態は、上記の点に鑑みてなされたもので、デバイスの復号可否を制御可能なIDベース暗号を実現することを目的とする。
上記目的を達成するため、一実施形態に係る暗号システムは、秘密鍵生成センタと、1以上の代表端末と、前記代表端末と同一のユーザが利用する1以上の子端末と、1以上の送信端末とが含まれる暗号システムであって、前記秘密鍵生成センタは、階層型IDベース暗号の公開パラメータと、マスタ秘密鍵とを生成するセットアップ部と、前記代表端末の識別子と、前記マスタ秘密鍵と、前記公開パラメータとを用いて、前記代表端末のユーザ秘密鍵を生成する第1のユーザ秘密鍵生成部と、を有し、前記代表端末は、自身を利用するユーザと同一のユーザが利用する子端末の識別子で構成されるデバイスリストを記憶する記憶部と、自身の識別子に対応するユーザ秘密鍵と、前記デバイスリストの更新時間を表すデバイス更新時間と、前記公開パラメータとを用いて、前記送信端末から送信される暗号文を復号するためのデバイス秘密鍵を生成するデバイス秘密鍵生成部と、前記デバイスリストに含まれる識別子が表す子端末に対して前記デバイス秘密鍵を送信する第1の送信部と、を有し、前記送信端末は、前記代表端末の識別子と、前記デバイス更新時間とを用いて、メッセージを暗号化した暗号文を生成する暗号化部と、前記代表端末又は前記子端末に前記暗号文を送信する第2の送信部と、を有する。
デバイスの復号可否を制御可能なIDベース暗号を実現することができる。
以下、本発明の実施形態として、第一の実施形態と第二の実施形態について説明する。以下の各実施形態では、IDベース暗号によって暗号文の復号が可能な複数のデバイスをユーザが管理している状況を想定し、あるデバイスが廃棄された場合にはそのデバイスが持つ秘密鍵では復号ができないように制御したり、当該識別子IDが失効した場合にはすべてのデバイスで復号ができないように制御したりすることが可能な暗号システム1について説明する。
[準備]
各実施形態を説明する前に、その準備として、階層型IDベース暗号(HIBE:Hierarchical Identity-Based Encryption)方式について説明する。
各実施形態を説明する前に、その準備として、階層型IDベース暗号(HIBE:Hierarchical Identity-Based Encryption)方式について説明する。
ユーザの識別子はID=(ID1,・・・,IDt)のように階層的に与えられているものとする。tは階層を表し、IDtは第t階層目の識別子である。
2つの識別子ID,ID'に対して、ID=(ID1,・・・,IDt-1)、かつ、ID'=(ID1,・・・,IDt-1,IDt)であるとき、pa(ID)=ID'と書くことにする。なお、t=1の場合、ID'はPKGを指すものとする(つまり、第0階層目がPKGである。)。
このとき、階層型IDベース暗号方式は、以下の4つのアルゴリズム(HIBE.Setup,HIBE.KeyGen,HIBE.Encrypt,HIBE.Decrypt)で構成される。
(pp,msk)←HIBE.Setup(1κ):セキュリティパラメータκに対応するビット列1κ(つまり、1のκビット列)を入力として、公開パラメータppとマスタ秘密鍵mskとを生成及び出力する。
skID←HIBE.KeyGen(pp,skpa(ID),ID):公開パラメータppと秘密鍵skpa(ID)と識別子IDとを入力として、当該識別子IDに対応する秘密鍵skIDを生成及び出力する。なお、t=1の場合、skpa(ID)=mskである。
C←HIBE.Encrypt(pp,ID,M):公開パラメータppと識別子IDと平文Mとを入力として、暗号文Cを生成及び出力する。
M'←HIBE.Decrypt(pp,ID,skID,C):公開パラメータppと識別子IDと秘密鍵skIDと暗号文Cとを入力として、平文M'を生成及び出力する。
また、任意の(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))を満たすものとする。
上記の階層型IDベース暗号方式の一例としては、例えば、特許第5097102号公報に記載されている方式が挙げられる。
[第一の実施形態]
以下では、第一の実施形態について説明する。
以下では、第一の実施形態について説明する。
<暗号システム1の全体構成例>
本実施形態に係る暗号システム1の全体構成例を図1に示す。図1に示すように、本実施形態に係る暗号システム1は、インターネット等のネットワーク90を介して互いに接続される複数のエンティティで構成される。エンティティとしては、秘密鍵生成センタ10、代表端末20i(i=1,・・・,n)、子端末30i,j(i=1,・・・,n j=1,・・・,m_i)、タイムサーバ40、送信端末50が存在する。
本実施形態に係る暗号システム1の全体構成例を図1に示す。図1に示すように、本実施形態に係る暗号システム1は、インターネット等のネットワーク90を介して互いに接続される複数のエンティティで構成される。エンティティとしては、秘密鍵生成センタ10、代表端末20i(i=1,・・・,n)、子端末30i,j(i=1,・・・,n j=1,・・・,m_i)、タイムサーバ40、送信端末50が存在する。
秘密鍵生成センタ10は、PKGとして機能するサーバである。代表端末20iは、識別子IDiに対応する秘密鍵を持つデバイスである。子端末30i,jは、代表端末20iと同じ識別子IDiに対応する秘密鍵を持つデバイスである。代表端末20iと子端末30i,j(j=1,・・・,m_i)は、同一ユーザのデバイス群を表すユーザ端末群iを構成する。nは代表端末20iの総数、m_iは識別子IDiに対応する秘密鍵を持つ子端末30i,jの総数を表す。
ここで、代表端末20iには識別子IDiが割り当てられているものとする。識別子IDiとしては、例えば、電話番号、メールアドレス、マイナンバー、社員番号、ソーシャルメディアアカウントのユーザID、代表端末20iの製造固有番号、IPアドレス、MAC(Media Access Control)アドレス等が挙げられる。ただし、これらは一例であって、人や組織、機器等の中で一意に識別可能な情報であれば任意の情報を識別子IDiとして用いることが可能である。以下では、代表端末20iに割り当てられている識別子IDiのことをユーザ識別子IDiとも呼ぶことにする。
また、子端末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とも呼ぶことにする。
タイムサーバ40は、他のエンティティに時刻情報を配信するサーバである。これにより、本実施形態に係る暗号システム1を構成する各エンティティの時刻情報は同期されているものとする。この時刻情報は、後述するデバイス更新時間τやユーザ更新時間T、それらの更新間隔Δτ、ΔTの特定又は算出に用いられる。
タイムサーバ40としては、例えば、NTP(Network Time Protocol)サーバ等が挙げられるが、これに限られるものではない。なお、図1に示す例ではタイムサーバ40が1台のみ図示されているが、互いに時刻同期されていれば、複数のタイムサーバ40が存在してもよい。
送信端末50は、ユーザ識別子IDiを用いてメッセージ(平文)を暗号化し、代表端末20i又は子端末30i,jに送信する。なお、代表端末20i(i=1,・・・,n)及び子端末30i,j(i=1,・・・,n j=1,・・・,m_i)のいずれかが送信端末50として機能してもよい。
<機能構成例>
秘密鍵生成センタ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)、フラッシュメモリ等のメモリ装置により実現される。
秘密鍵生成センタ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)、フラッシュメモリ等のメモリ装置により実現される。
セットアップ処理部101は、HIBE.Setupアルゴリズムを実行し、公開パラメータとマスタ秘密鍵とを生成及び出力する。ユーザ秘密鍵生成部102は、HIBE.KeyGenアルゴリズムを実行し、秘密鍵を生成及び出力する。記憶部103は、各種情報(例えば、マスタ秘密鍵、時刻情報、公開パラメータ等)を記憶する。
代表端末20iの機能構成例を図3に示す。図3に示すように、代表端末20iは、デバイス秘密鍵生成部201iと、復号部202iと、リスト更新部203iとを有する。これら各部は、例えば、代表端末20iにインストールされた1以上のプログラムが、プロセッサに実行させる処理により実現される。また、代表端末20iは、記憶部204iを有する。記憶部204iは、例えば、メモリ装置により実現される。
デバイス秘密鍵生成部201iは、HIBE.KeyGenアルゴリズムを実行し、子端末30i,jの秘密鍵(以下、この秘密鍵をデバイス秘密鍵ともいう。)を生成及び出力する。復号部202iは、HIBE.Decryptアルゴリズムを実行し、送信端末50から受け取った暗号文を復号する。リスト更新部203iは、代表端末20iが持つデバイスリストListiを更新する。デバイスリストListiは、子端末30i,jのデバイス識別子IDi,jを要素として持つリスト形式のデータである。記憶部204iは、各種情報(例えば、自身のユーザ識別子IDi、このユーザ識別子IDiに対応する秘密鍵、時刻情報、公開パラメータ、デバイスリストListi等)を記憶する。
子端末30i,jの機能構成例を図4に示す。図4に示すように、子端末30i,jは、復号部301i,jを有する。復号部301i,jは、例えば、子端末30i,jにインストールされた1以上のプログラムが、プロセッサに実行させる処理により実現される。また、子端末30i,jは、記憶部302i,jを有する。記憶部302i,jは、例えば、メモリ装置により実現される。
復号部301i,jは、HIBE.Decryptアルゴリズムを実行し、送信端末50から受け取った暗号文を復号する。記憶部302i,jは、各種情報(例えば、自身のデバイス識別子IDi,j、デバイス秘密鍵、時刻情報、公開パラメータ等)を記憶する。
送信端末50の機能構成例を図5に示す。図5に示すように、送信端末50は、暗号化部501を有する。暗号化部501は、例えば、送信端末50にインストールされた1以上のプログラムが、プロセッサに実行させる処理により実現される。また、送信端末50は、記憶部502を有する。記憶部502は、例えば、メモリ装置により実現される。
暗号化部501は、HIBE.Encryptアルゴリズムを実行し、メッセージ(平文)を暗号化する、記憶部502は、各種情報(例えば、ユーザ識別子、時刻情報、公開パラメータ等)を記憶する。
<実施例1-1>
以下では、実施例1-1について説明する。本実施例では、ユーザ端末群iの子端末30i,jを追加・削除した場合に、その子端末30i,jの復号可否を制御する場合について説明する。
以下では、実施例1-1について説明する。本実施例では、ユーザ端末群iの子端末30i,jを追加・削除した場合に、その子端末30i,jの復号可否を制御する場合について説明する。
ここで、本実施例では、代表端末20iがある更新間隔ΔτごとにデバイスリストListiの更新(デバイス識別子IDi,jの追加・削除)を行うと共にデバイス秘密鍵を生成し、自身で管理しているデバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,jにそのデバイス秘密鍵を配信する。このとき、デバイス秘密鍵を生成する際には、ユーザ識別子IDiの他に、デバイス更新時間τを用いる。デバイス更新時間τは更新間隔Δτに従ったものであり、例えば、更新間隔Δτが1時間であればτ=2021032515(2021年3月25日15時)というような文字列で与えられ、更新間隔Δτが1日であればτ=20210325(2021年3月25日)というような文字列で与えられる。
また、送信端末50は、ユーザ識別子IDiの他に、デバイス更新時間τも用いてメッセージ(平文)を暗号化する。これにより、代表端末20iの他は、そのデバイス更新時間τにおいてデバイスリストListiに含まれているデバイス識別子IDi,jを持つ子端末IDi,jのみが復号できるようになる。したがって、例えば、ある子端末30i,jが破棄され、そのデバイス識別子IDi,jがデバイスリストListiから削除された場合には、その子端末30i,jが持つデバイス秘密鍵では、それ以降、暗号文の復号ができないように制御することができる。
なお、デバイス更新時間τは更新間隔Δτごとにτ←τ+Δτと更新され、この更新が行われるごとにデバイスリストListiの更新とデバイス秘密鍵の生成とが行われる。デバイス更新時間τは、例えば、更新間隔Δτが1時間、現在のデバイス更新時間がτ=2021032515であれば、前回の更新から1時間経過時にτ=2021032516と更新される。同様に、更新間隔Δτが1日、現在のデバイス更新時間がτ=20210325であれば、前回の更新から1日経過時にτ=20210326と更新される。
以下、本実施例におけるセットアップ、ユーザ秘密鍵生成、デバイスリスト更新、デバイス秘密鍵生成、暗号化、復号の各処理について説明する。なお、セキュリティパラメータκは安全性強度を表すものであり、例えば、κ=128やκ=256等とすればよい。
≪実施例1-1におけるセットアップ≫
秘密鍵生成センタ10のセットアップ処理部101は、(pp,msk)←HIBE.Setup(1κ)を実行し、公開パラメータppとマスタ秘密鍵mskとを生成及び出力する。公開パラメータppは記憶部103に格納されると共に、他のエンティティ(代表端末20i、子端末30i,j、送信端末50等)に配布される。マスタ秘密鍵mskは記憶部103に格納され、秘密に管理される。
秘密鍵生成センタ10のセットアップ処理部101は、(pp,msk)←HIBE.Setup(1κ)を実行し、公開パラメータppとマスタ秘密鍵mskとを生成及び出力する。公開パラメータppは記憶部103に格納されると共に、他のエンティティ(代表端末20i、子端末30i,j、送信端末50等)に配布される。マスタ秘密鍵mskは記憶部103に格納され、秘密に管理される。
≪実施例1-1におけるユーザ秘密鍵生成≫
秘密鍵生成センタ10のユーザ秘密鍵生成部102は、代表端末20iからの要求に応じて、この代表端末20iのユーザ識別子IDiに対応する秘密鍵skID_iを生成し、当該代表端末20iに送信する。なお、秘密鍵skID_iを代表端末20iに送信する際には、例えば、TLS(Transport Layer Security)等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_iの送信方法はこれに限定されるものではない。
秘密鍵生成センタ10のユーザ秘密鍵生成部102は、代表端末20iからの要求に応じて、この代表端末20iのユーザ識別子IDiに対応する秘密鍵skID_iを生成し、当該代表端末20iに送信する。なお、秘密鍵skID_iを代表端末20iに送信する際には、例えば、TLS(Transport Layer Security)等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_iの送信方法はこれに限定されるものではない。
具体的には、秘密鍵生成センタ10のユーザ秘密鍵生成部102は、代表端末20iからの要求に応じて、skID_i←HIBE.KeyGen(pp,msk,IDi)を実行し、この秘密鍵skID_iを当該代表端末20iに送信する。秘密鍵skID_iは記憶部204iに格納され、秘密に管理される。
≪実施例1-1におけるデバイスリスト更新≫
デバイス更新時間τが更新された場合、代表端末20iのリスト更新部203iは、デバイスリストListiを更新する。ここで、デバイスリストListiに追加するデバイス識別子のリストをAddDevi、デバイスリストListiから削除するデバイス識別子のリストをDelDeviとする。なお、AddDevi及びDelDeviは代表端末20iに与えられ、いずれか一方又は両方が空のリストであってもよい。
デバイス更新時間τが更新された場合、代表端末20iのリスト更新部203iは、デバイスリストListiを更新する。ここで、デバイスリストListiに追加するデバイス識別子のリストをAddDevi、デバイスリストListiから削除するデバイス識別子のリストをDelDeviとする。なお、AddDevi及びDelDeviは代表端末20iに与えられ、いずれか一方又は両方が空のリストであってもよい。
このとき、代表端末20iのリスト更新部203iは、Listi←(Listi\DelDevi)∪AddDeviによりデバイスリストListiを更新する。なお、更新後のデバイスリストListiは記憶部204iに格納される。
≪実施例1-1におけるデバイス秘密鍵生成≫
デバイスリストListiが更新された場合、代表端末20iのデバイス秘密鍵生成部201iは、自身のユーザ識別子IDiに対応する秘密鍵skID_iとデバイス更新時間τとを用いてデバイス秘密鍵dskID_i,τを生成し、デバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,jに当該デバイス秘密鍵dskID_i,τを送信する。なお、デバイス秘密鍵dskID_i,τを子端末30i,jに送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、デバイス秘密鍵dskID_i,τの送信方法はこれに限定されるものではない。
デバイスリストListiが更新された場合、代表端末20iのデバイス秘密鍵生成部201iは、自身のユーザ識別子IDiに対応する秘密鍵skID_iとデバイス更新時間τとを用いてデバイス秘密鍵dskID_i,τを生成し、デバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,jに当該デバイス秘密鍵dskID_i,τを送信する。なお、デバイス秘密鍵dskID_i,τを子端末30i,jに送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、デバイス秘密鍵dskID_i,τの送信方法はこれに限定されるものではない。
具体的には、代表端末20iのデバイス秘密鍵生成部201iは、IDi,τ=(IDi,τ)という形の階層的な識別子を作成した上で、dskID_i,τ←HIBE.KeyGen(pp,skID_i,IDi,τ)を実行し、デバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,jに当該デバイス秘密鍵dskID_i,τを送信する。なお、デバイス秘密鍵dskID_i,τは代表端末20iの記憶部204iに格納されると共に、当該デバイス秘密鍵dskID_i,τを受け取った子端末30i,jの記憶部302i,jに格納され、秘密に管理される。
≪実施例1-1における暗号化≫
代表端末20i又はその子端末30i,jにメッセージMの暗号文を送信する場合、送信端末50の暗号化部501は、ユーザ識別子IDiとデバイス更新時間τとを用いてメッセージMを暗号化し、その暗号文を当該代表端末20i又は子端末30i,jに送信する。
代表端末20i又はその子端末30i,jにメッセージMの暗号文を送信する場合、送信端末50の暗号化部501は、ユーザ識別子IDiとデバイス更新時間τとを用いてメッセージMを暗号化し、その暗号文を当該代表端末20i又は子端末30i,jに送信する。
具体的には、送信端末50の暗号化部501は、IDi,τ=(IDi,τ)という形の階層的な識別子を作成した上で、C←HIBE.Encrypt(pp,IDi,τ,M)を実行し、代表端末20i又は子端末30i,jに暗号文Cを送信する。
≪実施例1-1における復号≫
代表端末20iが暗号文Cを受け取った場合、当該代表端末20iの復号部202iは、M←HIBE.Decrypt(pp,IDi,τ,dskID_i,τ,C)を実行し、暗号文Cを復号する。この復号により得られたメッセージMは記憶部204iに格納される。
代表端末20iが暗号文Cを受け取った場合、当該代表端末20iの復号部202iは、M←HIBE.Decrypt(pp,IDi,τ,dskID_i,τ,C)を実行し、暗号文Cを復号する。この復号により得られたメッセージMは記憶部204iに格納される。
同様に、子端末30i,jが暗号文Cを受け取った場合、当該子端末30i,jの復号部301i,jは、M←HIBE.Decrypt(pp,IDi,τ,dskID_i,τ,C)を実行し、暗号文Cを復号する。なお、これは、デバイス秘密鍵dskID_i,τを持つ子端末30i,jのみが実行可能である。この復号により得られたメッセージMは記憶部302i,jに格納される。
≪実施例1-1のまとめ≫
以上のように、本実施例では、ユーザ識別子IDiとデバイス更新時間τから階層的な識別子IDi,τ=(IDi,τ)を作成した上で、この識別子IDi,τに対応するデバイス秘密鍵dskID_i,τを、デバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,jに配布する。また、メッセージMを暗号化する際にも同様に識別子IDi,τを作成した上で、この識別子IDi,τを用いて暗号文Cを作成する。
以上のように、本実施例では、ユーザ識別子IDiとデバイス更新時間τから階層的な識別子IDi,τ=(IDi,τ)を作成した上で、この識別子IDi,τに対応するデバイス秘密鍵dskID_i,τを、デバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,jに配布する。また、メッセージMを暗号化する際にも同様に識別子IDi,τを作成した上で、この識別子IDi,τを用いて暗号文Cを作成する。
これにより、代表端末20iの他は、デバイスリストListiに含まれているデバイス識別子IDi,jを持つ子端末30i,jのみがデバイス秘密鍵dskID_i,τによって暗号文Cを復号することができる。したがって、例えば、ある子端末30i,jが破棄され、そのデバイス識別子IDi,jがデバイスリストListiから削除された場合には、その子端末30i,jが持つデバイス秘密鍵が漏洩したとしても、そのデバイス秘密鍵により暗号文が復号されてしまう事態を防止することが可能となる。
ここで、本実施例における鍵生成の際の識別子と秘密鍵の関係を図6に示す。図6に示すように、秘密鍵生成センタ10は第0階層目に相当し、代表端末20iのユーザ識別子IDiに対応する秘密鍵skID_iを生成し、当該代表端末20iに配布する。代表端末20iは第1階層目に相当し、識別子IDi,τ=(IDi,τ)に対応する秘密鍵skID_i,τを生成し、自身の子端末30i,j(ただし、デバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,j)に配布する。各子端末30i,jは第2階層目に相当する。
<実施例1-2>
以下では、実施例1-2について説明する。本実施例では、実施例1-1に加えて、ユーザ識別子IDiが失効した場合に、ユーザ端末群iに含まれる代表端末20iとすべての子端末30i,jで復号できないように制御する場合について説明する。なお、識別子IDの失効には、その識別子ID(又は、その識別子IDに対応するアカウント)が停止又は削除された場合が含まれるものとする。
以下では、実施例1-2について説明する。本実施例では、実施例1-1に加えて、ユーザ識別子IDiが失効した場合に、ユーザ端末群iに含まれる代表端末20iとすべての子端末30i,jで復号できないように制御する場合について説明する。なお、識別子IDの失効には、その識別子ID(又は、その識別子IDに対応するアカウント)が停止又は削除された場合が含まれるものとする。
ここで、本実施例では、秘密鍵生成センタ10が代表端末20iの秘密鍵を生成する際に、ユーザ識別子IDiの他に、ユーザ更新時間Tも用いて、ユーザ識別子IDiに対応する秘密鍵を定期的に生成する。このとき、例えば、あるユーザ更新時間Tでユーザ識別子IDiを失効させる場合、T+ΔT以降では、ユーザ識別子IDiに対応する秘密鍵の生成を行わないようにする。ここで、ΔTはユーザ更新時間Tの更新間隔である。ユーザ更新時間Tは更新間隔ΔTごとにT←T+ΔTと更新される。
また、送信端末50は、ユーザ識別子IDiの他に、ユーザ更新時間Tとデバイス更新時間τも用いてメッセージ(平文)を暗号化する。これにより、あるユーザ更新時間Tでユーザ識別子IDiが失効された場合、T+ΔT以降では、代表端末20iとすべての子端末30i,jで復号ができないように制御することができる。
なお、ユーザ更新時間Tとデバイス更新時間τとの間には、特に依存関係はなく、互いに独立である。例えば、ユーザ更新時間Tの更新間隔ΔTを1年(例えば、T=2021、ΔT=1)、デバイス更新時間τの更新間隔Δτを1か月(例えば、τ=202103、Δτ=1)等と設定されてもよい。
以下、本実施例におけるセットアップ、ユーザ秘密鍵生成、デバイスリスト更新、デバイス秘密鍵生成、暗号化、復号の各処理について説明する。
≪実施例1-2におけるセットアップ≫
本実施例におけるセットアップは、実施例1-1と同様であるため、その説明を省略する。
本実施例におけるセットアップは、実施例1-1と同様であるため、その説明を省略する。
≪実施例1-2におけるユーザ秘密鍵生成≫
秘密鍵生成センタ10のユーザ秘密鍵生成部102は、代表端末20iからの要求に応じて、この代表端末20iのユーザ識別子IDiとユーザ更新時間Tとの連結文字列IDi||Tに対応する秘密鍵skID_i,Tを生成し、当該代表端末20iに送信する。なお、秘密鍵skID_i,Tを代表端末20iに送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_i,Tの送信方法はこれに限定されるものではない。
秘密鍵生成センタ10のユーザ秘密鍵生成部102は、代表端末20iからの要求に応じて、この代表端末20iのユーザ識別子IDiとユーザ更新時間Tとの連結文字列IDi||Tに対応する秘密鍵skID_i,Tを生成し、当該代表端末20iに送信する。なお、秘密鍵skID_i,Tを代表端末20iに送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_i,Tの送信方法はこれに限定されるものではない。
具体的には、秘密鍵生成センタ10のユーザ秘密鍵生成部102は、代表端末20iからの要求に応じて、skID_i,T←HIBE.KeyGen(pp,msk,IDi||T)を実行し、この秘密鍵skID_i,Tを当該代表端末20iに送信する。秘密鍵skID_i,Tは記憶部204iに格納され、秘密に管理される。
なお、上述したように、あるユーザ更新時間Tであるユーザ識別子IDi'を失効させる場合、秘密鍵生成センタ10のユーザ秘密鍵生成部102は、T+ΔT以降のユーザ更新時間T'ではそのユーザ識別子IDi'に対応する秘密鍵skID_i',T'の生成を行わないようにする。
≪実施例1-2におけるデバイスリスト更新≫
本実施例におけるデバイスリスト更新は、実施例1-1と同様であるため、その説明を省略する。
本実施例におけるデバイスリスト更新は、実施例1-1と同様であるため、その説明を省略する。
≪実施例1-2におけるデバイス秘密鍵生成≫
デバイスリストListiが更新された場合、代表端末20iのデバイス秘密鍵生成部201iは、連結文字列IDi||Tに対応する秘密鍵skID_i,Tとデバイス更新時間τとを用いてデバイス秘密鍵dskID_i,T,τを生成し、デバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,jに当該デバイス秘密鍵dskID_i,T,τを送信する。なお、デバイス秘密鍵dskID_i,T,τを子端末30i,jに送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、デバイス秘密鍵dskID_i,T,τの送信方法はこれに限定されるものではない。
デバイスリストListiが更新された場合、代表端末20iのデバイス秘密鍵生成部201iは、連結文字列IDi||Tに対応する秘密鍵skID_i,Tとデバイス更新時間τとを用いてデバイス秘密鍵dskID_i,T,τを生成し、デバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,jに当該デバイス秘密鍵dskID_i,T,τを送信する。なお、デバイス秘密鍵dskID_i,T,τを子端末30i,jに送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、デバイス秘密鍵dskID_i,T,τの送信方法はこれに限定されるものではない。
具体的には、代表端末20iのデバイス秘密鍵生成部201iは、IDi,T,τ=(IDi||T,τ)という形の階層的な識別子を作成した上で、dskID_i,T,τ←HIBE.KeyGen(pp,skID_i,T,IDi,T,τ)を実行し、デバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,jに当該デバイス秘密鍵dskID_i,T,τを送信する。なお、デバイス秘密鍵dskID_i,T,τは代表端末20iの記憶部204iに格納されると共に、当該デバイス秘密鍵dskID_i,T,τを受け取った子端末30i,jの記憶部302i,jに格納され、秘密に管理される。
≪実施例1-2における暗号化≫
代表端末20i又はその子端末30i,jにメッセージMの暗号文を送信する場合、送信端末50の暗号化部501は、ユーザ識別子IDiとユーザ更新時間Tとデバイス更新時間τとを用いてメッセージMを暗号化し、その暗号文を当該代表端末20i又は子端末30i,jに送信する。
代表端末20i又はその子端末30i,jにメッセージMの暗号文を送信する場合、送信端末50の暗号化部501は、ユーザ識別子IDiとユーザ更新時間Tとデバイス更新時間τとを用いてメッセージMを暗号化し、その暗号文を当該代表端末20i又は子端末30i,jに送信する。
具体的には、送信端末50の暗号化部501は、IDi,T,τ=(IDi||T,τ)という形の階層的な識別子を作成した上で、C←HIBE.Encrypt(pp,IDi,T,τ,M)を実行し、代表端末20i又は子端末30i,jに暗号文Cを送信する。
≪実施例1-2における復号≫
代表端末20iが暗号文Cを受け取った場合、当該代表端末20iの復号部202iは、M←HIBE.Decrypt(pp,IDi,T,τ,dskID_i,T,τ,C)を実行し、暗号文Cを復号する。この復号により得られたメッセージMは記憶部204iに格納される。
代表端末20iが暗号文Cを受け取った場合、当該代表端末20iの復号部202iは、M←HIBE.Decrypt(pp,IDi,T,τ,dskID_i,T,τ,C)を実行し、暗号文Cを復号する。この復号により得られたメッセージMは記憶部204iに格納される。
同様に、子端末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に格納される。
≪実施例1-2のまとめ≫
以上のように、本実施例では、ユーザ識別子IDiとユーザ更新時間Tとの連結文字列IDi||Tに対応する秘密鍵skID_i,Tを生成し、この秘密鍵skID_i,Tを代表端末20iに配布する。そして、デバイス秘密鍵dskID_i,T,τを生成する際には、階層的な識別子IDi,T,τ=(IDi||T,τ)を作成した上で、この識別子IDi,T,τを用いて当該デバイス秘密鍵dskID_i,T,τを生成する。また、メッセージMを暗号化する際にも同様に識別子IDi,T,τを作成した上で、この識別子IDi,τを用いて暗号文Cを作成する。
以上のように、本実施例では、ユーザ識別子IDiとユーザ更新時間Tとの連結文字列IDi||Tに対応する秘密鍵skID_i,Tを生成し、この秘密鍵skID_i,Tを代表端末20iに配布する。そして、デバイス秘密鍵dskID_i,T,τを生成する際には、階層的な識別子IDi,T,τ=(IDi||T,τ)を作成した上で、この識別子IDi,T,τを用いて当該デバイス秘密鍵dskID_i,T,τを生成する。また、メッセージMを暗号化する際にも同様に識別子IDi,T,τを作成した上で、この識別子IDi,τを用いて暗号文Cを作成する。
これにより、デバイス更新時間τだけでなく、ユーザ更新時間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)では復号することができないようにすることができる。
ここで、本実施例における鍵生成の際の識別子と秘密鍵の関係を図7に示す。図7に示すように、秘密鍵生成センタ10は第0階層目に相当し、代表端末20iのユーザ識別子IDiとユーザ更新時間Tに対応する秘密鍵skID_i,Tを生成し、当該代表端末20iに配布する。代表端末20iは第1階層目に相当し、識別子IDi,T,τ=(IDi||T,τ)に対応する秘密鍵skID_i,T,τを生成し、自身の子端末30i,j(ただし、デバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,j)に配布する。各子端末30i,jは第2階層目に相当する。
[第二の実施形態]
以下では、第二の実施形態について説明する。本実施形態では、ユーザ識別子IDiを発行する識別子発行サーバ60が存在する場合について説明する。なお、第一の実施形態と同様の構成要素については、その説明を省略するものとする。
以下では、第二の実施形態について説明する。本実施形態では、ユーザ識別子IDiを発行する識別子発行サーバ60が存在する場合について説明する。なお、第一の実施形態と同様の構成要素については、その説明を省略するものとする。
<暗号システム1の全体構成例>
本実施形態に係る暗号システム1の全体構成例を図8に示す。図8に示すように、本実施形態に係る暗号システム1は、エンティティとして更に識別子発行サーバ60が存在する。
本実施形態に係る暗号システム1の全体構成例を図8に示す。図8に示すように、本実施形態に係る暗号システム1は、エンティティとして更に識別子発行サーバ60が存在する。
識別子発行サーバ60は、クラウドサービス等のアプリケーションを提供するサービス事業者が持つサーバである。識別子発行サーバ60は、自身の秘密鍵と、自身が管理するユーザ識別子IDiとを用いて、そのユーザID識別子IDiを持つ代表端末20iの秘密鍵を生成する。
ここで、識別子発行サーバ60には識別子IDSが割り当てられているものとする。識別子IDSとしては、例えば、電話番号、メールアドレス、マイナンバー、識別子発行サーバ60の製造固有番号、IPアドレス、MACアドレス等が挙げられる。ただし、これらは一例であって、機器等の中で一意に識別可能な情報であれば任意の情報を識別子IDSとして用いることが可能である。
なお、すべてのユーザ識別子IDi(i=1,・・・,n)が識別子発行サーバ60で管理されている必要はなく、例えば、一部のユーザ識別子IDiのみ(例えば、i=1,・・・,n1のユーザ識別子IDi)が識別子発行サーバ60で管理されていてもよい。また、図8に示す例では識別子発行サーバ60が1台のみ図示されているが、複数の識別子発行サーバ60が存在してもよい。例えば、クラウドサービスAのユーザ識別子IDiを管理する識別子発行サーバ60Aと、クラウドサービスBのユーザ識別子IDiを管理する識別子発行サーバ60Bとが存在してもよい。
<機能構成例>
識別子発行サーバ60の機能構成例を図9に示す。図9に示すように、識別子発行サーバ60は、ユーザ秘密鍵生成部601を有する。ユーザ秘密鍵生成部601は、例えば、識別子発行サーバ60にインストールされた1以上のプログラムが、プロセッサに実行させる処理により実現される。また、識別子発行サーバ60は、記憶部602を有する。記憶部602は、例えば、メモリ装置により実現される。
識別子発行サーバ60の機能構成例を図9に示す。図9に示すように、識別子発行サーバ60は、ユーザ秘密鍵生成部601を有する。ユーザ秘密鍵生成部601は、例えば、識別子発行サーバ60にインストールされた1以上のプログラムが、プロセッサに実行させる処理により実現される。また、識別子発行サーバ60は、記憶部602を有する。記憶部602は、例えば、メモリ装置により実現される。
ユーザ秘密鍵生成部601は、HIBE.KeyGenアルゴリズムを実行し、秘密鍵を生成及び出力する。記憶部602は、各種情報(例えば、自身の識別子IDS、このユーザ識別子IDSに対応する秘密鍵、自身が管理しているユーザ識別子IDi、時刻情報、公開パラメータ等)を記憶する。
<実施例2-1>
以下では、実施例2-1について説明する。本実施例では、ユーザ端末群iの子端末30i,jを追加・削除した場合に、その子端末30i,jの復号可否を制御する場合について説明する。
以下では、実施例2-1について説明する。本実施例では、ユーザ端末群iの子端末30i,jを追加・削除した場合に、その子端末30i,jの復号可否を制御する場合について説明する。
以下、本実施例におけるセットアップ、ユーザ秘密鍵生成、デバイスリスト更新、デバイス秘密鍵生成、暗号化、復号の各処理について説明する。
≪実施例2-1におけるセットアップ≫
本実施例におけるセットアップは、実施例1-1と同様であるため、その説明を省略する。
本実施例におけるセットアップは、実施例1-1と同様であるため、その説明を省略する。
≪実施例2-1におけるユーザ秘密鍵生成≫
秘密鍵生成センタ10のユーザ秘密鍵生成部102は、識別子発行サーバ60からの要求に応じて、この識別子発行サーバ60の識別子IDSに対応する秘密鍵skID_Sを生成し、当該識別子発行サーバ60に送信する。なお、秘密鍵skID_Sを識別子発行サーバ60に送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_Sの送信方法はこれに限定されるものではない。
秘密鍵生成センタ10のユーザ秘密鍵生成部102は、識別子発行サーバ60からの要求に応じて、この識別子発行サーバ60の識別子IDSに対応する秘密鍵skID_Sを生成し、当該識別子発行サーバ60に送信する。なお、秘密鍵skID_Sを識別子発行サーバ60に送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_Sの送信方法はこれに限定されるものではない。
具体的には、秘密鍵生成センタ10のユーザ秘密鍵生成部102は、識別子発行サーバ60からの要求に応じて、skID_S←HIBE.KeyGen(pp,msk,IDS)を実行し、この秘密鍵skID_Sを当該識別子発行サーバ60に送信する。秘密鍵skID_Sは記憶部602に格納され、秘密に管理される。
次に、識別子発行サーバ60のユーザ秘密鍵生成部601は、識別子IDSと自身が管理しているユーザ識別子IDiとに対応する秘密鍵skID_iを生成し、当該ユーザ識別子IDiを持つ代表端末20iに送信する。なお、秘密鍵skID_iを代表端末20iに送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_iの送信方法はこれに限定されるものではない。
具体的には、識別子発行サーバ60のユーザ秘密鍵生成部601は、skID_i←HIBE.KeyGen(pp,skID_S,(IDS,IDi))を実行し、この秘密鍵skID_iを当該代表端末20iに送信する。秘密鍵skID_iは記憶部204に格納され、秘密に管理される。
≪実施例2-1におけるデバイスリスト更新≫
本実施例におけるデバイスリスト更新は、実施例1-1と同様であるため、その説明を省略する。
本実施例におけるデバイスリスト更新は、実施例1-1と同様であるため、その説明を省略する。
≪実施例2-1におけるデバイス秘密鍵生成≫
本実施例におけるデバイス秘密鍵生成は、実施例1-1とほぼ同様であるが、IDi,τ=(IDS,IDi,τ)という形の階層的な識別子を作成した上で、デバイス秘密鍵dskID_i,τを生成する。その他の点については、実施例1-1と同様であるため、その説明を省略する。
本実施例におけるデバイス秘密鍵生成は、実施例1-1とほぼ同様であるが、IDi,τ=(IDS,IDi,τ)という形の階層的な識別子を作成した上で、デバイス秘密鍵dskID_i,τを生成する。その他の点については、実施例1-1と同様であるため、その説明を省略する。
≪実施例2-1における暗号化≫
本実施例における暗号化は、実施例1-1とほぼ同様であるが、IDi,τ=(IDS,IDi,τ)という形の階層的な識別子を作成した上で、暗号文Cを生成する。その他の点については、実施例1-1と同様であるため、その説明を省略する。
本実施例における暗号化は、実施例1-1とほぼ同様であるが、IDi,τ=(IDS,IDi,τ)という形の階層的な識別子を作成した上で、暗号文Cを生成する。その他の点については、実施例1-1と同様であるため、その説明を省略する。
≪実施例2-1における復号≫
本実施例における復号は、実施例1-1とほぼ同様であるが、IDi,τ=(IDS,IDi,τ)という形の階層的な識別子を作成した上で、暗号文Cを復号する。その他の点については、実施例1-1と同様であるため、その説明を省略する。
本実施例における復号は、実施例1-1とほぼ同様であるが、IDi,τ=(IDS,IDi,τ)という形の階層的な識別子を作成した上で、暗号文Cを復号する。その他の点については、実施例1-1と同様であるため、その説明を省略する。
≪実施例2-1のまとめ≫
以上のように、本実施例では、ユーザ識別子IDiを管理する識別子発行サーバ60が存在し、この識別子発行サーバ60が秘密鍵skID_iを生成する。
以上のように、本実施例では、ユーザ識別子IDiを管理する識別子発行サーバ60が存在し、この識別子発行サーバ60が秘密鍵skID_iを生成する。
ここで、本実施例における鍵生成の際の識別子と秘密鍵の関係を図10に示す。図10に示すように、秘密鍵生成センタ10は第0階層目に相当し、識別子発行サーバ60の識別子IDSに対応する秘密鍵skID_Sを生成し、当該識別子発行サーバ60に配布する。識別子発行サーバ60は第1階層目に相当し、識別子発行サーバ60の識別子IDSと代表端末20iのユーザ識別子IDiとに対応する秘密鍵skID_iを生成し、当該代表端末20iに配布する。代表端末20iは第2階層目に相当し、識別子IDi,τ=(IDS,IDi,τ)に対応する秘密鍵skID_i,τを生成し、自身の子端末30i,j(ただし、デバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,j)に配布する。各子端末30i,jは第3階層目に相当する。
<実施例2-2>
以下では、実施例2-2について説明する。本実施例では、実施例2-1に加えて、ユーザ識別子IDiが失効した場合に、ユーザ端末群iに含まれる代表端末20iとすべての子端末30i,jで復号できないように制御する場合について説明する。
以下では、実施例2-2について説明する。本実施例では、実施例2-1に加えて、ユーザ識別子IDiが失効した場合に、ユーザ端末群iに含まれる代表端末20iとすべての子端末30i,jで復号できないように制御する場合について説明する。
以下、本実施例におけるセットアップ、ユーザ秘密鍵生成、デバイスリスト更新、デバイス秘密鍵生成、暗号化、復号の各処理について説明する。
≪実施例2-2におけるセットアップ≫
本実施例におけるセットアップは、実施例2-1と同様であるため、その説明を省略する。
本実施例におけるセットアップは、実施例2-1と同様であるため、その説明を省略する。
≪実施例2-2におけるユーザ秘密鍵生成≫
秘密鍵生成センタ10のユーザ秘密鍵生成部102は、識別子発行サーバ60からの要求に応じて、この識別子発行サーバ60の識別子IDSに対応する秘密鍵skID_Sを生成し、当該識別子発行サーバ60に送信する。なお、秘密鍵skID_Sを識別子発行サーバ60に送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_Sの送信方法はこれに限定されるものではない。
秘密鍵生成センタ10のユーザ秘密鍵生成部102は、識別子発行サーバ60からの要求に応じて、この識別子発行サーバ60の識別子IDSに対応する秘密鍵skID_Sを生成し、当該識別子発行サーバ60に送信する。なお、秘密鍵skID_Sを識別子発行サーバ60に送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_Sの送信方法はこれに限定されるものではない。
具体的には、秘密鍵生成センタ10のユーザ秘密鍵生成部102は、識別子発行サーバ60からの要求に応じて、skID_S←HIBE.KeyGen(pp,msk,IDS)を実行し、この秘密鍵skID_Sを当該識別子発行サーバ60に送信する。秘密鍵skID_Sは記憶部602に格納され、秘密に管理される。
次に、識別子発行サーバ60のユーザ秘密鍵生成部601は、識別子IDSと、自身が管理しているユーザ識別子IDiとユーザ更新時間Tとの連結文字列IDi||Tとに対応する秘密鍵skID_i,Tを生成し、当該ユーザ識別子IDiを持つ代表端末20iに送信する。なお、秘密鍵skID_i,Tを代表端末20iに送信する際には、例えば、TLS等の技術によりセキュアな通信路を確立して送信されることが望ましい。ただし、秘密鍵skID_i,Tの送信方法はこれに限定されるものではない。
具体的には、識別子発行サーバ60のユーザ秘密鍵生成部601は、skID_i,T←HIBE.KeyGen(pp,skID_S,(IDS,IDi||T))を実行し、この秘密鍵skID_i,Tを当該代表端末20iに送信する。秘密鍵skID_i,Tは記憶部204に格納され、秘密に管理される。
なお、あるユーザ更新時間Tであるユーザ識別子IDi'を失効させる場合、秘密鍵生成センタ10のユーザ秘密鍵生成部102は、T+ΔT以降のユーザ更新時間T'ではそのユーザ識別子IDi'に対応する秘密鍵skID_i',T'の生成を行わないようにする。
≪実施例2-2におけるデバイスリスト更新≫
本実施例におけるデバイスリスト更新は、実施例2-1と同様であるため、その説明を省略する。
本実施例におけるデバイスリスト更新は、実施例2-1と同様であるため、その説明を省略する。
≪実施例2-2におけるデバイス秘密鍵生成≫
本実施例におけるデバイス秘密鍵生成は、実施例1-2とほぼ同様であるが、IDi,T,τ=(IDS,IDi||T,τ)という形の階層的な識別子を作成した上で、デバイス秘密鍵dskID_i,T,τを生成する。その他の点については、実施例1-2と同様であるため、その説明を省略する。
本実施例におけるデバイス秘密鍵生成は、実施例1-2とほぼ同様であるが、IDi,T,τ=(IDS,IDi||T,τ)という形の階層的な識別子を作成した上で、デバイス秘密鍵dskID_i,T,τを生成する。その他の点については、実施例1-2と同様であるため、その説明を省略する。
≪実施例2-2における暗号化≫
本実施例における暗号化は、実施例1-2とほぼ同様であるが、IDi,T,τ=(IDS,IDi||T,τ)という形の階層的な識別子を作成した上で、暗号文Cを生成する。その他の点については、実施例1-2と同様であるため、その説明を省略する。
本実施例における暗号化は、実施例1-2とほぼ同様であるが、IDi,T,τ=(IDS,IDi||T,τ)という形の階層的な識別子を作成した上で、暗号文Cを生成する。その他の点については、実施例1-2と同様であるため、その説明を省略する。
≪実施例2-2における復号≫
本実施例における復号は、実施例1-2とほぼ同様であるが、IDi,T,τ=(IDS,IDi||T,τ)という形の階層的な識別子を作成した上で、暗号文Cを復号する。その他の点については、実施例1-2と同様であるため、その説明を省略する。
本実施例における復号は、実施例1-2とほぼ同様であるが、IDi,T,τ=(IDS,IDi||T,τ)という形の階層的な識別子を作成した上で、暗号文Cを復号する。その他の点については、実施例1-2と同様であるため、その説明を省略する。
≪実施例2-2のまとめ≫
以上のように、本実施例では、ユーザ識別子IDiを管理する識別子発行サーバ60が存在し、この識別子発行サーバ60が秘密鍵skID_i,Tを生成する。これにより、本実施例では、識別子発行サーバ60がユーザ識別子IDiの失効に伴う復号可否を制御することが可能となる。
以上のように、本実施例では、ユーザ識別子IDiを管理する識別子発行サーバ60が存在し、この識別子発行サーバ60が秘密鍵skID_i,Tを生成する。これにより、本実施例では、識別子発行サーバ60がユーザ識別子IDiの失効に伴う復号可否を制御することが可能となる。
ここで、本実施例における鍵生成の際の識別子と秘密鍵の関係を図11に示す。図11に示すように、秘密鍵生成センタ10は第0階層目に相当し、識別子発行サーバ60の識別子IDSに対応する秘密鍵skID_Sを生成し、当該識別子発行サーバ60に配布する。識別子発行サーバ60は第1階層目に相当し、(IDS,IDi||T)に対応する秘密鍵skID_i,Tを生成し、当該代表端末20iに配布する。代表端末20iは第2階層目に相当し、識別子IDi,T,τ=(IDS,IDi||T,τ)に対応する秘密鍵skID_i,T,τを生成し、自身の子端末30i,j(ただし、デバイスリストListiに含まれるデバイス識別子IDi,jを持つ子端末30i,j)に配布する。各子端末30i,jは第3階層目に相当する。
<ハードウェア構成>
上記の各実施例における秘密鍵生成センタ10、代表端末20i、子端末30i,j、タイムサーバ40、送信端末50、識別子発行サーバ60は、例えば、図12に示すコンピュータ900のハードウェア構成で実現することが可能である。
上記の各実施例における秘密鍵生成センタ10、代表端末20i、子端末30i,j、タイムサーバ40、送信端末50、識別子発行サーバ60は、例えば、図12に示すコンピュータ900のハードウェア構成で実現することが可能である。
図12に示すコンピュータ900は、入力装置901と、表示装置902と、外部I/F903と、通信I/F904と、プロセッサ905と、メモリ装置906とを有する。これらの各ハードウェアは、それぞれがバス907により通信可能に接続される。
入力装置901は、例えば、キーボードやマウス、タッチパネル、各種物理ボタン等である。表示装置902は、例えば、ディスプレイや表示パネル等である。ただし、コンピュータ900は、入力装置901及び表示装置902のうちの少なくとも一方を有していなくてもよい。
外部I/F903は、記録媒体903a等の外部装置とのインタフェースである。なお、記録媒体903aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
通信I/F904は、インターネット等の通信ネットワークに接続するためのインタフェースである。プロセッサ905は、例えば、CPU等といった各種演算装置である。メモリ装置906は、例えば、HDD、SSD、フラッシュメモリ、RAM、ROM(Read Only Memory)等といった各種記憶装置である。
なお、図12に示すコンピュータ900のハードウェア構成は一例であって、例えば、複数のプロセッサ905を有していてもよいし、複数のメモリ装置906を有していてもよいし、図示したハードウェア以外の様々なハードウェアを有していてもよい。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
1:暗号システム、10:秘密鍵生成センタ(PKG)、20i:代表端末、30i,j:子端末、40:タイムサーバ、50:送信端末、60:識別子発行サーバ、90:ネットワーク、101:セットアップ処理部、102:ユーザ秘密鍵生成部、103:記憶部、201i:デバイス秘密鍵生成部、202i:復号部、203i:リスト更新部、204i:記憶部、301i,j:復号部、302i,j:記憶部、501:暗号化部、502:記憶部、601:ユーザ秘密鍵生成部、602:記憶部、900:コンピュータ、901:入力装置、902:表示装置、903:外部I/F、903a:記録媒体、904:外部I/F、905:プロセッサ、906:メモリ装置、907:バス
Claims (8)
- 秘密鍵生成センタと、1以上の代表端末と、前記代表端末と同一のユーザが利用する1以上の子端末と、1以上の送信端末とが含まれる暗号システムであって、
前記秘密鍵生成センタは、
階層型IDベース暗号の公開パラメータと、マスタ秘密鍵とを生成するセットアップ部と、
前記代表端末の識別子と、前記マスタ秘密鍵と、前記公開パラメータとを用いて、前記代表端末のユーザ秘密鍵を生成する第1のユーザ秘密鍵生成部と、を有し、
前記代表端末は、
自身を利用するユーザと同一のユーザが利用する子端末の識別子で構成されるデバイスリストを記憶する記憶部と、
自身の識別子に対応するユーザ秘密鍵と、前記デバイスリストの更新時間を表すデバイス更新時間と、前記公開パラメータとを用いて、前記送信端末から送信される暗号文を復号するためのデバイス秘密鍵を生成するデバイス秘密鍵生成部と、
前記デバイスリストに含まれる識別子が表す子端末に対して前記デバイス秘密鍵を送信する第1の送信部と、を有し、
前記送信端末は、
前記代表端末の識別子と、前記デバイス更新時間とを用いて、メッセージを暗号化した暗号文を生成する暗号化部と、
前記代表端末又は前記子端末に前記暗号文を送信する第2の送信部と、
を有する暗号システム。 - 前記第1のユーザ秘密鍵生成部は、
前記代表端末の識別子と、前記代表端末の識別子の更新時間を表すユーザ更新時間と、前記マスタ秘密鍵と、前記公開パラメータとを用いて、前記代表端末のユーザ秘密鍵を生成し、
前記デバイス秘密鍵生成部は、
自身の識別子に対応するユーザ秘密鍵と、前記ユーザ更新時間と、前記デバイス更新時間と、前記公開パラメータとを用いて、前記デバイス秘密鍵を生成し、
前記暗号化部は、
前記代表端末の識別子と、前記ユーザ更新時間と、前記デバイス更新時間とを用いて、前記暗号文を生成する、請求項1に記載の暗号システム。 - 前記代表端末は、
前記デバイス更新時間ごとに、前記デバイスリストの更新する更新部を有する請求項1又は2に記載の暗号システム。 - 前記デバイスリストの更新には、前記デバイスリストに対して子端末の識別子を追加すること、前記デバイスリストから子端末の識別子の削除すること、が含まれる、請求項3に記載の暗号システム。
- 前記暗号システムには、前記代表端末の識別子を発行及び管理する識別子発行サーバが含まれ、
前記識別子発行サーバは、
前記秘密鍵生成センタによって生成された自身のユーザ秘密鍵と、自身が管理する代表端末の識別子と、前記公開パラメータとを用いて、前記代表端末のユーザ秘密鍵を生成する第2の秘密鍵生成部を有する、請求項1乃至4の何れか一項に記載の暗号システム。 - 階層型IDベース暗号によりユーザ秘密鍵を生成する秘密鍵生成センタと、同一のユーザが利用する1以上の子端末と、送信端末とに通信可能に接続される端末であって、
前記子端末の識別子で構成されるデバイスリストを記憶する記憶部と、
前記秘密鍵生成センタで生成された、自身の識別子に対応するユーザ秘密鍵と、前記デバイスリストの更新時間を表すデバイス更新時間と、前記秘密鍵生成センタで生成された公開パラメータとを用いて、前記送信端末から送信される暗号文を復号するためのデバイス秘密鍵を生成するデバイス秘密鍵生成部と、
前記デバイスリストに含まれる識別子が表す子端末に対して前記デバイス秘密鍵を送信する送信部と、
を有する端末。 - 秘密鍵生成センタと、1以上の代表端末と、前記代表端末と同一のユーザが利用する1以上の子端末と、1以上の送信端末とが含まれる暗号システムに用いられる方法であって、
前記秘密鍵生成センタが、
階層型IDベース暗号の公開パラメータと、マスタ秘密鍵とを生成するセットアップ手順と、
前記代表端末の識別子と、前記マスタ秘密鍵と、前記公開パラメータとを用いて、前記代表端末のユーザ秘密鍵を生成する第1のユーザ秘密鍵生成手順と、を実行し、
前記代表端末が、
自身を利用するユーザと同一のユーザが利用する子端末の識別子で構成されるデバイスリストを記憶部に記憶する記憶手順と、
自身の識別子に対応するユーザ秘密鍵と、前記デバイスリストの更新時間を表すデバイス更新時間と、前記公開パラメータとを用いて、前記送信端末から送信される暗号文を復号するためのデバイス秘密鍵を生成するデバイス秘密鍵生成手順と、
前記デバイスリストに含まれる識別子が表す子端末に対して前記デバイス秘密鍵を送信する第1の送信手順と、を実行し、
前記送信端末が、
前記代表端末の識別子と、前記デバイス更新時間とを用いて、メッセージを暗号化した暗号文を生成する暗号化手順と、
前記代表端末又は前記子端末に前記暗号文を送信する第2の送信手順と、
を実行する方法。 - 請求項1乃至5の何れか一項に記載の暗号システムに含まれる秘密鍵生成センタ、代表端末、子端末、又は送信端末、としてコンピュータを機能させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021163927A JP2023054920A (ja) | 2021-10-05 | 2021-10-05 | 暗号システム、端末、方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021163927A JP2023054920A (ja) | 2021-10-05 | 2021-10-05 | 暗号システム、端末、方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023054920A true JP2023054920A (ja) | 2023-04-17 |
Family
ID=85986218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021163927A Pending JP2023054920A (ja) | 2021-10-05 | 2021-10-05 | 暗号システム、端末、方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023054920A (ja) |
-
2021
- 2021-10-05 JP JP2021163927A patent/JP2023054920A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Two-factor data security protection mechanism for cloud storage system | |
JP6363032B2 (ja) | 鍵付替え方向制御システムおよび鍵付替え方向制御方法 | |
JP4071870B2 (ja) | 秘密鍵生成方法 | |
JP2012175156A (ja) | 鍵管理システム | |
CN112966022B (zh) | 一种数据交易平台的信息查询方法、装置及系统 | |
JPWO2018016330A1 (ja) | 通信端末、サーバ装置、プログラム | |
Reshma et al. | Pairing-free CP-ABE based cryptography combined with steganography for multimedia applications | |
Weber | A hybrid attribute-based encryption technique supporting expressive policies and dynamic attributes | |
KR101373577B1 (ko) | Id 기반 동적 임계 암호화 장치 및 그 방법 | |
JP2023054920A (ja) | 暗号システム、端末、方法、及びプログラム | |
JP2019121999A (ja) | データ共有方法、データ共有システム、通信端末、データ共有サーバ、プログラム | |
JP2019200382A (ja) | 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム | |
JP2009065226A (ja) | 認証付鍵交換システム、認証付鍵交換方法およびプログラム | |
JP2005176144A (ja) | 端末装置、通信システム及び通信方法 | |
US11082406B2 (en) | System and method for providing end-to-end security of data and metadata | |
CN113918971A (zh) | 基于区块链的消息传输方法、装置、设备及可读存储介质 | |
US11177949B2 (en) | Data sharing method, data sharing system, data sharing server, communication terminal and program | |
CA2849174C (en) | System and method for the safe spontaneous transmission of confidential data over unsecure connections and switching computers | |
JP5643251B2 (ja) | 秘密情報通知システム、秘密情報通知方法、プログラム | |
JP2005198187A (ja) | 暗号方法、暗号システム及び端末装置 | |
JPH11187008A (ja) | 暗号鍵の配送方法 | |
Modi et al. | A Secure Communication Model for Expressive Access Control Using CP-ABE. | |
KR101599996B1 (ko) | 폐기가능한 id 기반 암호 서버 및 시스템 | |
Kim et al. | Certificateless Group to Many Broadcast Proxy Reencryptions for Data Sharing towards Multiple Parties in IoTs | |
JP7254296B2 (ja) | 鍵交換システム、情報処理装置、鍵交換方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20211007 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20211008 |
|
A80 | Written request to apply exceptions to lack of novelty of invention |
Free format text: JAPANESE INTERMEDIATE CODE: A80 Effective date: 20211020 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240507 |