JP2015019333A - 生成装置、再暗号化装置、方法およびプログラム - Google Patents

生成装置、再暗号化装置、方法およびプログラム Download PDF

Info

Publication number
JP2015019333A
JP2015019333A JP2013146888A JP2013146888A JP2015019333A JP 2015019333 A JP2015019333 A JP 2015019333A JP 2013146888 A JP2013146888 A JP 2013146888A JP 2013146888 A JP2013146888 A JP 2013146888A JP 2015019333 A JP2015019333 A JP 2015019333A
Authority
JP
Japan
Prior art keywords
key
client
server
unit
function
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.)
Granted
Application number
JP2013146888A
Other languages
English (en)
Other versions
JP6178142B2 (ja
Inventor
つかさ 小美濃
Tsukasa Omino
つかさ 小美濃
雄一 駒野
Yuichi Komano
雄一 駒野
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013146888A priority Critical patent/JP6178142B2/ja
Priority to US14/326,913 priority patent/US9531534B2/en
Publication of JP2015019333A publication Critical patent/JP2015019333A/ja
Application granted granted Critical
Publication of JP6178142B2 publication Critical patent/JP6178142B2/ja
Active 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)
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • 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/88Medical equipments

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】複数の第2鍵のうちの一部を更新する。【解決手段】実施形態の生成装置は、第1鍵生成部と、第2鍵生成部と、出力部と、更新部とを備える。第1鍵生成部は、乱数に基づきビットの系列である第1鍵を生成するための第1鍵規則に基づいて、第1鍵を生成する。第2鍵生成部は、第1鍵に基づき一部に互いに相関を有するビットの系列である複数の第2鍵を生成するための第2鍵規則に基づいて、複数の第2鍵を生成する。出力部は、第1鍵と複数の第2鍵のうち少なくとも1つの第2鍵とを出力する。更新部は、複数の第2鍵のうち一部の第2鍵を更新する場合、更新対象の第2鍵における、更新対象となっていない他の第2鍵と相関の無い部分系列を更新するための更新情報を生成する。【選択図】図5

Description

