JP2006279406A - 暗号化および復号化方法並びにその装置 - Google Patents

暗号化および復号化方法並びにその装置 Download PDF

Info

Publication number
JP2006279406A
JP2006279406A JP2005094167A JP2005094167A JP2006279406A JP 2006279406 A JP2006279406 A JP 2006279406A JP 2005094167 A JP2005094167 A JP 2005094167A JP 2005094167 A JP2005094167 A JP 2005094167A JP 2006279406 A JP2006279406 A JP 2006279406A
Authority
JP
Japan
Prior art keywords
data
block
encryption
key
blocks
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
JP2005094167A
Other languages
English (en)
Inventor
Naoto Matsuda
直人 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Information Technology Co Ltd
Original Assignee
Hitachi Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Information Technology Co Ltd filed Critical Hitachi Information Technology Co Ltd
Priority to JP2005094167A priority Critical patent/JP2006279406A/ja
Publication of JP2006279406A publication Critical patent/JP2006279406A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 耐タンパ性の高い暗号化方法およびその復号化方法、並びに、それを実現するための装置を提供する。
【解決手段】 本暗号化方法は、平文データ100を複数のブロックに分割し、この複数のブロックのデータ(中間文10、20)を暗号化して暗号文30を生成するものである。ここで、前記ブロックのデータを暗号化する際に、異なるブロックのデータの一部を前記ブロックのデータの暗号化の鍵として使用する。例えば、この暗号化の鍵は、暗号化されるブロックに隣接するブロックのデータの一部とすることができる。このように生成された暗号文30は、前記暗号化されたブロックのデータを、暗号化時に使用した前記暗号化の鍵を用いて復号され、平文データ100を得ることができる。
【選択図】 図2

Description

