(57)【要約】【課題】高速な処理が可能で、且つ、簡易な構成により、既知平文攻撃に対する安全性を高め、メモリ効率を向上する。【解決手段】本発明は、暗号処理システム１が、原平文データを構成する複数の平文ビットデータ同士を排他的論理和演算して第１マスク値を得る第１マスク値決定部８と、平文ビットデータと第１マスク値とを排他的論理和演算し、平文ビットデータと同数の変換ビットデータを有する変換データを得るデータ変換部９と、変換データを所定の共通鍵で暗号化して暗号化データを得る暗号化部１０と、暗号化データを所定の共通鍵で復号化して、平文ビットデータと同数の復号化ビットデータを有する復号化データを得る復号化部１５と、復号化ビットデータに基づいて第２マスク値を決定する第２マスク値決定部１６と、復号化ビットデータと第２マスク値とを排他的論理和演算し、原平文データを復元する平文データ復元部１７と、を備えることを特徴とする。【選択図】図２
2014232906.tif 000002
【特許請求の範囲】
【請求項１】
原平文データを構成する複数の平文ビットデータ同士を排他的論理和演算して第１マスク値を得る第１マスク値決定部と、
前記平文ビットデータと前記第１マスク値とを排他的論理和演算し、前記平文ビットデータと同数の変換ビットデータを有する変換データを得るデータ変換部と、
前記変換データを所定の共通鍵で暗号化して暗号化データを得る暗号化部と、
前記暗号化データを前記所定の共通鍵で復号化して、前記平文ビットデータと同数の復号化ビットデータを有する復号化データを得る復号化部と、
前記復号化ビットデータに基づいて第２マスク値を決定する第２マスク値決定部と、
前記復号化ビットデータと前記第２マスク値とを排他的論理和演算し、前記原平文データを復元する平文データ復元部と、
を備えることを特徴とする暗号処理システム。
【請求項２】
前記平文ビットデータが偶数個である場合に、
前記データ変換部は、前記偶数個の平文ビットデータのそれぞれについて前記第１マスク値を用いて排他的論理和演算することにより、前記平文ビットデータと同数の変換ビットデータを得て、
前記第２マスク値決定部は、前記平文ビットデータと同数の復号化ビットデータ同士を排他的論理和演算することにより前記第２マスク値を決定し、
前記平文データ復元部は、前記平文ビットデータと同数の復号化ビットデータのそれぞれについて前記第２マスク値を用いて排他的論理和演算することにより、前記原平文データを復元することを特徴とする請求項１に記載の暗号処理システム。
【請求項３】
前記平文ビットデータが奇数個である場合に、
前記データ変換部は、前記奇数個の平文ビットデータのそれぞれについて前記第１マスク値を用いて排他的論理和演算し、更に、その演算結果の所定位置のビットデータについて前記所定位置に対応する前記平文ビットデータを排他的論理和演算することにより、前記平文ビットデータと同数の変換ビットデータを得て、
前記第２マスク値決定部は、前記所定位置に対応する前記復号化ビットデータを前記第２マスク値として決定し、また、前記所定位置以外の前記復号化ビットデータ同士を排他的論理和演算することにより第３マスク値を決定し、
前記平文データ復元部は、前記所定位置以外の前記復号化ビットデータについて前記第２マスク値を用いて排他的論理和演算し、また、前記所定位置に対応する前記復号化ビットデータについて前記第３マスク値を用いて排他的論理和演算することにより、前記原平文データを復元することを特徴とする請求項１に記載の暗号処理システム。
【請求項４】
前記データ変換部は、前記複数の平文ビットデータのそれぞれについて前記第１マスク値を用いて排他的論理和演算し、更に、その演算結果の所定位置のビットデータについて前記所定位置に対応する前記平文ビットデータを排他的論理和演算することにより、前記平文ビットデータと同数の変換ビットデータを得て、
前記第２マスク値決定部は、前記所定位置に対応する前記復号化ビットデータを前記第２マスク値として決定し、
前記平文データ復元部は、前記所定位置以外の前記復号化ビットデータについて前記第２マスク値を用いて排他的論理和演算して前記所定位置以外の前記平文ビットデータを復元し、また、その演算結果として復元された前記平文ビットデータ同士を排他的論理和演算することにより第４マスク値を決定し、更に、前記所定位置に対応する前記復号化ビットデータについて前記第４マスク値を用いて排他的論理和演算することにより、前記所定位置に対応する前記平文ビットデータを復元することを特徴とする請求項１に記載の暗号処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの暗号化及び復号化の処理をする暗号処理システムに関する。
【背景技術】
【０００２】
従来、暗号処理システムは、伝達される情報（データ）を第三者に解読されないようにするために、送信装置がデータを暗号鍵で暗号化して送信する一方、受信装置が、暗号化されたデータを受信して、暗号鍵に対応した復号鍵で復号化するように構成されている。
【０００３】
例えば、暗号処理システムには、秘密鍵に基づいて擬似乱数列を生成し、元のデータの平文と擬似乱数列との排他的論理和によって元のデータを暗号化するものがある。しかし、元のデータの一部が第三者に既知であった場合に攻撃者が元のデータの未知の部分や暗号鍵及び復号鍵を取得しようとする既知平文攻撃では、一部の既知データと暗号化データとから擬似乱数列が既知にされ、更に、既知となった擬似乱数列から、統計処理や線形近似によって秘密鍵が解読されることがある。
【０００４】
そこで、例えば、特許文献１に記載のストリーム暗号方法及び暗号システムは、上記のような既知平文攻撃を回避するために、Ｎ個の擬似乱数列を使用してＬビットの暗号シンボル集合を平均的に２等分し、対応する１ビットの平文系列により２分された部分集合いずれかを選択し、選択されたＮ個の部分集合の共通部分となる集合の要素が１つ以上あるときは、そのうちの１つを暗号シンボルとするように構成されている。なお、特許文献１では、元のデータに物理乱数を加えて暗号化する手法については、物理乱数の情報の送信に付随する多値送信の必要性や符号化率の低下を問題としていて採用せず、複数の擬似乱数列を用いる手法を採用している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許４８６０７０８号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の特許文献１では、暗号器は、複数の擬似乱数列を備えて複数のチャネルに対応するように構成されているため、暗号化の解読を困難にするためには、多数の擬似乱数列を記憶し、多数のチャネルを備える必要がある。従って、暗号器は、構成が複雑化し、組み込み機器に搭載されるような低性能のＣＰＵでは高速に処理することが困難である。また、暗号器と復号器の機能を併せ持つ通信端末を構成する場合、それぞれ全く異なる処理の関数又は回路が必要となり、メモリの効率化や又は筐体の省スペース化を実現することが困難である。
【０００７】
また、従来技術において、元のデータを暗号化して変換する手法では、変換の前後でデータサイズが異なり、変換前のデータと変換後のデータのそれぞれについてメモリ領域を確保する必要が生じるため、メモリ効率の向上を図ることが困難になっている。
【０００８】
そこで、本発明は上記事情を考慮し、高速な処理が可能で、且つ、簡易な構成により、既知平文攻撃に対する安全性を高め、また、メモリ効率を向上することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の暗号処理システムは、原平文データを構成する複数の平文ビットデータ同士を排他的論理和演算して第１マスク値を得る第１マスク値決定部と、前記平文ビットデータと前記第１マスク値とを排他的論理和演算し、前記平文ビットデータと同数の変換ビットデータを有する変換データを得るデータ変換部と、前記変換データを所定の共通鍵で暗号化して暗号化データを得る暗号化部と、前記暗号化データを前記所定の共通鍵で復号化して、前記平文ビットデータと同数の復号化ビットデータを有する復号化データを得る復号化部と、前記復号化ビットデータに基づいて第２マスク値を決定する第２マスク値決定部と、前記復号化ビットデータと前記第２マスク値とを排他的論理和演算し、前記原平文データを復元する平文データ復元部と、を備えることを特徴とする。
【００１０】
このような構成を採用することで、排他的論理和の演算器又は演算関数だけで構成した完全ハッシュ関数を利用することにより、暗号化前に原平文データを変換し、また、復号化後に元のデータを復元することができる。このような完全ハッシュ関数では、データを変換する際に、ビット列の局所的な要素をビット列の全体に作用させることで、変換データではビット列における既知の部分と未知の部分との偏りが平均化され、データを増やすことなく既知の部分を無くすことができる。従って、原平文データの一部の単位データと暗号化データとを用いても、共通鍵を解読することは極めて困難であり、セキュリティを向上することができる。これにより、原平文データの一部の単位データが既知であって、第三者が暗号化データを取得できた場合でも、暗号化前の変換データが既知とならず、共通鍵の解読を回避することができる。
【００１１】
また、暗号化前のデータの変換も復号化後のデータの復元も、排他的論理和演算のみによって実現されるため、高速に処理することが可能であり、組み込み機器用の低性能のＣＰＵを採用している場合でも、容易に処理することができ、更に、排他的論理和の演算器又は演算関数を備えればよいので構成を簡易化することができる。
【００１２】
更に、原平文データや復号化データの格納メモリ領域に対して変換や復元を行うことができるため、変換や復元の結果に対して格納メモリ領域を新たに準備することが不要である。これにより、変換や復元時にデータ長が増大や縮小してしまうため新たな格納メモリ領域の準備が必要となる従来の技術に比べて、メモリ領域の利用効率を向上することが可能である。
【００１３】
前記平文ビットデータが偶数個である場合に、前記データ変換部は、前記偶数個の平文ビットデータのそれぞれについて前記第１マスク値を用いて排他的論理和演算することにより、前記平文ビットデータと同数の変換ビットデータを得て、前記第２マスク値決定部は、前記平文ビットデータと同数の復号化ビットデータ同士を排他的論理和演算することにより前記第２マスク値を決定し、前記平文データ復元部は、前記平文ビットデータと同数の復号化ビットデータのそれぞれについて前記第２マスク値を用いて排他的論理和演算することにより、前記原平文データを復元してもよい。
【００１４】
このような構成を採用することで、原平文データの全てのビットデータが、各ビットデータの要素を有する第１マスク値を用いた排他的論理和演算によって確実に未知となり、また、復号化データのビットデータは、排他的論理和演算のみによって確実に元のデータに復元することができる。
【００１５】
前記平文ビットデータが奇数個である場合に、前記データ変換部は、前記奇数個の平文ビットデータのそれぞれについて前記第１マスク値を用いて排他的論理和演算し、更に、その演算結果の所定位置のビットデータについて前記所定位置に対応する前記平文ビットデータを排他的論理和演算することにより、前記平文ビットデータと同数の変換ビットデータを得て、前記第２マスク値決定部は、前記所定位置に対応する前記復号化ビットデータを前記第２マスク値として決定し、また、前記所定位置以外の前記復号化ビットデータ同士を排他的論理和演算することにより第３マスク値を決定し、前記平文データ復元部は、前記所定位置以外の前記復号化ビットデータについて前記第２マスク値を用いて排他的論理和演算し、また、前記所定位置に対応する前記復号化ビットデータについて前記第３マスク値を用いて排他的論理和演算することにより、前記原平文データを復元してもよい。
【００１６】
このような構成を採用することで、原平文データが奇数個のビットデータを有している場合でも、排他的論理和の演算器又は演算関数だけで構成した完全ハッシュ関数を利用することにより、暗号化前に原平文データを変換し、また、復号化後に元のデータを復元することができる。
【００１７】
前記データ変換部は、前記複数の平文ビットデータのそれぞれについて前記第１マスク値を用いて排他的論理和演算し、更に、その演算結果の所定位置のビットデータについて前記所定位置に対応する前記平文ビットデータを排他的論理和演算することにより、前記平文ビットデータと同数の変換ビットデータを得て、前記第２マスク値決定部は、前記所定位置に対応する前記復号化ビットデータを前記第２マスク値として決定し、前記平文データ復元部は、前記所定位置以外の前記復号化ビットデータについて前記第２マスク値を用いて排他的論理和演算して前記所定位置以外の前記平文ビットデータを復元し、また、その演算結果として復元された前記平文ビットデータ同士を排他的論理和演算することにより第４マスク値を決定し、更に、前記所定位置に対応する前記復号化ビットデータについて前記第４マスク値を用いて排他的論理和演算することにより、前記所定位置に対応する前記平文ビットデータを復元してもよい。
【００１８】
このような構成を採用することで、原平文データのビットデータが偶数個か奇数個かに拘らず、排他的論理和の演算器又は演算関数だけで構成した完全ハッシュ関数を利用することにより、暗号化前に原平文データを変換し、また、復号化後に元のデータを復元することができる。
【発明の効果】
【００１９】
本発明によれば、高速な処理が可能で、且つ、簡易な構成により、既知平文攻撃に対する安全性を高め、また、メモリ効率を向上することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態に係る暗号処理システムの概略を示すブロック図である。
【図２】本発明の一実施形態に係る暗号処理システムにおいてデータを送受信するウ動作を示すタイミングチャートである。
【図３】本発明の一実施形態に係る暗号処理システムにおける原平文データを概略的に示す模式図である。
【図４】本発明の一実施形態に係る暗号処理システムにおける第１マスク値の算出を概略的に示す模式図である。
【図５】本発明の一実施形態に係る暗号処理システムにおける排他的論理演算前の原平文データと第１マスク値とを概略的に示す模式図である。
【図６】本発明の一実施形態に係る暗号処理システムにおける原平文データと第１マスク値との排他的論理演算を概略的に示す模式図である。
【図７】本発明の一実施形態に係る暗号処理システムにおける復号化データを概略的に示す模式図である。
【図８】本発明の一実施形態に係る暗号処理システムにおける第２マスク値の算出を概略的に示す模式図である。
【図９】本発明の一実施形態に係る暗号処理システムにおける排他的論理演算前の復号化データと第２マスク値とを概略的に示す模式図である。
【図１０】本発明の一実施形態に係る暗号処理システムにおける復号化データと第２マスク値との排他的論理演算を概略的に示す模式図である。
【図１１】本発明の他の実施形態に係る暗号処理システムにおける原平文データを概略的に示す模式図である。
【図１２】本発明の他の実施形態に係る暗号処理システムにおける第１マスク値の算出を概略的に示す模式図である。
【図１３】本発明の他の実施形態に係る暗号処理システムにおける原平文データと第１マスク値との排他的論理演算を概略的に示す模式図である。
【図１４】本発明の他の実施形態に係る暗号処理システムにおける第２マスク値の取得を概略的に示す模式図である。
【図１５】本発明の他の実施形態に係る暗号処理システムにおける第３マスク値の算出を概略的に示す模式図である。
【図１６】本発明の他の実施形態に係る暗号処理システムにおける復号化データと第２マスク値及び第３マスク値との排他的論理演算を概略的に示す模式図である。
【図１７】本発明の更なる実施形態に係る暗号処理システムにおける最後のビットデータ以外の復号化データと第２マスク値との排他的論理演算を概略的に示す模式図である。
【図１８】本発明の更なる実施形態に係る暗号処理システムにおける第４マスク値の算出を概略的に示す模式図である。
【図１９】本発明の更なる実施形態に係る暗号処理システムにおける復号化データの最後のビットデータと第４マスク値との排他的論理演算を概略的に示す模式図である。
【図２０】本発明の暗号処理システムにおいて、原平文データのビット位置の変更を概略的に示す模式図である。
【発明を実施するための形態】
【００２１】
まず、図１を参照しながら、暗号処理システム１の全体の構成について説明する。
【００２２】
図１に示されるように、暗号処理システム１は、複数の通信端末２、３をインターネットやローカル・エリア・ネットワーク（ＬＡＮ）等のネットワーク４を介して接続している。
【００２３】
複数の通信端末２、３は、ネットワーク４を介して通信信号を相互に送受信する送信装置及び受信装置として機能するように構成される、携帯電話端末やパーソナルコンピュータ等の端末である。本実施形態では、一方の通信端末２を送信装置２とすると共に、他方の通信端末３を受信装置３として、送信装置２及び受信装置３が通信信号の暗号化処理及び復号化処理のために所定の共通鍵を使用する例を説明する。
【００２４】
送信装置２は、例えば、制御部５と、記憶部６と、送信データ決定部７と、第１マスク値決定部８と、データ変換部９と、暗号化部１０と、送信部１１とを備え、テキスト、音声、静止画又は動画等のデータを暗号化して送信するように構成される。なお、送信データ決定部７、第１マスク値決定部８、データ変換部９及び暗号化部１０は、記憶部６に記憶され、制御部５によって制御されることで動作するプログラムで構成されていてもよい。
【００２５】
制御部５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等を有して、送信装置２の全体の動作を統括して制御するように構成される。記憶部６は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリを有して、制御部５で制御される情報やデータを記憶するように構成される。
【００２６】
送信データ決定部７は、操作者の入力や選択等の送信指示に応じて、送信対象となるテキスト、音声、静止画又は動画等の送信データを決定し、送信する際に暗号化が必要である場合には、送信データである複数の単位データからなる平文データ（以下、原平文データと称する）を第１マスク値決定部８及びデータ変換部９へと送る。原平文データの単位データは、８ビット（１バイト）等の任意ビット長でよい。
【００２７】
本実施形態では、原平文データの単位データを２つのビットデータに分けて、例えば、前半の４ビット（１ニブル）のビットデータと後半の４ビットのビットデータとに分けて、第１マスク値決定部８及びデータ変換部９により取り扱う。即ち、原平文データがｍ個の単位データを有する場合、２×ｍ個（Ｍ個）のビットデータを有することになる。
【００２８】
第１マスク値決定部８は、送信データ決定部７で決定された送信データについて、原平文データのビットデータ同士を排他的論理和演算し、その演算結果として１つの第１マスク値を決定する。
【００２９】
複数のビットデータ同士の排他的論理和演算の結果は、物理的には１つの数値となるが、以下では説明の便宜上、演算の構成要素を維持していて、演算に用いた各ビットデータの要素（以下、ビット要素と称する）を含有するものとして表す。また、排他的論理和演算では、重複する２つ１組のビット要素は打ち消し合うため、演算結果は、重複しないビット要素だけを含有するものとして表す。
【００３０】
本実施形態では、原平文データの各ビットデータは、等しいか否かに拘らず相互に異なる要素であり、即ち、相互に重複しないビット要素として排他的論理和演算を行う。このため、原平文データの全てのビットデータを排他的論理和演算するとき、その演算結果は、全てのビット要素を含有することになる。
【００３１】
データ変換部９は、原平文データの所定数（単位データの数の２倍）のビットデータのそれぞれを、第１マスク値決定部８で得られた第１マスク値を用いて排他的論理和演算し、その演算結果として所定数のビットデータからなる変換データを生成する。ここで、原平文データの所定のビットデータ（以下、所定の平文ビットデータと称する）と第１マスク値とを排他的論理和演算した場合、第１マスク値が原平文データの全てのビット要素を含有するため、所定の平文ビットデータに相当するビット要素（以下、所定の平文ビット要素と称する）は重複していて打ち消される。従って、所定の平文ビットデータについての演算結果である変換データのビットデータ（変換ビットデータ）は、所定の平文ビット要素以外の原平文データのビット要素を含有する。
【００３２】
暗号化部１０は、データ変換部９で生成した変換データのビットデータ又はこれに基づく単位データからなるデータ列を所定の共通鍵を暗号鍵として用いて暗号化し、暗号化データを生成する。
【００３３】
送信部１１は、暗号化部１０で生成された暗号化データを、受信装置３を送信先として設定した通信信号によりネットワーク４を介して送信するインタフェースである。
【００３４】
受信装置３は、例えば、制御部１２と、記憶部１３と、受信部１４と、復号化部１５と、第２マスク値決定部１６と、平文データ復元部１７とを備えて、送信装置２から送信されたデータを復号化して原平文データを得るように構成される。なお、復号化部１５、第２マスク値決定部１６及び平文データ復元部１７は、記憶部１３に記憶され、制御部１２によって制御されることで動作するプログラムで構成されていてもよい。
【００３５】
制御部１２及び記憶部１３は、送信装置２の制御部５及び記憶部６と同様に構成されるため、説明を省略する。
【００３６】
受信部１４は、ネットワーク４を介して送信装置２から送信された通信信号を受信するインタフェースである。
【００３７】
復号化部１５は、受信部１４で受信した通信信号の送信データ、即ち受信データが暗号化されている場合に、所定の共通鍵を復号鍵として用いてこの受信データを復号化し、復号化データを生成する。この復号化データは、送信装置３のデータ変換部９で得られた変換データと同じ単位データのデータ列を有し、即ち、変換データと同じ所定数のビットデータ（復号化ビットデータ）を有することになる。
【００３８】
また、本実施形態では、復号化データの単位データを２つのビットデータに分けて、例えば、前半の４ビットのビットデータと後半の４ビットのビットデータとに分けて、第２マスク値生成部１６及び平文データ復元部１７により取り扱う。
【００３９】
第２マスク値生成部１６は、復号化部１５で得られた復号化データのビットデータ同士を排他的論理和演算し、その演算結果として１つの第２マスク値を決定する。この復号化データの所定のビットデータは、データ変換部９で得られた変換データと同様に、所定の平文ビット要素以外の原平文データのビット要素を含有していて、復号化データの他のビットデータが所定の平文ビット要素を含有する。
【００４０】
例えば、Ｍ個（Ｍは偶数）のビット要素からなる復号化データは、所定の平文ビット要素を含有するビットデータをＭ−１個（奇数個）有する。この復号化データの全てのビットデータを排他的論理和演算すると、所定の平文ビット要素を含有するＭ−１個のビットデータのうち、Ｍ−２個（偶数個）のビットデータについては、所定の平文ビット要素が２つ１組になって打ち消され、残りの１個のビットデータに含まれるものだけが重複せずに残存する。従って、復号化データの全てのビットデータを排他的論理和演算すると、演算結果の第２マスク値は、原平文データの全てのビット要素を含有することになる。
【００４１】
平文データ復元部１７は、復号化部１５で得られた復号化データの所定数のビットデータのそれぞれを、第２マスク値生成部１６で得られた第２マスク値を用いて排他的論理和演算し、その演算結果として所定数のビットデータからなる復元データを生成する。この復号化データの所定のビットデータは、所定の平文ビット要素以外の原平文データのビット要素を含有し、第２マスク値は、原平文データの全てのビット要素を含有する。そのため、復号化データの所定のビットデータと第２マスク値との排他的論理和演算では、所定の平文ビット要素以外のビット要素が打ち消され、所定の平文ビット要素だけが重複せずに残存する。従って、復号化データの所定のビットデータについての演算結果である復元データのビットデータは、所定の平文ビット要素を含有する。このようにして、復号化データの各ビットデータと第２マスク値とを排他的論理和演算すると、演算結果の復元データは、原平文データと同じ所定数のビットデータを有することになり、原平文データの単位データが復元される。
【００４２】
次に、このような構成を備えた暗号処理システム１において、Ｍ個（Ｍは偶数）のビットデータからなる原平文データを送信装置２から送信して受信装置３で受信する動作について、図２〜図１０を参照して説明する。
【００４３】
先ず、送信装置２では、操作者の入力や選択等の送信指示（ステップＳ１０１）に応じて、送信データ決定部７により送信データが決定され、例えば、送信データの原平文データは、図３に示されるように、Ｍ個のビットデータａ１〜ａＭを有する。
【００４４】
次に、第１マスク値決定部８では、図４に示されるように、原平文データのビットデータａ１〜ａＭの全てが排他的論理和演算されて、１つの第１マスク値Ｓ１が算出される（ステップＳ１０２）。
【００４５】
ここで、ビットデータａ１〜ａＭの排他的論理和演算では、全てのビット要素ａ１〜ａＭが重複せずに残存する。そのため、演算結果である第１マスク値Ｓ１は、全てのビット要素ａ１〜ａＭを含有し、図４では、第１マスク値Ｓ１に含有しているビット要素が列挙して示されている。なお、ビット要素は、説明の便宜上、ビットデータと同じ参照符号で示している。
【００４６】
また、データ変換部９では、図５に示されるように、原平文データのビットデータａ１〜ａＭのそれぞれが、第１マスク値決定部８で得られた第１マスク値Ｓ１を用いて排他的論理和演算されて、その結果、図６に示されるように、Ｍ個のビットデータｂ１〜ｂＭを有する変換データが算出される（ステップＳ１０３）。
【００４７】
例えば、第１マスク値Ｓ１は原平文データの全てのビット要素ａ１〜ａＭを含有するため、ビットデータａ１と第１マスク値Ｓ１との排他的論理和演算では、ビット要素ａ１が重複していて打ち消され、第１マスク値Ｓ１に含有しているビット要素ａ２〜ａＭが残存する。そのため、演算結果である変換データのビットデータｂ１は、ビット要素ａ１以外のビット要素ａ２〜ａＭを含有している。同様にして、ビットデータａ２〜ａＭについても、第１マスク値Ｓ１と排他的論理和演算され、変換データのビットデータｂ２〜ｂＭが得られる。図６では、排他的論理和演算により打ち消されるビット要素を二点鎖線で示し、変換データに含有しているビット要素を実線で示している。
【００４８】
そして、暗号化部１０によって、データ変換部９で得られたビットデータｂ１〜ｂＭを有する変換データが、所定の共通鍵を暗号鍵として用いることにより暗号化されて暗号化データが生成される（ステップＳ１０４）。
【００４９】
また、送信部１１によって、暗号化部１０で得られた暗号化データが、受信装置３を送信先とする通信信号としてネットワーク４を介して送信される（ステップＳ１０５）。
【００５０】
次に、送信装置２から送信された通信信号は、ネットワーク４を介して受信装置３の受信部１４によって受信される（ステップＳ１０６）。また、この通信信号に含まれる送信データは、受信データとして復号化部１５へと送られる。
【００５１】
復号化部１５では、受信部１４で受信した受信データが、所定の共通鍵を復号鍵として用いることにより復号化されて復号化データが生成される（ステップＳ１０７）。この復号化データは、図７に示されるように、Ｍ個のビットデータｃ１〜ｃＭを有し、ビットデータｃ１〜ｃＭは、送信装置３のデータ変換部９で得られた変換データのビットデータｂ１〜ｂＭとそれぞれ同じ要素を含有する。即ち、復号化データのビットデータｃ１〜ｃＭと変換データのビットデータｂ１〜ｂＭとはそれぞれ同じデータであるが、ここでは説明の便宜上、異なる参照符号で示している。
【００５２】
次に、第２マスク値生成部１６によって、図８に示されるように、復号化データのＭ個のビットデータｃ１〜ｃＭの全てが排他的論理和演算されて、１つの第２マスク値Ｓ２が算出される（ステップＳ１０８）。
【００５３】
この復号化データは、例えば、原平文データのビット要素ａ１を、ビットデータｃ１以外のＭ−１個のビットデータｃ２〜ｃＭのそれぞれで含有している、そのため、ビットデータｃ１〜ｃＭが排他的論理和演算されると、Ｍ−１個のビットデータｃ２〜ｃＭのうち、Ｍ−２個のビットデータについては、ビット要素ａ１が２つ１組になって打ち消され、残りの１個のビットデータに含まれるビット要素ａ１が重複せずに第２マスク値Ｓ２に残存する。同様にして、復号化データのビットデータｃ１〜ｃＭに含有している原平文データのビット要素ａ２〜ａＭも処理され、ビット要素ａ２〜ａＭはそれぞれ１つずつ第２マスク値Ｓ２に残存する。従って、ビットデータｃ１〜ｃＭの排他的論理和演算で算出される第２マスク値Ｓ２は、原平文データの全てのビット要素ａ１〜ａＭを含有している。即ち、第２マスク値Ｓ２は第１マスク値Ｓ１と同じビットデータであるが、ここでは説明の便宜上、異なる参照符号で示している。図８では、排他的論理和演算により打ち消されるビット要素を二点鎖線で示し、残存して第２マスク値Ｓ２に含有されるビット要素を実線で示している。
【００５４】
そして、平文データ復元部１７によって、復号化部１５で得られた復号化データのビットデータｃ１〜ｃＭのそれぞれが、図９に示されるように、第２マスク値生成部１６で得られた第２マスク値Ｓ２を用いて排他的論理和演算され、図１０に示されるように、Ｍ個のビットデータｄ１〜ｄＭを有する復元データがそれぞれ生成される（ステップＳ１０８）。
【００５５】
例えば、ビットデータｃ１は原平文データのビット要素ａ１以外のビット要素ａ２〜ａＭを含有し、第２マスク値Ｓ２は原平文データの全てのビット要素ａ１〜ａＭを含有している。そのため、ビットデータｃ１と第２マスク値Ｓ２との排他的論理和演算では、ビット要素ａ２〜ａＭが重複していて打ち消され、第２マスク値Ｓ２に含有しているビット要素ａ１が残存する。従って、ビットデータｃ１についての演算結果である復元データのビットデータｄ１は、ビット要素ａ１を含有する。同様にして、復号化データのビットデータｃ２〜ｃＭについても、第２マスク値Ｓ２と排他的論理和演算され、ビット要素ａ２〜ａＭをそれぞれ含有する復元データのビットデータｄ２〜ｄＭが生成される。即ち、復元データのビットデータｄ１〜ｄＭは、原平文データのビットデータａ１〜ａＭとそれぞれ同じ平文のビットデータであるが、ここでは説明の便宜上、異なる参照符号で示している。図１０では、排他的論理和演算により打ち消されるビット要素を二点鎖線で示し、残存して復元データに含有されるビット要素を実線で示している。
【００５６】
本実施形態では上述のように、送信装置２は、送信対象の原平文データのビットデータａ１〜ａＭを排他的論理和演算して第１マスク値Ｓ１を算出し、原平文データをビットデータａ１〜ａＭ毎に第１マスク値Ｓ１と排他的論理和演算して変換データとしてのビットデータｂ１〜ｂＭを算出するように構成されている。そして、この変換データを所定の共通鍵で暗号化した暗号化データを送信している。また、受信装置３は、受信した暗号化データ（受信データ）を所定の共通鍵で復号化した後、復号化データのビットデータｃ１〜ｃＭを排他的論理和演算して第２マスク値Ｓ２を算出し、復号化データをビットデータｃ１〜ｃＭ毎に第２マスク値Ｓ２と排他的論理和演算して復元データとしてのビットデータｄ１〜ｄＭを算出するように構成されている。
【００５７】
このように、本実施形態によれば、排他的論理和の演算器又は演算関数だけで構成した完全ハッシュ関数を利用することにより、暗号化前に原平文データを変換し、また、復号化後に元のデータを復元することができる。本実施形態の完全ハッシュ関数では、データを変換する際に、ビット列の局所的な要素をビット列の全体に作用させることで、変換データではビット列における既知の部分と未知の部分との偏りが平均化され、データを増やすことなく既知の部分を無くすことができる。
【００５８】
従って、原平文データの一部の単位データと暗号化データとを用いても、所定の共通鍵を解読することは極めて困難であり、通信におけるセキュリティを向上することができる。例えば、第三者は、原平文データの一部の単位データが既知であって、暗号化データを取得できた場合でも、暗号化前の変換データを知ることができないので、所定の共通鍵を解読することはできない。
【００５９】
また、本実施形態によれば、送信装置２におけるデータの変換も受信装置３におけるデータの復元も、排他的論理和演算のみによって実現されるため、高速に処理することが可能であり、制御部５や制御部１２が組み込み機器用の低性能のＣＰＵを採用している場合でも、容易に処理することができ、例えば、原平文データのビット列がデータ長ｎの場合、計算量オーダーは０（ｎ）となる。なお、送信装置及び受信装置として機能する通信端末２、３は、排他的論理和の演算器又は演算関数を備えればよいので構成を簡易化することができる。排他的論理和の演算関数では、外部変数を使用しないためスレッドの安全性を確保することができ、更に、記憶部６や記憶部１３の他の領域を使用する他の処理を同時に行うことができ、例えば、送受信を並行して行うことができる。
【００６０】
更に、本実施形態によれば、任意の数のビットデータで、即ち、任意のデータ長で構成された原平文データを処理することができるため、ブロック暗号を採用する通信端末だけでなく、ストリーム暗号を採用する通信端末とも親和性が高い。また、送信データに更なる情報を付加することなく、暗号化の対象となる変換データを生成しているため、符号化率（データサイズ）が変更されないので、データの取り扱いが容易であり、構成が複雑化しない。
【００６１】
そのため、原平文データや復号化データの格納メモリ領域に対して変換や復元を行うことができ、変換や復元の結果に対して格納メモリ領域を新たに準備することが不要である。これにより、変換や復元時にデータ長が増大や縮小してしまうため新たな格納メモリ領域の準備が必要となる従来の技術に比べて、メモリ領域の利用効率を向上することが可能である。
【００６２】
本実施形態では、原平文データの単位データを２つのビットデータに分けて第１マスク値決定部８及びデータ変換部９により取り扱う構成を説明したが、原平文データが偶数個の単位データを有する場合、第１マスク値決定部８及びデータ変換部９は単位データ毎に処理するように構成されてもよい。
【００６３】
本実施形態では、送信装置２のデータ変換部９が原平文データの所定数のビットデータについて第１マスク値により排他的論理和演算して所定数のビットデータの変換データを生成し、受信装置３の平文データ復元部１７が復号化データの所定数のビットデータについて第２マスク値により排他的論理和演算して所定数のビットデータの復元データを生成する構成を説明したが、変換データ及び復元データを生成する構成はこれに限定されない。
【００６４】
例えば、本発明では、送信装置２は、送信データのビットデータが偶数個か奇数個かを判定して、偶数個である場合には上記実施形態に記載した手法で、奇数個である場合には後述する他の実施形態に記載した手法で、それぞれデータ変換部９が動作するように構成するとよい。また、受信装置３は、復号化データのビットデータが偶数個か奇数個かを判定して、偶数個である場合には上記実施形態に記載した手法で、奇数個である場合には後述する他の実施形態に記載した手法で、それぞれ第２マスク値生成部１６及び平文データ復元部１７が動作するように構成するとよい。
【００６５】
例えば、他の実施形態では、データ変換部９は、所定数のビットデータからなる原平文データについて第１マスク値により排他的論理和演算した後、所定位置、例えば最後のビットデータについては、更に原平文データの最後のビットデータを用いて排他的論理和演算を行い、所定数のビットデータの変換データを生成する。
【００６６】
また、受信装置３の第２マスク値生成部１６は、復号化データの最後のビットデータを第２マスク値とし、この最後のビットデータ以外の復号化データのビットデータ同士を排他的論理和演算してその演算結果を１つの補助マスク値（第３マスク値）として決定する。そして、平文データ復元部１７は、最後のビットデータ以外の復号化データのビットデータについては第２マスク値により排他的論理和演算し、最後のビットデータについては第３マスク値により排他的論理和演算して所定数のビットデータの復元データを生成する。
【００６７】
このような他の実施形態において、Ｍ＋１個（Ｍは偶数）のビットデータからなる原平文データを送信装置２から送信して受信装置３で受信する動作について、図１１〜図１６を参照して説明する。
【００６８】
先ず、送信装置２において、操作者の入力や選択等の送信指示に応じて、送信データ決定部７により送信データが決定され、例えば、送信データの原平文データは、図１１に示されるように、Ｍ＋１個のビットデータａ１〜ａＭ＋１を有する。
【００６９】
次に、第１マスク値決定部８では、図１２に示されるように、原平文データのビットデータａ１〜ａＭ＋１の全てが上記実施形態と同様にして排他的論理和演算されて、１つの第１マスク値Ｓ１が算出される。第１マスク値Ｓ１は、原平文データの全てのビット要素ａ１〜ａＭ＋１を含有している。
【００７０】
また、データ変換部９では、図１３に示されるように、原平文データのビットデータａ１〜ａＭ＋１のそれぞれが、第１マスク値決定部８で得られた第１マスク値Ｓ１を用いて上記実施形態と同様にして排他的論理和演算され、更にその演算結果のＭ＋１番目のビットデータは原平文データのＭ＋１番目のビットデータａＭ＋１を用いて排他的論理和演算されて、Ｍ＋１個のビットデータｂ１〜ｂＭ＋１を有する変換データが算出される。その結果、変換データのビットデータｂ１〜ｂＭは、それぞれ対応するビット要素ａ１〜ａＭ以外のビット要素を含有しているが、ビットデータｂＭ＋１は、原平文データの全てのビット要素ａ１〜ａＭ＋１を含有している。図１３では、排他的論理和演算により打ち消されるビット要素を二点鎖線で示し、変換データに含有しているビット要素を実線で示している。
【００７１】
そして、暗号化部１０によって、ビットデータｂ１〜ｂＭ＋１を有する変換データが、所定の共通鍵を暗号鍵として用いることにより暗号化されて暗号化データが生成される。
【００７２】
また、送信部１１によって、暗号化データが、受信装置３を送信先とする通信信号としてネットワーク４を介して送信される。
【００７３】
次に、受信装置３は、受信部１４によって送信装置２から送信された通信信号を受信し、この通信信号における送信データが受信データとして復号化部１５へと送られる。
【００７４】
復号化部１５では、受信データが所定の共通鍵を復号鍵として用いることにより復号化されて復号化データが生成される。この復号化データは、図１４及び図１５に示されるように、Ｍ＋１個のビットデータｃ１〜ｃＭ＋１を有し、ビットデータｃ１〜ｃＭ＋１は、変換データのビットデータｂ１〜ｂＭ＋１とそれぞれ同じデータである。
【００７５】
次に、第２マスク値生成部１６によって、図１４に示されるように、復号化データのＭ＋１番目のビットデータｃＭ＋１を第２マスク値Ｓ２とし、図１５に示されるように、これ以外の復号化データのビットデータｃ１〜ｃＭを排他的論理和演算して第３マスク値Ｓ３を算出する。
【００７６】
復号化データのビットデータｃＭ＋１は、変換データのビットデータｂＭ＋１と同様に原平文データの全てのビット要素ａ１〜ａＭ＋１を含有しているため、第２マスク値Ｓ２は、原平文データの全てのビット要素ａ１〜ａＭ＋１を含有することになる。
【００７７】
また、復号化データのビットデータｃ１〜ｃＭは、例えば、原平文データのビット要素ａ１を、ビットデータｃ１以外のＭ−１個のビットデータｃ２〜ｃＭのそれぞれで含有している。そのため、ビットデータｃ１〜ｃＭが排他的論理和演算されると、Ｍ−１個（奇数個）のビットデータｃ２〜ｃＭのうち、Ｍ−２個（偶数個）のビットデータについては、ビット要素ａ１が２つ１組になって打ち消され、残りの１個のビットデータに含有しているビット要素ａ１が重複せずに第３マスク値Ｓ３に残存する。同様にして、復号化データのビットデータｃ１〜ｃＭに含有している原平文データのビット要素ａ２〜ａＭも処理され、ビット要素ａ２〜ａＭはそれぞれ１つずつ第３マスク値Ｓ３に残存する。また、原平文データのビット要素ａＭ＋１は、Ｍ個（偶数個）のビットデータｃ１〜ｃＭの全てに含有していて、２つ１組になって全て打ち消される。即ち、第３マスク値Ｓ３は、ビット要素ａＭ＋１以外の原平文データのビット要素ａ１〜ａＭを含有している。図１５では、排他的論理和演算により打ち消されるビット要素を二点鎖線で示し、残存して第３マスク値Ｓ３に含有されるビット要素を実線で示している。
【００７８】
そして、平文データ復元部１７によって、図１６に示されるように、Ｍ＋１番目のビットデータｃＭ＋１以外の復号化データのビットデータｃ１〜ｃＭのそれぞれが第２マスク値Ｓ２を用いて排他的論理和演算されて、Ｍ＋１番目のビットデータｄＭ＋１以外の復元データのビットデータｄ１〜ｄＭが生成される。
【００７９】
例えば、ビットデータｃ１は原平文データのビット要素ａ１以外のビット要素ａ２〜ａＭ＋１を含有し、第２マスク値Ｓ２は原平文データの全てのビット要素ａ１〜ａＭ＋１を含有するため、ビットデータｃ１と第２マスク値Ｓ２との排他的論理和演算では、ビット要素ａ２〜ａＭ＋１が重複していて打ち消され、第２マスク値Ｓ２に含有しているビット要素ａ１が残存する。従って、ビットデータｃ１についての演算結果である復元データのビットデータｄ１は、ビット要素ａ１を含有する。同様にして、復号化データのビットデータｃ２〜ｃＭについても、第２マスク値Ｓ２と排他的論理和演算され、ビット要素ａ２〜ａＭをそれぞれ含有する復元データのビットデータｄ２〜ｄＭが生成される。図１６では、排他的論理和演算により打ち消されるビット要素を二点鎖線で示し、残存して復元データに含有されるビット要素を実線で示している。
【００８０】
また、平文データ復元部１７では、図１６に示されるように、復号化データのＭ＋１番目のビットデータｃＭ＋１が第３マスク値Ｓ３を用いて排他的論理和演算されて、復元データのＭ＋１番目のビットデータｄＭ＋１が生成される。このビットデータｃＭ＋１は原平文データの全てのビット要素ａ１〜ａＭ＋１を含有し、第３マスク値Ｓ３は、ビット要素ａＭ＋１以外の原平文データのビット要素ａ１〜ａＭを含有している。そのため、ビットデータｃＭ＋１と第３マスク値Ｓ３との排他的論理和演算では、ビット要素ａ１〜ａＭが重複していて打ち消され、ビットデータｃＭ＋１に含有しているビット要素ａＭ＋１が残存する。従って、ビットデータｃＭ＋１についての演算結果である復元データのビットデータｄＭ＋１は、ビット要素ａＭ＋１を含有する。即ち、復元データのビットデータｄ１〜ｄＭ＋１は、原平文データのビットデータａ１〜ａＭ＋１とそれぞれ同じ平文のビットデータであるが、ここでは説明の便宜上、異なる参照符号で示している。
【００８１】
なお、他の実施形態のデータ変換部９は、上記の動作例以外の手法によって変換データを生成してもよく、例えば、所定数のビットデータからなる原平文データについて、最後のビットデータ以外のビットデータを第１マスク値により排他的論理和演算して、最後のビットデータ以外の変換データのビットデータを算出すると共に、第１マスク値をそのまま変換データの最後のビットデータに代入して変換データを生成してもよい。
【００８２】
例えば、データ変換部９は、Ｍ＋１個（Ｍは偶数）のビットデータからなる原平文データについて、原平文データのビットデータａ１〜ａＭを第１マスク値Ｓ１を用いて排他的論理和演算して変換データのＭ個のビットデータｂ１〜ｂＭを算出した後、第１マスク値Ｓ１をそのまま変換データのＭ＋１番目のビットデータｂＭ＋１に代入して変換データを生成してもよい。
【００８３】
このように、他の実施形態によれば、送信データが奇数個のビットデータを有している場合でも、排他的論理和の演算器又は演算関数だけで構成した完全ハッシュ関数を利用することにより、暗号化前に原平文データを変換し、また、復号化後に元のデータを復元することができる。従って、送信装置２の第１マスク値決定部８及びデータ変換部９、並びに受信装置３の第２マスク値生成部１６及び平文データ復元部１７は、単位データを２つに分けることなく、そのままビットデータとして処理することができる。そして、原平文データを変換してから暗号化するため、第三者にとって、原平文データの一部の単位データが既知であって、暗号化データを取得した場合でも、暗号化前の変換データを知ることができないので、所定の共通鍵を解読することはできず、通信におけるセキュリティを向上することができる。
【００８４】
また、更なる実施形態では、受信装置３の平文データ復元部１７は、最後のビットデータ以外の復号化データのビットデータを第２マスク値を用いて排他的論理和演算することにより最後のビットデータ以外の復元データを生成する。更に、平文データ復元部１７は、最後のビットデータ以外の復元データのビットデータ同士を排他的論理和演算することにより第４マスク値を算出して、復号化データの最後のビットデータを第４マスク値Ｓ４を用いて排他的論理和演算することにより復元データの最後のビットデータを生成する。なお、送信装置２のデータ変換部９は、上記の他の実施形態と同様にして、変換データを生成する。受信装置３の第２マスク値生成部１６は、他の実施形態と同様にして、復号化データの最後のビットデータを第２マスク値とするが、第３マスク値は生成しない。
【００８５】
このような更なる実施形態において、Ｍ＋１個のビットデータからなる原平文データを送信装置２から送信して受信装置３で受信する動作について、図１７〜図１９を参照して説明する。
【００８６】
先ず、送信装置２において、送信データ決定部７による送信データの決定、第１マスク値決定部８による第１マスク値Ｓ１の算出、データ変換部９による変換データの算出、暗号化部１０による暗号化データの生成、送信部１１による通信信号の送信については、上記の他の実施形態と同様にして処理されるため、説明を省略する。
【００８７】
受信装置３では、上記の他の実施形態と同様にして、受信部１４によって通信信号を受信し、復号化部１５によって受信データを復号化して復号化データが生成される。なお、この復号化データは、図１７に示されるように、Ｍ＋１個のビットデータｃ１〜ｃＭ＋１を有し、ビットデータｃ１〜ｃＭ＋１は、図１３に示される他の実施形態による変換データのビットデータｂ１〜ｂＭ＋１と同じである。
【００８８】
そして、第２マスク値生成部１６によって、図１４に示される他の実施形態と同様にして、復号化データのＭ＋１番目のビットデータｃＭ＋１が第２マスク値Ｓ２とされる。なお、この更なる実施形態では、第３マスク値Ｓ３は算出されない。復号化データのビットデータｃＭ＋１は、図１３に示される変換データのビットデータｂＭ＋１と同様に原平文データの全てのビット要素ａ１〜ａＭ＋１を含有していて、第２マスク値Ｓ２は、原平文データの全てのビット要素ａ１〜ａＭ＋１を含有する。
【００８９】
次に、平文データ復元部１７によって、図１７に示されるように、上記の他の実施形態（図１６参照）と同様にして、Ｍ＋１番目のビットデータｃＭ＋１以外の復号化データのビットデータｃ１〜ｃＭのそれぞれが第２マスク値Ｓ２を用いて排他的論理和演算されて、Ｍ＋１番目のビットデータｄＭ＋１以外の復元データのビットデータｄ１〜ｄＭがそれぞれ生成される。これにより、原平文データのビット要素ａ１〜ａＭをそれぞれ含有する復元データのビットデータｄ１〜ｄＭが生成される。図１７では、排他的論理和演算により打ち消されるビット要素を二点鎖線で示し、残存して復元データに含有されるビット要素を実線で示している。
【００９０】
また、平文データ復元部１７では、図１８に示されるように、復元データのビットデータｄ１〜ｄＭを排他的論理和演算することにより第４マスク値Ｓ４が算出される。ここで、ビットデータｄ１〜ｄＭは、原平文データのビット要素ａ１〜ａＭをそれぞれ含有しているため、ビットデータｄ１〜ｄＭの排他的論理和演算によって、ビット要素ａ１〜ａＭが重複せずに第４マスク値Ｓ４に残存する。即ち、第４マスク値Ｓ４は、ビット要素ａＭ＋１以外の原平文データのビット要素ａ１〜ａＭを含有する。
【００９１】
更に、平文データ復元部１７では、図１９に示されるように、復号化データのＭ＋１番目のビットデータｃＭ＋１が第４マスク値Ｓ４を用いて排他的論理和演算されて、復元データのＭ＋１番目のビットデータｄＭ＋１が生成される。このビットデータｃＭ＋１は原平文データの全てのビット要素ａ１〜ａＭ＋１を含有していて、第４マスク値Ｓ４はビット要素ａＭ＋１以外の原平文データのビット要素ａ１〜ａＭを含有している。そのため、ビットデータｃＭ＋１と第４マスク値Ｓ４との排他的論理和演算では、ビット要素ａ１〜ａＭが重複していて打ち消され、ビットデータｃＭ＋１に含有しているビット要素ａＭ＋１が残存する。これにより、原平文データのビット要素ａＭ＋１を含有する復元データのビットデータｄＭ＋１が生成される。従って、平文データ復元部１７では、原平文データのビット要素ａ１〜ａＭ＋１をそれぞれ含有する復元データのビットデータｄ１〜ｄＭ＋１が生成される。即ち、復元データのビットデータｄ１〜ｄＭ＋１は、原平文データのビットデータａ１〜ａＭ＋１とそれぞれ同じ平文のビットデータであるが、ここでは説明の便宜上、異なる参照符号で示している。図１９では、排他的論理和演算により打ち消されるビット要素を二点鎖線で示し、残存して復元データに含有されるビット要素を実線で示している。
【００９２】
このように、更なる実施形態によれば、送信データのビットデータが偶数個か奇数個かに拘らず、排他的論理和の演算器又は演算関数だけで構成した完全ハッシュ関数を利用することにより、暗号化前に原平文データを変換し、また、復号化後に元のデータを復元することができる。そして、原平文データを変換してから暗号化するため、第三者にとって、原平文データの一部の単位データが既知であって、暗号化データを取得した場合でも、暗号化前の変換データを知ることができないので、所定の共通鍵を解読することはできず、通信におけるセキュリティを向上することができる。
【００９３】
上記の他の実施形態や更なる実施形態では、原平文データや他のデータについて、所定位置として最後のビットデータを、他のビットデータと異なるように処理する構成を説明したが、この所定位置は最後の位置に限定されず、例えば、最初の位置や、データが既知となる可能性の低いその他の位置で、予め定義された位置であればよい。
【００９４】
なお、上記の実施形態では、送信装置２の第１マスク値決定部８やデータ変換部９は、原平文データのビットデータをそのまま用いて第１マスク値Ｓ１の算出や変換データの算出を行っているが、原平文データのビットデータの各ビット位置を変更してビット位置変更データを生成し、このビット位置変更データに対して第１マスク値Ｓ１の算出や変換データの算出を行うように構成されてもよい。また、受信装置３では、平文データ復元部１７で復元した復元データについて、ビット位置を元に戻す処理を行う。
【００９５】
例えば、図２０に示されるように、原平文データが、複数のビットデータａ１、ａ２、ａ３を有し、各ビットデータが８ビットで構成されている場合に、先頭のビットデータａ１の後に続くビットデータａ２のビット位置を左に１ビット回転して、ビットデータａ２の後に続くビットデータａ３のビット位置を左に２ビット回転する。同様にして、ビットデータａ４〜ａ７（図示せず）について、ビット位置を１ビットずつ左にずらすように回転し、ビット列ａ８については、ビット位置を左方向に７ビット回転することになる。そして、ビット数と同数の８個のビットデータａ１〜ａ８について、ビット位置を１ビットずつ左にずらした後、ビットデータａ８の次のビットデータａ９については、ビットデータａ１と同様にビット位置の回転を行わず、ビットデータａ９の次のビットデータａ１０以降についてビット位置の回転を行う。このようにして、原平文データを構成する複数のビットデータに対して、ビット位置の回転を順次繰り返すことにより、ビット位置変更データを生成する。
【００９６】
なお、復元データのビットデータのビット位置を元に戻す処理は、上記とは逆にビット位置を１ビットずつ右にずらすように回転することで行う。
【００９７】
あるいは、例えば、送信装置２の第１マスク値決定部８やデータ変換部９は、原平文データの先頭位置を基準とする相対位置（オフセット）に応じて、そのオフセット分のビットローテート処理を行い、この処理後のデータに対して、第１マスク値算出やデータ変換を行うように構成されてもよい。これにより、原平文データが、ＡＳＣＩＩコードで構成されている場合等のように、０となるビットデータが必ず存在する場合でも、第１マスク値Ｓ１に０となるビット要素が生じないようにすることができる。なお、受信装置３では、送信装置２とは逆方向のビットローテートを復号化データに行うこととなる。
【００９８】
更に、例えば、送信装置２は、第１マスク値で含有する全てのビット要素を原資として、反転処理を行うか否かを示す反転パターンを作成し、データ変換部９で生成された変換データに対してこの反転パターンに基づく反転処理を行うように構成されてもよい。変換データについては、ビットデータ同士の排他的論理和演算を行って取得される差分データは、共通値である第１マスク値が排除されるが、この反転処理を行うことにより、反転後のデータについては、ビットデータ同士の排他的論理和演算を行っても、取得される差分データには、常に第１マスク値の影響が加えられていることになる。
【００９９】
また、上記したようなパターンを用いた反転処理は一例であり、この処理に代えて、データ変換部９で生成した変換データに対して、第１マスク値との排他的論理和演算や一定数のビット回転等の、受信装置３側で自動的な復元が可能なビット操作処理であれば実施しても良い。これにより、原平文データの統計的な推定可能性について、原平文データが元々有する確率的な揺らぎを温存することができる。
【０１００】
上記した実施形態では、送信装置２の暗号化部１０と、受信装置３の復号化部１５とが、共通鍵を使用する構成について説明したが、暗号化及び復号化は、共通鍵による手法に限定されず、公開鍵及び秘密鍵を使用する手法で構成されてもよい。従って、本発明は、暗号化部１０及び復号化部１５の構成に拘らず適用することができる。即ち、本発明の暗号処理システムは、ストリーム暗号やブロック暗号のいずれを採用する場合でも適用することが可能である。
【０１０１】
また、本発明の暗号処理システム１で送信されたデータに対して、攻撃者が総当り計算で元のデータを取得しようとした場合には、攻撃者は、４ビットのビットデータについて１６種類のバリエーションの仮データを用意して攻撃するかもしれないが、このような攻撃は以下の理由により現実的ではない。
【０１０２】
どのバリエーションの仮データが正解であるかは、攻撃者には分からなくなっているので、攻撃者は全ての仮データを総当りで計算する必要がある。また、送信データは、複数のビットデータを有しているため、総当り計算が必要な仮データの組み合わせはビットデータの数に応じて多大となっている。理論上、この組み合わせ計算の計算量はＯ（２＾ｎ）となり、指数関数のオーダーで増加することになる。例えば、１個の仮データでの攻撃が１秒／回であるとすると、５個のビットデータについての計算量は１６＾５ =１０４８５７６となり、攻撃時間は１２日を超えることになる。すると、１０個のビットデータについての計算量は兆倍のオーダーに跳ね上がることになる。
【０１０３】
また、８ビットのビットデータを処理する場合、未知の要素の取りうる値は２５６種類であり、攻撃者は２５６種類の仮データを用意する必要がある。そして、攻撃者の計算量は、ビットデータの数に応じて２５６の累乗で倍増することになる。
【０１０４】
暗号処理システム１で送信される実際のデータは、上記の例より容量が大きいため、攻撃に要する計算量が膨大となり、解読される可能性が著しく低くなっている。従って、本発明の暗号処理システム１は、上記のような攻撃手法に十分な耐性を有している。
【０１０５】
本実施形態では、データを送受信する暗号処理システムに本発明の構成を適用する場合について説明したが、他の異なる実施形態では、メモリ、ＣＤ、ＤＶＤ等の記憶媒体を介してデータを受け渡しするシステムに本発明の構成を適用することも可能である。
【符号の説明】
【０１０６】
１  暗号処理装置
２  通信端末（送信装置）
３  通信端末（受信装置）
８  第１マスク値決定部
９  データ変換部
１０  暗号化部
１５  復号化部
１６  第２マスク値決定部
１７  平文データ復元部
【図１】
2014232906.tif 000003
【図２】
2014232906.tif 000004
【図３】
2014232906.tif 000005
【図４】
2014232906.tif 000006
【図５】
2014232906.tif 000007
【図６】
2014232906.tif 000008
【図７】
2014232906.tif 000009
【図８】
2014232906.tif 000010
【図９】
2014232906.tif 000011
【図１０】
2014232906.tif 000012
【図１１】
2014232906.tif 000013
【図１２】
2014232906.tif 000014
【図１３】
2014232906.tif 000015
【図１４】
2014232906.tif 000016
【図１５】
2014232906.tif 000017
【図１６】
2014232906.tif 000018
【図１７】
2014232906.tif 000019
【図１８】
2014232906.tif 000020
【図１９】
2014232906.tif 000021
【図２０】
2014232906.tif 000022