本発明の実施形態は、暗号化鍵の生成装置、再暗号化装置、方法およびプログラムに関する。
個人の既往歴または健康情報等の医療データは、将来における未病あるいは適切な医療対処のために長期間にわたり保管される。しかし、医療情報は、個人情報を含んでいるため情報漏洩時の被害が大きい。
また、情報は、保管期間が長いほど漏洩のリスクが増大する。長期間にわたって情報を安全に秘匿する技術として、情報理論的に安全性を保証する暗号技術が知られている。
特開2012−80214号公報 特開2007−143091号公報
C. E. Shannon, Communication theory of secrecy systems, Bell System Technical Journal, vol.28, no.4, pp. 656-715, 1949
情報理論的に安全性を保証する暗号技術を用いる場合には、通信装置は、通信相手ごとに、通信する平文と同じ長さの暗号化鍵を必要とする。そのため、通信相手の数が多い場合および通信する平文の長さが長い場合には、通信装置が管理すべき暗号化鍵のサイズが増大してしまう。従って、複数の通信相手が保持する複数の暗号化鍵を、まとめて小型化して一括管理できることが望ましい。
また、暗号化には、平文と同じビット長の暗号化鍵が必要なので、継続的に暗号通信を行うには、一定の暗号化回数または一定時間毎に更新をする必要がある。しかし、複数の暗号化鍵をまとめて小型化して一括管理した場合、これらの複数の暗号化鍵を一括して更新をしなければならない。このため、複数の暗号化鍵のうち一部のみについて更新が必要な場合も、複数の暗号化鍵の全てについて更新をしなければならない。
実施形態の生成装置は、第1鍵生成部と、第2鍵生成部と、出力部と、更新部とを備える。第1鍵生成部は、乱数に基づきビットの系列である第1鍵を生成するための第1鍵規則に基づいて、第1鍵を生成する。第2鍵生成部は、第1鍵に基づき一部に互いに相関を有するビットの系列である複数の第2鍵を生成するための第2鍵規則に基づいて、複数の第2鍵を生成する。出力部は、第1鍵と複数の第2鍵のうち少なくとも1つの第2鍵とを出力する。更新部は、複数の第2鍵のうち一部の第2鍵を更新する場合、更新対象の第2鍵における、更新対象となっていない他の第2鍵と相関の無い部分系列を更新するための更新情報を生成する。
第1実施形態の暗号処理システムの構成図。 サーバ鍵と複数のクライアント鍵との関係図。 クライアント鍵のビットの更新位置を示す図。 クライアント鍵のビットの更新位置を示す他の図。 生成装置の構成図。 クライアント端末の構成図。 サーバの構成図。 生成装置の処理フロー図。 サーバ鍵関数の内容を示す図。 クライアント鍵関数の内容を示す図。 サーバ鍵関数の内容を関数で表した図。 クライアント鍵関数の内容を関数で表した図。 第1例に係る更新部の構成図。 第1例に係る更新部の処理フロー図。 第1例に係るクライアント端末およびサーバの構成図。 第2例に係る更新部の構成図。 第2例に係る更新部の処理フロー図。 第2例に係るクライアント端末およびサーバの構成図。 第3例に係る更新部の構成図。 第3例に係る更新部の処理フロー図。 第3例に係るクライアント端末およびサーバの構成図。 第4例に係る更新部の構成図。 第4例に係る更新部の処理フロー図。 第4例に係るクライアント端末およびサーバの構成図。 第5例に係る更新部の構成図。 第5例に係る更新部の処理フロー図。 第5例に係るクライアント端末およびサーバの構成図。 第2実施形態に係る暗号処理システムの構成図。 再暗号化装置の構成図。 第2実施形態に係る暗号処理システムの処理フロー図。 コンピュータのハードウェア構成図。
(第1実施形態)
図1は、第1実施形態に係る暗号処理システム10の構成を示す図である。暗号処理システム10は、生成装置20と、複数のクライアント端末30と、サーバ40とを備える。
生成装置20は、コンピュータ等の情報処理装置である。生成装置20は、サーバ鍵規則(第1鍵規則)に基づいて、乱数からサーバ鍵(第1鍵)Kを生成する。また、生成装置20は、クライアント鍵規則(第2鍵規則)に基づいて、サーバ鍵Kから、一部に互いに相関を有するビットの系列である複数個(本例ではn個)のクライアント鍵(第2鍵)K(=K,K,…,K)を生成する。
nは、1つのサーバ鍵Kから生成されるクライアント鍵Kの数を表し、2以上の整数である。また、iは、それぞれのクライアント鍵Kを識別する値であり、インデックスと呼ぶ。iは、複数のクライアント鍵Kの全てに対応付けられており、本例では、1以上、n以下の整数である。
n個のクライアント鍵Kのそれぞれは、平文を暗号化して暗号文を生成するため、および、その暗号文から平文を復号するためのビットの系列である。すなわち、クライアント鍵Kは、暗号用および復号用が同一のデータ系列の暗号化鍵である。n個のクライアント鍵Kのそれぞれは、秘匿して管理がされる秘密情報である。
なお、n個のクライアント鍵Kのそれぞれは、暗号化鍵EK(=EK,EK,…,EK)の生成の種となるビットの系列であってもよい。暗号化鍵EKのそれぞれは、平文を暗号化して暗号文を生成するため、および、その暗号文から平文を復号するためのビットの系列である。従って、クライアント鍵Kが暗号化鍵EKの生成の種となる場合には、クライアント鍵K自体は、鍵とはならない。
また、この場合、生成装置20は、複数のクライアント鍵Kのそれぞれに対応して、変換関数Fδ(=Fδ,Fδ,…,Fδ)を生成する。変換関数Fδは、コンピュータがビットの変換をするための関数またはプログラム等である。変換関数Fδは、一例として、一対一関数または擬似ランダム関数等である。
サーバ鍵Kは、n個のクライアント鍵Kの生成の種となるビットの系列である。なお、サーバ鍵Kは、そのデータ系列自体が、何からの平文の暗号化鍵となっていない。サーバ鍵Kは、秘匿して管理がされる秘密情報である。
サーバ鍵規則およびクライアント鍵規則は、コンピュータにより実行が可能な形式で記述されている電子データであって、例えば、コンピュータにより実行される関数またはプログラム等である。サーバ鍵規則は、乱数に基づきサーバ鍵Kを生成する規則(関数またはプログラム等)である。また、クライアント鍵規則は、サーバ鍵Kに基づきクライアント鍵Kを生成する規則(関数またはプログラム等)である。
より詳細には、クライアント鍵規則とは、サーバ鍵Kの1つ以上の部分系列を抽出してクライアント鍵Kを生成するための規則である。すなわち、クライアント鍵規則は、クライアント鍵Kを定めるための規則である。クライアント鍵Kは、1つ以上の部分系列を要素とする第1部分系列集合に基づいて定められる。複数のクライアント鍵Kのうち、いずれか2つのクライアント鍵Kの第1部分系列集合の少なくとも1つの部分系列が共通する。部分系列とは、サーバ鍵Kの部分情報である。なお、サーバ鍵規則およびクライアント鍵規則は、公開された情報(すなわち、秘匿されていない情報)であってもよいし、秘匿して管理される秘密情報であってもよい。
生成装置20は、複数のクライアント端末30のそれぞれとクライアント鍵Kのインデックスiとの対応関係を示すインデックス情報を生成する。一つのクライアント端末30は、複数のインデックスiと対応してよい。生成装置20は、生成したn個のクライアント鍵Kのそれぞれを、インデックスiに対応するクライアント端末30に送信する。また、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、生成装置20は、クライアント鍵Kのそれぞれに対応して、対応する変換関数Fδのそれぞれをクライアント端末30に送信する。
生成装置20は、生成したサーバ鍵Kおよびクライアント鍵規則をサーバ40に送信する。クライアント鍵規則が公開されている場合、生成装置20は、クライアント鍵規則をサーバ40に送信しなくてもよい。また、生成装置20は、インデックス情報もサーバ40に送信する。また、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、生成装置20は、インデックスiのそれぞれに対応した変換関数Fδのそれぞれをサーバ40に送信する。
生成装置20は、サーバ鍵Kおよび複数のクライアント鍵Kを生成してから所定回数の暗号通信後または所定期間を経過した後、複数のクライアント鍵Kのうちのいずれかを更新するためのサーバ鍵更新情報sriおよびクライアント鍵更新情報criを生成する。生成装置20は、サーバ鍵更新情報sriをサーバ40に送信する。また、生成装置20は、クライアント鍵更新情報criを、更新対象のクライアント鍵Kを保持するクライアント端末30に送信する。
サーバ40は、データ処理を実行する情報処理装置(第1情報処理装置)の一例である。サーバ40は、サーバ鍵Kおよびクライアント鍵規則を生成装置20から受信する。なお、クライアント鍵規則が公開されている場合、サーバ40は、公開元の情報処理装置等からクライアント鍵規則を取得する。また、サーバ40は、複数のクライアント端末30のそれぞれと、そのクライアント端末30が受信したクライアント鍵Kのインデックスiとの対応関係を示すインデックス情報も、生成装置20から受信する。また、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、サーバ40は、インデックスiのそれぞれに対応した変換関数Fδのそれぞれを生成装置20から受信する。
サーバ40は、サーバ鍵Kを受信してから所定回数の暗号通信後または所定期間を経過した後、サーバ鍵更新情報sriを生成装置20から受信する。サーバ40は、受信したサーバ鍵更新情報sriに基づき、保持しているサーバ鍵Kおよびクライアント鍵規則の少なくとも一方を更新する。また、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、サーバ40は、受信したサーバ鍵更新情報sriに基づき、更新対象のクライアント鍵Kに対応する変換関数Fδを更新してもよい。
複数のクライアント端末30のそれぞれは、データ処理を実行する情報処理装置(第2情報処理装置)の一例である。複数のクライアント端末30のそれぞれは、情報処理装置を内蔵した各種の医療機器または電子機器等であってもよい。複数のクライアント端末30のそれぞれは、生成装置20から対応するクライアント鍵Kを受信する。また、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、複数のクライアント端末30のそれぞれは、クライアント鍵Kに対応した変換関数Fδを生成装置20から受信する。
更新対象のクライアント鍵Kを保持するクライアント端末30は、クライアント鍵Kを受信してから所定回数の暗号通信後または所定期間を経過した後、クライアント鍵更新情報criを生成装置20から受信する。クライアント端末30は、受信したクライアント鍵更新情報criに基づき、保持しているクライアント鍵Kを更新する。また、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、クライアント端末30は、受信したクライアント鍵更新情報criに基づき、変換関数Fδを更新してもよい。
このような構成の暗号処理システム10において、サーバ40と、複数のクライアント端末30のそれぞれとの間で、クライアント鍵Kを用いた暗号通信がされる。クライアント端末30からサーバ40へと暗号文を伝達する場合、次のように処理がされる。
複数のクライアント端末30のそれぞれは、平文M(=M,M,…,M)を、対応するクライアント鍵K(=K,K,…,K)で暗号化して、暗号文C(=C,C,…,C)を生成する。複数のクライアント端末30のそれぞれは、一例として、互いに同一のビット長の、平文Mとクライアント鍵Kとを排他的論理和演算して、暗号文Cを生成する。そして、複数のクライアント端末30のそれぞれは、生成した暗号文Cをサーバ40へと送信する。
なお、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、複数のクライアント端末30のそれぞれは、対応するクライアント鍵K(=K,K,…,K)と対応する変換関数Fδ(=Fδ,Fδ,…,Fδ)とから、暗号化鍵EK(=EK,EK,…,EK)を生成する。ここで、EK=Fδ(K)である。そして、複数のクライアント端末30のそれぞれは、対応する暗号化鍵EKで暗号化して、暗号文C(=C,C,…,C)を生成する。
サーバ40は、クライアント端末30から暗号文Cを受信する。サーバ40は、インデックス情報を参照して、暗号文Cを送信したクライアント端末30の端末情報から、暗号文Cを暗号化したクライアント鍵Kのインデックスiを検出する。サーバ40は、検出したインデックスiとサーバ鍵Kとをクライアント鍵規則に入力して、対応するクライアント鍵Kを生成する。そして、サーバ40は、生成したクライアント鍵Kにより暗号文Cを復号して、平文Mを生成する。なお、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、サーバ40は、生成したクライアント鍵Kと対応する変換関数Fδとから暗号化鍵EKを生成し、生成した暗号化鍵EKにより平文Mを生成する。
また、サーバ40からクライアント端末30へと暗号文を伝達する場合、次のように処理がされる。サーバ40は、インデックス情報を参照して、送信先のクライアント端末30の端末情報から、送信先のクライアント端末30が保持しているクライアント鍵Kのインデックスiを検出する。サーバ40は、検出したインデックスiとサーバ鍵Kとをクライアント鍵規則に入力して、対応するクライアント鍵Kを生成する。サーバ40は、平文Mをクライアント鍵Kで暗号化して、暗号文Cを生成する。そして、サーバ40は、生成した暗号文Cを対応するクライアント端末30へと送信する。暗号文Cを受信したクライアント端末30は、保持しているクライアント鍵Kにより暗号文Cを復号して、平文Mを生成する。
なお、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、サーバ40は、生成したクライアント鍵Kと対応する変換関数Fδとから暗号化鍵EKを生成し、生成した暗号化鍵EKにより暗号文Cを生成する。また、暗号文Cを受信したクライアント端末30は、保持しているクライアント鍵Kと対応する変換関数Fδとから暗号化鍵EKを生成し、生成した暗号化鍵EKにより平文Mを生成する。
このような構成の暗号処理システム10は、例えば、多数のクライアント端末30が有するプライバシー情報等をサーバ40に収集させて、一括して管理することができる。例えば、暗号処理システム10は、患者の状態を検出するセンサ(体温計、血圧計、脈拍計)等をクライアント端末30として機能させることにより、複数のセンサから検出データをサーバ40が収集して一括して管理する医療システムに適用することができる。そして、サーバ40は、検出データの出力が必要な場合には、サーバ鍵Kおよびクライアント鍵規則から対応するクライアント鍵Kを生成して、検出データを復号することができる。
また、暗号処理システム10は、一例として、所定のグループ毎(病院毎、病棟毎、診療科毎または担当医者毎)に、サーバ鍵Kおよびクライアント鍵Kを変更して、グループ外に対する秘匿性を高めてもよい。
図2は、サーバ鍵Kと複数のクライアント鍵Kとの関係を示す図である。
ここで、生成装置20は、一部に互いに相関を有するビットの系列である複数のクライアント鍵Kを生成するためのクライアント鍵規則に基づいて、複数のクライアント鍵Kを生成する。互いに相関を有するビットの系列とは、ビットパターンが完全に同一である関係、または、ビットパターンが完全に同一ではないが予め定められたデータ変換(例えばビット反転、一対一関数または線形変換等)をすれば同一となる関係等をいう。
暗号処理システム10は、n個のクライアント鍵Kの間にこのような相関性をもたせることにより、サーバ鍵Kの同一の部分系列から、複数のクライアント鍵Kの一部分を生成することができる。これにより、暗号処理システム10は、サーバ鍵Kのビット長を、n個のクライアント鍵Kの合計のビット長よりも短くすることができる。この結果、暗号処理システム10によれば、サーバ40が、n個のクライアント鍵Kの全てを保持したり、n個のクライアント鍵Kの合計と同一のビット長のサーバ鍵Kを保持したりしなくてよいので、n個のクライアント鍵Kの管理を容易にすることができる。
なお、1つのクライアント鍵Kの系列の中には、異なる2以上のクライアント鍵Kと相関を有する複数の部分系列を含んでいてもよい。例えば、第1のクライアント鍵Kの系列の中は、第2のクライアント鍵Kと相関を有する部分系列と、第3のクライアント鍵Kと相関を有する部分系列とを含んでもよい。これにより、生成装置20は、サーバ鍵Kを効率良く短くすることが可能なクライアント鍵Kを生成することができる。
また、1つのクライアント鍵Kの系列の中には、複数のクライアント鍵Kと同時に相関を有する部分系列を含んでいてもよい。例えば、第1のクライアント鍵Kの系列の中には、第2のクライアント鍵Kおよび第3のクライアント鍵Kの両方に相関を有する部分系列を含んでもよい。これにより、生成装置20は、サーバ鍵Kを効率良く短くすることが可能なクライアント鍵Kを生成することができる。
また、それぞれのクライアント鍵Kの系列の中には、他のクライアント鍵Kと相関の無い部分系列を含んでいてもよい。これにより、生成装置20は、攻撃者が他のクライアント鍵Kを獲得した場合における、安全性を高くすることができる。
なお、クライアント鍵Kの系列は、他のクライアント鍵Kと相関の無い部分系列を長くすれば、他のクライアント鍵Kを獲得した攻撃者による攻撃耐性が高まり安全性が高くなるが、サーバ鍵Kのビット長を長くしてしまう。反対に、クライアント鍵Kの系列は、他のクライアント鍵Kと相関を有する部分系列を長くすれば、サーバ鍵Kのビット長を短くすることができるが、他のクライアント鍵Kを取得した攻撃者による攻撃耐性が低まり安全性が低くなる。
このため、暗号処理システム10は、それぞれのクライアント鍵Kにおける他のクライアント鍵Kに対する相関の強さ(例えば、相関の有る系列と無い系列との比率、および、同一の系列と相関がある他のクライアント鍵Kの数等)を、使用する状況等に応じて調整してもよい。これにより、暗号処理システム10は、ユーザの意図した安全性を有するクライアント鍵Kを生成することができる。
図3および図4は、サーバ鍵Kおよびクライアント鍵Kのビットの更新位置を示す図である。
生成装置20は、サーバ鍵Kおよび複数のクライアント鍵Kを生成した後に、複数のクライアント鍵Kのうちの一部のクライアント鍵Kを更新することができる。この場合、生成装置20は、更新対象のクライアント鍵Kにおける、更新対象となっていない他のクライアント鍵Kと相関の無い部分系列を更新する。
さらに、生成装置20は、サーバ鍵Kの系列の一部を更新する。具体的には、生成装置20は、サーバ鍵Kの系列中における、更新対象のクライアント鍵Kの更新する部分系列に対応する部分を更新する。この場合、生成装置20は、更新後のサーバ鍵Kとクライアント鍵規則とから、更新後のクライアント鍵Kの系列が生成されるように、サーバ鍵Kを更新する。
また、生成装置20は、クライアント鍵規則の一部を更新してもよい。例えば、生成装置20は、更新対象のクライアント鍵Kを構成する部分系列からクライアント鍵Kへ変換するための変換関数を更新する。この場合も、生成装置20は、サーバ鍵Kと更新後のクライアント鍵規則とから、更新後のクライアント鍵Kの系列が生成されるように、クライアント鍵規則を更新する。
また、生成装置20は、サーバ鍵Kおよびクライアント鍵規則の両者を更新してもよい。
例えば、図3に示すように、1つのクライアント鍵Kを更新し、他のクライアント鍵K,K,Kを更新しない場合、生成装置20は、クライアント鍵Kの系列中おける、他のいずれのクライアント鍵K,K,Kとも相関の無い部分系列を変更する。また、生成装置20は、サーバ鍵Kの系列中における対応する部分、および、クライアント鍵規則の対応する部分の少なくとも一方も変更する。
また、例えば、図4に示すように、2つのクライアント鍵K,Kを更新し、他のクライアント鍵K,Kを更新しない場合、生成装置20は、クライアント鍵K,Kの系列中おける、他のいずれのクライアント鍵K,Kとも相関の無い部分系列を変更する。なお、この場合には、生成装置20は、クライアント鍵Kとクライアント鍵Kとの間でのみ相関がある系列も変更してもよい。また、この場合も、生成装置20は、サーバ鍵Kの系列中における対応する部分、および、クライアント鍵規則の対応する部分の少なくとも一方も変更する。
このように暗号処理システム10は、複数のクライアント鍵Kの間に相関性を持たせた場合であっても、複数のクライアント鍵Kのうちの一部のクライアント鍵Kを個別に更新することができる。これにより、暗号処理システム10は、複数のクライアント鍵Kを効率良く更新することができる。
図5は、第1実施形態に係る生成装置20の構成を示す図である。生成装置20は、入力部51と、乱数発生部52と、サーバ鍵生成部(第1鍵生成部)53と、クライアント鍵生成部(第2鍵生成部)54と、出力部55と、更新部60とを有する。
入力部51は、ユーザから与えられた鍵生成のリクエストを入力する。また、入力部51は、サーバ鍵規則およびクライアント鍵規則を、外部の情報処理装置等から入力する。なお、入力部51は、サーバ鍵規則およびクライアント鍵規則を外部の情報処理装置等から入力するのではなく、内部に秘密に保持されているサーバ鍵規則およびクライアント鍵規則を取得してもよい。入力部51は、サーバ鍵規則をサーバ鍵生成部53に渡し、クライアント鍵規則をクライアント鍵生成部54および出力部55に渡す。
乱数発生部52は、乱数を発生し、発生した乱数をサーバ鍵生成部53に渡す。サーバ鍵生成部53は、入力部51から受け取ったサーバ鍵規則に基づいて、乱数発生部52により発生された乱数に基づきサーバ鍵Kを生成する。サーバ鍵生成部53は、生成したサーバ鍵Kをクライアント鍵生成部54および出力部55に渡す。
クライアント鍵生成部54は、入力部51から受け取ったクライアント鍵規則に基づいて、サーバ鍵生成部53から受け取ったサーバ鍵Kから、n個のクライアント鍵Kを生成する。クライアント鍵生成部54は、生成したn個のクライアント鍵Kを出力部55に渡す。また、クライアント鍵生成部54は、クライアント鍵Kが暗号化鍵EKの生成の種である場合、n個の変換関数Fδも生成して、出力部55に渡す。
出力部55は、サーバ鍵生成部53から受け取ったサーバ鍵K、および、入力部51から受け取ったクライアント鍵規則をサーバ40に対して出力する。なお、出力部55は、サーバ40が外部の情報処理装置等からクライアント鍵規則を取得可能な場合には、クライアント鍵規則をサーバ40に対して出力しなくてもよい。
また、出力部55は、クライアント鍵生成部54から受け取ったn個のクライアント鍵Kのそれぞれを、対応するクライアント端末30に対して出力する。さらに、出力部55は、クライアント端末30と、そのクライアント端末30に出力したクライアント鍵Kのインデックスiとの対応関係を示すインデックス情報をサーバ40に出力する。また、出力部55は、クライアント鍵Kが暗号化鍵EKの生成の種である場合、n個の変換関数Fδのそれぞれを、対応するクライアント端末30に対して出力する。
更新部60は、ユーザから更新のリクエストを入力する。さらに、更新部60は、更新対象のクライアント鍵Kのインデックスiの集合を入力する。更新部60は、入力部51が入力したサーバ鍵規則およびクライアント鍵規則を受け取る。更新部60は、サーバ鍵規則およびクライアント鍵規則に基づき、更新対象のクライアント鍵Kを更新するためのサーバ鍵更新情報sriおよびクライアント鍵更新情報criを生成する。ここで、サーバ鍵更新情報sriおよびクライアント鍵更新情報criは、乱数、公開情報、システム管理番号および鍵のリビジョン番号等に基づいて生成される。
更新部60は、クライアント鍵更新情報criをクライアント端末30に出力する。また、更新部60は、サーバ鍵更新情報sriをサーバ40に出力する。なお、更新部60の構成の詳細については、図13以降でさらに説明する。
図6は、第1実施形態に係るクライアント端末30の構成を示す図である。クライアント端末30は、クライアント内保持部61と、クライアント内変換部62と、クライアント内暗号化部63と、クライアント内送信部64と、クライアント内受信部65と、クライアント内復号部66と、クライアント内更新部67とを有する。
クライアント内保持部61は、生成装置20から出力されたクライアント鍵Kを受け取って保持する。また、クライアント内保持部61は、クライアント鍵Kが暗号化鍵EKの生成の種である場合、生成装置20から出力された変換関数Fδを受け取って保持する。
クライアント内変換部62は、クライアント鍵Kが暗号化鍵EKの生成の種である場合、クライアント内保持部61に保持されているクライアント鍵Kを、変換関数Fδに基づき暗号化鍵EKに変換する。なお、クライアント端末30は、クライアント鍵Kがそのまま暗号化鍵となる場合には、クライアント内変換部62を備えなくてよい。
サーバ40へ暗号文Cを送信する場合、クライアント内暗号化部63は、平文Mを例えば機器本体等から受け取る。クライアント内暗号化部63は、受け取った平文Mを、クライアント内保持部61に保持されているクライアント鍵Kまたはクライアント内変換部62により変換された暗号化鍵EKにより暗号化して、暗号文Cを生成する。クライアント内暗号化部63は、生成した暗号文Cをクライアント内送信部64に渡す。そして、クライアント内送信部64は、クライアント内暗号化部63から受け取った暗号文Cを、サーバ40へと送信する。
暗号文Cをサーバ40から受信する場合、クライアント内受信部65は、サーバ40から送信された暗号文Cを受信し、受信した暗号文Cをクライアント内復号部66に渡す。クライアント内復号部66は、クライアント内受信部65から受け取った暗号文Cを、クライアント内保持部61に保持されているクライアント鍵Kまたはクライアント内変換部62により変換された暗号化鍵EKにより復号して、平文Mを生成する。そして、クライアント内復号部66は、生成した平文Mを例えば機器本体等に出力する。なお、暗号化および復号が同一処理により実行される場合には、クライアント内暗号化部63およびクライアント内復号部66は共通のモジュール等により実現されていてもよい。
クライアント内更新部67は、生成装置20から出力されたクライアント鍵更新情報criを受け取る。クライアント内更新部67は、受け取ったクライアント鍵更新情報criに応じて、クライアント内保持部61に保持されているクライアント鍵Kまたは変換関数Fδを更新する。
なお、クライアント内変換部62は、暗号文Cの送信時および受信時毎に、クライアント鍵Kを暗号化鍵EKに変換するのではなく、生成装置20からクライアント鍵Kおよび変換関数Fδを最初に受け取ったとき、または、生成装置20により更新された時に、クライアント鍵Kを暗号化鍵EKに変換してもよい。この場合、クライアント内保持部61は、クライアント内変換部62により変換された暗号化鍵EKを保持する。そして、クライアント内暗号化部63およびクライアント内復号部66は、暗号文Cの送信時および受信時毎に、クライアント内保持部61から暗号化鍵EKを取得する。
図7は、第1実施形態に係るサーバ40の構成を示す図である。サーバ40は、サーバ内保持部71と、サーバ内受信部72と、サーバ内クライアント鍵生成部73と、サーバ内変換部74と、サーバ内復号部75と、サーバ内暗号化部76と、サーバ内送信部77と、サーバ内更新部78とを有する。
サーバ内保持部71は、生成装置20から出力されたサーバ鍵Kおよびクライアント鍵規則を受け取って保持する。なお、サーバ内保持部71は、クライアント鍵規則が公開されている場合には、公開元の情報処理装置からクライアント鍵規則を受け取る。また、サーバ内保持部71は、それぞれのクライアント端末30とクライアント鍵Kのインデックスiとの関係を示すインデックス情報を生成装置20から受け取って、保持する。また、サーバ内保持部71は、クライアント鍵Kが暗号化鍵EKの生成の種である場合、生成装置20から出力されたn個の変換関数Fδを受け取って保持する。
サーバ内受信部72は、クライアント端末30から送信された暗号文Cを受信し、受信した暗号文Cをサーバ内復号部75に渡す。サーバ内受信部72は、さらに暗号文Cを送信したクライアント端末30を特定する端末情報を、サーバ内クライアント鍵生成部73に渡す。
暗号文Cを受信した場合には、サーバ内クライアント鍵生成部73は、サーバ内受信部72から受け取った端末情報、および、サーバ内保持部71に保持されているインデックス情報に基づき、暗号文Cを生成したクライアント鍵Kのインデックスiを特定する。サーバ内クライアント鍵生成部73は、インデックスiを特定すると、サーバ内保持部71に保持されているクライアント鍵規則に基づいて、サーバ内保持部71に保持されているサーバ鍵Kから、インデックスiに対応するクライアント鍵Kを生成する。
サーバ内変換部74は、クライアント鍵Kが暗号化鍵EKの生成の種である場合、サーバ内クライアント鍵生成部73が生成したクライアント鍵Kを受け取る。サーバ内変換部74は、受け取ったクライアント鍵Kを、サーバ内保持部71に保持された対応する変換関数Fδに基づき暗号化鍵EKに変換する。なお、サーバ40は、クライアント鍵Kがそのまま暗号化鍵となる場合には、サーバ内変換部74を備えなくてよい。また、サーバ40は、サーバ内クライアント鍵生成部73とサーバ内変換部74とを合成したブロックを有してもよい。この場合、この合成したブロックは、クライアント鍵規則および変換関数を合成した合成関数を実行して、インデックスiから暗号化鍵EKを直接生成する。
サーバ内復号部75は、サーバ内受信部72から受け取った暗号文Cを、サーバ内クライアント鍵生成部73により生成されたクライアント鍵Kまたはサーバ内変換部74により変換された暗号化鍵EKにより復号して、平文Mを生成する。そして、サーバ内復号部75は、生成した平文Mを出力する。
暗号文Cを送信する場合には、サーバ内クライアント鍵生成部73は、暗号文の送信先のクライアント端末30を特定する端末情報を取得する。サーバ内クライアント鍵生成部73は、受け取った端末情報、および、サーバ内保持部71に保持されているインデックス情報に基づき、送信先のクライアント端末30が保持しているクライアント鍵Kのインデックスiを特定する。サーバ内クライアント鍵生成部73は、インデックスiを特定すると、サーバ内保持部71に保持されているクライアント鍵規則に基づいて、サーバ内保持部71に保持されているサーバ鍵Kから、インデックスiに対応するクライアント鍵Kを生成する。
サーバ内変換部74は、クライアント鍵Kが暗号化鍵EKの生成の種である場合、サーバ内クライアント鍵生成部73が生成したクライアント鍵Kを受け取る。サーバ内変換部74は、受け取ったクライアント鍵Kを、サーバ内保持部71に保持された対応する変換関数Fδに基づき暗号化鍵EKに変換する。
サーバ内暗号化部76は、平文Mを外部から受け取る。サーバ内暗号化部76は、受け取った平文Mを、サーバ内クライアント鍵生成部73から受け取ったクライアント鍵Kまたはサーバ内変換部74により変換された暗号化鍵EKにより暗号化して、暗号文Cを生成する。サーバ内暗号化部76は、生成した暗号文Cをサーバ内送信部77に渡す。そして、サーバ内送信部77は、サーバ内暗号化部76から受け取った暗号文Cを、送信先となるクライアント端末30へと送信する。なお、暗号化および復号が同一処理により実行される場合には、サーバ内復号部75およびサーバ内暗号化部76は共通のモジュール等により実現されていてもよい。
図8は、第1実施形態に係る生成装置20の処理フローを示す図である。まず、ステップS11において、生成装置20の入力部51は、鍵生成のリクエストを入力する。続いて、ステップS12において、入力部51は、サーバ鍵規則およびクライアント鍵規則を取得する。また、ステップS12において、入力部51は、クライアント鍵Kのビット系列を暗号化鍵EKのビット系列に変換するための変換関数Fδを取得してもよい。
続いて、ステップS13において、生成装置20のサーバ鍵生成部53は、サーバ鍵規則を実行して、乱数に基づきサーバ鍵Kを生成する。ここで、本例において、サーバ鍵規則は、下記の式(1)に示されるような、乱数rを入力してサーバ鍵Kのビットの系列を出力するサーバ鍵関数である。なお、式(1)のサーバ鍵関数の内容については、図9を参照して詳細を後述する。
Figure 2015019333
続いて、生成装置20のクライアント鍵生成部54は、インデックスi毎に、ステップS14からステップS17のループ処理を実行する。本例においては、クライアント鍵生成部54は、i=1からi=nまで、iを1ずつ増加させながら、ステップS15およびステップS16の処理を実行する。
クライアント鍵生成部54は、ステップS15において、クライアント鍵規則を実行して、サーバ鍵Kに基づき、インデックスiに対応するクライアント鍵Kを生成する。ここで、本例において、クライアント鍵規則は、下記の式(2)に示されるような、サーバ鍵Kおよびインデックスiを入力してクライアント鍵Kのビットの系列を出力するクライアント鍵関数である。なお、式(2)のクライアント鍵関数の内容については、図10等を参照して詳細を後述する。
Figure 2015019333
続いて、クライアント鍵生成部54は、ステップS16において、クライアント鍵Kのビット系列を暗号化鍵EKのビット系列に変換するための変換関数Fδを生成する。クライアント鍵生成部54は、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、ステップS16を実行し、クライアント鍵Kのビット系列がそのまま暗号化鍵となる場合には、ステップS16を実行しない。また、クライアント鍵生成部54は、ステップS12で既に変換関数Fδを取得している場合も、ステップS16を実行しない。
ステップS17において、クライアント鍵生成部54は、i=nとなるとループ処理を抜けて、処理をステップS18に進める。ステップS18において、生成装置20の出力部55は、サーバ鍵Kおよびクライアント鍵規則をサーバ40に対して出力する。なお、出力部55は、サーバ40が外部からクライアント鍵規則を取得可能な場合には、クライアント鍵規則をサーバ40に対して出力しなくてもよい。また、出力部55は、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、n個の変換関数Fδもサーバ40に対して出力する。
また、出力部55は、n個のクライアント鍵Kのそれぞれを、対応するクライアント端末30に対して出力する。また、出力部55は、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、n個の変換関数Fδのそれぞれも対応するクライアント端末30に対して出力する。そして、生成装置20は、ステップS18の処理が完了すると、本フローを終了する。
図9は、サーバ鍵関数SKeyGen(r)の内容の一例を示す図である。サーバ鍵関数は、乱数rが入力される。
サーバ鍵関数は、入力された乱数rを、複数の部分系列に分割する。さらに、サーバ鍵関数は、複数の集合Dのそれぞれに対して、複数の部分系列のそれぞれを対応付ける。
ここで、集合Dは、インデックスを要素とする集合であって、1からnまでのインデックスの全ての組み合わせを表す。例えば、n=3である場合(すなわち、i=1,2,3である場合)、集合D={1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}となる。なお、{x,y,z}は、xとyとzとの組み合わせの集合を表す。
また、集合Dに対応付けた部分系列を、Kと表す。従って、乱数rは、一例として、下記の式(3)のように表される。なお、‖は、左右のビット列を結合する演算子である。また、部分系列Kは、集合Dの要素に対応するクライアント鍵Kの生成に用いられる情報であることを意味する。例えば、K{1,2}は、クライアント鍵K、Kの生成に用いられる情報である。
Figure 2015019333
また、それぞれの部分系列のビット長は、サーバ鍵関数により定められる。部分系列Kのビット長を、lと表す。lは0以上の整数である。
さらに、サーバ鍵関数は、複数の部分系列Kを一列に配列して、連結する。サーバ鍵関数は、一例として、対応付けられた集合Dに含まれているインデックス(要素)の数が少ないほど左側に配置し、インデックス(要素)の数が同一の場合にはより小さい値のインデックス(要素)を含むほど左側に配置する。
例えば、サーバ鍵関数は、K{1}とK{2,3}とであれば、インデックス(要素)の数が少ないK{1}を左側に配置する。また、例えば、サーバ鍵関数は、K{1,2}とK{2,3}とであればより小さい値のインデックス(要素)を含むK{1,2}を左側に配置する。また、例えば、サーバ鍵関数は、K{1,2}とK{1,3}とであればより小さい値のインデックス(要素)を含むK{1,2}を左側に配置する。
そして、サーバ鍵関数は、このように配置した複数の部分系列を連結して、下記の式(4)のように表されるサーバ鍵Kを出力する。なお、図9には、n=3の場合の配列例が示されている。
Figure 2015019333
このようなサーバ鍵関数は、例えば、lビットの乱数から、lビットのサーバ鍵Kを生成することができる。この場合、l=lとなる。なお、配列の方法は、予め定められた方法であれば、どのような方法であってもよい。
図10は、クライアント鍵関数CKeyGen(K,i)の内容の一例を示す図である。クライアント鍵関数は、サーバ鍵Kおよびインデックスの値iが入力される。
クライアント鍵関数は、入力されたサーバ鍵Kから、複数の部分系列Kを抽出する。すなわち、クライアント鍵関数は、下記式(5)に示されるように、部分系列を抽出する。なお、図10の(a)には、n=3の場合に抽出される部分系列が示されている。
Figure 2015019333
続いて、クライアント鍵関数は、抽出された複数の部分系列の中から、入力されたインデックスの値iを要素に含む集合に対応する2以上の部分系列を選択する。例えば、クライアント鍵関数は、i=1の場合には、下記式(6)に示されるような部分系列を選択する。なお、図10の(b)には、n=3、i=1の場合に選択される部分系列が示されている。
Figure 2015019333
また、例えば、クライアント鍵関数は、i=2の場合には、下記式(7)に示されるような部分系列を選択する。なお、図10の(c)には、n=3、i=2の場合に選択される部分系列が示されている。
Figure 2015019333
また、例えば、クライアント鍵関数は、i=nの場合には、下記式(8)に示されるような部分系列を選択する。なお、図10の(d)には、n=3、i=3の場合に選択される部分系列が示されている。
Figure 2015019333
続いて、クライアント鍵関数は、選択した2以上の部分系列Kを一列に配列して、連結する。クライアント鍵関数は、一例として、対応付けられた集合Dに含まれているインデックス(要素)の数が少ないほど左側に配置し、インデックス(要素)の数が同一の場合にはより小さい値の要素を含むほど左側に配置する。この配列方法は、サーバ鍵関数と同様である。
そして、クライアント鍵関数は、このように配置した複数の部分系列を連結してクライアント鍵Kを出力する。例えば、クライアント鍵関数は、i=1の場合には、下記式(9)に示されるようなクライアント鍵Kを出力する。なお、図10の(e)には、n=3、i=1の場合に出力されるクライアント鍵Kが示されている。
Figure 2015019333
例えば、クライアント鍵関数は、i=2の場合には、下記式(10)に示されるようなクライアント鍵Kを出力する。なお、図10の(f)には、n=3、i=2の場合に出力されるクライアント鍵Kが示されている。
Figure 2015019333
例えば、クライアント鍵関数は、i=nの場合には、下記式(11)に示されるようなクライアント鍵Kを出力する。なお、図10の(g)には、n=3、i=3の場合に出力されるクライアント鍵Kが示されている。
Figure 2015019333
なお、配列の方法は、予め定められた方法であれば、どのような方法であってもよい。
このように生成されたクライアント鍵Kは、含まれているインデックス(要素)の数が2個以上の集合Dに対応する部分系列が、他のクライアント鍵Kと相関が有る。これにより、第1実施形態に係る生成装置20によれば、このようなクライアント鍵関数をクライアント鍵規則とすることにより、n個のクライアント鍵Kの合計のビット長を、サーバ鍵Kのビット長lよりも短くすることができる。
図11は、サーバ鍵関数の内容を関数で表した図である。サーバ鍵関数は、図9で説明した内容の関数に限らず、乱数rに対してデータ変換(第1データ変換Fα)をしてサーバ鍵Kを生成する関数であってもよい。
例えば、第1データ変換Fαは、下記の式(21)に示されるように、乱数rをそのままサーバ鍵Kとして出力する関数であってもよい。
Figure 2015019333
また、例えば、第1データ変換Fαは、下記の式(22)に示されるように、乱数rを関数Fにより変換した系列を出力してもよい。Fは、一例として、一対一関数、擬似ランダム関数またはハッシュ関数等である。また、Fは、lビットの入力に対して、lビット(l≧l)を出力する。
Figure 2015019333
また、例えば、第1データ変換Fαは、下記の式(23)に示されるように、乱数rと、乱数rを関数Fにより変換した系列との排他的論理和を出力してもよい。Fは、一例として、一対一関数、擬似ランダム関数、ハッシュ関数または定数関数等である。また、Fは、lビットの入力に対して、lビットを出力する。
Figure 2015019333
また、例えば、第1データ変換Fαは、下記の式(24)に示されるように、乱数rを関数Fにより変換した系列と、乱数rを関数Fにより変換した系列との、排他的論理和を出力してもよい。Fは、一例として、一対一関数、擬似ランダム関数、ハッシュ関数または定数関数等である。また、Fは、lビットの入力に対して、lビット(l≧l)を出力する。
Figure 2015019333
図12は、クライアント鍵関数の内容を関数で表した図である。クライアント鍵関数は、サーバ鍵Kの系列に対してデータ変換(第2データ変換Fβ)をし、変換後のサーバ鍵K´の系列に基づき複数のクライアント鍵Kを生成する関数であってもよい。
例えば、第2データ変換Fβは、下記の式(31)に示されるように、サーバ鍵Kをそのまま変換後サーバ鍵K´として出力する関数であってもよい。
Figure 2015019333
また、例えば、第2データ変換Fβは、下記の式(32)に示されるように、サーバ鍵Kを関数Fにより変換した系列を、変換後サーバ鍵K´として出力してもよい。Fは、一例として、一対一関数、擬似ランダム関数またはハッシュ関数等である。また、Fは、lビットの入力に対して、lビットを出力する。
Figure 2015019333
また、例えば、第2データ変換Fβは、下記の式(33)に示されるように、サーバ鍵Kと、サーバ鍵Kを関数Fにより変換した系列との排他的論理和を、変換後サーバ鍵K´として出力してもよい。Fは、一例として、一対一関数、擬似ランダム関数、ハッシュ関数または定数関数等である。また、Fは、lビットの入力に対して、lビットを出力する。
Figure 2015019333
また、例えば、第2データ変換Fβは、下記の式(34)に示されるように、サーバ鍵Kを関数Fにより変換した系列と、サーバ鍵Kを関数Fにより変換した系列との、排他的論理和を、変換後サーバ鍵K´として出力してもよい。
Figure 2015019333
また、クライアント鍵関数は、変換後サーバ鍵K´の系列から、部分系列Kを選択および配列した系列(変換前クライアント鍵K´)に対して、データ変換(第3データ変換Fγ)をしてクライアント鍵Kを生成する関数であってもよい。
例えば、第3データ変換Fγは、下記の式(41)に示されるように、変換前クライアント鍵K´をそのままクライアント鍵Kとして出力する関数であってもよい。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(42)に示されるように、変換前クライアント鍵K´を関数Fにより変換した系列を、クライアント鍵Kとして出力してもよい。Fは、一例として、一対一関数、擬似ランダム関数またはハッシュ関数等である。また、Fは、lビットの入力に対して、lビットを出力する。
Figure 2015019333
は、下記の式(43)に示されるように、K´を行ベクトルと考え右から正則行列Rをかけてもよい。例えば、K´の1ビットをベクトルの1要素とし、Rをl×lの正則行列として計算する。また、例えば、K´の複数ビットが示す数をベクトルの1つの要素としてもよい。ここで、Rは公開してもよい。変換前クライアント鍵K´に正則行列Rをかけることで、共通の部分系列を有する複数のクライアント鍵Kで、共通の部分系列のビット位置を変えることができる。攻撃者がクライアント鍵Kを持っていてもクライアント鍵Kのビット系列の中でクライアント鍵Kと共通の部分系列のビット位置を推測不能にする。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(44)に示されるように、変換前クライアント鍵K´と、変換前クライアント鍵K´を関数Fにより変換した系列との排他的論理和を、クライアント鍵Kとして出力してもよい。Fは、一例として、一対一関数、擬似ランダム関数、ハッシュ関数または定数関数等である。また、Fは、lビットの入力に対して、lビットを出力する。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(45)に示されるように、変換前クライアント鍵K´を関数Fにより変換した系列と、変換前クライアント鍵K´を関数Fにより変換した系列との、排他的論理和を、クライアント鍵Kとして出力してもよい。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(46)に示されるように、変換前クライアント鍵K´と、集合Dとを関数Fにより変換した系列を、クライアント鍵Kとして出力してもよい。Fは、集合Dに対応する部分系列KをK´から削除する。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(47)に示されるように、複数の変換前クライアント鍵K´を関数Fにより変換した系列を、複数のクライアント鍵K,Kとして出力してもよい。なお、Kは、Kとは異なるクライアント鍵を表す。Fは、一例として、一対一関数、擬似ランダム関数またはハッシュ関数等である。
Figure 2015019333
また、Fは、下記の式(48)に示されるように、複数のクライアント鍵K´を1つの行ベクトルと考え右から正則行列Rをかけてもよい。式(47)、(48)は、変換前クライアント鍵K´が2つの場合の例であるが、変換前クライアント鍵K´が3つ以上であってもよい。
Figure 2015019333
また、クライアント鍵関数CKeyGen(r)は、第2データ変換Fβ、部分系列の選択,配列処理および第3データ変換Fγを一括して実行する関数であってもよい。
また、生成装置20は、クライアント鍵関数CKeyGen(K,i)と変換関数Fδとを合成した合成関数CEKGen(K,i)を生成してもよい。この場合、生成装置20は、生成した合成関数CEKGen(K,i)をサーバ40に送信して、サーバ40にサーバ鍵Kおよびインデックスiから、暗号化鍵EKを直接生成させる。
図13は、第1例に係る更新部60の構成をクライアント端末30およびサーバ40とともに示す図である。
第1例において、クライアント鍵Kは、暗号化鍵EKを生成するための種情報である。従って、第1例においては、生成装置20は、複数のクライアント鍵Kのそれぞれ毎に、対応するクライアント鍵Kを暗号化鍵EKに変換するための変換関数Fδを生成する。第1例において、生成装置20は、それぞれのクライアント端末30に対して、対応する変換関数Fδを出力する。そして、第1例において、更新部60は、変換関数Fδを更新する。
第1例において、更新部60は、図13に示すように、入力部80と、乱数発生部81と、更新情報生成部82と、出力部83とを有する。
入力部80は、更新対象のクライアント鍵Kを指定するためのインデックスiの集合を入力する。インデックスiの集合には、1つのインデックスiのみが含まれていてもよいし、複数のインデックスiが含まれていてもよい。乱数発生部81は、予め定められた桁数の乱数を発生する。
更新情報生成部82は、乱数発生部81により発生された乱数に基づき、入力部80が入力したそれぞれのインデックスiに対応してマスター鍵gを生成する。マスター鍵gは、インデックスiに対応する変換関数Fδを生成するための種となる情報である。
出力部83は、インデックスiおよびマスター鍵gをサーバ鍵更新情報sriとしてサーバ40に出力する。また、出力部83は、更新対象のクライアント鍵Kを保持するクライアント端末30のそれぞれに対して、対応するインデックスiおよびマスター鍵gをクライアント鍵更新情報criとして出力する。
なお、更新情報生成部82は、マスター鍵gに代えて、インデックスiに対応する変換関数Fδを生成してもよい。この場合、出力部83は、マスター鍵gに代えて対応する変換関数Fδを、サーバ鍵更新情報sriとしてサーバ40に出力する。また、この場合、出力部83は、マスター鍵gに代えて対応する変換関数Fδをクライアント端末30にクライアント鍵更新情報criとして出力する。
ここで、変換関数Fδとして、以下の例がある。なお、更新情報生成部82は、マスター鍵gに加えてシステム管理番号およびリビジョン番号等の情報に基づいて変換関数Fδを生成してもよい。ここでは、マスター鍵g以外の情報を管理情報wと表す。管理情報wは、秘匿情報であってもよいし、公開情報であってもよい。
例えば、変換関数Fδは、下記の式(60)〜式(62)に示されるように、クライアント鍵Kとマスター鍵gとの算術和、算術積または排他的論理和を出力する関数であってもよい。なお、式(62)は、Kとgとのビット長が等しい場合の式である。
Figure 2015019333
また、例えば、変換関数Fδは、下記の式(63)に示されるように、クライアント鍵Kとマスター鍵gと管理情報wとの演算結果を出力する関数であってもよい。なお、○は、算術加算、算術乗算、排他的論理和演算などの演算子であり、他の式でも同様である。
Figure 2015019333
また、例えば、変換関数Fδは、下記の式(64)に示されるように、クライアント鍵Kとマスター鍵gと管理情報wとの和、積または排他的論理和を関数F10により変換した系列を出力する関数であってもよい。F10は、一例として、一対一関数、擬似ランダム関数またはハッシュ関数等である。また、F10は、lビットの入力に対して、lビットを出力する。
Figure 2015019333
また、例えば、変換関数Fδは、下記の式(65)に示されるように、Kを行ベクトルと考え右から正則行列gをかけてもよい。例えば、変換関数Fδは、Kの1ビットをベクトルの1要素とし1×lの行ベクトルとし、gをl×lの正則行列として計算する。また、例えば、変換関数Fδは、Kの複数ビットが示す数をベクトルの1つの要素として計算してもよい。
Figure 2015019333
また、例えば、変換関数Fδは、下記の式(66)に示されるように、Kを列ベクトルと考え、行列wと列ベクトルgの積を加えてもよい。例えば、変換関数Fδは、Kの1ビットをベクトルの1要素とし、l×1の列ベクトルとし、wをl×l行列とし、gをl×1の列ベクトルとして計算する。また、例えば、変換関数Fδは、Ki、i、wの複数ビットが示す数をベクトルの1つの要素として計算してもよい。
Figure 2015019333
また、例えば、変換関数Fδは、下記の式(67)に示されるように、クライアント鍵Kを関数F10により変換した系列と、マスター鍵gを関数F11により変換した系列との、演算結果を出力してもよい。F11は、一例として、一対一関数、擬似ランダム関数またはハッシュ関数等である。
Figure 2015019333
なお、変換関数Fδは、このような関数に限らず、クライアント鍵Kを、マスター鍵gまたは管理情報w等によって変換する関数であればよい。
図14は、第1例に係る更新部60の処理フローを示す図である。まず、ステップS111において、更新部60の入力部80は、更新対象のクライアント鍵Kを指定するためのインデックスiの集合を入力する。続いて、ステップS112において、更新情報生成部82は、乱数に基づき、入力部80が入力したそれぞれのインデックスiに対応してマスター鍵gを生成する。
そして、ステップS113において、出力部83は、インデックスiおよびマスター鍵gをサーバ40に出力する。さらに、出力部83は、更新対象のクライアント鍵Kを保持するクライアント端末30に、対応するインデックスiおよびマスター鍵gを出力する。
図15は、第1例に係るクライアント端末30およびサーバ40の構成の一部を更新部60とともに示す図である。
第1例において、更新対象のクライアント端末30のクライアント内更新部67は、更新部60からインデックスiおよびマスター鍵gを取得する。クライアント内更新部67は、取得したインデックスiおよびマスター鍵gを、予め保持しているマスター関数Gf(g,i)に入力して、変換関数Fδを生成する。マスター関数Gf(g,i)は、マスター鍵gおよびインデックスiから、変換関数Fδを生成するための関数である。マスター関数Gf(g,i)は、公開情報であってもよいし、生成装置20により生成された秘匿情報であってもよい。また、マスター関数は、管理情報wを引数にとるGf(g,i,w)であってもよい。また、マスター関数が出力する変換関数Fδは、例えば、式(60)〜(67)に示す関数である。
そして、クライアント内更新部67は、クライアント内保持部61に保持されている変換関数Fδを、新たに生成した変換関数Fδに置き換える。なお、クライアント内更新部67は、更新部60から、マスター鍵gに代えて変換関数Fδを取得してもよい。この場合、クライアント内更新部67は、クライアント内保持部61に保持されている変換関数Fδを、取得した変換関数Fδに置き換える。
暗号化時または復号時において、クライアント内変換部62は、クライアント内保持部61に保持されている既存のクライアント鍵Kと、新たな変換関数Fδとに基づき、新たな暗号化鍵EKを生成する。これにより、クライアント端末30は、新たな暗号化鍵EKを用いてサーバ40との間で暗号通信をすることができる。
第1例において、サーバ40のサーバ内更新部78は、更新部60からインデックスiおよびマスター鍵gを取得する。サーバ内更新部78は、取得したインデックスiおよびマスター鍵gをマスター関数Gf(g,i)に入力して、変換関数Fδを生成する。マスター関数Gf(g,i)は、対応するクライアント端末30が保持しているものと同一である。
そして、サーバ内更新部78は、サーバ内保持部71に保持されている変換関数Fδを、新たに生成した変換関数Fδに置き換える。なお、サーバ内更新部78は、更新部60から、マスター鍵gに代えて変換関数Fδを取得してもよい。この場合、サーバ内更新部78は、サーバ内保持部71に保持されている変換関数Fδを、取得した変換関数Fδに置き換える。
暗号化時または復号時において、サーバ内クライアント鍵生成部73は、インデックスi、サーバ内保持部71に保持されている既存のクライアント鍵関数CKeyGen(K,i)および既存のサーバ鍵Kに基づき、クライアント鍵Kを生成する。サーバ内変換部74は、生成されたクライアント鍵Kと、新たな変換関数Fδとに基づき、新たな暗号化鍵EKを生成する。これにより、サーバ40は、新たな暗号化鍵EKを用いてクライアント端末30と暗号通信をすることができる。
第1例に係る更新部60によれば、変換関数Fδを更新することにより、暗号化鍵EKを更新することができる。
図16は、第2例に係る更新部60の構成をクライアント端末30およびサーバ40とともに示す図である。なお、第2例を説明するに当たり、第1例と略同一の構成および機能を有する部材には同一の符号を付けて、相違点を除き説明を省略する。
第2例において、生成装置20は、更新対象のクライアント鍵Kを更新する。これとともに、生成装置20は、サーバ鍵Kにおける一部のビットを更新する。具体的には、生成装置20は、サーバ鍵Kにおける更新対象のクライアント鍵Kの種となり且つ更新対象ではないクライアント鍵Kの種となっていないビットを更新する。
第2例において、更新部60は、図16に示すように、入力部80と、乱数発生部81と、第1更新情報生成部84と、第2更新情報生成部85と、出力部83とを有する。
第1更新情報生成部84は、サーバ鍵更新情報sriを生成する。第1更新情報生成部84は、位置検出部91と、値生成部92とを含む。
位置検出部91は、入力部80が入力したそれぞれのインデックスiに基づき、サーバ鍵Kにおける、更新対象のクライアント鍵Kの種となり且つ更新対象ではないクライアント鍵Kの種となっていないビット位置(更新位置P)を検出する。すなわち、位置検出部91は、そのビットの値を変更すると、更新対象のクライアント鍵Kは変更されるが、更新対象ではないクライアント鍵Kは変更されないビット位置を検出する。
例えば、クライアント鍵関数CKeyGen(K,i)が、図10に示した変換をする場合、サーバ鍵Kにおける、部分系列のビット位置は予め判明している。従って、図10に示した変換をする場合、位置検出部91は、予め判明している情報に基づき、更新対象のクライアント鍵Kの種となり且つ更新対象ではないクライアント鍵Kの種となっていないビット位置(更新位置P)を検出する。
また、例えば、クライアント鍵関数CKeyGen(K,i)が、図12に示した変換をする場合、位置検出部91は、このようなビット位置を、クライアント鍵関数CKeyGen(K,i)を逆に辿って検出する。以下逆に辿る場合の例について説明する。図12で、変換前クライアント鍵K’に対応する変換後サーバ鍵K’は、部分系列の選択、配置方法が定まっているため分かっている。従って、位置検出部91は、変換後サーバ鍵K’と変換前サーバ鍵Kとの対応に基づき、変換前サーバ鍵Kのうち更新できるビット位置を検出する。
第2例は、第2データ変換Fβが置換または線形変換の場合に適用できる。このため、K’=Fβ(K)=φ(K)の場合を考える。φは、行列であり、置換または線形変換を表す。Bは、K’の更新するビット位置集合を表す。b∈B行目が1であるような列の位置を更新位置Pとする。なお、bが含まれる行とbが含まれない行とが共に1である列が、行列φに含まれる場合は適用できない。
具体的に示すと以下の通りである。K’およびKを以下の通りとする。x、yは、1ビットである。
Figure 2015019333
’で更新する値をx、yとすると、更新するビット位置は1ビット目と3ビット目である。従って、K’の更新するビット位置集合は、B={1,3}である。b=1行目が1である列は、2列目と5列目である。b=3行目が1である列は、1列目と5列目である。すなわち、この具体例の場合には、変換前サーバ鍵Kの更新位置は、P=1,2,5となる。
なお、逆に辿ってビット位置を検出するので、第2例においては、クライアント鍵関数CKeyGen(K,i)は、ビット位置の配置変更または線形変換をする関数である必要がある。従って、第2例において、クライアント鍵関数CKeyGen(K,i)は、ビット位置を逆に辿ることができない、擬似ランダム関数およびハッシュ関数等ではない。
また、位置検出部91は、さらに、検出したビット位置の合計のビット数lを示す情報を生成する。
値生成部92は、乱数発生部81により発生された乱数に基づき、位置検出部91が生成したビット数l分の更新値Vを生成する。
第2更新情報生成部85は、クライアント鍵更新情報criを生成する。第2更新情報生成部85は、サーバ鍵生成部93と、クライアント鍵生成部94とを含む。
サーバ鍵生成部93は、更新前のサーバ鍵K、更新位置Pおよび更新値Vに基づき、更新後の新たなサーバ鍵Kを生成する。具体的には、サーバ鍵生成部93は、更新前のサーバ鍵Kにおける更新位置Pに示されたビット位置の値を、更新値Vに示された値に置き換える。クライアント鍵生成部94は、入力部80が入力したインデックスi、既存のクライアント鍵関数CKeyGen(K,i)および更新後の新たなサーバ鍵Kに基づき、新たなクライアント鍵Kを生成する。
出力部83は、第1更新情報生成部84が生成した更新位置Pおよび更新値Vをサーバ40に出力する。また、出力部83は、更新対象のクライアント鍵Kを保持するクライアント端末30のそれぞれに、第2更新情報生成部85が生成した新たなクライアント鍵Kを出力する。
図17は、第2例に係る更新部60の処理フローを示す図である。まず、ステップS121において、更新部60の入力部80は、更新対象のクライアント鍵Kを指定するためのインデックスiの集合を入力する。
続いて、ステップS122において、第1更新情報生成部84は、入力部80が入力したそれぞれのインデックスiに基づき、サーバ鍵Kにおける、更新対象のクライアント鍵Kの種となり且つ更新対象ではないクライアント鍵Kの種となっていないビット位置(更新位置P)、および、ビット数lを検出する。続いて、ステップS123において、第1更新情報生成部84は、乱数に基づき、ビット数l分の更新値Vを生成する。
続いて、ステップS124において、第2更新情報生成部85は、更新位置P、更新値Vおよび更新前のサーバ鍵Kに基づき、更新後の新たなサーバ鍵Kを生成する。続いて、ステップS125において、第2更新情報生成部85は、入力部80が入力したインデックスi、更新後の新たなサーバ鍵Kおよび既存のクライアント鍵関数CKeyGen(K,i)に基づき、新たなクライアント鍵Kを生成する。
そして、ステップS126において、出力部83は、更新位置Pおよび更新値Vをサーバ40に出力する。また、出力部83は、更新対象のクライアント鍵Kを保持するクライアント端末30のそれぞれに、新たなクライアント鍵Kを出力する。
図18は、第2例に係るクライアント端末30およびサーバ40の構成の一部を更新部60とともに示す図である。第2例において、更新対象のクライアント端末30のクライアント内更新部67は、更新部60からクライアント鍵Kを取得する。そして、クライアント内更新部67は、クライアント内保持部61に保持されているクライアント鍵Kを、取得した新たなクライアント鍵Kに置き換える。
これにより、クライアント端末30は、暗号化時または復号時において、クライアント内保持部61に保持されている新たなクライアント鍵Kを用いてサーバ40との間で暗号通信をすることができる。
なお、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、クライアント内変換部62は、クライアント内保持部61に保持されている新たなクライアント鍵Kと、既存の変換関数Fδとに基づき、新たな暗号化鍵EKを生成する。これにより、クライアント端末30は、新たな暗号化鍵EKを用いてサーバ40との間で暗号通信をすることができる。
第2例において、サーバ40のサーバ内更新部78は、更新部60から、更新位置Pおよび更新値Vを取得する。サーバ内更新部78は、更新前の既存のサーバ鍵K、更新位置Pおよび更新値Vに基づき、更新後の新たなサーバ鍵Kを生成する。具体的には、サーバ内更新部78は、更新前のサーバ鍵Kにおける更新位置Pに示されたビット位置の値を、更新値Vに示された値に置き換える。そして、サーバ内更新部78は、サーバ内保持部71に保持されている既存のサーバ鍵Kを、更新後の新たなサーバ鍵Kに置き換える。
暗号化時または復号時において、サーバ内クライアント鍵生成部73は、インデックスi、サーバ内保持部71に保持されている既存のクライアント鍵関数CKeyGen(K,i)および更新後の新たなサーバ鍵Kに基づき、新たなクライアント鍵Kを生成する。これにより、サーバ40は、新たなクライアント鍵Kを用いてクライアント端末30と暗号通信をすることができる。
なお、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、サーバ内変換部74は、生成された新たなクライアント鍵Kと、既存の変換関数Fδとに基づき、新たな暗号化鍵EKを生成する。これにより、サーバ40は、新たな暗号化鍵EKを用いてクライアント端末30と暗号通信をすることができる。
また、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、サーバ40は、クライアント鍵関数CKeyGen(K,i)および変換関数Fδを合成した合成関数CEKGen(K,i)を用いてもよい。この場合、サーバ内保持部71は、クライアント鍵関数CKeyGen(K,i)および変換関数Fδに代えて、合成関数CEKGen(K,i)を保持する。そして、サーバ内クライアント鍵生成部73は、インデックスi、サーバ内保持部71に保持されている既存の合成関数CEKGen(K,i)および新たなサーバ鍵Kに基づき、新たな暗号化鍵EKを生成する。
また、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、更新部60は、更新後の新たなクライアント鍵Kに代えて新たな暗号化鍵EKを生成して、クライアント端末30に送信してもよい。この場合、クライアント内更新部67は、クライアント内保持部61に保持されている暗号化鍵EKを、取得した新たな暗号化鍵EKに置き換える。
第2例に係る更新部60によれば、サーバ鍵Kの一部を更新することにより、クライアント鍵Kまたは暗号化鍵EKを更新することができる。
図19は、第3例に係る更新部60の構成をクライアント端末30およびサーバ40とともに示す図である。なお、第3例を説明するに当たり、第2例と略同一の構成および機能を有する部材には同一の符号を付けて、相違点を除き説明を省略する。
第3例において、クライアント鍵関数CKeyGen(K,i)は、複数のクライアント鍵Kのそれぞれに対応して異なる複数の関数を含む。例えば、クライアント鍵関数CKeyGen(K,i)は、複数のクライアント鍵Kのそれぞれに対応する複数の関数から構成される。例えば、クライアント鍵関数CKeyGen(K,i)は、図12に示した、更新対象のクライアント鍵Kを構成する部分系列からクライアント鍵Kへ変換するための第3データ変換Fγに対応した複数の部分関数を含む。従って、クライアント鍵関数CKeyGen(K,i)は、指定されたインデックスiに対応する関数部分が変更されることにより、この指定されたインデックスiに対応して生成するクライアント鍵Kが変更される。
また、生成装置20は、サーバ鍵Kとともに、マスター関数Gf(g,i)を出力する。第3例において、マスター関数Gf(g,i)は、マスター鍵gおよびインデックスiから、クライアント鍵関数CKeyGen(K,i)に含まれる指定されたインデックスiに対応する関数部分を生成するための関数である。すなわち、マスター関数Gf(g,i)にマスター鍵gおよびインデックスiを入力すると、クライアント鍵関数CKeyGen(K,i)に含まれるインデックスiに対応する関数部分が生成される。
第3例においては、更新部60は、更新対象のクライアント鍵Kを更新する。これとともに、更新部60は、マスター鍵gを更新して、クライアント鍵関数CKeyGen(K,i)に含まれる更新対象のクライアント鍵Kに対応する関数部分を更新する。
クライアント鍵関数CKeyGen(K,i)が、図12に示す変換で、第3データ変換Fγがクライアント毎に異なる場合、第3データ変換Fγが指定されたインデックスiに対応する関数部分となる。インデックスiに対応する第3データ変換FγをFγとする。
マスター関数Gf(g,i)は、例えば、以下に示すような例の第3データ変換Fγを出力する。ここで、なお、更新情報生成部82は、マスター鍵gに加えてシステム管理番号およびリビジョン番号等の情報に基づいて第3データ変換Fγを生成してもよい。ここでは、マスター鍵g以外を管理情報wと表す。管理情報wは、秘匿情報であってもよいし、公開情報であってもよい。このとき、マスター関数Gf(g,i,w)は、第3データ変換Fγを出力する。
例えば、第3データ変換Fγは、下記の式(70)〜(72)に示されるように、変換前クライアント鍵K’とマスター鍵gとの算術和、算術積または排他的論理和を出力する関数であってもよい。なお、式(72)は、K’とgとのビット長が等しい場合の式である。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(73)に示されるように、変換前クライアント鍵K’とマスター鍵gと管理情報wとの演算結果を出力する関数であってもよい。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(74)に示されるように、変換前クライアント鍵K’とマスター鍵gと管理情報wとの和、積または排他的論理和を関数F12により変換した系列を出力する関数であってもよい。F12は、一例として、一対一関数、擬似ランダム関数またはハッシュ関数等である。また、F12は、lビットの入力に対して、lビットを出力する。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(75)に示されるように、K’を行ベクトルと考え右から正則行列gをかけてもよい。例えば、第3データ変換Fγは、Kの1ビットをベクトルの1要素とし、1×lの行ベクトルとし、gをl×lの正則行列として計算する。また、例えば、第3データ変換Fγは、K’の複数ビットが示す数をベクトルの1つの要素として計算してもよい。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(76)に示されるように、K’を列ベクトルと考え、行列wと列ベクトルgの積を加えてもよい。例えば、第3データ変換Fγは、K’の1ビットをベクトルの1要素とし、l×1の列ベクトルとし、wをl×l行列とし、gをl×1の列ベクトルとして計算する。また、例えば、第3データ変換Fγは、Ki、wの複数ビットが示す数をベクトルの1つの要素として計算してもよい。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(77)に示されるように、クライアント鍵Kを関数F12により変換した系列と、マスター鍵gを関数F13により変換した系列との、演算結果を出力してもよい。F13は、一例として、一対一関数、擬似ランダム関数またはハッシュ関数等である。
Figure 2015019333
なお、第3データ変換Fγは、このような関数に限らず、変換前クライアント鍵K’を、マスター鍵gまたは管理情報w等によってクライアント鍵Kに変換する関数であればよい。
クライアント鍵関数CKeyGen(K,i)が、関数H(i)の出力値がKのビット位置を示すと考え、Kの該当位置のビットを連結させてクライアント鍵を生成する場合を考える。ここで、関数Hはハッシュ関数または疑似ランダム関数等である。この場合、マスター関数Gf(g,i,w)は、関数H(i○g○w)を出力する。
更新部60は、図19に示すように、入力部80と、乱数発生部81と、第1更新情報生成部84と、第2更新情報生成部85と、出力部83とを有する。
第1更新情報生成部84は、マスター鍵生成部95を含む。マスター鍵生成部95は、乱数発生部81により発生された乱数に基づき、マスター鍵gを生成する。
第2更新情報生成部85は、関数生成部96と、クライアント鍵生成部94とを含む。関数生成部96は、マスター関数Gf(g,i)を保持し、入力部80が入力したインデックスiおよびマスター鍵生成部95により生成されたマスター鍵gに基づき、クライアント鍵関数CKeyGen(K,i)に含まれる、入力部80が入力したインデックスiに対応する関数部分を生成する。そして、関数生成部96は、既存のクライアント鍵関数CKeyGen(K,i)における入力部80が入力したインデックスiに対応する部分を新たな関数に置き換えて、新たなクライアント鍵関数CKeyGen(K,i)を生成する。
クライアント鍵生成部94は、入力部80が入力したインデックスi、関数生成部96が生成した新たなクライアント鍵関数CKeyGen(K,i)および既存のサーバ鍵Kに基づき、新たなクライアント鍵Kを生成する。
出力部83は、第1更新情報生成部84が生成したマスター鍵gおよび入力部80が入力したインデックスiをサーバ鍵更新情報sriとしてサーバ40に出力する。また、出力部83は、更新対象のクライアント鍵Kを保持するクライアント端末30のそれぞれに、第2更新情報生成部85が生成した新たなクライアント鍵Kをクライアント鍵更新情報criとして出力する。
なお、第3例において、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、マスター関数Gf(g,i)は、マスター鍵gおよびインデックスiから、指定されたインデックスiに対応する変換関数Fδを生成してもよい。この場合、関数生成部96は、インデックスiおよびマスター鍵gに基づき、新たな変換関数Fδを生成する。また、この場合、クライアント鍵生成部94は、入力部80が入力したインデックスi、関数生成部96が生成した新たな変換関数Fδ、既存のクライアント鍵関数CKeyGen(K,i)および既存のサーバ鍵Kに基づき、新たな暗号化鍵EKを生成する。そして、出力部83は、新たな暗号化鍵EKをクライアント鍵更新情報criとして出力する。また、出力部83は、クライアント鍵Kおよび変換関数Fδをクライアント鍵更新情報criとして出力してもよい。
また、第3例において、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、関数生成部96は、新たなクライアント鍵関数CKeyGen(K,i)と既存の変換関数Fδとを合成した合成関数CEKGen(K,i)、または、既存のクライアント鍵関数CKeyGen(K,i)と新たな変換関数Fδとを合成した合成関数CEKGen(K,i)を生成してもよい。出力部83は、この合成関数CEKGen(K,i)をサーバ鍵更新情報sriとしてサーバ40に送信してもよい。また、この場合、クライアント鍵生成部94は、入力部80が入力したインデックスi、合成関数CEKGen(K,i)および既存のサーバ鍵Kに基づき、新たな暗号化鍵EKを生成する。そして、この場合、出力部83は、新たな暗号化鍵EKをクライアント鍵更新情報criとして出力する。
図20は、第3例に係る更新部60の処理フローを示す図である。まず、ステップS131において、更新部60の入力部80は、更新対象のクライアント鍵Kを指定するためのインデックスiの集合を入力する。
続いて、ステップS132において、第1更新情報生成部84は、乱数に基づきマスター鍵gを生成する。続いて、ステップS133において、第2更新情報生成部85は、マスター鍵gに基づき、新たなクライアント鍵関数CKeyGen(K,i)を生成する。
続いて、ステップS134において、第2更新情報生成部85は、入力部80が入力したインデックスi、既存のサーバ鍵Kおよび新たなクライアント鍵関数CKeyGen(K,i)に基づき、新たなクライアント鍵Kを生成する。
そして、ステップS135において、出力部83は、マスター鍵gおよびインデックスiをサーバ40に出力する。また、出力部83は、更新対象のクライアント鍵Kを保持するクライアント端末30のそれぞれに、新たなクライアント鍵Kを出力する。
図21は、第3例に係るクライアント端末30およびサーバ40の構成の一部を更新部60とともに示す図である。第3例において、更新対象のクライアント端末30のクライアント内更新部67は、更新部60からクライアント鍵Kを取得する。そして、クライアント内更新部67は、クライアント内保持部61に保持されているクライアント鍵Kを、取得した新たなクライアント鍵Kに置き換える。これにより、クライアント端末30は、暗号化時または復号時において、クライアント内保持部61に保持されている新たなクライアント鍵Kを用いてサーバ40との間で暗号通信をすることができる。
なお、第3例において、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、クライアント内変換部62は、クライアント内保持部61に保持されている新たなクライアント鍵Kと、既存の変換関数Fδとに基づき、新たな暗号化鍵EKを生成する。これにより、クライアント端末30は、新たな暗号化鍵EKを用いてサーバ40との間で暗号通信をすることができる。
また、第3例において、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、クライアント内更新部67は、更新部60から、更新後の新たなクライアント鍵Kに代えて新たな暗号化鍵EKを取得してもよい。この場合、クライアント内更新部67は、クライアント内保持部61に保持されている暗号化鍵EKを、取得した新たな暗号化鍵EKに置き換える。
第3例において、サーバ40のサーバ内更新部78は、更新部60からインデックスiおよびマスター鍵gを取得する。サーバ内更新部78は、取得したマスター鍵gおよびインデックスiを、予め保持しているマスター関数Gf(g,i)に入力して、クライアント鍵関数CKeyGen(K,i)に含まれる、入力部80が入力したインデックスiに対応する関数部分を生成する。この関数部分は、更新部60が更新する関数部分に対応する。サーバ内更新部78は、既存のクライアント鍵関数CKeyGen(K,i)における入力部80が入力したインデックスiに対応する部分を新たな関数に置き換えて、新たなクライアント鍵関数CKeyGen(K,i)を生成する。そして、サーバ内更新部78は、サーバ内保持部71に保持されている既存のクライアント鍵関数CKeyGen(K,i)を、新たなクライアント鍵関数CKeyGen(K,i)に置き換える。
暗号化時または復号時において、サーバ内クライアント鍵生成部73は、インデックスi、サーバ内保持部71に保持されている新たなクライアント鍵関数CKeyGen(K,i)および既存のサーバ鍵Kに基づき、新たなクライアント鍵Kを生成する。これにより、サーバ40は、新たなクライアント鍵Kを用いてクライアント端末30と暗号通信をすることができる。
なお、第3例において、クライアント鍵Kが暗号化鍵EKの生成の種である場合であって、且つ、マスター関数Gf(g,i)が変換関数Fδを生成するための関数である場合には、サーバ内更新部78は、マスター鍵gに基づき、新たな変換関数Fδを生成する。この場合、サーバ内変換部74は、既存のクライアント鍵Kと新たな変換関数Fδとに基づき、新たな暗号化鍵EKを生成する。これにより、サーバ40は、新たな暗号化鍵EKを用いてクライアント端末30と暗号通信をすることができる。
また、第3例において、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、サーバ内更新部78は、新たなクライアント鍵関数CKeyGen(K,i)と既存の変換関数Fδとを合成した新たな合成関数CEKGen(K,i)、または、既存のクライアント鍵関数CKeyGen(K,i)と新たな変換関数Fδとを合成した新たな合成関数CEKGen(K,i)を生成してもよい。また、サーバ内更新部78は、合成関数CEKGen(K,i)を生成装置20から取得してもよい。また、この場合、サーバ内更新部78は、サーバ内保持部71に保持されている合成関数CEKGen(K,i)を、新たな合成関数CEKGen(K,i)に置き換える。そして、暗号化時または復号時において、サーバ内クライアント鍵生成部73は、インデックスi、サーバ内保持部71に保持されている新たな合成関数CEKGen(K,i)および既存のサーバ鍵Kに基づき、新たな暗号化鍵EKを生成する。これにより、サーバ40は、新たな暗号化鍵EKを用いてクライアント端末30と暗号通信をすることができる。
第3例に係る更新部60によれば、マスター鍵gを用いてクライアント鍵関数CKeyGen(K,i)を更新することにより、クライアント鍵Kまたは暗号化鍵EKを更新することができる。
図22は、第4例に係る更新部60の構成をクライアント端末30およびサーバ40とともに示す図である。なお、第4例を説明するに当たり、第3例と略同一の構成および機能を有する部材には同一の符号を付けて、相違点を除き説明を省略する。
第4例においては、更新部60は、更新対象のクライアント鍵Kを更新する。これとともに、更新部60は、新たなクライアント鍵関数CKeyGen(K,i)を生成して、サーバ40が保持するクライアント鍵関数CKeyGen(K,i)を更新する。
更新部60は、図22に示すように、入力部80と、乱数発生部81と、第1更新情報生成部84と、第2更新情報生成部85と、出力部83とを有する。
第1更新情報生成部84は、マスター鍵生成部95と、関数生成部96とを含む。第2更新情報生成部85は、クライアント鍵生成部94を含む。
出力部83は、第1更新情報生成部84が生成した新たなクライアント鍵関数CKeyGen(K,i)をサーバ鍵更新情報sriとしてサーバ40に出力する。また、出力部83は、更新対象のクライアント鍵Kを保持するクライアント端末30のそれぞれに、第2更新情報生成部85が生成した新たなクライアント鍵Kをクライアント鍵更新情報criとして出力する。
なお、第4例において、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、マスター関数Gf(g,i)は、マスター鍵gおよびインデックスiから、指定されたインデックスiに対応する変換関数Fδを生成してもよい。この場合、関数生成部96は、インデックスiおよびマスター鍵gに基づき、新たな変換関数Fδを生成する。そして、出力部83は、クライアント鍵関数CKeyGen(K,i)に代えて、新たな変換関数Fδをサーバ鍵更新情報sriとしてサーバ40に出力する。
図23は、第4例に係る更新部60の処理フローを示す図である。まず、ステップS141において、更新部60の入力部80は、更新対象のクライアント鍵Kを指定するためのインデックスiの集合を入力する。
続いて、ステップS142において、第1更新情報生成部84は、乱数に基づきマスター鍵gを生成する。続いて、ステップS143において、第1更新情報生成部84は、マスター鍵gに基づき、新たなクライアント鍵関数CKeyGen(K,i)を生成する。
続いて、ステップS144において、第2更新情報生成部85は、入力部80が入力したインデックスi、既存のサーバ鍵Kおよび新たなクライアント鍵関数CKeyGen(K,i)に基づき、新たなクライアント鍵Kを生成する。
そして、ステップS145において、出力部83は、クライアント鍵関数CKeyGen(K,i)をサーバ40に出力する。また、出力部83は、更新対象のクライアント鍵Kを保持するクライアント端末30のそれぞれに、新たなクライアント鍵Kを出力する。
図24は、第4例に係るクライアント端末30およびサーバ40の構成の一部を更新部60とともに示す図である。
第4例において、サーバ40のサーバ内更新部78は、更新部60から新たなクライアント鍵関数CKeyGen(K,i)を取得する。サーバ内更新部78は、サーバ内保持部71に保持されている既存のクライアント鍵関数CKeyGen(K,i)を、取得した新たなクライアント鍵関数CKeyGen(K,i)に置き換える。
暗号化時または復号時において、サーバ内クライアント鍵生成部73は、インデックスi、サーバ内保持部71に保持されている新たなクライアント鍵関数CKeyGen(K,i)および既存のサーバ鍵Kに基づき、新たなクライアント鍵Kを生成する。これにより、サーバ40は、新たなクライアント鍵Kを用いてクライアント端末30と暗号通信をすることができる。
なお、第4例において、クライアント鍵Kが暗号化鍵EKの生成の種である場合であって、且つ、マスター関数Gf(g,i)が変換関数Fδを生成するための関数である場合には、サーバ内更新部78は、更新部60から、クライアント鍵関数CKeyGen(K,i)に代えて新たな変換関数Fδを取得する。そして、サーバ内更新部78は、サーバ内保持部71に保持されている既存の変換関数Fδを、取得した新たな変換関数Fδに置き換える。この場合、暗号化時または復号時において、サーバ内クライアント鍵生成部73は、インデックスi、サーバ内保持部71に保持されている既存のクライアント鍵関数CKeyGen(K,i)および既存のサーバ鍵Kに基づき、クライアント鍵Kを生成する。サーバ内変換部74は、生成されたクライアント鍵Kと、サーバ内保持部71に保持されている新たな変換関数Fδとに基づき、新たな暗号化鍵EKを生成する。これにより、サーバ40は、新たな暗号化鍵EKを用いてクライアント端末30と暗号通信をすることができる。
また、第4例において、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、サーバ内更新部78は、新たなクライアント鍵関数CKeyGen(K,i)と既存の変換関数Fδとを合成した新たな合成関数CEKGen(K,i)、または、既存のクライアント鍵関数CKeyGen(K,i)と新たな変換関数Fδとを合成した新たな合成関数CEKGen(K,i)を、更新部60から取得してもよい。この場合、サーバ内更新部78は、サーバ内保持部71に保持されている合成関数CEKGen(K,i)を、取得した新たな合成関数CEKGen(K,i)に置き換える。そして、暗号化時または復号時において、サーバ内クライアント鍵生成部73は、インデックスi、サーバ内保持部71に保持されている新たな合成関数CEKGen(K,i)および既存のサーバ鍵Kに基づき、新たな暗号化鍵EKを生成する。これにより、サーバ40は、新たな暗号化鍵EKを用いてクライアント端末30と暗号通信をすることができる。
第4例に係る更新部60によれば、サーバ40に保持されているクライアント鍵関数CKeyGen(K,i)を更新することにより、クライアント鍵Kまたは暗号化鍵EKを更新することができる。
図25は、第5例に係る更新部60の構成をクライアント端末30およびサーバ40とともに示す図である。なお、第5例を説明するに当たり、第4例と略同一の構成および機能を有する部材には同一の符号を付けて、相違点を除き説明を省略する。
第5例において、クライアント鍵関数CKeyGen(K,g,i)は、インデックスi、サーバ鍵K、および、マスター鍵gに基づき、インデックスiにより指定されたクライアント鍵Kを生成する。すなわち、第5例に係るクライアント鍵関数CKeyGen(K,g,i)は、引数としてマスター鍵gが追加されている。
第5例においては、クライアント鍵関数CKeyGen(K,g,i)は、図12に示す第2データ変換Fβおよび第3データ変換Fγにより構成される。このとき、第3データ変換は、変換前クライアント鍵K’とマスター鍵gを引数にとるFγ(K’,g)である。また、第5例においては、クライアント鍵関数をCKeyGen(K,g,i,w)とし、インデックスi、サーバ鍵K、マスター鍵gおよび管理情報wに基づき、インデックスiにより指定されたクライアント鍵Kを生成してもよい。このとき、第3データ変換をFγ(K’,g,w)とし、変換前クライアント鍵K’とマスター鍵gおよび管理情報wに基づき、変換後クライアント鍵Kを生成してもよい。
例えば、第3データ変換Fγは、下記の式(80)〜式(82)に示されるように、変換前クライアント鍵K’とマスター鍵gとの算術和、算術積または排他的論理和を出力する関数であってもよい。なお、式(82)は、K’とgとのビット長が等しい場合の式である。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(83)に示されるように、変換前クライアント鍵K’とマスター鍵gと管理情報wとの演算結果を出力する関数であってもよい。
Figure 2015019333
また、例えば、例えば、第3データ変換Fγは、下記の式(84)に示されるように、変換前クライアント鍵K’とマスター鍵gと管理情報wとの和、積または排他的論理和を関数F12により変換した系列を出力する関数であってもよい。F12は、一例として、一対一関数、擬似ランダム関数またはハッシュ関数等である。また、F12は、lビットの入力に対して、lビットを出力する。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(85)に示されるように、K’を行ベクトルと考え右から正則行列gをかけてもよい。例えば、第3データ変換Fγは、Kの1ビットをベクトルの1要素とし、1×lの行ベクトルとし、gをl×lの正則行列として計算する。また、例えば、第3データ変換Fγは、K’の複数ビットが示す数をベクトルの1つの要素として計算してもよい。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(86)に示されるように、K’を列ベクトルと考え、行列wと列ベクトルgの積を加えてもよい。例えば、第3データ変換Fγは、K’の1ビットをベクトルの1要素とし、l×1の列ベクトルとし、wをl×l行列とし,gをl×1の列ベクトルとして計算する。また、例えば、第3データ変換Fγは、Ki,wの複数ビットが示す数をベクトルの1つの要素として計算してもよい。
Figure 2015019333
また、例えば、第3データ変換Fγは、下記の式(87)に示されるように、クライアント鍵Kを関数F12により変換した系列と、マスター鍵gを関数F13により変換した系列との、演算結果を出力してもよい。F13は、一例として、一対一関数、擬似ランダム関数またはハッシュ関数等である。
Figure 2015019333
なお、第3データ変換Fγは、このような関数に限らず、変換前クライアント鍵K’を、マスター鍵gまたは管理情報w等によってクライアント鍵Kに変換する関数であればよい。
クライアント鍵関数CKeyGen(K,i,g)が、関数H(i)の出力値がKSのビット位置を示すと考え、Kの該当位置のビットを連結させてクライアント鍵を生成する場合を考える。ここで、関数Hはハッシュ関数または疑似ランダム関数等である。クライアント鍵関数CKeyGen(K,i,g)を構成する関数H(i○g)は、インデックスiおよびマスター鍵gに基づいて、サーバ鍵Kのビット位置を出力する。また、クライアント鍵関数CKeyGen(K,i,g,w)を構成する関数H(i○g○w)は、インデックスi、マスター鍵gおよび管理情報wに基づいて、サーバ鍵Kのビット位置を出力してもよい。
そして、第5例において、更新部60は、更新対象のクライアント鍵Kを更新するとともに、マスター鍵gを更新することにより更新対象のクライアント鍵Kを更新する。
更新部60は、図25に示すように、入力部80と、乱数発生部81と、第1更新情報生成部84と、第2更新情報生成部85と、出力部83とを有する。
第1更新情報生成部84は、マスター鍵生成部95を含む。マスター鍵生成部95は、乱数発生部81により発生された乱数に基づき、新たなマスター鍵gを生成する。
第2更新情報生成部85は、クライアント鍵生成部94を含む。クライアント鍵生成部94は、入力部80が入力したインデックスi、既存のクライアント鍵関数CKeyGen(K,g,i)、新たなマスター鍵gおよび既存のサーバ鍵Kに基づき、新たなクライアント鍵Kを生成する。
出力部83は、第1更新情報生成部84が生成した新たなマスター鍵gをサーバ鍵更新情報sriとしてサーバ40に出力する。また、出力部83は、更新対象のクライアント鍵Kを保持するクライアント端末30のそれぞれに、第2更新情報生成部85が生成した新たなクライアント鍵Kをクライアント鍵更新情報criとして出力する。
また、第5例において、クライアント鍵Kが暗号化鍵EKの生成の種である場合には、クライアント鍵生成部94は、クライアント鍵関数CKeyGen(K,g,i)と変換関数Fδとを合成した合成関数CEKGen(K,g,i)を保持していてもよい。この場合、クライアント鍵生成部94は、入力部80が入力したインデックスi、合成関数CEKGen(K,g,i)、新たなマスター鍵gおよび既存のサーバ鍵Kに基づき、新たな暗号化鍵EKを生成する。そして、この場合、出力部83は、新たな暗号化鍵EKをクライアント鍵更新情報criとして出力する。
図26は、第5例に係る更新部60の処理フローを示す図である。まず、ステップS151において、更新部60の入力部80は、更新対象のクライアント鍵Kを指定するためのインデックスiの集合を入力する。
続いて、ステップS152において、第1更新情報生成部84は、乱数に基づきマスター鍵gを生成する。続いて、ステップS153において、第2更新情報生成部85は、入力部80が入力したインデックスi、既存のサーバ鍵K、新たなマスター鍵gおよび既存のクライアント鍵関数CKeyGen(K,g,i)に基づき、新たなクライアント鍵Kを生成する。
そして、ステップS154において、出力部83は、マスター鍵gをサーバ40に出力する。また、出力部83は、更新対象のクライアント鍵Kを保持するクライアント端末30のそれぞれに、新たなクライアント鍵Kを出力する。
図27は、第5例に係るクライアント端末30およびサーバ40の構成の一部を更新部60とともに示す図である。第5例において、サーバ40のサーバ内更新部78は、マスター鍵gを取得する。サーバ内更新部78は、サーバ内保持部71に保持されている既存のマスター鍵gを、取得した新たなマスター鍵gに置き換える。
暗号化時または復号時において、サーバ内クライアント鍵生成部73は、インデックスi、サーバ内保持部71に保持されている新たなマスター鍵g、既存のクライアント鍵関数CKeyGen(K,g,i)および既存のサーバ鍵Kに基づき、新たなクライアント鍵Kを生成する。これにより、サーバ40は、新たなクライアント鍵Kを用いてクライアント端末30と暗号通信をすることができる。
なお、第5例において、クライアント鍵Kが暗号化鍵EKの生成の種である場合、サーバ内保持部71は、クライアント鍵関数CKeyGen(K,g,i)と変換関数Fδとを合成した新たな合成関数CEKGen(K,g,i)を保持していてもよい。この場合、暗号化時または復号時において、サーバ内クライアント鍵生成部73は、インデックスi、新たなマスター鍵g、サーバ内保持部71に保持されている合成関数CEKGen(K,g,i)および既存のサーバ鍵Kに基づき、新たな暗号化鍵EKを生成する。これにより、サーバ40は、新たな暗号化鍵EKを用いてクライアント端末30と暗号通信をすることができる。
第5例に係る更新部60によれば、マスター鍵gを用いてクライアント鍵関数CKeyGen(K,g,i)を更新することにより、クライアント鍵Kまたは暗号化鍵EKを更新することができる。なお、生成装置20がサーバ鍵更新情報sriおよびクライアント鍵更新情報criを送信する通信路は、安全な通信路が望ましいが、そうでない通信路であってもよい。
以上のように、第1実施形態に係る暗号処理システム10によれば、複数のクライアント鍵Kのそれぞれの一部を他のクライアント鍵Kと相関を持たせた場合であっても、複数のクライアント鍵Kまたは暗号化鍵EKの一部を容易に更新することができる。また、クライアント鍵Kが暗号化鍵EKの生成の種である場合、クライアント鍵更新情報criは、クライアント鍵K、マスター鍵gまたは変換関数Fδであるが、これらの何れかが漏えいした場合にも、暗号化鍵EKは漏洩せず、安全に鍵を更新することができる。
(第2実施形態)
図28は、第2実施形態に係る暗号処理システム110の構成を示す図である。暗号処理システム110は、生成装置120と、第1のクライアント端末131と、第2のクライアント端末132と、サーバ140と、再暗号化装置150とを備える。
生成装置120は、第1のクライアント鍵K、第2のクライアント鍵K、および、マスター鍵Kを生成する。生成装置120は、一例として、乱数発生器により発生された乱数に基づき、クライアント鍵K、クライアント鍵Kおよびマスター鍵Kを生成する。
生成装置120は、第1のクライアント鍵Kを第1のクライアント端末131に出力する。生成装置120は、第2のクライアント鍵Kを第2のクライアント端末132に出力する。さらに、生成装置120は、第1のクライアント鍵K、第2のクライアント鍵Kおよびマスター鍵Kをサーバ140に出力する。なお、生成装置120は、第1のクライアント鍵Kおよび第2のクライアント鍵Kに代えて、第1実施形態の生成装置20と同様に、第1のクライアント鍵Kおよび第2のクライアント鍵Kを生成するためのサーバ鍵Kおよびクライアント鍵規則をサーバ140に出力してもよい。
サーバ140は、クライアント鍵K、クライアント鍵Kおよびマスター鍵Kを生成装置120から取得する。サーバ140は、第1のクライアント鍵Kをマスター鍵Kにより暗号化した第1再暗号化鍵K (r)を生成する。また、サーバ140は、第2のクライアント鍵Kをマスター鍵Kにより暗号化した第2再暗号化鍵K (r)を生成する。サーバ140は、再暗号化装置150からのリクエストに応じて、第1再暗号化鍵K (r)および第2再暗号化鍵K (r)を再暗号化装置150に出力する。なお、生成装置120およびサーバ140は、一体の構成であってもよい。
第1のクライアント端末131は、生成装置120から第1のクライアント鍵Kを取得して保持する。第1のクライアント端末131は、平文mを第1のクライアント鍵Kで暗号化した第1暗号文C(=Enc(k,m))を生成する。第1のクライアント端末131は、第1暗号文Cを再暗号化装置150に出力する。
再暗号化装置150は、第1のクライアント端末131から第1暗号文Cを取得する。再暗号化装置150は、第1暗号文Cを取得したことに応じてサーバ140にリクエストを出力して、第1再暗号化鍵K (r)および第2再暗号化鍵K (r)を取得する。
再暗号化装置150は、第1暗号文C、第1再暗号化鍵K (r)および第2再暗号化鍵K (r)に基づき、平文mを第2のクライアント鍵Kで暗号化した第2暗号文C(=Enc(k,m))を生成する。そして、再暗号化装置150は、第2暗号文Cを第2のクライアント端末132に出力する。
第2のクライアント端末132は、生成装置120から第2のクライアント鍵Kを取得して保持する。第2のクライアント端末132は、再暗号化装置150から第2暗号文Cを取得する。第2のクライアント端末132は、第2のクライアント鍵Kにより第2暗号文Cを復号して、平文mを生成する。
以下、暗号化処理として、排他的論理和演算を用いる場合の再暗号化装置150の構成を説明する。この場合、平文m、第1のクライアント鍵K、第2のクライアント鍵K、マスター鍵K、第1再暗号化鍵K (r)、第2再暗号化鍵K (r)、合成鍵K1,2 (r)、第1暗号文Cおよび第2暗号文Cは、全て同一ビット長の2進数データである。
図29は、再暗号化装置150の構成を示す図である。再暗号化装置150は、受信部151と、取得部152と、合成鍵生成部153と、再暗号化部154と、送信部155とを有する。
受信部151は、第1のクライアント端末131から、平文mと第1のクライアント鍵Kとを排他的論理和演算した第1暗号文Cを受信する。取得部152は、第1のクライアント鍵Kとマスター鍵Kとを排他的論理和演算した第1再暗号化鍵K (r)をサーバ140から取得する。また、取得部152は、第2のクライアント鍵Kとマスター鍵Kとを排他的論理和演算した第2再暗号化鍵K (r)を取得する。
合成鍵生成部153は、取得部152が取得した第1再暗号化鍵K (r)と第2再暗号化鍵K (r)とを排他的論理和演算して、合成鍵K1,2 (r)を生成する。再暗号化部154は、受信部151が受信した第1暗号文Cと、合成鍵生成部153が生成した合成鍵K1,2 (r)とを排他的論理和演算して、第2暗号文Cを生成する。送信部155は、再暗号化部154が生成した第2暗号文Cを第2のクライアント端末132に送信する。
図30は、第2実施形態に係る暗号処理システム110の処理フローを示す図である。第1のクライアント端末131から第2のクライアント端末132へ暗号通信により平文mを転送する場合、以下のステップS201からステップS210の処理が実行される。
まず、ステップS201において、第1のクライアント端末131は、下記の式(101)に示すように、平文mと第1のクライアント鍵Kとを排他的論理和演算した第1暗号文Cを生成する。
Figure 2015019333
続いて、ステップS202において、第1のクライアント端末131は、第1暗号文Cを再暗号化装置150に出力する。この場合に、第1のクライアント端末131は、送信先(第2のクライアント端末132)を指定する情報も再暗号化装置150に出力する。
続いて、ステップS203において、再暗号化装置150は、第1のクライアント端末131から第1暗号文Cを取得したことに応じて、サーバ140にリクエストを出力する。この場合に、再暗号化装置150は、送信元(第1のクライアント端末131)および送信先(第2のクライアント端末132)を指定する情報もサーバ140に出力する。
続いて、ステップS204において、サーバ140は、送信元の第1のクライアント端末131が保持する第1のクライアント鍵K、送信先の第2のクライアント端末132が保持する第2のクライアント鍵K、および、マスター鍵Kを取得する。サーバ140は、一例として、第1のクライアント鍵K、第2のクライアント鍵Kおよびマスター鍵Kを、生成装置120から予め取得して保持している。また、サーバ140は、一例として、再暗号化装置150からリクエストを受けた後に、生成装置120から取得してもよい。また、サーバ140は、生成装置120からマスター鍵Kを取得するのではなく、内部に備える乱数発生器により発生された乱数をマスター鍵Kとしてもよい。
続いて、ステップS205において、サーバ140は、下記の式(102)に示すように、第1のクライアント鍵Kとマスター鍵Kとを排他的論理和演算した第1再暗号化鍵K (r)を生成する。また、サーバ140は、下記の式(103)に示すように、第2のクライアント鍵Kとマスター鍵Kとを排他的論理和演算した第2再暗号化鍵K (r)を生成する。
Figure 2015019333
続いて、ステップS206において、サーバ140は、第1再暗号化鍵K (r)および第2再暗号化鍵K (r)を再暗号化装置150に返信する。
続いて、ステップS207において、再暗号化装置150は、第1再暗号化鍵K (r)および第2再暗号化鍵K (r)を取得したことに応じて、下記の式(104)に示すように、第1再暗号化鍵K (r)と第2再暗号化鍵K (r)とを排他的論理和演算して、合成鍵K1,2 (r)を生成する。
Figure 2015019333
続いて、ステップS208において、再暗号化装置150は、下記の式(105)に示すように、第1暗号文Cと合成鍵K1,2 (r)とを排他的論理和演算して、第2暗号文Cを生成する。
Figure 2015019333
続いて、ステップS209において、再暗号化装置150は、第2暗号文Cを第2のクライアント端末132に送信する。
ここで、第2暗号文Cと第1のクライアント鍵Kとを排他的論理和演算した式は、下記の式(106)のように表される。
Figure 2015019333
また、第1暗号文Cは、式(101)に示したように、第1のクライアント鍵Kと平文mとを排他的論理和した値である。また、合成鍵K1,2 (r)は、下記の式(107)に示すように、第1のクライアント鍵Kと第2のクライアント鍵Kとを排他的論理和した値である。
Figure 2015019333
従って、式(101)および式(107)を式(106)に代入すると、右辺には平文mだけが残る。
そこで、ステップS210において、第2のクライアント端末132は、第2暗号文Cを受信したことに応じて、下記式(108)に示すように、第2暗号文Cと第2のクライアント鍵Kとを排他的論理和演算して平文mを生成する。これにより、第2のクライアント端末132は、第1のクライアント端末131から送信された平文mを取得することができる。
Figure 2015019333
なお、再暗号化装置150は、予め、第1再暗号化鍵K (r)および第2再暗号化鍵K (r)の一方または全部をサーバ140から取得していてもよい。この場合、サーバ140は、第1のクライアント鍵Kおよび第2のクライアント鍵Kの更新時に、更新した第1再暗号化鍵K (r)および第2再暗号化鍵K (r)を再暗号化装置150に送信する。再暗号化装置150は、更新した第1再暗号化鍵K (r)および第2再暗号化鍵K (r)を、元の第1再暗号化鍵K (r)および第2再暗号化鍵K (r)に追加してもよいし、上書きしてもよい。
以上のように、第2実施形態に係る再暗号化装置150は、第1のクライアント鍵Kおよび第2のクライアント鍵Kを知らずに、平文mを第1のクライアント鍵Kにより暗号化した第1暗号文Cを、平文mを第2のクライアント鍵Kにより暗号化した第2暗号文Cに変換することができる。
図31は、生成装置20、クライアント端末30、サーバ40および再暗号化装置150のハードウェア構成の一例を示す図である。生成装置20、クライアント端末30、サーバ40および再暗号化装置150は、CPU(Central Processing Unit)201などの制御装置と、ROM(Read Only Memory)202やRAM(Random Access Memory)203などの記憶装置と、ネットワークに接続して通信を行う通信I/F204と、各部を接続するバスを備えている。
実施形態に係る生成装置20、クライアント端末30、サーバ40および再暗号化装置150で実行されるプログラムは、ROM202等に予め組み込まれて提供される。また、このプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、このプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、このプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
実施形態に係る生成装置20で実行されるプログラムは、コンピュータを上述した生成装置20の各部(入力部51、乱数発生部52、サーバ鍵生成部53、クライアント鍵生成部54、出力部55)として機能させうる。なお、入力部51、乱数発生部52、サーバ鍵生成部53、クライアント鍵生成部54、出力部55は、一部または全部がハードウェアにより構成されていてもよい。
実施形態に係るクライアント端末30で実行されるプログラムは、コンピュータを上述したクライアント端末30の各部(クライアント内保持部61、クライアント内変換部62、クライアント内暗号化部63、クライアント内送信部64、クライアント内受信部65、クライアント内復号部66およびクライアント内更新部67)として機能させうる。なお、クライアント内保持部61、クライアント内変換部62、クライアント内暗号化部63、クライアント内送信部64、クライアント内受信部65、クライアント内復号部66およびクライアント内更新部67は、一部または全部がハードウェアにより構成されていてもよい。
実施形態に係るサーバ40で実行されるプログラムは、コンピュータを上述したサーバ40の各部(サーバ内保持部71、サーバ内受信部72、サーバ内クライアント鍵生成部73、サーバ内変換部74、サーバ内復号部75、サーバ内暗号化部76、サーバ内送信部77およびサーバ内更新部78)として機能させうる。なお、サーバ内保持部71、サーバ内受信部72、サーバ内クライアント鍵生成部73、サーバ内変換部74、サーバ内復号部75、サーバ内暗号化部76、サーバ内送信部77およびサーバ内更新部78は、一部または全部がハードウェアにより構成されていてもよい。
実施形態に係る再暗号化装置150で実行されるプログラムは、コンピュータを上述した再暗号化装置150の各部(受信部151、取得部152、合成鍵生成部153、再暗号化部154および送信部155)として機能させうる。なお、受信部151、取得部152、合成鍵生成部153、再暗号化部154および送信部155は、一部または全部がハードウェアにより構成されていてもよい。
そして、このコンピュータは、CPU201がコンピュータ読取可能な記憶媒体から上述した各プログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 暗号処理システム
20 生成装置
30 クライアント端末
40 サーバ
51 入力部
52 乱数発生部
53 サーバ鍵生成部
54 クライアント鍵生成部
55 出力部
60 更新部
61 クライアント内保持部
62 クライアント内変換部
63 クライアント内暗号化部
64 クライアント内送信部
65 クライアント内受信部
66 クライアント内復号部
67 クライアント内更新部
71 サーバ内保持部
72 サーバ内受信部
73 サーバ内クライアント鍵生成部
74 サーバ内変換部
75 サーバ内復号部
76 サーバ内暗号化部
77 サーバ内送信部
78 サーバ内更新部
80 入力部
81 乱数発生部
82 更新情報生成部
83 出力部
84 第1更新情報生成部
85 第2更新情報生成部
91 位置検出部
92 値生成部
93 サーバ鍵生成部
94 クライアント鍵生成部
95 マスター鍵生成部
96 関数生成部
110 暗号処理システム
131 第1のクライアント端末
132 第2のクライアント端末
140 サーバ
150 再暗号化装置
151 受信部
152 取得部
153 合成鍵生成部
154 再暗号化部
155 送信部
201 CPU
202 ROM
203 RAM
204 通信I/F

