JP2008034938A - 個別復号鍵生成装置、個別復号鍵生成方法、個別復号鍵生成装置用プログラム、電子データ復号化装置、電子データ復号化装置用プログラム、電子データ暗号化・復号化システム、電子データ暗号化システム - Google Patents

個別復号鍵生成装置、個別復号鍵生成方法、個別復号鍵生成装置用プログラム、電子データ復号化装置、電子データ復号化装置用プログラム、電子データ暗号化・復号化システム、電子データ暗号化システム Download PDF

Info

Publication number
JP2008034938A
JP2008034938A JP2006203228A JP2006203228A JP2008034938A JP 2008034938 A JP2008034938 A JP 2008034938A JP 2006203228 A JP2006203228 A JP 2006203228A JP 2006203228 A JP2006203228 A JP 2006203228A JP 2008034938 A JP2008034938 A JP 2008034938A
Authority
JP
Japan
Prior art keywords
decryption key
electronic data
individual
decryption
identification 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.)
Pending
Application number
JP2006203228A
Other languages
English (en)
Inventor
Masaharu Ishii
雅治 石井
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP2006203228A priority Critical patent/JP2008034938A/ja
Publication of JP2008034938A publication Critical patent/JP2008034938A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】暗号化された同一の電子データを異なる配布用復号鍵で復号化することができる電子データの暗号化・復号化に関する技術を提供することにある。
【解決手段】通常の復号鍵に異なる識別情報を与えることで、同一の暗文を復号化可能な異なる複数の個別復号鍵を生成することが可能になる。個別復号鍵生成装置110が備える結合手段において復号鍵と識別情報とを分離可能に結合して個別復号鍵を生成する。結合された識別情報が異なる毎に個別復号鍵も異なる。電子データ復号化装置120において個別復号鍵から復号鍵を抽出するようにすることで、この復号鍵を用いて暗文の電子データを復号化することが可能となる。
【選択図】図4

Description

