JP2005268931A - 情報セキュリティ装置及び情報セキュリティシステム - Google Patents

情報セキュリティ装置及び情報セキュリティシステム Download PDF

Info

Publication number
JP2005268931A
JP2005268931A JP2004074739A JP2004074739A JP2005268931A JP 2005268931 A JP2005268931 A JP 2005268931A JP 2004074739 A JP2004074739 A JP 2004074739A JP 2004074739 A JP2004074739 A JP 2004074739A JP 2005268931 A JP2005268931 A JP 2005268931A
Authority
JP
Japan
Prior art keywords
public key
server device
terminal
key
unit
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.)
Withdrawn
Application number
JP2004074739A
Other languages
English (en)
Inventor
Toshihisa Nakano
稔久 中野
Motoji Omori
基司 大森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004074739A priority Critical patent/JP2005268931A/ja
Priority to EP05721039A priority patent/EP1726119A1/en
Priority to PCT/JP2005/004852 priority patent/WO2005088900A1/en
Priority to US10/591,276 priority patent/US20070174618A1/en
Priority to CNA2005800155976A priority patent/CN1954544A/zh
Publication of JP2005268931A publication Critical patent/JP2005268931A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Abstract

【課題】1台の端末で複数業者のサービスを利用するのに適した情報セキュリティ装置及び情報セキュリティシステムを提供することを目的とする
【解決手段】同一の条件を有する整数の集合上で、一の演算の逆算を行うことが計算量上困難であることを利用して、情報を安全かつ確実に扱う情報セキュリティ装置であって、秘密鍵を生成する秘密鍵生成手段と、前記条件を特定するパラメータを複数取得するパラメータ取得手段と、取得した複数のパラメータによりそれぞれ決定される複数の集合上で、前記秘密鍵を用いて、複数の公開鍵を生成する公開鍵生成手段とを備えることを特徴とする。
【選択図】図1

Description

