JP4256415B2 - 暗号化装置、復号装置、情報システム、暗号化方法、復号方法及びプログラム - Google Patents

暗号化装置、復号装置、情報システム、暗号化方法、復号方法及びプログラム Download PDF

Info

Publication number
JP4256415B2
JP4256415B2 JP2006238988A JP2006238988A JP4256415B2 JP 4256415 B2 JP4256415 B2 JP 4256415B2 JP 2006238988 A JP2006238988 A JP 2006238988A JP 2006238988 A JP2006238988 A JP 2006238988A JP 4256415 B2 JP4256415 B2 JP 4256415B2
Authority
JP
Japan
Prior art keywords
user
key
encryption
encrypted
information
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.)
Expired - Fee Related
Application number
JP2006238988A
Other languages
English (en)
Other versions
JP2008061197A (ja
Inventor
康生 秦野
邦彦 宮崎
健司 松本
清水  洋二
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006238988A priority Critical patent/JP4256415B2/ja
Priority to EP07017296A priority patent/EP1895739A3/en
Priority to US11/849,465 priority patent/US8094824B2/en
Publication of JP2008061197A publication Critical patent/JP2008061197A/ja
Application granted granted Critical
Publication of JP4256415B2 publication Critical patent/JP4256415B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

本発明は、コンテンツの構成要素毎に暗号化及び復号を行う技術に関する。
近年、情報通信機器の発展によって、様々なコンテンツが電子的に利用されるようになってきている。これらコンテンツの中には、例えば個人情報のように、それを閲覧する利用者によって閲覧を禁止、或いは、制限しなければならない場合がある。例えば、インターネット上に個人情報を公開した場合には、悪意のある利用者によって個人情報が悪用されることが考えられる。
この点、従来からコンテンツを暗号化することによって、コンテンツを保護する方法が知られている。
例えば、非特許文献1や非特許文献2に記載されている技術では、暗号化されたコンテンツを復号するための鍵情報の配布方法を工夫する等によって、グループ内の限られた利用者にのみコンテンツを閲覧することができるようにしている。
Jun Anzai, Natsume Matsuzaki, and Tsutomu Matsumoto, "A Quick Group Key Distribution Scheme with Entity Revocation", Advances in Cryptology − Asiacrypt’99, Lecture Notes in Computer Science: Vol.1716 (LNCS 1716), pp.333−347, Springer−Verlag, 1999. Nuttapong Attrapadung、Kazukuni Kobara and Hideki Imai、"Broadcast encryption with short keys and transmissions"、Proceedings of the 3rd ACM workshop on Digital rights management、pp.55 − 66 、2003
非特許文献1や非特許文献2に記載されている従来技術では、コンテンツ単位で暗号化をするものであるため、コンテンツの部分毎に各々異なる利用者に選択的に開示することはできない。
そこで、本発明は、コンテンツに含まれる部分毎に、閲覧することのできる利用者を制限することができる技術を提供することを目的とする。
以上の課題を解決するため、本発明は、コンテンツデータに含まれる構成要素毎に閲覧を許可する利用者の公開鍵と、コンテンツデータの管理者の秘密鍵と、を用いて暗号化鍵を生成し、当該暗号化鍵で構成要素毎に暗号化を行い、暗号化コンテンツを生成する。
例えば、本発明は、コンテンツデータを暗号化する暗号化装置であって、第一利用者の秘密鍵、前記第一利用者及び複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第一公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶部と、制御部と、を備え、前記制御部は、前記コンテンツデータを構成する構成要素のうち、少なくとも一つ以上の構成要素をそれぞれ暗号対象部分として特定する暗号化対象部分特定処理と、前記暗号化対象部分毎に対応する乱数を生成する乱数生成処理と、前記暗号化対象部分毎に、前記複数の第二利用者から当該暗号化対象部分の閲覧を許可する第二利用者の識別情報を特定する利用者リスト情報を生成する利用者特定処理と、前記暗号化対象部分毎に、前記利用者特定処理により特定された第二利用者の識別情報に対応する公開鍵を前記第一公開鍵情報から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、前記暗号化鍵生成用鍵を用いて、前記暗号化対象部分毎に対応する乱数を暗号化して、前記暗号化対象部分毎に暗号化鍵を生成する暗号化鍵生成処理と、前記暗号化対象部分毎に、前記暗号化鍵生成処理により生成された暗号化鍵を用いて、対応する前記暗号化対象部分を暗号化した暗号化部分を生成する暗号化処理と、前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を備える暗号化コンテンツを生成する暗号化コンテンツ生成処理と、を行うこと、を特徴とする。
以上のように、本発明によれば、コンテンツに含まれる部分毎に、閲覧することのできる利用者を制限することができる。
図1は、本発明の第一の実施形態である情報システム100の概略図である。
図示するように,情報システム100は、鍵管理装置110と、鍵保管装置120と、コンテンツ保管装置130と、利用者装置140A〜140Cと、を備えており、これらは、ネットワーク160を介して相互に接続される。
鍵管理装置110は、図2(鍵管理装置の概略図)に示されているように、制御部111と、記憶部114と、送受信部116と、入力部117と、出力部118と、を備えている。
制御部111は、図示するように、送受信処理部112と、鍵生成処理部113と、を備えている。
送受信処理部112は、後述する送受信部116を介したデータの送受信を制御する。
鍵生成処理部113は、後述する利用者装置140A〜140Cで使用する秘密鍵及び公開鍵を生成するための管理用秘密鍵を生成し、後述する記憶部114の管理用鍵記憶領域115に記憶する。
また、鍵生成処理部113は、後述する利用者装置140A〜140Cからの利用者登録要求に応じて、利用者装置140A〜140Cで使用する秘密鍵及びこの秘密鍵に対応する公開鍵を生成する。
そして、鍵生成処理部113は、送受信処理部112を介して後述する送受信部116から後述する利用者装置140A〜140Cに秘密鍵を送信するとともに、後述する鍵保管装置120に公開鍵を送信する処理を制御する。
なお、後述する利用者装置140A〜140Cからの利用者登録要求は、利用者を識別するための利用者IDが含まれており、秘密鍵及び公開鍵については、利用者ID毎に作成され、鍵保管装置120に送信する公開鍵には利用者IDも添付する。
記憶部114は、図示するように、管理用鍵記憶領域115を備えている。
管理用鍵記憶領域115には、後述する利用者装置140A〜140Cで使用する秘密鍵及び公開鍵を生成するための管理用秘密鍵が記憶される。
送受信部116は、ネットワーク160を介してデータの送受信を行うためのインタフェースである。
入力部117は、データの入力を行うためのデバイスである。
出力部118は、データの出力を行うためのデバイスである。
以上のように構成される鍵管理装置110は、例えば、図3(コンピュータの概略図)に示すようなコンピュータ170により実現可能である。
例えば、制御部111は、外部記憶装置173に記憶されている所定のプログラムをCPU(Central Processing Unit)171で実行することにより実現可能であり、記憶部114は、ハードディスク等の外部記憶装置173により実現可能であり、送受信部116は、NIC(Network Interface Card)等の通信装置174により実現可能であり、入力部117は、キーボードやマウス等の入力装置175により実現可能であり、出力部153は、磁気ディスク、光学ディスク、半導体メモリ等の外部記憶媒体へのリーダデバイス等の出力装置406で実現可能である。
図4は、鍵保管装置120の概略図である。
図示するように、鍵保管装置120は、制御部121と、記憶部123と、送受信部125と、を備えている。
制御部121は、図示するように、送受信処理部122を備えている。
送受信処理部122は、後述する送受信部125を介したデータの送受信を制御する。
記憶部123は、図示するように、公開鍵記憶領域124を備えている。
公開鍵記憶領域124には、鍵管理装置110より受信した公開鍵と、利用者を特定する情報と、が対応されて記憶される。例えば、本実施形態においては、図5(公開鍵テーブルの概略図)に示されているような公開鍵テーブル124aが記憶される。
公開鍵テーブル124aには、利用者ID欄124bと、公開鍵欄124cと、が設けられている。
利用者ID欄124bには、利用者を特定する情報として利用者IDが登録される。
公開鍵欄124cには、利用者ID欄124bで特定される利用者の公開鍵が登録される。
送受信部125は、ネットワーク160を介してデータの送受信を行うためのインタフェースである。
以上のように構成される鍵保管装置120についても、例えば、図3に示すようなコンピュータ170により実現可能である。
例えば、制御部121は、外部記憶装置173に記憶されている所定のプログラムをCPU171で実行することにより実現可能であり、記憶部123は、ハードディスク等の外部記憶装置173により実現可能であり、送受信部125は、NIC等の通信装置174により実現可能である。
図6は、コンテンツ保管装置130の概略図である。
図示するように、コンテンツ保管装置130は、制御部131と、記憶部133と、送受信部135と、を備えている
制御部131は、図示するように、送受信処理部132を備えている。
送受信処理部132は、後述する送受信部135を介したデータの送受信を制御する。
記憶部133は、図示するように、暗号化コンテンツ記憶領域134を備えている。
暗号化コンテンツ記憶領域134には、後述する利用者装置140A〜140Cより受信した暗号化コンテンツが記憶される。なお、暗号化コンテンツのデータ構造については後述する。
送受信部135は、ネットワーク160を介してデータの送受信を行うためのインタフェースである。
以上のように構成される鍵保管装置130についても、例えば、図3に示すようなコンピュータ170により実現可能である。
例えば、制御部131は、外部記憶装置173に記憶されている所定のプログラムをCPU171で実行することにより実現可能であり、記憶部133は、ハードディスク等の外部記憶装置173により実現可能であり、送受信部135は、NIC等の通信装置174により実現可能である。
利用者装置140A〜140Cは、図7(利用者装置の概略図)に示されているように、制御部141と、記憶部146と、送受信部151と、入力部152と、出力部153と、読取部154と、を備えている。
制御部141は、図示するように、送受信処理部142と、コンテンツ処理部143と、暗号処理部144と、復号処理部145と、を備えている。
送受信処理部142は、後述する送受信部151を介したデータの送受信を制御する。
特に、本実施形態では、鍵管理装置110に対して送信する利用者登録要求を生成して、後述する送受信部151を介して鍵管理装置110に送信し、また、コンテンツ保管装置148に対して送信する暗号化コンテンツ登録要求を生成して、後述する送受信部151を介してコンテンツ保管装置148に送信し、さらに、コンテンツ保管装置148に対して送信する暗号化コンテンツ送信要求を生成して、後述する送受信部151を介してコンテンツ保管装置148に送信する処理を制御する。
また、送受信処理部142は、鍵管理装置110より受信した秘密鍵を後述する秘密鍵記憶領域149に記憶し、鍵保管装置120より受信した公開鍵を後述する公開鍵記憶領域150に記憶し、コンテンツ保管装置130から受信した暗号化コンテンツを暗号化コンテンツ記憶領域148に記憶する処理についても制御する。
コンテンツ処理部143は、後述する入力部152を介して利用者装置140A〜140Cの利用者からデータの入力を受け付けてコンテンツデータを生成し、または、後述する読取部154を介してコンテンツデータを読み取り、後述するコンテンツデータ記憶領域147に記憶する。
暗号処理部144は、後述する入力部152を介して利用者装置140A〜140Cの利用者から暗号化するコンテンツデータを特定した暗号化指令を受けると、特定されたコンテンツデータの暗号化を行い、暗号化コンテンツの生成を行う。なお、暗号化コンテンツの生成処理については、図11を用いて後述する。
復号処理部145は、コンテンツ保管装置148より暗号化コンテンツを受信すると、受信した暗号化コンテンツの復号を行い、コンテンツデータを生成する。なお、コンテンツデータの復号処理については、図15を用いて後述する。
記憶部146は、図示するように、コンテンツデータ記憶領域147と、暗号化コンテンツ記憶領域148と、秘密鍵記憶領域149と、公開鍵記憶領域150と、を備えている。
コンテンツデータ記憶領域147には、入力部152を介してコンテンツ処理部143において生成され、または、読取部154を介してコンテンツ処理部143において読み取られたコンテンツデータが記憶される。
暗号化コンテンツ記憶領域148には、暗号処理部144において生成された暗号化コンテンツが記憶される。
秘密鍵記憶領域149には、鍵管理装置110において生成された特定の利用者の秘密鍵が記憶される。
公開鍵記憶領域150には、鍵保管装置120から受信した各利用者の公開鍵と、当該公開鍵の利用者(所有者)を特定する情報と、が対応されて記憶される。
例えば、公開鍵記憶領域150にも、図5に示すような公開鍵テーブル124aと同様の利用者ID欄124b及び公開鍵欄124cを備えるテーブルを記憶しておくことで、利用者IDと当該利用者IDに対応する公開鍵とを記憶することができる。
送受信部151は、ネットワーク160を介してデータの送受信を行うためのインタフェースである。
入力部152は、データの入力を行うためのデバイスである。
出力部153は、データの出力を行うためのデバイスであり、例えば、復号処理部145において復号されたコンテンツデータの表示等を行う。
読取部154は、磁気ディスク、光学ディスク、半導体メモリ等の外部記憶媒体からデータを読み取るためのデバイスである。
以上のように構成される利用者装置140A〜140Cについても、図3に示すようなコンピュータ170により構成することができる。
例えば、制御部141は、外部記憶装置173に記憶されている所定のプログラムをCPU171で実行することにより実現可能であり、記憶部146は、ハードディスク等の外部記憶装置173により実現可能であり、送受信部151は、NIC等の通信装置174により実現可能であり、入力部152は、キーボードやマウス等の入力装置174により実現可能であり、出力部153は、ディスプレイ等の出力装置176で実現可能であり、読取部154は、CD-ROMやDVD-ROM等の可搬性を有する記憶媒体180から情報を読み取る読取装置178により実現可能である。
以下、本実施形態である情報システム100におけるデータのフローについて説明する。
図8は、鍵管理装置110における管理用秘密鍵の生成処理を示すフローチャートである。
鍵管理装置110における管理用秘密鍵の生成処理は、例えば、鍵管理装置110のオペレータが入力部117を介して、管理用秘密鍵の生成指示を入力することにより開始される。
まず、鍵管理装置110の鍵生成処理部113は、2つの異なる素数p,qを生成し、n=pqを計算する(S10)。
次に、鍵生成処理部113は、ステップS10で計算されたn未満の整数sを生成する(S11)。
そして、鍵生成処理部113は、以上のようにして生成されたp、q、n、sを管理用秘密鍵として管理用鍵記憶領域115に記憶する(S12)。
以上の説明において、係数n(=pq)は管理用秘密鍵の一部に含めているが、係数nは公開情報であるため、必ずしも管理用秘密鍵に含める必要はなく、例えば、鍵保管装置120において、情報システム100で共用する公開情報として保管・公開してもよい。
また、以下の説明においても同様にして、係数n(=pq)を公開情報とする場合には、nを利用者の秘密情報に含めなくてもよい。
一方、p、q、sは、ひとたび外部に漏洩すると、利用者の秘密鍵が公開鍵から容易に計算可能になるため、安全に保管しておくことが望ましい。
図9は、利用者装置140A〜140Cで使用する秘密鍵及び当該秘密鍵に対応する公開鍵の生成処理を示すフローチャートである。
ここで、本フローチャートで登録を行う利用者を利用者i(利用者IDは、u)とする。
まず、利用者装置140A〜140Cの利用者は、いずれかの利用者装置140A〜140Cを介して、利用者登録要求を鍵管理装置110に送信する(S20)。ここで、利用者登録要求には、利用者iを識別するための利用者ID(u)を含める。
ステップS20における利用者登録要求は、例えば電子メールを鍵管理装置110に送信する、あるいは、鍵管理装置110が登録用Webページを利用者装置140A〜140Cに公開し、利用者装置140A〜140Cから登録用Webページを用いて(HTTPを用いて)、鍵管理装置110に利用者登録要求を送信する、などの方法によって実現できる。なお、秘密鍵保管完了通知、公開鍵登録完了通知等についても同様に電子メールやHTTP等を用いて、実現することができる。
利用者装置140A〜140Cから利用者登録要求を鍵管理装置110が送受信部111を介して受信すると(S21)、送受信処理部112から鍵生成処理部113に鍵生成の指示がなされ、鍵生成処理部113では、φ(n)未満の素数pkを生成し、下記の(1)式を計算することで、skを生成する(S22)。
Figure 0004256415
ここで、ステップS22における関数φはオイラー関数であり、正の整数aに対して、1からaまでの正整数のうちaと互いに素なものの個数を出力する。また、ステップS22においては、n=pqより、オイラー関数の性質を用いてφ(n)=(p−1)(q−1)と計算できる。
そして、送受信処理部112は、ステップS22で生成されたpkを公開鍵として、利用者iの利用者IDであるuとともに、送受信部116を介して、鍵保管装置102に送付する(S23)。
鍵保管装置120の送受信処理部122は、送受信部125を介して、利用者IDであるuとともに公開鍵pkを受信すると(S24)、公開鍵記憶領域124に記憶されている公開鍵テーブル124aに新たな行を作成し、この利用者ID(u)と公開鍵pkとを登録する(S25)。
また、鍵保管装置120は、ステップS25で登録した公開鍵pkを、例えばWebページ上で公開等することで、利用者装置140A〜140Cの利用者から利用することができるようにする。
そして、鍵保管装置120の送受信処理部122は、利用者ID(u)と公開鍵pkとの登録を行った後、送受信部125を介して、登録完了通知を鍵管理装置110に送信する(S26)。
鍵管理装置101の送受信処理部112は、送受信部116を介して、鍵保管装置120から登録完了通知を受信すると(S27)、ステップS22で生成した利用者iの秘密鍵skと係数nとを秘密情報(n、sk)として、登録完了通知とともに、ステップS20で利用者登録要求を送信した利用者装置140A〜140Cに送信する(S28)。
ここで、ステップS28における秘密情報(n,sk)の利用者装置140A〜140Cへの送信は、第三者への漏洩を防止するため、暗号化通信等を用いることが望ましい。
利用者装置140A〜140Cは、送受信部151を介して、鍵管理装置110から秘密情報(n、sk)及び利用者登録完了通知を受信すると(S30)、送受信処理部142が、秘密情報(n、sk)を秘密鍵記憶領域149に記憶する(S30)。
なお、利用者装置140A〜140Cにおける秘密情報(n、sk)の管理は、セキュリティ上の観点から、ICカードなど耐タンパ性のある装置に格納しておくことが望ましい。
また、上記の処理フローでは、係数nを利用者の秘密情報の一部として扱っているが、係数nは秘密情報に含めなくともよく、公開鍵とともに公開情報の一部として扱うことも可能である。この場合、係数nについても鍵保管装置120に送信して公開することが望ましい。
また、上記の利用者の登録において、例えば、不正な利用者の登録を排除するなどの目的のため、登録する利用者をある程度制限することが望まれる場合がある。このような場合には、例えば利用者登録要求に既存の利用者からの招待状を添付する、などすればよい。
なお、利用者iに対して発行された秘密鍵skとそれに対応する公開鍵pkを削除する際には、例えば、利用者装置140A〜140Cから、利用者iの秘密情報(n、sk)を削除し、利用者削除要求を鍵管理装置110に送信することにより、行えばよい。このような利用者削除要求を受信した鍵管理装置110では、鍵保管装置120に利用者iの削除要求を送付し、鍵保管装置120が利用者iの公開鍵pkを削除して、鍵管理装置110を介して、利用者装置140A〜140Cに利用者iの利用者削除完了通知を送付すればよい。
このような削除処理において、セキュリティ上の観点からは、悪意のある利用者が勝手に他の利用者に成りすまして、利用者の削除を行うことを防ぐため、利用者削除要求を送信する利用者の認証(確認)を鍵管理装置110が行うことが望ましい。このためには、例えば、鍵管理装置101において利用者のID(u)と秘密鍵skの対応を保管しておき、利用者装置140A〜140Cが鍵管理装置110に送信する利用者削除要求の中に削除する利用者iの秘密鍵skを含め、利用者削除要求に含まれる秘密鍵skが利用者削除要求を送信した利用者iの秘密鍵skと一致するかどうかを確認する、等の処理を行えばよい。なお、このとき利用者削除要求は、暗号化通信を用いるなどして、鍵管理装置101に安全に送信されることが望ましい。なお、このような利用者の認証(確認)は、上記以外の方法であってもよい。
上記の削除処理おいて、鍵管理装置110は、鍵の削除に際して、どの鍵の削除を行ったかを明確にするため、CRL(Certificate Revocation List)を発行することが望ましい。
なお、このような利用者の鍵の削除は、利用者がコミュニティから脱会する場合の他、利用者iの秘密鍵skが漏洩した場合などにも発生する。また、鍵の漏洩が生じた場合には、鍵管理装置110は、利用者からの要求が無い場合であっても、速やかに鍵の削除処理を行い、それを利用者に通知することが望ましい。
図10は、情報システム100における暗号化コンテンツの生成及び登録処理を示すフローチャートである。
なお、ここでは、利用者装置140A〜140Cのコンテンツデータ記憶領域147に、入力部152を介してコンテンツ処理部143において生成され、または、読取部154を介してコンテンツ処理部143において読み取られたコンテンツデータが既に記憶されているものとする。
暗号化コンテンツの生成及び登録処理は、利用者が利用者装置140A〜140Cの入力部152を介して、暗号化コンテンツの生成及び登録処理の指示を入力することにより開始される。
まず、利用者から暗号化コンテンツの生成及び登録処理の指示を受けた利用者装置140A〜140Cの暗号処理部144は、コンテンツデータ記憶領域147から、暗号化を行うコンテンツデータを取得する(S40)。
そして、暗号処理部144は、ステップS40で取得したコンテンツデータを暗号化して、所定の暗号化コンテンツを生成する(S41)。なお、暗号化コンテンツの具体的な生成方法については図11を用いて後述する。
このようにして生成された暗号化コンテンツは、送受信処理部142から送受信部151を介して、コンテンツ保管装置130に送信される(S42)。
利用者装置140A〜140Cより暗号化コンテンツを受信したコンテンツ保管装置130の送受信処理部132は(S43)、受信した暗号化コンテンツを暗号化コンテンツ記憶領域134に記憶する(S44)。
図11は、利用者装置140A〜140Cの暗号処理部144における暗号化コンテンツの生成処理を示すフローチャートである。ここで、oは自然数を用いる。
なお、ここで、コンテンツデータの暗号化を行う利用者oの利用者IDをu、その秘密情報を(n、sk)、とする。
まず、暗号処理部144は、入力部152を介した利用者からの指示に応じて、コンテンツデータ記憶領域から取得したコンテンツデータを複数の構成要素に分ける(S50)。ここで、複数の構成要素に分ける前のコンテンツデータをコンテンツMとし、複数に分けられた各々の構成要素を部分M,・・・,Mとする(mは、1以上の自然数)。
なお、ステップS50においては、例えば、XML(eXtensible Markup Language)の要素単位や表の行、列、或いはセル単位などを利用してコンテンツデータMを分ければよい。
さらに、ステップS50においては、コンテンツデータの全ての構成要素につき、部分M,・・・,Mとしてもよいし、コンテンツデータに含まれる特定の構成要素を抽出して暗号化の対象となる部分M,・・・,Mとしてもよい。
そして、暗号処理部144は、乱数シード値Rを生成し、乱数生成器RNGを用いて、暗号化鍵生成用乱数R,・・・,Rを公知の技術で算出する(S51)。
例えば、乱数生成器RNGは、線形合同法に基づく乱数生成器のほか、SAH−1やDESを利用した乱数生成器など任意の乱数生成器を利用すればよい。
そして、暗号処理部144は、部分(M,・・・,M)を特定するインデックスiを初期化(i←1)する(S52)。ここで、インデックスiについては、自然数を使用するものとする。
そして、インデックスiがm(mは分けられたコンテンツの部分の数)より大きければステップS58へ、そうでなければ、ステップS54に進む(S53)。
次に、暗号処理部144は、入力部152を介して、部分Mに対して閲覧を許可する利用者のリストL=(u,・・・,u)の入力を受け付ける(S54)。ここで、kは自然数を用いるものとする。
ここで、利用者のリストLには、コンテンツデータの暗号化を行う利用者oの利用者ID(u)を含めておく。
そして、暗号処理部144は、利用者uの秘密情報(n、sk)、暗号化鍵生成用乱数R、リストLから、暗号化鍵sekの生成を行う(S55)。ここで、oは、前述の通り、自然数である。
なお、暗号化鍵sekの具体的な生成方法については,図16を用いて後述する。
暗号処理部144は、ステップS55で生成した暗号化鍵sekを用いて部分Mの共通鍵暗号による暗号化を行い、暗号化部分Cを生成する(S56)。
なお、ステップS56における暗号化鍵sekを用いた部分Mの共通鍵暗号による暗号化は、DESや128ビット鍵のAESなど任意の共通鍵暗号アルゴリズムをCBCなどの任意の暗号利用モードを用いて行えばよい。
そして、暗号処理部144は、インデックスiに「1」をインクリメント(i←i+1)して(S57)、ステップS53に戻って処理を繰り返す。
ステップS53においてインデックスiがmより大きければ、以上のフローで生成された乱数シード値R、利用者のリストL,・・・,L、および、暗号化部分C,・・・,Cを含む暗号化コンテンツCを構成する(S58)。
ここで、暗号化コンテンツCには、暗号化部分C,・・・,C毎に、当該暗号化部分C,・・・,Cを復号した部分M,・・・,Mを結合するための位置情報を含めておく。
なお、上記のステップS56における暗号化鍵sekによる部分Mの暗号化において、部分Mを前記のAESだけで暗号化するだけでなく、MAC(Message Authentication Code)を付与してもよい。これには、例えば、暗号化鍵sekを二つに分割し、上位半分を共通鍵暗号技術における暗号化用鍵、下位半分をMAC生成用の鍵とすればよい。MACを付与することによって、復号処理部145において、暗号化部分Cが正しい部分Mに復号されたかどうかを確認することが可能となる。
また、このほか上記暗号化された結果(暗号化コンテンツC)全体に対して、電子署名、あるいは、MACの付与などを行ってもよい。これによって、コンテンツ保管装置130に記憶された暗号化コンテンツが改ざんされたことを確認することが可能となる。なお、電子署名の付与を行う場合には、暗号化に利用する秘密鍵の他に、電子署名の精製用の署名用秘密鍵が必要となる。また、MACの付与を行う場合には、コンテンツMの閲覧を許可する利用者(部分Mの一つ以上を復号できる利用者)全体の集合と、閲覧の許可を行う利用者(暗号化コンテンツを生成する利用者)の秘密鍵とから、ステップS55の処理を用いて生成される暗号化鍵sekMACを利用して、MACの生成を行う。
さらに、以上の処理では、乱数シード値Rから乱数生成器PRNGを用いて暗号化鍵生成用乱数R,・・・,Rを生成し、これを用いて暗号化鍵sekの生成を行っているが、これと異なってもよい。例えば、ステップS51の暗号化鍵生成用乱数の生成をスキップし全ての部分M,・・・,Mに乱数シード値Rを暗号化鍵生成用乱数として利用することも可能であり、また、暗号化鍵生成用乱数を用いずに利用者uの秘密鍵、リストLのみから暗号化鍵sekの生成を行い、暗号化鍵生成用乱数を、部分M,・・・,Mの暗号化に用いる暗号利用モードの初期値(イニシャルバリュー:IV)として利用することも可能である。
ここで、ステップS58で生成される暗号化コンテンツCのデータ構造としては、例えば、図12(暗号化コンテンツの概略図)に示すようなデータ構造とすればよい。
図示するように、例えば、暗号化コンテンツCは、ヘッダ161と、暗号化コンテンツ本体162と、により構成されている。
ヘッダ161は、乱数シード値Rを特定する情報と、暗号化部分毎に閲覧を許可する利用者を特定する利用者リスト(L,・・・,L)を特定する情報と、を含むものとする。
例えば、ヘッダ161は、図13(ヘッダの概略図)に示すようなXMLデータとして構成することができる。
図示するように、ヘッダ161は、MRCipher要素161aによって表す。
MRCipher要素161aは、暗号化に使用した共通鍵暗号アルゴリズムや乱数の生成に使用した乱数生成器、乱数シード値Rなど、全ての部分M,・・・,Mに共通する情報を格納するMRCipherParam要素161bと、各部分M,・・・,Mを閲覧可能な利用者のリストL、各部分M,・・・,Mの格納場所などの暗号化部分C,・・・,C毎の復号に必要となる情報を格納するMRBlocks要素161cと、を備える。
MRCipherParam要素161bは、EncryptionAlgorithm要素161dと、SekGenerationAlgorithm要素161eと、RandomSeed要素161fから構成される。
EncryptionAlgorithm要素161dは、部分Mを暗号化する際に利用する暗号アルゴリズム、また、SekGenerationAlgorithm要素161eは、乱数シード値Rから暗号化鍵生成用乱数R,・・・,Rを生成するために使用する乱数生成器のアルゴリズム名を記載するための要素である。例えば部分Mの暗号化に128ビット鍵のAESをCBCモードで暗号化する場合には、そのAlgorithm属性に“http://www.w3.org/2001/04/xmlenc#aes128−cbc”などと記述すればよい。また、RandomSeed要素161fには乱数シード値Rを、BASE64符号化を用いて文字列に変換した値を記述する。
MRBlocks要素161cは、各部分コンテンツの復号に必要な情報を格納するためのMRBlock要素161gからなる。
MRBlock要素161gは、その部分Mを閲覧可能な利用者のリストLを格納するためのUserList要素161hと、実際の部分コンテンツが格納されている位置を表すTargetList要素161iと、からなる。
UserList要素161hは、User要素161jを子として持ち、User要素161jのid属性に閲覧を許可する利用者IDを記述することによって、その部分Mを閲覧できる利用者のリストLを表現する。
また、TargetList要素161iは、Target要素161kを子として持ち、Target要素161k内のURI属性にURIを記述する、或いは、XPath式を記述することによって、部分Mの位置を表す。
なお、EncryptionAlgorithm要素161d、SekGenerationAlgorithm要素161e等については、図1に示した情報システム100を通じて共通したアルゴリズムを利用するなど、特に明記しなくとも明らかである場合には、これらの要素を省略してよい。また、上記実現例において使用したMRCipher要素161aなどの要素名は、必ずしも上記の通りでなくてもよい。
さらに、上記実現例では、XMLを用いた実現例として独自のフォーマットを利用しているが、例えば、XMLにおける暗号化の標準規格であるXML Encryptionなどのフォーマットを利用してもよく、暗号化コンテンツCの実現方法は必ずしもXMLで有る必要は無い。
図14は、情報システム100における暗号化コンテンツの取得及び復号処理を示すフローチャートである。
情報システム100における暗号化コンテンツの取得及び復号処理は、利用者が利用者装置140A〜140Cのいずれかに対してその入力部152を介して、暗号化コンテンツの取得指示を入力することにより開始される。
まず、利用者装置140A〜140Cの送受信処理部142は、暗号化コンテンツCの送信要求を生成し、をコンテンツ保管装置130に送信する(S60)。
利用者装置140A〜140Cのいずれかより送信要求を受信したコンテンツ保管装置130は(S61)、送信要求のあった暗号化コンテンツCを暗号化コンテンツ記憶領域134から取得し(S62)、送信要求のあった利用者装置140A〜140Cに取得した暗号化コンテンツCを送信する(S63)。
コンテンツ保管装置130より暗号化コンテンツCを受信した利用者装置140A〜140Cでは(S64)、送受信処理部142から復号処理部145に暗号化コンテンツCを送り、復号処理部145において暗号化コンテンツCの復号を行い(S65)、出力部153において、復号されたコンテンツデータのイメージを表示する。なお、この復号処理については図15を用いて後述する。
ここで、コンテンツデータのイメージの表示には、利用者が閲覧できない領域を例えば黒等で塗りつぶして表示する。
図15は、利用者装置140A〜140Cの復号処理部145における暗号化コンテンツの復号処理を示すフローチャートである。
ここで、暗号化コンテンツの復号処理を指示した利用者jの利用者IDをuとし、その秘密情報を(n、sk)とする。なお、jは自然数を用いるものとする。
まず、復号処理部145は、暗号化コンテンツCから乱数シード値R、利用者リストL,・・・,L、および、暗号化部分C,・・・,Cを取得する(S70)。
そして、復号処理部145は、乱数シード値Rから乱数生成器RNGを用いて暗号化鍵生成用乱数R,・・・,Rを生成する(S71)。
復号する暗号化部分C,・・・,Cのインデックスiを「1」に初期化(i←1)する(S72)。
次に、復号処理部145は、i>m(mは暗号化部分の数)ならばステップS78に進み、そうでなければステップS74に進む(S73)。
そして、復号処理部145は、暗号化部分Cの閲覧が許可された利用者のリストLを参照し、L内に利用者jの利用者ID(u)があれば、ステップS75へ、そうでなければステップS77へ進む(S74)。
次に,復号処理部145は、利用者jの秘密情報(n、sk)、暗号化鍵生成用乱数R,リストLから暗号化鍵sekの生成を行う(S75)。なお、本ステップにおける暗号化鍵sekの生成処理については、図16を用いて後述する。
そして、復号処理部145は、ステップS75で生成した暗号化鍵sekを共通鍵暗号技術における暗号化鍵とし、暗号化部分Cの復号を行い、部分Mを生成する(S76)。
次に、暗号化部分のインデックスiに「1」をインクリメント(i←i+1)し(S77)、ステップS73に戻り処理を繰り返す。
ステップS73でi>mの場合には、復号した部分M,・・・,Mを結合して、コンテンツデータM’を生成する(S78)。
図16は、図11のステップS55、または、図15におけるステップS75における暗号化鍵sekの生成処理を示すフローチャートである。
ここで本フローチャートでは、暗号処理部144又は復号処理部145は、利用者xの利用者ID(u)、利用者xの秘密情報(n、sk)、利用者リストL、及び、暗号化鍵生成用乱数Rから、暗号化鍵sekを生成するものとする。なお、xは自然数を用いるものとする。
まず、暗号処理部144又は復号処理部145は、利用者リストL内に含まれる利用者IDに対応する公開鍵PK=(pk,・・・,pk)を公開鍵記憶領域150から取得する(S80)。
そして、暗号処理部144又は復号処理部145は、暗号化鍵のインデックスiを「1」に初期化(i←1)し、暗号化鍵生成用鍵gskの初期値として、利用者xの秘密鍵skを入力(gsk←sk)する(S81)。
次に、暗号処理部144又は復号処理部145は、i>k(kは利用者リストLに登録されている利用者の数)ならばステップS86へ、そうでなければステップS83に進む(S82)。
そして、暗号処理部144又は復号処理部145は、i≠xならば、ステップS84へ、そうでなければステップS83へ進む(S83)。
ステップS84では、暗号処理部144又は復号処理部145は、暗号化鍵生成用鍵gsk’を下記の(2)式を用いて算出して、算出したgsk’を暗号化鍵生成用鍵gskと置き換える(S84)。
Figure 0004256415
そして、インデックスiに「1」をインクリメント(i←i+1)し(85)、ステップS82に戻って処理を繰り返す。
ステップS82でi>kの場合には、暗号処理部144又は復号処理部145は、ハッシュ関数Hを用いて、h=H(gsk)を計算し、hを共通鍵暗号技術の生成鍵として、暗号化鍵生成用乱数Rを暗号化し、その結果を暗号化鍵sekとする(S86)。
ここで、ハッシュ関数Hには、SHA−1やMD5等の公知のハッシュ関数を利用すればよく、また、hから暗号化鍵sekを生成する際には、前述のAESやDESなどの共通鍵暗号アルゴリズムを利用すればよい。
なお、以上では、h=H(gsk)を計算し、hを共通鍵暗号技術の生成鍵として、暗号化鍵生成用乱数Rを暗号化し、その結果を暗号化鍵sekとしているが、このような態様に限定されず、例えば、gskを用いて暗号化鍵生成用乱数Rを暗号化し、その結果を暗号化鍵sekとすることも可能である。
さらに、ステップS82では、上記の処理と異なるものを行ってもよい。例えば、hの生成をハッシュ関数Hを用いるのではなく、生成されたgskの上位、或いは、下位の複数ビットを取り出し、これを暗号化鍵sek生成の際に用いる共通鍵暗号技術における暗号化鍵としてもよい。あるいは、暗号化鍵sekの生成に共通鍵暗号を用いずに、gskとRとの排他的論理和を計算し、その結果を暗号化鍵sekとしてもよい。
以上のような処理を行うことにより、暗号処理部144及び復号処理部145において、リストLの情報が等しい場合には、等しい暗号化鍵sekの生成を行うことができる。
具体的には、暗号処理部144で、利用者o(kは、自然数で、oは1〜kの特定の自然数)の利用者IDをuとし、その秘密鍵をskとすると、下記の(3)式により、暗号化鍵sekが生成される。
Figure 0004256415
ここで、skは、下記の(4)式のように表される。
Figure 0004256415
従って、(3)式は、下記の(5)式のように表される。
Figure 0004256415
一方、復号処理部145で、利用者j(kは自然数で、jは1〜kの特定の自然数)の利用者IDをuとし、その秘密鍵をskとすると、下記の(6)式により、暗号化鍵sekが生成される。
Figure 0004256415
ここで、skは、下記の(7)式のように表される。
Figure 0004256415
従って、(6)式は、下記の(8)式のように表される。
Figure 0004256415
即ち、(5)式と(8)式に表されているように、暗号処理部144及び復号処理部145で生成される暗号化鍵sekが等しくなる。
以上のように、本実施形態である情報システム100によれば、利用者毎にコンテンツを選択的に開示するための暗号化と、それに対応した復号を実現することができる。
ところで、このようなコンテンツの選択的開示を行う場合、情報を共有(開示)する利用者が、複数のコンテンツに共通している場合がある。例えば、ソーシャルネットワーク内に複数のコミュニティが存在する場合、情報の開示先が、特定のコミュニティの利用者に限定される場合等である。
このような場合、図16に示したフローチャートのように、暗号処理部144又は復号処理部145において同じ暗号化鍵用暗号化鍵gskを複数回計算するのは効率が悪い。これを解決するためのひとつの方法は、よく利用する暗号化鍵用暗号化鍵gskを予め計算しておき、記憶部146に記憶させておくことによって処理を省略することが可能となる。また、複数の利用者間で予め計算しておく暗号化鍵gskを定めておくことによって、事前に計算される暗号化鍵gskをコミュニティのための共有鍵とみなすこともできる。
ところで、暗号化鍵用暗号化鍵gskを各利用者間で勝手に定めておく方法では、コミュニティ内にどのような利用者がいるのかを利用者間で勝手に取り決めることになるため、コミュニティ内の利用者の管理が困難になるといった問題がある。また、ある利用者がコミュニティから脱会した場合には、各利用者が共有している暗号化鍵gskを、各々が再計算しなければならないといった問題が生じる。
そこで、このようなコミュニティに対応した公開鍵を鍵管理装置101が管理することができれば、コミュニティの形成等を容易に行うことが可能となる。また、鍵管理装置110が発行するコミュニティ用の公開鍵を利用することによって、コミュニティへの公開情報を効率的に暗号化することが可能となる。
これを実現する一例として、鍵管理装置101に対して、利用者個人の秘密鍵sk、公開鍵pkだけを発行するのではなく、複数の利用者からなるグループに対して、秘密鍵skを発行することがある。この場合、秘密鍵sk、公開鍵pkの発行の処理フローは上述と同様であるが、生成された秘密鍵sk及び登録完了通知の送信は、グループ内に属する全ての利用者に対して行う必要がある。
なお、ここではソーシャルネットワークにおけるコミュニティに着目して、グループ鍵の生成について説明を行ったが、このようなグループ鍵の生成は、ソーシャルネットワークに限らず、例えば社内の組織構造(例えば、部や課など)に対して、グループ鍵を適用する場合にも有効である。
図17は、本発明の第二の実施形態である情報システムで使用される鍵管理装置210の概略図である。
図示するように、本実施形態における鍵管理装置210は、第一の実施形態と比較して、制御部211に更新部219がさらに設けられており、記憶部214に公開鍵記憶領域220及び暗号化コンテンツ記憶領域221がさらに設けられている以外は第一の実施形態と同様であるため、以下では、これらの異なっている事項について説明する。
本実施形態では、第一の実施形態と同様にコンテンツデータを暗号化して利用者に提供するようにしているが、例えば、ある利用者の秘密鍵が漏洩した場合、すでに暗号化されている暗号化コンテンツCは、漏洩した秘密鍵を利用することによって意図しない利用者によって閲覧される危険性が生じる。そのような場合、利用者の秘密鍵及び公開鍵を再発行するとともに、漏洩した鍵を利用して作成された暗号化コンテンツCを一度復号し、再度暗号化するといった対策が必要になる。
しかしながら、対象となるコンテンツデータのデータサイズが大きい場合には、暗号化コンテンツCの再暗号化を行うことは効率が悪い。
この点、上述した暗号化コンテンツCのヘッダ161内の情報(例えば、乱数シード値R等)を更新することによって、漏洩した鍵から暗号化コンテンツCが復号されることを防ぐことができれば、漏洩時の暗号化コンテンツCの更新にかかわる負荷を軽減することができる。
そこで、本実施形態においては、利用者に配布した秘密鍵が漏洩した場合の対策を効率的に行うことのできる情報システムを提供する。
以下、このような方法を鍵管理装置210で行う一例を説明する。
本実施形態において、新たに制御部211に設けられた更新部219は、漏洩した鍵から暗号化コンテンツCが復号されることを防ぐために、送受信処理部112を介して、漏洩した鍵が使用される暗号化コンテンツCを後述する暗号化コンテンツ記憶領域221に記憶し、記憶した暗号化コンテンツCのヘッダ161を更新する処理を制御する。なお更新処理の詳細は、図18を用いて後述する。
また、本実施形態において、新たに記憶部214に設けられた公開鍵記憶領域220には、鍵生成処理部113において図9のフローチャートで示すように利用者の秘密鍵と公開鍵を作成した際に、各利用者の公開鍵と、当該公開鍵の利用者(所有者)を特定する情報と、が対応されて記憶される。
例えば、公開鍵記憶領域220にも、図5に示すような公開鍵テーブル124aと同様の利用者ID欄124b及び公開鍵欄124cを備えるテーブルを記憶しておくことで、利用者IDと当該利用者IDに対応する公開鍵とを記憶することができる。
特に、本実施形態においては、ある利用者の秘密鍵が漏洩した場合に、当該利用者の秘密鍵と公開鍵とを図9に示すフローチャートと同様の手順で再生成し、公開鍵テーブル124aの公開鍵欄124cに登録する公開鍵を更新する。
さらに、本実施形態において、新たに記憶部214に設けられた暗号化コンテンツ記憶領域221には、ヘッダ161の更新を行う暗号化コンテンツCが記憶される。
なお、本実施形態における送受信処理部112は、更新部219の要求に応じて、送受信部110を介して、コンテンツ保管装置130から暗号化コンテンツCを受信し、また、ヘッダ161の更新を行った暗号化コンテンツCをコンテンツ保管装置130に送信する処理も行う。
図18は、鍵管理装置210の更新部219で行う更新処理の一例を示すフローチャートである。
また、本フローチャートは、鍵管理装置210のオペレータが入力部117を介して、ヘッダ情報を更新する暗号化コンテンツCを特定した更新指示を入力することにより開始されるものとし、このような更新指示を受けることにより、鍵管理装置210の送受信処理部112はコンテンツ保管装置130から特定された暗号化コンテンツCを受信し、暗号化コンテンツ記憶領域148に記憶するものとする。
まず、更新部219は、暗号化コンテンツ記憶領域221より暗号化コンテンツCを読み出し、暗号化コンテンツCから乱数シード値R、利用者のリストL,・・・,L及び暗号化部分C,・・・,Cを取得する(S90)。
次に、更新部219は、乱数シード値Rから、乱数生成器RNGを用いて暗号化鍵生成用乱数R,・・・,Rを生成する(S91)。
次に、更新部219は、暗号化部分のインデックスiを「1」に初期化(i←1)し(S92)、i>m(mは暗号化部分の数)ならばステップS97へ、そうでなければステップS93に進む(S92)。
そして、更新部219は、管理用秘密鍵s、暗号化鍵生成用乱数R、利用者のリストLから、暗号化鍵sekの生成を行う(S94)。なお、zは自然数を用いるものとする。
また、ステップS94における暗号化鍵sekの生成は、図16に示すフローチャート同様に行えばよいが、ステップS81においては、暗号化鍵生成用鍵gskの初期値として、管理用鍵記憶領域115に記憶されている管理者用秘密鍵の一部であるsを用いればよく、また、ステップS83の処理は行わずリストLに対応する公開鍵を全て用いてステップS84を行えばよい。
次に、鍵生成処理部113において利用者zの秘密鍵と公開鍵とを再生成し、公開鍵記憶領域220に記憶されている利用者zの公開鍵を置き換えることにより更新する(S95)。
次に、更新部219は、管理用秘密鍵s、利用者のリストLから、生成鍵H(gsk)’を生成し(S96)、ステップS94において生成した暗号化鍵sekを、ステップS96において生成した生成鍵H(gsk)’で復号することで、新たな暗号化鍵生成用乱数R’を生成する(S97)。
なお、生成鍵H(gsk)’の生成は、図16に示すフローチャートと同様に行えばよいが、ステップS95において秘密鍵を漏洩した利用者zの公開鍵が更新されているため、ステップS94で暗号化鍵sekを生成する過程で算出される生成鍵H(gsk)とは、利用者zの公開鍵を使用する部分に関して異なる値となる。
そして、暗号化部分のインデックスiに「1」をインクリメント(i←i+1)し(S98)、ステップS93に戻って処理を繰り返す。
ここで、ステップS93においてi>mならば新たに生成された暗号化鍵生成用乱数R’,・・・,R’、L,・・・,L、C,・・・,Cから、暗号化コンテンツC’を生成する(S99)。なお、このようにして生成された暗号化コンテンツC’は、送受信処理部112を介してコンテンツ保管装置130に送信され、コンテンツ保管装置130では、更新前の暗号化コンテンツCに更新後の暗号化コンテンツC’を置き換えて記憶する。
また、このような更新後の暗号化コンテンツC’を受信した利用者装置140A〜140Cでは、乱数シード値Rから暗号化鍵生成用乱数を生成する代わりに、ヘッダ161に含まれている暗号化鍵生成用乱数R’,・・・,R’を用いて復号を行えばよい。
なお、第二の実施形態においては、鍵管理装置210においてヘッダ161の更新を行うようにしているが、このような態様に限定されるわけではなく、例えば、利用者装置140A〜140Cのいずれかにおいて、更新部219と同様の機能を果たす更新部を備えることにより、暗号化コンテンツCを生成する際に使用した秘密鍵又は管理用秘密鍵から利用者装置140A〜140Cにおいてヘッダ161の更新を行うようにすることも可能である。
ここで、図18のフローチャートでは、利用者の秘密鍵が漏洩した場合、暗号化鍵生成用乱数R’,・・・,R’を再生成し、これを乱数シード値Rの代わりに、新たな暗号化コンテンツC’に付与している。そのため、上記の処理によって生成された暗号化コンテンツC’は、ヘッダ161のサイズが増加してしまう。
そこで、暗号化鍵生成用乱数の生成方法を工夫することによって、この再生成された暗号化コンテンツ106のヘッダサイズを削減する実現方法の一例を示す。
図19は、乱数の生成手順を説明するための概略図である。
なお、図19では、一例としてコンテンツの部分(構成要素)mが8である場合(乱数の数も8)について示したが、部分の数mは任意の数でよい。
また、乱数生成器RNGを入力長の2倍の長さの乱数を生成する乱数生成器とする。
さらに、Rを入力としたときの出力をRb0||Rb1←RNG(R)とあらわす。ここで、R||Rは、二つのデータ(R、R)の連結を表し、bは0と1から構成される任意長の文字列を表す(以降も同様)。また“b0”、“b1”はそれぞれ文字列bに文字“0”、“1”をつなげたものを表す。
このような前提におちて、更新部219は、乱数生成器RNGを用いて、まずRからR00とR11を生成する。
次に、更新部219は、R00とR01から、R001,R001、及び、R011,R011を生成する。
さらに、更新部219は、木構造(二分木)にしたがって乱数生成器RNGを繰り返し適用し、最終的にR0000〜R0111を生成する。以上の手順に従い、乱数シード値Rからm個の暗号化鍵生成用乱数を生成する。
そして、例えば、1番目のブロックを閲覧可能なある利用者の鍵が漏洩した場合には、暗号化鍵生成用乱数RのみをR’に更新すればよい。
即ち、図19に示した木構造を利用した乱数生成を利用した場合には、Rの代わりに、R01、R001、R0001を公開すれば、RからRまでの全ての暗号化鍵生成用乱数の生成できるが、Rを生成することはできない。従って、再暗号化された暗号化コンテンツ106には、乱数シード値Rの換わりに、R01、R001、R0000’、R0001の4つをヘッダ161に付与すればよい。
図18に示した単純な方法では、再生成された全てのR’,・・・,R’(8つ)を再暗号化された暗号化コンテンツC’のヘッダ161に付与する必要があるが、図19の乱数生成方法では、再暗号化された暗号化コンテンツC’のヘッダ161には、R01、R001、R0000’、R0001(4つ)を付与すればよく、再暗号化によって生じる付加情報のデータサイズを削減することができる。
以上に記載した実施形態においては、図1に示されているように、鍵管理装置110、鍵保管装置120及びコンテンツ保管装置130を介して、鍵の生成、鍵の保管及び暗号化コンテンツの保管を行っているが、このような態様に限定されるわけではなく、処理の分散化又は集中化の観点からこれらで行っている処理を分散又は集中を行うことができる。
例えば、図20(管理サーバの概略図)に示されているように、制御部311と、記憶部314と、送受信部318と、入力部319と、出力部320と、を備える管理サーバ310ように、一つの装置で、鍵の生成、鍵の保管及び暗号化コンテンツの保管を行うようにしてもよい。
ここで、管理サーバ310における制御部311の送受信処理部312は、鍵管理装置110、鍵保管装置120及びコンテンツ保管装置130における送受信処理部112、122、132と同様の処理を行い、鍵生成処理部113は、鍵管理装置110における鍵生成処理部113と同様の処理を行う。
但し、管理サーバ310においては、鍵管理装置110、鍵保管装置120及びコンテンツ保管装置130で行っている処理を一つの装置で行っているため、管理サーバ310における送受信処理部312は、鍵管理装置110、鍵保管装置120及びコンテンツ保管装置130の相互間で行うデータ通信は行う必要がなくなる。
また、管理サーバ310における記憶部314の管理用鍵記憶領域315は、鍵管理装置110における記憶部114の管理用鍵記憶領域115と同様の情報を記憶する。
さらに、管理サーバ310における記憶部314の公開鍵記憶領域316は、鍵保管装置120における記憶部123の公開鍵記憶領域124と同様の情報を記憶する。
加えて、管理サーバ310における記憶部314の暗号化コンテンツ記憶領域315は、コンテンツ保管装置130における記憶部133の暗号化コンテンツ記憶領域134と同様の情報を記憶する。
なお、送受信部318、入力部319及び出力部320に関しては、第一の実施形態における鍵管理装置110における送受信部116、入力部117及び出力部118と同様に構成すればよい。
また、以上に記載した実施形態においては、鍵管理装置110、鍵保管装置120,コンテンツ保管装置130及び利用者装置140A〜140Cがネットワーク160を介して接続されているが、このような態様に限定されるわけではなく、例えば、これらで送受信する情報をUBSメモリなどの外部記憶媒体に記憶してそれぞれの装置に郵送等して読み取ることも可能である。
さらに、以上に記載した実施形態では、利用者装置140A〜140Cを三つ記載しているが、この数については任意に変更可能である。
また、鍵保管装置120で保管される公開鍵は、公開鍵自体が改ざんされることなどを防止するため、鍵管理装置110において、公開鍵に対する証明書を発行することが望ましい。また、このように鍵管理装置120において公開鍵証明書を発行する場合には、鍵管理装置110に、証明書を発行する証明書発行処理部と、証明書発行のための署名用秘密鍵を記憶する署名用秘密鍵記憶領域と、を設ける必要がある。
さらに、本実施形態では、利用者装置140A〜140Cの記憶部146に公開鍵記憶領域150を設けて、リストLに対応する公開鍵をこの公開鍵記憶領域150から取得するようにしているが、このような態様に限定されず、例えば、リストLを鍵保管装置120に送信して、対応する公開鍵を鍵管理装置120から受信するようにしてもよい。
また、以上に記載した実施形態においては、利用者装置140A〜140Cの暗号処理部144及び復号処理部145において、同じ乱数シード値Rから、同じ暗号化鍵生成用乱数を生成することができ、かつ、暗号化部分C,・・・,Cを生成する際(暗号化する際)に使用した暗号化鍵生成用乱数と同じ暗号鍵生成用乱数を暗号化部分C,・・・,Cを復号する際に割り当てることができるようにしているが(例えば、部分M,・・・,Mと、この部分M,・・・,Mを暗号化した暗号化部分C,・・・,Cと、が同じ順番で並んでおり、暗号処理部144及び復号処理部145において同じ順番で暗号鍵生成用乱数が生成されるようになっている場合等)、このような態様には限定されず、例えば、暗号処理部144及び復号処理部145において、同じ乱数シード値Rから、同じ暗号化鍵生成用乱数を生成することができない場合や、暗号化部分C,・・・,Cを生成する際(暗号化する際)に使用した暗号化鍵生成用乱数と同じ暗号鍵生成用乱数を暗号化部分C,・・・,Cを復号する際に割り当てることができない場合でも、暗号化部分C,・・・,Cに使用した暗号化鍵生成用乱数を、ヘッダにおいて暗号化部分C,・・・,C毎に特定しておくことで、本願発明と同様の処理を行うことができるようになる。
第一の実施形態である情報システムの概略図。 鍵管理装置の概略図。 コンピュータの概略図。 鍵保管装置の概略図。 公開鍵テーブルの概略図。 コンテンツ保管装置の概略図。 利用者装置の概略図。 管理用秘密鍵の生成処理を示すフローチャート。 秘密鍵及び当該秘密鍵に対応する公開鍵の生成処理を示すフローチャート。 暗号化コンテンツの生成及び登録処理を示すフローチャート。 暗号化コンテンツの生成処理を示すフローチャート。 暗号化コンテンツの概略図。 ヘッダの概略図。 暗号化コンテンツの取得及び復号処理を示すフローチャート。 暗号化コンテンツの復号処理を示すフローチャート。 暗号化鍵sekの生成処理を示すフローチャート。 第二の実施形態である情報システムで使用される鍵管理装置210の概略図。 更新処理の一例を示すフローチャート。 乱数の生成手順を説明するための概略図。 管理サーバの概略図。
符号の説明
100 情報システム
110、210 鍵管理装置
111 制御部
113 鍵生成処理部
114 記憶部
115 管理用鍵記憶領域
219 更新部
220 暗号化コンテンツ記憶領域
120 鍵保管装置
124 公開鍵記憶領域
130 コンテンツ保管装置
134 暗号化コンテンツ記憶領域
140 利用者装置
143 コンテンツ処理部
144 暗号処理部
145 復号処理部
147 コンテンツデータ記憶領域
148 暗号化コンテンツ記憶領域
149 秘密鍵記憶領域
150 公開鍵記憶領域
310 管理サーバ
313 鍵生成処理部
315 管理用鍵記憶領域
316 公開鍵記憶領域
317 暗号化コンテンツ記憶領域

Claims (14)

  1. コンテンツデータを暗号化する暗号化装置であって、
    第一利用者の秘密鍵、前記第一利用者及び複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第一公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶部と、
    制御部と、を備え、
    前記制御部は、
    前記コンテンツデータを構成する構成要素のうち、少なくとも一つ以上の構成要素をそれぞれ暗号対象部分として特定する暗号化対象部分特定処理と、
    前記暗号化対象部分毎に対応する乱数を生成する乱数生成処理と、
    前記暗号化対象部分毎に、前記複数の第二利用者から当該暗号化対象部分の閲覧を許可する第二利用者の識別情報を特定する利用者リスト情報を生成する利用者特定処理と、
    前記暗号化対象部分毎に、前記利用者特定処理により特定された第二利用者の識別情報に対応する公開鍵を前記第一公開鍵情報から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、
    前記暗号化鍵生成用鍵を用いて、前記暗号化対象部分毎に対応する乱数を暗号化して、前記暗号化対象部分毎に暗号化鍵を生成する暗号化鍵生成処理と、
    前記暗号化対象部分毎に、前記暗号化鍵生成処理により生成された暗号化鍵を用いて、対応する前記暗号化対象部分を暗号化した暗号化部分を生成する暗号化処理と、
    前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を備える暗号化コンテンツを生成する暗号化コンテンツ生成処理と、
    を行うこと、
    を特徴とする暗号化装置。
  2. 請求項1に記載の暗号化装置であって、
    前記乱数生成処理は、乱数シード値を生成し、当該乱数シード値から少なくとも一つ以上の乱数を生成し、前記暗号化対象部分毎に各々の乱数を対応させるものであり、
    前記暗号化コンテンツ生成処理における前記前記暗号化部分毎の乱数を特定する情報は、前記乱数シード値であること、
    を特徴とする暗号化装置。
  3. 請求項1に記載の暗号化装置であって、
    前記利用者特定処理において生成する利用者リスト情報には、前記暗号化対象部分毎に、当該暗号化対象部分の閲覧を許可する第二利用者の識別情報と、前記第一利用者の識別情報と、が含まれており、
    前記暗号化コンテンツ生成処理において生成する暗号化コンテンツは、前記暗号化部分と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を備えるものであること、
    を特徴とする暗号化装置。
  4. 請求項1に記載の暗号化装置であって、
    前記第一利用者の秘密鍵は、
    二つの異なる素数p、qの乗算により積nを算出し、
    前記積n未満の整数sを特定し、
    前記積nに対して、1からnまでの正の整数のうち、前記積nと互いに素となるものの個数よりも小さい任意の素数rを特定し、
    前記整数sを前記素数rでべき乗したものを前記積nにより剰余演算を行うことで算出されるものであり、
    前記第一利用者の公開鍵は、前記素数rであり、
    前記第二利用者の公開鍵は、
    前記積nに対して、1からnまでの正の整数のうち、前記積nと互いに素となるものの個数よりも小さく、かつ、前記素数rとは異なる素数r’から各々択一的に選択されたものであり、
    前記係数は前記積nであること、
    を特徴とする暗号化装置。
  5. 請求項1に記載の暗号化装置であって、
    前記暗号化鍵生成用鍵生成処理は、前記暗号化対象部分毎に、前記利用者特定処理により特定された第二利用者の識別情報に対応する公開鍵を前記第一公開鍵情報から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行ったもののハッシュ値で暗号化鍵生成用鍵を生成するものであること、
    を特徴とする暗号化装置。
  6. 請求項1乃至5の何れか一項に記載の暗号化装置であって、
    前記記憶部には、前記複数の第二利用者に含まれる第三利用者の更新後の公開鍵がさらに記憶されており、
    前記制御部は、
    前記暗号化コンテンツから、前記暗号化部分と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を取得する情報取得処理と、
    前記情報取得処理で取得した暗号化部分毎に、当該利用者リスト情報に含まれる第二利用者の公開鍵を読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、
    前記暗号化鍵生成用鍵を用いて、前記暗号化部分毎に対応する乱数を暗号化して、前記暗号化部分毎に暗号化鍵を生成する暗号化鍵生成処理と、
    前記情報取得処理で取得した暗号化部分毎に、当該暗号化部分毎の利用者リスト情報に含まれる前記第三利用者を除く第二利用者の公開鍵と、前記第三利用者の更新後の公開鍵と、を前記記憶部から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで更新暗号化鍵生成用鍵を生成する更新暗号化鍵生成用鍵生成処理と、
    前記暗号化鍵生成処理において生成した暗号化鍵を前記更新暗号化鍵生成用鍵で復号することにより、前記暗号化部分毎に対応する更新乱数を生成する更新乱数生成処理と、
    前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の更新乱数を特定する情報と、を備える更新暗号化コンテンツを生成する更新暗号化コンテンツ生成処理と、
    を行うこと、
    を特徴とする暗号化装置。
  7. 請求項1乃至6の何れか一項に記載の暗号化装置が生成した暗号化コンテンツを復号する復号装置であって、
    前記複数の第二利用者のうちの一の利用者の秘密鍵、前記第一利用者及び前記複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第二公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶部と、
    制御部と、を備え、
    前記制御部は、
    前記暗号化コンテンツから、前記暗号化部分と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を取得する情報取得処理と、
    前記情報取得処理で取得した暗号化部分毎に、当該暗号化部分毎の利用者リスト情報に、前記一の利用者の識別情報が含まれるか否かを判定する判定処理と、
    前記判定処理において、前記暗号化部分毎の利用者リスト情報に前記一の利用者の識別情報が含まれる場合に、当該利用者リスト情報に含まれる第二利用者の公開鍵であって、前記一の利用者の公開鍵以外の公開鍵と、第一利用者の公開鍵と、を読み出し、前記一の利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、
    前記暗号化鍵生成用鍵を用いて、前記暗号化部分毎に対応する乱数を暗号化して、前記暗号化部分毎に暗号化鍵を生成する暗号化鍵生成処理と、
    前記暗号化部分毎に前記暗号化鍵生成処理で生成された暗号化鍵を用いて、対応する前記暗号化部分を復号し、前記位置情報により特定される前記コンテンツデータの位置に復号した暗号化対象部分を配置する復号処理と、
    を行うこと、
    を特徴とする復号装置。
  8. 請求項7に記載の復号装置であって、
    前記記憶部には、前記複数の第二利用者に含まれる第三利用者の更新後の公開鍵がさらに記憶されており、
    前記制御部は、
    前記暗号化コンテンツから、前記暗号化部分と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を取得する情報取得処理と、
    前記情報取得処理で取得した暗号化部分毎に、当該暗号化部分毎の利用者リスト情報に含まれる前記一の利用者及び前記第三利用者を除く第二利用者の公開鍵と、前記第三利用者の更新後の公開鍵と、前記第一利用者の公開鍵と、を前記記憶部から読み出し、前記一の利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで更新暗号化鍵生成用鍵を生成する更新暗号化鍵生成用鍵生成処理と、
    前記暗号化鍵生成処理において生成した暗号化鍵を前記更新暗号化鍵生成用鍵で復号することにより、前記暗号化部分毎に対応する更新乱数を生成する更新乱数生成処理と、
    前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の更新乱数を特定する情報と、を備える更新暗号化コンテンツを生成する更新暗号化コンテンツ生成処理と、
    を行うこと、
    を特徴とする復号装置。
  9. コンテンツデータを暗号化する暗号化装置と、当該暗号化装置が使用する秘密鍵及び公開鍵を生成する鍵管理装置と、を備える情報システムであって、
    前記鍵管理装置は、演算部を備え
    前記鍵管理装置の前記演算部は、
    二つの異なる素数p、qの乗算により係数nを算出し、前記係数n未満の整数sを特定し、前記係数nに対して、1からnまでの正の整数のうち、前記係数nと互いに素となるものの個数よりも小さい任意の素数rを特定することで第一の利用者の公開鍵を生成する処理と、
    前記整数sを前記素数rでべき乗したものを前記係数nにより剰余演算を行うことにより前記第一の利用者の秘密鍵を算出する処理と、
    前記係数nに対して、1からnまでの正の整数のうち、前記係数nと互いに素となるものの個数よりも小さく、かつ、前記素数rとは異なる素数r’の中からそれぞれ択一的に選択することにより複数の第二利用者の公開鍵を各々生成する処理と、
    を行い、
    前記暗号化装置は、
    前記第一利用者の秘密鍵、前記第一利用者及び前記複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第一公開鍵情報、並びに、前記係数n、を記憶する記憶部と、
    制御部と、を備え、
    前記暗号化装置の前記制御部は、
    前記コンテンツデータを構成する構成要素のうち、少なくとも一つ以上の構成要素をそれぞれ暗号対象部分として特定する暗号化対象部分特定処理と、
    前記暗号化対象部分毎に対応する乱数を生成する乱数生成処理と、
    前記暗号化対象部分毎に、前記複数の第二利用者から当該暗号化対象部分の閲覧を許可する第二利用者の識別情報を特定する利用者リスト情報を生成する利用者特定処理と、
    前記暗号化対象部分毎に、前記利用者特定処理により特定された第二利用者の識別情報に対応する公開鍵を前記第一公開鍵情報から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数nにより剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、
    前記暗号化鍵生成用鍵を用いて、前記暗号化対象部分毎に対応する乱数を暗号化して、前記暗号化対象部分毎に暗号化鍵を生成する暗号化鍵生成処理と、
    前記暗号化部分毎に前記暗号化鍵生成処理で生成された暗号化鍵を用いて、対応する前記暗号化部分を復号し、前記位置情報により特定される前記コンテンツデータの位置に復号した暗号化対象部分を配置する復号処理と、
    を行うこと、
    を特徴とする情報システム。
  10. 請求項9に記載の情報システムであって、
    前記鍵管理装置は、
    前記整数s、前記係数n、並びに、前記第一利用者及び前記複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第二公開鍵情報、を記憶する記憶部をさらに備え、
    前記鍵管理装置の前記制御部は、
    前記複数の第二利用者に含まれる第三利用者の公開鍵を、前記係数nに対して、1からnまでの正の整数のうち、前記係数nと互いに素となるものの個数よりも小さく、かつ、前記素数r及びr’とは異なる素数r’’の中から選択することで、前記第二公開鍵情報に含まれる前記第三利用者の公開鍵を更新する公開鍵更新処理と、
    前記暗号化コンテンツから、前記暗号化部分と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を取得する情報取得処理と、
    前記情報取得処理で取得した暗号化部分毎に、当該暗号化部分毎の利用者リスト情報に、当該利用者リスト情報に含まれる第二利用者の公開鍵及び第一利用者の公開鍵を前記公開鍵更新処理で更新した前記第二公開鍵情報から読み出し、前記整数sを、読み出した公開鍵でべき乗し、前記係数nにより剰余演算を行うことで更新暗号化鍵生成用鍵を生成する更新暗号化鍵生成用鍵生成処理と、
    前記暗号化鍵生成処理において生成した暗号化鍵を前記更新暗号化鍵生成用鍵で復号することで、前記暗号化部分毎に対応する更新乱数を生成する更新乱数生成処理と、
    前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の更新乱数を特定する情報と、を備える更新暗号化コンテンツを生成する更新暗号化コンテンツ生成処理と、
    を行うこと、
    を特徴とする情報システム。
  11. 第一利用者の秘密鍵、前記第一利用者及び複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第一公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶部と、
    制御部と、を備える暗号化装置が行うコンテンツデータの暗号化方法であって、
    前記制御部が、前記コンテンツデータを構成する構成要素のうち、少なくとも一つ以上の構成要素をそれぞれ暗号対象部分として特定する暗号化対象部分特定過程と、
    前記制御部が、前記暗号化対象部分毎に対応する乱数を生成する乱数生成過程と、
    前記制御部が、前記暗号化対象部分毎に、前記複数の第二利用者から当該暗号化対象部分の閲覧を許可する第二利用者の識別情報を特定する利用者リスト情報を生成する利用者特定過程と、
    前記制御部が、前記暗号化対象部分毎に、前記利用者特定過程により特定された第二利用者の識別情報に対応する公開鍵を前記第一公開鍵情報から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成過程と、
    前記制御部が、前記暗号化鍵生成用鍵を用いて、前記暗号化対象部分毎に対応する乱数を暗号化して、前記暗号化対象部分毎に暗号化鍵を生成する暗号化鍵生成過程と、
    前記制御部が、前記暗号化対象部分毎に前記暗号化鍵生成処理により生成された暗号化鍵を用いて、対応する前記暗号化対象部分を暗号化した暗号化部分を生成する暗号化過程と、
    前記制御部が、前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を備える暗号化コンテンツを生成する暗号化コンテンツ生成過程と、
    を行うこと、
    を特徴とする暗号化方法。
  12. 請求項11の暗号化方法で生成された暗号化コンテンツを復号する復号方法であって、
    前記複数の第二利用者のうちの一の利用者の秘密鍵、前記第一利用者及び前記複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第二公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶部と、
    制御部と、を備える復号装置において、
    前記制御部が、前記暗号化コンテンツから、前記暗号化部分と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を取得する情報取得過程と、
    前記制御部が、前記情報取得過程で取得した暗号化部分毎に、当該暗号化部分毎の利用者リスト情報に、前記一の利用者の識別情報が含まれるか否かを判定する判定過程と、
    前記制御部が、前記判定過程において、前記暗号化部分毎の利用者リスト情報に前記一の利用者の識別情報が含まれる場合に、当該利用者リスト情報に含まれる第二利用者の公開鍵であって、前記一の利用者の公開鍵以外の公開鍵と、第一利用者の公開鍵と、を読み出し、前記一の利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成過程と、
    前記制御部が、前記暗号化鍵生成用鍵を用いて、前記暗号化部分毎に対応する乱数を暗号化して、前記暗号化部分毎に暗号化鍵を生成する暗号化鍵生成過程と、
    前記制御部が、前記暗号化部分毎に前記暗号化鍵生成処理で生成された暗号化鍵を用いて、対応する前記暗号化部分を復号し、前記位置情報により特定される前記コンテンツデータの位置に復号した暗号化対象部分を配置する復号過程と、
    を行うこと、
    を特徴とする復号方法。
  13. コンピュータを
    第一利用者の秘密鍵、前記第一利用者及び複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第一公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶手段、
    制御手段、
    として機能させるプログラムであって、
    前記制御手段に、
    前記コンテンツデータを構成する構成要素のうち、少なくとも一つ以上の構成要素をそれぞれ暗号対象部分として特定する暗号化対象部分特定処理と、
    前記暗号化対象部分毎に対応する乱数を生成する乱数生成処理と、
    前記暗号化対象部分毎に、前記複数の第二利用者から当該暗号化対象部分の閲覧を許可する第二利用者の識別情報を特定する利用者リスト情報を生成する利用者特定処理と、
    前記暗号化対象部分毎に、前記利用者特定処理により特定された第二利用者の識別情報に対応する公開鍵を前記第一公開鍵情報から読み出し、前記第一利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、
    前記暗号化鍵生成用鍵を用いて、前記暗号化対象部分毎に対応する乱数を暗号化して、前記暗号化対象部分毎に暗号化鍵を生成する暗号化鍵生成処理と、
    前記暗号化対象部分毎に前記暗号化鍵生成処理により生成された暗号化鍵を用いて、対応する前記暗号化対象部分を暗号化した暗号化部分を生成する暗号化処理と、
    前記暗号化部分と、前記暗号化部分に対応する暗号化対象部分の前記コンテンツデータにおける位置を特定する位置情報と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を備える暗号化コンテンツを生成する暗号化コンテンツ生成処理と、
    を行わせること、
    を特徴とするプログラム。
  14. コンピュータを、
    前記複数の第二利用者のうちの一の利用者の秘密鍵、前記第一利用者及び前記複数の第二利用者の各々を識別するための識別情報と当該識別情報により特定される第一利用者及び第二利用者の公開鍵とを各々対応させた第二公開鍵情報、並びに、当該秘密鍵及び当該公開鍵に共通する係数、を記憶する記憶手段、
    制御手段
    として機能させ、請求項12に記載されたプログラムを読み込んだコンピュータで生成された暗号化コンテンツを復号するためのプログラムであって、
    前記制御手段に、
    前記暗号化コンテンツから、前記暗号化部分と、前記第一利用者の識別情報と、前記暗号化部分毎の利用者リスト情報と、前記暗号化部分毎の乱数を特定する情報と、を取得する情報取得処理と、
    前記情報取得処理で取得した暗号化部分毎に、当該暗号化部分毎の利用者リスト情報に、前記一の利用者の識別情報が含まれるか否かを判定する判定処理と、
    前記判定処理において、前記暗号化部分毎の利用者リスト情報に前記一の利用者の識別情報が含まれる場合に、当該利用者リスト情報に含まれる第二利用者の公開鍵であって、前記一の利用者の公開鍵以外の公開鍵と、第一利用者の公開鍵と、を読み出し、前記一の利用者の秘密鍵を、読み出した公開鍵でべき乗し、前記係数により剰余演算を行うことで暗号化鍵生成用鍵を生成する暗号化鍵生成用鍵生成処理と、
    前記暗号化鍵生成用鍵を用いて、前記暗号化部分毎に対応する乱数を暗号化して、前記暗号化部分毎に暗号化鍵を生成する暗号化鍵生成処理と、
    前記暗号化部分毎に前記暗号化鍵生成処理で生成された暗号化鍵を用いて、対応する前記暗号化部分を復号し、前記位置情報により特定される前記コンテンツデータの位置に復号した暗号化対象部分を配置する復号処理と、
    を行わせること、
    を特徴とするプログラム。
JP2006238988A 2006-09-04 2006-09-04 暗号化装置、復号装置、情報システム、暗号化方法、復号方法及びプログラム Expired - Fee Related JP4256415B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006238988A JP4256415B2 (ja) 2006-09-04 2006-09-04 暗号化装置、復号装置、情報システム、暗号化方法、復号方法及びプログラム
EP07017296A EP1895739A3 (en) 2006-09-04 2007-09-04 Encrypting device, decrypting device, information system, encrypting method, decrypting method, and program
US11/849,465 US8094824B2 (en) 2006-09-04 2007-09-04 Encrypting device, decrypting device, information system, encrypting method, decrypting method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006238988A JP4256415B2 (ja) 2006-09-04 2006-09-04 暗号化装置、復号装置、情報システム、暗号化方法、復号方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2008061197A JP2008061197A (ja) 2008-03-13
JP4256415B2 true JP4256415B2 (ja) 2009-04-22

Family

ID=38895943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006238988A Expired - Fee Related JP4256415B2 (ja) 2006-09-04 2006-09-04 暗号化装置、復号装置、情報システム、暗号化方法、復号方法及びプログラム

Country Status (3)

Country Link
US (1) US8094824B2 (ja)
EP (1) EP1895739A3 (ja)
JP (1) JP4256415B2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006133267A2 (en) * 2005-06-06 2006-12-14 Monogram Biosciences, Inc. Methods and compositions for determining altered susceptibility of hiv-1 to anti-hiv drugs
KR101547554B1 (ko) * 2008-11-27 2015-08-26 삼성전자주식회사 디지털 콘텐츠 서비스 제공 방법 및 시스템
EP2345977B1 (en) * 2008-11-28 2017-04-05 International Business Machines Corporation Client computer for protecting confidential file, server computer therefor, method therefor, and computer program
US8458799B2 (en) * 2009-06-30 2013-06-04 Nokia Corporation Method and apparatus for providing a scalable service platform using a network cache
JP5454673B2 (ja) * 2010-03-17 2014-03-26 富士通株式会社 通信装置、プログラムおよび方法
US9772834B2 (en) * 2010-04-27 2017-09-26 Red Hat, Inc. Exportable encoded identifications of networked machines
JP2012010052A (ja) * 2010-06-24 2012-01-12 Sony Corp 情報処理装置および方法、プログラム、並びに、情報処理システム
EP3920465B1 (en) 2010-10-08 2023-12-06 Brian Lee Moffat Private data sharing system
CA2837516C (en) * 2011-05-26 2016-11-01 Certicom Corp. Randomness for encryption operations
US8600061B2 (en) * 2011-06-24 2013-12-03 Broadcom Corporation Generating secure device secret key
US9100453B2 (en) * 2011-10-08 2015-08-04 Broadcom Corporation Social device security in a social network
EP2680487B1 (en) * 2012-06-29 2019-04-10 Orange Secured cloud data storage, distribution and restoration among multiple devices of a user
GB2519966A (en) * 2013-11-01 2015-05-13 Ibm Anonymously sharing resources based on social network user data
US20170063550A1 (en) * 2015-04-23 2017-03-02 Keith J Brodie Secure Digital Signature Apparatus and Methods
US10044693B1 (en) * 2016-07-29 2018-08-07 Microsoft Technology Licensing, Llc Security for confidential data
US10778424B2 (en) 2017-02-27 2020-09-15 Cord3 Innovation Inc. Symmetric cryptographic method and system and applications thereof
JP7163656B2 (ja) * 2018-07-30 2022-11-01 株式会社リコー 配信システム、受信クライアント端末、配信方法
CN110798434B (zh) * 2018-08-03 2022-04-08 Emc Ip控股有限公司 计算机系统、计算装置所进行的方法和存储介质
US11032062B2 (en) * 2019-09-17 2021-06-08 Switchbit, Inc. Data processing permits system with keys
JP2022074807A (ja) * 2020-11-05 2022-05-18 株式会社日立製作所 ファイルストレージ及びコンピュータシステム
CN112865953B (zh) * 2021-02-01 2022-05-17 浙江大学 基于辅助服务器的安全多方计算方法、装置和系统
CN115102708B (zh) * 2022-05-05 2024-04-09 阿里巴巴(中国)有限公司 数据处理方法及装置
CN116894273B (zh) * 2023-09-11 2023-11-21 四川建设网有限责任公司 基于异或和求余的文件加密方法、解密方法、设备及介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2887299B2 (ja) * 1990-07-31 1999-04-26 博一 岡野 知的情報処理方法および装置
JPH05122701A (ja) * 1991-10-25 1993-05-18 Canon Inc 課金用情報処理装置
US6961849B1 (en) * 1999-10-21 2005-11-01 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a group clerk
US7162451B2 (en) * 2001-11-30 2007-01-09 International Business Machines Corporation Information content distribution based on privacy and/or personal information
JP2005051734A (ja) * 2003-07-15 2005-02-24 Hitachi Ltd 電子文書の真正性保証方法および電子文書の公開システム
GB2404538A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital content
JP2006060722A (ja) * 2004-08-24 2006-03-02 Hitachi Ltd 電子文書の真正性保証方法および電子文書の公開システム
JP4728104B2 (ja) * 2004-11-29 2011-07-20 株式会社日立製作所 電子画像の真正性保証方法および電子データ公開システム
JP4489613B2 (ja) 2005-03-01 2010-06-23 リンナイ株式会社 食器洗浄機

Also Published As

Publication number Publication date
EP1895739A2 (en) 2008-03-05
JP2008061197A (ja) 2008-03-13
US8094824B2 (en) 2012-01-10
EP1895739A3 (en) 2008-10-22
US20080063191A1 (en) 2008-03-13

Similar Documents

Publication Publication Date Title
JP4256415B2 (ja) 暗号化装置、復号装置、情報システム、暗号化方法、復号方法及びプログラム
TWI750223B (zh) 區塊鏈加密射頻晶片存儲設計方法
JP5034498B2 (ja) ディジタルコンテンツの暗号化,復号方法,及び,ディジタルコンテンツを利用した業務フローシステム
JP4597784B2 (ja) データ処理装置
US20130179684A1 (en) Encrypted database system, client terminal, encrypted database server, natural joining method, and program
JP5593458B2 (ja) 文字列がオートマトンに受理されるか否かを認証するシステム
CN107077469A (zh) 服务器装置、检索系统、终端装置、检索方法、服务器程序以及终端程序
JP2008103936A (ja) 秘密情報管理装置および秘密情報管理システム
JP6049914B2 (ja) 暗号システム、鍵生成装置及び再暗号化装置
WO2014007296A1 (ja) 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
JP4079319B2 (ja) 識別情報生成装置、識別情報解決装置及びこれらを用いた情報システム、並びに、これらの制御方法及びプログラム
WO2022137668A1 (ja) データファイル暗号化送受信システム及びデータファイル暗号化送受信方法
US11431489B2 (en) Encryption processing system and encryption processing method
CN105850072B (zh) 数据处理系统、加密装置以及解密装置
JP5969716B1 (ja) データ管理システム、データ管理プログラム、通信端末及びデータ管理サーバ
Krishnamoorthy et al. Implementation and management of cloud security for industry 4. O-data using hybrid elliptical curve cryptography
KR102132685B1 (ko) 순서 노출 암호화를 위한 장치 및 방법
JP2011040932A (ja) 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体
KR102284877B1 (ko) 효율적인 교집합 연산을 위한 함수 암호 기술
WO2015107561A1 (ja) 検索システム、検索方法および検索プログラム
CN116074110B (zh) 一种用于实现云环境中加密文件共享的方法、系统、设备及介质
Lee Understanding the Science Behind Blockchain: Cryptography
Pawar et al. Survey of cryptography techniques for data security
Hanash Homomorphic encryption of text documents
Singh et al. Security of Data with 3DES & Watermarking Algorithm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080815

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090127

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090129

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130206

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130206

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140206

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees