JP2018010237A - 暗号化装置、復号装置、暗号化方法、コンピュータプログラム、データ構造、および記憶媒体 - Google Patents

暗号化装置、復号装置、暗号化方法、コンピュータプログラム、データ構造、および記憶媒体 Download PDF

Info

Publication number
JP2018010237A
JP2018010237A JP2016140471A JP2016140471A JP2018010237A JP 2018010237 A JP2018010237 A JP 2018010237A JP 2016140471 A JP2016140471 A JP 2016140471A JP 2016140471 A JP2016140471 A JP 2016140471A JP 2018010237 A JP2018010237 A JP 2018010237A
Authority
JP
Japan
Prior art keywords
block
plaintext
encryption
exclusive
cipher
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
JP2016140471A
Other languages
English (en)
Other versions
JP6729119B2 (ja
Inventor
敏伸 山口
Toshinobu Yamaguchi
敏伸 山口
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.)
Konica Minolta Inc
Original Assignee
Konica Minolta Inc
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 Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2016140471A priority Critical patent/JP6729119B2/ja
Publication of JP2018010237A publication Critical patent/JP2018010237A/ja
Application granted granted Critical
Publication of JP6729119B2 publication Critical patent/JP6729119B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】ECBモードの欠点を解消しつつ、初期化ベクトルを付加することなく平文を暗号化する。【解決手段】平文データ5Aを所定のサイズの複数の平文ブロックLaに分割し、平文ブロックLa_1からLa_(n−1)までのハッシュ値Haを算出し、平文ブロックLa_nを暗号化したLc_nを、ハッシュ値Haを用いて生成し(#703、#704)、La_1ないしLa_(n−1)をそれぞれ暗号化した暗号ブロックLc_1ないしLc_(n−1)を、1つ前に生成された暗号ブロックLcを用いて生成する(#705、#706、…、#71y)。【選択図】図5

Description

本発明は、ブロック暗号の技術に関する。
従来、ブロック暗号の技術が普及している。この技術は、平文のデータを所定のサイズのブロック(平文ブロック)に分割し、ブロックごとに暗号化するものである(非特許文献1)。また、ブロック暗号のモード(暗号利用モード)として、次のようなモードが提案されている。
ECB(Electronic Codebook)モードは、各平文ブロックを、他のいずれの平文ブロックにも関連させることなく暗号化するモードである。つまり、各平文ブロックを独立的に暗号化するモードである。
しかし、ECBモードによると、すべての平文ブロックに共通の暗号鍵を用いて暗号化すると、次のような欠点が生じる。
ECBモードで複数の暗号化されたブロック(暗号ブロック)のうちの特定の暗号ブロックに対応する平文が分かると、この暗号ブロックに一致する他の暗号ブロックも解読されたことになる。この性質を用いて暗号を解読する方法は、「暗号文一致攻撃」と呼ばれる。
また、暗号ブロックの順番を入れ換えても復号することができる。よって、例えば、銀行の送金の処理の暗号データの中の送金先の口座番号の暗号ブロックと送金元の口座番号の暗号ブロックとを入れ換えても、銀行において送金の処理が行われ得る。すると、本来の目的に反する処理がなされてしまう。この性質を用いて不正を行う方法は、「暗号文改ざん攻撃」と呼ばれる。
また、ECBモードで暗号化すると、データに何らかのパターンが残留してしまうことがある。例えば、ビットマップの画像を暗号化すると、同一のパターンを表わす複数の平文ブロックは、ともに、同一の暗号ブロックになる。よって、暗号化しても、画像の輪郭などが残留してしまう。
ECBモードの欠点を解消するための暗号利用モードとして、CBC(Cipher Block Chaining)モードが提案され、普及している。
CBCモードは、平文ブロックと1つ前の暗号ブロックとの排他的論理和(exclusive OR)を算出し、この排他的論理和を暗号化することによって、この平文ブロックの暗号ブロックを生成する。ただし、最初の平文ブロックには、1つ前の暗号ブロックが存在しないので、その代わりに初期化ベクトルが用いられる。初期化ベクトルは、ランダムな値である。
http://www.techscore.com/tech/Java/JavaSE/JCE/5/
CBCモードによると、ECBモードの欠点を解消することができる。しかし、暗号されたデータに初期化ベクトルを付加しなければならない。よって、ECBモードで暗号化した場合よりも、データのサイズが大きくなってしまう。
本発明は、このような問題点に鑑み、ECBモードの欠点を解消しつつ、初期化ベクトルを付加することなく平文を暗号化することを、目的とする。
本発明の一形態に係る暗号化装置は、所定のサイズの平文のブロックであるn個の平文ブロックのそれぞれを暗号化する暗号化装置であって、前記n個の平文ブロックのうちの1番目ないし(n−1)番目の平文ブロックのすべてまたは一部を用いて所定の方法によってハッシュ値を算出するハッシュ値算出手段と、前記n個の平文ブロックのうちのn番目の平文ブロックに対応するn番目の暗号ブロックを、前記ハッシュ値を用いて生成する、第一の暗号化手段と、前記1番目ないし(n−1)番目の平文ブロックのうちの1番目の平文ブロックに対応する1番目の暗号ブロックを、前記n番目の暗号ブロックを用いて生成し、p(ただし、2≦p≦(n−1))番目の平文ブロックに対応するp番目の暗号ブロックを、(p−1)番目の暗号ブロックを用いて生成する、第二の暗号化手段と、を有する。
さらに、前記1番目の暗号ブロックから、前記n番目の暗号ブロックを用いて前記1番目の平文ブロックを生成し、前記p番目の暗号ブロックから、前記(p−1)番目の暗号ブロックを用いて前記p番目の平文ブロックを生成する、第一の復号手段と、前記第一の復号手段によって得られた前記1番目ないし(n−1)番目の平文ブロックのすべてまたは一部を用いて前記所定の方法によって前記ハッシュ値を算出する第二のハッシュ値算出手段と、前記n番目の暗号ブロックから、前記第二のハッシュ値算出手段によって生成された前記ハッシュ値を用いて前記n番目の平文ブロックを生成する、第二の復号手段と、を有してもよい。
好ましくは、前記第一の暗号化手段は、前記n番目の平文ブロックと前記ハッシュ値との排他的論理和を算出し、当該排他的論理和を暗号化することによって、前記n番目の暗号ブロックを生成し、前記第二の暗号化手段は、前記1番目の平文ブロックと前記n番目の暗号ブロックとの排他的論理和を算出し、当該排他的論理和を暗号化することによって、前記1番目の暗号ブロックを生成し、前記p番目の平文ブロックと前記(p−1)番目の暗号ブロックとの排他的論理和を算出し、当該排他的論理和のそれぞれを暗号化することによって、前記p番目の暗号ブロックを生成する。
または、前記第一の復号手段は、前記1番目の暗号ブロックを復号して前記n番目の暗号ブロックとの排他的論理和を算出することによって、前記1番目の平文ブロックを生成し、前記p番目の暗号ブロックを復号し前記(p−1)番目の暗号ブロックそれぞれとの排他的論理和を算出することによって、前記p番目の平文ブロックを生成し、前記第二の復号手段は、前記n番目の暗号ブロックを復号し前記ハッシュ値との排他的論理和を算出することによって前記n番目の平文ブロックを生成する。
本発明によると、ECBモードの欠点を解消しつつ、初期化ベクトルを付加することなく平文を暗号化することができる。
機密データ処理装置を含むシステムの全体の構成の例を示す図である。 機密データ処理装置のハードウェア構成の例を示す図である。 機密データ処理装置の機能的構成の例を示す図である。 平文データの分割およびハッシュ値の算出の例を説明するための図である。 平文データの暗号化の処理の例を説明するための図である。 暗号データを復号する処理の例を説明するための図である。 暗号化復号プログラムによる全体的な処理の流れの例を説明するフローチャートである。 暗号化処理の流れの例を説明するフローチャートである。 復号処理の流れの例を説明するフローチャートである。 PCBCモードを変形した暗号化の処理の例を説明するための図である。 PCBCモードを変形した復号の処理の例を説明するための図である。 CFBモードを変形した暗号化の処理の例を説明するための図である。 CFBモードを変形した復号の処理の例を説明するための図である。 OFBモードを変形した暗号化の処理の例を説明するための図である。 OFBモードを変形した復号の処理の例を説明するための図である。 CTRモードを変形した暗号化の処理の例を説明するための図である。 CTRモードを変形した復号の処理の例を説明するための図である。
図1は、機密データ処理装置1を含むシステムの全体の構成の例を示す図である。図2は、機密データ処理装置1のハードウェア構成の例を示す図である。図3は、機密データ処理装置1の機能的構成の例を示す図である。
機密データ処理装置1は、機密にすべきデータを暗号化して出力する。また、暗号化されたデータを復号する。
機密データ処理装置1は、図1に示すように、通信回線3を介して複合機2などと接続される。
機密データ処理装置1として、パーソナルコンピュータまたはいわゆるサーバ機などが用いられる。以下、機密データ処理装置1としてパーソナルコンピュータが用いられる場合を例に説明する。
機密データ処理装置1は、図2に示すように、CPU(Central Processing Unit)10a、RAM(Random Access Memory)10b、ROM(Read Only Memory)10c、補助記憶装置10d、液晶ディスプレイ10e、NIC(Network Interface Card)10f、キーボード10g、およびポインティングデバイス10hなどによって構成される。
液晶ディスプレイ10eは、ユーザに対するメッセージを示す画面、ユーザがコマンドまたは情報を入力するための画面、およびCPU10aが実行した処理の結果を示す画面などを表示する。
NIC10fは、TCP/IPなどのプロトコルによって複合機2などと通信回線3を介して通信を行う。
キーボード10gおよびポインティングデバイス10hは、ユーザがコマンドまたは情報を入力するために用いられる。
ROM10cまたは補助記憶装置10dには、オペレーティングシステムのほか、暗号化復号プログラム10Pが記憶されている。これらのプログラムは、RAM10bにロードされ、CPU10aによって実行される。補助記憶装置10dとして、ハードディスクまたはSSD(Solid State Drive)などが用いられる。
複合機2は、コピー、ネットワークプリント、ファックス、およびスキャンなどの機能を集約した装置である。「MFP(Multi Function Peripherals)」または「画像形成装置」などと呼ばれることがある。
暗号化復号プログラム10Pによると、データを暗号化したり暗号化されたデータを復号したりすることができる。特に、初期化ベクトルを付加することなくECB(Electronic Codebook)モードよりも機密性の高い暗号化を実現することができる。以下、この仕組みについて説明する。初期化ベクトルは、「IV(initialization vector)」と呼ばれることがある。
暗号化復号プログラム10Pによると、図3に示す平文データ分割部101、第一のハッシュ値演算部102、第一の排他的論理和演算部103、第一の暗号化処理部104、第二の排他的論理和演算部105、第二の暗号化処理部106、暗号ブロック結合部107、印刷処理部108、暗号データ分割部121、第一の復号処理部122、第三の排他的論理和演算部123、第二のハッシュ値演算部124、第二の復号処理部125、第四の排他的論理和演算部126、および平文ブロック結合部127などの機能が実現される。以下、図3に示す各部の処理を、暗号化の処理および復号の処理に大別して説明する。
〔暗号化〕
図4は、平文データ5Aの分割およびハッシュ値Haの算出の例を説明するための図である。図5は、平文データ5Aの暗号化の処理の例を説明するための図である。
ユーザは、暗号化する対象のデータを機密データ処理装置1に用意する。このデータは、平文のデータである。以下、このデータを「平文データ5A」と記載する。
例えば、平文データ5Aとして、契約書などのドキュメントのハッシュ値および契約者のサインの画像のデータを用意する。
そして、ユーザは、暗号化復号プログラム10Pを機密データ処理装置1に起動させ、平文データ5Aを指定する。
すると、平文データ分割部101ないし暗号ブロック結合部107は、図4および図5に示す手順で処理を実行する。
平文データ分割部101は、平文データ5Aを所定のサイズ(例えば、256バイト)
の平文ブロックLaに分割する(図4の#701)。平文ブロックLaは、ビット列のデータとして取り扱われる。
以下、平文データ分割部101によって平文データ5Aがn個の平文ブロックLaに分割された場合を例に説明する。1番目の平文ブロックLa、2番目の平文ブロックLa、…、n番目の平文ブロックLaをそれぞれ「平文ブロックLa_1」、「平文ブロックLa_2」、…、「平文ブロックLa_n」と区別して記載することがある。
第一のハッシュ値演算部102は、1番目から(n−1)番目までのそれぞれの平文ブロックLa_の排他的論理和を、平文データ5Aの、平文ブロックLa_nを除いた部分のハッシュ値Haとして算出する(#702)。すなわち、次の(1)式によってハッシュ値Haを算出する。ハッシュ値Haのサイズは、平文ブロックLaのサイズに等しい。
Ha=La_1 xor La_2 xor … xor La_(n−1) (1)
第一の排他的論理和演算部103は、n番目の平文ブロックLaとハッシュ値Haとの排他的論理和Lb_nを算出する(図5の#703)。
第一の暗号化処理部104は、第一の排他的論理和演算部103によって算出された排他的論理和Lb_nを公開鍵暗号方式で暗号化することによって、n番目の暗号ブロックLcを生成する(#704)。暗号ブロックLcのサイズは、平文ブロックLaのサイズに等しい。この際に、暗号鍵として、1対の公開鍵5Pおよび秘密鍵5Qのうちの一方が用いられる。以下、公開鍵5Pが用いられる場合を例に説明する。
第二の排他的論理和演算部105および第二の暗号化処理部106は、1番目から(n−1)番目までのそれぞれの暗号ブロックLcを生成する(#705、#706、…)。
ここで、k番目の暗号ブロックLcを生成する場合の、第二の排他的論理和演算部105および第二の暗号化処理部106の処理を説明する。
第二の排他的論理和演算部105は、k番目の排他的論理和Lb(つまり、排他的論理和Lb_k)として、k番目の平文ブロックLaと(k−1)番目の暗号ブロックLcとの排他的論理和を算出する。ただし、k=1の場合は、1番目の平文ブロックLaとn番目の暗号ブロックLcとの排他的論理和を算出する。
第二の暗号化処理部106は、第二の排他的論理和演算部105によって算出されたk番目の排他的論理和(すなわち、排他的論理和Lb_k)を公開鍵暗号方式で暗号化することによって、k番目の暗号ブロックLcを生成する。この際に、第一の暗号化処理部104で用いられた暗号鍵が用いられる。つまり、本実施形態では、公開鍵5Pが用いられる。
以上の処理によって、1番目からn番目までのそれぞれの暗号ブロックLcが得られる。以下、1番目、2番目、…、n番目それぞれの暗号ブロックLcを「暗号ブロックLc_1」、「暗号ブロックLc_2」、…、「暗号ブロックLc_n」と区別して記載することがある。
具体的には、第二の排他的論理和演算部105は、平文ブロックLa_1と暗号ブロックLc_nとの排他的論理和を算出することによって、排他的論理和Lb_1を算出する(#705)。そして、第二の暗号化処理部106は、排他的論理和Lb_1を公開鍵暗号方式で暗号化することによって、暗号ブロックLc_1を生成する(#706)。
同様に、平文ブロックLa_2および暗号ブロックLc_1から排他的論理和Lb_2が算出され(#707)、排他的論理和Lb_2を公開鍵暗号方式で暗号化することによって暗号ブロックLc_2が生成される(#708)。平文ブロックLa_3および暗号ブロックLc_2から排他的論理和Lb_3が算出され(#709)、排他的論理和Lb_3を公開鍵暗号方式で暗号化することによって暗号ブロックLc_3が生成される(#710)。以下、同様に処理が行われる。
そして、最後に、平文ブロックLa_(n−1)および暗号ブロックLc(n−2)から排他的論理和Lb_(n−1)が算出され(#71x)、排他的論理和Lb_(n−1)を公開鍵暗号方式で暗号化することによって暗号ブロックLc_(n−1)が生成される(#71y)。
暗号ブロック結合部107は、1番目からn番目までのそれぞれの暗号ブロックLc(Lc_1、Lc_2、…、Lc_n)を1つのデータに結合することによって、暗号データ5Bを生成する。
暗号データ5Bは、ユーザが指定した記録媒体またはフォルダなどに保存されまたはユーザが指定した装置へ送信される。印刷処理部108によって次のように使用される。
印刷処理部108は、暗号データ5Bを表わす二次元バーコードを生成し、二次元バーコードを印刷するための印刷データ5Dを生成する。そして、二次元バーコードを印刷するように複合機2へ指令する。この際に、印刷データ5Dを複合機2へ送信する。印刷データ5Dは、複合機2に対応したPDL(Page Description Language)で記述すればよい。
複合機2は、指令および印刷データ5Dを機密データ処理装置1から受信すると、これらに基づいて二次元バーコードを用紙に印刷する。
〔復号〕
図6は、暗号データ5Bを復号する処理の例を説明するための図である。
次に、暗号データ5Bを復号する際の機密データ処理装置1の各部の処理およびユーザの操作を、図6を参照しながら説明する。
ユーザは、暗号化復号プログラム10Pを予め起動しておく。そして、復号する対象のデータとして暗号データ5Bを指定する。
または、ユーザは、二次元バーコードが印刷された用紙を複合機2にセットし、二次元バーコードを複合機2に読み取らせる。複合機2から機密データ処理装置1へ二次元バーコードの画像データを送信させる。そして、二次元バーコードを機密データ処理装置1に解析させることによって、暗号データ5Bを機密データ処理装置1に用意する。二次元バーコードの解析は、複合機2に行わせてもよい。
すると、暗号データ分割部121は、暗号データ5Bを所定のサイズ(例えば、256バイト)に分割する。これにより、暗号データ5Bが複数の暗号ブロックLdに分割される。
暗号ブロックLdは、平文ブロックLa、排他的論理和Lb、および暗号ブロックLcと同様に、ビット列のデータとして取り扱われる。
暗号データ5Bが改ざんされていなければ、暗号データ5Bを分割することによって、n個の暗号ブロックLdが得られる。以下、1番目、2番目、…、n番目のそれぞれの暗号ブロックLdを「暗号ブロックLd_1」、「暗号ブロックLd_2」、…、「暗号ブロックLd_n」と区別して記載することがある。
また、暗号データ5Bが改ざんされていなければ、暗号ブロックLd_1、Ld_2、…、Ld_nは、それぞれ、暗号ブロックLc_1、Lc_2、…、Lc_nと一致する。
第一の復号処理部122および第三の排他的論理和演算部123は、1番目から(n−1)番目までのそれぞれの平文ブロックLfを次のように生成する。
ここで、j番目の平文ブロックLfを生成する場合の、第一の復号処理部122および第三の排他的論理和演算部123の処理を説明する。
第一の復号処理部122は、j番目の暗号ブロックLdを公開鍵暗号方式によって復号する。この際に、公開鍵5Pおよび秘密鍵5Qのうち、第一の暗号化処理部104によって暗号鍵として使用された鍵とは異なるほうが復号鍵として用いられる。したがって、本実施形態では、暗号ブロックLdを復号するために秘密鍵5Qが用いられる。
以下、暗号ブロックLdを復号することによって得られた平文のブロックを「平文ブロックLe」と記載する。また、1番目、2番目、…、n番目の平文ブロックLeをそれぞれ「平文ブロックLe_1」、「平文ブロックLe_2」、…、「平文ブロックLe_n」と区別して記載することがある。
第三の排他的論理和演算部123は、j番目の平文ブロックLe(つまり、平文ブロックLe_j)と(j−1)番目の暗号ブロックLd(つまり、暗号ブロックLd_(j−1))との排他的論理和を算出する。この排他的論理和が、j番目の平文ブロックLfである。ただし、j=1の場合は、1番目の平文ブロックLeとn番目の暗号ブロックLdとの排他的論理和を算出する。
以下、1番目、2番目、…、n番目の平文ブロックLfをそれぞれ「平文ブロックLf_1」、「平文ブロックLf_2」、…、「平文ブロックLf_n」と区別して記載することがある。
具体的には、まず、第一の復号処理部122は、暗号ブロックLd_2を復号する(図6の#721)。これにより、平文ブロックLe_2が生成される。第三の排他的論理和演算部123は、平文ブロックLe_1と暗号ブロックLd_nとの排他的論理和を平文ブロックLf_1として算出する(#722)。
さらに、第一の復号処理部122は、暗号ブロックLd_2を復号することによって、平文ブロックLe_2を生成する(#723)。第三の排他的論理和演算部123は、平文ブロックLe_2と暗号ブロックLd_1との排他的論理和を平文ブロックLf_2として算出する(#724)。
以下、同様に、適宜、各ブロックが1つずつシフトしながら、暗号ブロックLd_jが復号されて平文ブロックLe_jが生成され、平文ブロックLe_jと暗号ブロックLd_(j−1)との排他的論理和が平文ブロックLf_jとして算出される。
そして、最後に、暗号ブロックLd_nが復号されて平文ブロックLe_(n−1)が生成され(#72x)、平文ブロックLe_(n−1)と暗号ブロックLd_(n−2)との排他的論理和が平文ブロックLf_(n−1)として算出される(#72y)。
なお、暗号データ5Bが改ざんされていなければ、平文ブロックLf_1、Lf_2、…、Lf_(n−1)は、それぞれ、図5に示した平文ブロックLa_1、La_2、…、La_(n−1)と一致する。
第二のハッシュ値演算部124は、第三の排他的論理和演算部123によって算出された1番目から(n−1)番目までのそれぞれの平文ブロックLf(Lf_1、Lf_2、…、Lf_(n−1))の排他的論理和を、ハッシュ値Hbとして算出する(#731)。
暗号データ5Bが改ざんされていなければ、ハッシュ値Hbは、ハッシュ値Haと一致する。
第二の復号処理部125は、ステップ#731の処理と並行してまたは前後して、第一の復号処理部122で用いられた復号鍵(本実施形態では、秘密鍵5Q)を用いて公開鍵暗号方式によって暗号ブロックLd_nを復号する(#732)。これにより、平文ブロックLe_nが生成される。
第四の排他的論理和演算部126は、第二のハッシュ値演算部124によって得られたハッシュ値Hbと第二の復号処理部125によって得られた平文ブロックLe_nとの排他的論理和を、平文ブロックLf_nとして算出する(#733)。
暗号データ5Bが改ざんされていなければ、平文ブロックLf_nは、平文ブロックLa_nと一致する。
そして、平文ブロック結合部127は、1番目からn番目までの平文ブロックLf(Lf_1、Lf_2、…、Lf_n)を1つのデータに結合することによって、平文データ5Cを生成する。
以上の処理によって、暗号データ5Bが復号される。暗号データ5Bが改ざんされていなければ、平文データ5Cは、平文データ5Aと一致する。
平文データ5Cは、ユーザが指定したフォルダに保存されまたはユーザが指定した装置へ送信される。
図7は、暗号化復号プログラム10Pによる全体的な処理の流れの例を説明するフローチャートである。図8は、暗号化処理の流れの例を説明するフローチャートである。図9は、復号処理の流れの例を説明するフローチャートである。
次に、図7〜図9のフローチャートを参照しながら、機密データ処理装置1の全体的な処理の流れを説明する。
機密データ処理装置1は、図7に示す処理を暗号化復号プログラム10Pに基づいて実行する。
機密データ処理装置1は、暗号化する対象のデータとして平文データ5Aが指定されると(図7の#11)、平文データ5Aを取得し(#12)、平文データ5Aを暗号化する処理を実行する(#13)。暗号化の処理の手順は、図8に示す通りである。
図8において、機密データ処理装置1は、平文データ5Aを所定のサイズの複数の平文ブロックLaに分割する(#741)。以下、n個の平文ブロックLa(La_1、La_2、…、La_n)に分割された場合を例に説明する。最後の平文ブロックLaを除く平文ブロックLa(つまり、平文ブロックLa_1〜La_(n−1))のハッシュ値Haを生成する(#742)。
機密データ処理装置1は、ハッシュ値Haと平文ブロックLa_nとの排他的論理和Lb_nを算出し(#743)、排他的論理和Lb_nを公開鍵5Pで暗号化することによって暗号ブロックLc_nを生成する(#744)。
さらに、機密データ処理装置1は、1番目から(n−1)番目までのそれぞれの暗号ブロックLc(Lc_1〜Lc_(n−1))を次のように生成する(#746〜#749)。
機密データ処理装置1は、平文ブロックLa_kと暗号ブロックLc_(k−1)の排他的論理和Lc_kを算出する(#746)。ただし、k=1、の場合は、暗号ブロックLc_nが用いられる。そして、排他的論理和Lc_kを公開鍵5Pで暗号化することによって暗号ブロックLd_kを生成する(#747)。kは、2、3、…、(n−1)と、1ずつインクリメントされる。
暗号ブロックLc_1〜Lc_nが生成されたら、機密データ処理装置1は、これらを結合することによって暗号データ5Bを生成する(#750)。
このように#741〜#750の処理によって、平文データ5Aが暗号化され、暗号データ5Bが得られる。
図7に戻って、機密データ処理装置1は、暗号データ5Bを、ユーザが指定したフォルダに保存し、ユーザが指定した装置へ送信し、または、暗号データ5Bを表わす二次元バーコードを生成し、複合機2に印刷させる(#14)。
または、機密データ処理装置1は、復号する対象として暗号データ5Bが指定されると(#15でYes)、暗号データ5Bを取得し(#16)、暗号データ5Bを復号する処理を実行する(#17)。復号の処理の手順は、図9に示す通りである。
図9において、機密データ処理装置1は、暗号データ5Bを所定のサイズの複数の暗号ブロックLdに分割する(#761)。以下、n個の暗号ブロックLd(Ld_1〜Ld_n)に分割された場合を例に説明する。
機密データ処理装置1は、1番目から(n−1)番目までの平文ブロックLf(Lf_1〜Lf_(n−1))を次のように生成する(#762〜#766)。
機密データ処理装置1は、暗号ブロックLd_jを秘密鍵5Qで復号することによって平文ブロックLe_jを生成し(#763)、平文ブロックLe_jと暗号ブロックLd_(j−1)との排他的論理和を平文ブロックLf_jとして算出する(#764)。ただし、j=1、の場合は、暗号ブロックLd_nが用いられる。jは、1、2、…、(n−1)と、1つずつインクリメントされる。
さらに、機密データ処理装置1は、平文ブロックLf_1〜Lf_(n−1)のハッシュ値Hbを算出するとともに(#767)、暗号ブロックLd_nを秘密鍵5Qで復号することによって平文ブロックLe_nを生成する(#768)。
そして、機密データ処理装置1は、ハッシュ値Hbと暗号ブロックLe_nとの排他的論理和を平文ブロックLf_nとして算出する(#769)。
平文ブロックLf_1〜Lf_nが生成されたら、機密データ処理装置1は、これらを結合することによって平文データ5Cを生成する(#770)。
図7に戻って、機密データ処理装置1は、平文データ5Cを、ユーザが指定したフォルダに保存し、または、ユーザが指定した装置へ送信する(#18)。
本実施形態によると、ECBモードの欠点を解消しつつ、初期化ベクトルを付加することなく平文データ5Aを暗号化することができる。これにより、ECBモードの欠点を解消する従来の暗号利用モードよりも、暗号データ5Bのサイズを小さくすることができる。
よって、暗号データ5Bを表わす二次元バーコードのサイズを、従来の暗号利用モードよりも小さくすることができる。
図10は、PCBCモードを変形した暗号化の処理の例を説明するための図である。図11は、PCBCモードを変形した復号の処理の例を説明するための図である。図12は、CFBモードを変形した暗号化の処理の例を説明するための図である。図13は、CFBモードを変形した復号の処理の例を説明するための図である。図14は、OFBモードを変形した暗号化の処理の例を説明するための図である。図15は、OFBモードを変形した復号の処理の例を説明するための図である。図16は、CTRモードを変形した暗号化の処理の例を説明するための図である。図17は、CTRモードを変形した復号の処理の例を説明するための図である。
本実施形態では、機密データ処理装置1は、ハッシュ値Haおよびハッシュ値Hbを(n−1)個のブロックの排他的論理和を算出することによって生成したが、他の方法によって生成してもよい。例えば、SHA−3(Secure Hashing Algorithm 3)のSHAKE256によって算出してもよい。または、(n−1)個未満の特定のブロックの排他的論理和を算出することによって生成してもよい。または、特定のブロック(平文ブロックLa)をハッシュ値Haとして使用し、特定のブロック(その平文ブロックLaに対応する平文ブロックLf)をハッシュ値Hbとして使用してもよい。
本実施形態では、機密データ処理装置1は、CBC(Cipher Block Chaining)モードを次のように変形して、暗号化および復号を行った。
(A1) 暗号化の際に、CBCモードでは、平文ブロックLa_nと暗号ブロックLc_(n−1))との排他的論理和を算出する。しかし、本実施形態では、図5のステップ#703〜#704に示した通り、暗号ブロックLc_(n−1)の代わりにハッシュ値Haを用いて排他的論理和を算出する。
(A2) 暗号化の際に、CBCモードでは、初期化ベクトルを用意し、平文ブロックLa_1と初期化ベクトルとの排他的論理和を算出する。しかし、本実施形態では、ステップ#705に示した通り、初期化ベクトルの代わりに暗号ブロックLc_nを用いて排他的論理和を算出する。
(A3) 復号の際に、CBCモードでは、暗号ブロックLd_1と暗号データに含まれる初期化ベクトルとの排他的論理和を算出する。しかし、本実施形態では、初期化ベクトルの代わりに暗号ブロックLd_nを用いて排他的論理和を算出する。
(A4) 復号の際に、CBCモードでは、暗号ブロックLd_nを復号したもの(つまり、平文ブロックLe_n)と暗号ブロックLd_(n−1)との排他的論理和を算出する。しかし、本実施形態では、暗号ブロックLd_(n−1)の代わりにハッシュ値Hbを用いて排他的論理和を算出する。
上記の(A1)〜(A4)は、CBCモード以外の暗号利用モードを変形する際にも適用することができる。
例えば、PCBC(Propagating Cipher Block Chaining)モードを変形し、図10に示すように暗号化を行い、図11に示すように復号を行ってもよい。
つまり、第一の排他的論理和演算部103および第一の暗号化処理部104の代わりに、第一の暗号化処理部は、図10に示すように、平文ブロックLa_nとハッシュ値Haとの排他的論理和を算出し、この排他的論理和を暗号化することによって、暗号ブロックLc’_nを生成する。
さらに、第二の排他的論理和演算部105および第二の暗号化処理部106の代わりに、第二の暗号化処理部は、平文ブロックLa_1と暗号ブロックLc’_nとの排他的論理和を算出し、この排他的論理和を暗号化することによって、1番目の暗号ブロックLc’_1を生成する。平文ブロックLa_(p−1)と暗号ブロックLc’_(p−1)との第一の排他的論理を算出し、この第一の排他的論理和と平文ブロックLa_pとの第二の排他的論理和を算出し、この第二の排他的論理和を暗号化することによって、暗号ブロックLc’_pを生成する。ただし、2≦p≦(n−1)、である。以下、同様である。
そして、暗号ブロックLc'_1、Lc'_2、…、Lc'_nを結合することによって、暗号データが生成される。図12、図14、および図16においても、同様である。
第一の復号処理部122および第三の排他的論理和演算部123の代わりに、第一の復号処理部は、図11に示すように、暗号ブロックLd’_1を復号して暗号ブロックLd’_nとの排他的論理和を算出することによって、平文ブロックLf_1を生成する。暗号ブロックLd’_(p−1)と平文ブロックLf_(p−1)との第一の排他的論理和を算出し、この第一の排他的論理和と暗号ブロックLd’_pを復号したものとの第二の排他的論理和を算出することによって、平文ブロックLf_pを生成する。
さらに、第二の復号処理部125および第四の排他的論理和演算部126の代わりに第二の復号処理部は、暗号ブロックLd’_nを復号しハッシュ値Hbとの排他的論理和を算出することによって平文ブロックLf_nを生成する。
暗号データが改ざんされていなければ、暗号ブロックLd’_1、Ld’_2、…、Ld'_nは、それぞれ、暗号ブロックLc’_1、Lc’_2、…、Lc'_nと一致する。そして、平文ブロックLa_1、La_2、…、La_nは、それぞれ、平文ブロックLf_1、Lf_2、…、Lf_nと一致する。図12〜図17においても、同様である。
または、CFB(Cipher Feedback)モードを変形し、図12に示すように暗号化を行い、図13に示すように復号を行ってもよい。
第一の暗号化処理部は、図12に示すように、ハッシュ値Haを暗号化して平文ブロックLa_nとの排他的論理和を算出することによって、暗号ブロックLc’_nを生成する。
第二の暗号化処理部は、暗号ブロックLc’_nを暗号化して平文ブロックLa_1との排他的論理和を算出することによって暗号ブロックLc’_1を生成し、暗号ブロックLc’_(p−1)を暗号化して平文ブロックLa_pとの排他的論理和を算出することによって、暗号ブロックLc’_pを生成する。
第一の復号処理部は、図13に示すように、暗号ブロックLd’_nを復号して暗号ブロックLd’_1との排他的論理和を算出することによって、平文ブロックLf_1を生成し、暗号ブロックLd’_(p−1)を復号して暗号ブロックLd’_pとの排他的論理和を算出することによって、平文ブロックLf_pを生成する。
第二の復号処理部は、ハッシュ値Hbを復号し暗号ブロックLd’_nとの排他的論理和を算出することによって平文ブロックLf_nを生成する、
または、OFB(Output Feedback)モードを変形し、図14に示すように暗号化を行い、図15に示すように復号を行ってもよい。
第一の暗号化処理部は、図14に示すように、ハッシュ値Haを暗号化して平文ブロックLa_nとの排他的論理和を算出することによって、暗号ブロックLc’_nを生成する。
第二の暗号化処理部は、暗号ブロックLc’_nを暗号化して平文ブロックLa_1との排他的論理和を算出することによって暗号ブロックLc’_1を生成し、暗号ブロックLc’_nをp回暗号化したものと平文ブロックLa_pとの排他的論理和を算出することによって、暗号ブロックLc’_pを生成する。
第一の復号処理部は、図15に示すように、暗号ブロックLd’_nを復号して暗号ブロックLd’_1との排他的論理和を算出することによって平文ブロックLf_1を生成する。暗号ブロックLd’_nをp回復号したものと暗号ブロックLd’_pとの排他的論理和を算出することによって、平文ブロックLf_pを生成する。
第二の復号処理部は、ハッシュ値Hbを復号し暗号ブロックLd’_nとの排他的論理和を算出することによって平文ブロックLf_nを生成する。
または、CTR(Counter)モードを、Nonceを使用することなく暗号化および復号を行えるように次のように変形してもよい。
(B1) 暗号化の際に、CTRモードでは、Nonceと平文ブロックLa_nに対応するカウンタCr_nとを組み合わせることによって、カウンタブロックCk_nを生成する。以下、排他的論理和を算出することによって両者を組み合わせる場合を例に説明する。しかし、機密データ処理装置1は、図16に示すように、NONCEの代わりにハッシュ値Haを用いてカウンタブロックCk_nを生成する。
(B2) 暗号化の際に、CTRモードでは、1〜(n−1)番目のカウンタブロックCk(つまり、カウンタブロックCk_1〜Ck_(n−1))を、Nonceと1〜(n−1)番目それぞれのカウンタCr(つまり、カウンタCr_1〜Cr_(n−1))とを組み合わせることによって、生成する。しかし、機密データ処理装置1は、図16に示すように、Nonceの代わりに暗号ブロックLc’_nを用いて生成する。
(B3) 復号の際に、B2同様に、CTRモードでは、カウンタブロックCk_1〜Ck_(n−1)を、NonceとカウンタCr_1〜Cr_(n−1)とを組み合わせることによって、生成する。しかし、機密データ処理装置1は、図17に示すように、Nonceの代わりに暗号ブロックLd’_nを用いて生成する。
(B4) 復号の際に、CTRモードでは、Nonceと平文ブロックLf_nに対応するカウンタCr_nとを組み合わせることによって、カウンタブロックCk_nを生成する。しかし、機密データ処理装置1は、Nonceの代わりにハッシュ値Hbを組み合わせることによって生成する。
つまり、第一の暗号化処理部は、図16に示すように、カウンタCr_nとハッシュ値Haとの排他的論理和を算出することによって、カウンタブロックCk_nを生成する。カウンタブロックCk_nを暗号化して平文ブロックLa_nとの排他的論理和を算出することによって、暗号ブロックLc’_nを生成する。
第二の暗号化処理部は、カウンタCr_mと暗号ブロックLc’_nとの排他的論理和を算出することによってカウンタブロックCk_mを生成し、カウンタブロックCk_mをを暗号化して平文ブロックLa_mとの排他的論理和を算出することによって、暗号ブロックLc’_mを生成する。ただし、1≦m≦(n−1)、である。
第一の復号処理部は、図17に示すように、カウンタCr_mと暗号ブロックLd’_mとの排他的論理和を算出することによってカウンタブロックCk_mを生成し、カウンタブロックCk_mを復号して暗号ブロックLd’_mとの排他的論理和を算出することによって、平文ブロックLf_mを生成する。
第二の復号処理部は、カウンタCr_nとハッシュ値Hbとの排他的論理和を算出することによってカウンタブロックCk_nを生成し、カウンタブロックCk_nを復号して暗号ブロックLd’_nとの排他的論理和を算出することによって、平文ブロックLf_nを生成する。
本実施形態では、暗号化の処理および復号の処理を、暗号化復号プログラム10PをCPU10aで実行することによって実現したが、ASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)などの回路によって実現してもよい。
本実施形態では、公開鍵暗号方式によって暗号化および復号を行ったが、共通鍵暗号方式によって暗号化および復号を行ってもよい。
本実施形態では、平文データ5Aとして、契約書などのドキュメントのハッシュ値および契約者のサインの画像のデータを用いたが、他のデータを用いてもよい。例えば、契約書などのドキュメントのハッシュ値および契約者の印鑑(印影)のデータを用いてもよい。または、機密資料のデータを用いてもよい。
その他、機密データ処理装置1の全体または各部の構成、処理の内容、処理の順序などは、本発明の趣旨に沿って適宜変更することができる。
1 機密データ処理装置(暗号化装置、復号装置)
101 平文データ分割部(分割手段)
102 第一のハッシュ値演算部(ハッシュ値算出手段)
103 第一の排他的論理和演算部(第一の暗号化手段)
104 第一の暗号化処理部(第一の暗号化手段)
105 第二の排他的論理和演算部(第二の暗号化手段)
106 第二の暗号化処理部(第二の暗号化手段)
108 印刷処理部(印刷処理手段)
121 暗号データ分割部(分割手段)
122 第一の復号処理部(第一の復号手段)
123 第三の排他的論理和演算部(第一の復号手段)
124 第二のハッシュ値演算部(第二のハッシュ値算出手段)
125 第二の復号処理部(第二の復号手段)
126 第四の排他的論理和演算部(第二の復号手段)
2 複合機(印刷装置)
5A 平文データ
5C 平文データ
5P 公開鍵(第一の鍵)
5Q 秘密鍵(第二の鍵)
La 平文ブロック
Lb 排他的論理和
Lc 暗号ブロック
Ld 暗号ブロック
Lf 平文ブロック
Ha ハッシュ値
Hb ハッシュ値

Claims (28)

  1. 所定のサイズの平文のブロックであるn個の平文ブロックのそれぞれを暗号化する暗号化装置であって、
    前記n個の平文ブロックのうちの1番目ないし(n−1)番目の平文ブロックのすべてまたは一部を用いて所定の方法によってハッシュ値を算出するハッシュ値算出手段と、
    前記n個の平文ブロックのうちのn番目の平文ブロックに対応するn番目の暗号ブロックを、前記ハッシュ値を用いて生成する、第一の暗号化手段と、
    前記1番目ないし(n−1)番目の平文ブロックのうちの1番目の平文ブロックに対応する1番目の暗号ブロックを、前記n番目の暗号ブロックを用いて生成し、p(ただし、2≦p≦(n−1))番目の平文ブロックに対応するp番目の暗号ブロックを、(p−1)番目の暗号ブロックを用いて生成する、第二の暗号化手段と、
    を有することを特徴とする暗号化装置。
  2. 前記1番目の暗号ブロックから、前記n番目の暗号ブロックを用いて前記1番目の平文ブロックを生成し、前記p番目の暗号ブロックから、前記(p−1)番目の暗号ブロックを用いて前記p番目の平文ブロックを生成する、第一の復号手段と、
    前記第一の復号手段によって得られた前記1番目ないし(n−1)番目の平文ブロックのすべてまたは一部を用いて前記所定の方法によって前記ハッシュ値を算出する第二のハッシュ値算出手段と、
    前記n番目の暗号ブロックから、前記第二のハッシュ値算出手段によって生成された前記ハッシュ値を用いて前記n番目の平文ブロックを生成する、第二の復号手段と、
    を有する、
    請求項1に記載の暗号化装置。
  3. 前記第一の暗号化手段は、前記n番目の平文ブロックと前記ハッシュ値との排他的論理和を算出し、当該排他的論理和を暗号化することによって、前記n番目の暗号ブロックを生成し、
    前記第二の暗号化手段は、前記1番目の平文ブロックと前記n番目の暗号ブロックとの排他的論理和を算出し、当該排他的論理和を暗号化することによって、前記1番目の暗号ブロックを生成し、前記p番目の平文ブロックと前記(p−1)番目の暗号ブロックとの排他的論理和を算出し、当該排他的論理和のそれぞれを暗号化することによって、前記p番目の暗号ブロックを生成する、
    請求項2に記載の暗号化装置。
  4. 前記第一の復号手段は、前記1番目の暗号ブロックを復号して前記n番目の暗号ブロックとの排他的論理和を算出することによって、前記1番目の平文ブロックを生成し、前記p番目の暗号ブロックを復号し前記(p−1)番目の暗号ブロックそれぞれとの排他的論理和を算出することによって、前記p番目の平文ブロックを生成し、
    前記第二の復号手段は、前記n番目の暗号ブロックを復号し前記ハッシュ値との排他的論理和を算出することによって前記n番目の平文ブロックを生成する、
    請求項3に記載の暗号化装置。
  5. 前記第一の暗号化手段は、前記n番目の平文ブロックと前記ハッシュ値との排他的論理和を算出し、当該排他的論理和を暗号化することによって、前記n番目の暗号ブロックを生成し、
    前記第二の暗号化手段は、前記1番目の平文ブロックと前記n番目の暗号ブロックとの排他的論理和を算出し、当該排他的論理和を暗号化することによって、前記1番目の暗号ブロックを生成し、前記(p−1)番目の平文ブロックと前記(p−1)番目の暗号ブロックとの排他的論理を算出し、当該排他的論理和と前記p番目の平文ブロックとの排他的論理和を算出して暗号化することによって、前記p番目の暗号ブロックを生成する、
    請求項2に記載の暗号化装置。
  6. 前記第一の復号手段は、前記1番目の暗号ブロックを復号して前記n番目の暗号ブロックとの排他的論理和を算出することによって、前記1番目の平文ブロックを生成し、前記(p−1)番目の暗号ブロックと前記(p−1)番目の平文ブロックとの第一の排他的論理和を算出し、当該第一の排他的論理和と前記p番目の暗号ブロックを復号したものとの第二の排他的論理和を算出することによって、前記p番目の平文ブロックを生成し、
    前記第二の復号手段は、前記n番目の暗号ブロックを復号し前記ハッシュ値との排他的論理和を算出することによって前記n番目の平文ブロックを生成する、
    請求項5に記載の暗号化装置。
  7. 前記第一の暗号化手段は、前記ハッシュ値を暗号化して前記n番目の平文ブロックとの排他的論理和を算出することによって、前記n番目の暗号ブロックを生成し、
    前記第二の暗号化手段は、前記n番目の暗号ブロックを暗号化して前記1番目の平文ブロックとの排他的論理和を算出することによって前記1番目の暗号ブロックを生成し、前記(p−1)番目の暗号ブロックを暗号化して前記p番目の平文ブロックとの排他的論理和を算出することによって、前記p番目の暗号ブロックを生成する、
    請求項2に記載の暗号化装置。
  8. 前記第一の復号手段は、前記n番目の暗号ブロックを復号して前記1番目の暗号ブロックとの排他的論理和を算出することによって、前記1番目の平文ブロックを生成し、前記(p−1)番目の暗号ブロックを復号して前記p番目の暗号ブロックとの排他的論理和を算出することによって、前記p番目の平文ブロックを生成し、
    前記第二の復号手段は、前記ハッシュ値を復号し前記n番目の暗号ブロックとの排他的論理和を算出することによって前記n番目の平文ブロックを生成する、
    請求項7に記載の暗号化装置。
  9. 前記第一の暗号化手段は、前記ハッシュ値を暗号化して前記n番目の平文ブロックとの排他的論理和を算出することによって、前記n番目の暗号ブロックを生成し、
    前記第二の暗号化手段は、前記n番目の暗号ブロックを暗号化して前記1番目の平文ブロックとの排他的論理和を算出することによって前記1番目の暗号ブロックを生成し、前記n番目の暗号ブロックをp回暗号化したものと前記p番目の平文ブロックとの排他的論理和を算出することによって、前記p番目の暗号ブロックを生成する、
    請求項2に記載の暗号化装置。
  10. 前記第一の復号手段は、前記n番目の暗号ブロックを復号して前記1番目の暗号ブロックとの排他的論理和を算出することによって前記1番目の平文ブロックを生成し、前記n番目の暗号ブロックをp回復号したものと前記p番目の暗号ブロックとの排他的論理和を算出することによって、前記p番目の平文ブロックを生成し、
    前記第二の復号手段は、前記ハッシュ値を復号し前記n番目の暗号ブロックとの排他的論理和を算出することによって前記n番目の平文ブロックを生成する、
    請求項9に記載の暗号化装置。
  11. 前記第一の暗号化手段は、n番目のカウンタと前記ハッシュ値とを用いてn番目のカウンタブロックを生成し、当該n番目のカウンタブロックを暗号化して前記n番目の平文ブロックとの排他的論理和を算出することによって、n番目の暗号ブロックを生成し、
    前記第二の暗号化手段は、m(ただし、1≦m≦(n−1))番目のカウンタと前記n番目の暗号ブロックとを用いてm番目のカウンタブロックを生成し、当該m番目のカウンタブロックを暗号化して前記m番目の平文ブロックとの排他的論理和を算出することによって、前記m番目の暗号ブロックを生成する、
    請求項2に記載の暗号化装置。
  12. 前記第一の復号手段は、前記m番目のカウンタと前記n番目の暗号ブロックとを用いて前記m番目のカウンタブロックを生成し、当該m番目のカウンタブロックを復号して前記m番目の暗号ブロックとの排他的論理和を算出することによって、前記m番目の平文ブロックを生成し、
    前記第二の復号手段は、前記n番目のカウンタと前記ハッシュ値とを用いて前記n番目のカウンタブロックを生成し、当該n番目のカウンタブロックを復号して前記n番目の暗号ブロックとの排他的論理和を算出することによって、前記n番目の平文ブロックを生成する、
    請求項11に記載の暗号化装置。
  13. 前記ハッシュ値算出手段は、前記1番目ないし(n−1)番目の平文ブロックの排他的論理和を算出することによって、前記ハッシュ値を算出する、
    請求項1ないし請求項12のいずれかに記載の暗号化装置。
  14. 前記第二のハッシュ値算出手段は、前記1番目ないし(n−1)番目の平文ブロックの排他的論理和を算出することによって、前記ハッシュ値を算出する、
    請求項2ないし請求項12に記載の暗号化装置。
  15. 前記第一の暗号化手段は、暗号化の際に、公開鍵暗号方式の一対の第一の鍵および第二の鍵のうちのいずれか一方を使用し、
    前記第二の暗号化手段は、暗号化の際に、前記第一の鍵および前記第二の鍵のうちの前記第一の暗号化手段が使用したほうを使用し、
    前記第一の復号手段は、復号の際に、前記第一の鍵および前記第二の鍵のうちの前記第一の暗号化手段が使用していないほうを使用し、
    前記第二の復号手段は、復号の際に、前記第一の鍵および前記第二の鍵のうちの前記第一の暗号化手段が使用していないほうを使用する、
    請求項2ないし請求項12のいずれかに記載の暗号化装置。
  16. 前記第一の暗号化手段によって生成された前記n番目の暗号ブロックおよび前記第二の暗号化手段によって生成された前記p番目の暗号ブロックを表わす二次元コードを用紙に印刷する処理を印刷装置に実行させる印刷処理手段、
    を有する、
    請求項1ないし請求項15のいずれかに記載の暗号化装置。
  17. 前記n個の平文ブロックは、ドキュメントのハッシュ値と本人であることを表わす情報をと示す平文のデータを分割したものである、
    請求項1ないし請求項16のいずれかに記載の暗号化装置。
  18. 前記情報は、サインの画像である、
    請求項17に記載の暗号化装置。
  19. 前記ハッシュ値算出手段、前記第一の暗号化手段、および前記第二の暗号化手段は、RAM(Random Access Memory)にロードされたコンピュータプログラムをCPU(Central Processing Unit)で実行することによって実現される、
    請求項1ないし請求項18のいずれかに記載の暗号化装置。
  20. 前記第一の復号手段、前記第二のハッシュ値算出手段、および前記第二の復号手段は、前記RAMにロードされたコンピュータプログラムを前記CPUで実行することによって実現される、
    請求項2ないし請求項12のいずれかに記載の暗号化装置。
  21. 所定のサイズの暗号化されたブロックであるn個の暗号ブロックのそれぞれを復号する復号装置であって、
    前記n個の暗号ブロックのうちの1番目の暗号ブロックから、n番目の暗号ブロックを用いて1番目の平文ブロックを生成し、p(ただし、2≦p≦(n−1))番目の暗号ブロックから、(p−1)番目の暗号ブロックを用いてp番目の平文ブロックを生成する、第一の復号手段と、
    前記第一の復号手段によって得られた前記1番目ないし(n−1)番目の平文ブロックのすべてまたは一部を用いてハッシュ値を算出するハッシュ値算出手段と、
    前記n番目の暗号ブロックから、前記ハッシュ値を用いてn番目の平文ブロックを生成する、第二の復号手段と、
    を有する、
    ことを特徴とする復号装置。
  22. 前記第一の復号手段、前記ハッシュ値算出手段、および前記第二の復号手段は、RAMにロードされたコンピュータプログラムをCPUで実行することによって実現される、
    請求項21に記載の復号装置。
  23. 所定のサイズの平文のブロックであるn個の平文ブロックのそれぞれを暗号化する暗号化方法、
    前記n個の平文ブロックのうちの1番目ないし(n−1)番目の平文ブロックのすべてまたは一部を用いて所定の方法によってハッシュ値を算出し、
    前記n個の平文ブロックのうちのn番目の平文ブロックに対応するn番目の暗号ブロックを、前記ハッシュ値を用いて生成し、
    前記1番目ないし(n−1)番目の平文ブロックのうちの1番目の平文ブロックに対応する1番目の暗号ブロックを、前記n番目の暗号ブロックを用いて生成し、p(ただし、2≦p≦(n−1))番目の平文ブロックに対応するp番目の暗号ブロックを、(p−1)番目の暗号ブロックを用いて生成する、
    ことを特徴とする暗号化方法。
  24. 所定のサイズの平文のブロックであるn個の平文ブロックのそれぞれを暗号化するコンピュータに用いられるコンピュータプログラムであって、
    前記コンピュータに、
    前記n個の平文ブロックのうちの1番目ないし(n−1)番目の平文ブロックのすべてまたは一部を用いて所定の方法によってハッシュ値を算出する第一の処理を実行させ、
    前記n個の平文ブロックのうちのn番目の平文ブロックに対応するn番目の暗号ブロックを、前記ハッシュ値を用いて生成する第二の処理を実行させ、
    前記1番目ないし(n−1)番目の平文ブロックのうちの1番目の平文ブロックに対応する1番目の暗号ブロックを、前記n番目の暗号ブロックを用いて生成し、p(ただし、2≦p≦(n−1))番目の平文ブロックに対応するp番目の暗号ブロックを、(p−1)番目の暗号ブロックを用いて生成する第三の処理を実行させる、
    ことを特徴とするコンピュータプログラム。
  25. 前記第三の処理によって生成された前記1番目ないしn番目の暗号ブロックを1つのファイルとして記録媒体に記憶させる第四の処理を、前記コンピュータに実行させる、
    請求項24に記載のコンピュータプログラム。
  26. 所定のサイズの平文のn個の平文ブロックのうちの1番目ないし(n−1)番目の平文ブロックのすべてまたは一部に基づくハッシュ値とn番目の平文ブロックとによって生成されたn番目の暗号ブロックと、
    前記n個の平文ブロックのうちの1番目の平文ブロックと前記n番目の暗号ブロック
    とによって生成された1番目の暗号ブロックと、
    前記n個の平文ブロックのうちのp(ただし、2≦p≦(n−1))番目の平文ブロックと(p−1)番目の暗号ブロックとによって生成されたp番目の暗号ブロックと、
    によって構成されることを特徴とするデータ構造。
  27. 請求項1ないし請求項19のいずれかに記載の暗号化装置によって生成された1番目ないしn番目の暗号ブロックによって構成される、
    ことを特徴とするデータ構造。
  28. 請求項26または請求項27に記載のデータ構造のデータが記憶されている、
    ことを特徴とする記憶媒体。
JP2016140471A 2016-07-15 2016-07-15 暗号化装置、復号装置、暗号化方法、コンピュータプログラム、データ構造、および記憶媒体 Active JP6729119B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016140471A JP6729119B2 (ja) 2016-07-15 2016-07-15 暗号化装置、復号装置、暗号化方法、コンピュータプログラム、データ構造、および記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016140471A JP6729119B2 (ja) 2016-07-15 2016-07-15 暗号化装置、復号装置、暗号化方法、コンピュータプログラム、データ構造、および記憶媒体

Publications (2)

Publication Number Publication Date
JP2018010237A true JP2018010237A (ja) 2018-01-18
JP6729119B2 JP6729119B2 (ja) 2020-07-22

Family

ID=60995624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016140471A Active JP6729119B2 (ja) 2016-07-15 2016-07-15 暗号化装置、復号装置、暗号化方法、コンピュータプログラム、データ構造、および記憶媒体

Country Status (1)

Country Link
JP (1) JP6729119B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111325545A (zh) * 2018-12-13 2020-06-23 北京沃东天骏信息技术有限公司 基于区块链的密钥管理方法、装置及设备
CN115277974A (zh) * 2022-08-01 2022-11-01 南京交通职业技术学院 一种基于物联网智慧交通监控视频的管理系统及加密方法
CN117035778A (zh) * 2023-08-28 2023-11-10 北京星汉博纳医药科技有限公司 一种支付信息的处理方法、系统及计算设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07140896A (ja) * 1993-11-19 1995-06-02 Hitachi Ltd ファイル暗号方法及びその装置
JP2004325677A (ja) * 2003-04-23 2004-11-18 Sony Corp 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム
JP2007221747A (ja) * 2006-01-18 2007-08-30 Ricoh Co Ltd 多機能入出力装置および入出力方法
JP2009175544A (ja) * 2008-01-25 2009-08-06 Ntt Electornics Corp 暗号化方法および復号方法
JP2010154051A (ja) * 2008-12-24 2010-07-08 Fuji Xerox Co Ltd 署名システム、署名装置、署名検証装置及びプログラム
JP2015022269A (ja) * 2013-07-23 2015-02-02 凸版印刷株式会社 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07140896A (ja) * 1993-11-19 1995-06-02 Hitachi Ltd ファイル暗号方法及びその装置
JP2004325677A (ja) * 2003-04-23 2004-11-18 Sony Corp 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム
JP2007221747A (ja) * 2006-01-18 2007-08-30 Ricoh Co Ltd 多機能入出力装置および入出力方法
JP2009175544A (ja) * 2008-01-25 2009-08-06 Ntt Electornics Corp 暗号化方法および復号方法
JP2010154051A (ja) * 2008-12-24 2010-07-08 Fuji Xerox Co Ltd 署名システム、署名装置、署名検証装置及びプログラム
JP2015022269A (ja) * 2013-07-23 2015-02-02 凸版印刷株式会社 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
稲村 雄: "第2章 暗号化技術の種類と特徴", OPEN DESIGN, vol. 第3巻 第3号(通巻第14号), JPN6020008327, 1 June 1996 (1996-06-01), JP, pages 12 - 29, ISSN: 0004227578 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111325545A (zh) * 2018-12-13 2020-06-23 北京沃东天骏信息技术有限公司 基于区块链的密钥管理方法、装置及设备
CN111325545B (zh) * 2018-12-13 2023-05-02 北京沃东天骏信息技术有限公司 基于区块链的密钥管理方法、装置及设备
CN115277974A (zh) * 2022-08-01 2022-11-01 南京交通职业技术学院 一种基于物联网智慧交通监控视频的管理系统及加密方法
CN115277974B (zh) * 2022-08-01 2024-02-02 南京交通职业技术学院 一种基于物联网智慧交通监控视频的管理系统及加密方法
CN117035778A (zh) * 2023-08-28 2023-11-10 北京星汉博纳医药科技有限公司 一种支付信息的处理方法、系统及计算设备

Also Published As

Publication number Publication date
JP6729119B2 (ja) 2020-07-22

Similar Documents

Publication Publication Date Title
US11558358B2 (en) Secure analytics using homomorphic and injective format-preserving encryption
Patil et al. A comprehensive evaluation of cryptographic algorithms: DES, 3DES, AES, RSA and Blowfish
Abusukhon et al. A hybrid network security algorithm based on Diffie Hellman and Text-to-Image Encryption algorithm
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
CN106161034A (zh) 使用乘法秘密共享的rsa解密
WO2013150880A1 (ja) 暗号化装置、復号化装置、暗号化方法、復号化方法、及びプログラム
CN110061968A (zh) 一种基于区块链的文件加解密方法、系统及存储介质
CN109845182A (zh) 密码消息与认证指令
WO2014007296A1 (ja) 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
JP6729119B2 (ja) 暗号化装置、復号装置、暗号化方法、コンピュータプログラム、データ構造、および記憶媒体
Khan et al. A novel statistical analysis of chaotic S-box in image encryption
Ahmad et al. A secure network communication protocol based on text to barcode encryption algorithm
Ahmad Abusukhon et al. A novel network security algorithm based on encrypting text into a white-page image
US11356427B1 (en) Signcrypted envelope message
US8494169B2 (en) Validating encrypted archive keys
Ahmad et al. Protection of the texts using Base64 and MD5
Banerjee et al. A New three dimensional based key generation technique in AVK
WO2021044465A1 (ja) 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造
WO2015173905A1 (ja) 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム
Kim et al. A modified exhaustive search on a password system using SHA-1
Usha et al. Performance Analysis of Encryption Algorithms with Pat-Fish for Cloud Storage Security
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム
US11438136B2 (en) Encryption apparatus and method for encrypting encryption target data in data based on homomorphic encryption algorithm
Panigrahi et al. Issues and Challenges of Classical Cryptography in Cloud Computing
Vidhya Network Security using Python

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190416

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200424

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200615

R150 Certificate of patent or registration of utility model

Ref document number: 6729119

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150