(57)【特許請求の範囲】
【請求項１】
入力データが格納される入力レジスタと、
前記入力レジスタからのデータを第１のゲート信号に応じてゲートして出力する第１のゲート手段と、
第１のデータを第２のゲート信号に応じてゲートして出力する第２のゲート手段と、
一方の入力に前記第１のゲート手段からの出力データを供給され、他方に前記第２のゲート手段からの出力データを供給され、前記第１のゲート手段からの出力データと前記第２のゲート手段からの出力データとをエクスクルーシブオアしたデータを出力する第１のエクスクルーシブオア回路と、
前記第１のエクスクルーシブオア回路からの出力データに対して暗号処理を行う暗号処理手段と、
第２のデータを第３のゲート信号に応じてゲートして出力する第３のゲート手段と、
一方の入力に前記暗号処理手段からの出力データを供給され、他方の入力に前記第３のゲート手段からの出力データを供給され、前記暗号処理手段からの出力データと前記第３のゲート手段からの出力データとをエクスクルーシブオアしたデータを出力する第２のエクスクルーシブオア回路と、
前記第２のエクスクルーシブオア回路からの出力データを格納する出力レジスタと、
前記入力レジスタからのデータと、前記暗号処理手段からのデータと、前記第２のエクスクルーシブオア回路からのデータと、前記第１のデータのいずれかを選択出力する第１のセレクタと、
前記第１のセレクタからの出力データを一時的に格納し、前記第１のデータとして出力する格納手段と、
前記格納手段からのデータと、前記入力レジスタからのデータのいずれかを前記第２のデータとして選択出力する第２のセレクタと
を具備したことを特徴とする暗号演算回路。
【請求項２】
前記格納手段からのパラレル出力データをシリアルデータに変換するパラレル・シリアル変換回路と、
前記暗号処理手段からの出力データと、前記パラレル・シリアル変換回路からの出力データのいずれかを選択出力する第３のセレクタと、
前記第３のセレクタからの出力データと、ブロック暗号を入力される入力手段からの入力データとを入力される第３のエクスクルーシブオア回路と、
前記第３のエクスクルーシブオア回路からの出力データと、前記入力手段からの入力データのいずれかを選択出力して前記第１のセレクタに供給する第４のセレクタと
を更に具備してなることを特徴とする請求項１記載の暗号演算回路。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は暗号演算回路に係り、特に複数のモードでデータを暗号化、復号化する暗号演算回路に関する。
【０００２】
暗号演算によるデータの暗号化、復号化には多数の操作モードが存在し、標準化も完了している（ＪＩＳ  Ｘ５０５２−１９９０：”６４ビットのブロック暗号アルゴリズムの利用モード”）。利用者は、適用アプリケーションにより適切な処理モードを選択し使用する。その幅広い利用者に対応するために、その操作モードを共通の回路で汎用化を実現し、且つ、回路規模を最小に抑えることが要望されている。また、最短演算時間であることが望まれる。
【０００３】
【従来の技術】
図２３は従来の暗号演算回路の一例の構成を示す図である。
【０００４】
図２３に示す暗号演算回路１００は、入力レジスタ１０１と、ＣＢＣ暗号化回路１０２と、ＣＢＣ復号化回路１０３と、ＣＦＢ暗号化回路１０４と、ＣＦＢ復号化回路１０５と、ＯＦＢ回路１０６と、５入力のセレクタ１０７と、暗号処理回路１０８と、５入力のセレクタ１０９と、出力レジスタ１１０とから構成されている。
【０００５】
ＣＢＣ暗号化回路１０２及びＣＢＣ復号化回路１０３及びＣＦＢ暗号化回路１０４及びＣＦＢ復号化回路１０５及びＯＦＢ暗号化復号化回路１０６は並列に接続されており、セレクタ１０７と１０９を切り換えることで、ＣＢＣモード、ＣＦＢモード、及びＯＦＢモードによる暗号演算を行うことができる。
【０００６】
ＣＢＣ暗号化回路１０２は、図２４に示す如く、レジスタ１１１とエクスクルーシブオア回路１１２とから構成される。ＣＢＣ復号化回路１０３は、図２５に示す如く、レジスタ１１３とエクスクルーシブオア回路１１４とから構成される。
【０００７】
ＣＦＢ暗号化回路１０４は、図２６に示す如く、シフトレジスタ１１５とエクスクルーシブオア回路１１６とから構成される。ＣＦＢ復号化回路１０５は、図２７に示す如く、シフトレジスタ１１７とエクスクルーシブオア回路１１８とから構成される。また、ＯＦＢ暗号化復号化回路１０６は、図２８に示す如く、シフトレジスタ１１９とエクスクルーシブオア回路１２０とから構成される。
【０００８】
【発明が解決しようとする課題】
上記した従来の暗号演算回路では、１つの演算モードに対して各々専用の回路をセレクタにより切り換えて使用する構成であったため、多数の演算モードを必要とする場合には多入力のセレクタを２個必要とし、且つ、各々の回路が有するレジスタ（シフトレジスタ）は回路規模が大きいために、大がかりな回路となってしまう問題があった。
【０００９】
また、ｋビットＣＦＢモードあるいはｋビットＯＦＢモードでデータのｋビットフィードバックを必要とする場合、データフィードバックにシフトレジスタを使用していたために、ｎビットをフィードバックするためにはｋクロックを入力してやる必要がある。このため、ｋが増大するにつれてフィードバックに要する時間が増大し、暗号処理のための遅延時間が大きくなるという問題も生じていた。
【００１０】
そこで本発明は、上記の問題点を解決した暗号演算回路を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記の問題を解決するために、本発明では図１に示す原理図の通り構成した。
【００１２】
すなわち、入力データが格納される入力レジスタ１と、入力レジスタ１からのデータを第１のゲート信号Ｇ1に応じてゲートして出力する第１のゲート手段２と、第１のデータを第２のゲート信号Ｇ２に応じてゲートして出力する第２のゲート手段４と、一方の入力に第１のゲート手段からの出力データを供給され、他方に第２のゲート手段４からの出力データを供給され、第１のゲート手段２からの出力データと第２のゲート手段４からの出力データとをエクスクルーシブオアしたデータを出力する第１のエクスクルーシブオア回路３と、第１のエクスクルーシブオア回路３からの出力データに対して暗号処理を行う暗号処理手段５と、第２のデータを第３のゲート信号Ｇ３に応じてゲートして出力する第３のゲート手段７と、一方の入力に暗号処理手段５からの出力データを供給され、他方の入力に第３のゲート手段７からの出力データを供給され、暗号処理手段５からの出力データと第３のゲート手段７からの出力データとをエクスクルーシブオアしたデータを出力する第２のエクスクルーシブオア回路６と、第２のエクスクルーシブオア回路６からの出力データを格納する出力レジスタ８と、入力レジスタ１からのデータと、暗号処理手段５からのデータと、第２のエクスクルーシブオア回路６からのデータと、第１のデータのいずれかを選択出力する第１のセレクタ９と、第１のセレクタ９からの出力データを一時的に格納し、第１のデータとして出力する格納手段１０と、格納手段１０からのデータと、入力レジスタ１からのデータのいずれかを第２のデータとして選択出力する第２のセレクタ１１とから構成した。
【００１３】
【作用】
上記構成の本発明によれば、第１のゲート信号Ｇ１及び第２のゲート信号Ｇ２及び第３のゲート信号Ｇ３に応じて第１のゲート手段２及び第２のゲート手段４及び第３のゲート手段７からの出力データがゲートされ、且つ、第１のセレクタと第２のセレクタの出力データが選択されることでデータの流れが制御され、ＥＣＢモード、ＣＢＣモード、ＣＦＢモード、及びＯＦＢモードの各モードで回路が共用化されて動作するように作用する。
【００１４】
すなわち、第１のゲート信号Ｇ１をハイレベル（１）、第２のゲート信号Ｇ２をローレベル（０）、第３のゲート信号Ｇ３をローレベル（０）とすることで、データの流れは図２に太線で示す様に制御される。したがって、ＥＣＢモードの暗号化及び復号化処理が行われる。
【００１５】
また、第１のゲート信号Ｇ１をハイレベル（１）、第２のゲート信号Ｇ２をハイレベル（１）、第３のゲート信号Ｇ３をローレベル（０）とすることで、データの流れは図３に太線で示す様に制御される。したがって、ＣＢＣモードの暗号化処理が行われる。
【００１６】
また、第１のゲート信号Ｇ１をハイレベル（１）、第２のゲート信号Ｇ２をローレベル（０）、第３のゲート信号Ｇ３をハイレベル（１）とすることで、データの流れは図４に太線で示す様に制御される。したがって、ＣＢＣモードの復号化処理が行われる。
【００１７】
また、第１のゲート信号Ｇ１をローレベル（０）、第２のゲート信号Ｇ２をハイレベル（１）、第３のゲート信号Ｇ３をハイレベル（１）として第２のエクスクルーシブオア回路６からの下位ｋビットを第１のセレクタ９より出力することで、データの流れは図５に太線で示す様に制御される。したがって、ｋビットＣＦＢモードの暗号化処理が行われる。
【００１８】
また、第１のゲート信号Ｇ１をローレベル（０）、第２のゲート信号Ｇ２をハイレベル（１）、第３のゲート信号Ｇ３をハイレベル（１）として入力レジスタ１からの下位ｋビットを第１のセレクタ９より出力することで、データの流れは図６に太線で示す様に制御される。したがって、ｋビットＣＦＢモードの復号化処理が行われる。
【００１９】
なお、ｋビットの選択は第１のセレクタ９のｋビット幅選択で行い、シフトレジスタを用いないため高速にフィードバックが可能となっている。
【００２０】
そして、第１のゲート信号Ｇ１をローレベル（０）、第２のゲート信号Ｇ２をハイレベル（１）、第３のゲート信号Ｇ３をハイレベル（１）として暗号処理手段５からの下位ｋビットを第１のセレクタ９より出力することで、データの流れは図７に太線で示す様に制御される。したがって、ＯＦＢモードの暗号化及び復号化処理が行われる。
【００２１】
【実施例】次に、図面を参照して本発明の実施例について説明する。図８は本発明の一実施例の構成図であり、ＬＳＩ化されている。
【００２２】
本実施例では、ブロック長は６４ビットの米国標準暗号ＤＥＳ（Ｄａｔａ    Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ，ＦＩＰＳ  ４６，１９７７）で、モード処理は、ＥＣＢモード、ＣＢＣモード、１ビットＣＦＢモード、８ビットＣＦＢモード、１６ビットＣＦＢモード、１ビットＯＦＢモード、６４ビットＯＦＢモードを実現している。
【００２３】
データの入出力モードとして、パラレルインタフェースとシリアルインタフェースを持つが、その入出力モードと操作モードとの関係を図９に示す。
【００２４】
すなわち、パラレルインタフェースではＥＣＢモード、ＣＢＣモード、８ビットＣＦＢモード、１６ビットＣＦＢモード、６４ビットＯＦＢモード、及びＩＶ（Ｉｎｉｔｉａｌ  Ｖｅｃｔｏｒ）設定が処理可能であり、シリアルインタフェースでは１ビットＣＦＢモード、１ビットＯＦＢモード、６４ビットＯＦＢモード、及びＩＶ設定が処理可能である。
【００２５】
図８に戻って説明するに、２１は入力データが一時的に格納される入力レジスタである。２２はＥＣＢモード、ＣＢＣモード時に第１のゲート信号Ｇ１がハイレベルとなり、入力レジスタ２１からのデータをゲートして通す第１のゲート手段であるアンドゲートである。
【００２６】
また、２３はＣＢＣ暗号化モード、１ビットＣＦＢモード、８ビットＣＦＢモード、１６ビットＣＦＢモード、１ビットＯＦＢモード、及び６４ビットＯＦＢモード時に第２のゲート信号Ｇ２がハイレベルとなり、格納手段であるＩＶレジスタ３１からの第１のデータであるＩＶデータをゲートして通す第２のゲート手段であるアンドゲートである。
【００２７】
アンドゲート２２の出力とアンドゲート２３の出力は、第１のエクスクルーシブオア回路である入力側エクスクルーシブオア回路２４に入力される。２５はＤＥＳ演算を行うＤＥＳアルゴリズム回路である。ＤＥＳアルゴリズム回路２５の出力は、第２のエクスクルーシブオア回路である出力側エクスクルーシブオア回路２６の一方の入力に入力される。２７は出力側エクスクルーシブオア回路２６からの出力データを一時的に格納する出力レジスタである。
【００２８】
２８は８ビットＣＦＢ暗号化モード、１６ビットＣＦＢ暗号化モード時のフィードバックデータ（入力０）か、８ビットＣＦＢ復号化モード、１６ビットＣＦＢ復号化モード時のフィードバックデータ（入力１）かを選択して出力する２入力セレクタである。２９は１６ビットＣＦＢモード時のフィードバックデータ（入力０）か、８ビットＣＦＢモード時のフィードバックデータ（入力１）かを選択して出力する２入力セレクタである。
【００２９】
３０は８ビットＣＦＢモード、１６ビットＣＦＢモード時のフィードバックデータ（入力０）か、ＣＢＣ暗号化／６４ビットＯＦＢモード時のフィードバックデータ（入力１）か、ＣＢＣ復号化モード時のフィードバックデータ／ＩＶ設定時のＩＶデータ（入力２）か、１ビットＯＦＢモード時のフィードバックデータ（入力３）か、１ビットＣＦＢモード時のフィードバックデータ（入力４）かを選択して出力する５入力セレクタである。セレクタ２８及び２９及び３０により第１のセレクタを構成している。
【００３０】
３１はＩＶデータを一時的に格納するＩＶレジスタである。３２はＣＢＣ復号モード時のフィードバックデータ（入力０）か、６４ビットＯＦＢモード（パラレル入力）、８ビットＣＦＢモード、１６ビットＣＦＢモード時のフィードバックデータ（入力１）かを選択して出力する２入力セレクタであり、第２のセレクタに相当する。
【００３１】
３３は１ビットＣＦＢ復号化モード時のフィードバックデータ（入力０）か１ビットＣＦＢ暗号化モード時のフィードバックデータ（入力１）かを選択して出力する２入力セレクタである。
【００３２】
３４は６４ビットＯＦＢモードのシリアルインタフェース時のＩＶレジスタ３１の出力データ（ＤＥＳ演算結果）を６４ビットパラレルデータからシリアルデータに変換するパラレル・シリアル変換回路である。３５は１ビットＯＦＢモード、１ビットＣＦＢモードのシリアルインタフェース時のＤＥＳ演算結果データ（入力０）か、６４ビットＯＦＢモードのシリアルインタフェース時のＤＥＳ演算結果データ（入力１）かを選択して出力する２入力セレクタである。
【００３３】
３６はエクスクルーシブオア回路である。また、３７はＣＢＣ復号化、８ビットＣＦＢモード、１６ビットＣＦＢモード、６４ビットＯＦＢモード時に第３のゲート信号Ｇ３がハイレベルとなり、セレクタ３２からの出力データをゲートして通すアンドゲートである。４１はシリアル入力端子、４２はシリアル出力端子である。
【００３４】
図１０はＥＣＢ（Ｅｌｅｃｔｒｉｃ  Ｃｏｄｅ  Ｂｏｏｋ）モードを示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力される（セレクタ３２の出力がオフ、他のセレクタ出力はドントケア（”Ｘ”））と、データの流れは同図（Ｂ）に太線で示す通りに制御される。
【００３５】
すなわち、入力レジスタ２１に入力された１ブロック（６４ビット）のデータはアンドゲート２２を通った後入力側エクスクルーシブオア回路２４を通り、ＤＥＳアルゴリズム回路２５で暗号化（復号化）された後出力側エクスクルーシブオア回路２６を通って出力レジスタ２７でラッチされる。
【００３６】
図１１はＩＶ設定を示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力（セレクタ３０は入力２を出力し、他のセレクタ出力はドントケア（”Ｘ”））されると、データの流れは同図（Ｂ）に太線で示す通りに制御される。
【００３７】
ＣＢＣモード、ＣＦＢモード、ＯＦＢモードで暗号化（復号化）する場合は、始に次のようにＩＶ設定する必要がある。すなわち、入力レジスタ２１でラッチされたＩＶデータ（６４ビット）はセレクタ３０の入力０に入力され、ＩＶレジスタ３１に設定される。
【００３８】
図１２はＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ）暗号化モードを示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力される（セレクタ３０が入力１を出力し、セレクタ３２の出力がオフ、他のセレクタ出力はドントケア（”Ｘ”））と、データの流れは同図（Ｂ）に太線で示す通りに制御される。
【００３９】
すなわち、ＩＶレジスタ３１にＩＶデータを設定（第１１図参照）し、入力レジスタ２１でラッチされた１ブロック目のデータは、アンドゲート２２を通った後入力側エクスクルーシブオア回路２４に入力される。入力側エクスクルーシブオア回路２４のもう一方の入力には、ＩＶレジスタ３１に設定されたＩＶデータが入力され、このＩＶデータと入力データの排他的論理和をとったデータがＤＥＳアルゴリズム回路２５で暗号化される。
【００４０】
暗号化された出力データは、１ブロック目の暗号化データとして出力側エクスクルーシブオア回路２６を通り出力レジスタ２７でラッチされると共に、セレクタ３０の入力１に入力されてセレクタ３０より出力され、ＩＶレジスタに設定される。２ブロック目の入力データは、ＩＶレジスタ３１に設定された１ブロック目の暗号化データと入力側エクスクルーシブオア回路２４で排他的論理和をとり暗号化される。２ブロック目以降のデータは以上の操作の繰り返しとなる。
【００４１】
図１３はＣＢＣ復号化モードを示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力される（セレクタ３０が入力２を出力し、セレクタ３２が入力０を出力し、他のセレクタ出力はドントケア（”Ｘ”））と、データの流れは同図（Ｂ）に太線で示す通りに制御される。
【００４２】
すなわち、ＩＶレジスタ３１にＩＶデータを設定（第１１図参照）し、入力レジスタ２１でラッチされた１ブロック目のデータは、アンドゲート２２を通った後入力側エクスクルーシブオア回路２４を通りＤＥＳアルゴリズム回路２５に入力されると共に、セレクタ３０の入力２に入力される。ＤＥＳアルゴリズム回路２５で復号化されたデータは、ＩＶレジスタ３１に設定されたＩＶデータと出力側エクスクルーシブオア回路２６で排他的論理和をとり、出力レジスタ２７でラッチされる。
【００４３】
この時点で、１ブロック目の入力データはセレクタ３０からＩＶレジスタ３１に設定される。２ブロック目以降の入力データの復号化は、ＤＥＳアルゴリズム回路２５で復号化された後に１ブロック前の入力データとの排他的論理和をとり復号化データとなる。
【００４４】
図１４は１ビットＣＦＢ（Ｃｉｐｈｅｒ  Ｆｅｅｄ  Ｂａｃｋ）暗号化モードを示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力される（セレクタ３０が入力４を出力し、セレクタ３３が入力０を出力し、セレクタ３５が入力１を出力し、他のセレクタ出力はドントケア（”Ｘ”））と、データの流れは同図（Ｂ）に太線で示す通りに制御される。
【００４５】
すなわち、ＩＶレジスタ３１にＩＶデータを設定（第１１図参照）し、１ブロック目のＩＶデータはアンドゲート２３を通った後入力側エクスクルーシブオア回路２４を通り、ＤＥＳアルゴリズム回路２５で暗号化される。暗号化されたデータの上位１ビットはセレクタ３５の入力０に入力されると共に、入力端子４１よりシリアルで入力された入力データ１ビットとエクスクルーシブオア回路３６で排他的論理和をとり、暗号化データとして出力端子４２より出力される。
【００４６】
２ブロック目のＩＶデータは、１ブロック目のＩＶデータの下位６３ビットが上位６３ビットとなり、最下位ビットはセレクタ３３を通った１回目の暗号化データとなってセレクタ３０の入力４に入力され、このセレクタ３０の出力が２ブロック目のＩＶデータとしてＩＶレジスタ３１に設定される。２回目以降は以上の繰り返しとなる。
【００４７】
図１５は１ビットＣＦＢ復号化モードを示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力される（セレクタ３０が入力４を出力し、セレクタ３３が入力０を出力し、セレクタ３５が入力０を出力し、他のセレクタ出力はドントケア（”Ｘ”））と、データの流れは同図（Ｂ）に太線で示す通りに制御される。
【００４８】
すなわち、ＩＶレジスタ３１にＩＶデータを設定（第１１図参照）し、１ブロック目のＩＶデータはアンドゲート２３を通った後入力側エクスクルーシブオア回路２４を通り、ＤＥＳアルゴリズム回路２５で暗号化される。暗号化されたデータの上位１ビットはセレクタ３５の入力０に入力されると共に、入力端子４１よりシリアルで入力された入力データ１ビットとエクスクルーシブオア回路３６で排他的論理和をとり、暗号化データとして出力端子４２より出力される。
【００４９】
２ブロック目のＩＶデータは、１ブロック目のＩＶデータの下位６３ビットが上位６３ビットとなり、最下位ビットはセレクタ３３を通った１回目の入力データとなってセレクタ３０の入力４に入力され、このセレクタ３０の出力が２ブロック目のＩＶデータとしてＩＶレジスタ３１に設定される。２回目以降は以上の繰り返しとなる。
【００５０】
図１６は８ビットＣＦＢ暗号化モードを示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力される（セレクタ３０が入力０を出力し、セレクタ３２が入力１を出力し、セレクタ２９が入力１を出力し、セレクタ２８が入力０を出力し、他のセレクタ出力はドントケア（”Ｘ”））と、データの流れは同図（Ｂ）に太線で示す通りに制御される。
【００５１】
すなわち、ＩＶレジスタ３１にＩＶデータを設定（第１１図参照）し、１ブロック目のＩＶデータはアンドゲート２３を通った後入力側エクスクルーシブオア回路２４を通り、ＤＥＳアルゴリズム回路２５で暗号化される。そして、入力レジスタ２１でラッチされてセレクタ３２を通った１ブロック目の入力データと出力側エクスクルーシブオア回路２６で排他的論理和をとり、１ブロック目の暗号化データとして出力レジスタ２７でラッチされる。
【００５２】
同時に、暗号化データの上位１６ビットはセレクタ２８の入力０に入力されてセレクタ２８より出力される。この出力の上位８ビットが２ブロック目のＩＶデータの下位８ビットに、また、１ブロック目のＩＶデータの下位５６ビットが２ブロック目のＩＶデータの上位５６ビットとなってセレクタ２９の入力１に入力されてセレクタ２９より出力される。セレクタ２９からの出力データはセレクタ３０の入力０に入力され、セレクタ３０より出力される。セレクタ３０からの出力データはＩＶレジスタ３１に２ブロック目のＩＶデータとして設定される。２回目以降は以上の繰り返しとなる。
【００５３】
図１７は８ビットＣＦＢ復号化モードを示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力される（セレクタ３０が入力０を出力し、セレクタ３２が入力１を出力し、セレクタ２９が入力１を出力し、セレクタ２８が入力１を出力し、他のセレクタ出力はドントケア（”Ｘ”））と、データの流れは同図（Ｂ）に太線で示す通りに制御される。
【００５４】
すなわち、ＩＶレジスタ３１にＩＶデータを設定（第１１図参照）し、１ブロック目のＩＶデータはアンドゲート２３を通った後入力側エクスクルーシブオア回路２４を通り、ＤＥＳアルゴリズム回路２５で復号化される。そして、入力レジスタ２１でラッチされてセレクタ３２を通った１ブロック目の入力データと出力側エクスクルーシブオア回路２６で排他的論理和をとり、１ブロック目の復号化データとして出力レジスタ２７でラッチされる。
【００５５】
同時に、１ブロック目の入力データの上位１６ビットはセレクタ２８の入力１に入力されてセレクタ２８より出力される。この出力の上位８ビットが２ブロック目のＩＶデータの下位８ビットに、また、１ブロック目のＩＶデータの下位５６ビットが２ブロック目のＩＶデータの上位５６ビットとなってセレクタ２９の入力１に入力されてセレクタ２９より出力される。セレクタ２９からの出力データはセレクタ３０の入力０に入力され、セレクタ３０より出力される。セレクタ３０からの出力データはＩＶレジスタ３１に２ブロック目のＩＶデータとして設定される。２回目以降は以上の繰り返しとなる。
【００５６】
図１８は１６ビットＣＦＢ暗号化モードを示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力される（セレクタ３０が入力０を出力し、セレクタ３２が入力１を出力し、セレクタ２９が入力０を出力し、セレクタ２８が入力０を出力し、他のセレクタ出力はドントケア（”Ｘ”））と、データの流れは同図（Ｂ）に太線で示す通りに制御される。
【００５７】
すなわち、ＩＶレジスタ３１にＩＶデータを設定（第１１図参照）し、１ブロック目のＩＶデータはアンドゲート２３を通った後入力側エクスクルーシブオア回路２４を通り、ＤＥＳアルゴリズム回路２５で暗号化される。そして、入力レジスタ２１でラッチされてセレクタ３２を通った１ブロック目の入力データと出力側エクスクルーシブオア回路２６で排他的論理和をとり、１ブロック目の暗号化データとして出力レジスタ２７でラッチされる。
【００５８】
同時に、暗号化データの上位１６ビットはセレクタ２８の入力０に入力されてセレクタ２８より出力される。この出力の上位１６ビットが２ブロック目のＩＶデータの下位１６ビットに、また、１ブロック目のＩＶデータの下位４８ビットが２ブロック目のＩＶデータの上位４８ビットとなってセレクタ２９の入力０に入力されてセレクタ２９より出力される。セレクタ２９からの出力データはセレクタ３０の入力０に入力され、セレクタ３０より出力される。セレクタ３０からの出力データはＩＶレジスタ３１に２ブロック目のＩＶデータとして設定される。２回目以降は以上の繰り返しとなる。
【００５９】
図１９は１６ビットＣＦＢ復号化モードを示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力される（セレクタ３０が入力０を出力し、セレクタ３２が入力１を出力し、セレクタ２９が入力０を出力し、セレクタ２８が入力１を出力し、他のセレクタ出力はドントケア（”Ｘ”））と、データの流れは同図（Ｂ）に太線で示す通りに制御される。
【００６０】
すなわち、ＩＶレジスタ３１にＩＶデータを設定（第１１図参照）し、１ブロック目のＩＶデータはアンドゲート２３を通った後入力側エクスクルーシブオア回路２４を通り、ＤＥＳアルゴリズム回路２５で復号化される。そして、入力レジスタ２１でラッチされてセレクタ３２を通った１ブロック目の入力データと出力側エクスクルーシブオア回路２６で排他的論理和をとり、１ブロック目の復号化データとして出力レジスタ２７でラッチされる。
【００６１】
同時に、１ブロック目の入力データの上位１６ビットはセレクタ２８の入力１に入力されてセレクタ２８より出力される。この出力の上位１６ビットが２ブロック目のＩＶデータの下位１６ビットに、また、１ブロック目のＩＶデータの下位４８ビットが２ブロック目のＩＶデータの上位４８ビットとなってセレクタ２９の入力０に入力されてセレクタ２９より出力される。セレクタ２９からの出力データはセレクタ３０の入力０に入力され、セレクタ３０より出力される。セレクタ３０からの出力データはＩＶレジスタ３１に２ブロック目のＩＶデータとして設定される。２回目以降は以上の繰り返しとなる。
【００６２】
図２０は１ビットＯＦＢ（Ｏｕｔｐｕｔ  Ｆｅｅｄ  Ｂａｃｋ）モードを示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力される（セレクタ３０が入力３を出力し、セレクタ３５が入力０を出力し、他のセレクタ出力はドントケア（”Ｘ”））と、データの流れは暗号化、復号化共に同図（Ｂ）に太線で示す通りに制御される。
【００６３】
すなわち、ＩＶレジスタ３１にＩＶデータを設定（第１１図参照）し、１ブロック目のＩＶデータはアンドゲート２３を通った後入力側エクスクルーシブオア回路２４を通り、ＤＥＳアルゴリズム回路２５で暗号化される。暗号化データの上位１ビットはセレクタ３５の入力０に入力されてセレクタ３５より出力され、エクスクルーシブオア回路３６の一方の入力に入力される。そして、シリアル入力端子４１からエクスクルーシブオア回路３６のもう一方の入力に入力される入力データ１ビットとエクスクルーシブオア回路３６で排他的論理和をとり、暗号化（復号化）データとしてシリアル出力端子４２より出力される。
【００６４】
２ブロック目のＩＶデータは、１ブロック目のＩＶデータの下位６３ビットが上位６３ビットとなり、最下位ビットはＤＥＳアルゴリズム回路２５の出力データの最上位ビットとなり、セレクタ３０の入力３に入力されてセレクタ３０より出力される。そして、セレクタ３０からの出力が２ブロック目のＩＶデータとしてＩＶレジスタ３１に設定される。２回目以降は以上の繰り返しとなる。
【００６５】
図２１は６４ビットＯＦＢモード  シリアルインタフェースを示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力される（セレクタ３０が入力１を出力し、セレクタ３５が入力１を出力し、他のセレクタ出力はドントケア（”Ｘ”））と、データの流れは暗号化、復号化共に同図（Ｂ）に太線で示す通りに制御される。
【００６６】
すなわち、ＩＶレジスタ３１にＩＶデータを設定（第１１図参照）し、１ブロック目のＩＶデータはアンドゲート２３を通った後入力側エクスクルーシブオア回路２４を通り、ＤＥＳアルゴリズム回路２５で暗号化される。暗号化データ６４ビットはパラレル・シリアル変換回路３４でシリアルデータに変換された後、セレクタ３５の入力１に入力されてセレクタ３５より出力される。
【００６７】
そして、セレクタ３５からの出力データとシリアル入力端子４１から入力された６４ビットのデータを、エクスクルーシブオア回路３６で１ビットずつ排他的論理和をとり、シリアルで６４ビット単位で暗号化（復号化）データとしてシリアル出力端子４２より出力する。
【００６８】
また、ＤＥＳアルゴリズム回路２５からの出力データはセレクタ３０の入力１に入力されてセレクタ３０より出力され、セレクタ３０からの出力データは２ブロック目のＩＶデータとしてＩＶレジスタ３１に設定される。２回目以降は以上の繰り返しとなる。
【００６９】
図２２は６４ビットＯＦＢモード  パラレルインタフェースを示す図である。同図（Ａ）に示す如く各アンドゲート２２，２３がゲートされ、各セレクタ２８，２９，３０，３２，３３，３５からの出力が出力される（セレクタ３０が入力１を出力し、セレクタ３２が入力１を出力し、他のセレクタ出力はドントケア（”Ｘ”））と、データの流れは暗号化、復号化共に同図（Ｂ）に太線で示す通りに制御される。
【００７０】
すなわち、ＩＶレジスタ３１にＩＶデータを設定（第１１図参照）し、１ブロック目のＩＶデータはアンドゲート２３を通った後入力側エクスクルーシブオア回路２４を通り、ＤＥＳアルゴリズム回路２５で暗号化される。ＤＥＳアルゴリズム回路２５からの出力暗号化データは、入力レジスタ２１でラッチされセレクタ３２より選択出力された１ブロック目の入力データと出力側エクスクルーシブオア回路２６で排他的論理和をとり、暗号化（復号化）データとして出力レジスタによりラッチされる。
【００７１】
また、ＤＥＳアルゴリズム回路２５からの出力データはセレクタ３０の入力１に入力されてセレクタ３０より出力され、セレクタ３０からの出力データは２ブロック目のＩＶデータとしてＩＶレジスタ３１に設定される。２回目以降は以上の繰り返しとなる。
【００７２】
このように本実施例によれば、各々のＤＥＳ操作モードで共通する機能を共用化することにより、従来回路では６４ビット×５＝３２０個必要であったエクスクルーシブオア回路を、６４ビット×２＝１２８個で暗号演算回路を構成することができる。また、６４ビットのシフトレジスタが５個必要であったものが６４ビットのレジスタ１個でよく、６４ビットの５入力セレクタが２個必要であったものが１乃至数個のセレクタで回路を構成可能となった。
【００７３】
したがって、従来回路と同等の機能を持たせてＬＳＩ化することを考慮した場合、回路規模を大幅に削減して小型化することが可能である。また、データのフィードバック時の遅延時間が、フィードバック量にかかわらず１クロックとなることにより、データのフィードバックが必要なＣＢＣモード、ＣＦＢモード、ＯＦＢモードでは、フィードバック量にかかわらず暗号処理時間を短縮することができる。
【００７４】
【発明の効果】
上述の如く本発明によれば、第１のゲート信号Ｇ１及び第２のゲート信号Ｇ２及び第３のゲート信号Ｇ３に応じて第１のゲート手段２及び第２のゲート手段４及び第３のゲート手段７からの出力データがゲートされ、且つ、第１のセレクタと第２のセレクタの出力データが選択されることでデータの流れが制御され、ＥＣＢモード、ＣＢＣモード、ＣＦＢモード、及びＯＦＢモードの各モードで回路が共用化されて動作するため、回路規模を従来よりも大幅に縮小することできて、ＬＳＩ化すれば小型のＬＳＩが得られる特長がある。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】ＥＣＢモードの暗号化及び復号化処理を示す図である。
【図３】ＣＢＣモードの暗号化処理を示す図である。
【図４】ＣＢＣモードの復号化処理を示す図である。
【図５】ｋビットＣＦＢモードの暗号化処理を示す図である。
【図６】ｋビットＣＦＢモードの復号化処理を示す図である。
【図７】ＯＦＢモードの暗号化及び復号化処理を示す図である。
【図８】本発明の一実施例の構成図である。
【図９】入出力モードと操作モードの関係を示す図である。
【図１０】ＥＣＢモードを示す図である。
【図１１】ＩＶ設定を示す図である。
【図１２】ＣＢＣ暗号化モードを示す図である。
【図１３】ＣＢＣ復号化モードを示す図である。
【図１４】１ビットＣＦＢ暗号化モードを示す図である。
【図１５】１ビットＣＦＢ復号化モードを示す図である。
【図１６】８ビットＣＦＢ暗号化モードを示す図である。
【図１７】８ビットＣＦＢ復号化モードを示す図である。
【図１８】１６ビットＣＦＢ暗号化モードを示す図である。
【図１９】
１６ビットＣＦＢ復号化モードを示す図である。
【図２０】
１ビットＯＦＢモードを示す図である。
【図２１】
６４ビットＯＦＢモード  シリアルインタフェースを示す図である。
【図２２】
６４ビットＯＦＢモード  パラレルインタフェースを示す図である。
【図２３】
従来の暗号演算回路の一例を示す図である。
【図２４】
ＣＢＣ暗号化回路を示す図である。
【図２５】
ＣＢＣ復号化回路を示す図である。
【図２６】
ＣＦＢ暗号化回路を示す図である。
【図２７】
ＣＦＢ復号化回路を示す図である。
【図２８】
ＯＦＢ暗号化・復号化回路を示す図である。
【符号の説明】
１，２１  入力レジスタ
８，２７  出力レジスタ
２２，２３，３７  アンドゲート
２４  入力側エクスクルーシブオア回路
２５  ＤＥＳアルゴリズム回路
２６  出力側エクスクルーシブオア回路
２８，２９，３０，３２  セレクタ
３１  ＩＶレジスタ
【図１】
0003547474.tif 000002
【図２】
0003547474.tif 000003
【図３】
0003547474.tif 000004
【図４】
0003547474.tif 000005
【図５】
0003547474.tif 000006
【図６】
0003547474.tif 000007
【図７】
0003547474.tif 000008
【図８】
0003547474.tif 000009
【図９】
0003547474.tif 000010
【図１０】
0003547474.tif 000011
【図１１】
0003547474.tif 000012
【図１２】
0003547474.tif 000013
【図１３】
0003547474.tif 000014
【図１４】
0003547474.tif 000015
【図１５】
0003547474.tif 000016
【図１６】
0003547474.tif 000017
【図１７】
0003547474.tif 000018
【図１８】
0003547474.tif 000019
【図１９】
0003547474.tif 000020
【図２０】
0003547474.tif 000021
【図２１】
0003547474.tif 000022
【図２２】
0003547474.tif 000023
【図２３】
0003547474.tif 000024
【図２４】
0003547474.tif 000025
【図２５】
0003547474.tif 000026
【図２６】
0003547474.tif 000027
【図２７】
0003547474.tif 000028
【図２８】
0003547474.tif 000029