(57)【特許請求の範囲】
【請求項１】
暗号化した、または暗号解読された出力データをそれぞれ提供するためにキー信号により普通のテキスト入力データまたは暗号化された入力データを処理するブロック暗号装置であって、
入力データを受信するシフトレジスタ（１０）と、
出力データ（１５）を出力するために選択されたサイクル数だけデータ処理ルーチンを実行する疑似ランダム非線形シーケンス発生装置（３２）を含むデータ処理手段（１２）とを具備し、
前記データ処理ルーチンは、
最初に処理されたデータ（２８）を出力するために、キー信号（１４）により前記シフトレジスタの内容（１６）を処理し（１８，２２，３０）、
該最初に処理されたデータによって疑似ランダム非線形シーケンス発生装置を初期化し、
キー流（３４）を発生するため疑似ランダム非線形シーケンス発生装置を動作させ、
キー流の部分を分離し（３６，３８）、
処理されたデータ（４６）のブロックを与えるためにシフトレジスタ中のデータの部分により前記キー流の前記分離された部分を処理し（４４）、そして
該シフトレジスタ中へ処理されたデータの前記ブロックをシフトすることを特徴とする装置。
【請求項２】
データ処理手段は、前記選択されたサイクル数だけシフトレジスタ中に前記処理されたデータのブロックの前記シフトをすることにより、シフトレジスタ中の前記出力データを供給する請求項１記載の装置。
【請求項３】
前記データ処理ルーチンは、各サイクルに対して別々に与えられ、各サイクルに対して異なっていてもよい期間指示（Ｙ）によって指示された時間に、前記分離された部分を開始するルーチンにしたがって前記キー流部分を分離する処理（３６）を含んでいる請求項１記載の装置。
【請求項４】
前記キー流部分を分離するルーチンは、各サイクルに対して別々に与えられ、各サイクルに対して異なっていてもよい周波数指示（ｎ）に応じて分離されたビットの選択された数に対して前記分離された部分の開始からキー流のｎ番目のビツト毎に分離することによって前記分離された部分を与える請求項３記載の装置。
【請求項５】
前記データ処理ルーチンは、各サイクルに対して別々に与えられ、各サイクルに対して異なっていてもよい周波数指示（ｎ）に応じて分離されたビットの選択された数に対して前記分離された部分の始めからキー流のｎ番目のビット毎に分離する（３８）ことによって前記キー信号の部分を分離する処理を含んでいる請求項１記載の装置。
【請求項６】
前記データ処理ルーチンは、前記シフトレジスタの内容および前記キー信号を最初に処理することによって前記最初に処理されたデータを出力し、その後各サイクルに対して別々に与えられ、各サイクルに対して異なっていてもよいローテーション指示（Ｘ）に応じて前記最初の処理により生成されたデータをローテーションする処理（２２）を含んでいる請求項１，３，または５のいずれか１項記載の装置。
【請求項７】
前記データ処理手段は、前記キー流を発生させるためにダイナミックフィードバック配置スクランブル技術キー流発生装置（３２）を具備している請求項１，３，４，５，または６のいずれか１項記載の装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ブロック暗号装置に関する。
【０００２】
【従来の技術】
ＤＥＳ（データ暗号化標準）アルゴリズムに基づいたブロック暗号装置は、高度の暗号の秘密性が要求される場合にしばしば使用される。しかしながら、現在ＤＥＳアルゴリズムに基づいたブロック暗号装置を含む暗号化／暗号解読製品は米国からの輸出は制限されている。
【０００３】
【発明が解決しようとする課題】
本発明は、ＤＥＳアルゴリズムを使用するものではないが、それにもかかわらず多くの応用において充分に高度の暗号の秘密性を与えるようなブロック暗号装置を提供することを目的とするものである。
【０００４】
【課題を解決するための手段】
本発明のブロック暗号装置は、暗号化または暗号解読出力データを提供するためにキー信号で普通のテキストまたは暗号化された入力データを処理する装置である。そのような装置は入力データを受けるシフトレジスタと、出力データを与えるために選択されたサイクル数だけ以下のデータ処理ルーチンを実行する疑似ランダム非線形シーケンス発生装置を含むデータ処理手段とを備えている。そのデータ処理ルーチンは、
最初に処理されたデータを出力するためにキー信号により前記シフトレジスタの内容を処理し、
最初に処理されたデータによって疑似ランダム非線形シーケンス発生装置を初期化し、
キー流を発生するため疑似ランダム非線形シーケンス発生装置を動作させ、
キー流の一部を分離し、
処理されたデータのブロックを与えるためにシフトレジスタ中のデータの一部分によりキー流の前記分離された部分を処理し、
シフトレジスタ中へ処理されたデータのブロックをシフトする処理を有している。
秘密の程度はデータ処理ルーチンの実行の選択されたサイクル数が増加するにしたがって増加する。
【０００５】
疑似ランダムキー流発生装置のランダム性をさらに増加させ、したがって本発明の暗号装置によって得られる秘密性をさらに増加させるために、データ処理ルーチンは、前記分離部分の最初が期間指示に応じてキー流の開始に関係する時間を与えるルーチンにしたがってキー流を分離し、周波数指示に応じて分離されたビツトの選択された数に対して前記分離された部分の最初からｎ番目毎のキー流のビツトを分離し、前記シフトレジスタ内容および前記キー信号の最初の処理によって前記最初に処理されたデータを与え、ローテーション指示に応じて前記最初の処理によって生成されたデータをローテーションさせる。期間指示、周波数指示、およびローテーション指示はそれぞれ各サイクルに対してそれぞれ別々に与えられ、各サイクルに対して異なっている。
【０００６】
本発明の付加的な特徴を添付図面を参照にして実施例で説明する。
【０００７】
【実施例】
図１を参照すると（ａ）のブロック図に示された本発明の好ましい実施例の暗号装置は、Ｎビツトのフィードバックシフトレジスタ１０およびデータ処理システム１２を具備している。以下説明する部分を除いてはデータ処理システム１２はマイクロプロセッサ中のファームウエアによって構成されている。
【０００８】
図１の（ａ）に示すブロック暗号を暗号化するための暗号装置はＮバイトのブロックの普通のテキスト入力データ１３をＭバイトの暗号キー信号１４で処理してＮバイトのブロックの暗号化された出力データ１５を出力する。好ましい実施例ではＭ＝７、Ｎ＝８である。フィードバックシフトレジスタ１０はＮバイトのブロックの普通のテキスト入力データ１３を受ける。
【０００９】
データ処理システム１２は、図１の（ｂ）に示すように最初のデータ処理ルーチン１８においてキー信号１４のバイトに普通のテキストのバイト１６を加算することにより普通のテキスト入力データの上位Ｍ桁のバイト１６をＭバイトの暗号キー信号１４によって処理する。別の実施例では、この最初のデータ処理ルーチン１８は例えば減算または排他的オア処理（ＸＯＲ）のような加算以外の他の処理によって行われることもできる。
【００１０】
最初のルーチン１８によって生成されたＭバイトのデータ２０はローテーション指示Ｘに応じてバイトの数Ｘにより第２のデータ処理ルーチン２２にしたがってデータ処理システム１２によってローテーションされる。ローテーションされたバイト２６と最初に生成されたバイト２０との関係は、Ｍ＝７による３バイトのローテーション指示に対して次の表１に示されている。
【００１１】
表  １
バイト２０    バイト１  バイト２  バイト３  バイト４  バイト５  バイト６  バイト７
バイト２６    バイト４  バイト５  バイト６  バイト７  バイト１  バイト２  バイト３
データ処理システム１２はそれからデータ伸張処理ルーチン３０を実行することによって最初に処理されたデータ２８のＮバイトを与えるためにローテーションされ他Ｍバイト２６を伸張する。実施例ではＭ＝７，Ｎ＝８においてＮ番目のバイトがＭのバイトを排他的オア（ＸＯＲ）処理することによって生成される。
【００１２】
データ処理システム１２に含まれている疑似ランダム非線形シーケンス発生装置３２は最初に処理されたデータ２８のＮバイトによって初期化され、キー流３４を発生するために動作される。実施例では、キー流を発生する疑似ランダム非線形シーケンス発生装置３２はダイナミックフィードバック配置スクランブル技術（ＤＦＡＳＴ）キー流発生装置３２である。それはデータ処理システム１２の処理速度を増加させるためにハードウエアで構成されている。ＤＦＡＳＴキー流発生装置は米国特許第４，８６０，３５３  号明細書（発明者Ｄａｖｉｄ  Ｓ．  Ｂｒｏｗｎ）に記載されている。この明細書に記載されているＤＦＡＳＴキー流発生装置の実施例は、入力データを受けるためにダイナミック（または非線形）フィードバックシフトレジスタおよびスタチック（または線形）フィードバックシフトレジスタを備えている。上位桁のＮバイト２８はＤＦＡＳＴキー流発生装置３２のダイナミックフィードバックシフトレジスタ中に受信され、一方残りのバイトは発生装置３２のスタチックフィードバックシフトレジスタ中に受信される。ＤＦＡＳＴキー流発生装置３２はＮバイト２８の高速疑似ランダム非線形シーケンス処理を行って迅速にキー流を発生し、それから単一のバイトが次のサイクルの処理のためにフィードバックされることのできるデータを生成するために容易に分離されることができる。別の実施例では、他の形式の疑似ランダム非線形シーケンス発生装置がＤＦＡＳＴキー流発生装置３２の代りに使用されることができる。
【００１３】
次にデータ処理システム１２は、廃棄ルーチン３６および分離ルーチン３８を実行してキー流３４の部分を単一バイト４０に分離する。データ処理システム１２はキー流３４を廃棄ルーチン３６にしたがって分離し、それにおいてキー流４２の分離された部分の最初はキー流３４の最初のＹバイトを廃棄することによって期間指示Ｙに応じてキー流３４の最初に関係した時点において与えられる。
【００１４】
データ処理システム１２はさらに８ビツトが単一のバイト４０を形成するために分離されるまで周波数指示ｎに応じて前記分離された部分の最初からキー流４２のｎ番目のビツト毎に分離することによってキー流４２を分離する。
【００１５】
廃棄ルーチン３６および分離ルーチン３８の詳細を図２を参照にして説明する。これらのルーチンを実行するために、データ処理システムは期間指示カウンタ４８、周波数指示カウンタ５０、ビツトカウンタ５２、バイトレジスタ５４、およびオアゲート５５を備えている。３個のカウンタ４８，５０，５２の全てはＤＦＡＳＴキー流発生装置３２をクロックするのと同じクロック信号５６によってクロックされる。カウンタ４８の出力はオアゲート５５を介してカウンタ５０の負荷入力に結合されている。カウンタ５０の出力はカウンタ５２のエネーブル入力およびバイトレジスタ５４のエネーブル入力に供給され、またオアゲート５５を介してカウンタ５０の入力に結合される。キー流３４はバイトレジスタ５４のデータ入力に供給される。
【００１６】
データ処理ルーチンの各サイクルに対して期間指示Ｙは期間指示カウンタ４８中に負荷され、周波数指示ｎは周波数指示カウンタ５０中に負荷される。キー流３４の最初のＹバイト後、スタートパルス６０が期間指示カウンタ４８により周波数指示カウンタ５０に出力され、それはビツトカウンタ５２およびバイトレジスタ５４にエネーブルパルスを供給する。したがってバイトレジスタ５４はキー流３４の同時のビツトを登録することができるようになり、バイトレジスタ５４に登録されたビツト数はビツトカウンタ５２によってカウントされる。周波数指示カウンタ５０は、ビツトカウンタ５２のカウントが８に達するまでバイトレジスタ５４のエネーブル入力およびビツトカウンタ５２のエネーブル入力にパルス６２をＤＦＡＳＴクロック信号５６のｎ番眼のカウント毎に供給し、カウントが８に達するとき３個のカウンタ４８，５０，５２の全てに停止パルス５８が与えられる。
【００１７】
再び図１のブロック暗号装置を参照すると、データ処理システム１２はさらにルーチン４４を実行し、それによってキー流３４の部分を分離することによって形成された単一バイト４０がフィードバックシフトレジスタ１０のデータの最少桁バイトと排他的オア処理されて処理されたデータ４６のバイトを与える。
【００１８】
処理されたデータ４６のバイトはフィードバックシフトレジスタ１０の最大桁バイト位置にシフトされ、シフトレジスタ１０中のデータはデータの最少桁バイトがシフトレジスタ１０からシフトして取出されるようにシフトされる。
【００１９】
これはデータ処理ルーチンの１サイクルを完成する。普通のテキストの入力データの単一ブロックの暗号化を実行するサイクル数は暗号装置の特定の適用に必要とされる暗号の秘密性の程度によって選択される。キー信号または入力データの任意の単一ビットが出力データの毎ビットに影響を与えることを保証するために、少なくとも１６サイクルでなければならない。さらに付加的に秘密性を高めるためにさらに多くのサイクルが実行されることが好ましい。サイクル数は、普通のテキスト入力データが暗号化のために暗号装置に与えられる周波数に関係するデータ処理システム１２の処理速度によって制限される。
【００２０】
データ処理ルーチンの各サイクルに対して、ローテーション指示Ｘ、期間指示Ｙ、および周波数指示ｎは分離して与えられる。したがってこれらの各指示は異なったサイクルのそれぞれにおいて異なることかできる。
【００２１】
実施例において、選択されたサイクル数および異なったサイクルのそれぞれに対するローテーション指示Ｘ、期間指示Ｙ、および周波数指示ｎはマイクロプロセッサのハームウエア中に予め設定される。別の実施例では、選択されたサイクル数および、または異なったサイクルのそれぞれに対するローテーション指示Ｘ、期間指示Ｙ、および周波数指示ｎはマイクロプロセッサへの可変入力として与えられる。
選択されたサイクル数の処理の完了後、暗号化された出力データ１５はフィードバックシフトレジスタ１０から出力される。
別の実施例では、暗号化された出力データはフィードバックシフトレジスタ１０とは別の部品（図示せず）に処理されたデータのバイト４６を送ることによって与えられる。
【００２２】
図３を参照すると、本発明によるブロック暗号解読用の暗号装置の好ましい実施例のブロック図は以下の点を除いて図１および図２を参照にして上述したブロック暗号装置と同一である。
図３に示すブロック暗号装置は、暗号解読された出力データ１５’  のＮバイトのブロックを出力するためにＭバイトの暗号解読キー信号１４によりＮバイトの暗号化された入力データのブロック１３’  を処理する。
フィードバックシフトレジスタ１０はＮバイトの暗号化された入力データのブロック１３’  を受信する。
【００２３】
データ処理ルーチン４４においては、キー信号３４の部分を分離することによって形成された単一のバイト４０がフィードバックシフトレジスタ１０中のデータの最大桁バイトと排他的オア処理されて処理されたデータのバイト４６を与える。この処理されたデータのバイト４６はシフトレジスタ１０中の最小桁バイト位置へシフトされ、それによってシフトレジスタ１０中のデータはデータの最大桁バイトがシフトレジスタ１０からシフトして取出される。
【００２４】
図３のブロック暗号装置は図１のブロック暗号装置によって与えられた暗号化されたデータを暗号解読して、そのような暗号化されたデータを図１のブロック暗号装置によって暗号化された普通のテキストデータに変換する。
【図面の簡単な説明】
【図１】本発明によるブロック暗号装置の機能ブロック図およびこの暗号装置のデータ処理システムにより実行されたデータ処理ルーチンのブロック図。
【図２】図１の暗号装置の廃棄および分離した機能の詳細を示す機能ブロック図。
【図３】本発明によるブロック暗号の暗号解読装置の機能ブロック図。
【図１】
0003566311.tif 000002
【図２】
0003566311.tif 000003
【図３】
0003566311.tif 000004