本発明は、暗号化および復号化方法並びにその装置に係り、特に、暗号化すべき平文データを複数ブロックに分割して行う暗号化および復号化方法並びにその装置に関するものである。
従来、一般的に広く利用されている暗号化方式としては、例えば、暗号化のためのパスワード(又は、鍵)を設定して付加し、暗号化すべき平文データなどの情報に当該パスワードを付加した状態で圧縮する方法が、既に知られている。更には、上記のパスワードに代えて、秘密鍵や公開鍵を利用し、これら秘密鍵と公開鍵の組合せによってデータを暗号化する方法も、既に知られている。
これらの従来の方式では、暗号化された情報は、例えば、通信回線を通じて送受信する場合、細かなブロックに分割して送受信される。また、フレキシブルディスクなどの可搬型の記録媒体に格納する場合には、その総容量が多いと、これを複数に分割して保存する場合が多い。このようなことから、これらの鍵は、繰り返して、同一の値を使用するケースが多く、そのため、解読され易いものとなっている。そのため、従来技術では、例えば、ランダムなデータを生成し、このランダムデータを正規の平文に付加することが行われている。
また、例えば、次の特許文献1には、暗号鍵生成装置を使用し、当該装置で生成された鍵により、分割された平文ブロックを、順次、暗号化していく技術が開示されている。即ち、当該従来技術では、平文データと生成された鍵とを、それぞれブロックに分割し、分割されたブロック毎に、当該分割された平文と鍵とを結合し、さらに、これらを暗号化する方法をとるものである。
特開平11−55241号公報
上述したように、従来技術では、例えば、ランダムなデータを生成し、このランダムデータを正規の平文に付加することが行われているが、これではデータが不要に増えてしまうこと、更には、付加したランダムなデータの区切りが漏洩すると、やはり、解読されてしまう危険性を秘めているという問題点が指摘されていた。
また、上述したパスワード、秘密鍵、公開鍵など、所謂、暗号化のための情報又はアルゴリズムは、これが、一旦、漏洩してしまうと、全体のデータが揃わなくても、分割された部分ブロック単位で、盗聴などにより、解読される危険性を秘めている。例えば、上記の特許文献1においても、データと鍵とを複数のブロックに分割することにより、解読される確率は低減することはできるが、一旦、そのデータを復号する方法が漏洩されてしまうと、全データが揃わなくても、各分割されたブロック単位に、解読されてしまうことになる。
本発明は、上述した従来技術における問題点に鑑みて成されたものであり、その目的は、全体のデータの分割されたブロックの一部が漏洩し又は盗聴され、そして、たとえその暗号方式が漏洩したとしても、その漏洩し又は盗聴された一部のデータ単独では解読困難な、耐タンパ(tamper)性(非正規な手段による機密データの読み取りを防ぐ能力)の高い暗号化方法およびその復号化方法、並びに、それを実現するための装置を提供することにある。
上記目的は、平文データを複数のブロックに分割し、前記複数のブロックのデータを暗号化して暗号文を生成する暗号化方法であって、前記ブロックのデータを暗号化する際に、異なるブロックのデータの一部を前記ブロックのデータの暗号化の鍵として使用する暗号化方法により達成される。ここで、前記複数のブロックのデータに対して、それぞれ異なるブロックのデータの一部が前記暗号化の鍵として用いられるようにすることができる。また、前記暗号化の鍵は、前記暗号化されるブロックに隣接するブロックのデータの一部とすることができる。
また、本発明に係る復号化方法は、前記暗号化方法によって生成された暗号文を平文データに復号する場合に、前記暗号化されたブロックのデータを、暗号化時に使用した前記暗号化の鍵を用いて復号するものである。
さらに、本発明に係る暗号化装置は、入力された平文データを複数のブロックに分割する平文ブロック分割部と、前記分割された複数のブロックのデータをそれぞれ暗号化するブロック暗号化部とを備え、前記ブロック暗号化部は、前記ブロックのデータを暗号化する際に、異なるブロックのデータの一部を前記ブロックのデータの暗号化の鍵として使用するものである。
また、本発明に係る復号化装置は、前記暗号化装置により暗号化されたブロックのデータを復号するものであって、前記暗号化されたブロックのデータを復号するブロック復号部と、前記復号されたデータを結合して平文データを生成する平文ブロック結合部とを備え、前記ブロック復号部は、前記暗号化されたブロックのデータを、暗号化時に使用した前記暗号化の鍵を用いて復号するものである。
さらに、本発明に係る暗号化プログラムは、平文データを複数のブロックに分割する機能、および、前記ブロックのデータを暗号化する際に、異なるブロックのデータの一部を前記ブロックのデータの暗号化の鍵として使用する機能を、コンピュータに実現させるためのものである。また、本発明に係る復号化プログラムは、前記暗号化プログラムにより暗号化されたブロックのデータを暗号化時に使用した前記暗号化の鍵を用いて復号する機能、および、前記復号されたデータを結合して平文データを生成する機能を、コンピュータに実現させるためのものである。
本発明によれば、そのデータ量を不要に増大することなく、たとえ分割されたデータの一部が漏洩しても、そのデータの全てが揃わない限り、解読することが不可能であり、そのため、暗号アルゴリズムが漏洩してもその耐タンパ性を高く維持することが可能な、暗号化および復号化方法、並びに、それを実現するための暗号化および復号化装置を得ることができる。
以下、本発明の実施の形態について、添付の図面を参照して詳細に説明する。なお、以下に述べる実施の形態は、その性質上、権利を限定するものではなく、本発明を例示するためのものであり、本発明はその実施の形態に限定されるものでない。
図1は、本発明に係る暗号化および復号化方法を適用した一実施の形態による分散暗号化システムの全体構成の一例を示す図である。以下、この図1を参照して、本発明を適用した分散暗号化システムを説明する。
本実施の形態になる分散暗号化システムは、まず、通信回線(ネットワーク)を構成する、例えば、ローカルエリアネットワーク(LAN)7と、このLAN7に接続された複数のサーバ装置を含んで構成される。図1では、LAN7に接続された(送信側)サーバ装置1と、LAN7に接続された他の(受信側)サーバ装置4を示しているが、更に、他のサーバ装置やその他の装置をLAN7に接続して構成してもよい。また、サーバ装置1にはパーソナルコンピュータ(以下、単に、「PC」と言う)2が接続されており、他方、サーバ装置4には、他のPC5が接続されている。これらのサーバ装置1、4にも、更に、他のPCや他の装置を接続することも可能である。
サーバ装置1は、図示しない演算処理部を備えており、その一部に、文書を暗号化する機能と共に、後に詳細に説明する暗号化処理を実行するためにデータを一時的に記憶するためのメモリ11を備えている。また、このサーバ装置1に接続されたPC2は、その一部に文書ファイル3を内蔵しており、文書ファイル3に内蔵される文書情報の暗号化要求をサーバ装置1へ送信する機能を有している。
一方、LAN7に接続された他のサーバ装置4も、図示しない演算処理部を備えており、上記サーバ装置1から暗号化された文書を受信し、その暗号化された文書を復号化する機能と共に、後に詳細に説明する復号化処理を実行するためにデータを一時的に記憶するためのメモリ41を備えている。また、このサーバ装置4に接続されたPC5は、サーバ装置4で復号化された文書ファイルを入力し、PC5に内蔵した文書ファイル6へ複写する機能を持っている。
即ち、この分散暗号化システムは、上記PC2の文書ファイル3の文書をサーバ装置1によって暗号化し、暗号文としてLAN7を介して送信する。他方、LAN7に接続されたサーバ装置4は、LAN7を介して暗号文を受信し、それをもとの文書に復号化して、PC5内の文書ファイル6へ格納(複写)する。
図2は、本発明に係る分散暗号化方法の一実施例を示す図である。本発明による暗号化方法は、概略次のとおりである。まず、平文データ100を、例えば、先頭からn個のブロックに分割して中間文10を生成する。ここで、nは2以上の整数(n>1)であり、自由に設定可能である。次に、n個のブロック化された中間文10を後述するキー(鍵)で、それぞれ、n個のブロック化された中間文20に順次変換する。そして、最後に、n個のブロック化された中間文20を後述するキー(鍵)でそれぞれ変換し、n個のブロック化された暗号文30を生成する。以下、各ステップについて詳述する。
まず、ステップS200において、暗号化対象の文書である平文データ100を、先頭からn個のブロックに分割して中間文10を生成する。すなわち、中間文10は、図示のように、第1ブロックBLK(1:1)〜第nブロックBLK(1:n)から構成される。
次に、中間文10から次のようにして中間文20を生成する。まず、ステップS210において、中間文10の第1ブロックBLK(1:1)を、中間文10の第2ブロックBLK(1:2)のデータの一部KEY(1:2)をキーに暗号化し、これを中間文20の第1ブロックBLK(2:1)に格納する。ここで使用する暗号方式は、一般的に知られている共通鍵暗号方式を使用する。また、各ブロックBLK(x:y)のデータの一部KEY(x:y)は、各ブロックBLK(x:y)のあらかじめ決められた位置にあるものとする。同様にして、ステップS211において、中間文10の第2ブロックBLK(1:2)を、中間文10の第3ブロックBLK(1:3)のデータの一部KEY(1:3)をキーに暗号化し、これを中間文20の第2ブロックBLK(2:2)に格納する。
これと同様して中間文10の第3ブロックBLK(1:3)〜第n−1ブロックBLK(1:n−1)を暗号化し、それらを中間文20の第3ブロックBLK(2:3)〜第n−1ブロックBLK(2:n−1)にそれぞれ格納する(ステップS212)。中間文10の第nブロックBLK(1:n)は、ステップS213に示すように、中間文20の第1ブロックBLK(2:1)データの一部KEY(2:1)をキーに暗号化し、中間文20の第nブロックBLK(2:n)へ格納する。
続いて、中間文20から次のようにして暗号文30を生成する。まず、ステップS220において、中間文20の第1ブロックBLK(2:1)を、中間文20の第2ブロックBLK(2:2)のデータの一部KEY(1:2)をキーに暗号化し、これを暗号文30の第1ブロックBLK(3:1)に格納する。同様にして、ステップS221において、中間文20の第2ブロックBLK(2:2)を、中間文20の第3ブロックBLK(2:3)のデータの一部KEY(2:3)をキーに暗号化し、これを暗号文30の第2ブロックBLK(3:2)に格納する。
これと同様して中間文20の第3ブロックBLK(2:3)〜第n−1ブロックBLK(2:n−1)を暗号化し、それらを暗号文30の第3ブロックBLK(3:3)〜第n−1ブロックBLK(3:n−1)にそれぞれ格納する(ステップS222)。中間文20の第nブロックBLK(2:n)は、ステップS223に示すように、暗号文30の第nブロックにそのまま第nブロックBLK(3:n)として格納し、暗号文30を完成させる。
図3は、本発明に係る復号化方法の一実施例を示す図である。本発明による復号化方法は、概略次のとおりである。すなわち、本復号化方法では、上記のように生成した暗号文30を、暗号化時に使用した暗号化の鍵を用いて、中間文20、中間文10に、順次変換することで、最後に平文データ100を復号するものである。以下、この復号化方法の各ステップについて詳細に説明する。
まず、ステップS300において、受信したn個のブロックから成る暗号文30について、その第nブロックBLK(3:n)を、中間文20の第nブロックBLK(2:n)ヘそのまま複写する。次に、ステップS301において、複写した中間文20の第nブロックBLK(2:n)内のKEY(2:n)をキーとして、暗号文30の第n−1ブロックBLK(3:n−1)を復号し、これを中間文20の第n−1ブロックBLK(2:n−1)に格納する。更に、上記S301と同様の処理を、暗号文30の第n−2ブロックから第1ブロックまで順次実施し、中間文20の残りのブロックを生成する。この時、上記中間文20の各ブロックには、まだ平文データ100は含まれていない。
続いて、ステップS310において、中間文20の第1ブロックBLK(2:1)のKEY(2:1)をキーとして、中間文20の第nブロックBLK(2:n)を復号化し、それを中間文10の第nブロックBLK(1:n)に格納する。次に、ステップS311においては、上記中間文10の第nブロックBLK(1:n)のKEY(1:n)をキーとして、中間文20の第n−1ブロックを復号化し、それを中間文10の第n−1ブロックBLK(1:n−1)に格納する。以下、上記ステップS311と同様の処理を、中間文20の第1ブロックBLK(2:1)まで順次実施し、中間文10の残りのブロックを生成する。この中間文10の各ブロックには、平文データ100が含まれている。
そして、ステップS320において、上記のようにして得られた中間文10の各ブロックBLK(1:1)〜BLK(1:n)を結合して、平文データ100を生成する。これにより、上記図2の暗号化方法によって暗号化された暗号文30が、元の平文データ100に復号されることとなる。
このように、本発明の暗号化方法では、暗号化対象の文書である平文を複数のブロックに分割し暗号化する際に、分割されたブロックのデータの一部を、それとは異なるブロックの暗号化のキー(鍵)としている。そのため、暗号化されて転送されるデータ量を不要に増大することがなく、また、たとえ分割されたデータの一部が漏洩しても、そのデータの全てが揃わない限り、解読することができない。この点を次に説明する。
次に、図4により、本発明による暗号化方法で暗号化された暗号文30のうち1つ以上のブロックが分離された場合、どのブロックも復号不可であることを説明する。本例は、暗号文30の第1ブロックが分離された場合の例である。
まず、ステップS400において、暗号文30の第nブロックBLK(3:n)は、中間文20の第nブロックBLK(2:n)ヘそのまま複写される。そして、続くステップS401においては、中間文20の第nブロックBLK(2:n)内のKEY(2:n)をキーとして、暗号文30のBLK(3:n−1)を復号し、それを中間文20の第n−1ブロックに格納する。その後、このステップS401と同様の処理を、残りの暗号文30の第1ブロックまで実施して、中間文20の残りのブロックを生成する。
ここで、ステップS402において、中間文20の第1ブロックを生成しようとした時、上述のように暗号文30の第1ブロックが分離されており存在しないため、復号処理が中断する。この復号処理が中断した時点においては、途中まで復号された中間文20の各ブロックには平文が含まれていない。また、途中まで復号された中間文20の各ブロックを復号するために必要なキーは、まだ復号されていない。その結果、暗号文30はその一部たりとも平文に復号できない。従って、例えば、本発明の暗号化方法を用いて暗号化した暗号文を複数枚のFDに格納した場合、そのうちの1枚のFDを紛失したとしても、その1枚のFD中の暗号文は平文に復号することができないのである。
図5は、中間文10と暗号鍵(キー)の関係を示す図である。図示のように、中間文10はBLK(1:1)からBLK(1:n)までのn個のブロックから構成される。各ブロックは、データの先頭から決められた長さの暗号鍵兼用部501とデータ部502とで構成される。ここで、暗号鍵兼用部501はデータの一部であり、長さは任意に変更可能である。中間文10を中間文20に暗号化する場合、暗号鍵兼用部501を暗号化キーに使用する。但し、本例ではKEY(1:1)は使用しない。KEY(1:2)はブロックBLK(1:1)の暗号鍵(キー)として利用され、KEY(1:3)はブロックBLK(1:2)のキーとして利用され、同様にしてKEY(1:n)はブロックBLK(1:n−1)のキーとして利用される。
図6は、中間文20と暗号鍵(キー)の関係を示す図である。図示のように、中間文20はBLK(2:1)からBLK(2:n)までのn個のブロックから構成される。各ブロックは、データの先頭から決められた長さの暗号鍵兼用部601とデータ部602とで構成される。ここで、暗号鍵兼用部601はデータの一部であり、長さは任意に変更可能である。中間文20を暗号文30に暗号化する場合、暗号鍵兼用部601を暗号化キーに使用する。すなわち、KEY(2:1)はブロックBLK(1:n)の暗号鍵(キー)として利用され、KEY(2:2)はブロックBLK(2:1)のキーとして利用され、同様にしてKEY(2:n)はブロックBLK(2:n−1)のキーとして利用される。
図7は、本発明に係る暗号化方法および復号化方法を用いた分散暗号化システムの処理の流れの一例を示す図である。本分散暗号化システムは、暗号化装置および復号化装置を備えており、この暗号化装置はサーバ装置1の演算処理部によって実現され、また復号化装置はサーバ装置4の演算処理部によって実現される。以下、各部の処理内容について説明する。
まず、送信元(サーバ装置1)では、S701において、PC2などの送信元を経由して文書ファイル3の文書を平文データで入力する(平文入力部)。次に、S702において、平文データをn個のブロックに分割する(平文ブロック分割部)。続いて、S703において、この分割された各ブロックを上述したような方法で暗号化して暗号文を作成する(ブロック暗号化部)。そして、この暗号文をLAN7等の通信回線(ネットワーク)を介して送信する。
一方、受信元(サーバ装置4)では、上記暗号文を受信して文書を復号するため、まず、S704において、暗号化された各ブロックからなる暗号文を受け付ける(ブロック受信部)。その後、S705において、暗号文の全ブロックの受信を確認した後、S706において、各ブロックを復号する(ブロック復号部)。次に、S707において、復号された各ブロックを平文に結合する(平文ブロック結合部)。これにより、復号した平文データを文書ファイル6に格納する。
図8及び図9は、上記ブロック暗号化部S703の処理内容を説明するためのフローチャートである。以下、このフローチャートに沿って説明する。まず、ステップS801において、カウンタiを1で初期化する。次に、ステップS802において、中間文10のブロックBLK(1:i)を先頭から、一つずつ、順次、読み出す。その後、ステップS803において、i=1か否かを判定する。即ち、BLK(1:1)を読み込んだか否かを判定する。そして、中間文10の第1ブロックBLK(1:1)を読み込んだ場合には、即ち、i=1であり、「YES」と判定され、処理はステップS805へ移り、その内容を保持してカウンタiを加算(i+1)し、中間文10の次のブロックを読み込む。その後、ステップS806に移行する。
一方、上記ステップS803において、i=1でない(「NO」)と判断された場合、即ち、中間文10の第2ブロック以降を読み込んだ場合には、ステップS804において、ブロックBLK(1:i)のKEY(1:i)をキーにして、ブロックBLK(1:i−1)を暗号化し、その結果を、中間文20のブロックBLK(2:i−1)ヘ格納し、上述のステップS805に移行する。
そして、ステップS806では、i=nか否か、即ち、中間文10の全ブロックを処理したか否かを判定する。その結果、中間文10の全ブロックを処理した(「YES」)と判断した場合には、図9に示す処理へ進む。他方、未だ、中間文10の全ブロックを処理していない(「NO」)と判断された場合には、上記ステップS802へ戻り、上記処理を繰り返す。
続いて、図9に示すステップS807において、カウンタjを1に初期化する。この段階では、未だ、中間文20の最終ブロックは生成されていない。そして、ステップS808において、中間文20のブロックを先頭から一つずつ、順次、読み込み、ステップS809において、j=1か否かを判断する。即ち、中間文20の第1ブロックBLK(2:1)を読み込んだか否かを判断する。
ステップS809において、j=1である(「YES」)場合、即ち、中間文20の第1ブロックBLK(2:1)を読み込んだ場合には、処理はステップS811へ移動し、ブロックBLK(2:1)のKEY(2:1)をキーとして、中間文10の第nブロックBLK(1:n)を暗号化し、その結果を、中間文20の第nブロックBLK(2:n)へ格納し、ステップS812へ移行する。この段階で、中間文20の全ブロックが生成される。nは中間文10の総ブロック数である。
一方、ステップS809において、j=1でない(「NO」)場合、即ち、中間文20の第2ブロック以降のブロックBLK(2:j)を読み出した場合、ステップS810において、中間文20のブロックBLK(2:j−1)を、隣接するブロックBLK(2:j)のKEY(2:j)を使って暗号化し、その結果を暗号文30の対応するブロックBLK(3:j−1)へ格納し、ステップS812へ移行する。
ステップS812において、jを加算し(j+1)、ステップS813において、j=nか否か、即ち、中間文20の第nブロックまでの処理が終了したか否かを判定する。ステップS813において、j=nでない(「NO」)場合、ステップS808に戻り、上記ステップを繰り返す。
ステップS813において、j=nである(「YES」)場合、即ち、処理が中間文20の第nブロックまで終了したと判断された場合には、処理は、ステップS814に移動する。ステップS814では、中間文20の第nブロックBLK(2:n)を、そのまま、暗号文30の第nブロックBLK(3:n)に複写して、暗号文30を完成させる。最後に、ステップS815において、暗号文30をファイルに保存し、一連の処理を終了する。
図10及び図11は、上記ブロック復号化部S706の処理内容を説明するためのフローチャートである。以下、このフローチャートに沿って説明する。まず、ステップS901において、カウンタjをnで初期化する。このnは、暗号文30の総ブロック数である。ステップS902において、暗号文30のブロックBLK(3:j)を、後方(第nブロック)から一つずつ、順次、読み出す。ステップS903において、j=nか否か、即ち、暗号文30の第nブロックBLK(3:n)を読み込んだか否かを判定する。
上記S903の判定の結果、j=nである(「YES」)場合、即ち、暗号文30の第nブロックBLK(3:n)を読み込んだ場合、処理はステップS905へ移動し、その内容をそのまま中間文20の第nブロックBLK(2,n)に複写し、ステップS906へ移行する。一方、j=nでない(「NO」)場合、即ち、暗号文30の第n−1ブロック以前のブロックBLK(3:j)を読み込んだ場合、S904において、中間文20の第j+1ブロックBLK(2,j+1)のKEY(2:j+1)をキーに、暗号文30の第jブロックBLK(3:j)を復号化し、その結果を、中間文20のブロックBLK(2:j)ヘ格納し、ステップS906へ移行する。
ステップS906において、カウンタjを減算し(j−1)、ステップS907に移行する。ステップS907では、j=0か否か、即ち、暗号文30の第1ブロックまで処理が終了したか否かを判定する。この判定の結果、j=0でない、即ち、未だ、暗号文30の第1ブロックまで処理が終了していない(「NO」)と判断された場合には、処理は上記ステップS902へ移行し、上記ステップを繰り返す。その後、ステップS907において、暗号文30の第1ブロックまでの処理が終了したと判定された場合は、以下の図11に示すステップS908に移動する。
図11において、ステップS908では、カウンタiをnに初期化する。次に、ステップS909において、中間文20のブロックを、その後方(第nブロック)から一つずつ、順次、読み込む。ステップS910において、i=nか否か、即ち、中間文20の第nブロックBLK(2:n)を読み込んだか否かを判定する。
ステップS910において、i=nである(「YES」)と判定された場合には、処理はステップS912へ移動し、中間文20の第1ブロックBLK(2:1)のKEY(2:1)をキーとして、ブロックBLK(2:n)を復号化し、その結果を中間文10の第nブロックBLK(1:n)に格納して、ステップS913に移行する。
他方、ステップS910において、中間文20の第n−1又はそれ以前のブロックBLK(2:i)を読み出した(「NO」)と判定された場合には、ステップS911において、中間文10の第i+1ブロックBLK(1:i+1)のKEY(1:i+1)をキーとして、ブロックBLK(2:i)を復号化し、その結果を、中間文10のブロックBLK(1:i)ヘ格納して、ステップS913に移行する。
ステップS913において、カウンタiを減算し、更に、ステップS914において、i=0か否かを判定する。即ち、S914において、処理が中間文20の第1ブロックまで終了していない(「NO」)と判定された場合には、処理は、再び上記ステップS909へ戻り、上記ステップを繰り返す。他方、処理が中間文20の第1ブロックまで終了した(「YES」)と判定された場合は、ステップS915において、得られた中間文10をファイルに格納し、一連の処理を終了する。
本発明は、コンピュータプログラムにより実行することができる。即ち、本発明に係る暗号化プログラムは、平文データを複数のブロックに分割する機能、および、前記ブロックのデータを暗号化する際に、異なるブロックのデータの一部を前記ブロックのデータの暗号化の鍵として使用する機能を、コンピュータに実現させるためのものである。また、本発明に係る復号化プログラムは、前記暗号化プログラムにより暗号化されたブロックのデータを暗号化時に使用した前記暗号化の鍵を用いて復号する機能、および、前記復号されたデータを結合して平文データを生成する機能を、コンピュータに実現させるためのものである。本実施例では、上記暗号化プログラムはサーバ装置1に格納され、上記復号化プログラムはサーバ装置2に格納される。また、これらのプログラムは、コンピュータ読み取り可能なCDROM等の記録媒体に格納され、またはインターネット等の電気通信回線を介してアップロードすることによりダウンロード可能とされ、適宜サーバ装置にインストールすることができる。
なお、本実施例では、文書データの平文を、中間文10、および中間文20へ変換する際、所定の規則で定められたブロックのデータの一部を暗号化キーとして利用する。例えば、互いに隣接するブロックの一部を暗号化キーとして利用することができる。しかし、本発明は、上記の例に限定されず、例えば、予め、ブロック間で所定の関係を設定しておき(例えば、テーブルで設定)、この所定の関係にあるデータを暗号化キーとすることも可能である。また、本実施例では、暗号化キーとして、すべて異なるブロックのデータの一部を利用するものとして説明したが、本発明は、かかる一例にのみ限定されるものではない。さらに、本実施例では、平文データを二段階の中間文を経て暗号文に変換するものとして説明したが、更に暗号化を繰り返すことで更に耐タンパ性が一層向上する。
本発明は、機密情報の漏洩防止のため、情報を分散して保管することができる暗号化システムに適用して効果的であり、産業上の利用可能性がある。
本発明に係る暗号化および復号化方法を適用した一実施の形態による分散暗号化システムの全体構成の一例を示す図である。 本発明に係る分散暗号化方法の一実施例を示す図である。 本発明に係る復号化方法の一実施例を示す図である。 本発明による暗号化方法で暗号化された暗号文のうち1つ以上のブロックが分離された場合、どのブロックも復号不可であることを説明するための図である。 中間文10と暗号鍵(キー)の関係を示す図である。 中間文20と暗号鍵(キー)の関係を示す図である。 本発明に係る暗号化方法および復号化方法を用いた分散暗号化システムの処理の流れの一例を示す図である。 ブロック暗号化部の処理内容を説明するためのフローチャートである(その1)。 ブロック暗号化部の処理内容を説明するためのフローチャートである(その2)。 ブロック復号化部の処理内容を説明するためのフローチャートである(その1)。 ブロック復号化部の処理内容を説明するためのフローチャートである(その2)。
符号の説明
1 (送信側)サーバ装置
2、5 パーソナルコンピュータ
3、6 文書ファイル
4 (受信側)サーバ装置
7 LAN
10、20 中間文
30 暗号文
100 平文データ
S701 平文入力部
S702 平文ブロック分割部
S703 ブロック暗号化部
S704 ブロック受信部
S705 全ブロック受信判定部
S706 ブロック復号部
S707 平文ブロック結合部

