(57)【特許請求の範囲】
【請求項１】
ｎ個（ただし、ｎ≧２）の平文ブロックを暗号化する暗号化装置が行う暗号化方法であって、
前記平文ブロックは、１から（ｎ−１）番目の平文ブロックがそれぞれ一定の数のバイト数Ｎ（ただし、Ｎは正の整数）を有し、ｎ番目の平文ブロックがバイト数Ｍ（ただし、ＭはＭ≦Ｎの正の整数）を有するものであり、
前記暗号化装置に構成された暗号化部が、前記ｎ番目の平文ブロックを暗号化し、
前記暗号化装置に構成されたＣＢＣ(Cipher Block Chaining)モード暗号化部が、前記暗号化部により得られた暗号文を初期ベクトルとしてＣＢＣモードで前記ｎ−１番目以下の各平文ブロックを暗号化し、
前記暗号化装置に構成されたＯＦＢ(Output Feed Back)モード暗号化部が、前記ｎ−１番目の平文ブロックの暗号化結果を初期ベクトルとしてＯＦＢモードで前記ｎ番目の平文ブロックを暗号化する
ことを特徴とする暗号化方法。
【請求項２】
ｎ個（ただし、ｎ≧２）の暗号文ブロックを復号する復号装置が行う復号方法であって、
前記暗号文ブロックは、１から（ｎ−１）番目の暗号文ブロックがそれぞれ一定の数のバイト数Ｎ（ただし、Ｎは正の整数）を有し、ｎ番目の暗号文ブロックがバイト数Ｍ（ただし、ＭはＭ≦Ｎの正の整数）を有するものであり、
前記復号装置に構成されたＯＦＢ(Output Feed Back)モード復号部が、前記ｎ−１番目の暗号文ブロックを初期ベクトルとしてＯＦＢモードで前記ｎ番目の暗号文ブロックを復号し、
前記復号装置に構成された暗号化部が、前記ｎ番目の暗号文ブロックから復号された平文ブロックを暗号化し、
前記復号装置に構成されたＣＢＣ(Cipher Block Chaining)モード復号部が、前記暗号化部により得られた暗号文を初期ベクトルとしてＣＢＣモードで前記ｎ−１番目以下の各暗号文ブロックを復号する
ことを特徴とする復号方法。
【請求項３】
ｎ個（ただし、ｎ≧２）の平文ブロックを暗号化する暗号化装置が行う暗号化方法であって、
前記平文ブロックは、１から（ｎ−１）番目の平文ブロックがそれぞれ一定の数のバイト数Ｎ（ただし、Ｎは正の整数）を有し、ｎ番目の平文ブロックがバイト数Ｍ（ただし、ＭはＭ≦Ｎの正の整数）を有するものであり、
前記暗号化装置に構成された暗号化部が、前記２番目からｎ番目の中の１つの平文ブロックを暗号化し、
前記暗号化装置に構成されたＣＦＢ(Cipher Feed Back)モード暗号化部が、前記暗号化部により得られた暗号文を初期ベクトルとしてＣＦＢモードで前記１番目からｎ番目の各平文ブロックを暗号化する
ことを特徴とする暗号化方法。
【請求項４】
ｎ個（ただし、ｎ≧２）の暗号文ブロックを復号する復号装置が行う復号方法であって、
前記暗号文ブロックは、１から（ｎ−１）番目の暗号文ブロックがそれぞれ一定の数のバイト数Ｎ（ただし、Ｎは正の整数）を有し、ｎ番目の暗号文ブロックがバイト数Ｍ（ただし、ＭはＭ≦Ｎの正の整数）を有するものであり、
前記復号装置に構成された第１のＣＦＢ(Cipher Feed Back)モード復号部が、前記１番目の暗号文ブロックを初期ベクトルとして前記２番目からｎ番目の各暗号文ブロックをＣＦＢモードで復号し、
前記復号装置に構成された暗号化部が、前記２番目からｎ番目の中の１つの暗号文ブロックから復号された平文ブロックを暗号化し、
前記復号装置に構成された第２のＣＦＢモード復号部が、前記暗号化部により得られた暗号文を初期ベクトルとして前記１番目の暗号文ブロックをＣＦＢモードで復号する
ことを特徴とする復号方法。
【請求項５】
請求項１または３記載の暗号化方法をコンピュータで構成された暗号化装置に実行させるためのコンピュータプログラム。
【請求項６】
請求項２または４記載の復号方法をコンピュータで構成された復号装置に実行させるためのコンピュータプログラム。
【請求項７】
請求項５または６記載のコンピュータプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化方法および復号方法に関するものである。
【背景技術】
【０００２】
ＡＥＳ(Advanced Encryption Standard)等のブロック暗号を用いて秘密文書を暗号化する際、平文を構成するｎ個（ただし、ｎ≧２）の各平文ブロックのバイト数が一定の数Ｎである場合は、各平文ブロックの暗号化にＣＢＣ(Cipher Block Chaining)モードを使用できる。ｎ番目の平文ブロックのバイト数がＮ未満の場合、ｎ番目の平文ブロックにパディングデータを追加して平文ブロックのバイト数をＮにするパディングが行われる。例えば、パディングは、符号のない整数を「１」、「２」、「３」のように順次に平文ブロックに追加し、バイト数がＮになったときに終了する。そして、得られた各平文ブロックが暗号化装置により暗号化される。こうして得られた各暗号文ブロックを復号する復号装置は、パディングの仕組みに基づいて構成されており、これにより、パディングデータを区別して平文を得ることができる。
【０００３】
一方、ｎ−１番目以下の各平文ブロックのバイト数が一定の数Ｎであり、ｎ番目の平文ブロックのバイト数がＮ以下の任意数である場合、各平文ブロックの暗号化、復号にＣＦＢ(Cipher Feed Back)モードやＯＦＢ(Output Feed Back)モードを使用できる。
【０００４】
各ＣＢＣモード、ＣＦＢモード、ＯＦＢモードでの暗号化、復号には初期ベクトルが必要であり、非特許文献２のAppendix Cの規格によれば、初期ベクトルを毎回異ならせる必要がある。さらに、ＣＢＣモードおよびＣＦＢモードでは、初期ベクトルを予測不能なものにしなければならない。このため、例えば、TCP/IP通信におけるレイヤ３フレームの暗号化規格であるIPSecでは、平文に加えて、初期ベクトルのためのフィールドを設け、暗号化における初期ベクトルの生成に用いたデータをフィールドに格納し、フィールドのデータを使用して生成した初期ベクトルで復号を行う。
【０００５】
しかし、この方法では、フィールドを設けるため、トータルのバイト数が多くなり、バイト数の上限が規定されているイーサネット（登録商標）フレーム（レイヤ２フレームの１つ）内の各平文ブロックの暗号化、復号には使用できない。
【０００６】
特許文献１には、例えば、１つの平文ブロックをＥＣＢ(Electric Code Book)モードで暗号化し、得られた暗号文ブロックを初期ベクトルとして残りの各平文ブロックをＯＦＢモードで暗号化し、その暗号文ブロックをＥＣＢモードで復号し、その暗号文ブロックを初期ベクトルとして残りの各暗号文ブロックをＯＦＢモードで復号する方法が開示されている。
【０００７】
しかし、この方法では、ＥＣＢモードによる暗号化を行うので、得られた暗号文ブロックが解読され易い。ＥＣＢモードでは、初期ベクトルを用いずに暗号化・復号を行うため、平文の統計的性質を利用した暗号解読に弱い。よって、上記のような各平文ブロックを伝達するための暗号化、復号には推奨されていない（例えば、非特許文献２の6.1参照）。
【特許文献１】特開２００１−２８５２８１号公報
【非特許文献１】S.Kent, R.Atkinson, IPSec, 'IP Encapsulating Security Payload(ESP)', RFC 2406, November 1998
【非特許文献２】NIST(National Institute of Standards and Technology) Special Publication 800-38A, 'Recommendation for Block Cipher Modes of Operation Methods and Techniques',December 2001
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、短く且つ解読されにくい暗号文が得られる暗号化と当該暗号文に適した復号とに関する技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、請求項１の本発明は、ｎ個（ただし、ｎ≧２）の平文ブロックを暗号化する暗号化装置が行う暗号化方法であって、前記平文ブロックは、１から（ｎ−１）番目の平文ブロックがそれぞれ一定の数のバイト数Ｎ（ただし、Ｎは正の整数）を有し、ｎ番目の平文ブロックがバイト数Ｍ（ただし、ＭはＭ≦Ｎの正の整数）を有するものであり、前記暗号化装置に構成された暗号化部が、前記ｎ番目の平文ブロックを暗号化し、前記暗号化装置に構成されたＣＢＣ(Cipher Block Chaining)モード暗号化部が、前記暗号化部により得られた暗号文を初期ベクトルとしてＣＢＣモードで前記ｎ−１番目以下の各平文ブロックを暗号化し、前記暗号化装置に構成されたＯＦＢ(Output Feed Back)モード暗号化部が、前記ｎ−１番目の平文ブロックの暗号化結果を初期ベクトルとしてＯＦＢモードで前記ｎ番目の平文ブロックを暗号化することを特徴とする暗号化方法をもって解決手段とする。
【００１０】
請求項２の本発明は、ｎ個（ただし、ｎ≧２）の暗号文ブロックを復号する復号装置が行う復号方法であって、前記暗号文ブロックは、１から（ｎ−１）番目の暗号文ブロックがそれぞれ一定の数のバイト数Ｎ（ただし、Ｎは正の整数）を有し、ｎ番目の暗号文ブロックがバイト数Ｍ（ただし、ＭはＭ≦Ｎの正の整数）を有するものであり、前記復号装置に構成されたＯＦＢ(Output Feed Back)モード復号部が、前記ｎ−１番目の暗号文ブロックを初期ベクトルとしてＯＦＢモードで前記ｎ番目の暗号文ブロックを復号し、前記復号装置に構成された暗号化部が、前記ｎ番目の暗号文ブロックから復号された平文ブロックを暗号化し、前記復号装置に構成されたＣＢＣ(Cipher Block Chaining)モード復号部が、前記暗号化部により得られた暗号文を初期ベクトルとしてＣＢＣモードで前記ｎ−１番目以下の各暗号文ブロックを復号することを特徴とする復号方法をもって解決手段とする。
【００１１】
請求項３の本発明は、ｎ個（ただし、ｎ≧２）の平文ブロックを暗号化する暗号化装置が行う暗号化方法であって、前記平文ブロックは、１から（ｎ−１）番目の平文ブロックがそれぞれ一定の数のバイト数Ｎ（ただし、Ｎは正の整数）を有し、ｎ番目の平文ブロックがバイト数Ｍ（ただし、ＭはＭ≦Ｎの正の整数）を有するものであり、前記暗号化装置に構成された暗号化部が、前記２番目からｎ番目の中の１つの平文ブロックを暗号化し、前記暗号化装置に構成されたＣＦＢ(Cipher Feed Back)モード暗号化部が、前記暗号化部により得られた暗号文を初期ベクトルとしてＣＦＢモードで前記１番目からｎ番目の各平文ブロックを暗号化することを特徴とする暗号化方法をもって解決手段とする。
【００１２】
請求項４の本発明は、ｎ個（ただし、ｎ≧２）の暗号文ブロックを復号する復号装置が行う復号方法であって、前記暗号文ブロックは、１から（ｎ−１）番目の暗号文ブロックがそれぞれ一定の数のバイト数Ｎ（ただし、Ｎは正の整数）を有し、ｎ番目の暗号文ブロックがバイト数Ｍ（ただし、ＭはＭ≦Ｎの正の整数）を有するものであり、前記復号装置に構成された第１のＣＦＢ(Cipher Feed Back)モード復号部が、前記１番目の暗号文ブロックを初期ベクトルとして前記２番目からｎ番目の各暗号文ブロックをＣＦＢモードで復号し、前記復号装置に構成された暗号化部が、前記２番目からｎ番目の中の１つの暗号文ブロックから復号された平文ブロックを暗号化し、前記復号装置に構成された第２のＣＦＢモード復号部が、前記暗号化部により得られた暗号文を初期ベクトルとして前記１番目の暗号文ブロックをＣＦＢモードで復号することを特徴とする復号方法をもって解決手段とする。
【００１３】
請求項５の本発明は、請求項１または３記載の暗号化方法をコンピュータで構成された暗号化装置に実行させるためのコンピュータプログラムをもって解決手段とする。
【００１４】
請求項６の本発明は、請求項２または４記載の復号方法をコンピュータで構成された復号装置に実行させるためのコンピュータプログラムをもって解決手段とする。
【００１５】
請求項７の本発明は、請求項５または６記載のコンピュータプログラムが記録されたコンピュータ読み取り可能な記録媒体をもって解決手段とする。
【発明の効果】
【００１６】
本発明によれば、短く且つ解読されにくい暗号文が得られる暗号化と当該暗号文に適した復号とに関する技術を提供することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面を参照して説明する。
【００１８】
［第１の実施の形態］
図１は、第１の実施の形態に係る暗号化装置１の構成図である。
【００１９】
暗号化装置１は、例えば、秘密情報等を含む文書データである平文を暗号化する暗号化装置であり、ｎ個（ただし、ｎ≧２）の平文ブロック１０１、…、１０ｎ−１、１０ｎを、例えば、ＡＥＳ(Advanced Encryption Standard)を用いて暗号化する。
【００２０】
暗号化装置１は、ｎ番目の平文ブロック１０ｎを暗号化する暗号化部１１と、暗号化部１１により得られた暗号文を初期ベクトルとしてＣＢＣ(Cipher Block Chaining)モードでｎ−１番目以下の各平文ブロック１０１、…、１０ｎ−１を暗号化するＣＢＣモード暗号化部１２と、ｎ−１番目の平文ブロック１０ｎ−１の暗号化結果を初期ベクトルとしてＯＦＢ(Output Feed Back)モードでｎ番目の平文ブロック１０ｎを暗号化するＯＦＢモード暗号化部１３とを備える。図１では省略するが、ＣＢＣモード暗号化部１２とＯＦＢモード暗号化部１３には、同一の鍵が入力される。
【００２１】
ｎ−１番目以下の各平文ブロックのバイト数は一定の数Ｎ（例えば、１６である。以下同様）である。一方、ｎ番目の平文ブロックのバイト数はＮ以下の任意数である。これにより、平文ブロックのトータルのバイト数を任意数（Ｎの倍数以外の数でもよい）にすることができる。
【００２２】
（暗号化方法）
次に、暗号化装置１が行う暗号化方法を説明する。
【００２３】
まず、暗号化部１１が、平文ブロック１０ｎを暗号化する。次に、ＣＢＣモード暗号化部１２が、暗号化部１１により得られた暗号文を初期ベクトルとしてＣＢＣモードで各平文ブロック１０１、…、１０ｎ−１を暗号化する。これにより、ｎ−１番目以下の各暗号文ブロック２０１、…、２０ｎ−１が得られる。次に、ＯＦＢモード暗号化部１３が、平文ブロック１０ｎ−１の暗号化結果（暗号文ブロック２０ｎ−１）を初期ベクトルとしてＯＦＢモードで平文ブロック１０ｎを暗号化する。これにより、ｎ番目の暗号文ブロック２０ｎが得られる。
【００２４】
図２は、ＣＢＣモード暗号化部１２による上記暗号化の仕組みを示す図である。
【００２５】
ＣＢＣモード暗号化部１２は、まず、暗号化部１１により得られた暗号文である初期ベクトル１１１と平文ブロック１０１とでＸＯＲ（排他的論理和）演算を行い、演算結果を鍵５０１で暗号化する。これにより、暗号文ブロック２０１が得られる。
【００２６】
ＣＢＣモード暗号化部１２は、次に、暗号文ブロック２０１と平文ブロック１０２とでＸＯＲ演算を行い、演算結果を鍵５０１で暗号化する。これにより、暗号文ブロック２０２が得られる。
【００２７】
ＣＢＣモード暗号化部１２は、同様のことを順次に行い、その最後で得られた暗号文ブロックと平文ブロック１０ｎ−１とで、先頭から平文ブロック１０ｎを構成するバイト数だけＸＯＲ演算を行い、演算結果を鍵５０１で暗号化する。これにより、暗号文ブロック２０ｎ−１が得られる。
【００２８】
図３は、ＯＦＢモード暗号化部１３による上記暗号化の仕組みを示す図である。
【００２９】
ＯＦＢモード暗号化部１３は、暗号文ブロック２０ｎ−１を鍵５０１で暗号化し、得られた暗号文と平文ブロック１０ｎとで、先頭から平文ブロック１０ｎを構成するバイト数だけＸＯＲ演算を行う。これにより、演算結果である暗号文ブロック２０ｎが得られる。
【００３０】
上記の暗号化により、ｎ−１番目以下の各暗号文ブロックのバイト数は一定の数Ｎとなる。一方、ｎ番目の暗号文ブロックのバイト数はｎ番目の平文ブロックのバイト数と同数でありつまりＮ以下の任意数である。これにより、暗号文ブロックのトータルのバイト数は平文ブロックのトータルのバイト数と同数つまり任意数（Ｎの倍数以外の数でもよい）になる。
【００３１】
以上説明したように、第１の実施の形態に係る暗号化装置１とその暗号化方法によれば、各ＣＢＣモード、ＯＦＢモードによる暗号化に必要な各初期ベクトルを平文ブロックから得ることで、初期ベクトルのためのフィールドが不要であり、しかも、ＣＢＣモードおよびＯＦＢモードの初期ベクトルを毎回異ならせることができ、かつ、ＣＢＣモードの初期ベクトルを予測不能なものにすることができる。よって、得られた暗号文ブロックは、非特許文献２のAppendix Cの規格を満足でき、レイヤ２フレームの暗号に適応することができる。
【００３２】
また、ｎ番目の平文ブロックの暗号化にＯＦＢモードを使用することで、ｎ番目の平文ブロックのバイト数はＮ以下の任意数でよく、平文ブロックのトータルのバイト数を任意数（Ｎの倍数以外の数でもよい）にすることができる。また、バイト数をＮにするためのパディングを不要にでき、平文ブロックのトータルのバイト数が少なくなり、イーサネット（登録商標）フレーム内の各平文ブロックの暗号化に使用できる。
【００３３】
また、ＥＣＢモードによる暗号化を行わないことで、得られた暗号文ブロックが意図に反して第３者により解読される可能性を低減することができる。
【００３４】
［第２の実施の形態］
図４は、第２の実施の形態に係る復号装置２の構成図である。
【００３５】
復号装置２は、第１の実施の形態の暗号化装置１により得られた平文ブロックを復号するものであり、つまり、ｎ個（ただし、ｎ≧２）の暗号文ブロック２０１、…、２０ｎ−１、２０ｎを復号する復号装置である。
【００３６】
復号装置２は、ｎ−１番目の暗号文ブロック２０ｎ−１を初期ベクトルとしてＯＦＢモードでｎ番目の暗号文ブロック２０ｎを復号するＯＦＢモード復号部２１と、ｎ番目の暗号文ブロック２０ｎから復号された平文ブロック１０ｎを暗号化する暗号化部２２と、暗号化部２２により得られた暗号文を初期ベクトルとしてＣＢＣモードでｎ−１番目以下の各暗号文ブロック２０１、…、２０ｎ−１を復号するＣＢＣモード復号部２３とを備える。
【００３７】
図４では省略するが、ＯＦＢモード復号部２１とＣＢＣモード復号部２３には、同一の鍵が入力される。この鍵は、暗号化装置１で使用された鍵５０１と同一にする必要がある。また、暗号化部２２は、暗号化装置１の暗号化部１１と同一にする必要がある。
【００３８】
ｎ−１番目以下の各暗号文ブロックのバイト数は一定の数Ｎである。一方、ｎ番目の暗号文ブロックのバイト数はｎ番目の平文ブロックのバイト数と同数でありつまりＮ以下の任意数である。つまり、暗号文ブロックのトータルのバイト数は平文ブロックのトータルのバイト数と同数つまり任意数（Ｎの倍数以外の数でもよい）である。
【００３９】
（復号方法）
次に、復号装置２が行う復号方法を説明する。
【００４０】
まず、ＯＦＢモード復号部２１が、暗号文ブロック２０ｎ−１を初期ベクトルとして暗号文ブロック２０ｎを復号する。これにより、ｎ番目の平文ブロック１０ｎが得られる。次に、暗号化部２２が、暗号文ブロック２０ｎから復号された平文ブロック１０ｎを暗号化する。これにより得られた暗号文は、第１の実施の形態の初期ベクトル１１１と同じものとなる。次に、ＣＢＣモード復号部２３が、暗号化部２２により得られた暗号文を初期ベクトルとしてＣＢＣモードで各暗号文ブロック２０１、…、２０ｎ−１を復号する。これにより、ｎ−１番目以下の各平文ブロック１０１、…、１０ｎ−１が得られる。
【００４１】
図５は、ＯＦＢモード復号部２１による上記復号の仕組みを示す図である。
【００４２】
ＯＦＢモード復号部２１は、暗号文ブロック２０ｎ−１を鍵５０１で暗号化し、得られた暗号文と暗号文ブロック２０ｎとで、先頭から暗号文ブロック２０ｎを構成するバイト数だけＸＯＲ演算を行う。これにより、演算結果である平文ブロック１０ｎが得られる。
【００４３】
図６は、ＣＢＣモード復号部２３による上記復号の仕組みを示す図である。
【００４４】
ＣＢＣモード復号部２３は、まず、暗号文ブロック２０１を鍵５０１で暗号化し、得られた暗号文と初期ベクトル１１１とでＸＯＲ演算を行う。これにより、演算結果である平文ブロック１０１が得られる。
【００４５】
ＣＢＣモード復号部２３は、次に、暗号文ブロック２０２を鍵５０１で暗号化し、得られた暗号文と暗号文ブロック２０１とでＸＯＲ演算を行う。これにより、演算結果である平文ブロック１０２が得られる。
【００４６】
ＣＢＣモード復号部２３は、同様のことを順次に行い、最後に、暗号文ブロック２０ｎ−１を鍵５０１で暗号化し、得られた暗号文とｎ−２番目の暗号文ブロックとでＸＯＲ演算を行う。これにより、演算結果である平文ブロック１０ｎ−１が得られる。
【００４７】
上記の復号により、ｎ−１番目以下の各平文ブロックのバイト数は一定の数Ｎとなる。一方、ｎ番目の平文ブロックのバイト数はｎ番目の暗号文ブロックのバイト数と同数でありつまりＮ以下の任意数である。これにより、平文ブロックのトータルのバイト数は暗号文ブロックのトータルのバイト数と同数つまり任意数（Ｎの倍数以外の数でもよい）になる。
【００４８】
以上説明したように、第２の実施の形態に係る復号装置２とその復号方法によれば、各ＣＢＣモード、ＯＦＢモードによる復号に必要な各初期ベクトルを暗号文ブロックから得ることで、初期ベクトルのためのフィールドが不要であり、しかも、ＣＢＣモードおよびＯＦＢモードの初期ベクトルを毎回異ならせることができ、かつ、ＣＢＣモードの初期ベクトルを予測不能なものにすることができる。また、暗号文ブロックは、非特許文献２のAppendix Cの規格を満足でき、レイヤ２フレームの暗号に適応することができる。
【００４９】
［第３の実施の形態］
図７は、第３の実施の形態に係る暗号化装置３の構成図である。
【００５０】
暗号化装置３は、例えば、秘密情報等を含む文書データである平文を暗号化する暗号化装置であり、ｎ個（ただし、ｎ≧２）の平文ブロック１０１、…、１０ｎ−１、１０ｎを、例えば、ＡＥＳ(Advanced Encryption Standard)を用いて暗号化する。
【００５１】
暗号化装置３は、２番目からｎ番目の中の１つの平文ブロックを暗号化する暗号化部３１と、暗号化部３１により得られた暗号文を初期ベクトルとしてＣＦＢ(Cipher Feed Back)モードで１番目からｎ番目の各平文ブロックを暗号化するＣＦＢモード暗号化部３２とを備える。図７では省略するが、ＣＦＢモード暗号化部３２には、鍵が入力される。
【００５２】
ｎ−１番目以下の各平文ブロックのバイト数は一定の数Ｎである。一方、ｎ番目の平文ブロックのバイト数はＮ以下の任意数である。これにより、平文ブロックのトータルのバイト数を任意数（Ｎの倍数以外の数でもよい）にすることができる。
【００５３】
（暗号化方法）
次に、暗号化装置３が行う暗号化方法を説明する。
【００５４】
まず、暗号化部３１が、２番目からｎ番目の中の１つの平文ブロックを暗号化する。ここでは、２番目の平文ブロック１０２が暗号化されたこととする。次に、ＣＦＢモード暗号化部３２が、暗号化部３１により得られた暗号文を初期ベクトルとしてＣＦＢモードで各平文ブロック１０１、１０２、…、１０ｎを暗号化する。これにより、１番目からｎ番目の各暗号文ブロック２０１、２０２、…、２０ｎが得られる。
【００５５】
図８は、ＣＦＢモード暗号化部３２による上記暗号化の仕組みを示す図である。
【００５６】
まず、ＣＦＢモード暗号化部３２は、暗号化部３１により得られた暗号文である初期ベクトル３１１を鍵６０１で暗号化し、得られた暗号文と平文ブロック１０１とでＸＯＲ演算を行う。これにより、演算結果である暗号文ブロック２０１が得られる。
【００５７】
ＣＦＢモード暗号化部３２は、次に、暗号文ブロック２０１を鍵６０１で暗号化し、得られた暗号文と平文ブロック１０２とでＸＯＲ演算を行う。これにより、演算結果である暗号文ブロック２０２が得られる。
【００５８】
ＣＦＢモード暗号化部３２は、同様のことを順次に行い、その最後で得られた暗号文ブロックを鍵６０１で暗号化し、得られた暗号文と平文ブロック１０ｎとで、先頭から平文ブロック１０ｎを構成するバイト数だけＸＯＲ演算を行う。これにより、演算結果である暗号文ブロック２０ｎが得られる。
【００５９】
上記の暗号化により、ｎ−１番目以下の各暗号文ブロックのバイト数は一定の数Ｎとなる。一方、ｎ番目の暗号文ブロックのバイト数はｎ番目の平文ブロックのバイト数と同数でありつまりＮ以下の任意数である。これにより、暗号文ブロックのトータルのバイト数は平文ブロックのトータルのバイト数と同数つまり任意数（Ｎの倍数以外の数でもよい）になる。
【００６０】
以上説明したように、第３の実施の形態に係る暗号化装置３とその暗号化方法によれば、ＣＦＢモードによる暗号化に必要な各初期ベクトルを平文ブロックから得ることで、初期ベクトルのためのフィールドが不要であり、しかも、ＣＦＢモードの初期ベクトルを毎回異ならせることができ、かつ、ＣＦＢモードの初期ベクトルを予測不能なものにすることができる。よって、得られた暗号文ブロックは、非特許文献２のAppendix Cの規格を満足でき、レイヤ２フレームの暗号に適応することができる。
【００６１】
また、ｎ番目の平文ブロックの暗号化にＣＦＢモードを使用することで、ｎ番目の平文ブロックのバイト数はＮ以下の任意数でよく、平文ブロックのトータルのバイト数を任意数（Ｎの倍数以外の数でもよい）にすることができる。また、バイト数をＮにするためのパディングを不要にでき、平文ブロックのトータルのバイト数が少なくなり、イーサネット（登録商標）フレーム内の各平文ブロックの暗号化に使用できる。
【００６２】
また、ＥＣＢモードによる暗号化を行わないことで、得られた暗号文ブロックが意図に反して第３者により解読される可能性を低減することができる。
【００６３】
［第４の実施の形態］
図９は、第４の実施の形態に係る復号装置４の構成図である。
【００６４】
復号装置４は、第３の実施の形態の暗号化装置３により得られた平文ブロックを復号するものであり、つまり、ｎ個（ただし、ｎ≧２）の暗号文ブロック２０１、２０２、…、２０ｎを復号する復号装置である。
【００６５】
復号装置４は、１番目の暗号文ブロック２０１を初期ベクトルとして２番目からｎ番目の各暗号文ブロック２０２、…、２０ｎをＣＦＢモードで復号する第１のＣＦＢモード復号部４１と、２番目からｎ番目の暗号文ブロック２０２、…、２０ｎの中の１つの暗号文ブロックから復号された平文ブロックを暗号化する暗号化部４２と、暗号化部４２により得られた暗号文を初期ベクトルとして１番目の暗号文ブロック２０１をＣＦＢモードで復号する第２のＣＦＢモード復号部４３とを備える。
【００６６】
図９では省略するが、第１のＣＦＢモード復号部４１と第２のＣＦＢモード復号部４３には、同一の鍵が入力される。この鍵は、暗号化装置３で使用された鍵６０１と同一にする必要がある。また、暗号化部４２は、暗号化装置３の暗号化部３１と同一にする必要がある。
【００６７】
ｎ−１番目以下の各暗号文ブロックのバイト数は一定の数Ｎである。一方、ｎ番目の暗号文ブロックのバイト数はｎ番目の平文ブロックのバイト数と同数でありつまりＮ以下の任意数である。つまり、暗号文ブロックのトータルのバイト数は平文ブロックのトータルのバイト数と同数つまり任意数（Ｎの倍数以外の数でもよい）である。
【００６８】
（復号方法）
次に、復号装置４が行う復号方法を説明する。
【００６９】
まず、第１のＣＦＢモード復号部４１が、暗号文ブロック２０１を初期ベクトルとして各暗号文ブロック２０２、…、２０ｎをＣＦＢモードで復号する。これにより、２番目からｎ番目の各平文ブロック１０２、…、１０ｎが得られる。次に、暗号化部４２が、平文ブロック１０２、…、１０ｎの中の１つの暗号文ブロックから復号された平文ブロックを暗号化する。復号される暗号文ブロックは、暗号化装置３の暗号化部３１により暗号化された平文ブロックがＣＦＢモード暗号化部３２により暗号化されて得られた暗号文ブロックである必要がある。ここでは、暗号化部４２が、２番目の暗号文ブロック２０２から復号された２番目の平文ブロック１０２を暗号化したこととする。これにより得られた暗号文は、第３の実施の形態の初期ベクトル３１１と同じものとなる。
【００７０】
次に、第２のＣＦＢモード復号部４３が、暗号化部４２により得られた暗号文を初期ベクトルとして暗号文ブロック２０１をＣＦＢモードで復号する。これにより、１番目の平文ブロック１０１が得られる。
【００７１】
図１０は、第１のＣＦＢモード復号部４１による上記復号の仕組みを示す図である。
【００７２】
第１のＣＦＢモード復号部４１は、まず、暗号文ブロック２０１を鍵６０１で暗号化し、得られた暗号文と暗号文ブロック２０２とでＸＯＲ演算を行う。これにより、演算結果である平文ブロック１０２が得られる。
【００７３】
第１のＣＦＢモード復号部４１は、次に、暗号文ブロック２０２を鍵６０１で暗号化し、得られた暗号文と暗号文ブロック２０３とでＸＯＲ演算を行う。これにより、演算結果である平文ブロック１０３が得られる。
【００７４】
第１のＣＦＢモード復号部４１は、同様のことを順次に行い、その最後で得られた暗号文ブロックを鍵６０１で暗号化し、得られた暗号文と暗号文ブロック２０ｎとで、先頭から暗号文ブロック２０ｎを構成するバイト数だけＸＯＲ演算を行う。これにより、演算結果である平文ブロック１０ｎが得られる。
【００７５】
図１１は、第２のＣＦＢモード復号部４３による上記復号の仕組みを示す図である。
【００７６】
第２のＣＦＢモード復号部４３は、初期ベクトル３１１を鍵６０１で暗号化し、得られた暗号文と暗号文ブロック２０１とでＸＯＲ演算を行う。これにより、演算結果である平文ブロック１０１が得られる。
【００７７】
上記の復号により、ｎ−１番目以下の各平文ブロックのバイト数は一定の数Ｎとなる。一方、ｎ番目の平文ブロックのバイト数はｎ番目の暗号文ブロックのバイト数と同数でありつまりＮ以下の任意数である。これにより、平文ブロックのトータルのバイト数は暗号文ブロックのトータルのバイト数と同数つまり任意数（Ｎの倍数以外の数でもよい）になる。
【００７８】
以上説明したように、第４の実施の形態に係る復号装置４とその復号方法によれば、ＣＦＢモードによる復号に必要な各初期ベクトルを暗号文ブロックから得ることで、初期ベクトルのためのフィールドが不要であり、しかも、ＣＦＢモードの初期ベクトルを毎回異ならせることができ、かつ、ＣＦＢモードの初期ベクトルを予測不能なものにすることができる。また、暗号文ブロックは、非特許文献２のAppendix Cの規格を満足でき、レイヤ２フレームの暗号に適応することができる。
【００７９】
なお、本実施の形態の各暗号化方法、各復号方法をコンピュータで構成された暗号化装置、復号装置に実行させるためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に格納し、陳列などして流通させたり、当該コンピュータプログラムをインターネットなどの通信網を介して伝送させてもよい。
【図面の簡単な説明】
【００８０】
【図１】第１の実施の形態に係る暗号化装置１の構成図である。
【図２】ＣＢＣモード暗号化部１２による暗号化の仕組みを示す図である。
【図３】ＯＦＢモード暗号化部１３による暗号化の仕組みを示す図である。
【図４】第２の実施の形態に係る復号装置２の構成図である。
【図５】ＯＦＢモード復号部２１による復号の仕組みを示す図である。
【図６】ＣＢＣモード復号部２３による復号の仕組みを示す図である。
【図７】第３の実施の形態に係る暗号化装置３の構成図である。
【図８】ＣＦＢモード暗号化部３２による暗号化の仕組みを示す図である。
【図９】第４の実施の形態に係る復号装置４の構成図である。
【図１０】第１のＣＦＢモード復号部４１による復号の仕組みを示す図である。
【図１１】第２のＣＦＢモード復号部４３による復号の仕組みを示す図である。
【符号の説明】
【００８１】
１、３…暗号化装置
２、４…復号装置
１１、２２、３１、４２…暗号化部
１２…ＣＢＣモード暗号化部
１３…ＯＦＢモード暗号化部
２１…ＯＦＢモード復号部
２３…ＣＢＣモード復号部
３２…ＣＦＢモード暗号化部
４１…第１のＣＦＢモード復号部
４３…第２のＣＦＢモード復号部
【図１】
0004658150.tif 000002
【図２】
0004658150.tif 000003
【図３】
0004658150.tif 000004
【図４】
0004658150.tif 000005
【図５】
0004658150.tif 000006
【図６】
0004658150.tif 000007
【図７】
0004658150.tif 000008
【図８】
0004658150.tif 000009
【図９】
0004658150.tif 000010
【図１０】
0004658150.tif 000011
【図１１】
0004658150.tif 000012