JP2020141425A - 端末装置、鍵提供システム、鍵生成方法及びコンピュータプログラム - Google Patents
端末装置、鍵提供システム、鍵生成方法及びコンピュータプログラム Download PDFInfo
- Publication number
- JP2020141425A JP2020141425A JP2020101241A JP2020101241A JP2020141425A JP 2020141425 A JP2020141425 A JP 2020141425A JP 2020101241 A JP2020101241 A JP 2020101241A JP 2020101241 A JP2020101241 A JP 2020101241A JP 2020141425 A JP2020141425 A JP 2020141425A
- Authority
- JP
- Japan
- Prior art keywords
- key
- keys
- identification information
- terminal device
- private key
- 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
Images
Landscapes
- Storage Device Security (AREA)
Abstract
【課題】秘密鍵の暗号化に用いられた鍵の秘匿性を向上させること。【解決手段】秘密鍵の暗号化に用いられる第一の鍵から生成された複数の鍵と、ユーザを識別するための識別情報とを他の装置から取得する取得部と、取得された複数の鍵と、識別情報とに基づいて、秘密鍵の暗号化に用いられた第一の鍵と同じ鍵である第二の鍵を生成する鍵生成部と、を備える端末装置。【選択図】図4
Description
本発明は、秘密鍵の送信技術に関する。
従来、情報の保護やコンピューターセキュリティの観点から暗号化技術が用いられている。通常、SSL(Secure Sockets Layer)やS/MIME(Secure / Multipurpose Internet Mail Extensions)等のRSA(Rivest Shamir Adleman)技術を用いる場合、媒体(例えば、パーソナルコンピュータ、IC(Integrated Circuit)カード、USB(Universal Serial Bus)トークン等)のアプリケーションで鍵生成を行うため、媒体から秘密鍵を外部に送信することはない。そのため、秘密鍵が外部に漏れてしまう可能性は低い。
ところが、RSA技術を用いて鍵ペアを他の装置で生成した場合には、秘密鍵を媒体に送信する必要がある(例えば、特許文献1参照)。秘密鍵を送信するにあたり、SSL等の通信路の暗号化だけではセキュリティ性が低い。そこで、共通鍵で暗号化した秘密鍵を媒体に送信することが考えられる。このような状況下において、媒体内にあるアプリケーションで、ある共通鍵で暗号化された秘密鍵を復号する場合、共通鍵は事前に媒体の中に格納しておくことで秘密が確保される。
しかしながら、既に配布済みの媒体に暗号化した秘密鍵を送信する場合、秘密鍵を復号するための共通鍵も送信しなければならない。このような場合には、共通鍵の秘匿性を確保しなければ秘密鍵を暗号化していたとしてもセキュリティ上は問題がある。このような問題は、秘密鍵の暗号化に用いられる共通鍵に限らず、秘密鍵の暗号化に用いられる鍵全てに共通する問題である。
上記事情に鑑み、本発明は、秘密鍵の暗号化に用いられた鍵の秘匿性を向上させることができる技術の提供を目的としている。
本発明の一態様は、秘密鍵の暗号化に用いられる第一の鍵から生成された複数の鍵と、ユーザを識別するための識別情報とを他の装置から取得する取得部と、取得された前記複数の鍵と、前記識別情報とに基づいて、前記秘密鍵の暗号化に用いられた前記第一の鍵と同じ鍵である第二の鍵を生成する鍵生成部と、を備える端末装置である。
本発明の一態様は、上記の端末装置であって、前記複数の鍵のうち一部の鍵は、アプリケーション内に設定されており、前記取得部は、前記アプリケーションを取得することによって、前記複数の鍵のうち一部の鍵を取得する。
本発明の一態様は、上記の端末装置であって、前記アプリケーション内には、前記第二の鍵の生成方法に関するロジックがさらに設定されており、前記鍵生成部は、前記ロジックに従って前記第二の鍵を生成する。
本発明の一態様は、上記の端末装置であって、前記取得部は、第一の通信網を介して前記アプリケーションを取得し、前記複数の鍵のうち一部の鍵を前記第一の通信網と異なる通信網を介して取得する。
本発明の一態様は、上記の端末装置であって、前記鍵生成部は、前記複数の鍵を所定の条件に従って組み合わせることによって、前記第一の鍵を復元し、復元した前記第一の鍵を用いて、所定のアルゴリズムで前記識別情報を暗号化することによって前記第二の鍵を生成する。
本発明の一態様は、上記の端末装置であって、生成された前記第二の鍵を用いて、暗号化された秘密鍵を復号することによって秘密鍵を復元する復号部をさらに備え、前記復号部は、復元した前記秘密鍵を自装置内の耐タンパ領域に格納する。
本発明の一態様は、秘密鍵と、前記秘密鍵の対となる鍵とを生成する鍵生成部と、前記秘密鍵の暗号化に用いられる第一の鍵から生成された複数の鍵のうち一部の鍵及びユーザを識別するための識別情報を含む送信データを端末装置に送信する通信部と、を備える鍵生成装置と、前記複数の鍵と、前記識別情報とを他の装置から取得する取得部と、取得された前記複数の鍵と、前記識別情報とに基づいて、前記秘密鍵の暗号化に用いられた前記第一の鍵と同じ鍵である第二の鍵を生成する鍵生成部と、を備える端末装置と、を備える鍵提供システムである。
本発明の一態様は、秘密鍵の暗号化に用いられる第一の鍵から生成された複数の鍵と、ユーザを識別するための識別情報とを他の装置から取得する取得ステップと、取得された前記複数の鍵と、前記識別情報とに基づいて、前記秘密鍵の暗号化に用いられた前記第一の鍵と同じ鍵である第二の鍵を生成する鍵生成ステップと、を有する鍵生成方法である。
本発明の一態様は、秘密鍵の暗号化に用いられる第一の鍵から生成された複数の鍵と、ユーザを識別するための識別情報とを他の装置から取得する取得ステップと、取得された前記複数の鍵と、前記識別情報とに基づいて、前記秘密鍵の暗号化に用いられた前記第一の鍵と同じ鍵である第二の鍵を生成する鍵生成ステップと、をコンピュータに実行させるためのコンピュータプログラムである。
本発明により、秘密鍵の暗号化に用いられた鍵の秘匿性を向上させることが可能となる。
以下、本発明の一実施形態を、図面を参照しながら説明する。
図1は、本発明の鍵提供システム100の機能構成を示す図である。鍵提供システム100は、鍵生成装置10、発行サーバ20、アプリケーション提供装置30及び端末装置40を備える。発行サーバ20及び端末装置40は、第1ネットワーク50を介して通信可能に接続される。第1ネットワーク50は、例えばインターネットで構成される。アプリケーション提供装置30及び端末装置40は、第2ネットワーク60を介して通信可能に接続される。第2ネットワーク60は、例えば通信事業者が提供する通信網(第一の通信網)で構成される。なお、鍵生成装置10から端末装置40までの間は、SSLにより通信が暗号化されるものとする。
図1は、本発明の鍵提供システム100の機能構成を示す図である。鍵提供システム100は、鍵生成装置10、発行サーバ20、アプリケーション提供装置30及び端末装置40を備える。発行サーバ20及び端末装置40は、第1ネットワーク50を介して通信可能に接続される。第1ネットワーク50は、例えばインターネットで構成される。アプリケーション提供装置30及び端末装置40は、第2ネットワーク60を介して通信可能に接続される。第2ネットワーク60は、例えば通信事業者が提供する通信網(第一の通信網)で構成される。なお、鍵生成装置10から端末装置40までの間は、SSLにより通信が暗号化されるものとする。
鍵生成装置10は、製造工場やセキュリティ管理がなされた場所に設けられる。セキュリティ管理がなされた場所とは、ビルのような機密性の高い建物内に2重、3重のセキュリティが設けられている場所である。鍵生成装置10は、公開鍵暗号方式に基づいて、秘密鍵及び公開鍵の鍵ペアを生成する。また、鍵生成装置10は、マスター鍵(第一の鍵)から生成された複数の鍵と、ユーザを識別するための識別情報とを保持する。マスター鍵とは、秘密鍵の暗号化に用いられる鍵である。また、複数の鍵は、マスター鍵を分割することによって生成される。
一例として、本実施形態においてマスター鍵を分割するとは、マスター鍵がnbyte(nは2以上の整数)のビット列で構成される場合、nbyteのビット列を、複数のビット列(例えば、n_Abyteのビット列、n_Bbyteのビット列等)に分けることを意味する。以下の説明では、マスター鍵から生成された複数の鍵として、タネA(n_Abyte)及びタネB(n_Bbyte)を用いて説明する。ただし、ここではn=n_A+n_Bであるとする。なお、n_Aとn_Bの値は、同じであってもよいし、異なってもよい。タネA及び識別情報は、ユーザ毎に異なる値である。タネBは、派生鍵(第二の鍵)の生成方法及び秘密鍵の暗号化方法に関するロジック(以下「第1のロジック」という。)に組み込まれている。派生鍵とは、秘密鍵を暗号化するための鍵である。派生鍵は、複数の鍵と、識別情報とに基づいて生成される。タネA、識別情報及び第1のロジックは、他の装置から提供されてもよい。例えば、第1のロジックは、ソースファイルで提供される。
鍵生成装置10は、第1のロジックに従って派生鍵を生成する。また、鍵生成装置10は、第1のロジックに従って秘密鍵を暗号化することによって暗号化秘密鍵を生成する。鍵生成装置10は、タネA及び識別情報を格納した送信データと、暗号化秘密鍵を格納した送信データとを発行サーバ20に送信する。
発行サーバ20は、鍵生成装置10から送信された送信データを、第1ネットワーク50を介して端末装置40に送信する。
発行サーバ20は、鍵生成装置10から送信された送信データを、第1ネットワーク50を介して端末装置40に送信する。
アプリケーション提供装置30は、アプリケーションを提供する。アプリケーションとは、端末装置40において実行されるソフトウェアである。アプリケーション提供装置30が提供するアプリケーション(以下「提供アプリ」という。)は、例えばクレジットアプリケーション、PKI(Public Key Infrastructure)のアプリケーションなどである。また、提供アプリのソースファイルには、タネBと、派生鍵の生成方法及び秘密鍵の復号方法に関するロジック(以下「第2のロジック」という。)とが埋め込まれている。アプリケーション提供装置30は、端末装置40からの要求に応じて、提供アプリを端末装置40に送信する。
端末装置40は、スマートフォンやタブレット端末等の情報処理装置を用いて構成される。端末装置40は、アプリケーション提供装置30から送信された提供アプリと、発行サーバ20から送信されたタネAと、識別情報とを用いて、暗号化された秘密鍵を復号することによって秘密鍵を復元する。
図2は、鍵生成装置10の機能構成を表す概略ブロック図である。
鍵生成装置10は、バスで接続されたCPU(Central Processing Unit)やメモリや補助記憶装置などを備え、鍵生成プログラムを実行する。鍵生成プログラムの実行によって、鍵生成装置10は、鍵生成部11、送信データ生成情報記憶部12、送信データ生成部13、通信部14を備える装置として機能する。なお、鍵生成装置10の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。また、鍵生成プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM(READ ONLY MEMORY)、CD−ROM(CompactDisk- READ ONLY MEMORY)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、鍵生成プログラムは、電気通信回線を介して送受信されてもよい。
鍵生成装置10は、バスで接続されたCPU(Central Processing Unit)やメモリや補助記憶装置などを備え、鍵生成プログラムを実行する。鍵生成プログラムの実行によって、鍵生成装置10は、鍵生成部11、送信データ生成情報記憶部12、送信データ生成部13、通信部14を備える装置として機能する。なお、鍵生成装置10の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。また、鍵生成プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM(READ ONLY MEMORY)、CD−ROM(CompactDisk- READ ONLY MEMORY)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、鍵生成プログラムは、電気通信回線を介して送受信されてもよい。
鍵生成部11は、公開鍵暗号方式に基づいて、秘密鍵及び公開鍵の鍵ペアを生成する。
送信データ生成情報記憶部12は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。送信データ生成情報記憶部12は、ユーザ毎の識別情報及びタネAと、第1のロジックが埋め込まれたソースファイルとを送信データ生成情報として記憶する。
送信データ生成部13は、送信データ生成情報記憶部12に記憶されている送信データ生成情報に基づいて送信データを生成する。
通信部14は、送信データ生成部13によって生成された送信データを発行サーバ20に送信する。
送信データ生成情報記憶部12は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。送信データ生成情報記憶部12は、ユーザ毎の識別情報及びタネAと、第1のロジックが埋め込まれたソースファイルとを送信データ生成情報として記憶する。
送信データ生成部13は、送信データ生成情報記憶部12に記憶されている送信データ生成情報に基づいて送信データを生成する。
通信部14は、送信データ生成部13によって生成された送信データを発行サーバ20に送信する。
図3は、端末装置40の機能構成を表す概略ブロック図である。
端末装置40は、バスで接続されたCPUやメモリや補助記憶装置などを備え、端末装置プログラムを実行する。端末装置プログラムの実行によって、端末装置40は、第1通信部41、第2通信部42、端末制御部43、装着部44を備える装置として機能する。
装着部44には、着脱可能なICカード45が装着され、ICカード45が端末制御部43と接続される。なお、端末装置40の各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されてもよい。また、端末装置プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、端末装置プログラムは、電気通信回線を介して送受信されてもよい。
端末装置40は、バスで接続されたCPUやメモリや補助記憶装置などを備え、端末装置プログラムを実行する。端末装置プログラムの実行によって、端末装置40は、第1通信部41、第2通信部42、端末制御部43、装着部44を備える装置として機能する。
装着部44には、着脱可能なICカード45が装着され、ICカード45が端末制御部43と接続される。なお、端末装置40の各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されてもよい。また、端末装置プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、端末装置プログラムは、電気通信回線を介して送受信されてもよい。
第1通信部41は、第2ネットワーク60を介して、アプリケーション提供装置30との間で通信を行う。例えば、第1通信部41は、アプリケーション提供装置30から提供アプリを受信する。
第2通信部42は、第1ネットワーク50を介して、発行サーバ20との間で通信を行う。例えば、第2通信部42は、発行サーバ20から送信データを受信する。
端末制御部43は、例えば、CPU等を含むプロセッサにより実現される。端末制御部43は、端末装置40全体を制御する。端末制御部43は、装着部44に装着されているICカード45に対してコマンドを送信し、コマンドの処理結果としてレスポンスを受信する。
ICカード45は、例えば、SIM(Subscriber Identity Module)カードであり、ICチップ451を備える。
第2通信部42は、第1ネットワーク50を介して、発行サーバ20との間で通信を行う。例えば、第2通信部42は、発行サーバ20から送信データを受信する。
端末制御部43は、例えば、CPU等を含むプロセッサにより実現される。端末制御部43は、端末装置40全体を制御する。端末制御部43は、装着部44に装着されているICカード45に対してコマンドを送信し、コマンドの処理結果としてレスポンスを受信する。
ICカード45は、例えば、SIM(Subscriber Identity Module)カードであり、ICチップ451を備える。
図4は、ICカード45の機能構成を表す概略ブロック図である。
ICチップ451は、通信部452、制御部453、アプリケーション記憶部454、アプリケーション処理部455及び秘密鍵記憶部456を備える。
通信部452は、端末制御部43との間で通信を行う。例えば、通信部452は、端末制御部43から送信されたコマンドを受信する。
制御部453は、通信部452が受信したコマンドに応じた処理を実行する。
アプリケーション記憶部454は、アプリケーション提供装置30から提供されたアプリケーション(提供アプリ)を記憶する。
アプリケーション処理部455は、プログラムの実行により鍵生成部457及び復号部458として機能する。
鍵生成部457は、提供アプリのソースファイルに埋め込まれている第2のロジックに従って派生鍵を生成する。
復号部458は、提供アプリのソースファイルに埋め込まれている第2のロジックに従って、暗号化秘密鍵を復号することによって秘密鍵を復元する。
秘密鍵記憶部456は、復号部458によって復元された秘密鍵を記憶する。
ICチップ451は、通信部452、制御部453、アプリケーション記憶部454、アプリケーション処理部455及び秘密鍵記憶部456を備える。
通信部452は、端末制御部43との間で通信を行う。例えば、通信部452は、端末制御部43から送信されたコマンドを受信する。
制御部453は、通信部452が受信したコマンドに応じた処理を実行する。
アプリケーション記憶部454は、アプリケーション提供装置30から提供されたアプリケーション(提供アプリ)を記憶する。
アプリケーション処理部455は、プログラムの実行により鍵生成部457及び復号部458として機能する。
鍵生成部457は、提供アプリのソースファイルに埋め込まれている第2のロジックに従って派生鍵を生成する。
復号部458は、提供アプリのソースファイルに埋め込まれている第2のロジックに従って、暗号化秘密鍵を復号することによって秘密鍵を復元する。
秘密鍵記憶部456は、復号部458によって復元された秘密鍵を記憶する。
図5は、鍵提供システム100の処理の流れを示すシーケンス図である。
アプリケーション提供装置30は、端末装置40からの要求に応じて、要求された提供アプリを端末装置40に送信する(ステップS101)。提供アプリのソースファイルには、アプリケーションのプログラムの他に、タネB及び第2のロジックが埋め込まれている。なお、提供アプリは、バイナリデータ等の形式でアプリケーション提供装置30から提供される。
端末装置40の第1通信部41は、アプリケーション提供装置30から送信された提供アプリを受信する。第1通信部41は、受信した提供アプリを端末制御部43に出力する。
アプリケーション提供装置30は、端末装置40からの要求に応じて、要求された提供アプリを端末装置40に送信する(ステップS101)。提供アプリのソースファイルには、アプリケーションのプログラムの他に、タネB及び第2のロジックが埋め込まれている。なお、提供アプリは、バイナリデータ等の形式でアプリケーション提供装置30から提供される。
端末装置40の第1通信部41は、アプリケーション提供装置30から送信された提供アプリを受信する。第1通信部41は、受信した提供アプリを端末制御部43に出力する。
端末制御部43は、出力された提供アプリを格納する旨を示すコマンドを生成し、生成したコマンドをICカード45に送信する。ICカード45の通信部452は、端末制御部43から送信されたコマンドを受信する。制御部453は、通信部452によって受信されたコマンドに応じて、提供アプリをアプリケーション記憶部454に格納する(ステップS102)。
鍵生成装置10の送信データ生成部13は、タネA及び識別情報が含まれていることを示す情報(以下「付与情報」という。)と、送信データ生成情報記憶部12に記憶されているタネA及び識別情報とを格納した送信データを生成する。送信データ生成部13は、生成した送信データを通信部14に出力する。通信部14は、送信データを発行サーバ20に送信する(ステップS103)。
鍵生成装置10の送信データ生成部13は、タネA及び識別情報が含まれていることを示す情報(以下「付与情報」という。)と、送信データ生成情報記憶部12に記憶されているタネA及び識別情報とを格納した送信データを生成する。送信データ生成部13は、生成した送信データを通信部14に出力する。通信部14は、送信データを発行サーバ20に送信する(ステップS103)。
発行サーバ20は、鍵生成装置10から送信された送信データを受信する。発行サーバ20は、受信した送信データを、第1ネットワーク50を介して端末装置40に送信する(ステップS104)。
端末装置40の第2通信部42は、発行サーバ20から送信された送信データを受信する。第2通信部42は、受信した送信データを端末制御部43に出力する。端末制御部43は、出力された送信データの送信元アドレスを確認し、送信元アドレスが発行サーバ20のアドレスである場合に送信データをICカード45に送信する。ICカード45の通信部452は、端末制御部43から送信された送信データを受信し、受信した送信データを制御部453に出力する。制御部453は、出力された送信データに基づいて、鍵生成の条件が満たされたか否か判定する(ステップS105)。
端末装置40の第2通信部42は、発行サーバ20から送信された送信データを受信する。第2通信部42は、受信した送信データを端末制御部43に出力する。端末制御部43は、出力された送信データの送信元アドレスを確認し、送信元アドレスが発行サーバ20のアドレスである場合に送信データをICカード45に送信する。ICカード45の通信部452は、端末制御部43から送信された送信データを受信し、受信した送信データを制御部453に出力する。制御部453は、出力された送信データに基づいて、鍵生成の条件が満たされたか否か判定する(ステップS105)。
鍵生成の条件は、付与情報と、提供アプリとが揃うことである。鍵生成の条件は、提供アプリのロジックに埋め込まれていてもよいし、制御部453が予め記憶していてもよい。鍵生成の条件が満たされていない場合(ステップS105−NO)、制御部453は鍵生成の条件が満たされるまで待機する。
一方、鍵生成の条件が満たされた場合(ステップS105−YES)、制御部453は鍵生成部457に派生鍵の生成を指示するとともに、送信データに含まれるタネA及び識別情報を鍵生成部457に出力する。
一方、鍵生成の条件が満たされた場合(ステップS105−YES)、制御部453は鍵生成部457に派生鍵の生成を指示するとともに、送信データに含まれるタネA及び識別情報を鍵生成部457に出力する。
鍵生成部457は、制御部453の指示に応じて派生鍵を生成する(ステップS106)。派生鍵の生成処理について図6を用いて説明する。図6は、派生鍵の生成処理を説明するための図である。本実施形態において鍵生成部457による派生鍵の生成処理は、アプリケーション記憶部454に記憶されている提供アプリのソースファイルに埋め込まれている第2のロジックのうち派生鍵の生成方法のロジックに従って、図6(A)及び図6(B)に示す2つのステップで実行される。なお、派生鍵の生成方法のロジックは、タネAとタネBをどのように組み合わせることによってマスター鍵を復元するのか、復元したマスター鍵をどのように用いて派生鍵を生成するのか等の派生鍵の生成までの過程を含む。
以下の説明において、タネAは○○・・○○で表され、タネBは□□・・□□で表され、識別情報は△△・・・△△で表されるものとする。1つ目のステップとして、鍵生成部457は、取得したタネA○○・・○○と、提供アプリのソースファイルに埋め込まれているタネB□□・・□□とを組み合わせてマスター鍵を復元する。ここで、マスター鍵の復元処理について一例を挙げて説明する。派生鍵の生成方法のロジックにおけるマスター鍵の復元方法が、タネBのビット列の後に、タネAのビット列を結合するロジックである場合、鍵生成部457はタネB□□・・□□のビット列の後に、タネA○○・・○○のビット列を結合することによってマスター鍵□□・・□□○○・・○○を復元する(図6(A))。
次に、2つ目のステップとして、鍵生成部457は、復元したマスター鍵□□・・□□○○・・○○を用いて、識別情報△△・・・△△を暗号化することによって派生鍵を生成する。ここで、鍵生成部457による派生鍵の生成処理について一例を挙げて説明する。派生鍵の生成方法のロジックにおける派生鍵の生成方法が、復元したマスター鍵を用いて、識別情報を第1のアルゴリズムで暗号化するロジックである場合、鍵生成部457はマスター鍵□□・・□□○○・・○○を用いて、識別情報△△・・・△△を第1のアルゴリズムで暗号化することによって派生鍵◎◎・・・◎◎を生成する(図6(B))。鍵生成部457は、生成した派生鍵◎◎・・・◎◎を提供アプリに格納する(ステップS107)。
鍵生成装置10の送信データ生成部13は、送信データ生成情報記憶部12に記憶されている送信データ生成情報に基づいて、暗号化秘密鍵を含む送信データを生成する。送信データの生成処理について図7を用いて説明する。図7は、送信データの生成処理を説明するための図である。まず、送信データ生成部13は、送信データ生成情報記憶部12に記憶されている第1のロジックのうち派生鍵の生成方法のロジックに従って、マスター鍵を復元する。本実施形態において送信データ生成部13による派生鍵の生成処理は、図7(A)及び図7(B)に示す2つのステップで実行される。
1つ目のステップとして、送信データ生成部13は、送信データ生成情報記憶部12に記憶されているタネA○○・・○○と、第1のロジックに埋め込まれているタネB□□・・□□とを組み合わせてマスター鍵を復元する。ここで、マスター鍵の復元処理について一例を挙げて説明する。マスター鍵の復元方法が、タネBのビット列の後に、タネAのビット列を結合するロジックである場合、送信データ生成部13はタネB□□・・□□のビット列の後に、タネA○○・・○○のビット列を結合することによってマスター鍵□□・・□□○○・・○○を復元する(図7(A))。
次に、2つ目のステップとして、送信データ生成部13は、復元したマスター鍵□□・・□□○○・・○○を用いて、識別情報△△・・△△を暗号化することによって派生鍵を生成する。ここで、送信データ生成部13による派生鍵の生成処理について一例を挙げて説明する。派生鍵の生成方法のロジックにおける派生鍵の生成方法が、復元したマスター鍵を用いて、識別情報を第1のアルゴリズムで暗号化するロジックである場合、送信データ生成部13はマスター鍵□□・・□□○○・・○○を用いて、識別情報△△・・・△△を第1のアルゴリズムで暗号化することによって派生鍵◎◎・・・◎◎を生成する(図7(B))。
その後、送信データ生成部13は、第1のロジックのうち秘密鍵の暗号化方法のロジックに従って、生成した派生鍵◎◎・・・◎◎を用いて、秘密鍵XX・・・XXを暗号化することによって暗号化秘密鍵を生成する。なお、秘密鍵の暗号化方法のロジックは、派生鍵を用いて、秘密鍵をどのようなアルゴリズムで暗号化するのか等の秘密鍵の暗号化までの過程を含む。
ここで、送信データ生成部13による秘密鍵の暗号化方法について一例を挙げて説明する。秘密鍵の暗号化方法のロジックが、生成した派生鍵を用いて、秘密鍵を第2のアルゴリズムで暗号化するロジックである場合、送信データ生成部13は、生成した派生鍵◎◎・・・◎◎を用いて、秘密鍵XX・・・XXを第2のアルゴリズムで暗号化することによって暗号化秘密鍵YY・・・YYを生成する(図7(C))。そして、送信データ生成部13は、生成した暗号化秘密鍵YY・・・YYを格納した送信データを生成する。送信データ生成部13は、生成した送信データを通信部14に出力する。通信部14は、出力された送信データを発行サーバ20に送信する(ステップS108)。
発行サーバ20は、鍵生成装置10から送信された送信データを受信し、受信した送信データを端末装置40に送信する(ステップS109)。
端末装置40の第2通信部42は、発行サーバ20から送信された送信データを受信する。第2通信部42は、受信した送信データを端末制御部43に出力する。端末制御部43は、出力された送信データの送信元アドレスを確認し、送信元アドレスが発行サーバ20のアドレスである場合に送信データをICカード45に送信する。ICカード45の通信部452は、端末制御部43から送信された送信データを受信し、受信した送信データを制御部453に出力する。制御部453は、出力された送信データに暗号化秘密鍵YY・・・YYが含まれているため、復号部458に秘密鍵の復号を指示するとともに、送信データに含まれる暗号化秘密鍵YY・・・YYを復号部458に出力する。
端末装置40の第2通信部42は、発行サーバ20から送信された送信データを受信する。第2通信部42は、受信した送信データを端末制御部43に出力する。端末制御部43は、出力された送信データの送信元アドレスを確認し、送信元アドレスが発行サーバ20のアドレスである場合に送信データをICカード45に送信する。ICカード45の通信部452は、端末制御部43から送信された送信データを受信し、受信した送信データを制御部453に出力する。制御部453は、出力された送信データに暗号化秘密鍵YY・・・YYが含まれているため、復号部458に秘密鍵の復号を指示するとともに、送信データに含まれる暗号化秘密鍵YY・・・YYを復号部458に出力する。
復号部458は、制御部453の指示に応じて秘密鍵を復号する(ステップS110)。具体的には、復号部458は、第2のロジックのうち秘密鍵の復号方法のロジックに従って、提供アプリに格納されている派生鍵◎◎・・・◎◎を用いて、暗号化秘密鍵YY・・・YYを復号することによって秘密鍵を復元する。なお、秘密鍵の復号方法のロジックは、派生鍵を用いて、暗号化秘密鍵をどのようなアルゴリズムで復号するのか等の秘密鍵の復号までの過程を含む。
ここで、復号部458による秘密鍵の復号方法について一例を挙げて説明する。秘密鍵の復号方法のロジックが、派生鍵を用いて、暗号化秘密鍵を第2のアルゴリズムで復号するロジックである場合、復号部458は、派生鍵◎◎・・・◎◎を用いて、第2のアルゴリズムで暗号化秘密鍵YY・・・YYを復号することによって秘密鍵XX・・・XXを復元する。復号部458は、復元した秘密鍵XX・・・XXを、秘密鍵記憶部456に格納する(ステップS111)。
以上のように構成された鍵提供システム100では、秘密鍵の暗号化に用いられた鍵の秘匿性を向上させることができる。具体的には、鍵生成装置10は、秘密鍵の暗号化に用いられるマスター鍵から生成されたタネAと、識別情報とを第1ネットワーク50を介して、端末装置40に送信する。また、アプリケーション提供装置30は、秘密鍵の暗号化に用いられるマスター鍵から生成されたタネBを、第2ネットワーク60を介して、端末装置40に送信する。端末装置40は、タネAと、タネBとを用いてマスター鍵を復元し、復元したマスター鍵で識別情報を暗号化することによって、秘密鍵を暗号化した派生鍵を生成する。このように、鍵提供システム100では、マスター鍵を構成するタネAと、タネBとが別々に送信される。そのため、秘密鍵の暗号化に用いられた鍵の秘匿性を向上させることが可能になる。
また、復元された秘密鍵は、端末装置40の耐タンパ領域に格納される。これにより、秘密鍵が外部に漏れてしまう可能性が低い。そのため、秘密鍵のセキュリティを向上させることができる。
また、タネBは、アプリケーションのソースファイルに埋め込まれている。さらに、アプリケーションのコードは、コンパイルされたBINファイルとして提供される。したがって、盗聴されたとしてもタネBを特定することは困難である。そのため、タネBの漏洩に対するセキュリティが高いため、派生鍵が生成されてしまう可能性を低下させることができる。
また、タネBは、アプリケーションのソースファイルに埋め込まれている。さらに、アプリケーションのコードは、コンパイルされたBINファイルとして提供される。したがって、盗聴されたとしてもタネBを特定することは困難である。そのため、タネBの漏洩に対するセキュリティが高いため、派生鍵が生成されてしまう可能性を低下させることができる。
<変形例>
本実施形態では、ICカード45を備える端末装置40を例に説明したが、CPUを持った記憶媒体(例えば、ICカード、ICチップ付きUSBトークン等)にも適用可能である。
本実施形態では、マスター鍵□□・・□□○○・・○○を半分にしてタネA○○・・○○及びタネB□□・・□□が生成されているが、タネA、タネBは以下の基準に従って生成されてもよい。例えば、タネAが奇数byteのビット列で生成され、タネBが偶数byteのビット列で生成されてもよい。このように構成される場合、派生鍵の生成方法のロジックとして、例えばタネAのビット列と、タネBのビット列とを用いて、タネAを基準に順番(例えば、タネA、タネB,タネA、タネB,・・・)に並べることによってマスター鍵を復元するといったロジックが想定される。また、タネBが奇数番目のbyteのビット列で生成され、タネAが偶数番目のbyteのビット列で生成されてもよい。このように構成される場合、派生鍵の生成方法のロジックとして、例えばタネAのビット列と、タネBのビット列とを用いて、タネBを基準に順番(例えば、タネB,タネA、タネB,タネA,・・・)に並べることによってマスター鍵を復元するといったロジックが想定される。また、マスター鍵(nbyte)から生成されるタネは3つ以上であってもよい。また、各タネのビット列の数は、適宜設定されてもよい。
本実施形態では、ICカード45を備える端末装置40を例に説明したが、CPUを持った記憶媒体(例えば、ICカード、ICチップ付きUSBトークン等)にも適用可能である。
本実施形態では、マスター鍵□□・・□□○○・・○○を半分にしてタネA○○・・○○及びタネB□□・・□□が生成されているが、タネA、タネBは以下の基準に従って生成されてもよい。例えば、タネAが奇数byteのビット列で生成され、タネBが偶数byteのビット列で生成されてもよい。このように構成される場合、派生鍵の生成方法のロジックとして、例えばタネAのビット列と、タネBのビット列とを用いて、タネAを基準に順番(例えば、タネA、タネB,タネA、タネB,・・・)に並べることによってマスター鍵を復元するといったロジックが想定される。また、タネBが奇数番目のbyteのビット列で生成され、タネAが偶数番目のbyteのビット列で生成されてもよい。このように構成される場合、派生鍵の生成方法のロジックとして、例えばタネAのビット列と、タネBのビット列とを用いて、タネBを基準に順番(例えば、タネB,タネA、タネB,タネA,・・・)に並べることによってマスター鍵を復元するといったロジックが想定される。また、マスター鍵(nbyte)から生成されるタネは3つ以上であってもよい。また、各タネのビット列の数は、適宜設定されてもよい。
また、図5の説明では、鍵生成装置10が、タネA及び識別情報を格納した送信データの後に、暗号化秘密鍵を格納した送信データを送信する構成を示しているが、暗号化秘密鍵を格納した送信データを送信した後に、タネA及び識別情報を格納した送信データの送信が行われてもよい。このように構成される場合、端末装置40は、暗号化秘密鍵を一時的に保持しておき、タネA及び識別情報を格納した送信データが受信された場合に派生鍵の生成、秘密鍵の復号の処理が行なわれる。
また、本実施形態では、端末装置40のICカード45内において図5のステップS105〜ステップ107及びステップS110〜ステップ111の処理がなされる構成を示したが、これらの処理は端末装置40の端末制御部43において行われてもよい。このように構成される場合、復元された秘密鍵は耐タンパ領域に記憶されればどの記憶部に記憶されてもよい。
また、本実施形態では、端末装置40のICカード45内において図5のステップS105〜ステップ107及びステップS110〜ステップ111の処理がなされる構成を示したが、これらの処理は端末装置40の端末制御部43において行われてもよい。このように構成される場合、復元された秘密鍵は耐タンパ領域に記憶されればどの記憶部に記憶されてもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
10…鍵生成装置, 20…発行サーバ, 30…アプリケーション提供装置, 40…端末装置, 50…第1ネットワーク, 60…第2ネットワーク, 11…鍵生成部, 12…送信データ生成情報記憶部, 13…送信データ生成部, 14…通信部, 41…第1通信部, 42…第2通信部, 43…端末制御部, 44…装着部, 45…ICカード, 451…ICチップ, 452…通信部, 453…制御部, 454…アプリケーション記憶部, 455…アプリケーション処理部, 456…秘密鍵記憶部, 457…鍵生成部, 458…復号部
Claims (9)
- 秘密鍵の暗号化に用いられる第一の鍵から生成された複数の鍵と、ユーザを識別するための識別情報とを他の装置から取得する取得部と、
取得された前記複数の鍵と、前記識別情報とに基づいて、前記秘密鍵の暗号化に用いられた前記第一の鍵と同じ鍵である第二の鍵を生成する鍵生成部と、
を備える端末装置。 - 前記複数の鍵のうち一部の鍵は、アプリケーション内に設定されており、
前記取得部は、前記アプリケーションを取得することによって、前記複数の鍵のうち一部の鍵を取得する、請求項1に記載の端末装置。 - 前記アプリケーション内には、前記第二の鍵の生成方法に関するロジックがさらに設定されており、
前記鍵生成部は、前記ロジックに従って前記第二の鍵を生成する、請求項2に記載の端末装置。 - 前記取得部は、第一の通信網を介して前記アプリケーションを取得し、前記複数の鍵のうち一部の鍵を前記第一の通信網と異なる通信網を介して取得する、請求項2又は3に記載の端末装置。
- 前記鍵生成部は、前記複数の鍵を所定の条件に従って組み合わせることによって、前記第一の鍵を復元し、復元した前記第一の鍵を用いて、所定のアルゴリズムで前記識別情報を暗号化することによって前記第二の鍵を生成する、請求項1から4のいずれか一項に記載の端末装置。
- 生成された前記第二の鍵を用いて、暗号化された秘密鍵を復号することによって秘密鍵を復元する復号部をさらに備え、
前記復号部は、復元した前記秘密鍵を自装置内の耐タンパ領域に格納する、請求項1から5のいずれか一項に記載の端末装置。 - 秘密鍵と、前記秘密鍵の対となる鍵とを生成する鍵生成部と、
前記秘密鍵の暗号化に用いられる第一の鍵から生成された複数の鍵のうち一部の鍵及びユーザを識別するための識別情報を含む送信データを端末装置に送信する通信部と、
を備える鍵生成装置と、
前記複数の鍵と、前記識別情報とを他の装置から取得する取得部と、
取得された前記複数の鍵と、前記識別情報とに基づいて、前記秘密鍵の暗号化に用いられた前記第一の鍵と同じ鍵である第二の鍵を生成する鍵生成部と、
を備える端末装置と、
を備える鍵提供システム。 - 秘密鍵の暗号化に用いられる第一の鍵から生成された複数の鍵と、ユーザを識別するための識別情報とを他の装置から取得する取得ステップと、
取得された前記複数の鍵と、前記識別情報とに基づいて、前記秘密鍵の暗号化に用いられた前記第一の鍵と同じ鍵である第二の鍵を生成する鍵生成ステップと、
を有する鍵生成方法。 - 秘密鍵の暗号化に用いられる第一の鍵から生成された複数の鍵と、ユーザを識別するための識別情報とを他の装置から取得する取得ステップと、
取得された前記複数の鍵と、前記識別情報とに基づいて、前記秘密鍵の暗号化に用いられた前記第一の鍵と同じ鍵である第二の鍵を生成する鍵生成ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020101241A JP2020141425A (ja) | 2020-06-10 | 2020-06-10 | 端末装置、鍵提供システム、鍵生成方法及びコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020101241A JP2020141425A (ja) | 2020-06-10 | 2020-06-10 | 端末装置、鍵提供システム、鍵生成方法及びコンピュータプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016212304A Division JP6717730B2 (ja) | 2016-10-28 | 2016-10-28 | 端末装置、鍵提供システム、鍵提供方法及びコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020141425A true JP2020141425A (ja) | 2020-09-03 |
Family
ID=72265299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020101241A Pending JP2020141425A (ja) | 2020-06-10 | 2020-06-10 | 端末装置、鍵提供システム、鍵生成方法及びコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020141425A (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005064843A1 (ja) * | 2003-12-26 | 2005-07-14 | Matsushita Electric Industrial Co.,Ltd. | 素数算出装置及び方法並びに鍵発行システム |
JP2008219178A (ja) * | 2007-02-28 | 2008-09-18 | Kddi Corp | 端末装置、データ管理装置およびコンピュータプログラム |
JP2009500905A (ja) * | 2005-06-30 | 2009-01-08 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | セキュアパッチシステム |
JP2009531916A (ja) * | 2006-03-28 | 2009-09-03 | トレンド・マイクロ・(エンクリプション)・リミテッド | 電子データ通信システム |
JP2014170329A (ja) * | 2013-03-01 | 2014-09-18 | Kddi Corp | コンテンツ配信システム、装置及びプログラム |
US9432342B1 (en) * | 2011-03-08 | 2016-08-30 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
-
2020
- 2020-06-10 JP JP2020101241A patent/JP2020141425A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005064843A1 (ja) * | 2003-12-26 | 2005-07-14 | Matsushita Electric Industrial Co.,Ltd. | 素数算出装置及び方法並びに鍵発行システム |
JP2009500905A (ja) * | 2005-06-30 | 2009-01-08 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | セキュアパッチシステム |
JP2009531916A (ja) * | 2006-03-28 | 2009-09-03 | トレンド・マイクロ・(エンクリプション)・リミテッド | 電子データ通信システム |
JP2008219178A (ja) * | 2007-02-28 | 2008-09-18 | Kddi Corp | 端末装置、データ管理装置およびコンピュータプログラム |
US9432342B1 (en) * | 2011-03-08 | 2016-08-30 | Ciphercloud, Inc. | System and method to anonymize data transmitted to a destination computing device |
JP2014170329A (ja) * | 2013-03-01 | 2014-09-18 | Kddi Corp | コンテンツ配信システム、装置及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106789052B (zh) | 一种基于量子通信网络的远程密钥颁发系统及其使用方法 | |
US7095859B2 (en) | Managing private keys in a free seating environment | |
US10943020B2 (en) | Data communication system with hierarchical bus encryption system | |
US6718468B1 (en) | Method for associating a password with a secured public/private key pair | |
CA2613289A1 (en) | Generating a secret key from an asymmetric private key | |
CN110650011A (zh) | 基于量子密钥的加密存储方法和加密存储卡 | |
EP1501238B1 (en) | Method and system for key distribution comprising a step of authentication and a step of key distribution using a KEK (key encryption key) | |
CN111970114B (zh) | 文件加密方法、系统、服务器和存储介质 | |
US11431489B2 (en) | Encryption processing system and encryption processing method | |
EP3079299A1 (en) | Data processing system, encryption apparatus, decryption apparatus, and program | |
TW201426395A (zh) | 資料安全保密系統與方法 | |
JPH10271104A (ja) | 暗号化方法及び復号化方法 | |
KR102181645B1 (ko) | 데이터를 분산해서 저장하는 시스템 및 방법 | |
CN110750326A (zh) | 一种虚拟机的磁盘加解密方法以及系统 | |
JP2020141425A (ja) | 端末装置、鍵提供システム、鍵生成方法及びコンピュータプログラム | |
JP2009055428A (ja) | 情報処理装置、サーバ装置、情報処理プログラム及び方法 | |
JP6717730B2 (ja) | 端末装置、鍵提供システム、鍵提供方法及びコンピュータプログラム | |
EP4020875A1 (en) | Method, first server, second server, and system for transmitting securely a key | |
CN113411347A (zh) | 交易报文的处理方法及处理装置 | |
CN111324899A (zh) | 存储/读取数据的方法、装置及系统 | |
JP7466791B2 (ja) | 暗号化装置、復号装置、復号可能検証装置、暗号システム、暗号化方法、及び暗号化プログラム | |
CN118631453B (zh) | 一种基于sram puf的加解密系统及其加密方法、解密方法 | |
WO2004054208A1 (en) | Transferring secret information | |
WO2023181134A1 (ja) | 鍵配送システム、鍵配送方法及びプログラム | |
WO2024161590A1 (ja) | 暗号制御システム、暗号制御方法、及び、暗号制御プログラムが格納された記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200610 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210727 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220208 |