Claims (12)

  1. 乱数に基づきビットの系列である第1鍵を生成するための第1鍵規則に基づいて、前記第1鍵を生成する第1鍵生成部と、
    前記第1鍵に基づき一部に互いに相関を有するビットの系列である複数の第2鍵を生成するための第2鍵規則に基づいて、前記複数の第2鍵を生成する第2鍵生成部と、
    前記第1鍵と前記複数の第2鍵のうち少なくとも1つの第2鍵とを出力する出力部と、
    前記複数の第2鍵のうち一部の第2鍵を更新する場合、更新対象の第2鍵における、更新対象となっていない他の第2鍵と相関の無い部分系列を更新するための更新情報を生成する更新部と、
    を備える生成装置。
  2. 前記更新部は、前記出力部から出力された前記更新対象の第2鍵を更新するための第1の更新情報を生成するとともに、前記出力部から出力された前記第1鍵と前記第2鍵規則との少なくとも一方を更新することにより、前記第1鍵と前記第2鍵規則とにより生成される更新対象の第2鍵を更新するための第2の更新情報を生成する
    請求項1に記載の生成装置。
  3. 前記第2鍵は、暗号化鍵を生成するための種であり、
    前記第2鍵生成部は、前記複数の第2鍵のそれぞれ毎に、対応する前記第2鍵を暗号化鍵に変換するための変換関数を生成し、
    前記出力部は、前記第2鍵とともに対応する前記変換関数を出力し、
    前記更新部は、前記更新対象の第2鍵または前記更新対象の第2鍵に対応する変換関数を更新するための第1の更新情報を生成する
    請求項2に記載の生成装置。
  4. 前記更新部は、前記第1鍵における、前記更新対象の第2鍵の種となり且つ更新対象ではない第2鍵の種となっていないビットを更新することにより更新対象の第2鍵を更新するための第2の更新情報を生成する
    請求項2に記載の生成装置。
  5. 前記第2鍵規則は、生成する前記複数の第2鍵のそれぞれに対応して異なる複数の関数を含み、
    前記出力部は、前記第1鍵とともに、マスター鍵から前記第2鍵規則を生成するためのマスター関数を出力し、
    前記更新部は、前記マスター鍵を更新することにより、前記第2鍵規則に含まれる更新対象の第2鍵に対応する関数を更新して更新対象の第2鍵を更新する第2の更新情報を生成する
    請求項2に記載の生成装置。
  6. 前記第2鍵規則は、生成する前記複数の第2鍵のそれぞれに対応して異なる関数を含み、
    前記更新部は、前記第2鍵規則に含まれる更新対象の第2鍵に対応する関数を更新して更新対象の第2鍵を更新する第2の更新情報を生成する
    請求項2に記載の生成装置。
  7. 前記第2鍵規則は、前記複数の第2鍵のうちのいずれか1つを指定するインデックス、前記第1鍵、および、マスター鍵に基づき、前記インデックスにより指定された第2鍵を生成し、
    前記更新部は、前記マスター鍵を更新することにより前記更新対象の第2鍵を更新するための第2の更新情報を生成する
    請求項2に記載の生成装置。
  8. 乱数に基づきビットの系列である第1鍵を生成するための第1鍵規則に基づいて、前記第1鍵を生成する第1鍵生成ステップと、
    前記第1鍵に基づき一部に互いに相関を有するビットの系列である複数の第2鍵を生成するための第2鍵規則に基づいて、前記複数の第2鍵を生成する第2鍵生成ステップと、
    前記第1鍵と前記複数の第2鍵のうち少なくとも1つの第2鍵とを出力する出力ステップと、
    前記複数の第2鍵のうち一部の第2鍵を更新する場合、更新対象の第2鍵における、更新対象となっていない他の第2鍵と相関の無い部分系列を更新するための更新情報を生成する更新ステップと、
    を含む生成方法。
  9. 乱数に基づきビットの系列である第1鍵を生成するための第1鍵規則に基づいて、前記第1鍵を生成する第1鍵生成ステップと、
    前記第1鍵に基づき一部に互いに相関を有するビットの系列である複数の第2鍵を生成するための第2鍵規則に基づいて、前記複数の第2鍵を生成する第2鍵生成ステップと、
    前記第1鍵と前記複数の第2鍵のうち少なくとも1つの第2鍵とを出力する出力ステップと、
    前記複数の第2鍵のうち一部の第2鍵を更新する場合、更新対象の第2鍵における、更新対象となっていない他の第2鍵と相関の無い部分系列を更新するための更新情報を生成する更新ステップと、
    をコンピュータに実行させるためのプログラム。
  10. 第1のクライアント端末から、平文と第1のクライアント鍵とを排他的論理和演算した第1暗号文を受信する受信部と、
    前記第1のクライアント鍵とマスター鍵とを排他的論理和演算した第1再暗号化鍵と、第2のクライアント端末が保持する第2のクライアント鍵と前記マスター鍵とを排他的論理和演算した第2再暗号化鍵とを取得する取得部と、
    前記第1再暗号化鍵と前記第2再暗号化鍵とを排他的論理和演算した合成鍵を生成する合成鍵生成部と、
    前記第1暗号文と前記合成鍵とを排他的論理和演算した第2暗号文を生成する再暗号化部と、
    前記第2暗号文を前記第2のクライアント端末に送信する送信部と
    を備える再暗号化装置。
  11. 第1のクライアント端末から、平文と第1のクライアント鍵とを排他的論理和演算した第1暗号文を受信する受信ステップと、
    前記第1のクライアント鍵とマスター鍵とを排他的論理和演算した第1再暗号化鍵と、第2のクライアント端末が保持する第2のクライアント鍵と前記マスター鍵とを排他的論理和演算した第2再暗号化鍵とを取得する取得ステップと、
    前記第1再暗号化鍵と前記第2再暗号化鍵とを排他的論理和演算した合成鍵を生成する合成鍵生成ステップと、
    前記第1暗号文と前記合成鍵とを排他的論理和演算した第2暗号文を生成する再暗号化ステップと、
    前記第2暗号文を前記第2のクライアント端末に送信する送信ステップと
    を含む再暗号化方法。
  12. 第1のクライアント端末から、平文と第1のクライアント鍵とを排他的論理和演算した第1暗号文を受信する受信ステップと、
    前記第1のクライアント鍵とマスター鍵とを排他的論理和演算した第1再暗号化鍵と、第2のクライアント端末が保持する第2のクライアント鍵と前記マスター鍵とを排他的論理和演算した第2再暗号化鍵とを取得する取得ステップと、
    前記第1再暗号化鍵と前記第2再暗号化鍵とを排他的論理和演算した合成鍵を生成する合成鍵生成ステップと、
    前記第1暗号文と前記合成鍵とを排他的論理和演算した第2暗号文を生成する再暗号化ステップと、
    前記第2暗号文を前記第2のクライアント端末に送信する送信ステップと
    をコンピュータに実行させるためのプログラム。