Claims (8)

  1. 平文データを複数のブロックに分割し、前記複数のブロックのデータを暗号化して暗号文を生成する暗号化方法であって、前記ブロックのデータを暗号化する際に、異なるブロックのデータの一部を前記ブロックのデータの暗号化の鍵として使用することを特徴とする暗号化方法。
  2. 前記複数のブロックのデータに対して、それぞれ異なるブロックのデータの一部が前記暗号化の鍵として用いられることを特徴とする請求項1記載の暗号化方法。
  3. 前記暗号化の鍵が、前記暗号化されるブロックに隣接するブロックのデータの一部であることを特徴とする請求項1または2記載の暗号化方法。
  4. 請求項1〜3のいずれかに記載の暗号化方法によって生成された暗号文を平文データに復号する復号化方法であって、前記暗号化されたブロックのデータを、暗号化時に使用した前記暗号化の鍵を用いて復号することを特徴とする復号化方法。
  5. 入力された平文データを複数のブロックに分割する平文ブロック分割部と、前記分割された複数のブロックのデータをそれぞれ暗号化するブロック暗号化部とを備えた暗号化装置であって、前記ブロック暗号化部は、前記ブロックのデータを暗号化する際に、異なるブロックのデータの一部を前記ブロックのデータの暗号化の鍵として使用することを特徴とする暗号化装置。
  6. 請求項5に記載の暗号化装置により暗号化されたブロックのデータを復号する復号化装置であって、前記暗号化されたブロックのデータを復号するブロック復号部と、前記復号されたデータを結合して平文データを生成する平文ブロック結合部とを備え、前記ブロック復号部は、前記暗号化されたブロックのデータを、暗号化時に使用した前記暗号化の鍵を用いて復号することを特徴とする復号化装置。
  7. 平文データを複数のブロックに分割する機能、および、前記ブロックのデータを暗号化する際に、異なるブロックのデータの一部を前記ブロックのデータの暗号化の鍵として使用する機能を、コンピュータに実現させるための暗号化プログラム。
  8. 請求項7に記載のプログラムにより暗号化されたブロックのデータを暗号化時に使用した前記暗号化の鍵を用いて復号する機能、および、前記復号されたデータを結合して平文データを生成する機能を、コンピュータに実現させるための復号化プログラム。
