"暗号化装置が、先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、平文を暗号化する前に、前記平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて平文を暗号化した後に、前記平文を暗号化した暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換することを特徴とする暗号化方法。前記交換ブロック番号を導出するアルゴリズムを、前記共通鍵を前記平文のブロック数で割ったときの余りから前記交換ブロック番号導出するアルゴリズムとしたことを特徴とする、請求項1に記載の暗号化方法。先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、平文を暗号化する前に、前記平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて平文を暗号化した後に、前記平文を暗号化した暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換する処理をコンピュータに実行させることを特徴とする暗号化プログラム。前記交換ブロック番号を導出するアルゴリズムを、前記共通鍵を前記平文のブロック数で割ったときの余りから前記交換ブロック番号を導出するアルゴリズムとしたことを特徴とする、請求項3に記載の暗号化プログラム。先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、平文を暗号化する前に、前記平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて平文を暗号化した後に、前記平文を暗号化した暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換する暗号化部を備えたことを特徴とする暗号化装置。前記交換ブロック番号を導出するアルゴリズムを、前記共通鍵を前記平文のブロック数で割ったときの余りから前記交換ブロック番号を導出するアルゴリズムとしたことを特徴とする、請求項5に記載の暗号化装置。復号装置が、先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、前記共通鍵を用いて暗号文を復号した後に、前記暗号文を復号した平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて前記暗号文を復号する前に、前記暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換することを特徴とする復号方法。前記交換ブロック番号を導出するアルゴリズムを、前記共通鍵を前記平文のブロック数で割ったときの余りから前記交換ブロック番号導出するアルゴリズムとしたことを特徴とする、請求項7に記載の復号方法。先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、前記共通鍵を用いて暗号文を復号した後に、前記暗号文を復号した平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて前記暗号文を復号する前に、前記暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換する処理をコンピュータに実行させるための復号プログラム。前記交換ブロック番号を導出するアルゴリズムを、前記共通鍵を前記平文のブロック数で割ったときの余りから前記交換ブロック番号導出するアルゴリズムとしたことを特徴とする、請求項9に記載の復号プログラム。先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、前記共通鍵を用いて暗号文を復号した後に、前記暗号文を復号した平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて前記暗号文を復号する前に、前記暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換する復号部を備えたことを特徴とする復号装置。前記交換ブロック番号を導出するアルゴリズムを、前記共通鍵を前記平文のブロック数で割ったときの余りから前記交換ブロック番号を導出するアルゴリズムとしたことを特徴とする、請求項11に記載の復号装置。そこで、本発明は、所定のブロック暗号の暗号ブロック連鎖モードに従い平文を暗号化する際、暗号文の先頭ブロックが暗号解読の足掛かりになることを防止できると共に、平文と暗号文の長さが同じになる方法等を提供することを目的とする。上述した課題を解決する第1の発明は、方法に係る発明で、暗号文の先頭ブロックが暗号解読の足掛かりになることを防止できると共に、暗号文と平文の長さと同じになるようにするために、暗号化装置が、先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、平文を暗号化する前に、前記平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて平文を暗号化した後に、前記平文を暗号化した暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換することを特徴とする暗号化方法である。更に、第2の発明は、第1の発明に記載の暗号化方法において、前記交換ブロック番号を導出するアルゴリズムを、前記共通鍵を前記平文のブロック数で割ったときの余りから前記交換ブロック番号導出するアルゴリズムとしたことを特徴とする。更に、第3の発明は、コンピュータプログラムに係る発明で、暗号文の先頭ブロックが暗号解読の足掛かりになることを防止できると共に、暗号文と平文の長さと同じになるようにするために、先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、平文を暗号化する前に、前記平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて平文を暗号化した後に、前記平文を暗号化した暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換する処理をコンピュータに実行させることを特徴とする暗号化プログラムである。更に、第4の発明は、第3の発明に記載の暗号化プログラムにおいて、前記交換ブロック番号を導出するアルゴリズムを、前記共通鍵を前記平文のブロック数で割ったときの余りから前記交換ブロック番号を導出するアルゴリズムとしたことを特徴とする。更に、第5の発明は、装置に係る発明で、暗号文の先頭ブロックが暗号解読の足掛かりになることを防止できると共に、暗号文と平文の長さと同じになるようにするために、先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、平文を暗号化する前に、前記平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて平文を暗号化した後に、前記平文を暗号化した暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換する暗号化部を備えたことを特徴とする暗号化装置である。更に、第6の発明は、第5の発明に記載の暗号化装置において、前記交換ブロック番号を導出するアルゴリズムを、前記共通鍵を前記平文のブロック数で割ったときの余りから前記交換ブロック番号を導出するアルゴリズムとしたことを特徴とする。更に、第7の発明は、第1の発明に係る方法で得られた暗号文を復号する方法で、復号装置が、先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、前記共通鍵を用いて暗号文を復号した後に、前記暗号文を復号した平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて前記暗号文を復号する前に、前記暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換することを特徴とする復号方法である。更に、第8の発明は、第7の発明に記載の復号方法において、前記交換ブロック番号を導出するアルゴリズムを、前記共通鍵を前記平文のブロック数で割ったときの余りから前記交換ブロック番号導出するアルゴリズムとしたことを特徴とする。更に、上述した課題を解決する第9の発明は、第3の発明の暗号化プログラムにより得られた暗号文を復号するためのコンピュータプログラムで、先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、前記共通鍵を用いて暗号文を復号した後に、前記暗号文を復号した平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて前記暗号文を復号する前に、前記暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換する処理をコンピュータに実行させるための復号プログラムである。更に、第10の発明は、第9の発明に記載の復号方法において、前記交換ブロック番号を導出するアルゴリズムを、前記共通鍵を前記平文のブロック数で割ったときの余りから前記交換ブロック番号導出するアルゴリズムとしたことを特徴とする。更に、第11の発明は、第5の発明の暗号化装置が生成した暗号文を復号する装置で、先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、前記共通鍵を用いて暗号文を復号した後に、前記暗号文を復号した平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて前記暗号文を復号する前に、前記暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換する復号部を備えたことを特徴とする復号装置である。更に、第12の発明は、第11の発明に記載の復号装置において、前記交換ブロック番号を導出するアルゴリズムを、前記共通鍵を前記平文のブロック数で割ったときの余りから前記交換ブロック番号を導出するアルゴリズムとしたことを特徴とする。上述した発明によれば、先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号を予め定めたアルゴリズムで共通鍵から導出し、平文の暗号化する前に、前記平文の先頭ブロックと前記交換ブロック番号に対応する前記平文のブロックを交換する、又は、前記共通鍵を用いて平文を暗号化した後に、前記平文を暗号化した暗号文の先頭ブロックと前記交換ブロック番号に対応する前記暗号文のブロックを交換することで、いずれの場合であっても、前記平文の先頭ブロックに対応する暗号ブロックは、前記交換ブロック番号に配置されるため、先頭の暗号文ブロックが暗号解読の足掛かりになることを防止できる。また、ブロックを交換する処理においてはデータの長さは変更されないため、平文と暗号文の長さを同じにでき、暗号化する際に特別な処理が実施されていることがわからなくなる。ここから,本発明の実施形態について,本発明の技術分野に係わる当業者が,発明の内容を理解し,発明を実施できる程度に説明する。なお、これから説明する実施形態は本発明の一実施形態にしか過ぎず、本発明は,これから説明する実施形態に限定されることなく、種々の変形や変更が可能である。まず、本発明のシステムに係る実施形態について説明する。図1は、本実施形態に係る暗号化装置10及び復号装置11を配置したシステム1を説明する図である。図1で図示したシステム1は、DESDataEncryptionStandardやAESAdvancedEncryptionStandardなど、暗号化を行う側と復号を行う側で同一の共通鍵Kを利用し、定められたブロック長のブロック単位で処理を行うブロック暗号により暗号化/復号を実行するシステムで、所定のブロック暗号の暗号文ブロック連鎖モードに従い、共通鍵Kを用いて平文P1Pnを暗号化する暗号化部100が備えられた暗号化装置10と、所定のブロック暗号の暗号文ブロック連鎖モードに従い、共通鍵Kを用いて暗号化装置10が生成した暗号文を復号する復号部110が備えられた復号装置11が含まれ、暗号化装置10及び復号装置11はインターネット12を介して接続している。暗号化装置10は、CPU、チップセット及びハードディスクが実装されたコンピュータで実現され、平文P1Pnを暗号化した暗号文CmCnを生成する暗号化部100を備え、暗号文CmCnを生成する暗号化部100は、暗号化装置10として機能させるコンピュータに実装されたコンピュータプログラムにて実現される。本実施形態の暗号化装置10の暗号化部100は、先頭ブロックと交換するブロックのブロック番号を示す交換ブロック番号mを予め定めたアルゴリズムで共通鍵から導出し、平文P1Pnを暗号化する前に、平文P1Pnの先頭ブロックP1と交換ブロック番号mに対応する平文P1Pnの平文ブロックPmを交換する、又は、共通鍵Kを用いて平文P1Pnを暗号化した後に、平文P1Pnを暗号化した暗号文C1Cnの先頭ブロックC1と交換ブロック番号mに対応する暗号文C1Cnの暗号ブロックCmを交換することで、平文ブロックP1に対応する暗号文ブロックC1が交換ブロック番号mに配置される暗号文CmCnを生成し、平文ブロックP1に対応する暗号ブロックC1が暗号解読の足掛かりになることを防止する。また、平文ブロックP1の暗号文ブロックC1が交換ブロック番号mに配置される暗号文CmCnの長さは平文P1Pnと同じであるため、暗号化する際に特別な処理が実施されていることがわからなくなる。本実施形態の復号装置11は、共通鍵Kを用いて、暗号化装置10が生成した暗号文CmCnを復号する際、復号に利用する共通鍵から、先頭ブロックと入れ替えるブロックのブロック番号を示す交換ブロック番号mを暗号化装置10と同じ手順で求め、暗号化装置10の逆の手順で該暗号文を復号する処理を行い、暗号文CmCnの基になった平文P1Pnを生成する復号部110を備え、暗号文CmCnの基になった平文P1Pnを生成する復号部110は、復号装置11として機能させるコンピュータに実装されたコンピュータプログラムにて実現される。[第1の実施形態]ここから、平文P1Pnの先頭ブロックP1と交換ブロック番号mに対応する平文P1Pnの平文ブロックPmを交換する形態について詳細に説明する。まず、第1の実施形態において、暗号化装置10の暗号化部100が実行する手順について説明する。図2は、第1の実施形態において、暗号化装置10の暗号化部100が実行する手順を示したフロー図である。暗号化装置10が平文P1Pnを暗号化する際、まず、暗号化の対象となる平文P1Pnが暗号化装置10に指定された後S1、暗号化に利用する共通鍵Kが暗号化装置10に指定されるS2。S1及びS2において、平文P1Pn及び共通鍵Kが暗号化装置10に記憶されていない場合、平文P1Pn及び共通鍵Kは、操作者や外部装置によって暗号化装置10に入力されることになり、また、平文P1Pn及び共通鍵Kが暗号化装置10に記憶されている場合、暗号化装置10に記憶されている平文P1Pn及び共通鍵Kが、操作者や外部装置によって指定されることになる。なお、ブロック暗号ではブロック長のブロック単位で処理するため、指定された平文のデータ長がブロック暗号のブロック長の整数倍でない場合、データ長がブロック暗号のブロック長の整数倍になるように、PKCS5などの規格に従い所定のデータが平文にパディングされる。例えば、ブロック暗号がDESの場合、指定された平文のデータ長がDESのブロック長64ビットの整数倍になるようにデータがパディングされ、また、ブロック暗号がAESの場合、指定された平文のデータ長がAESのブロック長128ビットの整数倍になるようにデータがパディングされる。次に、暗号化装置10の暗号化部100は、指定された共通鍵Kを用いて、平文P1Pnの先頭ブロックP1と交換する平文ブロックのブロック番号を示す交換ブロック番号mを予め定められたアルゴリズムで算出するS3。交換ブロック番号nを算出するアルゴリズムは任意であるが、例えば、数式2に示したように、共通鍵Kを平文P1Pnのブロック数で剰余演算するアルゴリズムを利用できる。なお、数式2で交換ブロック番号mを求めると、交換ブロック番号mが1、すなわち、先頭ブロックP1と入れ替える平文ブロックPmが先頭ブロックP1自身になってしまうことがあるため、交換ブロック番号mが1になる場合は、共通鍵Kに所定の数を足すようにするとよい。平文ブロックP1と交換するブロックのブロック番号を示す交換ブロック番号mを求めると、暗号化装置10の暗号化部100は、平文P1Pnの先頭ブロックP1と交換ブロック番号mに対応する平文ブロックPmを入れ替えた後S4、共通鍵Kを用い、先頭ブロックP1と平文ブロックPmを交換した平文PmPnを暗号化することで、平文ブロックP1の暗号文ブロックC1が交換ブロック番号mに配置される暗号文CmCnを生成しS5、図2の手順は終了する。次に、第1の実施形態において、復号装置11の復号部110が実行する手順について説明する。図3は、第1の実施形態において、復号装置11の復号部110が実行する手順を示したフロー図である。復号装置11の復号部110が暗号文CmCnを復号する際、復号の対象となる暗号文CmCnが復号装置11に指定された後S10、暗号文CmCnの復号に利用する共通鍵Kが復号装置11に指定されるS11。なお、平文P1Pnのデータ長はブロック暗号のブロック長の整数倍にされているため、暗号文CmCnのデータ長は必ずブロック暗号のブロック長の整数倍になっている。共通鍵Kが指定されると、復号装置11の復号部110は、指定された共通鍵Kから、暗号文CmCnを復号して得られた平文PmPnの先頭ブロックPmと交換する平文ブロックのブロック番号を示す交換ブロック番号mを暗号化装置10と同じアルゴリズムで算出するS12。交換ブロック番号mを算出すると、復号装置11の復号部110は、指定された共通鍵Kを用いて暗号文CmCnを復号し、暗号文CmCnを復号した平文PmPnを生成した後S13、平文PmPnの先頭ブロックPmと、交換ブロック番号mに対応する平文ブロックを交換する処理を実行して、暗号文CmCnを生成するときの基になった平文を生成するS14。第1の実施形態において、暗号化装置10の暗号化部100は、平文P1Pnの先頭ブロックP1と、共通鍵Kから算出した交換ブロック番号mに対応する平文ブロックPmを交換した後に暗号化しているため、交換ブロック番号mに対応する平文ブロックは平文ブロックP1になり、S14において、復号装置11の復号部110が生成する暗号文CmCnの平文は平文P1Pnになる。なお、PKCS5などの規格に従い所定のデータがパディングされて平文が暗号化されている場合、PKCS5などの規格に従いパディングされた所定のデータが、平文P1Pnから除去される。[第2の実施形態]次に、平文P1Pnを暗号化して得られた暗号文C1Cnの先頭ブロックC1を入れ替える形態について詳細に説明する。まず、第2の実施形態において、暗号化装置10の暗号化部100が実行する手順について説明する。図4は、第2の実施形態において、暗号化装置10の暗号化部100が実行する手順を示したフロー図である。暗号化装置10の暗号化部100が平文P1Pnを暗号化する際、まず、暗号化の対象となる平文P1Pnが暗号化装置10に指定された後S20、暗号化に利用する共通鍵Kが暗号化装置10に指定されるS21。なお、ブロック暗号ではブロック長のブロック単位で処理するため、指定された平文のデータ長がブロック暗号のブロック長の整数倍でない場合、データ長がブロック暗号のブロック長の整数倍になるように、PKCS5などの規格に従い所定のデータが平文にパディングされる。次に、暗号化装置10の暗号化部100は、指定された共通鍵Kを用いて、平文P1Pnを暗号化した暗号文C1Cnの先頭ブロックC1と交換する暗号文ブロックのブロック番号を示す交換ブロック番号mを予め定められたアルゴリズムで算出するS22。第1の実施形態と同様に、交換ブロック番号mを算出するアルゴリズムは任意で、例えば、上述した数式2を利用できる。交換ブロック番号mを算出すると、暗号化装置10の暗号化部100は、指定された共通鍵Kを用いて平文P1Pnを暗号化し、平文P1Pnを暗号化した暗号文C1Cnを生成した後S23、暗号文C1Cnの先頭ブロックC1と交換ブロック番号mに対応する暗号文ブロックCmを入れ替える処理を行い、平文ブロックP1の暗号文ブロックC1が交換ブロック番号mに配置される暗号文CmCnを生成しS24、図4の手順は終了する。次に、第2の実施形態において、復号装置11の復号部110が実行する手順について説明する。図5は、第2の実施形態において、復号装置11の復号部110が実行する手順を示したフロー図である。復号装置11の復号部110が暗号文CmCnを復号する際、復号の対象となる暗号文CmCnが復号装置11に指定された後S30、暗号文CmCnの復号に利用する共通鍵Kが復号装置11に指定されるS31。なお、平文P1Pnのデータ長はブロック暗号のブロック長の整数倍にされているため、暗号文CmCnのデータ長は必ずブロック暗号のブロック長の整数倍になっている。共通鍵Kが指定されると、復号装置11の復号部110は、指定された共通鍵Kから、暗号文CmCnの先頭ブロックCmと交換する暗号ブロックのブロック番号を示す交換ブロック番号mを暗号化装置10と同じアルゴリズムで算出するS32。交換ブロック番号mを算出すると、復号装置11の復号部110は、暗号文CmCnの先頭ブロックCmと、交換ブロック番号mに対応する暗号文ブロックを交換する処理を実行した後S33、指定された共通鍵Kを用いて、暗号文CmCnの先頭ブロックC1を交換した状態の暗号文C1Cnを復号して、暗号文CmCnの基になった平文を生成するS34。第2の実施形態において、暗号化装置10の暗号化部100は、平文P1Pnを暗号化した暗号文C1Cmの先頭ブロックC1と、共通鍵Kから算出した交換ブロック番号mに対応する暗号文ブロックCmを入れ替えているため、交換ブロック番号mに対応する暗号文ブロックは暗号文ブロックC1になり、S34において、復号装置11の復号部110が生成する暗号文CmCnの平文は平文P1Pnになる。なお、PKCS5などの規格に従い所定のデータがパディングされて平文が暗号化されている場合、PKCS5などの規格に従いパディングされた所定のデータが、平文P1Ptから除去される。"