JP2013146888A 2013-07-12 2013-07-12 生成装置、方法およびプログラム Active JP6178142B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013146888A JP6178142B2 (ja) 2013-07-12 2013-07-12 生成装置、方法およびプログラム
US14/326,913 US9531534B2 (en) 2013-07-12 2014-07-09 Generating device, re-encrypting device, method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013146888A JP6178142B2 (ja) 2013-07-12 2013-07-12 生成装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2015019333A true JP2015019333A (ja) 2015-01-29
JP6178142B2 JP6178142B2 (ja) 2017-08-09

Family

ID=52277118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013146888A Active JP6178142B2 (ja) 2013-07-12 2013-07-12 生成装置、方法およびプログラム

Country Status (2)

Country Link
US (1) US9531534B2 (ja)
JP (1) JP6178142B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9984239B2 (en) 2015-04-27 2018-05-29 Kabushiki Kaisha Toshiba Concealing apparatus, decoding apparatus, concealing method, and decoding method
US10193691B2 (en) 2016-09-09 2019-01-29 Kabushiki Kaisha Toshiba Information processing device, server device, information processing system, moving object, and information processing method
WO2019130528A1 (ja) * 2017-12-28 2019-07-04 三菱電機株式会社 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6384400B2 (ja) * 2015-05-18 2018-09-05 株式会社デンソー 衝突回避装置
US10406972B2 (en) * 2017-02-24 2019-09-10 Tesla, Inc. Vehicle technologies for automated turn signaling
CN107911393B (zh) * 2017-12-28 2019-01-25 北京明朝万达科技股份有限公司 一种数据安全管理系统和方法
JP7119605B2 (ja) * 2018-06-08 2022-08-17 日本電信電話株式会社 暗号文変換システム、暗号文変換方法、及びプログラム
CN111344996B (zh) 2018-10-12 2023-01-31 深圳市汇顶科技股份有限公司 密钥生成方法、获取方法、私钥更新方法、芯片和服务器
EP3923512A1 (en) * 2020-06-08 2021-12-15 Barclays Execution Services Limited Method for processing encrypted data
CN111726362A (zh) * 2020-06-23 2020-09-29 广东博智林机器人有限公司 信息的传输方法、信息的传输系统、第一设备和第二设备
US20220286282A1 (en) * 2021-03-02 2022-09-08 Seagate Technology Llc Updateable encryption in self encrypting drives

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004080663A (ja) * 2002-08-22 2004-03-11 Abel Systems Inc 暗号化/復号鍵の鍵生成方法、暗号化/復号鍵の鍵生成装置、暗号化/復号鍵の鍵生成プログラムならびにコンピュータで読取可能な記録媒体
JP2006054879A (ja) * 2004-08-14 2006-02-23 Samsung Electronics Co Ltd デバイスを認証するためのキー生成方法及び装置と、デバイス認証方法及び装置
JP2006115103A (ja) * 2004-10-13 2006-04-27 Doshisha 無線通信システムおよびそれに用いる無線装置
JP2008523728A (ja) * 2004-12-09 2008-07-03 インテル コーポレイション 暗号化処理のスピードを向上させるための方法及び装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06236147A (ja) 1993-02-10 1994-08-23 Panpukin House:Kk セキュリテイ装置
US6041123A (en) * 1996-07-01 2000-03-21 Allsoft Distributing Incorporated Centralized secure communications system
JPH11252065A (ja) 1998-03-04 1999-09-17 Kodo Ido Tsushin Security Gijutsu Kenkyusho:Kk 暗号鍵の生成装置
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
US6636968B1 (en) * 1999-03-25 2003-10-21 Koninklijke Philips Electronics N.V. Multi-node encryption and key delivery
US20060034456A1 (en) * 2002-02-01 2006-02-16 Secure Choice Llc Method and system for performing perfectly secure key exchange and authenticated messaging
GB2424811B (en) * 2003-06-17 2006-12-06 Accenture Global Services Gmbh Method and system for selectively distributing data to a set of network devices
JP2007143091A (ja) 2005-01-17 2007-06-07 Inst Of Systems Information Technologies Kyushu 鍵管理装置、鍵管理方法、及び、鍵管理方法をコンピュータに実行させることが可能なプログラム、並びに、情報処理装置、及び、情報処理装置に鍵更新処理を実行させることが可能なプログラム、並びに、メッセージ送信方法、及び、その方法をコンピュータに実行させることが可能なプログラム
US8094810B2 (en) * 2006-02-03 2012-01-10 Massachusetts Institute Of Technology Unidirectional proxy re-encryption
WO2007091002A1 (en) * 2006-02-07 2007-08-16 Nextenders (India) Private Limited Document security management system
US20080170701A1 (en) * 2006-08-22 2008-07-17 Ntt Data Corporation Delegation system for decryption rights
JP5055993B2 (ja) * 2006-12-11 2012-10-24 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
EP2122903A1 (en) * 2006-12-21 2009-11-25 International Business Machines Corporation Key distribution for securing broadcast transmission to groups of users in wireless networks
US20090103726A1 (en) * 2007-10-18 2009-04-23 Nabeel Ahmed Dual-mode variable key length cryptography system
US20090210697A1 (en) * 2008-01-17 2009-08-20 Songqing Chen Digital Rights Protection in BitTorrent-like P2P Systems
CN101939947B (zh) * 2008-02-29 2013-01-09 三菱电机株式会社 密钥管理服务器、终端、密钥共享系统、密钥配送方法以及密钥接收方法
US9246672B2 (en) * 2010-06-24 2016-01-26 Blackberry Limited Two indices moving in opposite directions for cryptographic bidirectional communications using a shared master key
JP2012080214A (ja) 2010-09-30 2012-04-19 Kddi Corp 鍵管理システム、管理装置、鍵管理方法及びコンピュータプログラム
US8565422B2 (en) * 2010-12-03 2013-10-22 Salesforce.Com, Inc. Method and system for enryption key versioning and key rotation in a multi-tenant environment
WO2012169153A1 (ja) * 2011-06-10 2012-12-13 日本電気株式会社 暗号化統計処理システム、装置、方法及びプログラム
EP2645618A1 (en) * 2012-03-30 2013-10-02 British Telecommunications Public Limited Company Method and system for network data access
US20150271153A1 (en) * 2012-07-10 2015-09-24 Kurt Ryan Rohloff Information management using proxy re-encryption
US9049011B1 (en) * 2012-08-15 2015-06-02 Washington State University Secure key storage and distribution
JP2014192612A (ja) 2013-03-26 2014-10-06 Toshiba Corp 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004080663A (ja) * 2002-08-22 2004-03-11 Abel Systems Inc 暗号化/復号鍵の鍵生成方法、暗号化/復号鍵の鍵生成装置、暗号化/復号鍵の鍵生成プログラムならびにコンピュータで読取可能な記録媒体
JP2006054879A (ja) * 2004-08-14 2006-02-23 Samsung Electronics Co Ltd デバイスを認証するためのキー生成方法及び装置と、デバイス認証方法及び装置
JP2006115103A (ja) * 2004-10-13 2006-04-27 Doshisha 無線通信システムおよびそれに用いる無線装置
JP2008523728A (ja) * 2004-12-09 2008-07-03 インテル コーポレイション 暗号化処理のスピードを向上させるための方法及び装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9984239B2 (en) 2015-04-27 2018-05-29 Kabushiki Kaisha Toshiba Concealing apparatus, decoding apparatus, concealing method, and decoding method
US10193691B2 (en) 2016-09-09 2019-01-29 Kabushiki Kaisha Toshiba Information processing device, server device, information processing system, moving object, and information processing method
WO2019130528A1 (ja) * 2017-12-28 2019-07-04 三菱電機株式会社 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
JPWO2019130528A1 (ja) * 2017-12-28 2020-04-02 三菱電機株式会社 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
US11374742B2 (en) 2017-12-28 2022-06-28 Mitsubishi Electric Corporation Conversion key generation device, ciphertext conversion device, privacy-preserving information processing system, conversion key generation method, ciphertext conversion method, and computer

