JP2008306395A - 情報処理装置、情報処理方法 - Google Patents
情報処理装置、情報処理方法 Download PDFInfo
- Publication number
- JP2008306395A JP2008306395A JP2007150779A JP2007150779A JP2008306395A JP 2008306395 A JP2008306395 A JP 2008306395A JP 2007150779 A JP2007150779 A JP 2007150779A JP 2007150779 A JP2007150779 A JP 2007150779A JP 2008306395 A JP2008306395 A JP 2008306395A
- Authority
- JP
- Japan
- Prior art keywords
- data
- key
- decryption
- ciphertext
- encrypted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
【課題】 暗号化されたデータ(暗号文データ)と鍵とが与えられた場合に、この鍵はこの暗号文データを正しく復号することができるか否かの検証を、より簡便且つ高速に行うための技術を提供すること。
【解決手段】 暗号化鍵を用いて平文データを暗号化することで生成される暗号文データc1、暗号文データc1よりもサイズの小さい検証用データ、暗号化鍵を用いて検証用データを暗号化することで生成される暗号文データc2を取得する(S601)。復号鍵を用いて暗号文データc2を復号した結果と、検証用データとが一致しているか否かを判定する(S607)。一致していると判定した場合には、復号鍵を用いて、暗号文データc1を復号する(S608)。
【選択図】 図6
【解決手段】 暗号化鍵を用いて平文データを暗号化することで生成される暗号文データc1、暗号文データc1よりもサイズの小さい検証用データ、暗号化鍵を用いて検証用データを暗号化することで生成される暗号文データc2を取得する(S601)。復号鍵を用いて暗号文データc2を復号した結果と、検証用データとが一致しているか否かを判定する(S607)。一致していると判定した場合には、復号鍵を用いて、暗号文データc1を復号する(S608)。
【選択図】 図6
Description
本発明は、鍵を用いて暗号化されたデータを取り扱う技術に関するものである。
従来、暗号化されたデータ(暗号文データ)と鍵とが与えられた場合に、この鍵はこの暗号文データを正しく復号するためのものであるのか否かを検証する方法としては、次のような方法が一般的であった。即ち、暗号文データを鍵を用いて復号し、その復号結果が正しいか否かを判定して検証する方法である。暗号文データが正しく復号できない場合に、暗号化の過程のどこで誤りが生じたかを突き止める方法は特許文献1に示されている。
特開平10−231778号公報
しかしながら、従来の検証方法では、暗号文データを復号して復号結果、つまり暗号化元データ(平文データ)の全体を得た後でなければ、上記検証ができないという問題があった。例えば、平文データが画像データであり、画像データの全体を入力してから表示処理を行う画像データ表示プログラムを使って判定する場合が、このケースに該当する。この場合に、鍵と暗号文データとの関係が何らかの理由によって正しいものではない場合に、この鍵を用いてこの暗号文データの復号処理を行うと、その復号結果は本来の平文データに戻らないので、復号に費やした時間と計算量は無駄になる。更に、暗号文データのサイズが大きい場合にこの無駄が発生すると、著しく使い勝手を損なう。
本発明は以上の問題に鑑みてなされたものであり、暗号化されたデータ(暗号文データ)と鍵とが与えられた場合に、この鍵はこの暗号文データを正しく復号することができるか否かの検証を、より簡便且つ高速に行うための技術を提供することを目的とする。
本発明の目的を達成するために、例えば、本発明の情報処理装置は、第1の鍵を用いて第1のデータを暗号化することで生成された第1の暗号化済みデータと、前記第1のデータよりもサイズの小さい第2のデータと、前記第1の鍵を用いて前記第2のデータを暗号化することで生成された第2の暗号化済みデータとを取得する取得手段と、
第2の鍵を用いて前記第2の暗号化済みデータを復号することで、第2の復号データを生成する復号手段と、
前記第2のデータと前記第2の復号データとが一致しているか否かを判定する判定手段を備え
前記復号手段は、さらに、前記判定手段の結果に応じて、前記第2の鍵を用いて、前記第1の暗号化済みデータを復号することを特徴とする。
第2の鍵を用いて前記第2の暗号化済みデータを復号することで、第2の復号データを生成する復号手段と、
前記第2のデータと前記第2の復号データとが一致しているか否かを判定する判定手段を備え
前記復号手段は、さらに、前記判定手段の結果に応じて、前記第2の鍵を用いて、前記第1の暗号化済みデータを復号することを特徴とする。
本発明の目的を達成するために、例えば、本発明の情報処理装置は、第1の鍵を用いて第1のデータを暗号化することで生成された第1の暗号化済みデータと、前記第1の鍵を用いて前記第1の鍵のデータを暗号化することで生成された第2の暗号化済みデータとを取得する取得手段と、
第2の鍵を用いて前記第2の暗号化済みデータを復号することで、第2の復号データを生成する復号手段と、
前記第2の鍵のデータと、前記第2の復号データとが、予め定められた関係を有しているか否かを判定する判定手段とを備え、
前記復号手段は、さらに、前記判定手段の結果に応じて、前記第2の鍵を用いて、前記第1の暗号化済みデータを復号することを特徴とする。
第2の鍵を用いて前記第2の暗号化済みデータを復号することで、第2の復号データを生成する復号手段と、
前記第2の鍵のデータと、前記第2の復号データとが、予め定められた関係を有しているか否かを判定する判定手段とを備え、
前記復号手段は、さらに、前記判定手段の結果に応じて、前記第2の鍵を用いて、前記第1の暗号化済みデータを復号することを特徴とする。
本発明の目的を達成するために、例えば、本発明の情報処理方法は、第1の鍵を用いて第1のデータを暗号化することで生成された第1の暗号化済みデータと、前記第1のデータよりもサイズの小さい第2のデータと、前記第1の鍵を用いて前記第2のデータを暗号化することで生成された第2の暗号化済みデータとを取得する取得工程と、
第2の鍵を用いて前記第2の暗号化済みデータを復号することで、第2の復号データを生成する第1の復号工程と、
前記第2のデータと前記第2の復号データとが一致しているか否かを判定する判定工程と、
前記判定工程で一致していると判定した場合には、前記第2の鍵を用いて、前記第1の暗号化済みデータを復号する第2の復号工程と
を備えることを特徴とする。
第2の鍵を用いて前記第2の暗号化済みデータを復号することで、第2の復号データを生成する第1の復号工程と、
前記第2のデータと前記第2の復号データとが一致しているか否かを判定する判定工程と、
前記判定工程で一致していると判定した場合には、前記第2の鍵を用いて、前記第1の暗号化済みデータを復号する第2の復号工程と
を備えることを特徴とする。
本発明の目的を達成するために、例えば、本発明の情報処理方法は、第1の鍵を用いて第1のデータを暗号化することで生成された第1の暗号化済みデータと、前記第1の鍵を用いて前記第1の鍵のデータを暗号化することで生成された第2の暗号化済みデータとを取得する取得工程と、
第2の鍵を用いて前記第2の暗号化済みデータを復号することで、第2の復号データを生成する第1の復号工程と、
前記第2の鍵のデータと、前記第2の復号データとが、予め定められた関係を有しているか否かを判定する判定工程と、
前記判定工程が有していると判定した場合には、前記第2の鍵を用いて、前記第1の暗号化済みデータを復号する第2の復号工程と
を備えることを特徴とする。
第2の鍵を用いて前記第2の暗号化済みデータを復号することで、第2の復号データを生成する第1の復号工程と、
前記第2の鍵のデータと、前記第2の復号データとが、予め定められた関係を有しているか否かを判定する判定工程と、
前記判定工程が有していると判定した場合には、前記第2の鍵を用いて、前記第1の暗号化済みデータを復号する第2の復号工程と
を備えることを特徴とする。
本発明の構成によれば、暗号化されたデータ(暗号文データ)と鍵とが与えられた場合に、この鍵はこの暗号文データを正しく復号することができるか否かの検証を、より簡便且つ高速に行うことができる。
以下、添付図面を参照し、本発明の好適な実施形態について詳細に説明する。
[第1の実施形態]
図3は、本実施形態に係る情報処理装置として機能するコンピュータのハードウェア構成を示すブロック図である。係るコンピュータには、PC(パーソナルコンピュータ)やWS(ワークステーション)等があげられる。
図3は、本実施形態に係る情報処理装置として機能するコンピュータのハードウェア構成を示すブロック図である。係るコンピュータには、PC(パーソナルコンピュータ)やWS(ワークステーション)等があげられる。
図3において300はコンピュータで、CPU303、ROM304、RAM305、HD(ハードディスク)306、ネットワークインターフェース301,302を有する。更にコンピュータ300は、キーボードやマウスなどのポインティングデバイスを接続するためのインターフェース308、CRTや液晶画面などの表示装置を接続するためのインターフェース309を有する。そして、上記各部は、バス310に接続されている。
CPU303は、ROM304やRAM305に格納されているプログラム(コンピュータプログラム)やデータを用いて、コンピュータ300全体の制御を行うと共に、コンピュータ300が行うものとして説明する後述の各処理を実行する。
ROM304には、コンピュータ300の設定データやブートプログラムなどが格納されている。
RAM305は、HD306からロードされたプログラムやデータ、ネットワークインターフェース301、302を介して外部から受信したプログラムやデータなどを一時的に記憶するためのエリアを有する。更に、RAM305は、CPU303が各処理を実行する際に用いるワークエリアも有する。即ち、RAM305は、各種のエリアを適宜提供することができる。
HD306には、OS(オペレーティングシステム)や、コンピュータ300が行うものとして後述する各処理をCPU303に実行させるためのプログラムやデータが保存されている。HD306に保存されているプログラムやデータは、CPU303による制御に従って、適宜RAM305にロードされる。CPU303は、RAM305にロードされたプログラムやデータを用いて、各種の処理を実行する。
ここで、コンピュータ300をネットワークに接続する際、このコンピュータ300は、ホスト若しくはルータの何れかとして機能することになる。コンピュータ300がルータとして機能する場合には、ネットワークインターフェース301、302の両方が必要であるし、コンピュータ300がホストとして機能する場合には、ネットワークインターフェース302は不要となる。
なお、コンピュータ300の構成については図3に示した構成に限定するものではなく、様々な構成が考えられる。
次に、以下の説明において用いる用語の定義を行う。以下では、意図する相手だけが理解できるように、鍵を用いてデータを変換および逆変換する技術を「暗号化技術」と呼称する。また、鍵を用いて変換する対象のデータであって、画像などのコンテンツのデータを「平文データ」、変換後のデータを「暗号化済みデータ(暗号文データ)」と呼称する。また、平文データを暗号文データに変換することを「暗号化」、暗号化の際に使う鍵を「暗号化鍵」、鍵を用いて暗号文データを平文データに逆変換することを「復号」、復号の際に使う鍵を「復号鍵」と呼称する。また、「解読」は、復号鍵を使わずに暗号文データから平文データを得ることであり、復号とは異なることに注意されたい。また、暗号化鍵と復号鍵とが同一であるような暗号化を対称暗号系、暗号化鍵と復号鍵が異なり、暗号化鍵は公開可能である暗号化を非対称暗号系と呼称する。
次に、コンピュータ300が行う情報処理方法の1つである暗号化処理について、同処理のフローチャートを示す図5を用いて、以下説明する。なお、図5のフローチャートに従った処理をCPU303に実行させるためのプログラムやデータはHD306に保存されている。係るプログラムやデータは、CPU303による制御に従って適宜RAM305にロードされる。CPU303はこのロードされたプログラムやデータを用いて処理を実行するので、コンピュータ300は、以下説明する各処理を実行することになる。
先ずステップS501では、RAM305に平文データ(第1のデータ)を取得する。平文データをRAM305内に取得するための方法については様々な方法が考えられ、その方法は特に限定するものではない。例えば、HD306に予め保存されている複数の画像のうち、コンピュータ300のユーザがキーボードやマウスを用いて指示した画像のデータを平文データとしてCPU303がHD306からRAM305にロードしても良い。
次にステップS502では、ステップS501で取得した平文データを暗号化するために使用する暗号化鍵(第1の鍵)のデータをRAM305に取得する。暗号化鍵のデータをRAM305に取得するための方法についても同様に、様々な方法が考えられ、何れかの方法に限定するものではない。例えば、HD306に予め保存されている複数の暗号化鍵のデータのうち、コンピュータ300のユーザがキーボードやマウスを用いて指示した暗号化鍵のデータをCPU303がHD306からRAM305にロードしても良い。
次にステップS503では、ステップS501,S502の両方における取得処理が正常に行われたか否かを判定する。即ち、RAM305に、平文データと、この平文データを暗号化するために使用する暗号化鍵のデータとが格納されているのかを判定する。係る判定の結果、平文データと暗号化鍵のデータとがRAM305に取得されている場合には、処理をステップS504に進め、取得されていない場合には、処理をステップS501に戻す。
ステップS504では、ステップS502で取得した暗号化鍵のデータを用いて、ステップS501で取得した平文データを暗号化することで、平文データの暗号文データc1を得る。なお、平文データが大きいサイズのデータである場合には、平文データを複数のデータに分割し、それぞれの分割データについて並列的、若しくは逐次的に暗号化を行うようにしても良い。このような場合には、ステップS504における処理を行いつつ、後段のステップS505における処理を並行して行うようにしても良い。
ステップS505では、平文データの暗号文データc1を周知のハッシュ関数に入力することで、この平文データの暗号文データc1のハッシュデータを、検証用データhとして生成する。係るハッシュ関数には様々なものがあり、何れを用いても本実施形態は適用可能であるが、暗号化に対するセキュリティは高ければ高いほど好ましい。そこで、ハッシュ関数として、例えば、SHA-256、SHA-384、SHA-512というような、暗号学的に安全な一方向性ハッシュ関数を用いることが好ましい。
ここで、検証用データhのデータサイズは、平文データのデータサイズよりも十分に小さい、ということが重要である。
次にステップS506では、ステップS505で生成した検証用データhを、ステップS502で取得した暗号化鍵のデータを用いて暗号化することで、検証用データhの暗号文データc2を得る。
次にステップS507では、検証用データhと、検証用データhの暗号文データc2とをまとめて付加データとし、係る付加データと平文データの暗号文データc1とをHD306や、ネットワークインターフェース301、302を介して外部に出力する。なお、ステップS507における出力先については特に限定するものではない。
図1は、ステップS507で、検証用データh、検証用データhの暗号文データc2、平文データの暗号文データc1を1つのデータパケットにまとめて出力する場合の、このデータパケットの構成例を示す図である。同図において104は検証用データhを格納している領域、103は、検証用データhの暗号文データc2を格納している領域、102は、平文データの暗号文データc1を格納している領域である。なお、データパケット中の各領域102〜104を特定するための情報、例えば、各領域102〜104の先頭位置を特定するための情報については、このデータパケットに添付される不図示のヘッダに含められる。なお、検証用データh、検証用データhの暗号文データc2、平文データの暗号文データc1についてはこのように1つのデータパケットにまとめて出力することに限定するものではなく、それぞれを別個に出力しても良い。
次に、コンピュータ300が行う情報処理方法の1つである、復号処理、即ち、平文データの暗号文データc1を復号するための処理について、同処理のフローチャートを示す図6を用いて以下、説明する。なお、図6のフローチャートに従った処理をCPU303に実行させるためのプログラムやデータはHD306に保存されている。係るプログラムやデータは、CPU303による制御に従って適宜RAM305にロードされる。CPU303はこのロードされたプログラムやデータを用いて処理を実行するので、コンピュータ300は、以下説明する各処理を実行することになる。
先ずステップS601では、上記ステップS507で出力した検証用データh(第2のデータ)、検証用データhの暗号文データc2(第2の暗号化済みデータ)、平文データの暗号文データc1(第1の暗号化済みデータ)をRAM305に取得する。係る取得処理については様々な処理が考えられ、特に限定するものではない。例えば、検証用データh、検証用データhの暗号文データc2、平文データの暗号文データc1がHD306に保存されている場合には、CPU303がこれをRAM305にロードする。
次にステップS602では、検証用データhの暗号文データc2、平文データの暗号文データc1を復号するための復号鍵(第2の鍵)のデータをRAM305に取得する。復号鍵のデータをRAM305に取得するための方法についても同様に、様々な方法が考えられ、何れかの方法に限定するものではない。例えば、HD306に予め保存されている複数の復号鍵のデータのうち、コンピュータ300のユーザがキーボードやマウスを用いて指示した復号鍵のデータをCPU303がHD306からRAM305にロードしても良い。
次にステップS603では、ステップS601,S602の両方における取得処理が正常に行われたか否かを判定する。即ち、RAM305に、検証用データh、検証用データhの暗号文データc2、平文データの暗号文データc1、復号鍵のデータが格納されているのかを判定する。係る判定の結果、検証用データh、検証用データhの暗号文データc2、平文データの暗号文データc1、復号鍵のデータがRAM305に取得されている場合には、処理をステップS604に進め、取得されていない場合には、処理をステップS601に戻す。
ステップS604では、平文データの暗号文データc1を、上記ステップS505で用いたハッシュ関数に入力することで、この暗号文データc1のハッシュデータを生成する。
ステップS605では、ステップS604で生成したハッシュデータと、ステップS601で取得した検証用データhとが一致するものであるのか否かを判定する。係る判定の結果、一致しないと判定した場合には、以降の処理を中断し、異常終了させる。一致しない場合における処理については特に限定するものではないが、例えば、一致していない旨を示すメッセージを、インターフェース309に接続されている表示装置に表示させても良い。
一方、ステップS605における判定の結果、一致すると判定した場合には、処理をステップS606に進め、以降の処理の実行を許可する。なお、ステップS604,S605における処理は、平文データの暗号文データc1等に対する攻撃の有無を検証するために行う検証処理であり、本実施形態では必須なものではないので、適宜省略しても良い。
ステップS606では、検証用データhの暗号文データc2を、上記ステップS602で取得した復号鍵のデータを用いて復号する(第1の復号工程)。係る復号の結果得られるデータを、復号データd(第2の復号データ)と呼称する。
次にステップS607では、ステップS606で得られた復号データdと、上記ステップS601で取得した検証用データhとが一致するか否かを判定する。係る判定の結果、一致しないと判定された場合には、以降の処理を中断し、異常終了させる。一致しない場合における処理については特に限定するものではないが、例えば、一致していない旨を示すメッセージを、インターフェース309に接続されている表示装置に表示させても良い。
一方、ステップS607における判定の結果、一致すると判定された場合には、処理をステップS608に進める。
ステップS608では、平文データの暗号文データc1を、復号鍵データを用いて復号する(第2の復号工程)。即ち、この復号鍵のデータを用いて検証用データhの暗号文データc2を復号することで得られる復号データdは、検証用データhと一致するので、係る復号鍵のデータは、暗号文データc1から平文データを復号することができると判断することができる。
なお、異なる平文データを暗号化するときは異なる鍵を用いる。対称暗号系と非対称暗号系のいずれを使うこともできる。
本実施形態では、暗号文データc1と検証用データh(ハッシュデータh)と検証用データhの暗号文データc2とが関連付けられている。従って、復号処理を正常終了させることが可能な暗号文データc1とハッシュデータhと検証用データhの暗号文データc2とを、暗号化鍵を知らない者が偽造することは困難である。例えば、暗号文データc1を偽造し、そのハッシュデータhを得ても、暗号化鍵を知らなければ、ハッシュデータhの暗号文データc2を求めることはできない。
また、ある暗号化鍵に対応するハッシュデータhと暗号文データc2を入手した攻撃者がいたとする。そしてこの攻撃者が、このハッシュデータhを得るための暗号文データc1を偽造しようとしても、使用するハッシュ関数が暗号学的に安全な一方向性ハッシュ関数であれば、そのような暗号文データc1を見つけることは困難である。従って、計算時間と計算量を無駄に費やさせる攻撃は行えないし、係る攻撃は検出することができる。
以上の説明により、本実施形態によれば、与えられた復号鍵が、平文データの暗号文データを正しく復号するための復号鍵であるのかの検証を、この平文データの暗号文データを復号することなく、行うことができる。
検証用データは平文データよりもデータサイズが小さいので、検証用データの暗号文データの復号に要する時間は、平文データの暗号文データを復号するよりも短くてすむ。従って、平文データの暗号文データの代わりに、検証用データの暗号文データを復号する処理を、復号鍵を用いて行い、その復号結果が検証用データと一致するか否かを判断する。そして一致していれば、係る復号に用いた復号鍵を用いて平文データの暗号文データも正しく復号することができると判断(検証)することができる。従って、結果として、検証用データよりもデータサイズの大きい平文データの暗号文データを復号することなく、係る検証を行うことができる。本実施形態は、平文データと検証用データとのデータサイズの差が大きければ大きいほど、より大きな効果を奏する。
なお、本実施形態では、暗号化処理、復号化処理は、コンピュータ300上で動作するプログラムをCPU303が実行することで行っている。例えば係るプログラムが暗号化、復号化用の関数プログラムである場合には、本体プログラム(例えば、画像編集プログラムなど)から平文データへのポインタ、暗号化鍵のデータへのポインタ等の引数を渡すことで係る関数プログラムを動作させても良い。
また、本実施形態に係る暗号化処理、復号化処理をLSIなどのハードウェアでもって行う場合には、係るハードウェアに対して、平文データを示す信号、暗号化鍵を示す信号などを入力することによって、係るハードウェアを動作せるようにしても良い。
[第2の実施形態]
第1の実施形態では、検証用データとして、平文データの暗号文データのハッシュデータを用いていた。即ち、検証用データは、平文データと関係のあるデータであった。しかし、検証用データは、平文データとは無関係のデータであっても良い。
第1の実施形態では、検証用データとして、平文データの暗号文データのハッシュデータを用いていた。即ち、検証用データは、平文データと関係のあるデータであった。しかし、検証用データは、平文データとは無関係のデータであっても良い。
本実施形態では、平文データと無関係の検証用データの一例として、乱数を用いる。
検証用データとして乱数を用いた場合における暗号化処理は、基本的には図5のフローチャートに示した処理と同じであるが、ステップS505では、適当な乱数を発生させ、これを検証用データrとする。そしてステップS506では、検証用データrを、ステップS502で取得した暗号化鍵のデータを用いて暗号化することで、検証用データrの暗号文データc3を得る。
検証用データとして乱数を用いた場合における暗号化処理は、基本的には図5のフローチャートに示した処理と同じであるが、ステップS505では、適当な乱数を発生させ、これを検証用データrとする。そしてステップS506では、検証用データrを、ステップS502で取得した暗号化鍵のデータを用いて暗号化することで、検証用データrの暗号文データc3を得る。
図2は、ステップS507で、検証用データr、検証用データrの暗号文データc3、平文データの暗号文データc1を1つのデータパケットにまとめて出力する場合の、このデータパケットの構成例を示す図である。同図において204は検証用データrを格納している領域、203は、検証用データrの暗号文データc3を格納している領域、202は、平文データの暗号文データc1を格納している領域である。なお、データパケット中の各領域202〜204を特定するための情報、例えば、各領域202〜204の先頭位置を特定するための情報については、このデータパケットに添付される不図示のヘッダに含められる。なお、検証用データr、検証用データrの暗号文データc3、平文データの暗号文データc1についてはこのように1つのデータパケットにまとめて出力することに限定するものではなく、それぞれを別個に出力しても良い。
一方、本実施形態に係る復号処理は、基本的には図6のフローチャートにおいて、ステップS604、S605における処理は省略し、検証用データhの代わりに検証用データr、暗号文データc2の代わりに暗号文データc3を用いる点が異なる。
本実施形態に係る暗号化処理、復号処理では、ハッシュデータ算出処理よりも処理速度の速い「乱数の発生処理」により検証用データを生成するので、第1の実施形態に係る暗号化処理、復号化処理よりも早く暗号化処理、復号化処理を行うことができる。
しかし、検証用データrと検証用データrの暗号文データc3との組と、暗号文データc1とは無関係であるので、次のような攻撃が想定される。即ち、ある暗号化鍵kを用いて作成された暗号文データc1、検証用データr、検証用データrの暗号文データc3からなるデータを入手した攻撃者は、暗号文データc1を別の暗号文データ、例えば乱数データとすりかえる。そして復号の際に、暗号文データc1に対応する復号鍵を用いて暗号文データc3を復号し、復号結果と検証用データrとが一致しているか否かを判定する。しかし、係る判定で一致していると判定したとしても、この復号鍵を用いて暗号文データc1とすりかえられた乱数データを復号することになるので、当然、この復号結果は、平文データとは一致しない。即ち、本来の平文データを得ることはできない。このように、計算時間と計算量を無駄に費やさせる攻撃が発生する可能性がある。
なお、異なる平文データを暗号化するときは異なる鍵を用いる。また、異なる平文データには異なる乱数を用いる。
[第3の実施形態]
本実施形態では、暗号化鍵と復号化鍵とが同じであることを前提にした場合に、検証用データは生成せずに、第1の実施形態における暗号文データc2、第2の実施形態における暗号文データc3の代わりに、暗号化鍵の暗号文データc4を生成する。
本実施形態では、暗号化鍵と復号化鍵とが同じであることを前提にした場合に、検証用データは生成せずに、第1の実施形態における暗号文データc2、第2の実施形態における暗号文データc3の代わりに、暗号化鍵の暗号文データc4を生成する。
本実施形態に係る暗号化処理は、図5のフローチャートにおいて以下の点が第1の実施形態とは異なる。即ち、ステップS505における処理を省略し、ステップS506では、ステップS502で取得した暗号化鍵のデータを用いてこの暗号化鍵のデータを暗号化することで、暗号化鍵のデータの暗号文データc4を得る。
図4は、ステップS507で、暗号化鍵のデータの暗号文データc4、平文データの暗号文データc1を1つのデータパケットにまとめて出力する場合の、このデータパケットの構成例を示す図である。同図において403は、暗号化鍵のデータの暗号文データc4を格納している領域、402は、平文データの暗号文データc1を格納している領域である。なお、データパケット中の各領域402、403を特定するための情報、例えば、各領域402、403の先頭位置を特定するための情報については、このデータパケットに添付される不図示のヘッダに含められる。なお、暗号化鍵のデータの暗号文データc4、平文データの暗号文データc1についてはこのように1つのデータパケットにまとめて出力することに限定するものではなく、それぞれを別個に出力しても良い。
一方、本実施形態に係る復号化処理は、図6のフローチャートにおいて、以下の点が第1の実施形態とは異なる。ステップS601では、暗号文データc1、暗号文データc4を取得する。ステップS603では、暗号文データc1、暗号文データc4、復号鍵のデータがRAM305に取得されたか否かを判定する。
そして、ステップS604,S605を省略する。ステップS606では、暗号化鍵の暗号文データc4を、復号鍵のデータを用いて復号する。そしてステップS607では、暗号文データc4の復号結果と、復号鍵のデータとを比較する。ここで、暗号化鍵のデータと復号鍵のデータとは同じであるという前提であるので、暗号文データc4の復号結果と、復号鍵のデータとが一致すれば、係る復号鍵のデータは、平文データを復号するための正しい復号鍵のデータであると判断することができる。従って、暗号文データc4の復号結果と、復号鍵のデータとが一致した場合には、処理をステップS608に進める。一方、一致しない場合には、異常終了させる。
本実施形態に係る暗号化処理、復号処理では、ハッシュデータ算出処理を行わないので、第1の実施形態に係る暗号化処理、復号化処理よりも早く暗号化処理、復号化処理を行うことができる。また、本実施形態では、データパケットには、検証用データを含めないので、データパケットのサイズが、第1,2の実施形態よりも小さくなる。
しかし、暗号化鍵の暗号文データc4は平文データの暗号文データc1から生成されたものではないので、それぞれのデータ間の関係は無い。従って、次のような攻撃が考えられる。
ある暗号化鍵kを用いて作成された暗号文データc1、暗号化鍵の暗号文データc4、を入手した攻撃者は、平文データの暗号文データc1を別の暗号文データ、例えば乱数とすりかえる。そして復号の際に、暗号文データc1に対応する復号鍵を用いて暗号文データc4を復号し、復号結果と復号鍵のデータとが一致しているか否かを判定する。しかし、係る判定で一致していると判定したとしても、この復号鍵を用いて暗号文データc1とすりかえられた乱数データを復号することになるので、当然、この復号結果は、平文データとは一致しない。即ち、本来の平文データを得ることはできない。このように、計算時間と計算量を無駄に費やさせる攻撃が発生する可能性がある。
なお、異なる平文データを暗号化するときは異なる鍵のデータを用いる。
また、本実施形態では、暗号化鍵と復号鍵とは同じものであるとしたが、同じでなくても良い。この場合、暗号化鍵と復号鍵との間の関係(鍵間関係)さえ事前に分かっていれば、上記ステップS607では、暗号文データc4の復号結果と、復号鍵のデータとの間の関係が、上記鍵間関係を満たしているか否かをチェックすればよい。係るチェックには、例えば、次のようなものがある。
例えば、RSA公開鍵暗号のような非対称暗号系で暗号化する場合は、以下のようになる。
RSA暗号において、暗号化鍵は(e、N)、復号鍵は(d、N)と表され、Nは大きな素数pと大きな素数qの積、eは3以上の素数で、(p−1)と(q−1)の最小公倍数をLとするとe×d≡1(mod L)が成りたつ。A≡B(mod C)は、AとBの差がCの整数倍であること(整数をkとすると、A−B=k×C)を示す。平文Mの暗号化はM^e mod Nによって計算され、暗号文Cの復号はC^d mod Nによって計算される。A=B mod Cは、BをCで除算した剰余がAであることを示す。実際に暗号化方式として使われる場合は、OAEP(Optimal Asymmetric Encryption Padding)と呼ばれる手法を用いたRSA-OAEPが安全性の観点で好ましいとされている。
RSA-OAEPを本実施形態に適用する場合は、以下のようになる。
平文データをRSA-OAEPで暗号化した暗号文データをc1とする。復号鍵(d、N)のうち、dに着目し、dをRSA-OAEPで暗号化した暗号文データをc4とする。c1とc4を入手したら、c4をRSA-OAEPで復号する。復号の際は(d、N)を用いるので、c4の復号結果がdと一致することを確認する。確認後、c1をRSA-OAEPで復号する。この適用方法では、暗号化鍵(e、N)と復号鍵(d、N)が異なるが、あらかじめ定められた関係、すなわち、RSA-OAEPの暗号化鍵と復号鍵の関係を満たしていることをチェックしている。
あるいは、以下のようにRSA-OAEPを本実施形態に適用する別の方法もある。平文データをRSA-OAEPで暗号化した暗号文データをc1とする。暗号化鍵(e、N)のうち、eに着目し、eをRSA-OAEPで暗号化した暗号文データをc4とする。c1とc4を入手したら、c4をRSA-OAEPで復号する。c4の復号結果がeと一致することを確認する。確認後、c1をRSA-OAEPで復号する。この別の適用方法では,暗号化鍵(e、N)と復号鍵(d、N)が異なるが、あらかじめ定められた関係、すなわち、RSA-OAEPの暗号化鍵と復号鍵の関係を満たしていることをチェックしている。
同様の適用方法は、RSA-OAEPに限るわけではなく、安全な公開鍵暗号化方式を用いて構成することができる。
つまり、暗号化鍵のデータを、公開鍵暗号方式の公開鍵とした場合、復号鍵のデータは、公開鍵と対となる秘密鍵である。また、正しく復号された場合の復号結果は、公開鍵であるので、ステップS607では、復号鍵のデータである秘密鍵と対となる公開鍵かどうかを判定すればよい。
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
Claims (9)
- 第1の鍵を用いて第1のデータを暗号化することで生成された第1の暗号化済みデータと、前記第1のデータよりもサイズの小さい第2のデータと、前記第1の鍵を用いて前記第2のデータを暗号化することで生成された第2の暗号化済みデータとを取得する取得手段と、
第2の鍵を用いて前記第2の暗号化済みデータを復号することで、第2の復号データを生成する復号手段と、
前記第2のデータと前記第2の復号データとが一致しているか否かを判定する判定手段を備え
前記復号手段は、さらに、前記判定手段の結果に応じて、前記第2の鍵を用いて、前記第1の暗号化済みデータを復号することを特徴とする情報処理装置。 - 前記第2のデータは、前記第1の暗号化済みデータのハッシュデータであることを特徴とする請求項1に記載の情報処理装置。
- 更に、
前記取得手段が取得した前記第1の暗号化済みデータのハッシュデータを求める第1手段と、
前記第1手段が求めたハッシュデータと、前記第2のデータとが一致しているか否かを判定する第2手段と、
前記第2手段が一致していると判定した場合には前記判定手段、前記復号手段による処理を許可する許可手段と
を備えることを特徴とする請求項2に記載の情報処理装置。 - 第1の鍵を用いて第1のデータを暗号化することで生成された第1の暗号化済みデータと、前記第1の鍵を用いて前記第1の鍵のデータを暗号化することで生成された第2の暗号化済みデータとを取得する取得手段と、
第2の鍵を用いて前記第2の暗号化済みデータを復号することで、第2の復号データを生成する復号手段と、
前記第2の鍵のデータと、前記第2の復号データとが、予め定められた関係を有しているか否かを判定する判定手段とを備え、
前記復号手段は、さらに、前記判定手段の結果に応じて、前記第2の鍵を用いて、前記第1の暗号化済みデータを復号することを特徴とする情報処理装置。 - 前記第1の鍵と前記第2の鍵とが同じデータである場合、前記判定手段は前記第2の鍵のデータと、前記第2の復号データとが一致しているか否かを判定することを特徴とする請求項4に記載の情報処理装置。
- 第1の鍵を用いて第1のデータを暗号化することで生成された第1の暗号化済みデータと、前記第1のデータよりもサイズの小さい第2のデータと、前記第1の鍵を用いて前記第2のデータを暗号化することで生成された第2の暗号化済みデータとを取得する取得工程と、
第2の鍵を用いて前記第2の暗号化済みデータを復号することで、第2の復号データを生成する第1の復号工程と、
前記第2のデータと前記第2の復号データとが一致しているか否かを判定する判定工程と、
前記判定工程で一致していると判定した場合には、前記第2の鍵を用いて、前記第1の暗号化済みデータを復号する第2の復号工程と
を備えることを特徴とする情報処理方法。 - 第1の鍵を用いて第1のデータを暗号化することで生成された第1の暗号化済みデータと、前記第1の鍵を用いて前記第1の鍵のデータを暗号化することで生成された第2の暗号化済みデータとを取得する取得工程と、
第2の鍵を用いて前記第2の暗号化済みデータを復号することで、第2の復号データを生成する第1の復号工程と、
前記第2の鍵のデータと、前記第2の復号データとが、予め定められた関係を有しているか否かを判定する判定工程と、
前記判定工程が有していると判定した場合には、前記第2の鍵を用いて、前記第1の暗号化済みデータを復号する第2の復号工程と
を備えることを特徴とする情報処理方法。 - コンピュータに請求項6又は7に記載の情報処理方法を実行させるためのコンピュータプログラム。
- 請求項8に記載のコンピュータプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007150779A JP2008306395A (ja) | 2007-06-06 | 2007-06-06 | 情報処理装置、情報処理方法 |
US12/133,835 US8233628B2 (en) | 2007-06-06 | 2008-06-05 | Information processing apparatus and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007150779A JP2008306395A (ja) | 2007-06-06 | 2007-06-06 | 情報処理装置、情報処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008306395A true JP2008306395A (ja) | 2008-12-18 |
JP2008306395A5 JP2008306395A5 (ja) | 2010-07-15 |
Family
ID=40234737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007150779A Withdrawn JP2008306395A (ja) | 2007-06-06 | 2007-06-06 | 情報処理装置、情報処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8233628B2 (ja) |
JP (1) | JP2008306395A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011130425A (ja) * | 2009-11-17 | 2011-06-30 | Maruju Shokai:Kk | 携帯電話を利用した暗号化データの復号システムおよび復号方法 |
JP2015065549A (ja) * | 2013-09-25 | 2015-04-09 | ブラザー工業株式会社 | 画像処理装置、データ復号方法、及びプログラム |
JP2022517383A (ja) * | 2019-05-31 | 2022-03-08 | 株式会社ユニオンプレイス | マルチキャストグループ内の購読者にキーデータを伝送するデバイス |
JP2022517381A (ja) * | 2019-05-31 | 2022-03-08 | 株式会社ユニオンプレイス | マルチキャストグループ内のデバイス |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2991266B1 (en) * | 2013-04-24 | 2019-02-27 | Nec Corporation | Encrypted text matching system, method, and computer readable medium |
US10148423B2 (en) * | 2015-07-20 | 2018-12-04 | International Business Machines Corporation | Data security system with identifiable format-preserving encryption |
US20230093942A1 (en) * | 2021-09-24 | 2023-03-30 | Cisco Technology, Inc. | Providing connection data to network devices for content inspection and replay attack mitigation |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3747520B2 (ja) * | 1996-01-30 | 2006-02-22 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理方法 |
DE19706114C9 (de) | 1997-02-17 | 2014-02-06 | Linde Hydraulics Gmbh & Co. Kg | Vorrichtung zur Pulsationsverminderung an einer hydrostatischen Verdrängereinheit |
US7228437B2 (en) * | 1998-08-13 | 2007-06-05 | International Business Machines Corporation | Method and system for securing local database file of local content stored on end-user system |
JP2004111524A (ja) * | 2002-09-17 | 2004-04-08 | Denso Corp | 点火コイルおよびその製造方法 |
US20070055867A1 (en) * | 2003-03-14 | 2007-03-08 | Rajesh Kanungo | System and method for secure provisioning of encryption keys |
JP2005032130A (ja) * | 2003-07-10 | 2005-02-03 | Sony Corp | データ管理装置、およびデータ管理方法、並びにコンピュータ・プログラム |
EP1708407A4 (en) * | 2004-01-22 | 2014-03-26 | Nec Corp | MixNet SYSTEM |
US7823190B1 (en) * | 2004-06-02 | 2010-10-26 | Sap Ag | System and method for implementing a distributed keystore within an enterprise network |
-
2007
- 2007-06-06 JP JP2007150779A patent/JP2008306395A/ja not_active Withdrawn
-
2008
- 2008-06-05 US US12/133,835 patent/US8233628B2/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011130425A (ja) * | 2009-11-17 | 2011-06-30 | Maruju Shokai:Kk | 携帯電話を利用した暗号化データの復号システムおよび復号方法 |
JP2015065549A (ja) * | 2013-09-25 | 2015-04-09 | ブラザー工業株式会社 | 画像処理装置、データ復号方法、及びプログラム |
JP2022517383A (ja) * | 2019-05-31 | 2022-03-08 | 株式会社ユニオンプレイス | マルチキャストグループ内の購読者にキーデータを伝送するデバイス |
JP2022517381A (ja) * | 2019-05-31 | 2022-03-08 | 株式会社ユニオンプレイス | マルチキャストグループ内のデバイス |
JP7176802B2 (ja) | 2019-05-31 | 2022-11-22 | 株式会社ユニオンプレイス | マルチキャストグループ内のデバイス |
JP7193184B2 (ja) | 2019-05-31 | 2022-12-20 | 株式会社ユニオンプレイス | マルチキャストグループ内の購読者にキーデータを伝送するデバイス |
Also Published As
Publication number | Publication date |
---|---|
US20090136040A1 (en) | 2009-05-28 |
US8233628B2 (en) | 2012-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3747520B2 (ja) | 情報処理装置及び情報処理方法 | |
JP5129121B2 (ja) | ハードディスク認証 | |
JP4802123B2 (ja) | 情報送信装置、情報送信方法、情報送信プログラムおよび該プログラムを記録した記録媒体 | |
JP2005099948A (ja) | 情報処理装置、印刷装置、印刷データ送信方法、印刷方法、印刷データ送信プログラム及び記録媒体 | |
JP2006194990A (ja) | 暗号装置、復号装置、鍵生成装置、プログラム及び方法 | |
JP2008306395A (ja) | 情報処理装置、情報処理方法 | |
US11431489B2 (en) | Encryption processing system and encryption processing method | |
JP2006311383A (ja) | データ管理方法、データ管理システムおよびデータ管理装置 | |
JP2007124530A (ja) | 復号化処理装置および復号化方法ならびに画像形成装置 | |
JP7325689B2 (ja) | 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム | |
JPH11258985A (ja) | 暗号データの送付用ファイル生成装置、そのプログラムが記録された記録媒体、および、暗号データの送付用ファイルが格納された記録媒体 | |
JP6631989B2 (ja) | 暗号化装置、制御方法、及びプログラム | |
JP2005202048A (ja) | 暗号通信システム、そのシステムに使用される暗号装置および復号装置、暗号化方法および復号化方法、暗号化プログラムおよび復号化プログラム、ならびに記録媒体 | |
JP2004297755A (ja) | 暗号システムにおける鍵管理サーバおよび復号装置を制御するプログラム,ならびに署名/検証システムにおける鍵管理サーバおよび検証装置を制御するプログラム | |
WO2021044465A1 (ja) | 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造 | |
JP2011123229A (ja) | プログラムコード暗号化装置及びプログラム | |
JP2005309148A (ja) | データ変換装置およびデータ変換方法 | |
JP4748762B2 (ja) | 署名生成方法及び情報処理装置 | |
JP2004184516A (ja) | デジタルデータ送信端末 | |
JP2007158967A (ja) | 情報処理装置、耐タンパーデバイス、暗号処理方法及びコンピュータプログラム | |
JP4475576B2 (ja) | ネットワーク印刷システム、印刷データ授受方法およびサーバコンピュータ用プログラム | |
JP5136234B2 (ja) | 復号プログラム、復号装置、復号方法、及び暗号システム | |
JPH1155244A (ja) | 鍵回復方法および装置 | |
JP2009271884A (ja) | 情報処理装置及び情報処理プログラム | |
JP2005275694A (ja) | プログラムを内部解析から保護する方法および保護システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100527 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100527 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20110720 |