本発明は、個別復号鍵生成装置、個別復号鍵生成方法、個別復号鍵生成装置用プログラム、電子データ復号化装置、電子データ復号化装置用プログラム、電子データ暗号化・復号化システム及び電子データ暗号化システムに関するものである。
従来の暗号技術においては、ある1つの暗号鍵によって暗号化されたデータを復号化する復号鍵は1つであった。つまり、1つの暗号鍵に対しては1つの復号鍵が対応していた。
このような従来の暗号技術では、電子データをユーザに提供する者が、電子データを暗号化し、この暗号化された電子データを広く配布しておき、その電子データの復号鍵は復号化を許されたユーザのみに与えるというように電子データの復号化を管理する方式を想定すると、以下のような問題が生じた。
この方式において、上述した従来の暗号技術を利用すると、ある1つの暗号鍵によって暗号化された電子データを復号化する復号鍵は1つであるので、その復号鍵の配付を受けたユーザがその復号鍵を第三者に流出させても、どのユーザからその復号鍵が流出したかを追跡するのが困難であるという問題が生じた。
例えば、電子データを提供しようとする者がスクランブルをかけてテレビ放送をし、契約者にのみスクランブル解除方法を提供する場合においては、スクランブルの解除方法が流出すれば、契約者以外の第三者でもその解除方法を組み込んだ解除装置を用いてテレビ番組のスクランブルを解除して視聴することができるようになる。この場合、その解除方法がどの契約者から流出したかを追跡することが困難である。
つまり、従来の暗号技術をそのまま使用したやり方では、電子データの提供者は、電子データを復号化するユーザに対して、契約によってその復号鍵の流出を禁止するしかなかったと言うことができる。
そこで、電子データを復号化しようとするユーザとの契約によって復号鍵の流出を禁止するという手法の他に、ユーザに配布された復号鍵の流出を技術的に防止する手法として、ユーザが使用している暗号鍵(以下、ユーザ暗号鍵という。)によって、暗号化された電子データを復号化する復号鍵を暗号化しておくという手法が考えられた。即ち、暗号化された電子データを復号化する復号鍵即ち電子データ用の復号鍵をユーザ暗号鍵を用いて暗号化し、その暗号化された復号鍵をユーザに配布するという手法である。このようにすれば、暗号化された電子データを復号化するためにユーザに配布される復号鍵は、ユーザ毎に異なることになる。
特開2005−10523号公報 特開平10−269289号公報
しかし、暗号化された電子データを復号化する復号鍵をユーザ暗号鍵で復号化してユーザに配付するという手法においては、暗号化された電子データ用の復号鍵をユーザがユーザ暗号鍵に対応する復号鍵(以下、適宜、ユーザ復号鍵という。)とその復号化装置とを用いて復号化することになる。つまり、ユーザが所持する復号化装置において、ユーザ暗号鍵で暗号化された電子データ用の復号鍵が復号化されることになる。このように復号化された電子データ用の復号鍵をユーザが第三者に流出させても、その復号鍵自体からそれがどのユーザから流出したか認識することができず、復号鍵の流出を効果的に防止することは困難である。
つまり、暗号化された電子データを復号化するための復号鍵をユーザ暗号鍵で暗号化しておくという手法は、電子データを復号化しようとするユーザが自ら管理する復号化装置において、ユーザが電子データ用の復号鍵を復号化して、その復号鍵を得ることができ、従って電子データ用の復号鍵の復号化について電子データの提供者が関与することができないというところに問題があると考えることができる。また、この手法を用いると、ユーザにユーザ暗号鍵を送付してもらい、電子データの提供者がユーザから送付を受けたユーザ暗号鍵を管理するというような処理が必要になり、それだけ電子データの提供者の側の
操作、処理が複雑になってしまうという問題が生じる。
また、電子データの提供者の側が、電子データを復号化しようとするユーザに、ユーザ暗号鍵及びその復号化装置と一体化した電子データ用の復号化装置を提供することによって、ユーザが、電子データ用の復号鍵を取り出せなくする手法も考えられるが、復号化装置が一体化のために複雑化してコストが増大し、電子データの提供者の側は、操作、処理、全体的な管理が更に複雑になってしまうという問題がある。
そこで、本発明の目的とするところは、上記問題を解決して、異なる復号鍵を用いて暗号化された電子データを復号化することができる電子データの暗号化と復号化とに関する技術を提供することにある。
1.第1の発明(請求項1から請求項10)
(1)個別復号鍵生成装置
第1の発明の個別復号鍵生成装置は、暗号化された電子データを復号化する復号鍵に異なる識別情報を分離可能に結合して生成され、暗号化された電子データを復号化する際には前記復号鍵が抽出される個別復号鍵を生成する個別復号鍵生成装置であって、前記復号鍵と前記識別情報とを整数値として記憶する記憶手段と、前記復号鍵と前記識別情報とを分離可能に結合して一つの整数値を得る単射関数の計算手順に従って、前記記憶手段に記憶された前記復号鍵と前記識別情報を分離可能に結合して個別復号鍵を1つの整数値として生成する結合手段とを有することを特徴とする。
本発明の個別復号鍵生成装置で生成される個別復号鍵は、暗号鍵によって暗号化された電子データを復号化する復号鍵に識別情報が分離可能に結合したものである。復号鍵と識別情報とを分離可能に結合する計算手順を予め本発明の個別復号鍵生成装置に記憶させておいて、この計算手順を実行することにより、個別復号鍵を生成することを実現している。
この場合、復号鍵も識別情報も整数値として扱い、個別復号鍵も整数値として得るように構成されている。従って復号鍵に結合する識別情報を異なるものとすれば、個別復号鍵も異なることになり、ユーザ毎に異なった個別復号鍵を配付することが可能となる。
なお復号鍵を整数値として扱うということには、復号鍵が例えばRSA暗号のように2以上の整数の組からなる場合においては、その2つの値を結合して一つの整数値として扱うということも含まれる。
この個別復号鍵は識別情報と復号鍵とを分離可能に結合したものなので、暗号化された電子データを復号化しようとするユーザの元で、個別復号鍵から識別情報を分離して復号鍵を抽出し、その復号鍵を用いて暗号化された電子データを復号化することが可能となる。即ち、復号鍵と識別情報を分離可能に結合する計算手順の操作とは逆の操作を行って、個別復号鍵から元の復号鍵を抽出することができる。得られた復号鍵で暗号化された電子データを復号化することが可能となる。
このように復号鍵に識別情報を分離可能に結合させることで、異なる複数の配布用復号鍵を生成することが可能となり、個別復号鍵の配布者は、ユーザ毎に異なる配布用復号鍵が配布することができる。個別復号鍵の配布者は、ユーザからユーザ暗号鍵を送付してもらう必要もないし、それを管理する必要もない。個別復号鍵の配布者はどのユーザにどの個別復号鍵を配付したかを把握していれば、配布用復号鍵が流出した場合にどのユーザから流出したかを認識することが可能となる。なお、ここで、識別情報とは、配布用復号鍵を他の配布用復号鍵と識別するのに役立つ情報、個別復号鍵と他の個別復号鍵と差異化する情報を意味するが、整数値に変換して用いられることになる。
この計算手順として最も簡単なものの1例は、「復号鍵と識別情報の2つの整数値のうちの所定の一方の整数値より大きい整数値と他方の整数値との積を計算して、この積に所定の一方の整数値を加えた和を計算すること」であり、実用上は復号鍵と識別情報が分離され難くするために、計算された整数値を適当な単射関数で写すことが好ましい。また、このような2段階の計算を経なくても、復号鍵と識別情報の2つの整数値を直接1つの整数値に写す単射関数を計算する計算手順であっても構わない。
ここで復号鍵を整数値X、識別情報を整数値U、「復号鍵と識別情報のうち所定の一方の整数値より大きい整数値」をMとする。なお、後述のRSA暗号の場合のように、復号鍵が二以上の要素からなる場合には、それら結合して一つの整数値にしたものが、整数値Xである。
上述の記号を使用すると、「復号鍵と識別情報の2つの整数値のうちの所定の一方の整数値より大きい整数値と他方の整数値との積を計算して、この積に所定の一方の整数値を加えた和を計算する」とは、識別情報Uが選択された場合は、式X×M+Uを計算することであり、復号鍵Xが選択された場合は式U×M+Xを計算することである。
これらの式を使用することのメリットは、式X×M+Uについては、(X×M+U)//Mとすれば、容易に復号鍵である整数値Xが得られるからである。従って、「X×M+U」の整数値をさらに何らかの単射関数で、異なる整数値を得た場合でも、その単射関数の逆関数を実行して「X×M+U」の整数値を得て、(X×M+U)//Mとすれば、復号鍵である整数値Xを得ることができる。なお、本明細書に記載される式に用いられる2項演算子「//」については、「//」の前の値を「//」の後ろの値で割ったときの整数値である商、即ち割り算の結果の整数部を意味する。例えば、式7//2は、3となる。
また、式U×M+Xについては、(U×M+X)(mod)Mとすれば、容易に復号鍵である整数値Xを得ることができる。なお、上述の式中の2項演算子「(mod)」とは、「(mod)」の前の値を「(mod)」の後ろの値で割ったときの余りの整数値(非負にとる)である。例えば、式7(mod)2=1となる(以下、本明細書においては同じ。)。
なお、識別情報には、配布用復号鍵が配布されるユーザに関する情報を含むようにすることができる。このように、ユーザに関する情報を配布用復号鍵に含ませることで、配布用復号鍵が流出した場合にその個別復号鍵から流出させたユーザを把握しやすくなり、また、そのことをユーザが認識していれば、ユーザが個別復号鍵を流出させることに対する抑止に役立つことになる。
なお、本発明では、復号鍵と識別情報の間に数学的な相互関係はないので、識別情報を任意の長さに設定することが可能である。従って、所望の大量の情報を識別情報に含ませておいて個別復号鍵を生成することができる。識別情報に配布用復号鍵の配布に関する詳細な情報を含ませておけば、個別復号鍵の配布者は、配布に関する情報を記録して管理する必要を減少させることもできる。
この場合、個別復号鍵から、復号鍵と識別情報とを分離可能に結合する計算手順における操作とは逆の操作を行って、この識別情報を分離して抽出することが可能である。
(2)個別復号鍵生成方法
第1の発明の個別復号鍵生成方法は、暗号化された電子データを復号化する復号鍵に異なる識別情報を分離可能に結合して生成され、暗号化された電子データを復号化する際には前記復号鍵が抽出される個別復号鍵を生成する個別復号鍵生成方法であって、記憶手段が前記復号鍵と前記識別情報とを整数値として記憶手段に記憶する記憶ステップと、結合手段が前記復号鍵と前記識別情報とを分離可能に結合して一つの整数値を得る単射関数の計算手順に従って、前記記憶手段に記憶された前記復号鍵と前記識別情報を分離可能に結合して個別復号鍵を1つの整数値として生成する結合ステップとを有することを特徴とする。
個別復号鍵、復号鍵、計算手順、識別情報等についての説明は、上述の個別復号鍵生成装置においてした説明と同様である。従って、復号鍵に結合する識別情報を異なるものとすれば、個別復号鍵も異なることになり、ユーザ毎に異なった個別復号鍵を配付することが可能となる。
個別復号鍵生成装置の場合と同様に、この計算手順は、識別情報より大きい整数値と復号鍵との積を計算して、この積に識別情報を加えた和を計算することを含むようにすることが好ましい。また、識別情報には、配布用復号鍵が配布されるユーザに関する情報を含むようにすることができる。
(3)個別復号鍵生成装置用プログラム
第1の発明の個別復号鍵生成装置用プログラムは、コンピュータを、暗号化された電子データを復号化する復号鍵に異なる識別情報を分離可能に結合して生成され、暗号化された電子データを復号化する際には前記復号鍵が抽出される個別復号鍵を生成する個別復号鍵生成装置として機能させるプログラムであって、コンピュータを、前記復号鍵と前記識別情報とを整数値として記憶する記憶手段と、前記復号鍵と前記識別情報とを分離可能に結合して一つの整数値を得る単射関数の計算手順に従って、前記記憶手段に記憶された前記復号鍵と前記識別情報を分離可能に結合して個別復号鍵を1つの整数値として生成する結合手段として機能させることを含むことを特徴とする。この個別復号鍵生成装置用プログラムは、コンピュータを第1の発明の個別復号鍵生成装置として機能させるプログラムである。
(4)電子データ復号化装置
第1の発明の電子データ復号化装置は、暗号化された電子データを復号化する復号鍵に異なる識別情報を分離可能に結合して生成された個別復号鍵から前記復号鍵を抽出する抽出手段と、前記復号鍵で暗号化された前記電子データを復号化する復号化手段とを備え、前記抽出手段は前記復号鍵と前記識別情報とを分離可能に結合する計算手順を逆に演算する計算手順を実行するように構成されていることを特徴とする。
ここで「復号鍵と識別情報とを分離可能に結合する計算手順を逆に演算する計算手順」とは、例えば、「復号鍵と識別情報とを分離可能に結合する計算手順」を識別情報より大きい整数値と復号鍵との積に識別情報を加えるという計算手順即ちX×M+Uとすると、(X×M+U)//Mという計算手順である。なお、ここではXは復号鍵、Uは識別情報、Mは識別情報より大きい整数値である。「復号鍵と識別情報とを分離可能に結合する計算手順」が異なれば、それに対応して「逆に演算する計算手順」も異なることになる。
この電子データ復号化装置を用いることで、上述の個別復号鍵生成方法、個別復号鍵生成装置又は個別復号鍵の生成プログラムを実施することで生成された個別復号鍵から復号鍵を抽出し、暗号化された電子データをその復号鍵で復号化することができる。
本発明の電子データ復号化装置においては、抽出手段が個別復号鍵から復号鍵を抽出し、その復号鍵を復号化手段が暗号化された電子データを復号化するので、電子データ復号化装置の外部に復号鍵を出力する必要はない。ユーザ暗号鍵を用いる手法のように、復号鍵が単独で取り出されるという事態を回避することができ、ユーザが個別復号鍵から復号鍵を別途取り出しにくくなっている。
さらに、復号鍵を別途取り出すことができないように、抽出手段と復号化手段とは、一体的に構成されていることが好ましい。抽出手段と復号化手段とを一体的に構成することで、ユーザが復号鍵を別途取り出すことをそれだけ困難にすることができる。また、抽出手段と復号化手段とを一体的に構成することで、仮に復号鍵を別途取り出すことができても、ユーザは、このような構成の電子データ復号化装置に単独で取り出した復号鍵を用いることがそれだけ困難になる。
また、本発明の電子データ復号化装置においては、分離された識別情報を出力する識別情報出力手段を更に備えることが好ましい。ユーザの手元で、個別復号鍵から識別情報を分離して出力できるようにすると、例えば、識別情報に電子データのファイル名を含ませておけば、ユーザが電子データと配布用復号鍵との対応関係を管理することが容易になり、また、識別情報にユーザに関する詳細な情報を含ませておけば、それをユーザが確認することでユーザの不注意による個別復号鍵の流出を防止することに役立つこととなる。
(5)電子データ復号化装置用プログラム
第1の発明の電子データ復号化装置用プログラムは、コンピュータを、暗号化された電子データを復号化する復号鍵に異なる識別情報を分離可能に結合して生成された個別復号鍵から前記復号鍵を抽出する抽出手段と前記復号鍵で暗号化された前記電子データを復号化する復号化手段として機能させる電子データ復号化装置用プログラムであって、前記抽出手段は前記復号鍵と前記識別情報とを分離可能に結合する計算手順を逆に演算する計算手順を実行するように構成されていることを特徴とする。
ユーザは、コンピュータをこの電子データ復号化装置用プログラムで電子データ復号化装置として機能させることによって、暗号化された電子データを復号化することができる。
(6)電子データ暗号化システム
第1の発明の電子データ暗号化システムは、電子データを暗号化する電子データ暗号化装置と個別復号鍵を生成する個別復号鍵生成装置とを含む電子データ暗号化システムであって、前記電子データ暗号化装置は電子データを暗号化すると共に暗号化された電子データを復号化する復号鍵を生成して個別復号鍵生成装置に出力するように構成されており、前記個別復号鍵生成装置は前記電子データ暗号化装置から出力された前記復号鍵の入力を受けるように構成された前記請求項1又は2記載の個別復号鍵生成装置であることを特徴とする。
この電子データ暗号化システムによって、個別復号鍵生成装置を利用する者が電子データを暗号化した者から復号鍵又は復号鍵を生成するためのパラメータを入手し、この復号鍵又はパラメータから生成した復号鍵を個別復号鍵生成装置に入力するという手間を省くことができる。
なお、電子データ暗号化装置における「復号鍵を生成」するということには、共通鍵の用いる場合のように、暗号鍵がそのまま復号鍵として用いられる場合についても、「復号鍵を生成」することに含まれる。
(7)電子データ暗号化・復号化システム
第1の発明の電子データ暗号化・復号化システムは、電子データを暗号化する電子データ暗号化装置と個別復号鍵を生成する個別復号鍵生成装置と暗号化された電子データを復号化する電子データ復号化装置とを含む電子データ暗号化・復号化システムであって、前記電子データ暗号化装置は電子データを暗号化すると共に暗号化された電子データを復号化する復号鍵を生成して個別復号鍵生成装置に出力するように構成されており、前記個別復号鍵生成装置は前記電子データ暗号化装置から出力された前記復号鍵の入力を受けるように構成された前記請求項1又は2記載の個別復号鍵生成装置であり、前記電子データ復号化装置は前記請求項5、6又は7記載の電子データ復号化装置であることを特徴とする。
この電子データ暗号化・復号化システムによって、個別復号鍵生成装置を利用する者が電子データを暗号化した者から復号鍵又は復号鍵を生成するためのパラメータを入手し、この復号鍵又はパラメータから生成した復号鍵を個別復号鍵生成装置に入力するという手間を省くことができる。また、暗号化された電子データを復号化しようとするユーザに与えられる個別復号鍵については、異なるユーザには異なる個別復号鍵を与えることが可能となる。
なお、電子データ暗号化装置における「復号鍵を生成」するということには、共通鍵の用いる場合のように、暗号鍵がそのまま復号鍵として用いられる場合についても、「復号鍵を生成」することに含まれる。
2.第2の発明(請求項11から請求項14)
(1)個別復号鍵生成装置
第2の発明の個別復号鍵生成装置は、暗号化された電子データを復号化する復号鍵を生成するのに用いる復号鍵生成パラメータと復号鍵との関係が復号鍵生成パラメータを独立変数とし復号鍵を従属変数の分岐とする多価関数として表現される暗号方式を利用して、1つの暗号鍵に対して異なる複数の復号鍵を個別復号鍵として生成する個別復号鍵生成装置であって、前記復号鍵生成パラメータと前記従属変数の分岐を選択する分岐選択パラメータとをそれぞれ整数値又は整数値の組として記憶する記憶手段と、前記復号鍵生成パラメータから前記従属変数の分岐を選択する分岐選択パラメータに対応した前記従属変数の分岐を計算する計算手順に従って、前記記憶手段に記憶された前記復号鍵生成パラメータと前記分岐選択パラメータと用いて前記従属変数の分岐を前記個別復号鍵として生成する生成手段とを有することを特徴とする。
ここで、「暗号化された電子データを復号化する復号鍵を生成するのに用いる復号鍵生成パラメータと復号鍵との関係が復号鍵生成パラメータを独立変数とし復号鍵を従属変数の分岐とする多価関数として表現される暗号方式」、「復号鍵生成パラメータから従属変数の分岐を選択する分岐選択パラメータに対応した従属変数の分岐を計算する計算手順」について説明する。
ここでは、いわゆるシーザー暗号と呼ばれる共通鍵暗号方式とRSA暗号と呼ばれる公開鍵暗号方式を例として挙げるが、これらに限定されるものではない。要は「暗号化された電子データを復号化する復号鍵を生成するのに用いる復号鍵生成パラメータと復号鍵との関係が復号鍵生成パラメータを独立変数とし復号鍵を従属変数の分岐とする多価関数として表現される暗号方式」であれば、ここで例として挙げるもの以外の暗号方式を利用することができる。
まず、いわゆるシーザー暗号と呼ばれる共通鍵を用いた例を説明する。シーザー暗号では、アルファベットを順に0から25までの整数に対応させておき、それを26を法としてK(0<K<26)ずらすことによって暗号化を行い、その逆をずらすことによって復号化を行う暗号方式である。
例えば、平文をm(非負の整数値)とし、その暗文をc(非負の整数値)とすると、暗号鍵としてxを用いた場合、c=(m+x)(mod)26という式によって暗号化を行い、復号鍵として通常は再びxを用いて、m=(c−x)(mod)26という式によって復号化を行う暗号方式である。
このシーザー暗号においては、暗号鍵は同時に復号鍵であって、この暗号鍵が復号鍵生成パラメータである。ここでは、この暗号鍵を独立変数であるxとし、復号鍵を従属変数であるyとすると、(x−y)(mod)26=0という式で定義される多価関数となる。
上記多価関数の定義式においては、従属変数であるyの値は、式y=x+26n(但し、nは非負の整数とする)により得ることができる。従って、「復号鍵生成パラメータから従属変数の分岐を選択する分岐選択パラメータに対応した従属変数の分岐を計算する計算手順」とは、この式y=x+26nによって従属変数であるyの値を計算する手順である。そして、nが分岐選択パラメータ、このnの値に対応するyの値が従属変数の分岐としての個別復号鍵ということになる。従って、式y=x+26nにおいて、分岐選択パラメータであるnを変更することで、異なるyの値を値を得ることができる。
次に公開鍵暗号方式のいわゆるRSA暗号を用いた例を説明する。RSA暗号では、平文をm(正の整数値)、暗文をc(正の整数値)とおいたとき、暗号鍵(e,N)を用いて、c=m(mod)Nという式によって暗号化を行ない、復号鍵(d,N)を用いて、m=c(mod)Nという式によって復号化を行なう暗号方式である。ここで、Nは、pとqをそれぞれ異なる素数としたときのpとqの積、即ちN=pqである。
これら暗号鍵(e,N)と復号鍵(d,N)は、通常、復号鍵生成パラメータ(e,N,φ(N))を用いて生成される。ここで、φはオイラー関数を表しており、φ(N)=(p−1)(q−1)である。暗号鍵の成分であるeをφ(N)と互いに素な正の整数値とすると、復号鍵の成分であるdはed(mod)φ(N)=1なる式を満足する正の整数値となる。
このRSA暗号においては、eを独立変数とし、dを従属変数とすると、eとdとの関係は、ed(mod)φ(N)=1という式で定義されるので、m=c(mod)Nという式を満たすdの値は、無限個存在することになる。従って、復号鍵生成パラメータと復号鍵との関係は、上述の式ed(mod)φ(N)=1を満たす多価関数となる。この場合、復号鍵生成パラメータ(e,N,φ(N))に対する復号鍵の一つを(d,N)とすると、(d+nφ(N),N)はすべて復号鍵となる(但し、nは非負の整数とする)。なお、dとしては、ed(mod)φ(N)=1を満たす1番小さい値をとったものが使い易い。
この場合には「復号鍵生成パラメータから従属変数の分岐を選択する分岐選択パラメータに対応した従属変数の分岐を計算する計算手順」とは、例えば、ed(mod)φ(N)=1から、dの値であるdを拡張ユーグリッド互除法で求め、このdを用いて、復号鍵である(d+nφ(N),N)を産出する計算手順である。そして、復号鍵の第1成分であるd+nφ(N)のnが分岐選択パラメータであって、このnに対応する(d+nφ(N),N)が従属変数の分岐である個別復号鍵である。
なお、楕円関数を利用したRSA暗号であっても、復号鍵生成パラメータと復号鍵との関係が多価関数になり、複数の復号鍵が存在するので、楕円関数を利用したRSA暗号を利用することも可能である。
このように、第2の発明の個別復号鍵生成装置では、上述のように、一つの暗号鍵に対して、異なる個別復号鍵を生成することができる。個別復号鍵の配付業者は、ユーザからユーザ暗号鍵を送付してもらう必要もないし、それを管理する必要もない。配付業者はどのユーザにどの個別復号鍵を配付したかを把握していれば、配布用復号鍵が流出した場合にどのユーザから流出したかを認識することが可能となる。
(2)個別復号鍵生成方法
第2の発明の個別復号鍵生成方法は、暗号化された電子データを復号化する復号鍵を生成するのに用いる復号鍵生成パラメータと復号鍵との関係が復号鍵生成パラメータを独立変数とし復号鍵を従属変数の分岐とする多価関数として表現される暗号方式を利用して、1つの暗号鍵に対して異なる複数の復号鍵を個別復号鍵として生成する個別復号鍵生成方法であって、記憶手段が前記復号鍵生成パラメータと前記従属変数の分岐を選択する分岐選択パラメータとをそれぞれ整数値又は整数値の組として記憶する記憶ステップと、生成手段が前記復号鍵生成パラメータから前記従属変数の分岐を選択する分岐選択パラメータに対応した前記従属変数の分岐を計算する計算手順に従って、前記記憶手段に記憶された前記復号鍵生成パラメータと前記分岐選択パラメータと用いて前記従属変数の分岐を前記個別復号鍵として生成する生成ステップとを有することを特徴とする。
「暗号化された電子データを復号化する復号鍵を生成するのに用いる復号鍵生成パラメータと復号鍵との関係が復号鍵生成パラメータを独立変数とし復号鍵を従属変数の分岐とする多価関数として表現される暗号方式」、「復号鍵生成パラメータから従属変数の分岐を選択する分岐選択パラメータに対応した従属変数の分岐を計算する計算手順」についての説明は、上述の個別復号鍵生成装置においてした説明と同様である。従って、分岐選択パラメータを異なるものとすれば、個別復号鍵も異なることになり、ユーザ毎に異なった個別復号鍵を配付することが可能となる。
(3)個別復号鍵生成装置用プログラム
第2の発明の個別復号鍵生成装置用プログラムは、コンピュータを、暗号化された電子データを復号化する復号鍵を生成するのに用いる復号鍵生成パラメータと復号鍵との関係が復号鍵生成パラメータを独立変数とし復号鍵を従属変数の分岐とする多価関数として表現される暗号方式を利用して、1つの暗号鍵に対して異なる複数の復号鍵を個別復号鍵として生成する個別復号鍵生成装置として機能させるプログラムであって、コンピュータを、前記復号鍵生成パラメータと前記従属変数の分岐を選択する分岐選択パラメータとをそれぞれ整数値又は整数値の組として記憶する記憶手段と、前記復号鍵生成パラメータから前記従属変数の分岐を選択する分岐選択パラメータに対応した前記従属変数の分岐を計算する計算手順に従って、前記記憶手段に記憶された前記復号鍵生成パラメータと前記分岐選択パラメータと用いて前記従属変数の分岐を前記個別復号鍵として生成する生成手段として機能させることを含むことを特徴とする。この個別復号鍵生成装置用プログラムは、コンピュータを第2の発明の個別復号鍵生成装置として機能させるプログラムである。
(4)電子データ暗号化システム
第2の発明の電子データ暗号化システムは、電子データを暗号化する電子データ暗号化装置と個別復号鍵生成装置とを含む電子データ暗号化システムであって、前記個別復号鍵生成装置は、前記請求項11記載の個別復号鍵生成装置であり、前記電子データ暗号化装置は電子データを暗号化すると共に復号鍵生成パラメータを生成して前記個別復号鍵生成装置に出力するように構成されていることを特徴とする。
この電子データ暗号化システムによって、個別復号鍵生成装置を利用しようとする者が自ら復号鍵生成パラメータを生成して入力するという手間を省くことができる。
なお、電子データ暗号化装置における「復号鍵生成パラメータを生成」するということには、共通鍵の用いる場合のように、暗号鍵がそのまま復号鍵生成パラメータとして用いられる場合についても、「復号鍵生成パラメータを生成」することに含まれる。
3.その他
なお、第1の発明及び第2の発明を含めて、本発明において、電子データとは単に電子データだけではなく、コンピュータのプログラムを電子化したものも含まれるものとする。また、コンピュータとは、特に明示しない限り、単独のコンピュータだけではなく、複数のコンピュータがネットワークで繋がったコンピュータシステムを含むものとする。
1.以下の説明の用語について
以下の説明においては、f−1は関数fの逆関数を、f(x)はパラメータAを持ち独立変数をxとする関数、及びf−1 はfの逆関数を表す。
2.第1の発明(請求項1から請求項10)の実施形態
(1)個別復号鍵生成装置及び個別復号鍵生成方法
(a)全体的な構成
本実施形態における個別復号鍵生成装置の構成を説明する。この個別復号鍵生成装置110は、図2に示すように、復号鍵と識別情報とを整数値として記憶する記憶手段111と、復号鍵と識別情報とを分離可能に結合して一つの整数値を得る単射関数の計算手順に従って、記憶手段111に記憶された復号鍵と識別情報を分離可能に結合して個別復号鍵を1つの整数値として生成する結合手段112とを備えている。
図1に示す演算部10、制御部20、入出力部30、記憶部40及びそれらを相互に結合する複数のバスライン50、60、70を有する通常の汎用性のあるコンピュータを用いて、この個別復号鍵生成装置110を構成することができる。また、この個別復号鍵生成装置110は、専用のハードウエアを用いた専用装置としても実現することができる。
ここでアドレスバスライン60は、データバスライン70を利用してデータのやりとりを行う演算部10、入出力部30、記憶部40等のデバイスを制御部20が指定するものであり、制御バスライン50は、アドレスバスライン60で指定された演算部10、入出力部30、記憶部40等のデバイスに対して、制御部20がその機能を指示するものである。以下の記載においても同様である。
復号鍵と識別情報とを整数値として記憶する記憶手段111は、これらの整数値を入力する入出力部30と記憶部40を中心にその他のデバイス、バスライン等を用いて構成することができる。また、復号鍵と識別情報とを分離可能に結合して一つの整数値を得る単射関数の計算手順に従って、復号鍵と識別情報を分離可能に結合して個別復号鍵を1つの整数値として生成する結合手段112は、単射関数の計算手順を記憶した記憶部40、計算手順を実行する演算部10とそれらの動作を制御する制御部20等を中心にして、その他のデバイス、バスライン等を用いて構成することができる。なお、生成された個別復号鍵は、通常、記憶部40に記憶され、入出力部30を介して、外部に出力することができる。
図2を用いて説明すると、記憶手段111は、復号鍵と識別情報の入力を受けるように設定されており、復号鍵と識別情報とが入力されるとこれらをそれぞれ整数値として処理して記憶するように構成されている。そして、この復号鍵と識別情報を、結合手段112が読み出すことができるように設定されている。
結合手段112は、「復号鍵と識別情報とを分離可能に結合して一つの整数値を得る単射関数の計算手順」に従って、記憶手段111に記憶された復号鍵と識別情報の2つの整数値を分離可能に結合して、一つの整数値を生成するように構成されている。
記憶手段111は、結合手段112がこの生成した一つの整数値を、通常、個別復号鍵として記憶して、外部に出力することができるように構成されている。
(b)計算手順の説明
「復号鍵と識別情報とを分離可能に結合して一つの整数値を得る単射関数の計算手順」を説明する。RSA暗号においては、eをφ(N)とお互いに素である最小の正の整数値、暗号鍵を(e,N)とすると、復号鍵は(d,N)で、dはed(mod)φ(N)=1を満足する正の整数値である。
これに対して、シーザー暗号のような共通暗号においては、上述したように、暗号鍵を整数値Xすれば、復号鍵も同じ整数値Xとなる。なお、この「2.第1の発明(請求項1から請求項12)の実施形態」において、数式に用いる記号に関しては、特に断りがない限り、基本的には同じ要素には同じ記号を用いる。
本発明においては、RSA暗号の復号鍵(d,N)は、数値の実装において、復号鍵の2成分の組(d,N)を一つの正の整数値とみなして処理されるように設定されている。例えば、dが常にa桁の数であり、Nが常にb桁の数である場合、連続した記憶領域に、dとNをそれぞれ記憶し、この連続記憶領域をa+b桁分の正の整数値として読み出すことによって、(d,N)を一つの正の整数値にできる。逆に、こうして得られた、一つの正の整数値を記憶領域に格納し、最初のa桁分の領域を読み出してdとし、続くb桁分の領域を読み出してNとすることによって、2成分の組(d,N)を得ることができる。ここでは、シーザー暗号の場合の記号と同一の記号を用いるべく、2成分の組(d,N)を一つの整数値としてみなした場合の整数値をXとする。また、本発明の計算手順においては、識別情報も正の整数値として処理されるように設定されており、この整数値をUとする。
「復号鍵と識別情報とを分離可能に結合して一つの整数値を得る単射関数の計算手順」として最も簡単なものの1例は、「復号鍵と識別情報の2つの整数値のうちの一方の整数値より大きい整数値と他方の整数値との積を計算して、この積に一方の整数値を加えた和を計算すること」であり、実用上は復号鍵と識別情報が分離され難くするために、計算された整数値を適当な単射関数で写すことが好ましい。また、このような2段階の計算を経なくても、復号鍵と識別情報の2つの整数値を直接1つの整数値に写す単射関数を計算する計算手順であっても構わない。
例えば、XとUとの結合は、Z=XM+Uという式を計算することで、一つの整数値を得ることができる。ここで、MはUより大きい整数値である。識別情報Uの最大値より大きい正の整数をMとして設定することができる。このZの値が個別復号鍵であり、Uの値を変更することで、個別復号鍵であるZの値を変更することが可能となる。
ここで、説明の便宜上、個別復号鍵であるZから復号鍵Xを抽出する計算手順を説明すると、X=Z//Mという式を用いて、復号鍵Xを取り出すことができる。この場合、このMを2のべき乗になる整数値を選ぶと、式X=Z//Mの計算は、ビットシフトによって行うことが可能となる。なお、この場合、識別情報Uは、U=Z(mod)Mという式を用いて得ることが可能である。
また、XとUとの結合は、Z=UM+Xという式を計算することで、一つの整数値を得ることができる。ここで、MはXよりも大きい整数値である。復号鍵Xの値より大きい正の整数をMとして設定することができる。このZの値が個別復号鍵であり、Uの値を変更することで、個別復号鍵であるZの値を変更することが可能となる。
ここで、個別復号鍵Zから復号鍵Xを抽出する計算手順を説明すると、X=Z(mod)Mという式を用いて、復号鍵Xを取り出すことできる。また、識別情報Uは、U=Z//Mという式を用いて得ることができる。
更に、個別復号鍵Zから復号鍵Xを取り出しにくくすることができる。復号鍵Xと識別情報Uとの結合について、式Z=MX+Uを計算する手法では、識別情報Uと復号鍵Xとが容易に分離され、第三者に復号鍵Xが取り出され易い。そこで、適当な単射関数fを用い、Z=f(MX+U)という式によって、個別復号鍵Zを生成することができる。この場合には、個別復号鍵Zから復号鍵Xを抽出するには、式X=f−1(Z)//Mを用いて、復号鍵Xを取り出すことができる。この場合、識別情報は、U=f−1(Z)(mod)Mという式を用いて得ることが可能である。単射関数fとして、例えば、共通鍵を固定したDES暗号やAES暗号の暗号化関数を用いることができるが、f(Z)の値からZを推定することが困難なものであれば何を用いてもよい。
同様に式Z=UM+Xという計算手順を用いる手法においても、適当な単射関数fを用い、Z=f(UM+X)という式によって、個別復号鍵Zを生成することができる。この場合には、個別復号鍵Zから復号鍵Xを抽出するには、式X=f−1(Z)(mod)Mを用いて、復号鍵Xを取り出すことができる。
以下のような計算手順も可能である。例えば、Z=B+M(U+SX)という式を用いることもできる。この場合、用いられる電子データ暗号化・復号化システムの基数(進数)をSとし、そのときの識別情報Uの桁数(正の整数値)をBとおき、Bの最大値よりも大きい値をMとする。先に挙げた式Z=U+MXを用いる場合には、MをUよりも大きい数とする必要から、Uの最大値を見積もることが可能である必要があったが、この式Z=M(U+SX)の場合にはそのような必要はない。
この場合には、個別復号鍵Zから復号鍵Xを抽出するには、B=Z(mod)Mを計算してBを求めてから、X=(Z//M)//Sという式を用いることになる。この例の場合は、Mを2のべき乗の整数値とし、S=2とすると、式X=(Z//M)//Sの計算をビットシフトによって行うことができる。なお、この式Z=B+M(U+SX)の場合においても、識別情報Uと復号鍵Xとが分離しやすくなることを防止するために、適切な単射関数fを用いて、Z=f(B+M(U+SX))という式を用いて、個別復号鍵を生成することができる。この場合には、B=f−1(Z)(mod)
を計算し、X=(f−1(Z)//M)//Sという式を用いて、復号鍵Xを抽出して取り出すことができる。
更に、次のような、計算手順も可能である。即ち、復号鍵Xと識別情報Uを2進数で表しておいて、そのビットを小さい順に交互に配置して作った数を個別復号鍵Zとする計算手順である。つまり、X=Xa−1・・・X(XはXの各ビットを表わす)とし、U=Ua−1・・・U(UはUの各ビットを表わす)としたとき、Z=Xa−1a−1・・・Xとすれば個別復号鍵Zを求められる。逆に個別復号鍵Zから復号鍵Xと識別情報Uは、X=Z2a2a−2・・・Z、U=Z2a−12a−3・・・Zとすれば求められる。この計算の実装は、シフトレジスターを用いれば自明である。また、剰余演算と切り捨て割り算を組み合わせて行なうことも極めて容易である。
なお、上述の計算手順以外であっても、復号鍵と識別情報の2つの整数値を1つの整数値に写す単射関数の関数値を計算する計算手順であれば何を用いても構わない。この場合には2つの整数値が分離し難い計算手順が好ましい。
(c)識別情報
識別情報としては、配付を受けた個別復号鍵で電子データを復号化するユーザのID番号、メールアドレス、クレジットカード番号、住所氏名、適当な乱数、これらの適当なハッシュ値等の整数値、その他、個別復号鍵の提供者が望む任意の情報であって、ユーザごとに異なるものであれば何でも利用できる。
但し、ユーザが個別復号鍵を流出させることを抑止するという観点からは、識別情報は、ユーザを特定するのに役立つユーザに関する情報、例えばユーザの名前、メールアドレス等、また配布日時を含ませて用いることが好ましい。なお、ユーザの名前に同姓同名が存在する場合は同じ個別復号鍵となるが、それでも、個別復号鍵が流出した場合に、その流出元のユーザを限定するのに役立つ。また、名前の下に何らかの符号を付加して識別情報とすることも可能である。
(d)動作
個別復号鍵の生成を行う者が個別復号鍵生成装置110に復号鍵と識別情報を入力すると、記憶手段111は、この復号鍵と識別情報をそれぞれ正の整数値として記憶する。記憶手段111に記憶された復号鍵と識別情報を、結合手段112が「復号鍵と識別情報とを分離可能に結合して一つの整数値を得る単射関数の計算手順」に従って、一つの正の整数値を生成する。記憶手段111はこの整数値を個別復号鍵として記憶する。個別復号鍵を生成する者は、この整数値の出力を受けて個別復号鍵として得ることができる。
(2)電子データ復号化装置
(a)全体的な構成
電子データ復号化装置120は、図3に示すように、暗号化された電子データを復号化する復号鍵に異なる識別情報を単射関数の計算手順に従って分離可能に結合して一つの整数値として生成された個別復号鍵から復号鍵を抽出する抽出手段121と復号鍵で暗号化された電子データを復号化する復号化手段122とを備えており、上述の個別復号鍵生成装置と同様に、コンピュータを用いて構成することができる。
この電子データ復号化装置120も、上述の個別復号鍵生成方法を実施する装置と同様に、図1に示したような演算部10、制御部20、入出力部30、記憶部40及びそれらを相互に結合するバスライン50、60、70を有する通常の汎用性のあるコンピュータを用いて構成することができる。また、この装置は、専用のハードウエアを用いた専用装置としても実現することができることは、先の個別復号鍵生成装置の場合と同様である。
記憶部40は、配布用復号鍵を一旦記憶する記憶領域、暗文の電子データを一旦記憶する記憶領域、複号化関数計算手順を記憶した記憶領域及び上述のような個別復号鍵から復号鍵を抽出する計算手順を記憶した記憶領域を含む。抽出手段は、制御部やバスライン等を用いて、入出力部30を介して外部から配布用復号鍵を入力し、記憶部40に格納し、演算部10が、この記憶された配布用復号鍵から、記憶部40に格納されている個別復号鍵から復号鍵を抽出する計算手順に従って、復号鍵を計算する処理によって構成される。複号化手段は、制御部やバスライン等を用いて、入出力部30を介して外部から暗文の電子データを入力し、記憶部40に格納し、演算部10が、この記憶された暗文と前記の抽出された複号鍵から、記憶部40に格納されている複号化関数計算手順に従って、平文の電子データを計算し、入出力部30が、得られた平文の電子データを外部に出力する処理によって構成される。
抽出手段121に個別復号鍵を入力すると、抽出手段121は、「復号鍵と識別情報とを分離可能に結合する単射関数の計算手順を逆に演算する計算手順」を実行することで、復号鍵を抽出するように構成されている。
抽出手段121で抽出された復号鍵は復号化手段122に出力されるように構成されている。一方、復号化手段122に暗号化された電子データを入力すると、復号化手段122はこの電子データを記憶するように構成されている。そして、抽出手段121から出力された復号鍵を用いて、電子データを復号化して記憶し、平文の電子データを外部に出力することができるように構成されている。
この電子データ復号化装置120においては、上述のように、コンピュータの各デバイスを用いて抽出手段121、復号化手段122を構成しており、抽出手段121で抽出された復号鍵はそのまま復号化手段122に用いられるように構成されている。つまり、抽出手段121と復号化手段122とが一体的に構成されており、復号鍵を容易に電子データ復号化装置120の外部に取り出せないように構成されている。
(b)抽出手段と「逆に演算する計算手順」
抽出手段121は、復号鍵と識別情報とを分離可能に結合する単射関数の計算手順を逆に演算する計算手順を実行し、抽出された復号鍵を抽出手段121から復号化手段122に与えるように構成されている。
ここで、「復号鍵と識別情報とを分離可能に結合する単射関数の計算手順を逆に演算する計算手順」(以下、適宜「逆に演算する計算手順」と略す。)については、「(1)個別復号鍵生成装置及び個別復号鍵生成方法(b)計算手順の説明」の箇所で既に説明している。そこで、ここでは、上述の箇所で用いた記号を用いて「逆に演算する計算手順」を例示する。
Z=XM+Uという計算手順で個別復号鍵を生成した場合には、「逆に演算する計算手順」とはX=Z//Mという計算手順であり、Z=UM+Xという計算手順で個別復号鍵を生成した場合にはX=Z(mod)Mという計算手順である。また、Z=f(MX+U)という計算手順の場合には、「逆に演算する計算手順」はX=f−1(Z)//Mという計算手順であり、Z=f(UM+X)という計算手順の場合にはX=f−1(Z)(mod)Mである。
更に、個別復号鍵を生成するための計算手順がZ=B+M(U+SX)という計算手順の場合には、「逆に演算する計算手順」は、B=Z(mod)Mを計算してBを求め、そしてX=(Z//M)//Sを計算するという計算手順である。また、Z=f(B+M(U+SX))という計算手順においては、「逆に演算する計算手順」は、B=f−1(Z)(mod)Mを計算し、X=(f−1(Z)//M)//Sを計算するという計算手順である。
また、個別復号鍵を生成するための計算手順が、X=Xa−1・・・X(XはXの各ビットを表わす)とし、U=Ua−1・・・U(UはUの各ビットを表わす)としたとき、Z=Xa−1a−1・・・Xを求める計算手順の場合には、「逆に演算する計算手順」は、X=Z2a2a−2・・・Zを求める計算手順である。
いずれにせよ、「逆に演算する計算手順」は、「復号鍵と識別情報とを分離可能に結合する単射関数の計算手順」を逆に演算するようにして構成することが可能である。
(c)復号化手段
この復号化手段122においては、抽出手段121で抽出された復号鍵を用いて、復号化関数を実行することで、暗号化された電子データを復号化するように構成されている。
まず、電子データmの暗号化が、RSA暗号によって行われた場合を説明する。平文の電子データをm、暗文の電子データをcとすると、RSA暗号は、暗号鍵(e,N)を用いて、c=m(mod)Nという式によって暗号化を行ない、復号鍵(d,N)を用いて、m=c(mod)Nという式によって復号化を行なう暗号方式である。e及びdは、それぞれed(mod)φ(N)=1なる式を満足する正の整数値である。そして、φはオイラー関数を表しており、pとqがそれぞれ適当な素数とすると、Nはpとqの積即ちN=pq、φ(N)=(p−1)(q−1)である。
抽出手段121は、個別復号鍵から復号鍵を抽出して復号鍵を復号化手段に与えるように構成されているが、個別復号鍵Zは一つの正の整数として与えられ、復号鍵Xも一つの正の整数として抽出手段121は生成する。RSA暗号の場合においても同様である。
RSA暗号を用いる場合には、復号化手段122は、前述のようにして、一つの正の整数として与えられる復号鍵Xを、(d,N)という2つの正の整数の組に変換するように設定されている。復号化手段122は、この(d,N)を用いて、復号化関数m=c(mod)Nを計算して、平文の電子データmを生成するように構成されている。
シーザー暗号と呼ばれる簡単な共通暗号方式の場合の場合について説明する。平文の電子データをm、暗文の電子データをc、識別情報をU、共通鍵をX、暗号化関数をCx、復号化関数をExとすると、c=Cx(m)=(m+X)(mod)26という暗号化関数で暗号化され、m=Ex(c)=(c−X)(mod)26という復号化関数で復号化される暗号方式である。
この共通暗号方式の場合には、復号鍵Xは一つの正の整数であって、RSA暗号の場合のように抽出手段121から与えられた一つの正の整数を2つの成分に変換するという操作は必要ない。この場合には、復号化手段122は、このXを用いて、復号化関数Ex(c)=(c−X)(mod)26を計算して、平文の電子データmを生成するように構成されている。
(d)動作
個別復号鍵の配付を受けたユーザは、この電子データ復号化装置120を用いて、暗文の電子データを復号化することができる。ユーザは暗文の電子データを復号化手段122に入力しておく。ユーザが個別復号鍵を抽出手段121に入力すると、抽出手段121は「逆に演算する計算手順」を実行して個別復号鍵から復号鍵である整数値を抽出し、抽出した復号鍵を復号化手段122に出力する。
抽出手段121から復号鍵を与えられた復号化手段122は、暗文の電子データを復号化関数を実行して復号化し、平文の電子データを記憶し、出力する。このように、ユーザは、暗号化された電子データを復号化して、元の平文の電子データを得ることができる。なお、RSA暗号方式の場合には、抽出手段121で抽出された整数値を2つの整数値の組に変換して、暗文の電子データを復号化することになる。
(e)変形例と識別情報出力手段
なお、本実施形態の電子データ復号化装置の変形例として、更に、個別復号鍵から識別情報を分離して出力する識別情報出力手段(図示しない)を備えることができる。この識別情報出力手段は、電子データ復号化装置120を構成するコンピュータを用いて構成することが可能である。
上述したように、個別復号鍵を生成するのに用いた計算手順を利用して、「個別復号鍵から識別情報を分離する計算手順」(以下、適宜「識別情報を分離する計算手順」と略す。)を得ることができる。識別情報出力手段は、この「識別情報を分離する計算手順を実行して、個別復号鍵から識別情報を分離して出力するように設定されている。
Z=XM+Uという計算手順で個別復号鍵を生成した場合には、「識別情報を分離する計算手順」はU=Z(mod)Mという計算手順であり、Z=UM+Xという計算手順で個別復号鍵を生成した場合にはU=Z//Mという計算手順である。また、Z=f(MX+U)という計算手順の場合には、「識別情報を分離する計算手順」はU=f−1(Z)(mod)Mという計算手順であり、Z=f(UM+X)という計算手順の場合にはU=f−1(Z)//Mである。
更に、Z=M(U+SX)という計算手順の場合には、「識別情報を分離する計算手順」は、B=Z(mod)Mを計算してBを求め、そしてU=(Z//M)(mod)Sを計算するという計算手順である。また、Z=f(B+M(U+SX))という計算手順の場合には、「識別情報を分離する計算手順」は、B=f−1(Z)(mod)Mを計算し、U=(f−1(Z)//M)(mod)Sを計算するという計算手順である。
また、個別復号鍵を生成するための計算手順が、X=Xa−1・・・X(XはXの各ビットを表わす)とし、U=Ua−1・・・U(UはUの各ビットを表わす)としたとき、Z=Xa−1a−1・・・Xを求める計算手順の場合には、「識別情報を分離する計算手順」は、U=Z2a−12a−3・・・Zを求める計算手順である。
いずれにせよ、「識別情報を分離する計算手順」は、「復号鍵と識別情報とを分離可能に結合する単射関数の計算手順」を逆に演算するようにして構成することが可能である。
(3)電子データ暗号化システム及び電子データ暗号化・復号化システム
(a)全般的な説明
本実施形態の電子データ暗号化システムは、電子データを暗号化する電子データ暗号化装置と個別復号鍵を生成する個別復号鍵生成装置とを用いて構成されており、電子データ暗号化・復号化システムは、上述の電子データ暗号化システムが用いる2つの装置と更に暗号化された電子データを復号化する電子データ復号化装置とを用いて構成されている。電子データ暗号化システムは、電子データ暗号化・復号化システムのいわば構成部分となっているので、電子データ暗号化・復号化システムの実施形態を説明する中で併せて電子データ暗号化システムを説明する。
電子データ暗号化装置は電子データを暗号化すると共に暗号化された電子データを復号化する復号鍵を生成して個別復号鍵生成装置に出力するように構成されており、個別復号鍵生成装置は上述の「(1)個別復号鍵生成装置及び個別復号鍵生成方法」において説明した個別復号鍵生成装置を用いて構成でき、電子データ暗号化装置から出力された復号鍵の入力を受けるように構成されている。この2つの装置により、電子データ暗号化システムが構成される。
電子データ復号化装置は、上述の「(2)電子データ復号化装置」において説明した電子データ復号化装置を用いて構成することができる。この電子データ復号化装置は、電子データ暗号化システムから出力された個別復号鍵を用いて、同様に電子データ暗号化システムから出力された暗号化された電子データを復号化することができるように構成されている。
電子データ暗号化装置は、電子データを暗号化することができ、また、暗号鍵と復号鍵とを生成するパラメータから暗号鍵と復号鍵とを生成することができるように構成されている。このような構成は、図1で示したような汎用性のあるコンピュータを用いて構成することができる。また、専用の装置によって構成することも可能である。
記憶部40は、鍵を生成するパラメータを一旦記憶する記憶領域、平文の電子データを一旦記憶する記憶領域、暗号化関数計算手順を記憶した記憶領域を含み、更に、他の処理に対応した記憶領域を含む。電子データ暗号化装置は、制御部やバスライン等を用いて、入出力部30を介して外部から鍵を生成するパラメータを入力し、記憶部40に格納し、また、入出力部30を介して外部から平文の電子データを入力し、記憶部40に格納し、演算部10が、この記憶された鍵を生成するパラメータから、暗号鍵と復号鍵を生成し、この暗号鍵を用いてこの記憶された平文の電子データについての暗号化関数の値を計算することによって暗文の電子データを生成する処理によって構成される。
なお、以下の実施形態の説明においては、説明の便宜上、個別復号鍵生成装置と電子データ復号化装置に関する符号については、図2及び図3で用いた符号と同じ符号を用いて説明する。
(b)RSA暗号を用いた実施形態
本実施形態では、暗号方式として公開暗号鍵方式のRSA暗号を用いた実施形態を説明する。上述の説明と同様に、平文の電子データをm、平文の電子データmを暗号化した暗文の電子データをc、暗号鍵を(e,N)、復号鍵を(d,N)、識別情報をU、個別復号鍵をZとする。なお、RSA暗号の公開暗号鍵及び秘密鍵を生成するためのパラメータを(N,φ(N))とし、Nは適当な2つの素数の積で、φ(N)はオイラー関数の値である。
本実施形態の電子データ暗号化・復号化システム100は、図4に示すように、電子データを暗号化する電子データ暗号化装置130と個別復号鍵生成装置110と暗号化された電子データを復号化する電子データ復号化装置120とを用いて構成されている。なお、電子データの暗号化.復号化システム100の構成部分である電子データ暗号化システム140は、電子データ暗号化装置130と個別復号鍵生成装置110とを用いて構成されている。
電子データ暗号化装置130は、暗号鍵(e,N)と復号鍵(d,N)とを生成するパラメータ(N,φ(N))から暗号鍵(e,N)と復号鍵(d,N)とを生成することができるように構成されており、かつ、生成された暗号鍵(e,N)を用いて電子データmを暗号化するように構成されている。更に生成された復号鍵(d,N)を個別復号鍵生成装置110に出力するように構成されている。
電子データ暗号化装置130が暗号鍵(e,N)及び復号鍵(d,N)を生成するには、暗号鍵(e,N)及び復号鍵(d,N)を生成するためのパラメータ(N,φ(N))が電子データ暗号化装置130に入力され、入力されたパラメータ(N,φ(N))を用いて、暗号鍵(e,N)及び復号鍵(d,N)を計算して生成するように設定されている。
生成された暗号鍵(e,N)は電子データ暗号化装置130に入力された電子データmを暗号化するのに使用され、復号鍵(d,N)は個別復号鍵生成装置110に出力されることができるように設定されている。
電子データ暗号化装置130は、平文の電子データmの入力を受けて、生成された暗号鍵(e,N)を用いて式c=m(mod)Nを計算して、暗文の電子データcを生成し、記憶し、また、電子データcを外部へ出力することができるように設定されている。
個別復号鍵生成装置110は、電子データ暗号化装置130から復号鍵(d,N)の入力を受け、また外部からの識別情報Uの入力を受けて、個別復号鍵Zを計算して出力するように設定されている。この場合、個別復号鍵生成装置110は識別情報Uを外部から入力することができるように設定されている。なお、この個別復号鍵生成装置110は、「(1)個別復号鍵生成方法、個別復号鍵生成装置」の欄において説明したRSA暗号の場合の個別復号鍵生成装置を用いることができ、この個別復号鍵生成装置110の構成及び動作については既に説明した通りである。
このように個別復号鍵生成装置110と電子データ暗号化装置130とを含む電子データ暗号化システム140は、暗文の電子データcを出力し、また、個別復号鍵Zを出力することができる。
電子データ復号化装置120は、抽出手段121と復号化手段122とを備えており、上述の「(2)電子データ復号化装置」の欄において説明したRSA暗号方式の場合の電子データ復号化装置を用いることができる。従って、この電子データ復号化装置120の構成及び動作は上述の箇所において既に説明した通りである。
即ち、抽出手段121は、ユーザが個別復号鍵Zを入力すると、入力された個別復号鍵Zから復号鍵Xを抽出し、この復号鍵Xを復号化手段122に出力できるように、設定されている。
復号化手段122は、ユーザが入力した電子データcを抽出手段121から与えられた正の整数値Xを(d,N)に変換して、式m=c(mod)Nを計算して、暗文の電子データcを復号化して平文の電子データmを出力するように設定されている。電子データ復号化装置120においては、抽出手段121と復号化手段122とは一体的に構成されており、正の整数値X、復号鍵(d,N)を別途取り出すことができないようになっている。
本実施形態の電子データ暗号化・復号化システム100の動作・効果等に関して説明する。電子データの提供者は、RSA暗号の秘密鍵と公開鍵とを生成することができるパラメータである2つの成分の組(N,φ(N))を電子データ暗号化装置130に入力する。
電子データ暗号化装置130は、パラメータ(N,φ(N))を用いて公開鍵(e,N)と秘密鍵(d,N)を計算し生成する。ここでは、通常、公開鍵とされる(e,N)を暗号鍵として用い、秘密鍵とされる(d,N)を復号鍵として用いる。このように生成された復号鍵は電子データ暗号化装置130から個別復号鍵生成装置110に出力される。
電子データの提供者は、暗号化しようとする平文の電子データmを電子データ暗号化装置130に入力する。電子データ暗号化装置130は、生成された暗号鍵(e,N)を用いて、式c=m(mod)Nを計算して、平文の電子データmを暗号化して、暗文の電子データcとして生成して出力する。電子データの提供者は、このようにして暗文の電子データcを得ることができる。
電子データの提供者は、電子データ暗号化装置130で生成された暗号化された暗文の電子データcを、インターネットのウェッブサイトにアップロードするなどして、コンピュータネットワークを介してユーザが入手できるようにしておいてもよいし、有線又は無線の放送を用いて配信してもよい。また、CD−ROM等の記憶媒体に格納しておいて、ユーザが入手できるようにしておいてもよい。
電子データの提供者は、通常、個別復号鍵の生成及び配付をユーザの求めに応じて行う。この場合には、個別復号鍵を他の個別復号鍵と識別することができるように、電子データの提供者は、個別復号鍵生成装置110に識別情報Uを入力する。個別復号鍵生成装置110は、電子データ暗号化装置130から出力された復号鍵(d,N)を正の整数値Xとして処理し、この正の整数値Xと識別情報Uとを結合して個別復号鍵Zを生成して、出力する。電子データの提供者は、このようにして個別復号鍵Zを得ることができる。
電子データの提供者は、生成された個別復号鍵を、その配付を望むユーザに、インターネット等のコンピュータネットワークを介して配付してもよいし、また、CD−ROMやフレキシブルディスク等の記憶媒体に格納して配付することもできる。いずれにせよ、本実施形態においては、個々のユーザに対して、異なる個別復号鍵を配付することが可能となる。
個別復号鍵の配付を受けたユーザは、電子データ復号化装置120を用いて、暗文の電子データcを復号化することができる。ユーザが個別復号鍵Zを抽出手段121に入力すると、抽出手段121は個別復号鍵Zから整数値であるXを抽出し、抽出した整数値Xを復号化手段122に出力する。暗文の電子データcと整数値Xとの入力を受けた復号化手段122は、Xから2成分の組(d,N)を得て、式m=c(mod)Nを計算して、暗文の電子データcを復号化して平文の電子データmを出力する。ユーザは、暗文の電子データcを復号化して、元の平文の電子データmを得ることができる。
(c)共通鍵を用いた実施形態
本実施形態では、暗号方式として共通鍵暗号方式を用いた実施形態を説明する。上述の(b)の記載と同様に、平文の電子データをm、平文の電子データmを暗号化した暗文の電子データをcとする。また、識別情報をU、復号鍵をX、暗号化関数をCx、復号化関数をExとする。また、個別復号鍵をZとする。共通鍵暗号方式であるので、暗号鍵と復号鍵は同一の鍵Xである。なおシーザー暗号と呼ばれる簡単な共通暗号方式では、平文を暗文とする暗号化関数はCx(m)=(m+X)(mod)26であり、暗文を平文にする復号化関数Ex(c)=(c−X)(mod)26である。
なお、(b)で用いた図4を用いて説明する。本実施形態は、上述のRSA暗号を用いた場合と基本的には同一であるので、共通鍵を用いた場合に異なる点を主に説明する。
電子データ暗号化装置130は、外部から入力された電子データmを復号鍵Xを用いてc=Cx(m)を計算して、暗文の電子データcを生成し、記憶し、電子データcを外部に出力することができるように設定されている。また、この復号鍵Xを復号鍵として個別復号鍵生成装置110に出力するように構成されている。このような構成は、図1で示したような汎用性のあるコンピュータを用いて構成することができる。また、専用の装置によって構成することも可能である。上述のRSA暗号の場合と基本的には同様である。
個別復号鍵生成装置110は、識別情報Uが入力されるように構成され、またその識別情報Uと電子データ暗号化装置130から出力された復号鍵Xとを用いて、個別復号鍵Zを計算して出力するように、設定されている。なお、この個別復号鍵装置132は、「(1)個別復号鍵生成装置及び個別復号鍵生成方法」の欄において説明した共通暗号方式の場合の個別復号鍵生成装置を用いることができ、この個別復号鍵生成装置の構成及び動作については既に説明した通りである。
電子データ復号化装置120は抽出手段121と復号化手段122とを備えており、上述の「(2)電子データ復号化装置」の欄において共通暗号方式の場合の電子データ復号化装置を用いることができる。従って、この電子データ復号化装置の構成及び動作は上述の箇所において既に説明した通りである。
即ち、復号化手段122は暗文の電子データcの入力を受けるように設定され、抽出手段121はユーザが個別復号鍵Zを入力すると、入力された個別復号鍵Zから復号鍵Xを抽出し、この復号鍵Xを復号化手段122に出力できるように、設定されている。
復号化手段122は、ユーザが入力した電子データcを抽出手段121から与えられた復号鍵Xを用いてm=Ex(c)を計算して、平文である電子データmを出力できるように、設定されている。
(4)その他
なお、ここでは、共通鍵暗号方式とRSA暗号方式を利用した場合を説明したが、暗号方式としては、これらに限定されるものではなく、他の暗号方式の場合も可能であり、本発明は、請求項に記載された発明に含まれる限り、他の暗号方式を利用した場合も包摂するものである。
3.第2の発明(請求項11から請求項14)の実施形態
(1)個別復号鍵生成装置及び個別復号鍵生成方法
(a)全体的な構成
本実施形態における個別復号鍵生成装置の構成を説明する。この個別復号鍵生成装置(以下、適宜「生成装置」と略す。)210は、図5に示すように、復号鍵生成パラメータと分岐選択パラメータとをそれぞれ整数値又は整数値の組として記憶する記憶手段211と、復号鍵生成パラメータから分岐を選択する分岐選択パラメータに対応した復号鍵を計算する計算手順に従って、記憶手段211に記憶された復号鍵生成パラメータと分岐選択パラメータと用いて分岐として計算される復号鍵を個別復号鍵として生成する生成手段212とを備えている。
図1に示す演算部10、制御部20、入出力部30、記憶部40及びそれらを相互に結合する複数のバスライン50、60、70を有する通常の汎用性のあるコンピュータを用いて、この生成装置210を構成することができる。また、この生成装置210は、専用のハードウエアを用いた専用装置としても実現することができる。
ここでアドレスバスライン60は、データバスライン70を利用してデータのやりとりを行う演算部10、入出力部30、記憶部40等のデバイスを制御部20が指定するものであり、制御バスライン50は、アドレスバスライン60で指定された演算部10、入出力部30、記憶部40等のデバイスに対して、制御部20がその機能を指示するものである。
復号鍵生成パラメータと分岐選択パラメータとを整数値又は整数値の組として記憶する記憶手段211は、これらの整数値を入力する入出力部30とこの記憶部40を中心にその他のデバイス、バスライン等を用いて構成することができる。また、復号鍵生成パラメータから分岐を選択する分岐選択パラメータに対応した復号鍵を計算する計算手順に従って、記憶された復号鍵生成パラメータと分岐選択パラメータと用いて分岐として計算される復号鍵を個別復号鍵として生成する生成手段212は、計算手順を記憶した記憶部30、計算手順を実行する演算部10とそれらの動作を制御する制御部20等を中心にして、その他のデバイス、バスライン等を用いて構成することができる。なお、生成された個別復号鍵は、通常、記憶部40に記憶され、入出力部30を介して、外部に出力するように構成される。
図5を用いて説明すると、記憶手段211は、復号鍵生成パラメータと分岐選択パラメータの入力を受けるように設定されており、復号鍵生成パラメータと分岐選択パラメータが入力されると、これらを記憶するように構成されている。そして、この復号鍵生成パラメータと分岐選択パラメータを、生成手段212が読み出すことができるように設定されている。
生成手段212は、「復号鍵生成パラメータから分岐を選択する分岐選択パラメータに対応した復号鍵を計算する計算手順」(以下、適宜「復号鍵計算手順」という。)に従って、記憶手段211に記憶された復号鍵生成パラメータと分岐選択パラメータを用いて、従属変数の分岐の一つを計算して、その分岐を個別復号鍵として生成するように構成されている。
記憶手段211は、通常、生成手段212がこの生成した個別復号鍵を記憶し、外部に出力することができるように構成されている。
(b)復号鍵生成パラメータ、分岐選択パラメータ、復号鍵計算手順の説明
復号鍵生成パラメータ、分岐選択パラメータ、復号鍵計算手順について説明する。なお、これらについては、「課題を解決するための手段及び発明の効果」の欄において基本的な事項を説明した。従って、以下の使用する記号については、特に断りがない限り、同種の要素に対しては「課題を解決するための手段及び発明の効果」の欄において使用した記号をそのまま用いる。
復号鍵生成パラメータ、分岐選択パラメータ、復号鍵計算手順の具体的な内容は用いる暗号方式によって異なるが、いずれにせよ「暗号化された電子データを復号化する復号鍵を生成するのに用いる復号鍵生成パラメータと復号鍵との関係が復号鍵生成パラメータを独立変数とし復号鍵を従属変数の分岐とする多価関数として表現される暗号方式」によって定めることができる。
例えば、共通鍵の場合においては、電子データを暗号化するのに用いた暗号鍵が、復号鍵生成パラメータとして用いられる。シーザー暗号の場合、個別復号鍵をyとして、復号鍵生成パラメータをxとすると、式y=x+26n(但し、nは非負の整数とする)が復号鍵計算手順であり、nが分岐選択パラメータ、このnの値に対応するyの値が従属変数の一つの分岐としての個別復号鍵ということになる。
生成手段212は、式y=x+26nを実行するように構成されており、分岐選択パラメータxと復号鍵生成パラメータnが入力されると、これらの数値を用いて、式y=x+26nを計算してyの値を得ることができる。この場合、復号鍵生成パラメータxの値が同一であっても、分岐選択パラメータnを変更することで、異なるyの値を得ることができる。即ち、分岐選択パラメータnの値に応じて、同一の暗号鍵に対して異なった値の個別復号鍵yを生成することが可能となる。
例えば、復号鍵生成パラメータxとして、整数値5を入力し、分岐選択パラメータnとして整数値20を入力すると個別復号鍵として525という値を得、分岐選択パラメータnの値を整数値10と変更すると、個別復号鍵として265という値を得ることができる。これらの数値はいずれも、復号鍵として用いることができる。
RSA暗号方式の場合には、復号鍵生成パラメータとして(e,N,φ(N))の整数の組を用いる。このRSA暗号においては、暗号鍵を(e,N)とすると、復号鍵は(d+nφ(N),N)である。但し、dは、ed(mod)φ(N)=1を満たすdの値の最小の正の整数値である。
復号鍵計算手順とは、dの値を復号鍵生成パラメータ(e,N,φ(N))を用いて、拡張ユーグリッド互除法によって、ed(mod)φ(N)=1を満たすように算出し、(d+nφ(N),N)という整数値の組を計算する手順である。ここで、分岐選択パラメータはnである。
生成手段212は、上述の計算手順を実行するように構成されており、分岐選択パラメータnと復号鍵生成パラメータ(e,N,φ(N))が入力されると、これらの数値を用いて、dを算出して、分岐選択パラメータnの値に対応した復号鍵(d+nφ(N),N)を得ることができる。即ち、同一の暗号鍵(e,N)であっても、分岐選択パラメータnの値を変更することで、異なった個別復号鍵(d+nφ(N),N)を得ることができる。
なお、分岐選択パラメータの入力については、乱数生成装置を用いて乱数を生成して高い確率で異なる数値となるように構成したものを入力してもよい。
(c)動作
個別復号鍵の生成を行う者が生成装置210に復号鍵生成パラメータと分岐選択パラメータとを入力すると、記憶手段211は、これらの復号鍵生成パラメータと分岐選択パラメータとを記憶する。記憶手段211に記憶された復号鍵生成パラメータと分岐選択パラメータを、生成手段212が「復号鍵計算手順」に従って、個別復号鍵を生成する。この生成された個別復号鍵を記憶手段211は記憶する。個別復号鍵を生成する者は、この個別復号鍵の出力を受けて個別復号鍵として得ることができる。
(d)その他
本実施形態では、RSA暗号と共通鍵を用いた実施形態について説明したが、暗号方式についてはこれらに限定されるものではない。要は、復号鍵生成パラメータと復号鍵との関係が多価関数となっている暗号方式であれば、利用することができる。
(2)電子データ暗号化システム
(a)全般的な説明
本実施形態の電子データ暗号化システムは、電子データ暗号化装置と個別復号鍵生成装置とを含んで構成されている。この個別復号鍵生成装置は、「3.第2の発明(請求項12から請求項16)の実施形態(1)個別復号鍵生成装置及び個別復号鍵生成方法」で説明した個別復号鍵生成装置を用いて構成することができる。
電子データ暗号化装置は暗号化された電子データを復号化する復号鍵を生成して個別復号鍵生成装置に出力するように構成されており、個別復号鍵生成装置は上述の「(1)個別復号鍵生成装置及び個別復号鍵生成方法」において説明した個別復号鍵生成装置を用いて構成でき、電子データ暗号化装置から出力された復号鍵の入力を受けるように構成されている。
電子データ暗号化装置は、電子データを暗号化することができ、また、暗号鍵と復号鍵とを生成するパラメータから暗号鍵と復号鍵生成パラメータとを生成することができるように構成されている。このような構成は、図1で示したような汎用性のあるコンピュータを用いて構成することができる。また、専用の装置によって構成することも可能である。
記憶部40は、鍵を生成するパラメータを一旦記憶する記憶領域、平文の電子データを一旦記憶する記憶領域、暗号化関数計算手順を記憶した記憶領域を含み、更に、他の処理に対応した記憶領域を含む。電子データ暗号化装置は、制御部やバスライン等を用いて、入出力部30を介して外部から鍵を生成するパラメータを入力し、記憶部40に格納し、また、入出力部30を介して外部から平文の電子データを入力し、記憶部40に格納し、演算部10が、この記憶された鍵を生成するパラメータから、暗号鍵を生成しまた復号鍵生成パラメータを生成し、この暗号鍵を用いてこの記憶された平文の電子データについての暗号化関数の値を計算することによって暗文の電子データを生成し、入出力部30を介して外部に出力する処理によって構成される。
なお、以下の実施形態の説明においては、説明の便宜上、個別復号鍵生成装置に関する符号については、図5で用いた符号と同じ符号を用いて説明する。
(b)RSA暗号を用いた実施形態
本実施形態では、暗号方式として公開暗号鍵方式のRSA暗号を用いた電子データ暗号化システム200の実施形態を、図6を参照しつつ、説明する。平文の電子データをm、平文の電子データmを暗号化した暗文の電子データをc、暗号鍵を(e,N)、復号鍵を(d+nφ(N),N)とする。暗号鍵(e,N)を生成するのに用いるパラメータを(N,φ(N))、復号鍵生成パラメータを(e,N,φ(N))とする。なお、Nは適当な異なる2つの素数の積で、φ(N)はオイラー関数の値である。
本実施形態においては、電子データ暗号化システム200は、電子データを暗号化する電子データ暗号化装置220と個別復号鍵生成装置210を備えている。いずれの装置210、220も図1に示す汎用性のあるコンピュータを用いて構成することができる。この場合に、単体のコンピュータで構成することも、ネットワークを介した複数のコンピュータを用いて構成することも可能である。
電子データ暗号化装置220は、RSA暗号方式に基づいて、電子データを暗号化する電子データ暗号化装置を用いることができるが、更に、復号鍵生成パラメータ(e,N,φ(N))を生成して出力することができるように構成されている。
即ち、この電子データ暗号化装置220は、暗号化するための平文の電子データmが入力され、この電子データmを記憶できるように構成され、また、暗号鍵(e,N)を生成するためのパラメータ(N,φ(N))が入力され、入力されたパラメータ(N,φ(N))から暗号鍵として(e,N)を生成して記憶し、この生成された暗号鍵(e,N)で式c=m(mod)Nを計算して、暗文の電子データcを生成し、記憶し、出力することができるように構成されている。ここで、eとして、φ(N)と互いに素である適当な正の整数値を計算して使用する。例えば、素数の増加列の内から、あまり大きくないものを選び、この整数とφ(N)との最大公約数を計算し、これが1であるものをeとする、あるいは、乱数を用いてあまり大きくない正の整数を生成し、この整数とφ(N)との最大公約数を計算し、これが1であれば、この整数をeとすればよい。
さらに、この電子データ暗号化装置220は、生成された暗号鍵(e,N)の第一要素のeと入力されたパラメータ(N,φ(N))とから復号鍵生成パラメータ(e,N,φ(N))を生成して、記憶し、出力できるように構成されている。なお、本実施形態の電子データ暗号化システムでは、電子データ暗号化装置220で生成された復号鍵生成パラメータ(e,N,φ(N)は、個別復号鍵生成装置210に出力されるように構成されている。
個別復号鍵生成装置210の構成及び動作については、基本的には、「3.第2の発明(請求項12から請求項16)の実施形態(1)個別復号鍵生成装置及び個別復号鍵生成方法」において、RSA暗号を用いた場合に関して説明した通りであるが、但し、この個別復号鍵生成装置210は、電子データ暗号化装置220から出力された復号鍵生成パラメータ(e,N,φ(N))の入力を受けることができるように設定されている。
本実施形態の電子データ暗号化システム220の動作・効果等について説明する。電子データを暗号化しようとする者は、パラメータ(N,φ(N))と暗号化したい平文の電子データmを電子データ暗号化装置220に入力すると、電子データ暗号化装置220は入力を受けたパラメータ(N,φ(N))を用いて、暗号鍵(e,N)を生成し、この暗号鍵(e,N)で式c=m(mod)Nを計算して、暗文の電子データcとして生成して出力する。このようにして、暗文の電子データcを得ることができる。
電子データを提供しようとする者は、電子データ暗号化装置220で生成された暗文の電子データcを、インターネットのウェッブサイトにアップロードするなどして、コンピュータネットワークを介してユーザが入手できるようにしておいてもよいし、有線又は無線の放送を用いて配信してもよい。また、CD−ROM等の記憶媒体に格納しておいて、ユーザが入手できるようにしておいてもよい。
他方、電子データ暗号化装置220は、復号鍵生成パラメータ(e,N,φ(N))を個別復号鍵生成装置210に出力する。個別復号鍵を得ようとする者は、個別復号鍵生成装置210に分岐選択パラメータnを与えて個別復号鍵(d+nφ(N),N)を得ることができる。
個別復号鍵の提供者は、生成された個別復号鍵を、配付を望むユーザに、インターネット等のコンピュータネットワークを介して配付してもよいし、また、CD−ROMやフレキシブルディスク等の記憶媒体に格納して配付することもできる。いずれにせよ、本実施形態においては、個々のユーザに対して、異なる個別復号鍵を配付することが可能となる。
個別復号鍵の配付を受けたユーザは、電子データ復号化装置(図示しない)を用いて、暗文の電子データcを復号化することができる。
(c)共通鍵を用いた実施形態
上記RSA暗号を用いた実施形態では、RSA暗号を用いた場合の実施形態を説明したが、その変形例として、共通鍵を用いた実施形態を説明する。ここでは、図6をそのまま用いて説明し、RSA暗号を用いた場合と異なる点を中心に説明する。
この実施形態では、共通鍵暗号方式を用いるので、平文の電子データを暗号化するためのパラメータも復号鍵生成パラメータも共通鍵である。平文の電子データをm、平文の電子データmを暗号化した暗文の電子データをcとする。暗号鍵となる共通鍵がそのまま復号鍵生成パラメータとなるので、この暗号鍵及び復号鍵生成パラメータを共にxとする。また、個別復号鍵をy、暗号化関数をCx、復号化関数をExとする。平文を暗文とする暗号化関数はCx(m)=(m+x)(mod)26という式であり、暗文を平文にする復号化関数Ex(c)=(c−x)(mod)26という式である。この場合、復号鍵生成パラメータをxとすると、式y=x+26n(但し、nは正の整数とする)が復号鍵計算手順であり、nが分岐選択パラメータ、このnの値に対応するyの値が従属変数の一つの分岐としての個別復号鍵ということになる。
電子データ暗号化装置220は、復号鍵Xに基づいて、電子データmを暗号化する電子データ暗号化装置220として利用し、更に、電子データを暗号化するために用いた復号鍵Xをそのまま復号鍵生成パラメータxとして出力することができるように構成されている。
個別復号鍵生成装置210は、「3.第2の発明(請求項12から請求項16)の実施形態(1)個別復号鍵生成装置及び個別復号鍵生成装置」において説明した共通鍵暗号方式を用いた場合の個別復号鍵生成装置を用いることができ、この個別復号鍵生成装置210の構成及び動作については基本的には既にその箇所で説明した通りである。但し、本実施形態においては、この個別復号鍵生成装置210は、電子データ暗号化装置220から出力された復号鍵Xの入力を受けることができるように設定されている。
電子データmを暗号化しようとする者は、暗号鍵xと暗号化したい平文の電子データmを電子データ暗号化装置220に入力すると、電子データ暗号化装置220は入力を受けた暗号鍵xで暗号化関数Cx(m)=(m+x)(mod)26を計算させて暗文の電子データcとして生成して出力する。このようにして、暗文の電子データcを得ることができる。
電子データを提供しようとする者は、電子データ暗号化装置220で生成された暗文の電子データcを、インターネットのウェッブサイトにアップロードするなどして、コンピュータネットワークを介してユーザが入手できるようにしておいてもよいし、有線又は無線の放送を用いて配信してもよい。また、CD−ROM等の記憶媒体に格納しておいて、ユーザが入手できるようにしておいてもよい。
他方、電子データ暗号化装置220は、共通鍵を個別復号鍵生成装置210に出力する。個別復号鍵yを得ようとする者は、個別復号鍵生成装置210に分岐選択パラメータnを与え、y=x+26nを実行させて個別復号鍵yを得ることができる。
電子データの提供者は、生成された個別復号鍵yを、配付を望むユーザに、インターネット等のコンピュータネットワークを介して配付してもよいし、また、CD−ROMやフレキシブルディスク等の記憶媒体に格納して配付することもできる。いずれにせよ、本実施形態においては、個々のユーザに対して、異なる個別復号鍵を配付することが可能となる。
個別復号鍵の配付を受けたユーザは、電子データ復号化装置(図示しない)を用いて、復号化関数Ex(c)=(c−x)(mod)26を実行させて暗文の電子データcを復号化することができる。
本発明の個別復号鍵生成装置、個別復号鍵生成方法、個別復号鍵生成装置用プログラム、電子データ復号化装置、電子データ復号化装置用プログラム、電子データ暗号化・復号化システム、電子データ暗号化システムは、インターネットを利用したコンテンツの配信システム等に利用することができる。また、放送とインターネットと組み合わせたコンテンツの配信システムに利用することも可能である。
汎用的なコンピュータの構成を示すブロック図である。 第1の発明の個別復号鍵生成装置の構造を示す図である。 第1の発明の電子データ復号化装置の構造を示す図である。 第1の発明の電子データ暗号化・復号化システム及び電子データ暗号化システムの構成を示す図である。 第2の発明の個別復号鍵生成装置の構造を示す図である。 第2の発明の電子データ暗号化システムの構成を示す図である。
符号の説明
10:演算部 20:制御部 30:入出力部 40:記憶部
50:制御バスライン 60:アドレスバスライン 70:データバスライン
100:電子データ暗号化・復号化システム
110:個別復号鍵生成装置 111:記憶手段 112:結合手段
120:電子データ復号化装置 121:抽出手段 122:復号化手段
130:電子データ暗号化装置 140:電子データ暗号化システム
200:電子データ暗号化システム
210:個別復号鍵生成装置 211:記憶手段 212:生成手段
220:電子データ暗号化装置

Claims (14)

  1. 暗号化された電子データを復号化する復号鍵に異なる識別情報を分離可能に結合して生成され、暗号化された電子データを復号化する際には前記復号鍵が抽出される個別復号鍵を生成する個別復号鍵生成装置であって、
    前記復号鍵と前記識別情報とを整数値として記憶する記憶手段と、
    前記復号鍵と前記識別情報とを分離可能に結合して一つの整数値を得る単射関数の計算手順に従って、前記記憶手段に記憶された前記復号鍵と前記識別情報を分離可能に結合して個別復号鍵を1つの整数値として生成する結合手段とを有することを特徴とする個別復号鍵生成装置。
  2. 前記識別情報には、配布用復号鍵が配布されるユーザに関する情報が含まれている請求項1記載の個別復号鍵生成装置。
  3. 暗号化された電子データを復号化する復号鍵に異なる識別情報を分離可能に結合して生成され、暗号化された電子データを復号化する際には前記復号鍵が抽出される個別復号鍵を生成する個別復号鍵生成方法であって、
    記憶手段が前記復号鍵と前記識別情報とを整数値として記憶手段に記憶する記憶ステップと、
    結合手段が前記復号鍵と前記識別情報とを分離可能に結合して一つの整数値を得る単射関数の計算手順に従って、前記記憶手段に記憶された前記復号鍵と前記識別情報を分離可能に結合して個別復号鍵を1つの整数値として生成する結合ステップとを有することを特徴とする個別復号鍵生成方法。
  4. コンピュータを、暗号化された電子データを復号化する復号鍵に異なる識別情報を分離可能に結合して生成され、暗号化された電子データを復号化する際には前記復号鍵が抽出される個別復号鍵を生成する個別復号鍵生成装置として機能させるプログラムであって、
    コンピュータを、前記復号鍵と前記識別情報とを整数値として記憶する記憶手段と、前記復号鍵と前記識別情報とを分離可能に結合して一つの整数値を得る単射関数の計算手順に従って、前記記憶手段に記憶された前記復号鍵と前記識別情報を分離可能に結合して個別復号鍵を1つの整数値として生成する結合手段として機能させることを含むことを特徴とする個別復号鍵生成装置用プログラム。
  5. 暗号化された電子データを復号化する電子データ復号化装置であって、
    暗号化された電子データを復号化する復号鍵に異なる識別情報を単射関数の計算手順に従って分離可能に結合して一つの整数値として生成された個別復号鍵から前記復号鍵を抽出する抽出手段と、
    前記復号鍵で暗号化された前記電子データを復号化する復号化手段とを備え、
    前記抽出手段は前記復号鍵と前記識別情報とを分離可能に結合する前記単射関数の前記計算手順を逆に演算する計算手順を実行するように構成されていることを特徴とする電子データ復号化装置。
  6. 前記抽出手段において抽出された前記復号鍵を単独で取り出すことができないように前記抽出手段と前記復号化手段とは一体的に構成されている請求項5記載の電子データ復号化装置。
  7. 個別復号鍵から前記識別情報を分離して出力する識別情報出力手段を更に備える請求項5又は6記載の電子データ復号化装置。
  8. コンピュータを、暗号化された電子データを復号化する復号鍵に異なる識別情報を単射関数の計算手順に従って分離可能に結合して一つの整数値として生成された個別復号鍵から前記復号鍵を抽出する抽出手段と前記復号鍵で暗号化された前記電子データを復号化する復号化手段として機能させる電子データ復号化装置用プログラムであって、
    前記抽出手段は前記復号鍵と前記識別情報とを分離可能に結合する前記単射関数の前記計算手順を逆に演算する計算手順を実行するように構成されていることを特徴とする電子データ復号化装置用プログラム。
  9. 電子データを暗号化する電子データ暗号化装置と個別復号鍵を生成する個別復号鍵生成装置とを含む電子データ暗号化システムであって、
    前記電子データ暗号化装置は電子データを暗号化すると共に暗号化された電子データを復号化する復号鍵を生成して個別復号鍵生成装置に出力するように構成されており、
    前記個別復号鍵生成装置は前記電子データ暗号化装置から出力された前記復号鍵の入力を受けるように構成された前記請求項1又は2記載の個別復号鍵生成装置であることを特徴とする電子データ暗号化システム。
  10. 電子データを暗号化する電子データ暗号化装置と個別復号鍵を生成する個別復号鍵生成装置と暗号化された電子データを復号化する電子データ復号化装置とを含む電子データ暗号化・復号化システムであって、
    前記電子データ暗号化装置は電子データを暗号化すると共に暗号化された電子データを復号化する復号鍵を生成して個別復号鍵生成装置に出力するように構成されており、
    前記個別復号鍵生成装置は前記電子データ暗号化装置から出力された前記復号鍵の入力を受けるように構成された前記請求項1又は2記載の個別復号鍵生成装置であり、
    前記電子データ復号化装置は前記請求項5、6又は7記載の電子データ復号化装置であることを特徴とする電子データ暗号化・復号化システム。
  11. 暗号化された電子データを復号化する復号鍵を生成するのに用いる復号鍵生成パラメータと復号鍵との関係が復号鍵生成パラメータを独立変数とし復号鍵を従属変数の分岐とする多価関数として表現される暗号方式を利用して、1つの暗号鍵に対して異なる複数の復号鍵を個別復号鍵として生成する個別復号鍵生成装置であって、
    前記復号鍵生成パラメータと前記従属変数の分岐を選択する分岐選択パラメータとをそれぞれ整数値又は整数値の組として記憶する記憶手段と、
    前記復号鍵生成パラメータから前記従属変数の分岐を選択する分岐選択パラメータに対応した前記従属変数の分岐を計算する計算手順に従って、前記記憶手段に記憶された前記復号鍵生成パラメータと前記分岐選択パラメータとを用いて前記従属変数の分岐を前記個別復号鍵として生成する生成手段とを有することを特徴とする個別復号鍵生成装置。
  12. 暗号化された電子データを復号化する復号鍵を生成するのに用いる復号鍵生成パラメータと復号鍵との関係が復号鍵生成パラメータを独立変数とし復号鍵を従属変数の分岐とする多価関数として表現される暗号方式を利用して、1つの暗号鍵に対して異なる複数の復号鍵を個別復号鍵として生成する個別復号鍵生成方法であって、
    記憶手段が前記復号鍵生成パラメータと前記従属変数の分岐を選択する分岐選択パラメータとをそれぞれ整数値又は整数値の組として記憶する記憶ステップと、
    生成手段が前記復号鍵生成パラメータから前記従属変数の分岐を選択する分岐選択パラメータに対応した前記従属変数の分岐を計算する計算手順に従って、前記記憶手段に記憶された前記復号鍵生成パラメータと前記分岐選択パラメータと用いて前記従属変数の分岐を前記個別復号鍵として生成する生成ステップとを有することを特徴とする個別復号鍵生成方法。
  13. コンピュータを、暗号化された電子データを復号化する復号鍵を生成するのに用いる復号鍵生成パラメータと復号鍵との関係が復号鍵生成パラメータを独立変数とし復号鍵を従属変数の分岐とする多価関数として表現される暗号方式を利用して、1つの暗号鍵に対して異なる複数の復号鍵を個別復号鍵として生成する個別復号鍵生成装置として機能させるプログラムであって、
    コンピュータを、前記復号鍵生成パラメータと前記従属変数の分岐を選択する分岐選択パラメータとをそれぞれ整数値又は整数値の組として記憶する記憶手段と、前記復号鍵生成パラメータから前記従属変数の分岐を選択する分岐選択パラメータに対応した前記従属変数の分岐を計算する計算手順に従って、前記記憶手段に記憶された前記復号鍵生成パラメータと前記分岐選択パラメータと用いて前記従属変数の分岐を前記個別復号鍵として生成する生成手段として機能させることを含むことを特徴とする個別復号鍵生成装置用プログラム。
  14. 電子データを暗号化する電子データ暗号化装置と個別復号鍵生成装置とを含む電子データ暗号化システムであって、
    前記個別復号鍵生成装置は前記請求項11記載の個別復号鍵生成装置であり、
    前記電子データ暗号化装置は電子データを暗号化すると共に復号鍵生成パラメータを生成して前記個別復号鍵生成装置に出力するように構成されていることを特徴とする電子データ暗号化システム。
JP2006203228A 2006-07-26 2006-07-26 個別復号鍵生成装置、個別復号鍵生成方法、個別復号鍵生成装置用プログラム、電子データ復号化装置、電子データ復号化装置用プログラム、電子データ暗号化・復号化システム、電子データ暗号化システム Pending JP2008034938A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006203228A JP2008034938A (ja) 2006-07-26 2006-07-26 個別復号鍵生成装置、個別復号鍵生成方法、個別復号鍵生成装置用プログラム、電子データ復号化装置、電子データ復号化装置用プログラム、電子データ暗号化・復号化システム、電子データ暗号化システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006203228A JP2008034938A (ja) 2006-07-26 2006-07-26 個別復号鍵生成装置、個別復号鍵生成方法、個別復号鍵生成装置用プログラム、電子データ復号化装置、電子データ復号化装置用プログラム、電子データ暗号化・復号化システム、電子データ暗号化システム

Publications (1)

Publication Number Publication Date
JP2008034938A true JP2008034938A (ja) 2008-02-14

Family

ID=39123962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006203228A Pending JP2008034938A (ja) 2006-07-26 2006-07-26 個別復号鍵生成装置、個別復号鍵生成方法、個別復号鍵生成装置用プログラム、電子データ復号化装置、電子データ復号化装置用プログラム、電子データ暗号化・復号化システム、電子データ暗号化システム

Country Status (1)

Country Link
JP (1) JP2008034938A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2247105A1 (en) * 2009-04-27 2010-11-03 Nagravision S.A. Method to secure access to audio/video content in a decoding unit
CN113872970A (zh) * 2021-09-28 2021-12-31 北京天融信网络安全技术有限公司 数据访问方法、装置及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2247105A1 (en) * 2009-04-27 2010-11-03 Nagravision S.A. Method to secure access to audio/video content in a decoding unit
WO2010124982A1 (en) * 2009-04-27 2010-11-04 Nagravision S.A. Method to secure access to audio/video content in a decoding unit
CN102396241A (zh) * 2009-04-27 2012-03-28 纳格拉影像股份有限公司 保障解码单元中的音频/视频内容的访问的方法
US8315392B2 (en) 2009-04-27 2012-11-20 Nagravision, S.A. Method to secure access to audio/video content in a decoding unit
CN113872970A (zh) * 2021-09-28 2021-12-31 北京天融信网络安全技术有限公司 数据访问方法、装置及存储介质

Similar Documents

Publication Publication Date Title
JP6934963B2 (ja) データを暗号化する方法およびシステム
CN107294697B (zh) 基于明文相似矩阵的对称全同态加密方法
EP1081889A2 (en) Extended key generator, encryption / decryption unit, extended key generation method, and storage medium
US7564970B2 (en) Exponential data transform to enhance security
US8737608B2 (en) Exponential data transform to enhance security
AU2005277664B2 (en) Permutation data transform to enhance security
JP4546231B2 (ja) Idベース署名及び暗号化システムおよび方法
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
GB2538022A (en) Multiple secrets in quorum based data processing
Gutub et al. Hybrid crypto hardware utilizing symmetric-key and public-key cryptosystems
CN102099780B (zh) 指数模糊
JP3794457B2 (ja) データの暗号化復号化方法
US8077861B2 (en) Permutation data transform to enhance security
Andreevich et al. Pseudo-probabilistic block ciphers and their randomization
CN113992325B (zh) 一种隐私数据共享方法及装置
JP6266130B2 (ja) 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム
JP5113630B2 (ja) 秘密分散方法、プログラム、及び装置
JP2008034938A (ja) 個別復号鍵生成装置、個別復号鍵生成方法、個別復号鍵生成装置用プログラム、電子データ復号化装置、電子データ復号化装置用プログラム、電子データ暗号化・復号化システム、電子データ暗号化システム
JP4685621B2 (ja) 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
KR102022333B1 (ko) 공개키 암호 알고리즘을 이용한 암호화/복호화 방법 및 장치
JP5880173B2 (ja) 暗号処理方法、システム及び情報処理装置
Ekka et al. Enrichment of security using hybrid algorithm
JP2010152012A (ja) 整数の暗号化及び復号化方法
JP3906574B2 (ja) 暗号変換方法、暗号変換装置、復号方法、復号装置及びデータ通信システム
CN117499010A (zh) 一种数据处理方法及装置