JP2005094167A 2005-03-29 2005-03-29 暗号化および復号化方法並びにその装置 Pending JP2006279406A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005094167A JP2006279406A (ja) 2005-03-29 2005-03-29 暗号化および復号化方法並びにその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005094167A JP2006279406A (ja) 2005-03-29 2005-03-29 暗号化および復号化方法並びにその装置

Publications (1)

Publication Number Publication Date
JP2006279406A true JP2006279406A (ja) 2006-10-12

Family

ID=37213697

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005094167A Pending JP2006279406A (ja) 2005-03-29 2005-03-29 暗号化および復号化方法並びにその装置

Country Status (1)

Country Link
JP (1) JP2006279406A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140026A (ja) * 2008-12-15 2010-06-24 Thomson Licensing 連鎖暗号モードのための方法および装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1051440A (ja) * 1996-08-05 1998-02-20 Sharp Corp 暗号通信装置及び暗号通信方法
JPH1155241A (ja) * 1997-07-30 1999-02-26 Sharp Corp 鍵暗号化方式による通信装置
JP2000092044A (ja) * 1998-09-14 2000-03-31 Toshiba Corp 通信システム
JP2004135005A (ja) * 2002-10-09 2004-04-30 Sony Corp データ管理システム、データ管理方法、クライアント端末、サーバ装置、データ復号装置、データ復号方法、及び記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1051440A (ja) * 1996-08-05 1998-02-20 Sharp Corp 暗号通信装置及び暗号通信方法
JPH1155241A (ja) * 1997-07-30 1999-02-26 Sharp Corp 鍵暗号化方式による通信装置
JP2000092044A (ja) * 1998-09-14 2000-03-31 Toshiba Corp 通信システム
JP2004135005A (ja) * 2002-10-09 2004-04-30 Sony Corp データ管理システム、データ管理方法、クライアント端末、サーバ装置、データ復号装置、データ復号方法、及び記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140026A (ja) * 2008-12-15 2010-06-24 Thomson Licensing 連鎖暗号モードのための方法および装置

