(57)【要約】本発明は、ランダムアクセスメモリにデータを格納する方法と、暗号化装置および解読装置に関する。本方法は、それぞれ指定された個数のデータビットを含むデータワードを格納できるランダムアクセスメモリに、データを格納する方法であって、次のことを意図する。すなわち格納する前にいずれのデータワードをも暗号化するが、そのためには、いずれのデータワードからも、またはそのデータワードから導き出されたデータワードから、第１の並べ替えキーに従って個々のデータビットを１対１対応で並べ替えすることによって、指定された個数のデータビットを含む並べ替え済みのデータワードを記憶する。
2007510959.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ指定された個数のデータビットを含むデータワードを格納できるランダムアクセスメモリにデータを格納する方法において、格納前にいずれのデータワード（Ｍ）をも暗号化し、その暗号化のために、いずれのデータワード（Ｍ）からも、またはそのデータワード（Ｍ）から導き出されたデータワードから、第１の並べ替えキー（Ｐ）を用いて個々のデータビット（Ｍ［ｎ−１］〜Ｍ［０］）を１対１対応で並べ替えることにより、指定された個数のデータビットを含む並べ替え済みデータワード（Ｍｐ）を生成することを特徴とする、上記の方法。
【請求項２】
並べ替え済みデータワード（Ｍｐ）の個々のデータビット（Ｍ［ｎ−１］〜Ｍ［０］）が、格納される前に、第１の置き換えキーを用いて置き換えられて、暗号化済みデータワード（Ｍ′）が供給される、請求項１に記載の方法。
【請求項３】
データワード（Ｍ）の個々のデータビットが、並べ替えられる前に、第１の置き換えキー（Ｓ）を用いて置き換えられて、置き換え済みデータワードが供給される、請求項１に記載の方法。
【請求項４】
並べ替えキー（Ｐ）が、データビットの個数ｎに相当する個数の一意的部分キー（Ｐ［ｎ−１］〜Ｐ［０］）を備え、この部分キーはそれぞれ、並べ替え済みデータワード（Ｍｐ）のデータビット（Ｍｐ［ｎ−１］〜Ｍｐ［０］）に割り当てられ、またこの部分キーはそれぞれ、このデータビット（Ｍｐ［ｎ−１］〜Ｍｐ［０］）にマッピングされるべき並べ替え済みデータワード（Ｍ）のデータビット（Ｍ［ｎ−１］〜Ｍ［０］）を示し、その際いずれの部分キー（Ｐ［ｎ−１］〜Ｐ［０］）も、ある個数のキービット（Ｐ［ｎ−１，ｍ−１］〜Ｐ［ｎ−１，０］，Ｐ［ｋ，ｍ−１］〜Ｐ［ｋ，０］，Ｐ［０，ｍ−１］〜Ｐ［０，０］）を含む、請求項１から３のいずれか１項に記載の方法。
【請求項５】
並べ替えられるべきデータワード（Ｍ）のデータビット（Ｍ［ｎ−１］〜Ｍ［０］）を、並べ替え済みデータワードのデータビット（Ｍｐ［ｋ］）にマッピングするが、そのマッピングは部分キーＰ［ｋ］を用いて、下記の手順により段階的に行われる、請求項４に記載の方法、
ａ）部分キー（Ｐ［ｋ］）の第１のキービット（Ｐ［ｋ，０］）に従って、並べ替えられるべきデータワード（Ｍｐ）から第１のグループのデータビットを選択する、
ｂ）部分キー（Ｐ［ｋ］）の第２のキービット（Ｐ［ｋ，１］）に従って、第１のグループのデータビットから第２のグループのデータビットを選択する、
ｃ）選択されたグループが、並べ替え済みデータワード（Ｍｐ）のデータビット（Ｍｐ［ｋ］）に相当するデータビットを、１つしか含まなくなるまで、第２のキービット（Ｐ［ｋ，２］．．．Ｐ［ｋ，ｍ−１］）を１つずつ用いて、手順ｂ）を繰り返す。
【請求項６】
データビットの１つのグループに含まれるデータビットの個数を、段階ごとに係数２相当分減少させる、請求項５に記載の方法。
【請求項７】
第１の置き換えキー（Ｓ）が、置き換えられるべきデータワード（Ｍｐ）のデータビットの個数に相当する個数のキービット（Ｓ［ｎ−１］．．．Ｓ［０］）を備え、その際、置き換えられるべきデータワード（Ｍｐ）のいずれのデータビットも、このキービット（Ｓ［ｎ−１］．．．Ｓ［０］）に従って、変更されないままあるいは反転されて、置き換え済みデータワード（Ｍ′）のデータビット（Ｍ′［ｎ−１］．．．Ｍ′［０］）にマッピングされる、請求項１から６のいずれか１項に記載の方法。
【請求項８】
並べ替えキー（Ｐ）と置き換えキー（Ｓ）が、メモリに新たに書き込まれる前、消去後新たに生成される、請求項１から７のいずれか１項に記載の方法。
【請求項９】
並べ替えキー（Ｐ）を生成するため下記の手順を行う、前記各請求項のいずれかに記載の方法、
ａ）部分並べ替えキーをランダムに生成し、並べ替え済みデータワードのビットポジションにその部分キーを割り当てる、
ｂ）生成された部分並べ替えキーが、並べ替え済みデータワードのそのほかのビットポジションのためすでに生成済みであるかどうか点検し、もしまだ生成済みでなければ、その生成された部分並べ替えキーを保持し、もしすでに生成済みであれば、その生成された部分並べ替えキーを破棄する、
ｃ）並べ替え済みデータワード（Ｍｐ）のいずれのビットポジションについても部分キーが生成されるまで、手順ａ）およびｂ）を行う。
【請求項１０】
第１のキーを用いてデータワード（Ｍ）から生成されたデータワード（Ｍ′）を、メモリから読み出し後、第１の並べ替えキー（Ｐ）と適合された第２の並べ替えキー（Ｐ′）を用いて並べ替えて、データワードを生成する、請求項１から９のいずれか１項に記載の方法。
【請求項１１】
データビット（Ｍ［ｎ−１］，Ｍ［ｋ］，Ｍ［０］）を含むデータワード（Ｍ）を暗号化／解読する装置であって、かつ下記の事物を持つ並べ替えユニット（１４）を備える同装置：
―並べ替えられるべきデータワード（Ｍ）のデータビット（Ｍ［ｎ−１］，Ｍ［ｋ］，Ｍ［０］）を供給するためのデータインプット、
―指定された長さ（ｎ）の並べ替え済みデータワード（Ｍｐ）のデータビット（Ｍｐ［ｎ−１］，Ｍｐ［ｋ］，Ｍｐ［０］）を供給するためのアウトプット、
―データビットの個数に相当する個数（ｎ）の部分キー（Ｐ［ｎ−１］．．．Ｐ［０］）を含む並べ替えキー（Ｐ）を供給するための並べ替えキーインプット、
―データビットの個数に相当する個数の選択ユニット（１４＿ｎ−１，１４＿ｋ，１４＿０）、ただし、この選択ユニットそれぞれに部分キーが１つずつ割り当てられ、選択ユニットそれぞれが、並べ替え済みデータワード（Ｍｐ）のデータビット（Ｍｐ［ｎ−１］，Ｍｐ［ｋ］，Ｍｐ［０］）を１つずつ、部分キー（Ｐ［ｎ−１］．．．Ｐ［０］）の１つずつに従って、並べ替えされるべきデータワード（Ｍ）のデータビットから供給する。
【請求項１２】
いずれの選択ユニット（１４＿ｋ）も、部分キーの並べ替えキービットの個数に相当する個数の順次並べて配置された選択段（１４１＿ｎ−１，１４１＿ｋ，１４１＿０）を備え、この場合、第１の選択段（１４１＿０）は、第１のキービット（Ｐ［ｋ，０］）に従って、並べ替えされるべきデータワード（Ｍ）から第１のグループのデータビットを選択して供給するために形成され、またこの場合、続く選択段（１４１＿１，１４１＿２，１４１＿ｍ−１）は、それぞれキービット（Ｐ［ｋ，１］，Ｐ［ｋ，２］，Ｐ［ｋ，ｍ−１］，）に従って、それぞれその前の選択段から供給されたデータビットのグループから、１つの下位グループを選択する、請求項１１に記載の装置。
【請求項１３】
並べ替えユニット（１４）に置き換えユニットが前置または後置され、この置き換えユニットが、置き換えキー（Ｓ）に従って、置き換えられるべきデータワード（Ｍｐ）のデータビット（Ｍｐ［ｎ−１］，Ｍｐ［ｋ］，Ｍｐ［０］）を置き換える、請求項１１または１２に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ランダムアクセスメモリと、暗号化装置および解読装置とに、データを格納する方法に関する。
【背景技術】
【０００２】
データ保全の保証のため、または著作権保護のためには、たとえばＥＰＲＯＭ、ＥＥＰＲＯＭ、ＣＤ‐ＲＯＭ、ＣＶＤ‐ＲＯＭなどといった読み出し専用メモリ（ＲＯＭ）に、データを暗号化して格納することが知られている。この場合これらのデータは、実行可能プログラムのデータ（プログラムコード）に関するものでも、ビデオデータまたはオーディオデータに関するものでもあり得る。そのほか、ビデオまたはオーディオデータを暗号化して、送信装置から受信装置に転送することも知られている。
【０００３】
暗号化された上で格納または転送されたデータを利用できるのは、“適切な”キーを備えてそれに対応する解読ユニット（デコーダ）を持つユーザだけである。
たとえばＤＥＳ処理方式（ＤＥＳ＝Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）またはＡＥＳ処理方式（ＡＥＳ＝Ａｄｖａｍｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）のような従来型の暗号化アルゴリズムは、データをブロックごとに暗号化／符号化する。その際たとえばＤＥＳ処理方式の場合、１ブロックでそれぞれ６４個のデータビットを符号化する。この処理方式の場合、１つのデータブロックに含まれるデータビットの個数は、１つの処理ユニットによって処理可能なデータワードのデータビット個数よりも、通常は多い。したがってデータブロックを解号した後得られるデータワードは、さらに処理される前に、ランダムアクセスメモリ（ＲＡＭ＝Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）によってファイルされる必要がある。
【０００４】
処理ユニットの外部に配置されるこのようなＲＡＭは、次のような場合、安全上のリスクがある。それは、解読されたデータが、ＲＡＭと処理ユニットの間の接続区間で傍受される可能性がある場合である。これらのデータ、たとえばビデオまたはオーディオデータは、暗号化されずに格納され、したがって不正な利用のためにアクセスされる可能性がある。
【０００５】
ＲＡＭに格納されたデータがプログラムコードであるならば、暗号化されずアクセス可能なプログラムコードを用いて、無許可の者がプログラムの走行を検知できるという危険がある。そのほかプログラムを実行するユニットに、無許可のプログラムコードが供給されて、たとえば正規のプログラムコードによっては作動可能となるはずがない追加的な機能が、作動可能となる危険がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、ＲＡＭにデータを格納する安全な方法として、上記の欠点を持たず、わずかな費用で実現可能な方法と、ＲＡＭに格納されるべきデータを暗号化／解読する装置を示すことである。
【課題を解決するための手段】
【０００７】
これらの目的は、請求項１に記載の方法と、請求項１２に記載の装置とによって解決される。本発明の有利な実施形態を、従属請求項に記載した。
【０００８】
本発明の方法は、ランダムアクセスメモリ（ＲＡＭ）にデータを格納するためのもので、指定された個数のデータビットを含むデータワードを、このＲＡＭに格納することができる。この方法は、格納前にいずれのデータワードをも暗号化することを意図し、そのためいずれのデータワードからも、あるいはそのデータワードから導き出されたデータワードから、第１の並べ替えキーを用いて個々のデータビットを１対１対応で並べ替えることにより、指定された個数のデータビットを含む並べ替え済みデータワードを生成する。
【０００９】
この方法の場合、並べ替え済みデータワードの各データビットを、格納前に第１の置き換えキーを用いて置き換えれば有利である。この場合並べ替えとそれに続く置き換えによって生じた暗号化済みデータワードが、メモリに格納される。この関連では、暗号化されるべきデータワードのデータビットを、並べ替え前に第１の置き換えキーを用いて置き換え、置き換えとそれに続く並べ替えから得られたデータワードを、暗号化済みデータワードとして格納することもできる。
【００１０】
個々のデータワードの暗号化は、好ましくはそのデータワードを処理する処理ユニットが組み込まれているとものと同じチップで行う。このチップから外部のＲＡＭメモリに格納のため転送されたデータワードは、この方法の場合暗号化され、したがって障害となる影響や、無許可のデータ傍受に対して保護された状態にある。暗号化はこの方法の場合データワードごとに行われ、したがって―ブロックごとの暗号化とは異なって―暗号化ないし解読のためチップにメモリの追加を必要としない。
【００１１】
個々のデータビットの並べ替えを並べ替えキーに従って行うのは、効率的な暗号化方法である。３２ビット幅のデータワードの場合、３２！≒２．６・１０35個の異なる並べ替え方がある。並べ替えだけでなく、インプットデータワードまたはすでに並べ替え済みのデータワードの置き換えを、３２ビット長さの置き換えキーを用いて行うならば、可能性のある暗号化のこの個数は、３２ビット長さのデータワードの場合、係数２35相当増加する。
【００１２】
置き換えキーに従って行われる、置き換えられるべきデータワードの置き換えは、たとえばデータワードのいずれのデータビットにも置き換えキーのキービットを割り当てることによって行われる。その際各データビットは、割り当てられた置き換えキービットの値に応じて、変更されないままあるいは反転されて、置き換えから生じたデータワードにマッピングされる。
【００１３】
１つの実施形態において、並べ替えキーの含む部分キーは、並べ替えられるべきデータワードのデータビット個数に応じた個数であって、一意的である。またこの部分キーは、並べ替えから生じた並べ替え済みデータワードの１つのデータビットに、それぞれ割り当てられている。個々の部分キーは、並べ替えられるべきデータワードのデータビットのうちどれが、部分キーが割り当てられている各データビットにマッピングされているかを、表示する。
【００１４】
この場合並べ替えキーのいずれも部分キーも、ある個数のキービットを含む。この場合好ましくは、並べ替えられたデータワードのデータビットへの、並べ替えられるべきデータワードのデータビットのマッピングは、部分キーを用いて、下記の手順で段階的に行うものとする：
ａ）並べ替えられるべきデータワードのデータビットから、部分キーの第１のキービットに従って、第１のグループのデータビットを選択する。
ｂ）前の選択から得られた第１のグループのデータビットから、部分キーの第２のキービットに従って、第２のグループのデータビットを選択する。
ｃ）その都度もう１つのキービットを用いて手順段階ｂ）を繰り返し、その都度、前の選択によって得られたグループから、もう１つのグループを選択する。そして選択されたグループが含むデータビット、かつ並べ替え済みデータワードのデータビットに相当する同データビットがただ１つとなるまで、これを繰り返す。
【００１５】
このような段階的な選択手順は、並べ替え済みデータワードのデータビットに、並べ替えられるべきデータワードのデータビットをマッピングするためのものである。この手順には、それを実現するのにメモリ素子を必要としないという利点がある。
【００１６】
並べ替えキーと、場合によっては置き換えキーとは、ＲＡＭメモリに新しく書き込む前、たとえばＲＡＭメモリに含まれる機器をスイッチオンした後に、新たに生成される。
データビットの個数に相当する個数の置き換えキービットを含む置き換えキーは、この場合、相当する個数のビットを、乱数発生器によって供給されたシーケンスから取り出すことによって生成される。
【００１７】
並べ替えキーを生成する場合、各部分キーがたがいに異なる必要があることに注意しなければならない。これは、並べ替え済みデータワードのデータビットに、並べ替えられるべきデータワードのデータビットが、一意的に割り当てられるようにするためである。個々の部分並べ替えキーは、それぞれ並べ替え済みデータワードの１つのビットポジションに割り当てられていて、それらを合わせて並べ替えキーが得られるものである。これら個々の部分並べ替えキーを生じるため、次のことを意図する。すなわち、並べ替え済みデータワードのいずれのビットポジションについても部分並べ替えキーを順次生成し、その際、生成された部分並べ替えキーがほかのビットポジションのためすでに生成されていたかどうかを、その都度点検する。この部分並べ替えキーがすでに生成されていたならば、このキーは破棄され、新たな部分並べ替えキーが各ビットポジションのため無作為に生成される。無作為に生成された部分並べ替えキーがまだ存在しないならば、そのときどきのビットポジションのため、このキーを維持する。並べ替え済みデータワードのいずれのビットポジションにも、並べ替えられるべきデータワードのデータビットを選択するための部分並べ替えキーが割り当てられるまで、この手順を繰り返す。
【００１８】
ＲＡＭに格納されているデータワードの解読は、暗号化手順と同様な方法で行われる。並べ替えと置き換えを行う２段階手順において、暗号化されるべきデータワードをまず並べ替え、次に置き換える場合、解読に際しては、暗号化済みデータワードを、まず第２の置き換えキーを用いて“逆に”置き換え、暗号化の際に行われた置き換えをもとの状態にする。続いて第２の並べ替えキーを用いて“逆に”並べ替え、暗号化の際に行われた並べ替えをもとの状態にする。
【００１９】
データワードの暗号化の際にまず置き換えを、次に並べ替えを行う場合、解読に際しては、暗号化済みデータワードを、まず第２の並べ替えキーを用いて並べ替え、つづいて置き換えて、当初のデータワードを回復する。
【００２０】
用いられた置き換えの方法に応じて、第１の置き換えキーは、第２の置き換えキーと同一のものを選択することができる。たとえばこの置き換えが、置き換えキーのキービットに従って、個々のデータビットを変更しないまま、または反転して、マッピングさせる場合である。
【発明を実施するための最良の形態】
【００２１】
下記に図面を用いた実施例により、本発明をさらに詳しく説明する。
特に記載のない限り、各図において同じ部品および同じ意味の信号には、同じ記号をつける。
【００２２】
図１に示すランダムアクセスメモリ（ＲＡＭ）２０は、ｎビット長さのデータワードを格納するために設けられたものである。メモリ２０は、格納されるべきデータワードを読み込むインプット２１と、格納されたデータワードを読み出すアウトプット２２を備える。個々のデータワードをそこに格納するメモリアドレス、または個々のデータワードをそこから読み出すメモリアドレスをメモリに知らせる制御ラインは、図１の図示を省略する。
【００２３】
メモリ２０に読み込まれたデータワード、ないしこのメモリから読み出されたデータワードの処理は、データ処理ユニット３０、たとえばプロセッサで行われる。このプロセッサの種類に応じて、メモリ２０にファイルされたデータワードは、たとえばそのプロセッサが実行するプログラムコードのデータワードであり、あるいはプロセッサ３０と適切な出力ユニットを通じて人間が感知するビデオデータ、またはオーディオデータのデータワードである。
【００２４】
データ処理ユニット３０とメモリ２０は、１つの共通のチップには収められていない。このことを図１では、データ処理ユニット３０とメモリ２０の間の点線で示している。データ処理ユニット３０とメモリ２０の間のデータ通信が”傍受”されたり、妨害されたりするのを防止するため、データ処理ユニット３０とメモリ２０の間で、データ処理ユニット３０が配置されていると同じチップ上に、暗号化・解読装置１０を設ける。この装置１０は、データ処理ユニット３０から出力されたデータワードＭを暗号化して、暗号化されたデータワードＭ′を供給し、このデータワードはメモリ２０にワードごとにファイルされる。逆方向において装置１０は、暗号化されてメモリ２０にファイルされているデータワードＭ′を解読し、データ処理ユニット３０で処理可能な当初のデータワードをふたたび生成する。図１以降で、Ｍは、長さｎの暗号化されていない任意のデータワードを示し、Ｍ′は、データワードＭを暗号化して生じた、長さｎの暗号化済みの任意のデータワードを示す。
【００２５】
図２は、このような暗号化・解読装置１０の構造を模式的に示す。この装置は暗号化ユニット１１を備え、このユニットは、暗号化されていないデータワードＭを供給するためのｎビット幅のインプットと、暗号化済みデータワードＭ′を出力するためのアウトプット１１１とを備える。データワードＭの暗号化は、キー発生器１３から供給される第１のキーＣに従って行われる。この第１のキーＣを供給するため、２進数の乱数シーケンスＲＳが、２進数の乱数発生器１２からキー発生器１３に供給される。
【００２６】
装置１０はそのほか解読装置１１′を備え、この解読装置は、ｎビット幅の暗号化済みデータワードＭ′を供給するインプット１１０′と、暗号化済みデータワードＭ′から生じた解読済みデータワードＭを供給するアウトプット１１１′とを持つ。この解読は第２のキーＣ′に従って行われ、このキーは第１のキーＣに合わせてあり、やはりキー発生器１３から供給される。
【００２７】
この暗号化ユニットは、第１のキーＣを用いて、このデータワードを暗号化済みデータワードＭ′に一意的にマッピングし、そのとき次の式が成立する。
Ｍ′＝Ｅ（Ｍ，Ｃ）          （１）
ここでＥは、暗号化ユニット１１によって実現される暗号化関数を表す。同様に次の式が成立する。
Ｍ＝Ｄ（Ｍ′，Ｃ′）        （２）
ここでＤは、解読ユニット１１′によって実現される解読関数を表す。
【００２８】
図３は、暗号化ユニット１１の実施例を模式的に示す。この例の暗号化ユニットは、並べ替えユニット１４と置き換えユニット１５とを備える。並べ替えユニット１４は、データワードＭの個々のデータビットＭ［ｎ−１］．．．Ｍ［０］を供給するインプットと、並べ替え済みデータワードＭｐのデータビットＭｐ［ｎ−１］，Ｍｐ［ｋ］，Ｍｐ［０］を供給するアウトプットとを備える。並べ替え済みデータワードＭｐの個々のデータビットＭｐ［ｎ−１］．．．Ｍｐ［０］は、並べ替えキーＰに従っての並べ替えにより、データワードＭのデータビットＭ［ｎ−１］．．．Ｍ［０］から生じる。この並べ替えは一意的に行われる。すなわち暗号化されていないデータワードＭのデータビットが１つずつ、並べ替え済みデータワードＭｐのデータビットにマッピングされる。
【００２９】
並べ替え済みデータワードＭｐのデータビットＭｐ［ｎ−１］．．．Ｍｐ［０］は、この例ではつづいて置き換えユニット１５により、置き換えキーＳに従って置き換えられる。この場合置き換えユニット１５は、暗号化済みデータワードＭ′のデータビットを供給する。置き換えユニット１５は、置き換えキーＳに従って、並べ替え済みデータワードＭｐのデータビットを１つずつ、暗号化済みデータワードＭ′のデータビットＭ′［ｎ−１］．．．Ｍ′［０］にマッピングする。
【００３０】
並べ替えユニット１４の構造と機能形態を、下記に図５〜７を用いて説明する。つづいて置き換えユニット１５の構造と機能形態を、図８および９を用いて説明する。
【００３１】
図４に示すように並べ替えユニット１４は、暗号化されるべきデータワードＭのデータビットの個数に相当する個数の選択ユニット１４＿ｎ−１．．．１４＿０を持つ。これら選択ユニットのいずれにも、暗号化されるべきデータワードＭのすべてのデータビットＭ［ｎ−１］．．．Ｍ［０］が供給される。また個々の選択ユニット１４＿ｎ−１．．．１４＿０は、並べ替え済みデータワードＭｐのデータビットＭｐ［ｎ−１］．．．Ｍｐ［０］をそれぞれ１つずつ供給する。並べ替え済みデータワードＭｐのデータビットの１つに、暗号化されていないデータワードＭのデータビットの１つをマッピングするが、これは選択ユニット１４＿ｎ−１．．．１４＿０において、部分並べ替えキーＰ［ｎ−１］，Ｐ［ｋ］，Ｐ［０］に従って行われる。これらの部分並べ替えキーはそれぞれたがいに異なるが、これは、インプットデータワードＭのデータビットのいずれをも、並べ替え済みデータワードＭｐの１つのデータビットに、正確に１回マッピングするためである。この部分並べ替えキーを合わせて並べ替えキーが得られ、その際Ｐ＝（Ｐ［ｎ−１］，．．．Ｐ［０］）が成立する。
【００３２】
個々の選択ユニット１４＿ｎ−１．．．１４＿０は同じ構造であって、これらの選択ユニットの任意の１つの構造、この場合選択ユニット１４＿ｋの構造を、下記に図５を用いて説明する。
【００３３】
この選択ユニット１４＿ｋは、部分並び替えキーＰ［ｋ］に従って、データワードＭのデータビットＭ［ｎ−１］．．．Ｍ［０］の中から、データビットＭｐ［ｋ］を供給する。この部分並び替えキーは、ｍ個のキービットＰ［ｋ，ｍ−１］．．．Ｐ［ｋ，０］を含む。
【００３４】
この選択ユニット１４＿ｋは、複数の選択段１４１＿０．．．１４１＿ｍ−１を備える。この場合第１の選択段１４１＿０には、インプットデータワードＭのすべてのデータビットが供給される。この第１の選択段１４１＿０は、部分並び替えキーＰ［ｋ］の第１のキービットＰ［ｋ，０］に従って、第１のグループのデータビットを選択し、これらのデータビットは第２の選択段１４１＿１に供給される。第２の選択段１４１＿１は、この第１のグループから、第２のキービットＰ［ｋ，１］に従って第２のグループを選択し、後者のグループは第３の選択段１４１＿２に供給される。
【００３５】
この実施例では、選択段が代わるごとに、各グループに存在するデータビットが係数２相当分減少する。したがってｍ＝ｌｏｇ2（ｎ）個の選択段の後は、並べ替え済みデータワードＭｐのデータビットＭｐ［ｋ］に相当するデータビットは１つしか存在しない。したがってｎ＝３２＝２5が成立する例では、ｍ＝５個の選択段が存在する。
この例では選択段のいずれも、ある個数の選択スイッチ１４２を備え、これらのスイッチそれぞれは、１つのデータグループから２つずつデータビットが供給され、またスイッチそれぞれが、並べ替えキービットに従ってこれら２つのデータビットから１つを選択し、次の選択段に転送する。
【００３６】
各選択段の選択スイッチには個々のデータビットが供給されるが、この場合選択スイッチそれぞれに、次のようなデータビットが２つずつ供給される。それは、各選択段があるグループの中から選択を行うとき、そのグループに関して順次並ぶビットポジションを持つデータビットである。図５の例では、そのときどきで上位のビットがそのときどきの選択スイッチ１４２の第１のインプットＩＮ１に、そのときどきで下位のビットが第２のインプットＩＮ２に供給される。キービットが“１”のとき、この実施例ではインプットＩＮ１に供給されているビットが、すなわち上位のビットが、アウトプットＯＵＴ１に、したがって次の選択段に転送される。
【００３７】
図５に示す選択ユニットの機能形態を、下記に図６の８ビット幅のデータワードＭによって説明する。これらの８個のデータビットＭ［７］．．．Ｍ［０］から１つを選択して、並べ替え済みデータワードのデータビットＭｐ［ｋ］を生成する。部分キーＰ［ｋ］の第１のキービットＰ［ｋ，０］は１なので、重要度の順序に並ぶそれぞれ２つのデータビットから、それぞれ上位のデータビットが選択される。ここからデータビットＭ［７］、Ｍ［５］、Ｍ［３］、Ｍ［１］を含む第１のグループが生じる。重要度の順序に並ぶそれぞれ２つのデータビットから、すなわちデータビットＭ［７］、Ｍ［５］およびＭ［３］、Ｍ［１］から、第２のキービットＰ［ｋ、１］に従って、それぞれ１つのデータビットが選択される。このキービットは“０”なので、それぞれ両者のデータビットのうち下位のものが、すなわちデータビットＭ［５］、Ｍ［１］が選択される。こうして生じた次のグループのデータビットから、第３のキービットＰ［ｋ，２］に従って１つのデータビットが、この例では上位のデータビットが、すなわちデータビットＭ［５］が選択されて、並べ替え済みデータワードのデータビットＭｐ［ｋ］が生成される。
【００３８】
データビットを選択グループのいずれにおいてもその重要度に従って並べ、その重要度において隣接する２つのデータビットから、キービットが“１”のときはこれら２つのデータビットのうちそのときどきで上位のものを、キービットが“０”のときはそのときどきで下位のものを選択する。そうすれば選択されたデータビット、この場合はデータビットＭ［５］のビットポジションの値は、部分キーＰ［ｋ］の十進数等価に相当する。これを下記で説明する。
【００３９】
部分キーＰ［ｋ］を２進数列とみなし、この数列の最上位のビット（ＭＳＢ）を最後の選択段のキービットＰ［ｋ，ｍ−１］によって、その最下位のビットＰ［ｋ，０］を第１の選択段のキービットＰ［ｋ，０］によって生成するならば、この２進数列の十進数等価、この場合は１０１2＝５10は、データワードＭから選択されたデータビットＭ［５］のビットポジションに相当する。
【００４０】
選択スイッチ１４２の１つについて、その技術的に短絡な実施例を図７に示す。この選択機能を実現するため、選択スイッチは２つのＡＮＤゲートＡＮＤ１、ＡＮＤ２を備え、これらゲートのアウトプットはＯＲゲートＯＲ１に導かれる。この場合このＯＲゲートのアウトプットは、選択スイッチのアウトプットＯＵＴ１を形成する。データビットを供給するインプット、ＩＮ１、ＩＮ２はそれぞれ、ＡＮＤゲートＡＮＤ１、ＡＮＤ２に導かれる。ＡＮＤゲートＡＮＤ１のもう１つのインプットは、キービットを供給する第３のインプットＩＮ３と結合されている。この場合ＡＮＤゲートＡＮＤ２のもう１つのインプットには、このキービットがインバータＩＮＶ１によって反転された上、供給される。したがって第３のインプットＩＮ３に論理上の“１”が供給されているとき、第１のインプットＩＮ１に供給されているデータビットは、第１のＡＮＤゲートＡＮＤ１と、ＯＲゲートＯＲ１とを経由して、アウトプットＯＵＴ１に転送される。第３のインプットＩＮ３に論理上の“０”があるとき、同様に第２のインプットＩＮ２にあるデータビットは、第２のＡＮＤゲートＡＮＤ２とＯＲゲートＯＲ１とを経由して、アウトプットＯＵＴ１に転送される。
【００４１】
図８で置き換えユニット１５は、データビットの個数に相当する個数の置き換え素子１５＿ｎ−１．．．１５−０を備える。これら置き換え素子には、置き換えられるべきデータワード、図３の例では並べ替え済みのデータワードＭｐのデータビットが１つずつ供給される。置き換えはキーＳに従って行われるが、このキーはｎ個のキービットＳ［ｎ−１］．．．Ｓ［０］を含む。この場合置き換え素子のいずれにも、これらキービットＳ［ｎ−１］．．．Ｓ［０］の１つが供給される。置き換え素子１５＿ｎ−１．．．１５＿０は、それぞれの置き換えキービットＳ［ｎ−１］．．．Ｓ［０］に従って、それぞれの置き換え素子１５＿ｎ−１．．．１５＿０に供給されたデータビットＭｐ［ｎ−１］．．．Ｍｐ［０］を、変更せずあるいは反転して出力する。
【００４２】
このような置き換え素子の回路技術的実施例を図９に示す。置き換え素子１５＿ｋは、第１および第２のＡＮＤゲートＡＮＤ３、ＡＮＤ４と、これらＡＮＤゲートＡＮＤ３、ＡＮＤ４に後置されたＯＲゲートＯＲ２とを備え、置き換え済みのデータビットがこの最後のゲートから供給される。置き換えられるべきデータビットは、第１のインプットＩＮ４からこの置き換え素子に供給される。その際このデータビットは、第１のインバータＩＮＶ２を経由して、反転された状態で第１のＡＮＤゲートＡＮＤ３に、また変更されない状態でＡＮＤゲートＡＮＤ４に供給される。置き換え素子の第２のインプットＩＮ５に供給されたそのときどきの置き換えキービットは、第１のゲートＡＮＤ３には変更されない状態で、第２のＡＮＤゲートＡＮＤ４には、第２のインバータＩＮＶ３によって反転された状態で、供給される。この配置によって、次のことが可能となる。すなわち、置き換えキービットが“１”のときは、第１のインプットＩＮ４に供給されたデータビットが反転された状態で、そして置き換えキービットが“０”のときは変更されない状態で、アウトプットＯＵＴ２から供給される。
【００４３】
図３の実施例では、暗号化されていないデータワードＭから、並べ替えを行い、続いて並べ替えによって生じた並べ替え済みデータワードＭｐの置き換えを行うことによって、暗号化済みデータワードＭ′が生成される。当然のことながら、まず置き換えキーＭを用いてデータワードＭを置き換え、そこで生じた置き換え済みデータワードを、続いて並べ替えキーＰを用いて並べ替え、暗号化されたデータワードＭ′を得ることもできる。
【００４４】
暗号化システムのサービス能力を決定するのは、異なるキーとしてあり得るものの個数である。データワードＭを暗号化するキーＣは、この実施例の場合、並べ替えキーＰと置き換えキーＳから構成される。並べ替えキーＰは、長さｍ＝ｌｏｇ2（ｎ）の部分キーを、データビットの個数に相当する個数含む。図１０の場合この並べ替えキーは、ｎ個の部分キーＰ［ｎ−１］．．．Ｐ［０］を含むベクトル、または個々の部分キービットＰ［ｎ−１，ｍ−１］．．．Ｐ［０，０］のｎ×ｍ行列とみなすことができる。長さｎ＝３２のデータワードの場合、並べ替えキーは３２個のそれぞれ異なる部分キーＰ［ｎ−１］．．．Ｐ［０］を含み、ここから３２！個の異なるキー組み合わせが生じる。置き換えキーＳに２n個の可能性を利用できることを考慮するならば、長さｎ＝３２の暗号化されるべきデータワードに対し、可能性あるキーＣの個数ＮとしてＮ＝（３２！）・２32を得る。
【００４５】
暗号化および解読のための置き換えキーＳは、２進数のランダムシーケンスとして、簡単な方法で生成することができる。
並べ替えキーを生成する方法として、下記に図１１〜１３を用い、長さｎ＝４ビットのデータワードに対するものを説明する。
まず図１１は、データワードＭから並べ替え済みデータワードＭｐを生成する第１の並べ替えユニット１４を示す。この生成は、ｎ＝４個の選択ユニット１４＿３，１４＿２，１４＿１，１４＿０を用いて行われ、これらの選択ユニットはそれぞれ２段式（ｍ＝ｌｏｇ2４＝２）に作られている。
【００４６】
図１２は、図１１の並べ替えユニット１４に対応する第２の並べ替えユニットを示す。このユニットは、解読ユニット（図３の１１′）でデータワードを解読するとき、第１の習え替えユニット１４が行った並べ替えを回復するのに用いられる。この第２の並べ替えユニット１４′は、第１の並べ替えユニット１４と同一構造であって、４つの選択ユニット１４′＿３，１４′＿２，１４′＿１，１４′＿０を備える。これら選択ユニット１４′＿３．．．１４′＿０のいずれもが、並べ替え済みデータワードＭｐのデータビットＭｐ［３］．．．Ｍｐ［０］の１つを、当初のデータワードＭのデータビットＭ［３］．．．Ｍ［０］の１つにマッピングしてもとの状態にするため用いられる。個々の選択ユニット１４′＿３．．．１４′＿０におけるデータビットの１つのこのような選択は、それぞれ第２の並べ替えキーＰ′の部分キーＰ′［３］．．．Ｐ′［０］に従って行われる。この実施例では次の式が成立する：Ｐ′＝（Ｐ′［３］，Ｐ′［２］，Ｐ′［１］，Ｐ′［０］）この場合個々の部分キーＰ′［３］．．．Ｐ′［０］は、それぞれ２つの部分キービットキーＰ′［３，１］．．．Ｐ′［０，０］を含む。
【００４７】
第１の並べ替えキーＰの部分キーキーＰ［３］．．．Ｐ［０］、および第２の並べ替えキーＰ′の付随する部分キーキーＰ′［３］．．．Ｐ′［０］の生成について、下記に図１３を用いて説明する。
第１および第２の並べ替えキーＰ、Ｐ′を生成するため、キー発生器（図２の１３）は、第１および第２のキーメモリ１３１、１３１′と、割り当てレジスタ１３２とを備える。キーメモリ１３１、１３１′は、キー幅ｍ＝ｌｏｇ2（ｎ）の部分キーを、それぞれｎ個格納するために作られている。ｎ＝４のとき、いずれのキーメモリにも長さ２の部分キー４個を格納することができる。第１のキーメモリ１３１に格納された部分キーは、選択ユニット１４＿３．．．１４＿０に、したがって並べ替え済みデータワードの個々のデータビットに配置される。この配置は、キーメモリ１３１のアドレスを介して行われ、このメモリは行ごとにアドレス指定可能であり、この例ではｎ＝４個の行を含む。この第１のメモリ１３１における部分キーのメモリアドレスは、並べ替え済みデータワードのデータビットのビットポジションに相当する。このビットポジションは、それぞれのキーに割り当てられている。キーメモリ１３１のメモリアドレスｋに対する部分キーＰ［ｋ］は、したがって並べ替え済みデータワードＷｐのｋ番目のデータビットＭｐ［ｋ］に割り当てられている。この場合ｋは、メモリにおける可能性ある行アドレス０．．．ｎ−１の１つを表す。
【００４８】
第２の並べ替えキーＰ′の部分キーＰ′［３］．．．Ｐ′［０］は、選択ユニット１４′＿３．．．１４′＿０ないし当初データワードのデータビットＭ［３］．．．Ｍ［０］に割り当てられるが、この割り当ても同様な方法で行われる。すなわち、第２のキーメモリ１３１′のメモリポジションｋに格納された部分キーＰ′［ｋ］は、選択ユニット１４′＿ｋに割り当てられている。そしてこの部分キーは、並べ替え済みデータワードＭｐのデータビットのうちいずれかを、データワードＭのｋ番目のポジションのデータビットＭ［ｋ］にマッピングするべきかを決定する。
【００４９】
第１の並べ替えキーの部分キーＰ［３］．．．Ｐ［０］と、第２の部分キーキーＰ′［３］．．．Ｐ′［０］の生成は、たがいに適合させた上で、下記に説明する方法で行う。
第１の並べ替えキーＰの部分キーは、図２に示す関数発生器１２を用いて、長さｍ＝２のランダム２進シーケンスとして生成する。すでに説明したように、個々の部分キーをたがいに異なるものとすることにより、並べ替えされるべきデータワードＭのデータビットを、並べ替え済みデータワードＭｐのデータビットに割り当てることができる。図１１および１２で説明した例では、ｎ＝４個の異なる部分キーがあり、これらのキーを４つの選択ユニットに任意に割り当てることができる。
【００５０】
この例で可能性ある部分キー“１１” ，“１０” ，“０１” ，“００” のいずれもが、割り当てレジスタ１３２のメモリポジションに割り当てられている。この場合割り当てレジスタの各メモリポジションには、次のような場合に、指定された値が登録される。すなわち割り当てられた部分キーが、すでにメモリ１３１のメモリポジションに、したがって選択ユニット１４＿３．．．１４＿０のためにすでに生成されて、その結果同一のキーがほかのメモリアドレスに、したがってほかの選択ユニット１４＿３．．．１４＿０のために新たに生成されるのが、防止される場合である。
【００５１】
割り当てレジスタ１３２のメモリアドレスに対する、可能性ある部分キーのある特定のものの割り当ては、この例では、部分キーによって表される値をマッピングメモリ１３２のメモリポジションに直接マッピングすることによって行う。したがってたとえば部分キー“１０ には、割り当てメモリ１３２のメモリポジション１０2＝２が割り当てられる。１つの部分キーについて一般にＰ［ｋ］＝ｗn-1．．．ｗ0が成立するならば、マッピングメモリでこの部分キーに割り当てられたアドレスＷには、下記の式が成立する。
【００５２】
【数１】
2007510959.tif 000003
【００５３】
並べ替えキーを生成するためには、第１の並べ替えキーメモリ１３１の個々のメモリアドレスに対して、それぞれ部分キーをランダムに生成する。その際個々の部分キーを生成した後、割り当てレジスタの点検することにより、このような部分キーがすでに生成されているかどうかを検出する。このような部分キーがすでに生成されているならば、その部分キーは破棄され、新しい部分キーがランダムに発生される。すべてのメモリポジションに対して、すなわち並べ替えユニット１４のすべての選択ユニットに対して、部分キーが生成されるまで、上記のプロセスを繰り返す。
【００５４】
可能性ある部分キーの１つが初めて生成されると、割り当てメモリ１３２でこのキーに割り当てられたメモリアドレスに、ある特定の値、たとえば“１”が登録される。この部分キーが、メモリ１３１のそのほかのメモリポジションのためランダムにもう一度生成されると、このことは割り当てメモリ１３２に登録された値によって認識され、この部分キーは上記のそのほかのメモリポジションについては破棄される。
【００５５】
すでに説明したように、選択ユニット１４＿３．．．１４＿０に、ないしは並べ替え済みデータワードＭｐのデータビットＭｐ［３］．．．Ｍｐ［０］に、部分キーＰ［３］．．．Ｐ［０］の２進数値が割り当てられている。この２進数値は、各選択ユニットに選択されたインプットワードＭのデータビットＭ［３］．．．Ｍ［０］のデータポジションに相当する。同様に第２の並べ替えキーＰ′の部分キーキーＰ′［ｎ−１］．．．Ｐ′［０］は、並べ替え済みデータワードＭｐのどのデータビットが、データビットＭ［３］．．．Ｍ［０］にマッピングされるべきかを表示する。このデータビットとはそれぞれの部分キーが割り当てられているものである。
【００５６】
並べ替え済みデータワードＭｐのｋ番目のデータビットＭｐ［ｋ］に割り当てられた部分キーＰ［ｋ］が、並べ替えられるべきデータワードのｉ番目のデータビットＭ［ｉ］を、並べ替え済みデータワードＭｐの前者データビットにマッピングするということが、一般に当てはまるのであれば、その逆も当てはまらなければならない。すなわち、ｉ番目のデータビットに割り当てられた部分キーＰ′［ｉ］は、並べ替え済みデータワードＭｐのｋ番目のデータビットを前者データビットにマッピングする。
【００５７】
第２のキーメモリ１３１′は、第１のキーメモリ１３１に対応して編成されている。すなわち個々の部分キーＰ′［ｎ−１］．．．Ｐ′［０］が格納されているアドレスは、個々の部分キーが割り当てられているデータビットＭ［ｎ−１］．．．Ｍ［０］のビットポジションに相当する。
【００５８】
並べ替え済みデータワードＭｐのランダムに生成されたｋ番目のデータビットに割り当てられた部分キーＰ［ｋ］、すなわち第１の並べ替えキーＰの部分キーに対し、第２の並べ替えキーＰ′の適切な部分キーを生成するには、次のようにする。すなわち第１の部分キーＰ［ｋ］のアドレス値ｋが、第２のキーメモリ１３１′におけるアドレスに登録され、後者のアドレスの値は、第１のキーによって表される２進数値ｉに相当するものとする。したがってＰ［ｋ］＝ｉに対して、Ｐ′［ｉ］＝ｋが成立する。
【００５９】
第１および第２の並べ替えキーの生成は、下記のアルゴリズムを用いて記述することができる。
行１：ＦＯＲ  ｋ  ＝  （ｎ−１）  ＤＯＷＮＴＯ  ０
行２：発生器から乱数を取り出し、ｉを計算する。
行３：ＭａｐＲｅｇ  （ｉ）  ＝  １が成立するかどうか点検し、ｙｅｓなら行２に行く。
行４：ＭａｐＲｅｇ  （ｉ）  ＝  １と置く。
行５：ｏ＿ｓｔｏｒｅ（ｋ）  ＝  ｉと置く。
行６：ｉ＿ｓｔｏｒｅ（ｉ）  ＝  ｋと置く。
行４：ＮＥＸＴ  ｋ．
【００６０】
ＭａｐＲｅｇ（ｉ）は、割り当てレジスタのアドレスｋの値を表す。ｏ＿ｓｔｏｒｅ（ｋ）は第１のメモリのアドレスｋの値を表し、ｉ＿ｓｔｏｒｅ（ｉ）は第２のメモリ１３１′のアドレスｉの値を表す。
すでに説明したように、暗号化およびそれに対応する解読の際に行われた並べ替えは、置き換えキーに従った置き換えによって補完される。この置き換えは、暗号化の際、並べ替えの前でもそのあとでも行うことができ、解読の際には、その逆の順序を行う。暗号化の際に置き換えを並べ替えの後で行うなら、解読の際には改めての置き換えを並べ替えの前に行う。すでに説明した置き換えの場合、すなわち置き換えキービットに従って、それぞれ割り当てられたデータビットが反転され、あるいは変更されないまま転送される場合、解読の際には、暗号化の際と同一の置き換えキーが用いられる。
【図面の簡単な説明】
【００６１】
【図１】暗号化配置物と解読配置物を備え、かつランダムアクセスメモリに格納されたデータを暗号化し、ランダムアクセスメモリから読み出されたデータを解読する配置物を示す。
【図２】暗号化および解読装置の実施例であって、暗号化ユニット、解読ユニット、キー発生器および乱数発生器を備えるものを示す。
【図３】暗号化ユニットの実施例であって、並べ替えユニットと置き換えユニットを備えるものを示す。
【図４】選択ユニットを備える並べ替えユニットの構造を模式的に示す。
【図５】選択スイッチを持つ複数の選択段を備える選択ユニットの実施例を示す。
【図６】８ビット幅のデータワードのための選択ユニットの機能形態を示す。
【図７】図５に示した選択スイッチの回路技術的実施例を示す。
【図８】図３に示した置き換えユニットであって、複数の置き換え素子を備えるものの実施例を示す。
【図９】図８に示す置き換え素子として考えられる１つの実施例を示す。
【図１０】部分キーとキービットからなる並べ替えキーの構造と、置き換えキーの構造を示す。
【図１１】４ビットのデータワードのための図２に記載する暗号化ユニットにおいて、その並べ替えユニットの構造全体を示す。
【図１２】図２に記載する解読ユニットに使用するものであって、図１１に示す並べ替えユニットに相当する並べ替えユニットを示す。
【図１３】暗号化のための第１の並べ替えキーと、解読のための第２の並べ替えキーとを格納するメモリ、すなわちキー発生器の中に設けられた内部メモリの構造を、模式的に示す。
【符号の説明】
【００６２】
ＡＭＤ１〜ＡＮＤ４  ＡＮＤゲート
Ｃ、Ｃ′  キー
ＩＮ１〜ＩＮ５  インプット
ＩＮＶ１、ＩＮＶ２  インバータ
Ｍ  データワード
Ｍ［ｎ−１］．．．Ｍ［０］  データビット
Ｍ′［ｎ−１］．．．Ｍ′［０］  暗号化済みデータワードのデータビット
Ｍｐ［ｎ−１］．．．Ｍｐ［０］  並べ替え済みデータワードのデータビット
ＯＲ１、ＯＲ２  ＯＲゲート
ＯＵＴ１、ＯＵＴ２  アウトプット
Ｐ  並べ替えキー
Ｐ［ｎ−１］．．．Ｐ［０］  並べ替えキーの部分キー
Ｓ  置き換えキー
１０  暗号化・解読ユニット
１１  暗号化ユニット
１１′  解読ユニット
１３  キー発生器
１４  並べ替えユニット
１４＿ｎ−１．．．１４＿０  選択ユニット
１５  置き換えユニット
１５＿ｎ−１．．．１５＿０  置き換えユニット
２０  ランダムアクセスメモリ（ＲＡＭ）
２０  乱数発生器
２１  ＲＡＭのインプット
２２  ＲＡＭのアウトプット
３０  データ処理ユニット
１１０  暗号化ユニットのインプット
１１０′  解読ユニットのインプット
１１１  暗号化ユニットのアウトプット
１１１′  解読ユニットのアウトプット
１１２  暗号化ユニットのキーインプット
１１２′  解読ユニットのキーインプット
１３１  第１の並び替えキーメモリ
１３１′  第２の並び替えキーメモリ
１３２  選択レジスタ
１４１＿ｎ−１．．．１４１＿０  選択段
１４２  選択スイッチ
【図１】
2007510959.tif 000004
【図２】
2007510959.tif 000005
【図３】
2007510959.tif 000006
【図４】
2007510959.tif 000007
【図５】
2007510959.tif 000008
【図６】
2007510959.tif 000009
【図７】
2007510959.tif 000010
【図８】
2007510959.tif 000011
【図９】
2007510959.tif 000012
【図１０】
2007510959.tif 000013
【図１１】
2007510959.tif 000014
【図１２】
2007510959.tif 000015
【図１３】
2007510959.tif 000016
【手続補正書】
【提出日】平成17年6月23日(2005.6.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
それぞれ指定された個数のデータビットを含むデータワードを格納できるランダムアクセスメモリにデータを格納する方法において、格納前にいずれのデータワード（Ｍ）をも暗号化し、その暗号化のために、いずれのデータワード（Ｍ）からも、またはそのデータワード（Ｍ）から導き出されたデータワードから、１つの２進数のランダムシーケンスから生じた第１の並べ替えキー（Ｐ）を用いて、個々のデータビット（Ｍ［ｎ−１］〜Ｍ［０］）を１対１対応で並べ替えることにより、指定された個数のデータビットを含む並べ替え済みデータワード（Ｍｐ）を生成することを特徴とする、上記の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】請求項１１
【補正方法】変更
【補正の内容】
【請求項１１】
データビット（Ｍ［ｎ−１］，Ｍ［ｋ］，Ｍ［０］）を含むデータワード（Ｍ）を暗号化／解読する装置であって、かつ下記の事物を持つ並べ替えユニット（１４）を備える同装置：
―並べ替えされるべきデータワード（Ｍ）のデータビット（Ｍ［ｎ−１］，Ｍ［ｋ］，Ｍ［０］）を供給するためのデータインプット、
―指定された長さ（ｎ）の並べ替え済みデータワード（Ｍｐ）のデータビット（Ｍｐ［ｎ−１］，Ｍｐ［ｋ］，Ｍｐ［０］）を供給するためのアウトプット、
―データビットの個数に相当する個数（ｎ）の部分キー（Ｐ［ｎ−１］．．．Ｐ［０］）を含む並べ替えキー（Ｐ）を供給するための並べ替えキーインプット、
―２進数のランダムシーケンス（ＲＳ）から並べ替えキー（Ｐ）を生成する信号発生器（１３）、
―データビットの個数に相当する個数の選択ユニット（１４＿ｎ−１，１４＿ｋ，１４＿０）、ただし、この選択ユニットそれぞれに部分キーが１つずつ割り当てられ、選択ユニットそれぞれが、並べ替え済みデータワード（Ｍｐ）のデータビット（Ｍｐ［ｎ−１］，Ｍｐ［ｋ］，Ｍｐ［０］）を１つずつ、部分キー（Ｐ［ｎ−１］．．．Ｐ［０］）の１つずつに従って、並べ替えされるべきデータワード（Ｍ）のデータビットから供給する。
【国際調査報告】
2007510959.tif 000017
2007510959.tif 000018
2007510959.tif 000019
2007510959.tif 000020