(57)【要約】【課題】リソースの消費を軽減する暗号化方法およびプログラムを提供することを目的とする。【解決手段】送信コンピュータは、元データ２１を分割データ２２に分割し、２つの分割データ２２間で排他的論理和を算出することによって、暗号化データ２３を生成し、生成した暗号化データ２３と、次の分割データ２２の排他的論理和を算出することによって、次の暗号化データ２３を生成することを繰り返し、生成したすべての暗号化データ２３を送信コンピュータへ送信し、最初の分割データ２２ａは復号化キー２４として、暗号化データとは異なるルートで送信コンピュータへ送られることを特徴とする。【選択図】図２
2011119985.tif 000002
【特許請求の範囲】
【請求項１】
暗号化データを生成・送信する暗号装置と、前記暗号化データを受信・復号する復号装置と、を有する暗号システムによる暗号復号方法であって、
前記暗号装置は、
送信するビット列の元データをＮ個（Ｎは２以上の自然数）のデータに分割して、Ｎ個の分割データを生成し、
前記分割した分割データの１番目と２番目の排他的論理和を算出することによって１番目の暗号化データを生成し、
ｎ（ｎ＝１，２,・・・，Ｎ−２）番目の暗号化データと、ｎ＋２番目の分割データと、の排他的論理和を算出して、ｎ＋１番目の暗号化データを生成することを、前記ｎが、Ｎ−２となるまで繰り返すことで、Ｎ−１個の暗号化データを算出し、
前記算出したＮ−１個の暗号化データを前記復号装置へ送信し、
前記１番目の分割データを、復号化キーとして前記暗号化データとは異なるルートで前記復号装置へ送り、
前記復号装置は、
前記復号化キーを取得し、
前記Ｎ−１個の暗号化データを受信すると、
前記取得した復号化キーである前記１番目の分割データと、前記１番目の暗号化データとの排他的論理和を算出して、前記２番目の分割データを復号し、
前記ｎ（ｎ＝１，２,・・・，Ｎ−２）番目の暗号化データと、ｎ＋１番目の暗号化データと、の排他的論理和を算出することにより、ｎ＋２番目の分割データを復号化することを、前記ｎがＮ−２となるまで繰り返し、
復号した分割データを結合して前記元データを復元する
ことを特徴とする暗号復号方法。
【請求項２】
前記暗号装置は、
前記元データの先頭に、所定のビットパターンを付加する
ことを特徴とする請求項１に記載の暗号復号方法。
【請求項３】
前記暗号装置は、
前記元データを複数の単位データに分割した後、前記単位データ毎に前記暗号化データと、復号化キーとを生成し、
前記復号装置は、
前記単位データ毎に、前記復号化キーと、前記暗号化データとから前記単位データを生成し、前記単位データを結合して前記元データを復元する
ことを特徴とする請求項１に記載の暗号復号方法。
【請求項４】
暗号化データを生成・送信する暗号装置と、前記暗号化データを受信・復号する復号装置と、を有する暗号システムによる暗号復号方法であって、
前記暗号装置は、
送信する元データを同じビット長の２つのデータに分割し、当該２つのデータの排他的論理和を算出することによって暗号化データを生成し、
前記２つのデータのうち、一方のデータを同じビット長の２つのデータに分割し、当該２つのデータの排他的論理和を算出することによって暗号化データを生成することを、予め設定された回数行い、
前記生成されたすべての暗号化データを前記復号装置へ送信し、
前記設定された回数後、残った平文データを、復号化キーとして前記暗号化データとは異なるルートで前記復号装置へ送り、
前記復号装置が、
前記復号化キーを取得し、
前記取得した復号化キーと、受信した暗号データのうち、最もビット長が短い暗号化データとの排他的論理和を算出し、当該算出結果と、前記復号化データと、を結合した第１の結合データを算出し、
前記結合データと、次にビット長が短い暗号化データとの排他的論理和を算出し、当該算出結果と、前記結合データと、を結合した第２の結合データを算出する処理を、各暗号化データについて行う
ことを特徴とする暗号復号方法。
【請求項５】
前記暗号装置は、
前記元データを複数の単位データに分割した後、前記単位データ毎に前記暗号化データと、復号化キーとを生成し、
前記復号装置は、
前記単位データ毎に、前記復号化キーと、前記暗号化データとから前記単位データを生成し、前記単位データを結合して前記元データを復元する
ことを特徴とする請求項４に記載の暗号復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号復号方法の技術に関する。
【背景技術】
【０００２】
コンピュータネットワークの発達に伴い、送信データの暗号化が重要な技術となっている。
このような暗号化では、従来は特許文献１や非特許文献１に記載の技術のように伝送の対象となるデータの他に暗号化を行うためのデジタルビット列の両方を用意して、暗号化を行うことが一般的である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３５１３５号公報
【非特許文献】
【０００４】
【非特許文献１】ブルース・シュナイアー著、山形  浩生監訳、「暗号技術大全」、ソフトバンクパブリッシング、２００３年、ｐ．１５−８１
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術や、非特許文献１に記載の技術では暗号化を行うためのスクランブルパタンが別途に必要である。特許文献１に記載の技術や、非特許文献１に記載の技術では、このようなスクランブルパタンにより暗号の強度を高めているが、例えば暗号化を行うためのスクランブルパタンを生成するためにＣＰＵ（Central Processing Unit）負荷がかかる、もしくは別途暗号器が必要となる、さらにはメモリやディスクなどのリソースを大量に消費するといった課題がある。
【０００６】
このような背景に鑑みて本発明がなされたのであり、本発明は、リソースの消費を軽減する暗号復号方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するため、本発明における暗号装置は、元データを分割データに分割し、２つの分割データ間で排他的論理和を算出することによって、暗号化データを生成し、生成した暗号化データと、次の分割データの排他的論理和を算出することによって、次の暗号化データを生成することを繰り返し、生成したすべての暗号化データを復号装置へ送信し、最初の分割データは復号化キーとして、暗号化データとは異なるルートで復号装置へ送られ、復号装置では、復号化キーと、最初の暗号化データとの排他的論理和を算出することによって、分割データを復号し、復号した分割データと、次の暗号化データとの排他的論理和を算出することによって、次の分割データを復号することを繰り返すことを特徴とする。
その他の解決手段については、実施形態中で説明する。
【発明の効果】
【０００８】
本発明によれば、リソースの消費を軽減する暗号復号方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係る暗号システムの構成例を示す図である。
【図２】第１実施形態に係る暗号化処理の概要を示す図である。
【図３】第１実施形態に係る暗号化処理の手順を示すフローチャートである。
【図４】第１実施形態に係る復号化処理の手順を示すフローチャートである。
【図５】第１実施形態に係る暗号化処理の具体例を示す図である。
【図６】第１実施形態に係る復号化処理の具体例を示す図である。
【図７】第２実施形態に係る暗号化処理の概要を示す図である。
【図８】第３実施形態に係る暗号化処理の概要を示す図である。
【図９】第４実施形態に係る暗号化処理の概要を示す図である。
【図１０】第４実施形態に係る暗号化処理の手順を示すフローチャートである。
【図１１】本実施形態に係るデータの送信方法の例を示す図である（その１）。
【図１２】本実施形態に係るデータの送信方法の例を示す図である（その２）。
【発明を実施するための形態】
【００１０】
次に、本発明を実施するための形態（「実施形態」という）について、適宜図面を参照しながら詳細に説明する。なお、本実施形態において、「ＸＯＲ」は排他的論理和を示すものとする。
【００１１】
《第１実施形態》
まず、図１〜図６を参照して、本発明に係る第１実施形態を説明する。
【００１２】
＜システム構成＞
図１は、本実施形態に係る暗号システムの構成例を示す図である。
暗号システム１０は、送信コンピュータ（暗号装置）１と受信コンピュータ（復号装置）２とがＷＡＮ（Wide Area Network）やＬＡＮ（Local Area Network）などのネットワーク３を介して通信可能に接続されている。
送信コンピュータ１および受信コンピュータ２は、ＣＰＵ１２０．２２０、ＲＡＭ（Random Access Memory）などのメモリ１１０，２１０、ＨＤ（Hard Disk）などの記憶装置１３０，２３０を有している。
【００１３】
送信コンピュータ１のメモリ１１０に、記憶装置１３０に格納されているプログラムが展開され、ＣＰＵ１２０によって実行されることにより、データ読込部１１１、データ分割処理部１１２、暗号化処理部１１３、データ送信部１１４が具現化している。
データ読込部１１１は、記憶装置１３０から元データを読み込む機能を有する。データ分割処理部１１２は読み込んだ元データを分割データに分割する機能を有する。暗号化処理部１１３は、分割データから暗号データを生成する機能を有する。データ送信部１１４は、生成した暗号データをネットワーク３へ送信する機能を有する。
【００１４】
受信コンピュータ２のメモリ２１０に、記憶装置２３０に格納されているプログラムが展開され、ＣＰＵ２２０によって実行されることにより、データ受信部２１１、復号化処理部２１２、データ結合部２１３、データ格納部２１４が具現化している。
データ受信部２１１は、送信コンピュータ１から送信された暗号化データを受信する機能を有する。復号化処理部２１２は、受信した暗号化データと、暗号化データとは別途送られた復号化キーを用いて、分割データを復号する機能を有する。データ結合部２１３は、復号した分割データを結合して、元データを復元する機能を有する。データ格納部２１４は、復元した元データを記憶装置２３０などに格納する機能を有する。
【００１５】
＜暗号化の概要＞
次に、図１を参照しつつ、図２に沿って第１実施形態に係る暗号化処理の概要を示す。
図２は、第１実施形態に係る暗号化処理の概要を示す図である。
送信コンピュータ１のデータ分割処理部１１２は、まず、暗号化の対象となる元データ２１を任意の長さで分割することによって、複数の分割データ２２を生成する。
そして、送信コンピュータ１の暗号化処理部１１３は、生成した分割データ２２のうち、先頭の分割データ２２ａを復号化キー２４とする。そして、先頭の分割データ２２ａと、２番目の分割データ２２ｂとに対し、ビット毎に排他的論理和を算出することにより、１番目の暗号化データ２３ａを生成する。
次に、暗号化処理部１１３は、１番目の暗号化データ２３ａと、３番目の分割データ２２ｃとに対し、ビット毎に排他的論理和を算出することにより、２番目の暗号化データ２３ｂを生成する。これは、デジタルデータが有するランダム性を利用したものである。
以下、同様にして３番目以降の暗号化データ２３を作成していく。
暗号化処理部１１３は、最後の分割データ２２まで暗号化を終えると、各暗号化データ２３（２３ａ，２３ｂ，・・・）を送信暗号化データとしてネットワーク３を介して受信コンピュータ２へ送信する。
復号化キー２４である先頭の分割データ２２ａは、暗号化データ２３とは別のルートで受信コンピュータ２へ送られる。
受信コンピュータ２では、暗号化とは逆の手順を用いて復号化が行われる。
なお、暗号化および復号化の具体的な処理は、図３および図４で後記する。
【００１６】
＜フローチャート＞
次に、図１および図２を適宜参照しつつ、図３および図４に沿って暗号化および復号化の手順を説明する。
【００１７】
（暗号化処理）
図３は、第１実施形態に係る暗号化処理の手順を示すフローチャートである。
まず、データ読込部１１１が、記憶装置１３０や、図示しない入力装置を介すことによって、暗号化対象のデータである元データ２１（ビット列）を読み込む（Ｓ１０１）。
次に、データ分割処理部１１２が、任意の方法でデータを分割し（Ｓ１０２）、複数の分割データ２２を生成する。データの分割は、例えば、固定長分割で１０２４バイトごとの分割をすると指定して、１０２４Ｋバイトのデータがあったとしたら、１０２４バイトすなわち８１９２ビット毎に１０２４分割する。この分割の方法はパラメタで指定し、受信コンピュータ２と、予め整合性を合わせておいてもよい。なお、分割データ２２の先頭に何番目の分割データであるかを示す情報を付してもよい。
次に、暗号化処理部１１３が、分割データ２２に対し、相互に排他的論理和演算を実行する（Ｓ１０３）ことによりして暗号化を行う。
【００１８】
そして、暗号化処理部１１３は、分割データ２２のすべてを暗号化したか否かを判定する（Ｓ１０４）。
すべての分割データ２２を暗号化していない場合（Ｓ１０４→Ｎｏ）、暗号化処理部１１３はステップＳ１０３へ処理を戻す。
すえての分割データ２２を暗号化している場合（Ｓ１０４→Ｙｅｓ）、データ送信部１１４が、すべての暗号化データ２３をネットワーク３を介して受信コンピュータ２へ送信する（Ｓ１０５）。
また、暗号化処理部１１３は、先頭の分割データ２２を復号化キー２４とし、この復号化キー２４を文字列化してパスワードとし（Ｓ１０６）、暗号化データ２３とは異なるルートで受信コンピュータ２へ送信する。
【００１９】
なお、ステップＳ１０３で、暗号化処理部１１３が暗号化データ２３を生成すると同時に、データ送信部１１４が生成した暗号化データ２３を逐次的に送信してもよい。このようにすることで、送信コンピュータ１のパフォーマンスを向上させることができる。これにより、音声、画像などの大容量のデータでも、逐次的に暗号化して送信することが可能となる。
また、ＩＣカードなどを利用することにより、直接バイナリデータを扱うことができる場合には、ステップＳ１０６の処理を省略してもよい。
なお、暗号化データ２３は結合させた状態で送信することが望ましい。これにより、何ビットで分割されているのかが分からない限り、データを復号化させることが、より困難となるからである。
【００２０】
（復号化処理）
図４は、第１実施形態に係る復号化処理の手順を示すフローチャートである。
まず、受信コンピュータ２は、暗号化データ２３とは異なるルートで取得しているパスワードを、元のビットパターン（復号化キー２４）に戻すため、このパスワードをビットパターン化する（Ｓ２０１）。
次に、データ受信部２１１が、送信コンピュータ１より送信されたすべての暗号化データ２３を受信する（Ｓ２０２）。
なお、ステップＳ２０１と、ステップＳ２０２の処理順番は逆となってもよい。
【００２１】
次に、復号化処理部２１２は、ビットパターン化したパスワード（復号化キー２４）と、受信した暗号化データ２３に対し、順番に排他的論理和演算を行うことにより（Ｓ２０３）、復号化を行い、分割データ２２を生成する。何ビットずつ排他的論理和を行えばよいかは、復号化キー２４の長さからわかる。
そして、データ結合部２１３は、復号化された分割データ２２を、前回の処理で復号化された分割データ２２の後に結合することにより、データの結合を行う（Ｓ２０４）。
【００２２】
続いて、復号化処理部２１２は、すべての暗号化データ２３を復号したか否かを判定する（Ｓ２０５）
ステップＳ２０５の結果、すべての暗号化データ２３を復号していない場合（Ｓ２０５→Ｎｏ）、復号化処理部２１２はステップＳ２０３へ処理を戻す。
ステップＳ２０５の結果、すべての暗号化データ２３を復号している場合（Ｓ２０５→Ｙｅｓ）、データ格納部２１４は、分割データ２２を結合することによって復元された元データ２１を記憶装置２３０に書き込む（Ｓ２０６）。ステップＳ２０６の処理は、必要に応じて省略してもよい。
【００２３】
＜具体例＞
次に、図５および図６を参照して、暗号化処理および復号化処理の具体例を説明する。
図５は、第１実施形態に係る暗号化処理の具体例を示す図である。
図５では、元データａを３つの分割データｂ１,ｂ２,ｂ３に分割した場合について説明する。
まず、先頭の分割データｂ１は、復号化キーとなり、暗号化データとは異なるルートで受信コンピュータ２に送られる。
そして、暗号化処理部１１３は、分割データｂ１と分割データｂ２との排他的論理和を算出して暗号化データｃ１を生成する。
次に、暗号化処理部１１３は、暗号化データｃ１と分割データｂ３との排他的論理和を算出して暗号化データｃ２を生成する。
その後、データ送信部１１４が、暗号化データｃ１,ｃ２を受信コンピュータ２へ送信する。
【００２４】
図６は、第１実施形態に係る復号化処理の具体例を示す図である。
まず、受信コンピュータ２は、暗号化データｃ１,ｃ２を受信し、暗号化データとは異なるルートで復号化キーｂ１を取得する。
そして、復号化処理部２１２は、復号化キーｂ１と、暗号化データｃ１との排他的論理和を算出して分割データｂ２を復号化する。
さらに、復号化処理部２１２は、暗号化データｃ１と、暗号化データｃ２との排他的論理和を算出して分割データｂ３を復号化する。
そして、データ結合部２１３が、復号化キーｂ１と、復号化された分割データｂ２,ｂ３とを結合することにより元データａを復元する。なお、図６における「＊」はデータの結合を示す。
【００２５】
図５および図６で説明した内容を、元データａをＮ分割することで、一般化すると以下のようになる。
データ分割処理部１１２は、元データａから分割データｂ１,ｂ２,ｂ３,・・・,ｂＮを生成する。
そして、式（１）〜（６）の計算によりＮ−１個の暗号化データが生成される。ここで、ｂｍは分割データを示し、ｃｍは暗号化データを示す。
【００２６】
ｂ１  ＸＯＲ  ｂ２＝ｃ１  ・・・  （１）
ｃ１  ＸＯＲ  ｂ３＝ｃ２  ・・・  （２）
ｃ２  ＸＯＲ  ｂ４＝ｃ３  ・・・  （３）
ｃ３  ＸＯＲ  ｂ５＝ｃ４  ・・・  （４）
・・・
ｃｍ  ＸＯＲ  ｂｍ＋２＝ｃｍ＋１  ・・・  （５）
・・・
ｃＮ−２  ＸＯＲ  ｂＮ＋＝ｃＮ−１  ・・・  （６）
【００２７】
このように生成されたＮ−１個の暗号化データから分割データを復号する手順は以下の式（７）〜（１２）に示す手順である。ここで、ｂ１は復号化キーとして、暗号化データｃ１〜ｃＮ−１とは異なるルートで受信コンピュータ２へ送られるデータである。
【００２８】
ｂ１  ＸＯＲ  ｃ１＝ｂ２  ・・・  （７）
ｃ１  ＸＯＲ  ｃ２＝ｂ３  ・・・  （８）
ｃ２  ＸＯＲ  ｃ３＝ｂ４  ・・・  （９）
ｃ３  ＸＯＲ  ｃ４＝ｂ５  ・・・  （１０）
・・・
ｃｍ  ＸＯＲ  ｃｍ＋１＝ｂｍ＋２  ・・・  （１１）
・・・
ｃＮ−２  ＸＯＲ  ｃＮ−１＝ｂＮ  ・・・  （１２）
【００２９】
第１実施形態によれば、別途スクランブルコードを生成することなく、完全暗号による暗号化を行うことができる。これにより、ＣＰＵ１２０の処理負荷を軽減し、メモリ１１０やディスクなどのリソースを節約することができる。
【００３０】
《第２実施形態》
次に、図７を参照して本発明に係る第２実施形態を説明する。
図７は、第２実施形態に係る暗号化処理の概要を示す図である。
第２実施形態では、元データ３１の先頭に任意のビットパターン３２を付加するものである。図７の例では、分割データ３３の長さと同等の長さのビットパターン３２が付加されているが、分割データ３３より短いビットパターン３２を付加してもよいし、分割データ３３より長いビットパターン３２を付加してもよい。また、ビットパターン３２は、ランダムなビットパターンであることが望ましいが、規則的なビットパターンでもよい。
図７に示す暗号化処理の手順は、元データ３１の先頭にビットパターン３２を付加する手順が最初に加わる以外は図３と同様である。
すなわち、送信コンピュータ１の暗号化処理部１１３は、生成した分割データ３３のうち、先頭の分割データ３３ａ（つまり、ビットパターン３２）を復号化キー３５とする。そして、先頭の分割データ３３ａと、２番目の分割データ３３ｂとに対し、ビット毎に排他的論理和を算出することにより、１番目の暗号化データ３４ａを生成する。
次に、暗号化処理部１１３は、１番目の暗号化データ３４ａと、３番目の分割データ３３ｃとに対し、ビット毎に排他的論理和を算出することにより、２番目の暗号化データ３４ｂを生成する。
【００３１】
以下、暗号化処理部１１３は同様にして３番目以降の暗号化データ３４を作成していく。
送信コンピュータ１は、最後の分割データ３３まで暗号化を終えると、各暗号化データ３４を送信暗号化データとしてネットワーク３を介して受信コンピュータ２へ送信する。
復号化キー３５である先頭の分割データ３３ａ（ビットパターン３２）は、暗号化データ３４とは別のルートで受信コンピュータ２へ送られる。
また、復号化の手順は、復元されたデータから最初のビットパターン３２を取り除く手順が最後に加わる以外は図４と同様であるため説明を省略する。
【００３２】
第２実施形態によれば、ランダムなビットパターン３２を付加することにより、第１実施形態より暗号強度を向上させることができる。
【００３３】
《第３実施形態》
次に、図８を参照して本発明に係る第３実施形態を説明する。
図８は、第３実施形態に係る暗号化処理の概要を示す図である。
第３実施形態では、元データ７１を単位データ７２に分割した後、この単位データ７２毎に第１実施形態と同様の処理を行うものである。
図８に示す暗号化処理の手順は、元データ７１を単位データ７２に分割する処理の後、各単位データ７２毎に図３と同様の処理を行うことにより、分割データ７３を生成し、復号化キー７５および暗号化データ７４を生成することである。
また、復号化処理においても、各単位データ７２毎に図４の処理を行って単位データ７２を復元した後、各単位データ７２を結合させることにより実現できる。
【００３４】
第３実施形態によれば、異なる復号化キー（パスワード）を複数生成することができるため、第１実施形態より暗号強度を上げることが可能となる。
【００３５】
《第４実施形態》
次に、図９および図１０を参照して本発明に係る第４実施形態を説明する。
図９は、第４実施形態に係る暗号化処理の概要を示す図である。
第４実施形態では、元データ９１から生成する分割データ９２の長さを可変長にした一例を示す。
ここでは、暗号化処理部１１３は、まず元データ９２を２分割した後、この２分割した分割データ９２ａ，９２ｂに対し排他的論理和演算を行い、暗号化データ９３ａを生成する。
次に、暗号化処理部１１３は、片方の分割データ９２ａを２分割し、生成された分割データ９２ｃ，９２ｄに対し排他的論理和演算を行い、暗号化データ９３ｂを生成する。
さらに、暗号化処理部１１３は、片方の分割データ９２ｃを２分割し、生成された分割データ９２に対し排他的論理和演算を行い、暗号化データ９３を生成する（図の「・・・」の部分）。
この処理を所定の回数繰り返し、最後に残った分割データ９２を復号化キー９４とする。このとき、復号化キー９４は、元データの１／２Ｎとなる（Ｎは分割回数）。
【００３６】
図１０は、第４実施形態に係る暗号化処理の手順を示すフローチャートである。
図１０において、図３のフローチャートと異なる点は、ステップＳ３０１で予め設定されている所定回数の分割が終了したか否かを判定している点である。
ステップＳ３０１の結果、所定回数の分割が終了していない場合（Ｓ３０１→Ｎｏ）、ステップＳ１０２の処理へ戻り、データ分割処理部１１２が分割データ９２の分割を行う。
ステップＳ３０１の結果、所定回数の分割が終了している場合（Ｓ３０１→Ｙｅｓ）、データ送信部１１４がステップＳ１０５の処理を行う。
ステップＳ３０１で「Ｙｅｓ」が選択された結果、ステップＳ１０２の処理へ戻るのは、１回１回の分割データ９２（図９）の長さが異なっているためである。
【００３７】
暗号化処理の具体例を示すと式（１３）〜（２２）に示す手順となる。ここで、ａは元データを示し、ｂｍは分割データを示し、ｃｍは暗号化データを示す。また、ｂｃ＊ｂｄは、分割データｂｃと分割データｂｄの結合データであることを示す。
【００３８】
ａ＝ｂ１＊ｂ２  ・・・  （１３）
ｂ１  ＸＯＲ  ｂ２＝ｃ１  ・・・  （１４）
ｂ２＝ｂ３＊ｂ４  ・・・  （１５）
ｂ３  ＸＯＲ  ｂ４＝ｃ２  ・・・  （１６）
ｂ４＝ｂ５＊ｂ６  ・・・  （１７）
ｂ５  ＸＯＲ  ｂ６＝ｃ３  ・・・  （１８）
・・・
ｂｋ−３＝ｂｋ−２＊ｂｋ−２  ・・・  （１９）
ｂｋ−２  ＸＯＲ  ｂｋ−１＝ｃＫ−１  ・・・  （２０）
ｂｋ−１＝ｂｋ＊ｂｋ＋１  ・・・  （２１）
ｂｋ  ＸＯＲ  ｂｋ＋１＝ｃＫ  ・・・  （２２）
【００３９】
また、復号化処理は、以下のような処理で実現される（ｂｋ＋１を復号化キーとする）。
ｃＫ  ＸＯＲ  ｂｋ＋１＝ｂｋ  ・・・  （２３）
ｂｋ＊ｂｋ＋１＝ｂｋ−１  ・・・  （２４）
ｂｋ−１  ＸＯＲ  ｃＫ−１＝ｂｋ−２  ・・・  （２５）
ｂｋ−１＊ｂｋ−２＝ｂｋ−３  ・・・  （２６）
ｂｋ−３  ＸＯＲ  ｃＫ−２＝ｂｋ−４  ・・・  （２７）
・・・
ｂ７＊ｂ８＝ｂ６  ・・・  （２８）
ｂ６  ＸＯＲ  ｃ３＝ｂ５  ・・・  （２９）
ｂ５＊ｂ６＝ｂ４  ・・・  （３０）
ｂ４  ＸＯＲ  ｃ２＝ｂ３  ・・・  （３１）
ｂ３＊ｂ４＝ｂ２  ・・・  （３２）
ｂ２  ＸＯＲ  ｃ１＝ｂ１  ・・・  （３３）
ｂ１＊ｂ２＝ａ  ・・・  （３４）
【００４０】
これを図４のフローチャートに対応させると、ｃＫ  ＸＯＲ  ｂｋ＋１＝ｂｋ（式（２３））、ｂｋ−１  ＸＯＲ  ｃＫ−１＝ｂｋ−２（式（２５））などがステップＳ２０３に相当し、ｂｋ＊ｂｋ＋１＝ｂｋ−１（式（２４））、ｂ７＊ｂ８＝ｂ６（式（２８））などがステップＳ２０４に相当する。
【００４１】
第４実施形態によれば、データの分割回数を減らすことができ、暗号化強度を上げることができる。また、復号化した分割データを使用しなければ、次の分割データを復号することができないため、第１〜第３実施形態より暗号強度を上げることができる。
なお、分割はビット単位で可能であるので意図的に奇数長で分割するなどの暗号の強度を高める処置などもできるが、必ずしも必須ではない。
【００４２】
《送信例》
図１１および図１２は、本実施形態に係るデータの送信方法の例を示す図である。
まず、図１１では、暗号化データ１１１１は、送信コンピュータ１から受信コンピュータ２へとネットワーク３を介して送信されているが、復号化キー１１１２は、送信コンピュータ１および受信コンピュータ２とは、別の中継装置１１０１を介し、セキュアな方法を用いることにより受信コンピュータ２へ届けられる。このセキュアな方法とは、暗号化データ１１１１とは別の送信路を利用する、郵便を利用する、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＩＣ（Integrated Circuit）カードやＵＳＢ（Universal Serial Bus）メモリなどの電子媒体に登録するなどの方法が考えられる。
【００４３】
図１１に示す方法によれば、第３者が独立に送信コンピュータ１と受信コンピュータ２へ復号化キー１１１２を送るので、暗号強度を上げることができる。
【００４４】
図１２は、第２実施形態に係るデータの送信方法の例を示す図である。
なお、図１２は公開暗号方式によるデータの送信方法を示している。
図１２では、送信コンピュータ１および受信コンピュータ２とは、別に設置されているランダムビット生成器１１０２により生成されたランダムビットが、ビットパターン１１１３（図７におけるビットパターン３２）として受信コンピュータ２へ送信される。受信コンピュータ２では、このビットパターン１１１３を元データの先頭に付加した後、図７に示す方法で暗号化データ１１１１を生成する。
【００４５】
一方、ランダムビット生成器１１０２で生成されたランダムビットは、ビットパターン１１１３として別途受信コンピュータ２にも送信される。図７の方法によれば、ビットパターン１１１３は復号化キー１１１２となるので、受信コンピュータ２ではランダムビット生成器１１０２から送信されたビットパターン１１１３を復号化キー１１１２として復号化処理を行う。
【００４６】
なお、、元データとして使用されるデータとして、音声データや、動画データなどが考えられる。また、送信コンピュータ１や、受信コンピュータ２には、ＰＣ（Personal Computer）、携帯電話、ゲーム機など、デジタルデータを排他的論理和演算できる機器であればよい。
【００４７】
なお、第２実施形態および第４実施形態に記載されている暗号化方法を、第３実施形態に適用してもよい。つまり、送信コンピュータ１は、第３実施形態のように元データを単位データに分割した後、それぞれの単位データ毎に第２実施形態および第４実施形態に記載されている暗号化方法を行ってもよい。この場合の復号化は、単位データ毎に第２実施形態および第４実施形態の復号化方法を行った後、復号化した単位データを結合すればよい。
【符号の説明】
【００４８】
１      送信コンピュータ（暗号装置）
２      受信コンピュータ（復号装置）
１０    暗号システム
２１，３１，７１，９１  元データ
２２，３３，７３，９２  分割データ
２３，３４，７４，９２，１１１１  暗号化データ
２４，３５，７５，９４，１１１２  復号化キー
３２，１１１３  ビットパターン
７２    単位データ
１１０  メモリ（送信コンピュータ）
１１１  データ読込部
１１２  データ分割処理部
１１３  暗号化処理部
１１４  データ送信部
１２０  ＣＰＵ（送信コンピュータ）
１３０  記憶装置（送信コンピュータ）
２１０  メモリ（受信コンピュータ）
２１１  データ受信部
２１２  復号化処理部
２１３  データ結合部
２１４  データ格納部
２２０  ＣＰＵ（受信コンピュータ）
２３０  記憶装置（受信コンピュータ）
１１０１  中継装置
１１０２  ランダムビット生成器
【図１】
2011119985.tif 000003
【図２】
2011119985.tif 000004
【図３】
2011119985.tif 000005
【図４】
2011119985.tif 000006
【図５】
2011119985.tif 000007
【図６】
2011119985.tif 000008
【図７】
2011119985.tif 000009
【図８】
2011119985.tif 000010
【図９】
2011119985.tif 000011
【図１０】
2011119985.tif 000012
【図１１】
2011119985.tif 000013
【図１２】
2011119985.tif 000014