Similar Documents

Publication Publication Date Title
JP5822970B2 (ja) 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化デバイス
CN106888080B (zh) 保护白盒feistel网络实施方案以防错误攻击
EP1876748B1 (en) Privacy-preserving concatenation of strings
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
JP2009501470A5 (ja)
NO20006385L (no) Blokk-chiffere med heltallsmultiplikasjon og dataavhengig og fast antall rotasjoner i hver runde
JP2016523391A (ja) 平文データを暗号化するための方法および装置
KR101727312B1 (ko) 순서 보존 암호화 및 복호화 장치와 그 방법
US7925009B2 (en) Hybrid data encryption
JP2004096754A (ja) 一方向関数を使用する階層的暗号化装置及び方法
US6819764B1 (en) Data processor, communication system and recording medium
JP3769804B2 (ja) 解読化方法および電子機器
JP2002049310A (ja) 暗復号装置、認証装置及び記憶媒体
Choubey et al. Cryptographic techniques in information security
KR102132685B1 (ko) 순서 노출 암호화를 위한 장치 및 방법
JP2004157535A (ja) データ暗号化方法
JP7325689B2 (ja) 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム
JP2006279406A (ja) 暗号化および復号化方法並びにその装置
JP4287397B2 (ja) 暗号文生成装置、暗号文復号装置、暗号文生成プログラム及び暗号文復号プログラム
CN110474967B (zh) 块链实验系统及方法
JP2001194991A (ja) 暗号化方法及び暗号通信方法
JP2008139742A (ja) 非線形関数器、ストリーム暗号の暗号化装置、復号化装置、mac生成装置、ストリーム暗号の暗号化方法、復号化方法、mac生成方法およびプログラム
JP5293612B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
JP4708914B2 (ja) 解読化方法
JP2002023624A (ja) ブロック暗号通信方法とその装置、及びブロック暗号通信プログラムを記録した記録媒体

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20070126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080229

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110419