Also Published As

Publication number Publication date
JP6178142B2 (ja) 2017-08-09
US9531534B2 (en) 2016-12-27
US20150016606A1 (en) 2015-01-15

Similar Documents

Publication Publication Date Title
JP6178142B2 (ja) 生成装置、方法およびプログラム
CN106533650B (zh) 面向云端的交互型隐私保护方法和系统
US10489604B2 (en) Searchable encryption processing system and searchable encryption processing method
US10177906B2 (en) Method and apparatus for encrypting data
RU2661564C2 (ru) Генератор случайных чисел и поточный шифр
KR101829267B1 (ko) 암호문의 크기가 감소되는 동형 암호화 방법
Hafsa et al. FPGA implementation of improved security approach for medical image encryption and decryption
JP5951122B2 (ja) 暗号システム、暗号方法及び暗号プログラム
WO2014109828A2 (en) Method for secure substring search
JP5346933B2 (ja) 暗号化装置及び暗号化システム
JP6522263B2 (ja) 準同型演算装置、暗号システム及び準同型演算プログラム
JP2020022057A (ja) 暗号化データ生成装置、デジタル署名生成装置、デジタル署名付きデータ生成装置、およびデジタル署名付きデータ生成システム
JP2020038350A (ja) 多角的に暗号化されたデータを検索する方法、装置、及びコンピュータ読み取り可能な媒体
JP6961324B2 (ja) 検索可能暗号処理システム
US10027479B2 (en) Generating device, encryption device, decryption device, generating method, encryption method, decryption method, and computer program product
JP6270683B2 (ja) 暗号システム、暗号方法、普遍再暗号化鍵生成装置及び再暗号化鍵生成装置
JP6441390B2 (ja) 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム
JP6266130B2 (ja) 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム
JP7205016B2 (ja) 秘匿情報処理システムおよび秘匿情報処理方法
JP2019215391A (ja) 復号装置、暗号化装置及び暗号システム
CN110401533B (zh) 一种私钥加密方法及装置
JP5945525B2 (ja) 鍵交換システム、鍵交換装置、その方法、及びプログラム
JP6441160B2 (ja) 秘匿化装置、復号装置、秘匿化方法および復号方法
JP2012049765A (ja) 秘匿性増強処理演算装置およびこれを備えた量子暗号通信端末
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20151102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170511

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: 20170613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170713

R151 Written notification of patent or utility model registration

Ref document number: 6178142

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151