本発明は、安全かつ確実にコンテンツを送受信する技術に関する。
端末がコンテンツ配信業者のサービスを利用する場合、端末と、コンテンツ配信業者が有するサーバ装置とは、相互認証を行い、相互認証が成功した場合に安全に鍵を共有することにより安全な通信路、所謂SAC(Secure Authentication Channel)を確立し、SACを介してコンテンツを送受信する技術が特許文献1に開示されている。
特開平11‐234259号公報
近年、コンテンツ配信サービスを提供する業者が増加してきており、1台の端末で複数業者のサービスを利用する場合に対応できるシステムが要望されている。
そこで本発明は、1台の端末で複数業者のサービスを利用するのに適した情報セキュリティ装置及び情報セキュリティシステムを提供することを目的とする。
上記の目的を達成するために、本発明は、同一の条件を有する整数の集合上で、一の演算の逆算を行うことが計算量上困難であることを利用して、情報を安全かつ確実に扱う情報セキュリティ装置であって、秘密鍵を生成する秘密鍵生成手段と、前記条件を特定するパラメータを複数取得するパラメータ取得手段と、取得した複数のパラメータによりそれぞれ決定される複数の集合上で、前記秘密鍵を用いて、複数の公開鍵を生成する公開鍵生成手段とを備えることを特徴とする。
また、前記情報セキュリティ装置は、ネットワークを介して複数のサーバ装置と接続されており、前記パラメータ取得手段は、前記複数のサーバ装置から、それぞれ異なるパラメータを取得し、前記公開鍵生成手段は、前記パラメータ取得手段が取得した複数のパラメータを用いて、それぞれ異なる前記複数の公開鍵を生成することを特徴とする。
また、前記情報セキュリティ装置は、更に、前記公開鍵生成手段により生成された前記複数の公開鍵を、各公開鍵の生成に用いたパラメータの送信元であるサーバ装置へ送信する公開鍵送信手段と、前記複数のサーバ装置のそれぞれから、公開鍵及び各サーバ装置の署名を含む公開鍵証明書を取得する公開鍵証明書取得手段と、前記秘密鍵生成手段により生成された秘密鍵、及び、前記公開鍵証明書取得手段により取得された複数の公開鍵証明書を記憶する鍵記憶手段とを備えることを特徴とする
また、前記情報セキュリティ装置は、更に、前記鍵記憶手段から一の公開鍵証明書を読み出し、読み出した公開鍵証明書を含むコンテンツ要求を、前記公開鍵証明書の発行元であるサーバ装置へ送信するコンテンツ要求手段と、前記秘密鍵及び前記公開鍵証明書に含まれる公開鍵とを用いて前記サーバ装置から安全かつ確実にコンテンツを取得するコンテンツ取得手段とを備えることを特徴とする。
また、前記コンテンツ取得手段は、前記秘密鍵を用いて生成した署名データを前記サーバ装置へ送信し、前記サーバ装置から前記公開鍵を用いて認証を受け、且つ、前記サーバ装置を認証する認証部と、前記認証部による認証に成功した場合に、前記サーバ装置と安全に鍵情報を共有する鍵共有部と、前記鍵情報を用いてコンテンツを暗号化した暗号化コンテンツを、前記サーバ装置から受信する受信部と、受信した暗号化コンテンツを前記鍵情報を用いて復号する復号部とを備えることを特徴とする。
更に、上記目的を達成するための、本発明は、同一の条件を有する整数の集合上で、一の演算の逆算を行うことが計算量上困難であることを利用して、情報を安全かつ確実に扱うメモリカードであって、秘密鍵を生成する秘密鍵生成手段と、前記条件を特定するパラメータを複数取得するパラメータ取得手段と、取得した複数のパラメータによりそれぞれ決定される複数の集合上で、前記秘密鍵を用いて、複数の公開鍵を生成する公開鍵生成手段と、前記秘密鍵を、外部から解読及び改竄が不可能なセキュアな領域に記憶する秘密鍵記憶手段とを備えることを特徴とする。
また、前記メモリカードは、ネットワークを介して複数のサーバ装置と接続された端末に挿入されており、前記パラメータ取得手段は、前記端末を介して、前記複数のサーバ装置から、それぞれ異なるパラメータを取得し、前記公開鍵生成手段は、前記パラメータ取得手段が取得した複数のパラメータを用いて、それぞれ異なる前記複数の公開鍵を生成することを特徴とする。
また、前記メモリカードは、更に、前記秘密鍵及び前記複数の公開鍵を用いて、前記端末を介して、前記複数のサーバ装置それぞれから、安全かつ確実にコンテンツを取得することを特徴とする。
本発明は、同一の条件を有する整数の集合上で、一の演算の逆算を行うことが計算量上困難であることを利用して、情報を安全かつ確実に扱う情報セキュリティ装置であって、秘密鍵を生成し、前記条件を特定するパラメータを複数取得し、取得した複数のパラメータによりそれぞれ決定される複数の集合上で、前記秘密鍵を用いて、複数の公開鍵を生成することを特徴とする。
この構成によると、情報セキュリティ装置は、秘密鍵から複数個の公開鍵を生成するため、秘密鍵と公開鍵とが1対1に対応している従来の装置と比較すると、複数個の公開鍵を生成する場合に、生成、管理する鍵の数が減るという効果がある。
ここで、前記情報セキュリティ装置は、ネットワークを介して複数のサーバ装置と接続されており、前記複数のサーバ装置から、それぞれ異なるパラメータを取得し、取得した複数のパラメータを用いて、それぞれ異なる前記複数の公開鍵を生成するように構成してもよい。
この構成によると、情報セキュリティ装置は、複数のサーバ装置から、それぞれ異なるパラメータを取得することで、1個の秘密鍵から、複数個の異なる公開鍵を生成することができる。そのため、従来の装置が、通信を行うサーバ装置毎に1個の秘密鍵と1個の公開鍵とのペアを生成し、管理していたのと比較し、本発明の情報セキュリティ装置は、生成、管理する鍵の数が減るという効果がある。
ここで、前記情報セキュリティ装置は、更に、生成した前記複数の公開鍵を、各公開鍵の生成に用いたパラメータの送信元であるサーバ装置へ送信し、前記複数のサーバ装置のそれぞれから、公開鍵及び各サーバ装置の署名を含む公開鍵証明書を取得し、生成した秘密鍵、及び、取得した複数の公開鍵証明書を記憶するように構成してもよい。
この構成によると、従来の装置は、通信を行うサーバ装置毎に1個の秘密鍵と1個公開鍵とのペアを記憶していたのと比較して、本発明の情報セキュリティ装置では、鍵記憶手段が記憶する鍵の数が減るので、記憶領域が削減され、コストの節減に繋がる。
ここで、前記情報セキュリティ装置は、更に、記憶している複数の公開鍵証明書から、一の公開鍵証明書を読み出し、読み出した公開鍵証明書を含むコンテンツ要求を、前記公開鍵証明書の発行元であるサーバ装置へ送信し、前記秘密鍵及び前記公開鍵証明書に含まれる公開鍵とを用いて前記サーバ装置から安全かつ確実にコンテンツを取得するように構成してもよい。
この構成によると、情報セキュリティ装置は、記憶されている複数個の公開鍵証明書から、1個の公開鍵証明書を選ぶことで、1個の秘密鍵と選ばれた公開鍵証明書に含まれる公開鍵とを用いて、対応するサーバ装置からコンテンツをセキュアに取得することができる。
ここで、前記情報セキュリティ装置は、前記秘密鍵を用いて生成した署名データを前記サーバ装置へ送信し、前記サーバ装置から前記公開鍵を用いて認証を受け、且つ、前記サーバ装置を認証し、前記認証に成功した場合に、前記サーバ装置と安全に鍵情報を共有し、前記鍵情報を用いてコンテンツを暗号化した暗号化コンテンツを、前記サーバ装置から受信し、受信した暗号化コンテンツを、前記鍵情報を用いて復号するように構成してもよい。
この構成によると、情報セキュリティ装置は、サーバ装置と相互認証を行い、その後、安全に鍵情報を共有することにより、サーバ装置と安全な通信路を確立することができる。
ここで、前記情報セキュリティ装置内の記憶装置は、当該情報セキュリティ装置に挿入された可搬型のメモリカードであって、前記情報セキュリティ装置は、前記メモリカードに前記秘密鍵及び前記複数の公開鍵証明書を書き込み、前記メモリカードは、外部から解読及び改竄が不可能なセキュアな記憶領域を含み、前記セキュアな記憶領域に前記秘密鍵を格納するように構成してもよい。
この構成によると、情報セキュリティ装置内の記憶装置は、可搬型のメモリカードにより実現される。情報セキュリティ装置は、秘密鍵をメモリカードの耐タンパーモジュールに格納することにより、秘密鍵をセキュアに保持することができる。
ここで、前記情報セキュリティ装置は、更に、記メモリカードが当該情報セキュリティ装置に挿入されると、前記メモリカードの正当性を認証し、前記認証に失敗した場合、前記秘密鍵及び前記複数の公開鍵証明書の前記メモリカードへの書き込みを抑制するように構成してもよい。
この構成によると、情報セキュリティ装置は、メモリカードの認証に成功した場合のみ、メモリカードに秘密鍵と公開鍵証明書とを書き込むので、不正なメモリカードに秘密鍵が書き込まれることにより秘密鍵が暴露されるのを防ぐことができる。
ここで、前記情報セキュリティ装置は、楕円曲線上の離散対数問題を安全性の根拠とし、楕円曲線を構成するパラメータを複数取得し、取得した複数のパラメータごとに、前記秘密鍵に楕円曲線上の乗算を施すことにより、前記複数の公開鍵を生成するように構成してもよい。また、前記情報セキュリティ装置は、1個の秘密鍵SKを生成し、楕円曲線y2=x3+ax+bを構成するパラメータa、b、素数p、及び前記楕円曲線上の元Gの組を複数取得し、取得した複数の組ごとに、SK*G(modp)を計算することにより、前記複数の公開鍵を生成するように構成してもよい。
この構成によると、情報セキュリティ装置は、安全性の高い楕円曲線暗号を用いることで、安全かつ確実にコンテンツを取得することができる。
ここで、前記情報セキュリティ装置は、RSA暗号を安全性の根拠とし、1個の秘密鍵dを生成し、前記パラメータとして、素数の組(P、Q)を複数取得し、取得した複数の素数の組ごとに、N=PQを計算し、更に、ed≡1mod(P−1)(Q−1)から、eを計算し、前記複数の公開鍵(N、e)の組を生成するように構成してもよい。
この構成によると、情報セキュリティ装置は、公開鍵暗号方式としてRSA暗号を用いるため、本発明を、汎用のコンピュータシステムで実現することが可能である。
本発明に係る実施の形態として、情報セキュリティシステム1について説明する。情報セキュリティシステム1は、1台の端末で複数のコンテンツ配信業者が提供するサービスを利用するシステムである。
以下では、情報セキュリティシステム1について図面を参照して説明する。
<構成>
図1は、情報セキュリティシステム1の構成を示すシステム構成図である。同図に示す様に、情報セキュリティシステム1は、端末10、メモリカード20、サーバ装置30、サーバ装置40及びサーバ装置50から構成される。なお、メモリカード20は、端末10のメモリカードスロットに挿入して用いられ、端末10と、サーバ装置30、サーバ装置40及びサーバ装置50とは、ネットワーク60を介して接続されている。なお、ネットワーク60の具体例は、インターネットである。
端末10及びメモリカード20は、コンテンツ配信サービスを利用する利用者が有する装置であり、サーバ装置30、サーバ装置40及びサーバ装置50は、それぞれ異なるコンテンツ配信業者が有する装置である。コンテンツ配信業者は、利用者に対して、コンテンツ配信サービスを提供する。
なお、端末10、メモリカード20、サーバ装置30、サーバ装置40及びサーバ装置50は、コンテンツを安全かつ確実に扱う装置であるので、これらの装置を情報セキュリティ装置と呼称することもある。
1.端末10
ここでは、端末10の構成について詳細に説明する。
図2は、端末10の構成を機能的に示す機能ブロック図である。同図に示す様に、端末10は、通信部101、操作入力部102、制御部103、メモリカード入出力部104、メモリカード認証部105、CRL格納部106、公開鍵暗号処理部107、記憶部108及び再生部109から構成される。
端末10は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクドライブユニット、ネットワーク接続ユニット、MPEGデコーダ、MPEGエンコーダ及びメモリカードスロット等から構成されるコンピュータシステムである。
(1)通信部101
通信部101は、Webブラウザを備えるネットワーク接続ユニットであって、ネットワーク60を介してサーバ装置30、サーバ装置40及びサーバ装置50と接続されている。
通信部101は、サーバ装置30からネットワーク60を介して情報を受信し、受信した情報を制御部103へ出力する。また、通信部101は、制御部103から情報を受け取り、受け取った情報をネットワーク60を介してサーバ装置30へ送信する。同様に、通信部101は、サーバ装置40からネットワーク60を介して情報を受信し、受信した情報を制御部103へ出力する。また、通信部101は、制御部103から情報を受け取り、受け取った情報をネットワーク60を介してサーバ装置40へ送信する。同様に、通信部101は、サーバ装置50からネットワーク60を介して情報を受信し、受信した情報を制御部103へ出力する。また、通信部101は、制御部103から情報を受け取り、受け取った情報をネットワーク60を介してサーバ装置50へ送信する。
ここで、通信部101が各サーバ装置へ送信する情報の具体例は、サービス加入要求、サービス利用要求、各サーバ装置とのSAC確立に用いる署名データ、鍵情報などである。また、通信部101が各サーバ装置から受信する情報の具体例は、各サーバ装置とのSAC確立に用いる署名データ、鍵情報、楕円曲線のシステムパラメータ、認証及び鍵共有処理の後に各サーバ装置から送信されるコンテンツ、などである。
更に、通信部101は、ネットワーク60を介して、認証局(以下、「CA(Certification Authority)」と呼称する)と接続されており、通信部101は、CAとの間で以下のように情報の送受信を行う。
通信部101は、CAから常に最新のCRL(Certification Revocation List)を受信し、受信した最新のCRLを、制御部103を介してCRL格納部106に格納する。CRLについては後述する。
通信部101は、制御部103を介して公開鍵暗号処理部107から公開鍵「PK_0010」を受け取り、受け取った公開鍵をCAへ送信する。また、通信部101は、CAから公開鍵「PK_0010」に対応する公開鍵証明書「Cert_0010」を受信し、受信した公開鍵証明書を制御部103へ出力する。
ここで、本明細書において、「楕円曲線のシステムパラメータ」とは、楕円曲線E:y2=x3+ax+bを構成するa及びb、更に、素数p、pの位数q、楕円曲線E上の任意の点(ベースポイント)Gを指すこととする。
(2)操作入力部102
操作入力部102は、利用者からの操作を受け付けるボタンなどを備える。操作入力部102は、利用者からの操作を受け付け、受け付けた操作に対応する操作信号を生成し、生成した操作信号を制御部103へ出力する。
ここで、操作信号の具体例は、サービス加入要求を示す信号、サービス利用要求を示す信号などである。
(3)制御部103
制御部103は、マイクロプロセッサ、ROM、RAMなどから構成され、マイクロプロセッサがコンピュータプログラムを実行することにより、制御部103は、以下に示す処理を行い、端末10の全体を制御する。
(a)制御部103は、メモリカード入出力部104から、メモリカード20の挿入を検知したことを示す信号を受け取ると、メモリカード認証部105に対して、メモリカード20の認証処理を行う指示を出力する。
(b)制御部103は、メモリカード認証部105から「認証OK」を示す信号を受け取ると、CAから公開鍵証明書の発行を受ける。より具体的には、制御部103は、公開鍵暗号処理部107から出力される公開鍵「PK_0010」と予め内部に記憶している自身のデバイスID「ID_0010」とを、通信部101を介してCAへ送信する。制御部103は、通信部101を介して公開鍵「PK_0010」に対応する公開鍵証明書「Cert_0010」をCAから受信し、受信した公開鍵証明書を、メモリカード入出力部104を介してメモリカード20へ出力する。
(c)制御部103は、操作入力部102から操作信号を受け取り、受け取った操作信号に応じた処理を行う。
例えば、制御部103は、操作入力部102から、サーバ装置30、サーバ装置40、又はサーバ装置50へのサービス加入要求を示す操作信号を受け取ると、メモリカード入出力部104に対して、メモリカード20から公開鍵証明書「Cert_0010」を読み出す指示を出力し、更に、要求に対応するサーバ装置とSACを確立し、サービス加入処理を行う指示を、公開鍵暗号処理部107に出力する。
また、制御部103は、操作入力部102から、サーバ装置30、サーバ装置40又はサーバ装置50へのサービス利用要求を示す操作信号を受け取ると、メモリカード入出力部104に対して、メモリカード20から、サービス用秘密鍵SK及び要求に対応するサーバ装置から受け取った公開鍵証明書を読み出す指示を出力し、更に、対応するサーバ装置とSACを確立して、コンテンツを取得する指示を、公開鍵暗号処理部107に出力する。
(d)また、制御部103は、端末10とサーバ装置30、サーバ装置40、又はサーバ装置50とがSACを確立した後、各サーバ装置との間で情報を送受信する際に、公開鍵暗号処理部107からセッション鍵を受け取り、受け取ったセッション鍵を暗号鍵又は復号鍵として用い、情報を暗号化してサーバ装置へ送信したり、サーバ装置から受信する暗号化された情報を復号したりする。
(4)メモリカード入出力部104
メモリカード入出力部104は、メモリカードスロットを含み、メモリカードスロットに、メモリカード20が挿入されたことを検知すると、その旨を示す信号を制御部103へ出力する。また、メモリカード入出力部104は、メモリカード20が挿入されている状態において、制御部103とメモリカード20との間で情報の入出力を行う。
(5)メモリカード認証部105
メモリカード認証部105は、マイクロプロセッサ、ROM、RAMなどから構成され、前記ROM又は前記RAMには、図3(a)に示すパスワードテーブル120が格納されている。
パスワードテーブル120は1以上のパスワード情報を含み、各パスワード情報は、メモリカード番号と認証用パスワードとを含む。メモリカード番号は、端末10に挿入して使用可能であるメモリカードを識別するための情報である。認証用パスワードは、対応付けられているメモリカード番号により識別されるメモリカードと端末10とが共有している情報であり、メモリカードの認証に用いられる256ビットデータである。
メモリカード認証部105は、制御部103から、メモリカード20がメモリカード入出力部104に挿入されたことを示す信号を受け取ると、パスワードテーブル120からメモリカード20に対応したパスワード情報121を読み出し、更に、パスワード情報121から認証用パスワードPW_0を読み出す。また、メモリカード認証部105は、56ビットの乱数R_0を生成する。
メモリカード認証部105は、生成した乱数R_0を、制御部103及びメモリカード入出力部104を介してメモリカード20へ出力すると共に、乱数R_0を暗号鍵として用い、認証用パスワードPW_0に暗号アルゴリズムEを施して暗号文E1を生成し、生成した暗号文E1を記憶する。なお、ここで用いられる暗号アルゴリズムEの一例はDES(Data Encryption Standard)である。
メモリカード認証部105は、制御部103及びメモリカード入出力部104を介してメモリカード20から暗号文E2を受け取ると、受け取った暗号文E2と記憶している暗号文E1とを比較する。E1とE2とが一致する場合、メモリカード認証部105は、「認証OK」を示す信号を制御部103へ出力し、E1とE2とが一致しない場合、メモリカード認証部105は、「認証NG」を示す信号を制御部103へ出力する。
(6)CRL格納部106
CRL格納部106は、RAMで構成され、内部にCRLを格納している。CRLは、不正を行った機器や、秘密鍵が暴露された機器など、無効化された機器のIDが登録されたリストである。
CRLは、CAにより管理されており、端末10は、ネットワーク60を介してCAからCRLを受信してCRL格納部106に格納する。ここで、端末10は、CAから常に最新のCRLを受信し、受信した最新のCRLをそれまで格納していたCRLに替えて、CRL格納部106に格納する。なお、以下では、CRL格納部106は、最新のCRLとして、図3(b)に示すCRL130を格納しているものとする。
また、CRLについては、「American National Standards Institute, American National Standard for financial Services,ANSX9.57:Public Key Cryptography For the Financial Industry: Certificate Management,1997.」に詳しく開示されている。
(7)公開鍵暗号処理部107
公開鍵暗号処理部107は、マイクロプロセッサ、ROM、RAM、乱数生成器などから構成される。
公開鍵暗号処理部107は、端末10がサーバ装置30、サーバ装置40及びサーバ装置50に対してサービス加入要求を行うとき、各サーバ装置との間でSACを確立する処理を行う。また、公開鍵暗号処理部107は、端末10がサーバ装置30、サーバ装置40及びサーバ装置50に対してサービス利用要求を行うとき、各サーバ装置との間でSACを確立する処理を行う。なお、ここで用いられる公開鍵暗号は、楕円曲線暗号及びRSA暗号である。
(楕円曲線上の離散対数問題)
ここでは、先ず、楕円曲線暗号の安全性の根拠として用いられる楕円曲線上の離散対数問題について簡単に説明する。
楕円曲線上の離散対数問題とは、E(GF(p))を有限体GF(p)上で定義された楕円曲線とし、楕円曲線Eの位数が大きな素数で割り切れる場合に、楕円曲線Eに含まれる元Gをベースポイントとする。このとき、楕円曲線Eに与えられた元Yに対して、
Y=x*G
となる整数xが存在するならば、xを求めよ、という問題である。
ここで、pは素数、GF(p)はp個の元を持つ有限体である。また、この明細書において、記号「*」は、楕円曲線に含まれる元を複数回加算する演算を示し、x*Gは、次式に示すように、楕円曲線に含まれる元Gをx回加算することを意味する。
x*G=G+G+G+・・・+G
離散対数問題を公開鍵暗号の安全性の根拠とするのは、多くの元を有する有限体GF(p)に対して、上記問題は極めて難しいからである。
なお、離散対数問題については、ニイルコブリッツ著 ”ア コウス イン ナンバア セオリイ アンド クリプトグラヒイ”(Neal Koblitz , " A Course in Number theory and Cryptography", Springer-Verlag,1987)に詳しく述べられている。
(楕円曲線の演算公式についての説明)
次に、楕円曲線の演算公式について、以下に説明する。
楕円曲線の方程式を
2=x3+ax+bとし、
任意の点Pの座標を(x1,y1)とし、任意の点Qの座標を(x2,y2)とする。ここで、R=P+Qで定まる点Rの座標を(x3,y3)とする。
P≠Qの場合、R=P+Qは、加算の演算となる。加算の公式を以下に示す。
x3={(y2−y1)/(x2−x1)}2−x1−x2
y3={(y2−y1)/(x2−x1)}(x1−x3)−y1
P=Qの場合、R=P+Q=P+P=2×Pとなり、R=P+Qは、2倍算の演算となる。2倍算の公式を以下に示す。
x3={(3x12+a)/2y12−2x1
y3={(3x12+a)/2y1}(x1−x3)−y1
なお、上記演算は、楕円曲線が定義される有限体上での演算である。また、楕円曲線の演算公式については、"Efficient elliptic curve exponentiation"(Miyaji, Ono, and Cohen著、Advances in cryptology-proceedings of ICICS'97, Lecture notes in computer science, 1997, Springer-verlag, 282-290.)に詳しく説明されている。
(サービス加入要求)
ここでは、端末10が、サーバ装置30に対してサービスへの加入を要求するときの公開鍵暗号処理部107について説明する。公開鍵暗号処理部107は、制御部103から乱数R_0010を受け取り、内部に記憶する。乱数R_0010は端末10自身の秘密鍵であり、SAC確立処理に用いられる。なお、乱数R_0010は、メモリカード20のセキュア領域に格納されており、制御部103がメモリカード入出力部104を介して読み出したものである。公開鍵暗号処理部107は、公開鍵暗号のアルゴリズムとしてRSA暗号を用い、サーバ装置30とSACを確立する。詳細については後述する。公開鍵暗号処理部107は、サーバ装置30との間で確立されたSACを用い、ネットワーク60、通信部101及び制御部103を介して、サーバ装置30から、楕円曲線のシステムパラメータ「a1、b1、p1、q1、及び、G1」を受け取る。
具体例として、a1=−3
1=16461
1=20011
1=20023
1=(1,7553)
とする。
更に、公開鍵暗号処理部107は、サービス用秘密鍵SKを生成する。公開鍵暗号処理部107は、生成したサービス用秘密鍵SKとシステムパラメータとを用いて、公開鍵PK_A=SK*G1(mod p1)を算出する。公開鍵暗号処理部107は、生成したSKを、制御部103及びメモリカード入出力部104を介してメモリカード20に格納し、算出した公開鍵PK_Aを、サーバ装置30との間で確立されたSACを用い、制御部103、通信部101及びネットワーク60を介してサーバ装置30へ送信する。
次に、端末10が、サーバ装置40に対してサービスへの加入を要求するときの公開鍵暗号処理部107について説明する。公開鍵暗号処理部107は、制御部103から端末10自身の秘密鍵である乱数R_0010を受け取り、RSA暗号を用いて、サーバ装置40とSACを確立する。SACを確立すると、公開鍵暗号処理部107は、制御部103からサービス用秘密鍵SKを受け取り、また、サーバ装置40との間で確立されたSACを用い、ネットワーク60、通信部101及び制御部103を介して、サーバ装置40から楕円曲線のシステムパラメータ「a2、b2、p2、q2、及び、G2」を受け取る。
具体例として、a2=−3
2=16461
2=20011
2=20023
2=(18892,5928)
とする。公開鍵暗号処理部107は、受け取ったSKとシステムパラメータとから公開鍵PK_B=SK*G2(mod p2)を算出し、算出した公開鍵PK_Bを、サーバ装置40との間で確立したSACを用い、制御部103、通信部101及びネットワーク60を介してサーバ装置40へ送信する。
次に、端末10が、サーバ装置50に対してサービスへの加入を要求するときの公開鍵暗号処理部107について説明する。公開鍵暗号処理部107は、制御部103から端末10自身の秘密鍵である乱数R_0010を受け取り、RSA暗号を用いて、サーバ装置50とSACを確立する。SACを確立すると、公開鍵暗号処理部107は、制御部103からSKを受け取り、また、サーバ装置50と確立したSACを用いて、ネットワーク60、通信部101及び制御部103を介して、サーバ装置50から楕円曲線のシステムパラメータ「a3、b3、p3、q3、及び、G3」を受け取る。
具体例として、a3=−3
3=16461
3=20011
3=20023
3=(8898,13258)
とする。公開鍵暗号処理部107は、SKとシステムパラメータとを用いて、公開鍵PK_C=SK*G3(mod p3)を算出し、算出した公開鍵PK_Cを、サーバ装置50との間で確立したSACを用いて、制御部103、通信部101及びネットワーク60を介してサーバ装置50へ送信する。
上記の様に、端末10は、サーバ装置30に対するサービス加入要求時に生成した1個のサービス用秘密鍵SKと、各サーバ装置から受信したシステムパラメータとを用いて、各サーバ装置に対応する3個の公開鍵PK_A、PK_B、PK_Cを生成する。ここで、各サーバ装置から受信したシステムパラメータの内、ベースポイントG1、G2、G3は、それぞれ異なるため、生成される3個の公開鍵は互いに異なる。
(サービス利用要求)
ここでは、端末10が、サーバ装置30に対してサービスの利用を要求するときの公開鍵暗号処理部107について説明する。公開鍵暗号処理部107は、制御部103からSK、Cert_A及びPK_30を受け取り、公開鍵暗号のアルゴリズムとして楕円曲線暗号を用いて、サーバ装置30とSACを確立する。なお、SKは、端末10のサービス用秘密鍵であり、メモリカード20のセキュア領域に格納されている。Cert_Aは、図12(a)に示す様に、サーバ装置30から端末10へ発行された公開鍵証明書であり、端末10が、サーバ装置30に対して公開している公開鍵PK_A、サーバ装置30による署名データなどを含む。なお、Cert_Aは、メモリカード20の公開鍵格納領域204c格納されている。PK_30は、サーバ装置30の公開鍵であり、記憶部108に格納されている。SAC確立処理の詳細は後述する。
次に、端末10が、サーバ装置40に対してサービスの利用を要求するときの公開鍵暗号処理部107について説明する。公開鍵暗号処理部107は、制御部103からSK、Cert_B及びPK_40を受け取り、公開鍵暗号のアルゴリズムとして楕円曲線暗号を用いて、サーバ装置40とSACを確立する。Cert_Bは、図12(b)に示す様に、サーバ装置40から端末10へ発行された公開鍵証明書であり、端末10がサーバ装置40に対して公開している公開鍵PK_B、サーバ装置40による署名データなどを含む。Cert_Bは、メモリカード20の公開鍵格納領域204cに格納されている。PK_40は、サーバ装置40の公開鍵であり、記憶部108に格納されている。
次に、端末10が、サーバ装置50に対してサービスの利用を要求するときの公開鍵暗号処理部107について説明する。公開鍵暗号処理部107は、制御部103からSK、Cert_C及びPK_50を受け取り、公開鍵暗号のアルゴリズムとして楕円曲線暗号を用いて、サーバ装置50とSACを確立する。Cert_Cは、図12(c)に示す様に、サーバ装置50から端末10へ発行された公開鍵証明書であり、端末10がサーバ装置50に対して公開している公開鍵PK_C、サーバ装置50による署名データなどを含む。Cert_Cは、メモリカード20の公開鍵格納領域204cに格納されている。PK_50は、サーバ装置50の公開鍵であり、記憶部108に格納されている。
(8)記憶部108
記憶部108は、制御部103から公開鍵PK_30、PK_40及びPK_50を受け取り、受け取った各公開鍵を記憶する。PK_30は、サーバ装置30の公開鍵であり、PK_40は、サーバ装置40の公開鍵であり、PK_50は、サーバ装置50の公開鍵である。
(9)再生部109
再生部109は、オーディオデコーダ、ビデオデコーダ、バッファ等を備える。図2に示す様に、再生部109は外部の出力装置と接続されており、デコードしたコンテンツを出力装置へ出力する。なお、出力装置は、具体的には、モニタ及びスピーカである。
2.メモリカード20
メモリカード20は、記録媒体にフラッシュメモリを用いたカード型メモリである。図4は、メモリカード20の構成を機能的に示す機能ブロック図である。同図に示す様に、メモリカード20は、入出力部201、メモリ制御部202、認証部203及びメモリ204から構成される。
(1)入出力部201
入出力部201は、複数のピン端子を含み、メモリカード20が端末10のメモリカード入出力部104に挿入された状態において、前記複数のピン端子により、端末10のメモリカード入出力部104から受信したデータをメモリ制御部202へ出力し、メモリ制御部202から受け取ったデータをメモリカード入出力部104へ出力する。
一例として、入出力部201は、メモリカード20が端末10に挿入されると、メモリ制御部202を介して認証部203が記憶しているメモリカード番号「20」を受け取り、受け取ったメモリカード番号「20」をメモリカード入出力部104へ出力する。その他、入出力部201が送受信するデータは、後述する情報セキュリティシステム1の動作の説明において順次説明する。
(2)メモリ制御部202
メモリ制御部202は、入出力部201を介して端末10から受け取る指示に従い、メモリ204からデータを読み出し、読み出したデータを入出力部201を介して端末10へ送信する。また、メモリ制御部202は、入出力部201を介して端末10からデータを受信し、受信したデータをメモリ204に格納する。
メモリ制御部202は、入出力部201を介して端末10から乱数R_0を受信し、受信した乱数R_0を認証部203へ出力する。また、メモリ制御部202は、認証部203から暗号文E2を受け取り、受け取ったE2を入出力部201を介して端末10へ出力する。
(3)認証部203
認証部203は、マイクロプロセッサ、ROM、RAMなどを備える。ROM又はRAMには、認証用プログラムが記憶されており、マイクロプロセッサにより前記認証用プログラムが実行される。なお、ROMには予めメモリカード番号「20」と認証用パスワード「PW_0」とが記憶されている。メモリカード番号「20」は、メモリカード20を識別するための番号である。PW_0は、端末10と共有している秘密のデータであって、端末10のメモリカード認証部105との間で行われるチャレンジ‐レスポンス型の認証処理に用いられる。
認証部203は、入出力部201を介して、端末10から乱数R_0を受信し、受信した乱数R_0を暗号鍵として用い、認証用パスワードPW_0に暗号アルゴリズムEを施して暗号文E2を生成する。認証部203は、生成した暗号文E2を、メモリ制御部202及び入出力部201を介して端末10へ送信する。
なお、ここで用いられる暗号アルゴリズムEの一例は、DESである。
(4)メモリ204
メモリ204は、具体的にはEEPROMなどから構成される記憶装置であって、セキュア領域204aと、コンテンツ格納領域204bと、公開鍵格納領域204cとを備える。
セキュア領域204aは、内部解析、改竄が物理的及び理論的に不可能な耐タンパー性を有する記憶領域である。セキュア領域204aは、端末10の秘密鍵であるR_0010と、サービス用秘密鍵SKとを内部に格納する。なお、メモリ204全体の記憶容量に対して、セキュア領域204aの記憶容量は微小なサイズである。
コンテンツ格納領域204bは、端末10が、サーバ装置30、サーバ装置40及びサーバ装置50から取得したコンテンツを格納する。
公開鍵格納領域204cは、CAから取得する公開鍵証明書Cert_0010、及び、サーバ装置30から取得する公開鍵証明書Cert_Aと、サーバ装置40から取得する公開鍵証明書Cert_Bと、サーバ装置50から取得する公開鍵証明書Cert_Cとを内部に格納する。
3.サーバ装置30
サーバ装置30は、コンテンツ配信業者が有する装置であり、ネットワーク60を介して接続された端末10からサービス加入要求を受け付けると、端末10を登録する。また、サーバ装置30は、登録済みである端末10からサービス利用要求を受け付けると、端末10にコンテンツを提供する。
図5は、サーバ装置30の構成を機能的に示す機能ブロック図である。同図に示す様に、サーバ装置30は、通信部301、制御部302、CRL格納部303、Cert管理部304、登録情報管理部305、公開鍵暗号処理部306及びコンテンツ格納部307から構成される。
サーバ装置30は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット等から構成されるコンピュータシステムである。
(1)通信部301
通信部301は、Webブラウザを備えるネットワーク接続ユニットであって、ネットワーク60を介して端末10と接続されている。
通信部301は、端末10から情報を受信し、受信した情報を制御部302へ出力する。また、通信部301は、制御部302から情報を受け取り、受け取った情報を端末10へ送信する。
通信部301が端末10から受信する情報の具体例は、公開鍵PK_A、SAC確立に用いる署名データ及び鍵情報などである。通信部301が端末10へ送信する情報の具体例は、公開鍵証明書Cert_A、SAC確立に用いる署名データ、鍵情報、楕円曲線のシステムパラメータ、コンテンツなどである。
更に、通信部301は、ネットワーク60を介して、CAと接続されており、通信部301は、CAとの間で以下の様に情報の送受信を行う。
通信部301は、ネットワーク60を介してCAから常に最新のCRLを受信し、受信した最新のCRLを、制御部302を介してCRL格納部303に格納する。
通信部301は、制御部302を介して公開鍵暗号処理部306から公開鍵「PK_0030」を受け取り、受け取った公開鍵をネットワーク60を介してCAへ送信する。また、通信部301は、ネットワーク60を介してCAから公開鍵「PK_0030」に対応する公開鍵証明書「Cert_0030」を受信し、受信した公開鍵証明書を制御部302へ出力する。
通信部301は、ネットワーク60を介してCAから楕円曲線のシステムパラメータを取得し、取得したシステムパラメータを制御部302へ出力する。
(2)制御部302
制御部302は、マイクロプロセッサ、ROM、RAMなどから構成され、コンピュータプログラムをマイクロプロセッサが実行することにより、制御部302は、サーバ装置30の全体を制御する。
(a)制御部302は、端末10との通信に先立ち、CAから公開鍵証明書の発行を受ける。より具体的には、通信部301は、公開鍵暗号処理部306から出力される公開鍵「PK_0030」と予め内部に記憶している自身のデバイスID「ID_0030」とを、通信部301を介してCAへ送信する。制御部302は、通信部301を介して公開鍵「PK_0030」に対応する公開鍵証明書「Cert_0030」をCAから受信し、受信した公開鍵証明書を、Cert管理部304に出力する。
(b)制御部302は、端末10からサービス加入要求を受け付けると、Cert管理部304から「Cert_0030」を読み出す。更に、制御部302は、端末10とSACを確立する指示を公開鍵暗号処理部306に出力する。端末10との間でSACが確立されると、制御部302は、CAから取得した楕円曲線のシステムパラメータ「a1、b1、p1、q1、及び、G1」を、公開鍵暗号処理部306から受け取るセッション鍵で暗号化したのち、通信部301及びネットワーク60を介して端末10へ送信する。
具体的に、サーバ装置30が受信するシステムパラメータは、
1=−3
1=16461
1=20011
1=20023
1=(1,7553)
であるとする。
(c)SAC確立処理の一環として、CRL格納部303から最新のCRLを読み、認証相手である端末10が、無効化された装置であるか否かを判断する。
(d)制御部302は、端末10からCert_Aを含むサービス利用要求を受け取ると、Cert_Aが確かにサーバ装置30自身が端末10へ発行した公開鍵証明書であるか否か判定する。このとき、制御部302は、登録情報管理部305に管理されている登録情報を参照する。端末10から受信したCert_Aが正しければ、制御部302は、公開鍵暗号処理部306へ、SAC確立処理の指示を出す。
(e)制御部302は、サーバ装置30と端末10とがSACを確立した後、端末10との間で情報を送受信する際に、公開鍵暗号処理部306からセッション鍵を受け取り、受け取ったセッション鍵を暗号鍵又は復号鍵として用い、情報を暗号化して端末10へ送信したり、端末10から受信する暗号化された情報を復号したりする。具体例として、制御部302は、サービス提供時の処理として、端末10とSACを確立した後、公開鍵暗号処理部306からセッション鍵を受け取り、コンテンツ格納部307からコンテンツを読み出す。制御部302は、読み出したコンテンツをセッション鍵で暗号化して暗号化コンテンツを生成し、生成した暗号化コンテンツを、通信部301を介して端末10へ送信する。
(3)CRL格納部303
CRL格納部303は、RAMで構成され、内部にCRLを格納している。CRLは、不正を行った機器や、秘密鍵が暴露された機器など、無効化された機器のIDが登録されたリストである。CRLは、ネットワーク60を介してCAからサーバ装置30へ送信される。ここで、サーバ装置30は、CAから常に最新のCRLを受信し、受信した最新のCRLをそれまで格納していたCRLに替えて、CRL格納部303に格納する。なお、以下では、CRL格納部303は、端末10のCRL格納部106と同様に最新のCRLとして、図3(b)に示すCRL130を格納しているものとする。
(4)Cert管理部304
Cert管理部304は、通信部301及び制御部302を介してCAから公開鍵証明書Cert_0030を受け取り、受け取ったCert_0030を内部に格納する。
(5)登録情報管理部305
登録情報管理部305は、公開鍵暗号処理部306により公開鍵証明書が発行された端末の登録情報を管理する。登録情報は、登録された端末の公開鍵や端末に割り振った会員番号、ユーザに関する情報などを含み、登録され端末及びユーザの管理に用いられる。また、登録情報は、制御部302が端末10から送信されたCertを検証するときに用いられる。
(6)公開鍵暗号処理部306
公開鍵暗号処理部306は、マイクロプロセッサ、ROM、RAM、乱数生成器等から構成される。
公開鍵暗号処理部306は、端末10との通信に先立ち、乱数生成器で乱数R_0030を生成し、生成したR_0030に基づき、公開鍵PK_0030を生成する。公開鍵暗号処理部306は、生成した公開鍵PK_0030を制御部302、通信部301を介してCAへ送信する。
(端末10の登録)
公開鍵暗号処理部306は、秘密鍵KS_30を生成し、制御部302から楕円曲線のシステムパラメータを受け取る。公開鍵暗号処理部306は、秘密鍵KS_30とシステムパラメータとから、KP_30=KS_30*G1(mod p1)を計算し、公開鍵KP_30を生成する。公開鍵暗号処理部306は、生成した公開鍵KP_30を、制御部302へ出力する。
公開鍵暗号処理部306は、サービス加入、登録処理において、端末10から公開鍵PK_Aを受け取ると、受け取った公開鍵PK_Aに基づき、公開鍵証明書Cert_Aを生成し、生成したCert_Aを制御部302へ出力する。
(端末10へサービス提供)
公開鍵暗号処理部306は、制御部302からSAC確立処理の指示を受けると、端末10とSACを確立しセッション鍵を生成する。SAC確立の詳細については後述する。
(7)コンテンツ格納部307
コンテンツ格納部307は、具体的にはハードディスクドライブユニットであって、内部にコンテンツを格納している。
4.サーバ装置40
サーバ装置40は、サーバ装置30を有するコンテンツ配信業者とは異なるコンテンツ配信業者が有する装置である。サーバ装置40は、ネットワーク60を介して接続された端末10からサービス加入要求を受け付けると、端末10を登録する。また、サーバ装置40は、内部にコンテンツを格納しており、登録済みである端末10からサービス利用要求を受け付けると、端末10にコンテンツを提供する。
サーバ装置40は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット等から構成されるコンピュータシステムである。サーバ装置40は、図5に示したサーバ装置30と同様の構成を有するため、サーバ装置40の構成は図示していない。以下では、サーバ装置30と異なる部分を中心に、サーバ装置40について説明する。
(a)サーバ装置40は、端末10との通信に先立ち、公開鍵PK_0040を生成し、PK_0040をCAに送信し、CAから公開鍵証明書Cert_0040の発行を受ける。図9(c)に示す公開鍵証明書160は、Cert_0040のデータ構成を示す図である。CAから取得したCert_0040は、端末10とSACを確立する処理に用いられる。
(b)サーバ装置40は、CAから楕円曲線のシステムパラメータを受信する。ここで、サーバ装置40が受信するシステムパラメータの組は、サーバ装置40にユニークであるとする。
具体的に、サーバ装置40が受信するシステムパラメータは、
2=−3
2=16461
2=20011
2=20023
2=(18892,5928)
であるとする。
サーバ装置40は、秘密鍵KS_40を生成し、生成したKS_40とCAから受信したシステムパラメータとから、楕円曲線上の計算により、KP_40=KS_40*G2(mod p2)を算出し、公開鍵KP_40を生成する。
サーバ装置40は、端末10とSACを確立した後、CAから受信したシステムパラメータと、生成した公開鍵KP_40とを、端末10へ送信する。
(c)サーバ装置40は、端末10から公開鍵PK_Bを受信し、受信した公開鍵PK_Bに対して、公開鍵証明書Cert_Bを発行する。図12(b)に示した公開鍵証明書220は、Cert_Bのデータ構成を示す図である。
(d)サーバ装置40は、端末10から公開鍵証明書Cert_Bを含むサービス利用要求を受信すると、Cert_Bを検証する。Cert_Bの検証に成功すると、サーバ装置40は、端末10とSACを確立し、端末10へコンテンツを送信する。
5.サーバ装置50
サーバ装置50は、サーバ装置30を有するコンテンツ配信業者、及び、サーバ装置40を有するコンテンツ配信業者とは異なるコンテンツ配信業者が有する装置である。サーバ装置50は、ネットワーク60を介して接続された端末10からサービス加入要求を受け付けると、端末10を登録する。また、サーバ装置50は、内部にコンテンツを格納しており、登録済みである端末10からサービス利用要求を受け付けると、端末10にコンテンツを提供する。
サーバ装置50は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット等から構成されるコンピュータシステムである。サーバ装置50は、図5に示したサーバ装置30と同様の構成を有するため、サーバ装置50の構成は図示していない。以下では、サーバ装置30及びサーバ装置40と異なる部分を中心に、サーバ装置50について説明する。
(a)サーバ装置50は、端末10との通信に先立ち、公開鍵PK_0050を生成し、PK_0050をCAに送信し、CAから公開鍵証明書Cert_0050の発行を受ける。図9(d)に示す公開鍵証明書170は、Cert_0050のデータ構成を示す図である。CAから取得したCert_0050は、端末10とSACを確立する処理に用いられる。
(b)サーバ装置50は、CAから楕円曲線のシステムパラメータを受信する。ここで、サーバ装置50が受信するシステムパラメータの組は、サーバ装置50にユニークであるとする。
具体的に、サーバ装置50が受信するシステムパラメータは、
3=−3
3=16461
3=20011
3=20023
3=(8898、13258)
であるとする。
サーバ装置50は、秘密鍵KS_50を生成し、生成したKS_50とCAから受信したシステムパラメータとから、楕円曲線上の計算により、KP_50=KS_50*G3(mod p3)を算出し、公開鍵KP_50を生成する。
サーバ装置50は、端末10とSACを確立した後、CAから受信したシステムパラメータと、生成した公開鍵KP_50とを、端末10へ送信する。
(c)サーバ装置50は、端末10から公開鍵PK_Cを受信し、受信した公開鍵PK_Cに対して、公開鍵証明書Cert_Cを発行する。図12(c)に示した公開鍵証明書230は、Cert_Cのデータ構成を示す図である。
(d)サーバ装置50は、端末10から公開鍵証明書Cert_Cを含むサービス利用要求を受信すると、Cert_Cを検証する。Cert_Cの検証に成功すると、サーバ装置50は、端末10とSACを確立し、端末10へコンテンツを送信する。
<動作>
ここでは、フローチャートを用いて、情報セキュリティシステム1の動作について説明する。
(1)全体の動作1(サービス加入、登録時)
図6及び図15は、情報セキュリティシステム1全体の動作を示すフローチャートである。図6は「サービス加入、登録時」における情報セキュリティシステム1の動作を示し、図15は「サービス利用時」における情報セキュリティシステム1の動作を示す。
先ず、メモリカード20が端末10のメモリカード入出力部104に挿入されると(ステップS101)、端末10は、メモリカード20を認証する(ステップS102)。端末10は、メモリカード20の認証に失敗すると(ステップS103でNG)、処理を終了する。端末10は、メモリカード20の認証に成功すると(ステップS103でOK)、CAから公開鍵証明書の発行を受ける(ステップS104)。
サーバ装置30は、予め、CAから公開鍵証明書の発行を受ける(ステップS105)。同様に、サーバ装置40は、予め、CAから公開鍵証明書の発行を受ける(ステップS106)。同様に、サーバ装置50は、予め、CAから公開鍵証明書の発行を受ける(ステップS107)。
続いて、端末10及びサーバ装置30は、サービス加入、登録処理を行う(ステップS108)。次に、端末10とサーバ装置40は、サービス加入、登録処理を行う(ステップS109)。次に、端末10とサーバ装置50は、サービス加入、登録処理を行う(ステップS110)。
以上が「サービス加入、登録時」における処理である。
以下、図15に続くが、ここでは、説明の便宜上、図7以降のフローチャートを用いて、サービス加入、登録時における処理の詳細について先に説明し、その後、図15について説明する。
(2)メモリカード20の認証処理
ここでは、図7に示すフローチャートを用いてメモリカード20の認証処理について説明する。なお、ここで説明する動作は、図6のステップS102の詳細である。
端末10のメモリカード入出力部104に、メモリカード20が挿入されている状態において、端末10のメモリカード認証部105は、乱数R_0を生成し(ステップS201)、生成した乱数R_0を内部に保持すると共に、メモリカード入出力部104を介してメモリカード20へ送信し、メモリカード20は乱数R_0を受信する(ステップS202)。
メモリカード20の認証部203は、入出力部201及びメモリ制御部202を介して乱数R_0を受け取ると、R_0を暗号鍵として用い、内部に保持している認証用パスワードPW_0に暗号アルゴリズムEを施して暗号文E2を生成する(ステップS203)。一方、メモリカード認証部105は、ステップS201で生成した乱数R_0を暗号鍵として用い、メモリカード20と共有している認証用パスワードPW_0に暗号アルゴリズムEを施して暗号文E1を生成する(ステップS204)。
メモリカード20の認証部203は、ステップS203で生成した暗号文E2を端末10へ送信し、端末10は、暗号文E2を受信する(ステップS205)。端末10のメモリカード認証部105は、メモリカード入出力部104及び制御部103を介して暗号文E2を受け取ると、受け取った暗号文E2と、ステップS204で生成した暗号文E1とを比較する(ステップS206)。
暗号文E1と暗号文E2とが一致する場合(ステップS207でYES)、端末10はメモリカード20の認証に成功であり、メモリカード認証部105は、制御部103へ「認証OK」を示す信号を出力する(ステップS208)。次に、端末10は、図6のステップS103に戻り処理を続ける。
暗号文E1と暗号文E2とが一致しない場合(ステップS207でNO)、端末10は、メモリカード20の認証に失敗であり、メモリカード認証部105は、制御部103へ「認証NG」を示す信号を出力する(ステップS209)。次に、端末10は、図6のステップS103に戻り処理を続ける。
(3)CAから公開鍵証明書(Cert)の発行を受ける処理
ここでは、図8に示すフローチャートを用いて、端末10、サーバ装置30、サーバ装置40及びサーバ装置50が、CAから公開鍵証明書の発行を受ける処理について説明する。なお、ここで説明する動作は、図6のステップS104、ステップS105、ステップS106及びステップS107の詳細である。
端末10、サーバ装置30、サーバ装置40及びサーバ装置50の公開鍵暗号処理部は、それぞれ乱数生成器により乱数R_Lを生成し(ステップS301)、更に、生成した乱数R_Lから公開鍵PK_Lを生成する(ステップS302)。ここで、端末10は、L=0010、サーバ装置30は、L=0030、サーバ装置40は、L=0040、サーバ装置50は、L=0050である。なお、乱数R_Lから公開鍵PK_Lを生成するアルゴリズムは限定しない。一例としては、RSA暗号である。
端末10、サーバ装置30、サーバ装置40及びサーバ装置50の公開鍵暗号処理部は、生成した公開鍵PK_Lを制御部へ出力する。制御部は、公開鍵PK_Lと、内部に記憶している自身のデバイスIDとを含む情報を、通信部を介してCAに送信し、CAは、公開鍵PK_LとデバイスIDとを含む情報を受信する(ステップS303)。
CAは、ステップS303で受信した情報の送信元(公開鍵証明書の依頼元)について、公開鍵、メールアドレス、ユーザ、ユーザが属する組織などが確かに存在し、且つ、正しいことを検証する(ステップS304)。
依頼元が不正な場合(ステップS305でNO)、CAは、処理を終了する。
依頼元が正当な場合(ステップS305でYES)、CAは、受信した公開鍵PK_L及びデバイスIDに署名データSig_LCAを付加し、公開鍵証明書Cert_Lを生成する(ステップS306)。CAは、生成した公開鍵証明書Cert_Lを依頼元の端末10、サーバ装置30、サーバ装置40及びサーバ装置50へ送信し、端末10、サーバ装置30、サーバ装置40及びサーバ装置50は、公開鍵証明書Cert_Lを受信する(ステップS307)。
端末10は、受信した公開鍵証明書Cert_0010を、制御部103及びメモリカード入出力部104を介して、メモリカード20の公開鍵格納領域204cに格納する(ステップS308)。ここで、端末10がCAから受信した公開鍵証明書Cert_0010のデータ構成を図9(a)に示す。同図に示す様に、Cert_0010は、ID_0010と、PK_0010と、Sig_0010CAとを含む。なお、ID_0010は、端末10のデバイスIDである。
サーバ装置30は、ステップS307で受信した公開鍵証明書Cert_0030を、制御部302を介してCert管理部304に格納する(ステップS308)。図9(b)は、サーバ装置30がCAから受信した公開鍵証明書Cert_0030のデータ構成を示す図である。同図に示す様に、Cert_0030は、ID_0030と、PK_0030と、ID_0030と、Sig_0030CAとを含む。なお、ID_0030は、サーバ装置30のデバイスIDである。
サーバ装置40及びサーバ装置50も同様に、それぞれがステップS307で受信した公開鍵証明書Cert_0040及びCert_0050を内部に格納する(ステップS308)。図9(c)は、サーバ装置40がCAから受信した公開鍵証明書Cert_0040のデータ構成を示す図であり、図9(d)は、サーバ装置50がCAから受信した公開鍵証明書Cert_0050のデータ構成を示す図である。
CAから公開鍵証明書を取得すると、端末10及びサーバ装置30は、図6のステップS108の処理に続く。サーバ装置40は、ステップS109の処理に続き、サーバ装置50は、ステップS110の処理に続く。
(4)サービス加入、登録処理
ここでは、図10及び図11に示すフローチャートを用いて、端末10とサーバ装置30とによるサービス加入、登録処理(図6のステップS108)、端末10とサーバ装置40とによるサービス加入、登録処理(図6のステップS109)、及び、端末10とサーバ装置50とによるサービス加入、登録処理(図6のステップS110)の動作について説明する。なお、ここでは、サーバ装置30、サーバ装置40及びサーバ装置50を、単に「サーバ装置」と呼称することがある。
端末10において、操作入力部102を介してユーザの入力を受け付けることにより、サーバ装置に対するサービス加入要求が発生すると(ステップS401)、端末10とサーバ装置との間でSAC確立の処理を行う(ステップS402)。
サーバ装置は、CAから楕円曲線y2=x3+ax+bのシステムパラメータを取得する(ステップS403)。ここで、サーバ装置30がCAから取得するシステムパラメータは「a1、b1、p1、q1、及び、G1」であり、サーバ装置40がCAから取得するシステムパラメータは「a2、b2、p2、q2、及び、G2」であり、サーバ装置50がCAから取得するシステムパラメータは「a3、b3、p3、q3、及び、G3」である。
サーバ装置の制御部は、取得したシステムパラメータを、ステップS402のSAC確立処理で端末10と共有したセッション鍵を暗号鍵として用い、暗号化する(ステップS404)。なお、ここで用いる暗号アルゴリズムの一例はDES(Data Encryption Standard)である。サーバ装置の制御部は、暗号化したシステムパラメータを、通信部及びネットワーク60を介して端末10へ送信し、端末10の通信部101は、システムパラメータを受信する(ステップS405)。
端末10の制御部103は、ステップS402のSAC確立処理でサーバ装置と共有したセッション鍵を復号鍵として用い、暗号化されたシステムパラメータを復号する(ステップS406)。端末10の公開鍵暗号処理部107は、サービス用秘密鍵SKを既に生成しており、メモリカード20のセキュア領域204aにSKが格納されている場合(ステップS407でYES)、ステップS409に進む。端末10の公開鍵暗号処理部107は、サービス用秘密鍵SKを未だ生成しておらず、メモリカード20のセキュア領域204aにSKが格納されていない場合(ステップS407でNO)、乱数生成器により、サービス用秘密鍵SKを生成する(ステップS408)。
公開鍵暗号処理部107は、サービス用秘密鍵SKとサーバ装置から取得したシステムパラメータとを用いて、次式を計算することにより、公開鍵PK_Nを生成する(ステップS409)。
PK_N=SK*G(mod p)、N=A、B、及び、C
なお、サービス用秘密鍵SKは、ステップS408において生成した鍵データ、若しくは、既に生成されてメモリカード20のセキュア領域204aに格納されている鍵データである。
PK_Aは、サーバ装置30から受信するシステムパラメータに基づき生成された公開鍵であり、PK_Bは、サーバ装置40から受信するシステムパラメータに基づき生成された公開鍵であり、PK_Cは、サーバ装置50から受信するシステムパラメータに基づき生成された公開鍵である。
次に、端末10の制御部103は、セッション鍵を暗号鍵として用い、生成した公開鍵PK_Nを暗号化し(ステップS410)、暗号化したPK_Nを、通信部101及びネットワーク60を介してサーバ装置へ送信し、サーバ装置の通信部は、暗号化された公開鍵PK_Nを受信する(ステップS411)。サーバ装置の制御部は、暗号化された公開鍵PK_Nをセッション鍵を用いて復号する(ステップS412)。
続いて、サーバ装置の公開鍵暗号処理部は、端末10から受信した公開鍵PK_Nに対して公開鍵証明書Cert_Nを生成する(ステップS413)、次に、公開鍵暗号処理部は、乱数生成器を用いて秘密鍵KS_Mを生成し(M=30、40、及び、50)、生成した秘密鍵KS_Mから公開鍵KP_M=KS_M*Gを算出する(ステップS415)。Gは、楕円曲線のベースポイントである。サーバ装置の制御部は、セッション鍵を暗号鍵として用い、公開鍵証明書Cert_N及び公開鍵KP_Mを暗号化し、暗号化したCert_N及びKP_Mを通信部及びネットワーク60を介して端末10へ送信し、端末10の通信部101は、暗号化されたCert_N及びKP_Mを受信する(ステップS417)。
端末10の制御部103は、受信したCert_N及びKP_Mをセッション鍵を用いて復号し(ステップS418)、復号した公開鍵証明書Cert_Nをメモリカード入出力部104を介して、メモリカード20のセキュア領域204aに格納し(ステップS419)、サーバ装置の公開鍵KP_Mを記憶部108に格納
する(ステップS420)。
一方、サーバ装置の登録情報管理部は、端末10に関する登録情報を生成して管理する(ステップS421)。登録情報は、端末10の公開鍵や端末10に割り振った会員番号などを含む。
ここで、各サーバ装置が生成し、端末10へ発行する公開鍵証明書Cert_Nについて図12を用いて説明する。
図12(a)は、サーバ装置30が端末10に発行するCert_Aのデータ構成を示す図である。同図に示す様に、Cert_Aは、サービスID「SID_0123A」、会員番号「NO_0001」、公開鍵「PK_A」及び署名データ「Sig_A」から構成される。
サービスID「SID_0123A」は、サーバ装置30が提供するサービスの内、端末10が利用するサービスの種類を示す。会員番号「NO_0001」は、サーバ装置30に登録される複数の端末から、当該端末を識別するために割り振られた番号である。公開鍵「PK_A」は、端末10が、サービス用秘密鍵SKと、サーバ装置30から受信した楕円曲線のシステムパラメータとから生成した鍵データである。署名データ「Sig_A」は、サーバ装置30が、「SID_0123A」、「NO_0001」及び「PK_A」に対し、署名アルゴリズムを施して生成したデータである。
図12(b)は、サーバ装置40が端末10に発行するCert_Bのデータ構成を示す図である。同図に示す様に、Cert_Bは、サービスID「SID_0321B」、会員番号「NO_0025」、公開鍵「PK_B」及び署名データ「Sig_B」から構成される。
サービスID「SID_0321B」は、サーバ装置40が提供するサービスの内、端末10が利用するサービスの種類を示す。会員番号「NO_0025」は、サーバ装置40に登録される複数の端末から、当該端末を識別するために割り振られた番号である。公開鍵「PK_B」は、端末10が、サービス用秘密鍵SKと、サーバ装置40から受信した楕円曲線のシステムパラメータとから生成した鍵データである。署名データ「Sig_B」は、サーバ装置40が、「SID_03321B」、「NO_0025」及び「PK_B」に対し、署名アルゴリズムを施して生成したデータである。
図12(c)は、サーバ装置50が端末10に発行するCert_Cのデータ構成を示す図である。同図に示す様に、Cert_Cは、サービスID「SID_0132C」、会員番号「NO_3215」、公開鍵「PK_C」及び署名データ「Sig_C」から構成される。
サービスID「SID_0132C」は、サーバ装置50が提供するサービスの内、端末10が利用するサービスの種類を示す。会員番号「NO_3215」は、サーバ装置50に登録される複数の端末から、当該端末を識別するために割り振られた番号である。公開鍵「PK_C」は、端末10が、サービス用秘密鍵SKと、サーバ装置50から受信した楕円曲線のシステムパラメータとから生成した鍵データである。署名データ「Sig_C」は、サーバ装置50が、「SID_0132C」、「NO_3215」及び「PK_C」に対し、署名アルゴリズムを施して生成したデータである。
(5)SACの確立1
ここでは、図13及び図14に示すフローチャートを用いて、サービス加入、登録時における端末10と各サーバ装置とにおけるSAC確立の動作について説明する。なお、ここで説明する動作は、図10のステップS402の詳細である。
ここで、Gen()を鍵生成関数とし、Yをシステム固有のパラメータとする。また、鍵生成関数Gen()は、Gen(X、Gen(y,Z))=Gen(y,Gen(X,Z))の関係を満たすものとする。なお、鍵生成関数は、任意の公知技術で実現可能なため、詳細については省略する。
先ず、端末10の制御部103は、メモリカード入出力部104を介してメモリカード20から公開鍵証明書Cert_0010を読み出す(ステップS501)。端末10の通信部101はネットワーク60を介して、Cert_0010をサーバ装置へ送信し、サーバ装置の通信部はCert_0010を受信する(ステップS502)。サーバ装置は、CAの公開鍵PK_CAを用いて公開鍵証明書Cert_0010に含まれる署名データSig_0010CAに対して、署名検証アルゴリズムを施して署名検証する(ステップS503)。なお、サーバ装置は、CAの公開鍵PK_CAを既知であるとする。検証結果が失敗の場合(ステップS504でNO)、サーバ装置は処理を終了する。検証結果が成功の場合(ステップS504でYES)、サーバ装置の制御部は、CRL格納部からCRLを読み出し(ステップS505)、公開鍵証明書Cert_0010に含まれるID_0010がCRLに登録されているか否かを判断する。
ID_0010がCRLに登録されていると判断する場合(ステップS506でYES)、サーバ装置は処理を終了する。ID_0010がCRLに登録されていないと判断する場合(ステップS506でNO)、サーバ装置の制御部は、Cert管理部から公開鍵証明書Cert_Lを読み出す(ステップS507)。制御部は、通信部及びネットワーク60を介して公開鍵証明書Cert_Lを端末10へ送信し、端末10の通信部は、Cert_Lを受信する(ステップS508)。
端末10の制御部103は、公開鍵証明書Cert_Lを受け取ると、CAの公開鍵PK_CAを用いてCert_Lに含まれる署名データSig_LCAに対して、署名検証アルゴリズムを施して署名検証する(ステップS509)。なお、端末10は、CAの公開鍵PK_CAを既知であるとする。検証結果が失敗の場合(ステップS510でNO)、端末10は処理を終了する。検証結果が成功の場合(ステップS510でYES)、制御部103は、CRL格納部106からCRLを読み出し(ステップS511)、公開鍵証明書Cert_Lに含まれて受け取ったID_LがCRLに登録されているか否かを判断する。
ID_LがCRLに登録されていると判断する場合(ステップS512でYES)、端末10は処理を終了する。ID_LがCRLに登録されていないと判断する場合(ステップS512でNO)、端末10は処理を継続する。
ステップS507の処理に続いて、サーバ装置の公開鍵暗号処理部は、乱数Cha_Bを生成する(ステップS513)。サーバ装置の通信部は、ネットワーク60を介して乱数Cha_Bを端末10へ送信し、端末10の通信部101は、乱数Cha_Bを受信する(ステップS514)。
端末10の制御部103は、乱数Cha_Bを受け取ると、メモリカード入出力部104を介してメモリカード20のセキュア領域204aから秘密鍵R_0010を読み出し、読み出した秘密鍵R_0010と先程受け取った乱数Cha_Bとを公開鍵暗号処理部107へ出力する。公開鍵暗号処理部107は、乱数Cha_Bに、秘密鍵R_0010を用いて署名生成アルゴリズムを施して署名データSig_aを生成する(ステップS515)。通信部101は、公開鍵暗号処理部107が生成した署名データSig_aを、ネットワーク60を介してサーバ装置へ送信し、サーバ装置の通信部は、署名データSig_aを受信する(ステップS516)。
サーバ装置の公開鍵暗号処理部は、制御部を介して署名データSig_aを受け取ると、ステップS502でCert_0010に含んで受け取った公開鍵PK_0010を用いて署名データSig_aに署名検証アルゴリズムを施して署名検証する(ステップS517)。検証結果が失敗の場合(ステップS518でNO)、サーバ装置は処理を終了する。検証結果が成功の場合(ステップS518でYES)、サーバ装置は処理を継続する。
一方、端末10は、ステップS515の処理に続いて、公開鍵暗号処理部107において乱数Cha_Aを生成する(ステップS519)。公開鍵暗号処理部107は、生成した乱数Cha_Aを、制御部103、通信部101及びネットワーク60を介してサーバ装置へ送信し、サーバ装置の通信部は、乱数Cha_Aを受信する(ステップS520)。
サーバ装置の制御部は、受信した乱数Cha_Aを公開鍵暗号処理部へ出力し、公開鍵暗号処理部は、受け取った乱数Cha_Aに、内部に保持している秘密鍵R_Lを用い、署名アルゴリズムを施して署名データSig_bを生成する(ステップS521)。サーバ装置は、生成した署名データSig_bを制御部、通信部及びネットワーク60を介して端末10へ送信し、端末10の通信部101は、署名データSig_bを受信する(ステップS522)。
端末10の公開鍵暗号処理部107は制御部103を介して、署名データSig_bを受け取ると、ステップS508でCert_Lに含んで受け取った公開鍵PK_Lを用いて署名データSig_bに署名検証アルゴリズムを施して署名検証する(ステップS523)。検証結果が失敗の場合(ステップS524でNO)、端末10は処理を終了する。検証結果が成功の場合(ステップS524でYES)、端末10の公開鍵暗号処理部107は、乱数「a」を生成し(ステップS525)、生成した乱数「a」を用いてKey_A=Gen(A,Y)を生成する(ステップS526)。端末10の通信部101は、公開鍵暗号処理部107により生成されたKey_Aをネットワーク60を介してサーバ装置へ送信し、サーバ装置の通信部は、Key_Aを受信する(ステップS527)。
サーバ装置の公開鍵暗号処理部は、Key_Aを受け取ると、乱数「b」を生成し(ステップS528)、生成した乱数「b」を用いてKey_B=Gen(B,Y)を生成する(ステップS529)。サーバ装置の通信部は、公開鍵暗号処理部により生成されたKey_Bをネットワーク60を介して端末10へ送信し、端末10の通信部は、Key_Bを受信する(ステップS530)。また、サーバ装置の公開鍵暗号処理部は、ステップS528で生成した乱数「b」と、ステップS527で受け取ったKey_Aとを用いて、Key_AB=Gen(B,Key_A)=Gen(B,Gen(A,Y))を生成し(ステップS531)、生成したKey_ABをセッション鍵として制御部へ出力する(ステップS532)。その後サーバ装置は、図10のステップS403に戻って処理を続ける。
一方、端末10の公開鍵暗号処理部107は、ステップS530でKey_Bを受け取ると、Key_BとステップS525で生成した乱数「a」とからKey_AB=Gen(a,Key_B)=Gen(a,Gen(B,y))を生成し(ステップS533)、生成したKey_ABをセッション鍵として制御部103へ出力する(ステップS534)。その後端末10は、図10のステップS406に戻って処理を続ける。
(6)全体の動作2(サービス利用時)
ここでは、図1のフローチャートから続く情報セキュリティシステム1全体の動作について図15に示すフローチャートを用いて説明する。なお、図15に示す動作は、情報セキュリティシステム1全体の動作の内、「サービス利用時」における動作である。なお、ここでは、サーバ装置30、サーバ装置40及びサーバ装置50を、単に「サーバ装置」と呼称することがある。
端末10において、操作入力部102を介してユーザの入力を受け付けることにより、サーバ装置に対するサービス利用要求が発生すると(ステップS601)、制御部103は、メモリカード入出力部104を介してメモリカード20のセキュア領域204aから、ユーザが指定したサーバ装置により発行された公開鍵証明書Cert_N(N=A、B、又はC)を読み出す(ステップS602)。制御部103は、読み出した公開鍵証明書Cert_Nを、通信部101及びネットワーク60を介して指定のサーバ装置へ送信し、サーバ装置の通信部は公開鍵証明書Cert_Nを受信する(ステップS603)。
サーバ装置の制御部は、公開鍵証明書Cert_Nを受け取ると、以下に示す様に受け取ったCert_Nが正しいか否か検証する(ステップS604)。制御部は、登録情報管理部から端末10に対応する登録情報を読み出し、受け取ったCert_Nに含まれるサービスID、会員番号及び端末10の公開鍵が登録されている情報と一致するか否か判断する。更に、制御部は、Cert_Nに含まれる署名データSig_Nを公開鍵暗号処理部に出力する。Sig_Nを受け取った公開鍵暗号処理部は、受け取った署名データSig_Nに署名検証アルゴリズムを施してSig_Nを検証し、検証結果を制御部へ出力する。
Cert_Nの検証に失敗した場合(ステップS605でNG)、サーバ装置は処理を終了する。Cert_Nの検証に成功した場合(ステップS605でOK)、サーバ装置と端末10とは、SACを確立する処理を行う(ステップS606)。
端末10とSACを確立すると、サーバ装置の制御部は、コンテンツ格納部からコンテンツを読み出し(ステップS607)、ステップS606において端末10と共有したセッション鍵を暗号鍵として用い、読み出したコンテンツを暗号化する(ステップS608)。ここで用いる暗号アルゴリズムの一例はDESである。サーバ装置の通信部は、ネットワーク60を介して暗号化コンテンツを端末10へ送信し、端末10の通信部101は、暗号化コンテンツを受信する(ステップS609)。
端末10の制御部103は、暗号化コンテンツを受け取ると、ステップS606においてサーバ装置と共有したセッション鍵を復号鍵として用い、受け取った暗号化コンテンツを復号する(ステップS610)。制御部103は、メモリカード入出力部104を介して、復号したコンテンツをメモリカード20のコンテンツ格納領域204bに格納する(ステップS611)。
(7)SACの確立2
ここでは、図16、図17及び図18に示すフローチャートを用いて、サービス利用時における端末10と各サーバ装置とにおけるSAC確立処理の動作について説明する。なお、ここで説明する動作は、図15のステップS606の詳細である。
ここで、Gen()を鍵生成関数とし、Yをシステム固有のパラメータとする。また、鍵生成関数Gen()は、Gen(X、Gen(y,Z))=Gen(y,Gen(X,Z))の関係を満たすものとする。
先ず、端末10の制御部103は、メモリカード入出力部104を介してメモリカード20から公開鍵証明書Cert_0010を読み出す(ステップS701)。端末10の通信部101はネットワーク60を介して、Cert_0010をサーバ装置へ送信し、サーバ装置の通信部はCert_0010を受信する(ステップS702)。サーバ装置の公開鍵暗号処理部は、CAの公開鍵PK_CAを用いて公開鍵証明書Cert_0010に含まれる署名データSig_0010CAに対して、署名検証アルゴリズムを施して署名検証する(ステップS703)。検証結果が失敗の場合(ステップS704でNO)、サーバ装置は処理を終了する。検証結果が成功の場合(ステップS704でYES)、サーバ装置の制御部は、CRL格納部からCRLを読み出し(ステップS705)、公開鍵証明書Cert_0010に含まれるID_0010がCRLに登録されているか否かを判断する。
ID_0010がCRLに登録されていると判断する場合(ステップS706でYES)、サーバ装置は処理を終了する。ID_0010がCRLに登録されていないと判断する場合(ステップS706でNO)、サーバ装置の制御部は、Cert管理部から公開鍵証明書Cert_Lを読み出す(ステップS707)。制御部は、通信部及びネットワーク60を介して公開鍵証明書Cert_Lを端末10へ送信し、端末10の通信部は、Cert_Lを受信する(ステップS708)。
端末10の制御部103は、公開鍵証明書Cert_Lを受け取ると、CAの公開鍵PK_CAを用いてCert_Lに含まれる署名データSig_LCAに対して、署名検証アルゴリズムを施して署名検証する(ステップS709)。検証結果が失敗の場合(ステップS710でNO)、端末10は処理を終了する。検証結果が成功の場合(ステップS710でYES)、制御部103は、CRL格納部106からCRLを読み出し(ステップS711)、公開鍵証明書Cert_Lに含まれて受け取ったID_LがCRLに登録されているか否かを判断する。
ID_LがCRLに登録されていると判断する場合(ステップS712でYES)、端末10は処理を終了する。ID_LがCRLに登録されていないと判断する場合(ステップS712でNO)、端末10は処理を継続する。
ステップS707の処理に続いて、サーバ装置の公開鍵暗号処理部は、乱数Cha_Dを生成する(ステップS713)。サーバ装置の通信部は、ネットワーク60を介して乱数Cha_Dを端末10へ送信し、端末10の通信部101は、乱数Cha_Dを受信する(ステップS714)。
端末10の公開鍵暗号処理部107は、Cha_Dを受け取ると、
R1=(rx,ry)=Cha_D*G
を計算し(ステップS715)、
S×Cha_D=m+rx×SK (mod q)
から、Sを計算する(ステップS716)。ここで、qは、楕円曲線Eの位数であり、mは、端末10がサーバ装置へ送信するメッセージであり、SKは、メモリカード入出力部104を介してメモリカード20のセキュア領域204aから読み出した端末10のサービス用秘密鍵である。
端末10は、得られたR1とSとから署名データSig_d=(R1,S)を生成し(ステップS717)、生成した署名データSig_dとメッセージmと共にサーバ装置へ送信し、サーバ装置は署名データSig_dとメッセージmとを受信する(ステップS718)。
サーバ装置の公開鍵暗号処理部は、
m*G+rx*PK_N
を計算し、更に、
S*R1
を計算する(ステップS719)。
サーバ装置の公開鍵暗号処理部は、S*R1=m*G+rx*PK_N
が成立するかどうか判定することにより、送信者である端末10の身元を確認する(ステップS720)。これは、
S*R1={((m+rx×SK)/Cha_D)×Cha_D}*G
=(m+rx×SK)*G
=m*G+(rx×SK)*G
=m*G+rx*PK_N
となることから明らかである。
S*R1≠m*G+rx*PK_Nの場合(ステップS720でNO)、サーバ装置は処理を終了する。S*R1=m*G+rx*PK_Nの場合(ステップS720でYES)、サーバ装置は、処理を続ける。
一方で、端末10は、ステップS718においてSig_d及びmをサーバ装置へ送信した後、公開鍵暗号処理部107は、乱数Cha_Eを生成し(ステップS721)、生成した乱数Cha_Eを制御部103、通信部101ネットワーク60を介してサーバ装置へ送信し、サーバ装置の通信部はCha_Eを受信する(ステップS722)。
サーバ装置の公開鍵暗号処理部は、制御部を介して乱数Cha_Eを受け取ると、
R2=(rx,ry)=Cha_E*G
を計算し(ステップS723)、
S´×Cha_E=m´+rx×Ks_M (mod q)
から、S´を計算する(ステップS724)。ここで、m´は、サーバ装置が端末10へ送信するメッセージであり、Ks_M(M=30、40、又は50)は、サーバ装置の秘密鍵である。より具体的に、Ks_30は、サーバ装置30の秘密鍵であり、Ks_40は、サーバ装置40の秘密鍵であり、Ks_50は、サーバ装置50の秘密鍵である。
サーバ装置は、得られたR2とS´とから、署名データSig_e=(R2,S´)を生成し(ステップS725)、生成した署名データSig_eをメッセージm´と共に端末10へ送信し、端末10は署名データSig_eとメッセージm´とを受信する(ステップS726)。
端末10の公開鍵暗号処理部107は、
m´*G+rx*Kp_M
を計算する(ステップS731)。ここで、Kp_M(M=30、40、又は50)は、Kp_M=Ks_M*Gを計算することにより生成された各サーバ装置の公開鍵である。より具体的に、Kp_30は、サーバ装置30の公開鍵であり、Ks_30に対応している。Kp_40は、サーバ装置40の公開鍵であり、秘密鍵Ks_40に対応している。Kp_50は、サーバ装置50の公開鍵であり、秘密鍵Ks_50に対応している。
公開鍵暗号処理部107は、更に、
S´*R2
を計算する(ステップS731)。
公開鍵暗号処理部107は、S´*R2=m´*G+rx*Kp_M
が成立するかどうか判定することにより、送信者である端末10の身元を確認する(ステップS732)。これは、
S´*R2={((m´+rx×Ks_M)/Cha_E)×Cha_E}*G
=(m´+rx×Ks_M)*G
=m´*G+(rx×Ks_M)*G
=m´*G+rx*Kp_M
となることから明らかである。
S´*R2≠m´*G+rx*Kp_Mの場合(ステップS732でNO)、端末10は処理を終了する。S´*R2=m*G+rx*Kp_Mの場合(ステップS732でYES)、公開鍵暗号処理部107は、乱数「d」を生成し(ステップS733)、生成した乱数「d」を用いてKey_D=Gen(D,Y)を生成する(ステップS734)。端末10の通信部101は、公開鍵暗号処理部107により生成されたKey_Dをネットワーク60を介してサーバ装置へ送信し、サーバ装置の通信部は、Key_Dを受信する(ステップS735)。
サーバ装置の公開鍵暗号処理部は、Key_Dを受け取ると、乱数「e」を生成し(ステップS736)、生成した乱数「e」を用いてKey_E=Gen(E,Y)を生成する(ステップS737)。サーバ装置の通信部は、公開鍵暗号処理部により生成されたKey_Eをネットワーク60を介して端末10へ送信し、端末10の通信部は、Key_Eを受信する(ステップS738)。また、サーバ装置の公開鍵暗号処理部は、ステップS735で生成した乱数「e」と、ステップS735で受け取ったKey_Dとを用いて、Key_DE=Gen(e,Key_D)=Gen(e,Gen(D,Y))を生成し(ステップS741)、生成したKey_DEをセッション鍵として制御部へ出力する(ステップS742)。その後サーバ装置は、図15のステップS607に戻って処理を続ける。
一方、端末10の公開鍵暗号処理部107は、ステップS738でKey_Eを受け取ると、Key_EとステップS733で生成した乱数「d」とからKey_DE=Gen(d,Key_E)=Gen(d,Gen(E,Y))を生成し(ステップS739)、生成したKey_DEをセッション鍵として制御部103へ出力する(ステップS740)。その後端末10は、図15のステップS610に戻って処理を続ける。
(7)楕円曲線のシステムパラメータ生成処理の動作
情報セキュリティシステム1において、認証局(CA)は、各機器に公開鍵証明書を発行する機能、及び、暗号に適したシステムパラメータを生成し、生成したシステムパラメータを各サーバ装置へ通知する機能を有する。ここで、システムパラメータは、楕円曲線E:y2=x3+ax+bを構成するa、b、素数p、pの位数q、及び、楕円曲線E上のベースポイントGを指す。特に、当該システムにおいて、CAは、サーバ装置毎に固有のシステムパラメータを生成する。
ここでは、図19に示すフローチャートを用いて、CAによる楕円曲線のシステムパラメータ生成処理の動作について説明する。
CAが有する楕円曲線管理装置は、乱数を生成し(ステップS801)、生成した乱数を用いて楕円曲線を決定するa、b、素数p及び元Gを生成し、(ステップS802)、生成したパラメータを用いて、楕円曲線の位数を計算する(ステップS803)。
次に、計算された位数を用いて、以下に示す安全な楕円曲線の条件を満たすか否かを判定することにより、楕円曲線の安全性を判定する。
現存するすべての解読法に対して安全な楕円曲線の条件は、有限体GF(p)上の楕円曲線の場合、
(条件1)楕円曲線の位数がp−1、p及びp+1のいずれでもないこと、及び
(条件2)この楕円曲線の位数が大きい素因数をもつことである。
「暗号・ゼロ知識証明、数論」(155ページ〜156ページ、情報処理学会監修、岡本龍明・太田和夫共編、共立出版、1995年)によると、これらの条件を満たす場合に、解読するために必要な計算時間は、前記位数の最大素因数に関する指数関数時間である。
(条件1)及び(条件2)を満たさない場合(ステップS804でNG)、ステップS801に戻り、乱数の生成と、楕円曲線のシステムパラメータの生成と、楕円曲線の位数の計算と、条件判定とを繰り返す。
(条件1)及び(条件2)を満たす場合(ステップS804でOK)、楕円曲線管理装置は、生成されたシステムパラメータを、既に生成され、記憶されているシステムパラメータと比較する(ステップS805)。生成されたシステムパラメータの組み合わせが、記憶されているシステムパラメータの組み合わせの何れかと一致する場合(ステップS806でYES)、生成したシステムパラメータを破棄し(ステップS807)、ステップS801に戻り処理を続ける。
生成されたシステムパラメータの組み合わせが、記憶されているシステムパラメータの組み合わせの何れとも一致しない場合(ステップS806でNO)、生成されたシステムパラメータの組み合わせを記憶すると共に、サーバ装置30、サーバ装置40、又はサーバ装置50へ送信する(ステップS808)。
なお、CAが有する楕円曲線管理装置は、サーバ装置30、サーバ装置40、及び、サーバ装置50から要求を受ける毎に、上記の処理を行うものとする。
これにより、サーバ装置30、サーバ装置40、及びサーバ装置50は、他のサーバ装置と異なるユニークな楕円曲線のシステムパラメータの組み合わせを取得する。
<まとめ>
以上説明したように、本発明は、SACで利用する公開鍵暗号を、一例として楕円曲線暗号であると想定する。楕円曲線暗号では、秘密鍵を生成してから公開鍵を算出するが、公開鍵の算出には、秘密鍵とシステムパラメータとを利用するため、秘密鍵が共通であっても、システムパラメータが異なれば、異なる公開鍵が算出される。
そこで、本発明は、コンテンツ配信サービスを提供するサーバ装置が、自身のサービス用のシステムパラメータを、サービス利用者である端末へ送信する。このとき、コンテンツ配信サービスを提供するサーバ装置が複数存在する場合、端末は、複数のサーバ装置から、それぞれ異なるシステムパラメータを取得するものとする。
端末は、既に保持している秘密鍵と受信したパラメータとから公開鍵を算出し、算出した公開鍵をサーバ装置へ返信する。公開鍵を受信したサーバ装置は、公開鍵に対して署名を付与した公開鍵証明書を生成して、端末へ返送する。
<その他の変形例>
以上、本発明を上記実施の形態に基づき説明してきたが、本発明は上記実施の形態に限定されないのは勿論であり、以下の様な場合も本発明に含まれる。
(1)上記実施の形態では、端末10が各サーバ装置から取得する楕円曲線のシステムパラメータ「a、b、p、q、及び、G」の内、ベースポイントGがサーバ装置毎に異なる構成を有しているが、本発明は、この構成に限定されないのは勿論である。端末10が各サーバ装置から取得するシステムパラメータ「a、b、p、q、及び、G」の内、少なくとも、素数p又はベースポイントGの何れかが、サーバ装置毎に異なっていればよい。勿論、システムパラメータの各値が、サーバ装置毎に全て異なっている場合も本発明に含まれる。本発明において、端末10が取得する楕円曲線のシステムパラメータの組み合わせがサーバ装置毎に異なるのは、サーバ装置毎に異なる公開鍵を生成することが目的であり、システムパラメータ自体が異なることは目的ではない。
(2)上記実施の形態では、端末10が秘密鍵SKとパラメータとから公開鍵P_A、PK_B、及び、PK_Cを生成する構成を有しているが、公開鍵は必ずしも端末10で生成される必要はなく、以下の様な場合も本発明に含まれる。
(a)サーバ装置が公開鍵を生成する
先ず、端末と各サーバ装置との間でSACを確立する。
端末10は、サービス用秘密鍵SKを生成し、生成したサービス用秘密鍵SKを、SACを介して安全かつ確実に各サーバ装置へ送信する。
各サーバ装置は、端末10のサービス用秘密鍵SKとCAから取得した楕円曲線のシステムパラメータとから、秘密鍵SKに対応する公開鍵を生成する。各サーバ装置は、生成した公開鍵に自身の署名を付加した公開鍵証明書を生成し、生成した公開鍵証明書を端末10へ返信する。
(b)認証局(CA)が公開鍵を生成する
先ず、端末10とCAとの間でSACを確立する。
CAは、異なる3組のシステムパラメータを生成する。端末10は、サービス用秘密鍵SKを生成し、生成したサービス用秘密鍵SKをSACを介して安全かつ確実にCAへ送信する。
CAは、端末10から秘密鍵SKを受信すると、1個の秘密鍵SKと3組のシステムパラメータとから、異なる3個の公開鍵を生成する。CAは、生成した3個の公開鍵を端末へ送信する。
端末10は、3個の公開鍵を受信すると、それぞれサーバ装置30、サーバ装置40及びサーバ装置50へ送信する。各サーバ装置は、端末10から公開鍵を受信すると、受信した公開鍵に署名を付加して公開鍵証明書を生成し、生成した公開鍵証明書を端末10へ返信する。
(3)SAC確立時の署名データ生成及び署名データ検証に用いる公開鍵暗号は、楕円曲線暗号に限定されない。公開鍵暗号としてRSA暗号を用いる構成も本発明に含まれる。ここでは、RSA暗号を用いた実施形態について以下に述べる。
(RSA暗号の基礎的事項)
公開鍵:N、e
秘密鍵:P、Q、d
N=P×Q、(e,(P−1)(Q−1))=1
ed≡1mod(P−1)(Q−1)
暗号化: C=E(M)=MemodN
復号 : M=D(C)=CdmodN
(動作)
端末10が、サーバ装置30、サーバ装置40及びサーバ装置50から公開鍵証明書の発行を受ける処理の動作について以下に述べる。
(ステップ1)端末10は、任意の相違なる二つの大きな素数P1、Q1を選ぶ。また、端末10は、乱数生成器などにより、秘密鍵dを生成する。
(ステップ2)端末10は、N1=P1×Q1を計算する。また、端末10は、
1d≡1mod(P1−1)(Q1−1)から、e1を計算する。
(ステップ3)端末10は、公開鍵(N1、e1)を、サーバ装置30へ送信し、サーバ装置30から公開鍵証明書を受信し、記憶する。
(ステップ4)端末10は、P1及びQ1を削除し、秘密鍵dをセキュアな記憶領域に記憶する。
(ステップ5)端末10は、P1、Q1とは異なる大きな素数P2及びQ2を選ぶ。
(ステップ6)端末10は、N2=P2×Q2を計算する。また、端末10は、
2d≡1mod(P2−1)(Q2−1)から、e2を計算する。
(ステップ7)端末10は、公開鍵(N2、e2)を、サーバ装置40へ送信し、サーバ装置40から公開鍵証明書を受信し、記憶する。
(ステップ8)端末10は、P2及びQ2を削除する。
(ステップ9)端末10は、P1、Q1、P2、Q2とは異なる大きな素数P3及び
3を選ぶ。
(ステップ10)端末10は、N3=P3×Q3を計算する。また、端末10は、
3d≡1mod(P3−1)(Q3−1)から、e3を計算する。
(ステップ11)端末10は、公開鍵(N3、e3)を、サーバ装置50へ送信し、サーバ装置50から公開鍵証明書を受信し、記憶する。
(ステップ12)端末10は、P3及びQ3を削除する。
この様に、端末10は、楕円曲線のシステムパラメータに替えて、大きな素数の組(P、Q)を複数個生成するか、又は、取得し、1個の秘密鍵dと複数個の素数の組(P、Q)とから、RSA暗号のアルゴリズムに従い、複数個の公開鍵(N、e)を生成することができる。即ち、端末10は、楕円曲線暗号のみならず、RSA暗号を用いても、1個の秘密鍵から複数個の公開鍵を生成し、生成した複数個の公開鍵を用いて、複数のサーバ装置とSACを確立し、コンテンツの送受信を行うことができる。
(4)上記のRSA暗号を用いた変形例では、端末10が複数個の公開鍵を生成するのでなく、各サーバ装置が公開鍵を生成するように構成されてもよい。
(5)端末10及び各サーバ装置は、CRLをネットワーク60を介してCAより受信する構成を有しているが、CRLの取得方法はこれに限定されない。放送で受信してもよいし、DVD等の記録媒体に格納して配布されてもよい。
(6)メモリカードに秘密鍵、公開鍵、コンテンツを格納しなくても端末内部の記憶領域に格納してもよい。このとき、少なくとも秘密鍵はセキュアな記憶領域に格納されるべきである。
(7)上記実施の形態では、端末10が、秘密鍵及び公開鍵の生成処理、SAC確立処理の機能を担っているが、本発明は、端末10がこれらの処理を行うことは必須ではなく、ネットワークに接続された端末に挿入されたICチップを備えるメモリカード(以下、「ICメモリカード」と呼称する)が、秘密鍵及び公開鍵の生成処理、SAC確立処理等を行う場合も本発明に含まれる。
以下では、ICメモリカードを用いた実施形態について説明する。
ICメモリカードは、端末に挿入されており、端末を介してサーバ装置30、サーバ装置40及びサーバ装置50、並びに、CAと通信可能であるとする。
ICメモリカードは、ICチップ、ROM、RAMなどから構成される制御部と、記憶領域とから構成される。なお、記憶領域の一部は外部から解読及び改竄が不可能なセキュア領域であるとする。
ICメモリカードは、予め、端末を介してCAと通信を行い、CAから、ICメモリカードのデバイスIDとICメモリカードの公開鍵とCAによる署名データとを含む公開鍵証明書の発行を受け、受信した公開鍵証明書を記憶領域に格納している。
更に、ICメモリカードは、サーバ装置30が公開している公開鍵、サーバ40が公開している公開鍵、及び、サーバ装置50が公開している公開鍵を記憶領域に格納している。
(サービス加入要求)
ここでは、ICメモリカードが、サーバ装置30に対してサービスへの加入を要求するときの制御部の処理について説明する。
制御部は、公開鍵暗号のアルゴリズムとしてRSA暗号を用い、サーバ装置30とSACを確立する。SAC確立の詳細は、上記実施の形態におけるSAC確立処理と同様であって、上記実施の形態において、端末10が行っていた処理を、ICメモリカードが行う。
制御部は、サーバ装置30との間で確立されたSACを用い、端末を介してサーバ装置30から、楕円曲線のシステムパラメータ「a1、b1、p1、q1、及び、G1」を受け取る。
制御部は、サービス用秘密鍵を生成し、生成したサービス用秘密鍵とシステムパラメータとを用いて、公開鍵を算出する。制御部は、生成したサービス用秘密鍵をセキュア領域に書き込み、算出した公開鍵を、サーバ装置30との間で確立されたSACを用い、端末を介してサーバ装置30へ送信する。その後、制御部は、端末を介してサーバ装置30から公開鍵証明書を受け取り、受け取った公開鍵証明書を記憶領域に書き込む。
次に、ICメモリカードが、サーバ装置40に対してサービスへの加入を要求するときの制御部の処理について説明する。
制御部は、サーバ装置40とSACを確立し、確立されたSACを用い、端末を介してサーバ装置40から、楕円曲線のシステムパラメータ「a2、b2、p2、q2、及び、G2」を受け取る。
制御部は、セキュア領域からサービス用秘密鍵を読み出し、読み出したサービス用秘密鍵とシステムパラメータとを用いて、公開鍵を算出する。制御部は、算出した公開鍵を、サーバ装置40との間で確立されたSACを用い、端末を介してサーバ装置40へ送信する。その後、制御部は、端末を介してサーバ装置40から公開鍵証明書を受け取り、受け取った公開鍵証明書を記憶領域に書き込む。
次に、ICメモリカードが、サーバ装置50に対してサービスへの加入を要求するときの制御部の処理について説明する。
制御部は、サーバ装置50とSACを確立し、確立されたSACを用い、端末を介してサーバ装置50から、楕円曲線のシステムパラメータ「a3、b3、p3、q3、及び、G3」を受け取る。
制御部は、セキュア領域からサービス用秘密鍵を読み出し、読み出したサービス用秘密鍵とシステムパラメータとを用いて、公開鍵を算出する。制御部は、算出した公開鍵を、サーバ装置50との間で確立されたSACを用い、端末を介してサーバ装置50へ送信する。その後、制御部は、端末を介してサーバ装置50から公開鍵証明書を受け取り、受け取った公開鍵証明書を記憶領域に書き込む。
この様に、ICメモリカードはサーバ装置30に対するサービス加入要求時に生成した1個のサービス用秘密鍵と、各サーバ装置から受信したシステムパラメータとを用いて、各サーバ装置に対応する3個の異なる公開鍵を生成することが出来る。
(サービス利用要求)
ここでは、ICメモリカードが、サーバ装置30に対してサービスの利用を要求するときの制御部の処理について説明する。
制御部は、記憶領域からサービス用秘密鍵、公開鍵証明書(サーバ装置30から発行されたもの)、及び、サーバ装置30の公開鍵を読み出し、読み出したこれらの鍵情報を用いてサーバ装置30とSACを確立する。SAC確立の詳細は、上記実施の形態におけるSAC確立処理と同様であって、上記実施の形態において、端末10が行っていた処理を、ICメモリカードが行う。なお、ここで行うSAC確立処理の公開鍵暗号のアルゴリズムには、楕円曲線暗号を用いるとする。
制御部は、サーバ装置30との間で確立されたSACを用いて、端末を介してサーバ装置30から暗号化コンテンツを受信し、受信した暗号化コンテンツを復号し、復号したコンテンツを記憶領域に格納する。
次に、ICメモリカードが、サーバ装置40に対してサービスの利用を要求するときの制御部の処理について説明する。 制御部は、記憶領域からサービス用秘密鍵、公開鍵証明書(サーバ装置40から発行されたもの)、及び、サーバ装置40の公開鍵を読み出し、読み出したこれらの鍵情報を用いてサーバ装置40とSACを確立する。
制御部は、サーバ装置40との間で確立されたSACを用いて、端末を介してサーバ装置40から暗号化コンテンツを受信し、受信した暗号化コンテンツを復号し、復号したコンテンツを記憶領域に格納する。
次に、ICメモリカードが、サーバ装置50に対してサービスの利用を要求するときの制御部の処理について説明する。 制御部は、記憶領域からサービス用秘密鍵、公開鍵証明書(サーバ装置50から発行されたもの)、及び、サーバ装置50の公開鍵を読み出し、読み出したこれらの鍵情報を用いてサーバ装置50とSACを確立する。
制御部は、サーバ装置50との間で確立されたSACを用いて、端末を介してサーバ装置50から暗号化コンテンツを受信し、受信した暗号化コンテンツを復号し、復号したコンテンツを記憶領域に格納する。
この様に、サーバ装置30、40、及び50から取得した各コンテンツは、当該ICメモリカードが挿入されている端末や、その他の端末により再生可能である。
(8)上記実施の形態では、CAがサーバ装置毎に異なるシステムパラメータを生成し、生成したシステムパラメータを、各サーバ装置へ送信する構成を有しているが、本発明において、サーバ装置は、必ずしもCAなどの外部からシステムパラメータを取得する必要はなく、サーバ装置自身がシステムパラメータを生成する構成であってもよい。
サーバ装置自身がシステムパラメータを生成する場合、サーバ装置毎に(業者毎に)異なる公開鍵が端末10で生成されるために、例えば、サーバ装置毎に異なるIDを割り当てて、各サーバ装置は、割り当てられたIDに基づきシステムパラメータを生成するように構成してもよい。
(9)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD‐ROM、MO、DVD、DVD‐ROM、DVD‐RAM、BD(Blu‐ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラム又は前記ディジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記ディジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(10)上記実施の形態及び上記変形例をそれぞれ組み合わせる構成も本発明に含まれる。
上記において説明した情報セキュリティシステムは、映画、音楽などのディジタル化された著作物を、放送やネットワークなどを介して流通させる産業において、ユーザが複数のサービス業者を利用する仕組みとして利用できる。
情報セキュリティシステム1の構成を示す図である。 端末10の構成を機能的に示す機能ブロック図である。 (a)パスワードテーブル120のデータ構成を示す図である。(b)CRL130のデータ構成を示す図である。 メモリカード20の構成を機能的に示す機能ブロック図である。 サーバ装置30の構成を機能的に示す機能ブロック図である。 情報セキュリティシステム1全体の動作を示すフローチャートであり、図15に続く。 端末10におけるメモリカード20の認証処理の動作を示すフローチャートである。 認証局(CA)と各機器(端末10、サーバ装置30、サーバ装置40及びサーバ装置50)とにおける公開鍵証明書発行処理の動作を示すフローチャートである。 (a)公開鍵証明書140(Cert_0010)のデータ構成を示す図である。(b)公開鍵証明書150(Cert_0030)のデータ構成を示す図である。(c)公開鍵証明書160(Cert_0040)のデータ構成を示す図である。(d)公開鍵証明書170(Cert_0050)のデータ構成を示す図である。 端末10と各サーバ装置とにおけるサービス加入、登録処理の動作を示すフローチャートであり、図11に続く。 端末10と各サーバ装置とにおけるサービス加入、登録処理の動作を示すフローチャートであり、図10から続く。 (a)端末10がサーバ装置30から発行される公開鍵証明書210(Cert_A)のデータ構成を示す図である。(b)端末10がサーバ装置40から発行される公開鍵証明書220(Cert_B)のデータ構成を示す図である。(c)端末10がサーバ装置50から発行される公開鍵証明書230(Cert_C)のデータ構成を示す図である。 端末10と各サーバ装置とにおける、サービス加入、登録時のSAC確立処理の動作を示すフローチャートであり、図14に続く。 端末10と各サーバ装置とにおける、サービス加入、登録時のSAC確立処理の動作を示すフローチャートであり、図13から続く。 情報セキュリティシステム1全体の動作を示すフローチャートであり、図6から続く。 端末10と各サーバ装置とにおける、サービス利用時のSAC確立処理の動作を示すフローチャートであり、図17に続く。 端末10と各サーバ装置とにおける、サービス利用時のSAC確立処理の動作を示すフローチャートであり、図16から続き、図18へ続く。 端末10と各サーバ装置とにおける、サービス利用時のSAC確立処理の動作を示すフローチャートであり、図17から続く。 認証局における楕円曲線のシステムパラメータ生成の動作を示すフローチャートである。
符号の説明
1 情報セキュリティシステム
10 端末
20 メモリカード
30 サーバ装置
40 サーバ装置
50 サーバ装置
60 ネットワーク
101 通信部
102 操作入力部
103 制御部
104 メモリカード入出力部
105 メモリカード認証部
106 CRL格納部
107 公開鍵暗号処理部
108 記憶部
109 再生部
201 入出力部
202 メモリ制御部
203 認証部
204 メモリ
204a セキュア領域
204b コンテンツ格納領域
204c 公開鍵格納領域
301 通信部
302 制御部
303 CRL格納部
304 Cert管理部
305 登録情報管理部
306 公開鍵暗号処理部
307 コンテンツ格納部

Claims (16)

  1. 同一の条件を有する整数の集合上で、一の演算の逆算を行うことが計算量上困難であることを利用して、情報を安全かつ確実に扱う情報セキュリティ装置であって、
    秘密鍵を生成する秘密鍵生成手段と、
    前記条件を特定するパラメータを複数取得するパラメータ取得手段と、
    取得した複数のパラメータによりそれぞれ決定される複数の集合上で、前記秘密鍵を用いて、複数の公開鍵を生成する公開鍵生成手段と
    を備えることを特徴とする情報セキュリティ装置。
  2. 前記情報セキュリティ装置は、ネットワークを介して複数のサーバ装置と接続されており、
    前記パラメータ取得手段は、前記複数のサーバ装置から、それぞれ異なるパラメータを取得し、
    前記公開鍵生成手段は、前記パラメータ取得手段が取得した複数のパラメータを用いて、それぞれ異なる前記複数の公開鍵を生成する
    ことを特徴とする請求項1に記載の情報セキュリティ装置。
  3. 前記情報セキュリティ装置は、更に、
    前記公開鍵生成手段により生成された前記複数の公開鍵を、各公開鍵の生成に用いたパラメータの送信元であるサーバ装置へ送信する公開鍵送信手段と、
    前記複数のサーバ装置のそれぞれから、公開鍵及び各サーバ装置の署名を含む公開鍵証明書を取得する公開鍵証明書取得手段と、
    前記秘密鍵生成手段により生成された秘密鍵、及び、前記公開鍵証明書取得手段により取得された複数の公開鍵証明書を記憶する鍵記憶手段と
    を備えることを特徴とする請求項2に記載の情報セキュリティ装置。
  4. 前記情報セキュリティ装置は、更に、
    前記鍵記憶手段から一の公開鍵証明書を読み出し、読み出した公開鍵証明書を含むコンテンツ要求を、前記公開鍵証明書の発行元であるサーバ装置へ送信するコンテンツ要求手段と、
    前記秘密鍵及び前記公開鍵証明書に含まれる公開鍵とを用いて前記サーバ装置から安全かつ確実にコンテンツを取得するコンテンツ取得手段と
    を備えることを特徴とする請求項3に記載の情報セキュリティ装置。
  5. 前記コンテンツ取得手段は、
    前記秘密鍵を用いて生成した署名データを前記サーバ装置へ送信し、前記サーバ装置から前記公開鍵を用いて認証を受け、且つ、前記サーバ装置を認証する認証部と、
    前記認証部による認証に成功した場合に、前記サーバ装置と安全に鍵情報を共有する鍵共有部と、
    前記鍵情報を用いてコンテンツを暗号化した暗号化コンテンツを、前記サーバ装置から受信する受信部と、
    受信した暗号化コンテンツを前記鍵情報を用いて復号する復号部と
    を備えることを特徴とする請求項4に記載の情報セキュリティ装置。
  6. 前記鍵記憶手段は、当該情報セキュリティ装置に挿入された可搬型のメモリカードであって、
    前記公開鍵生成手段は、前記メモリカードに前記秘密鍵及び前記複数の公開鍵証明書を書き込み、
    前記メモリカードは、外部から解読及び改竄が不可能なセキュアな記憶領域を含み、前記セキュアな記憶領域に前記秘密鍵を格納する
    ことを特徴とする請求項3に記載の情報セキュリティ装置。
  7. 前記情報セキュリティ装置は、更に、
    前記メモリカードが当該情報セキュリティ装置に挿入されると、前記メモリカードの正当性を認証するメモリカード認証手段と、
    前記メモリカード認証手段による認証に失敗した場合、前記公開鍵生成手段による前記秘密鍵及び前記複数の公開鍵証明書の前記メモリカードへの書き込みを抑制する書込抑制手段と
    を備えることを特徴とする請求項6に記載の情報セキュリティ装置。
  8. 前記情報セキュリティ装置は、楕円曲線上の離散対数問題を安全性の根拠とし、
    前記パラメータ取得手段は、楕円曲線を構成するパラメータを複数取得し、
    前記公開鍵生成手段は、取得した複数のパラメータごとに、前記秘密鍵に楕円曲線上の乗算を施すことにより、前記複数の公開鍵を生成する
    ことを特徴とする請求項1に記載の情報セキュリティ装置。
  9. 前記秘密鍵生成手段は、1個の秘密鍵SKを生成し、
    前記パラメータ取得手段は、楕円曲線y2=x3+ax+bを構成するパラメータa、b、素数p、及び前記楕円曲線上の元Gの組を複数取得し、
    前記公開鍵生成手段は、取得した複数の組ごとに、SK*G(modp)を計算することにより、前記複数の公開鍵を生成する
    ことを特徴とする請求項8に記載の情報セキュリティ装置。
  10. 前記情報セキュリティ装置は、RSA暗号を安全性の根拠とし、
    前記秘密鍵生成手段は、1個の秘密鍵dを生成し、
    前記パラメータ取得手段は、前記パラメータとして、素数の組(P、Q)を複数取得し、
    前記公開鍵生成手段は、取得した複数の素数の組ごとに、
    N=PQを計算し、更に、ed≡1mod(P−1)(Q−1)から、eを計算し、前記複数の公開鍵(N、e)の組を生成する
    ことを特徴とする請求項1に記載の情報セキュリティ装置。
  11. 同一の条件を有する整数の集合上で、一の演算の逆算を行うことが計算量上困難であることを利用して、情報を安全かつ確実に扱うメモリカードであって、
    秘密鍵を生成する秘密鍵生成手段と、
    前記条件を特定するパラメータを複数取得するパラメータ取得手段と、
    取得した複数のパラメータによりそれぞれ決定される複数の集合上で、前記秘密鍵を用いて、複数の公開鍵を生成する公開鍵生成手段と、
    前記秘密鍵を、外部から解読及び改竄が不可能なセキュアな領域に記憶する秘密鍵記憶手段と
    を備えることを特徴とするメモリカード。
  12. 前記メモリカードは、ネットワークを介して複数のサーバ装置と接続された端末に挿入されており、
    前記パラメータ取得手段は、前記端末を介して、前記複数のサーバ装置から、それぞれ異なるパラメータを取得し、
    前記公開鍵生成手段は、前記パラメータ取得手段が取得した複数のパラメータを用いて、それぞれ異なる前記複数の公開鍵を生成する
    ことを特徴とする請求項11に記載のメモリカード。
  13. 前記メモリカードは、更に、
    前記秘密鍵及び前記複数の公開鍵を用いて、前記端末を介して、前記複数のサーバ装置それぞれから、安全かつ確実にコンテンツを取得する
    ことを特徴とする請求項12に記載のメモリカード。
  14. 同一の条件を有する整数の集合上で、一の演算の逆算を行うことが計算量上困難であることを利用して、情報を安全かつ確実に扱う情報セキュリティシステムであって、
    秘密鍵を生成する秘密鍵生成手段と、
    前記条件を特定するパラメータを複数個取得するパラメータ取得手段と、
    取得した複数のパラメータによりそれぞれ決定される複数の集合上で、前記秘密鍵を用いて、複数の公開鍵を生成する公開鍵生成手段と
    を備えることを特徴とする情報セキュリティシステム。
  15. 同一の条件を有する整数の集合上で、一の演算の逆算を行うことが計算量上困難であることを利用して、情報を安全かつ確実に扱う情報セキュリティ装置で用いられる鍵生成方法であって、
    秘密鍵を生成する秘密鍵生成ステップと、
    前記条件を特定するパラメータを複数取得するパラメータ取得ステップと、
    取得した複数のパラメータによりそれぞれ決定される複数の集合上で、前記秘密鍵を用いて、複数の公開鍵を生成する公開鍵生成ステップと
    を含むことを特徴とする鍵生成方法。
  16. 同一の条件を有する整数の集合上で、一の演算の逆算を行うことが計算量上困難であることを利用して、情報を安全かつ確実に扱う情報セキュリティ装置で用いられる鍵生成プログラムであって、
    秘密鍵を生成する秘密鍵生成ステップと、
    前記条件を特定するパラメータを複数取得するパラメータ取得ステップと、
    取得した複数のパラメータによりそれぞれ決定される複数の集合上で、前記秘密鍵を用いて、複数の公開鍵を生成する公開鍵生成ステップと
    を含むことを特徴とする鍵生成プログラム。
JP2004074739A 2004-03-16 2004-03-16 情報セキュリティ装置及び情報セキュリティシステム Withdrawn JP2005268931A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004074739A JP2005268931A (ja) 2004-03-16 2004-03-16 情報セキュリティ装置及び情報セキュリティシステム
EP05721039A EP1726119A1 (en) 2004-03-16 2005-03-11 Information security apparatus and information security system
PCT/JP2005/004852 WO2005088900A1 (en) 2004-03-16 2005-03-11 Information security apparatus and information security system
US10/591,276 US20070174618A1 (en) 2004-03-16 2005-03-11 Information security apparatus and information security system
CNA2005800155976A CN1954544A (zh) 2004-03-16 2005-03-11 信息安全装置和信息安全系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004074739A JP2005268931A (ja) 2004-03-16 2004-03-16 情報セキュリティ装置及び情報セキュリティシステム

Publications (1)

Publication Number Publication Date
JP2005268931A true JP2005268931A (ja) 2005-09-29

Family

ID=34961902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004074739A Withdrawn JP2005268931A (ja) 2004-03-16 2004-03-16 情報セキュリティ装置及び情報セキュリティシステム

Country Status (5)

Country Link
US (1) US20070174618A1 (ja)
EP (1) EP1726119A1 (ja)
JP (1) JP2005268931A (ja)
CN (1) CN1954544A (ja)
WO (1) WO2005088900A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007066543A1 (ja) * 2005-12-07 2007-06-14 Matsushita Electric Industrial Co., Ltd. 設計情報提供システムおよび設計情報提供サーバ
JP2007318745A (ja) * 2006-04-27 2007-12-06 Matsushita Electric Ind Co Ltd コンテンツ配信システム
JP2012142037A (ja) * 2012-05-02 2012-07-26 Panasonic Corp 電子機器、ロック解除方法およびプログラム
JP2012531641A (ja) * 2009-06-29 2012-12-10 ブンデスドルケライ ゲーエムベーハー 識別子を生成する方法
JP2019050511A (ja) * 2017-09-11 2019-03-28 ブラザー工業株式会社 情報処理装置、および、コンピュータプログラム
WO2020044666A1 (ja) * 2018-08-28 2020-03-05 パナソニックIpマネジメント株式会社 証明書生成方法、証明書生成装置およびコンピュータプログラム

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8112626B1 (en) 2006-01-20 2012-02-07 Symantec Corporation Method and apparatus to provide public key authentication with low complexity devices
BRPI0712152A2 (pt) * 2006-06-09 2012-02-22 Verisign, Inc. método e aparelho para prover autetenticação e privacidade com dispositivos de baixa complexidade
KR100772534B1 (ko) * 2006-10-24 2007-11-01 한국전자통신연구원 공개키 기반 디바이스 인증 시스템 및 그 방법
US8935771B2 (en) * 2006-11-06 2015-01-13 Safenet, Inc. System, method, and computer security device having virtual memory cells
WO2008152532A2 (en) * 2007-06-11 2008-12-18 Nxp B.V. Method of generating a public key for an electronic device and electronic device
JP5042313B2 (ja) * 2007-08-28 2012-10-03 パナソニック株式会社 電子機器およびロック解除方法
JP5172847B2 (ja) * 2007-09-05 2013-03-27 パナソニック株式会社 電子機器
JP5201716B2 (ja) * 2007-09-28 2013-06-05 東芝ソリューション株式会社 暗号モジュール配信システム、暗号管理サーバ装置、暗号処理装置、クライアント装置、暗号管理プログラム、暗号処理プログラム、およびクライアントプログラム
JP5429952B2 (ja) * 2008-03-05 2014-02-26 パナソニック株式会社 電子機器、パスワード削除方法およびプログラム
WO2011068738A2 (en) * 2009-11-25 2011-06-09 Orsini Rick L Systems and methods for securing data in motion
US8996002B2 (en) * 2010-06-14 2015-03-31 Apple Inc. Apparatus and methods for provisioning subscriber identity data in a wireless network
US8555067B2 (en) 2010-10-28 2013-10-08 Apple Inc. Methods and apparatus for delivering electronic identification components over a wireless network
JP2015033038A (ja) 2013-08-05 2015-02-16 ソニー株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US9439072B2 (en) 2013-11-08 2016-09-06 Teamblind Inc. System and method for authentication
WO2015070032A1 (en) * 2013-11-08 2015-05-14 Teamblind Inc. System and method for authentication
TWI501104B (zh) * 2014-03-06 2015-09-21 Univ Nat Chi Nan The method of establishing the conversation key
KR20180098589A (ko) * 2015-12-21 2018-09-04 코닌클리케 필립스 엔.브이. 보안 통신을 위한 네트워크 시스템
EP3387576B1 (en) * 2016-07-14 2020-12-16 Huawei Technologies Co., Ltd. Apparatus and method for certificate enrollment
US10855667B2 (en) 2018-06-01 2020-12-01 Paypal, Inc. Using keys with targeted access to the blockchain to verify and authenticate identity
CN112465500A (zh) * 2019-09-09 2021-03-09 本田技研工业株式会社 用于在区块链内保护私钥交易的系统和方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9410337D0 (en) * 1994-05-24 1994-07-13 Cryptech Systems Inc Key transmission system
US5757914A (en) * 1995-10-26 1998-05-26 Sun Microsystems, Inc. System and method for protecting use of dynamically linked executable modules
EP0892520A3 (en) * 1997-07-17 2001-10-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve calculation apparatus capable of calculating multiples at high speed
FR2775399B1 (fr) * 1998-02-24 2000-03-17 France Telecom Procede de signature numerique borgne
CN1235446A (zh) * 1998-03-05 1999-11-17 松下电器产业株式会社 椭圆曲线变换装置、利用装置和利用系统
US7124938B1 (en) * 1999-03-24 2006-10-24 Microsoft Corporation Enhancing smart card usage for associating media content with households
US7203956B2 (en) * 1999-12-22 2007-04-10 Transnexus, Inc. System and method for the secure enrollment of devices with a clearinghouse server for internet telephony and multimedia communications
NO313480B1 (no) * 2001-01-24 2002-10-07 Telenor Asa Fremgangsmåte for å åpne hele eller deler av et smartkort
US7174568B2 (en) * 2001-01-31 2007-02-06 Sony Computer Entertainment America Inc. Method and system for securely distributing computer software products
US20020146125A1 (en) * 2001-03-14 2002-10-10 Ahmet Eskicioglu CA system for broadcast DTV using multiple keys for different service providers and service areas
US7305711B2 (en) * 2002-12-10 2007-12-04 Intel Corporation Public key media key block

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007066543A1 (ja) * 2005-12-07 2007-06-14 Matsushita Electric Industrial Co., Ltd. 設計情報提供システムおよび設計情報提供サーバ
US8151331B2 (en) 2005-12-07 2012-04-03 Panasonic Corporation Information providing system and design information providing server
US8887252B2 (en) 2005-12-07 2014-11-11 Panasonic Corporation Information providing system and design information providing server
JP2007318745A (ja) * 2006-04-27 2007-12-06 Matsushita Electric Ind Co Ltd コンテンツ配信システム
JP2012531641A (ja) * 2009-06-29 2012-12-10 ブンデスドルケライ ゲーエムベーハー 識別子を生成する方法
JP2012142037A (ja) * 2012-05-02 2012-07-26 Panasonic Corp 電子機器、ロック解除方法およびプログラム
JP2019050511A (ja) * 2017-09-11 2019-03-28 ブラザー工業株式会社 情報処理装置、および、コンピュータプログラム
US11283628B2 (en) 2017-09-11 2022-03-22 Brother Kogyo Kabushiki Kaisha Information processing device that processes information using private key and public key
WO2020044666A1 (ja) * 2018-08-28 2020-03-05 パナソニックIpマネジメント株式会社 証明書生成方法、証明書生成装置およびコンピュータプログラム
JPWO2020044666A1 (ja) * 2018-08-28 2021-08-10 パナソニックIpマネジメント株式会社 証明書生成方法、証明書生成装置およびコンピュータプログラム
JP7054796B2 (ja) 2018-08-28 2022-04-15 パナソニックIpマネジメント株式会社 証明書生成方法、証明書生成装置およびコンピュータプログラム

Also Published As

Publication number Publication date
US20070174618A1 (en) 2007-07-26
WO2005088900A1 (en) 2005-09-22
CN1954544A (zh) 2007-04-25
EP1726119A1 (en) 2006-11-29

Similar Documents

Publication Publication Date Title
JP2005268931A (ja) 情報セキュリティ装置及び情報セキュリティシステム
JP4750695B2 (ja) コンテンツ提供システム、情報処理装置及びメモリカード
AU2015277000B2 (en) Efficient methods for authenticated communication
CN106330856B (zh) 听力设备和听力设备通信的方法
CN106330859B (zh) 制造听力设备的方法及具有证书的听力设备
KR100568233B1 (ko) 인증서를 이용한 기기 인증 방법 및 상기 방법을 이용하여기기 인증을 수행하는 디지털 컨텐츠 처리 기기
JP4130653B2 (ja) 擬似公開鍵暗号方法及びシステム
US20060083370A1 (en) RSA with personalized secret
KR20170035665A (ko) 키 교환 장치 및 방법
JP5047638B2 (ja) 暗号文復号権委譲システム
KR101516114B1 (ko) 인증서 기반 프록시 재암호화 방법 및 이를 위한 시스템
CN106330529B (zh) 具有通信日志记录的听力设备和相关方法
JP2015226132A (ja) 署名検証システム、通信装置、検証装置、署名生成方法、及び署名検証方法
CN111769938A (zh) 一种区块链传感器的密钥管理系统、数据验证系统
TW200421808A (en) Method and apparatus for augmenting authentication in a cryptographic system
JP2000115154A (ja) 記憶装置および方法、復号装置および方法、提供媒体、並びに情報記憶媒体
JP5079479B2 (ja) Idベース暗号システム、方法
US20220038267A1 (en) Methods and devices for secured identity-based encryption systems with two trusted centers
JP2006025298A (ja) 相互認証方法、相互認証装置、及び相互認証システム
US20230327884A1 (en) Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge
JP2004015527A (ja) データ処理権限管理システム、情報処理装置、および方法、並びにコンピュータ・プログラム
JP2010141619A (ja) 通信装置、サーバ装置、通信プログラム、及びデータ
JP7377495B2 (ja) 暗号システム及び方法
JP3862397B2 (ja) 情報通信システム
JP2003283485A (ja) 暗号鍵管理方法及び暗号鍵管理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070124

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090108