(57)【要約】  パケット暗号化アルゴリズムに基づく暗号化処理方法は、以下の工程、すなわち、外部鍵保持、外部データ保持、鍵拡張、データ暗号化変換、内部データ保持、およびデータ反復処理を含むことにより、低い暗号化効率や高い実現コストなど、従来のパケット暗号化アルゴリズムに基づく暗号化方法の問題を解決して、従来技術の高効率を維持するという前提の下で資源消費量を効率的に低下させ、装置の実現コストを低減させる。変換要素数が１個の場合は、資源消費量は従来技術の約６０％に過ぎず、変換要素数が２個の場合は、資源消費量は従来技術の約７０％に過ぎない。本発明は、副鍵保持部を増設することにより、集積回路の実現時に暗号化装置のクリティカルパスを短くしてクロック主周波数を上げることができ、それにより本発明の方法の暗号化能力を向上させることができる。
2011503665.tif 000002
【特許請求の範囲】
【請求項１】
１）クロック周期のクロック端が来ると、鍵拡張部のデータ保持要素が、入力される外部鍵を保持する外部鍵保持工程と、
２）前記クロック周期のクロック端が来ると、暗号化部のデータ保持要素が、入力される外部データを保持する外部データ保持工程と、
３）前記クロック周期の間に、前記鍵拡張部のデータ変換要素が、前記鍵拡張部のデータ保持要素によって保持されたデータを受け取り、鍵拡張を実行し、取得された副鍵を前記暗号化部のデータ変換要素に入力する鍵拡張工程と、
４）前記クロック周期の間に、前記暗号化部の前記データ変換要素が、前記暗号化部の前記データ保持要素によって保持されたデータを受け取り、前記鍵拡張工程で取得された副鍵を用いて、受け取り側からのデータに対してデータ暗号化と変換を実行するデータ暗号化および変換工程と、
５）次のクロック周期のクロック端が来ると、
前記鍵拡張部の前記データ保持要素が、前記鍵拡張部の前記データ変換要素によって取得されたデータを保持し、
前記暗号化部の前記データ保持要素が、前記暗号化部の前記データ変換要素によって取得されたデータを保持する内部データ保持工程と、
６）データが変換される回数がブロック暗号化アルゴリズムで指定された回数に達するまで、前記鍵拡張工程と、前記データ暗号化および変換工程と、前記内部データ保持工程とが繰り返され、これにより１データセットに対する暗号化が完了するデータ反復工程と、
を含むブロック暗号化アルゴリズムに基づく暗号化処理方法。
【請求項２】
前記鍵拡張工程が、前記クロック周期の間に、前記鍵拡張部の前記データ保持要素に保持されたデータを鍵拡張のために前記鍵拡張部の前記データ変換要素に入力し、取得された副鍵を前記暗号化部の前記データ変換要素に入力すると同時に、前記鍵拡張部の前記データ変換要素の出力データを前記鍵拡張部の次のデータ変換要素に入力することと、前記鍵拡張部の複数個のデータ変換要素によって順番に鍵拡張を実行することを含み、
前記データ暗号化および変換工程が、前記クロック周期の間に、前記暗号化部の前記データ保持要素に保持されたデータを前記暗号化部の前記データ変換要素に入力し、前記暗号化部の前記データ変換要素によってデータの暗号化と変換を実行し、前記暗号化部の前記データ変換要素の出力データを前記暗号化部の次のデータ変換要素に入力することと、前記暗号化部の複数個のデータ変換要素によって順番にデータ暗号化を実行することを含み、
前記内部データ保持工程が、次のクロック周期のクロック端が来ると、前記鍵拡張部の最後のデータ変換要素の出力データを保持のために前記鍵拡張部の前記データ保持要素に入力することと、前記暗号化部の最後のデータ変換要素の出力データを保持のために前記暗号化部の前記データ保持要素に入力することを含む、
請求項１に記載のブロック暗号化アルゴリズムに基づく暗号化処理方法。
【請求項３】
前記外部鍵保持工程と前記外部データ保持工程との間に、鍵前拡張工程と鍵バッファ保持工程とをさらに備え、
前記鍵前拡張工程が、前記外部鍵保持工程が実行されるクロック周期の間に、前記鍵拡張部の前記データ保持要素に保持されたデータを鍵拡張のために前記鍵拡張部の前記データ変換要素に入力し、取得された副鍵を、接続されている副鍵保持要素の入力ポートに入力することと、前記鍵拡張部の前記データ変換要素によって変換されて取得されたデータを前記鍵拡張部の前記データ保持要素の入力ポートに入力することを含み、
前記鍵バッファ保持工程が、前記外部鍵保持工程後の次のクロック周期のクロック端が来ると、前記鍵拡張部の前記データ変換要素によって変換されて取得されたデータを保持のために前記鍵拡張部の前記データ保持要素に入力することと、前記鍵拡張部の前記データ変換要素の副鍵を保持のために前記副鍵保持要素に入力することを含み、
これにより、前記鍵拡張工程が、前記鍵拡張部のデータ変換要素により、前記鍵拡張部の前記データ保持要素によって保持されたデータを受け取り、鍵拡張を実行し、取得された副鍵を前記副鍵保持要素の入力ポートに入力することを含み、
前記内部データ保持工程が、前記副鍵保持要素により、前記鍵拡張部の前記データ変換要素によって取得された副鍵を保持することをさらに含み、
前記データ暗号化および変換工程が、前記内部データ保持工程が実行されるクロック周期の間に、前記暗号化部の前記データ変換要素により、前記副鍵保持要素に保持された副鍵を受け取り、前記副鍵を用いて、前記受け取り側からのデータに対してデータの暗号化と変換を実行することを含む、
請求項１に記載のブロック暗号化アルゴリズムに基づく暗号化処理方法。
【請求項４】
前記鍵前拡張工程が、前記外部鍵保持工程が実行されるクロック周期の間に、前記鍵拡張部の前記データ保持要素に保持されたデータを鍵拡張のために前記鍵拡張部の第１のデータ変換要素に入力し、取得された副鍵を、接続されている第１の副鍵保持要素の入力ポートに入力すると同時に、前記鍵拡張部の第１のデータ変換要素の出力データを二度目の鍵拡張のために前記鍵拡張部の次のデータ変換要素に入力することと、前記鍵拡張部の複数個のデータ変換要素により、順番に変換を実行し、生成された副鍵を、接続されている副鍵保持要素の入力ポートに入力し、前記鍵拡張部の最後のデータ変換要素の出力データを前記鍵拡張部の前記データ保持要素の入力ポートに入力することを含み、
前記鍵バッファ保持工程が、前記外部鍵保持工程後の次のクロック周期のクロック端が来ると、前記鍵拡張部の最後のデータ変換要素によって変換されて取得されたデータを保持のために前記鍵拡張部の前記データ保持要素に入力することと、前記鍵拡張部の前記データ変換要素の副鍵を保持のために対応する副鍵保持要素に入力することを含み、
前記鍵拡張工程が、前記鍵拡張部の前記データ保持要素に保持されたデータを鍵拡張のために前記鍵拡張部の第１のデータ変換要素に入力し、取得された副鍵を、接続されている第１の副鍵保持要素の入力ポートに入力すると同時に、前記鍵拡張部の第１のデータ変換要素の出力データを二度目の鍵拡張のために前記鍵拡張部の次のデータ変換要素に入力することと、前記鍵拡張部の複数個のデータ変換要素により、順番に鍵拡張を実行し、生成された副鍵を、接続されている副鍵保持要素の入力ポートに入力し、前記鍵拡張部の最後のデータ変換要素の出力データを前記鍵拡張部の前記データ保持要素のデータ入力ポートに入力することを含み、
前記データ暗号化および変換工程が、前記内部データ保持工程が実行されるクロック周期の間に、前記暗号化部の前記データ保持要素に保持されたデータを前記暗号化部の第１のデータ変換要素に入力し、第１の副鍵保持要素の副鍵を前記暗号化部の第１のデータ変換要素に入力し、前記暗号化部の第１のデータ変換要素により、データの暗号化と変換を実行し、前記暗号化部の第１のデータ変換要素で暗号化され変換されたデータを前記暗号化部の第２のデータ変換要素に入力し、第２の副鍵保持要素の副鍵を前記暗号化部の第２のデータ変換要素に入力し、前記暗号化部の第２のデータ変換要素により、データの暗号化と変換を実行することと、前記鍵拡張部の前記データ変換要素に対応する前記暗号化部の複数個のデータ変換要素により、順番にデータの暗号化と変換を実行し、前記暗号化部の最後のデータ変換要素で暗号化され変換されたデータを前記暗号化部の前記データ保持要素のデータ入力ポートに入力することを含み、
前記内部データ保持工程が、前記鍵拡張工程後の次のクロック周期のクロック端が来ると、前記鍵拡張部の最後のデータ変換要素によって変換されて取得されたデータを保持のために前記鍵拡張部の前記データ保持要素に入力することと、前記鍵拡張部の前記データ変換要素の副鍵を保持のために対応する副鍵保持要素に入力することと、前記暗号化部の最後のデータ変換要素によって変換されて取得されたデータを保持のために前記暗号化部の前記データ保持要素に入力することを含む、
請求項３に記載のブロック暗号化アルゴリズムに基づく暗号化処理方法。
【請求項５】
前記ブロック暗号化アルゴリズムが、中国国家暗号管理局によって公開されたＳＭＳ４アルゴリズムである、請求項１から４のいずれか１項に記載のブロック暗号化アルゴリズムに基づく暗号化処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、参照により全体が本明細書に組み込まれ、「ブロック暗号化アルゴリズムに基づく暗号化処理方法」という名称で２００７年１１月１９日に出願された中国特許出願第２００７１００１９１０９．ｘ号の利益を主張する。
【０００２】
本発明は、情報セキュリティ技術の分野に関し、特に、ブロック暗号化アルゴリズムに基づく暗号化処理方法に関する。
【背景技術】
【０００３】
ブロック暗号化アルゴリズムには、主に、データ暗号化規格（ＤＥＳ）アルゴリズム、トリプルＤＥＳ（３ＤＥＳ）アルゴリズム、高度暗号化規格（ＡＥＳ）アルゴリズム、国際データ暗号化アルゴリズム（ＩＤＥＡ）、中国国家暗号管理局によって公開されたＳＭＳ４アルゴリズムなどが含まれる。ブロック暗号化アルゴリズムを実行するための主要な構成要素は、鍵拡張部、暗号化部および副鍵配列記憶部である。その点において、鍵拡張部と暗号化部は、主にデータ保持要素とデータ変換要素とを備えた類似の内部構造を有する。
【０００４】
データ保持要素は、データを保持する汎用トリガを主に使用する。１クロック周期の間は、要素によって保持されたデータは変わらない。汎用トリガは、クロック周期の立ち上がり端または立ち下がり端で、トリガのデータ入力ポートのデータを出力ポートに入力するデータ保持装置であるが、他の時間では、トリガ出力ポートのデータは変わらない。
【０００５】
データ変換要素は、ブロック暗号化アルゴリズムに従ってデータ処理を行う要素であり、例えば、ＳＭＳ４暗号化アルゴリズムに従ってデータ処理を行う要素である。データ変換要素によって実行される演算は、暗号化アルゴリズムによって指定された１つの合成置換（ｓｙｎｔｈｅｔｉｃ  ｒｅｐｌａｃｅｍｅｎｔ）しか有していない。
【０００６】
副鍵配列記憶部は、副鍵配列を記憶するように適応されている。既存の技術では、副鍵配列は、一般に、暗号化および復号処理の前に予め配列され、鍵拡張部によって生成されるデータ配列である。ＳＭＳ４暗号化アルゴリズムでは、副鍵配列記憶部のデータは、アドレス順に配列され、ｒｋ０、ｒｋ１…ｒｋ３１のように名づけられる。
【０００７】
現在、ＳＭＳ４暗号化アルゴリズムに従うデータ暗号化および復号処理のプロセスは、鍵拡張段階とデータ暗号化段階の２つの独立した段階を含んでいる。図１に示すように、まず第１に、鍵拡張部が、鍵を副鍵配列に拡張して、その配列を先行順（ｐｒｅｃｅｄｅｎｃｅ  ｏｒｄｅｒ）に従って副鍵配列記憶部に記憶させ、その後、暗号化部が、鍵拡張部によって生成された副鍵配列を用いてデータ暗号化を達成する。
【０００８】
Ａ）鍵拡張段階
【０００９】
１）外部鍵を鍵拡張部のデータ保持要素に入力
【００１０】
前処理の後、外部鍵が、保持のために鍵拡張部のデータ保持要素１００に入力される。
【００１１】
２）データ変換
【００１２】
鍵拡張部のデータ保持要素１００に保持されたデータが、変換のために鍵拡張部のデータ変換要素１０１に入力され、副鍵が取得される。
【００１３】
３）データ反復
【００１４】
先の変換処理後のデータが、鍵拡張部のデータ変換要素１００に記憶されると同時に、取得された副鍵が、副鍵配列記憶部２の第１行に記憶され、その後、鍵拡張部のデータ保持要素１００に保持されたデータが、データ変換のために鍵拡張部のデータ変換要素１０１に再び入力され、処理後に取得された副鍵が、副鍵配列記憶部２の次の行に記憶され、このデータ変換処理が３２回繰り返され、これにより、３２×３２ビット＝１０２４ビットの副鍵配列が取得される。
【００１５】
Ｂ）データ暗号化段階
【００１６】
１）外部データを暗号化部のデータ保持要素に入力
【００１７】
外部データが、保持のために暗号化部のデータ保持要素３００に入力される。
【００１８】
２）データ変換
【００１９】
暗号化部のデータ保持要素３００に保持されたデータが、暗号化部のデータ変換要素３０１に入力されると同時に、副鍵配列記憶部２に記憶された副鍵配列の第１行に対応するデータが、変換のために暗号化部のデータ変換要素３０１に入力される。
【００２０】
３）データ反復
【００２１】
先のデータ変換処理後のデータが、暗号化部のデータ保持要素３００に保持され、その後、暗号化部のデータ保持要素３００に保持されたデータが、暗号化部のデータ保持要素３０１に再び入力されると同時に、副鍵配列記憶部２の次の行の副鍵も、データ再変換のために暗号化部のデータ変換要素３０１に入力され、この処理が３２回繰り返されて、最終的な処理結果が取得される。
【００２２】
上記暗号化アルゴリズムでは、１つのデータセットを処理するのに３２クロック周期が必要であり、効率が低い。この問題を解決するためには、データ変換要素の数を増やすことによって、処理効率を向上させることができる。例えば、図２に示す解決策では、１２８ビットの１データセットが１６クロック周期で処理される。
【００２３】
既存の技術では、副鍵配列記憶要素が必要な要素である。１０２４ビットの副鍵配列記憶要素を実現するために、集積回路にレジスタが使用された場合、全資源の約４０％を占める約１００００ゲートの論理資源が消費される（図１の解決策では、総資源消費量は約２５０００ゲートである）。したがって、実現コストが非常に高い。
【発明の概要】
【発明が解決しようとする課題】
【００２４】
従来の方法の技術的問題、すなわち、ブロック暗号化アルゴリズムに基づく暗号化処理にかかる高い実現コストを解決するため、低コストで高効率のブロック暗号化アルゴリズムに基づく暗号化処理方法を提供することが本発明の目的である。
【課題を解決するための手段】
【００２５】
本発明の技術的解決策は、以下のとおりである。
【００２６】
ブロック暗号化アルゴリズムに基づく暗号化処理方法は、
【００２７】
１］クロック周期のクロック端が来ると、鍵拡張部のデータ保持要素が、入力される外部鍵を保持する外部鍵保持と、
【００２８】
２］上記クロック周期のクロック端が来ると、暗号化部のデータ保持要素が、入力される外部データを保持する外部データ保持と、
【００２９】
３］上記クロック周期の間に、上記鍵拡張部のデータ変換要素が、上記鍵拡張部のデータ保持要素によって保持されたデータを受け取り、鍵拡張を実行し、取得された副鍵を上記暗号化部のデータ変換要素に入力する鍵拡張と、
【００３０】
４］上記クロック周期の間に、上記暗号化部の上記データ変換要素が、上記暗号化部の上記データ保持要素によって保持されたデータを受け取り、上記鍵拡張工程で取得された副鍵を用いて、受け取り側（ｒｅｃｅｉｖｉｎｇ  ｅｎｄ）からのデータに対してデータ暗号化と変換を実行するデータ暗号化および変換と、
【００３１】
５］次のクロック周期のクロック端が来ると、
【００３２】
上記鍵拡張部の上記データ保持要素が、上記鍵拡張部の上記データ変換要素によって取得されたデータを保持し、
【００３３】
上記暗号化部の上記データ保持要素が、上記暗号化部の上記データ変換要素によって取得されたデータを保持する内部データ保持と、
【００３４】
６］データが変換される回数がブロック暗号化アルゴリズムで指定された回数に達するまで、上記鍵拡張工程と、上記データ暗号化および変換工程と、上記内部データ保持工程とが繰り返され、これにより１データセットに対する暗号化が完了するデータ反復とを含む。
【発明の効果】
【００３５】
上記の技術的解決策は以下の利点を有する。
【００３６】
１）副鍵配列記憶部が省略されるので、本発明にかかる暗号化処理方法は、高効率を維持しながら、資源消費量を効率的に低下させることができ、それにより、装置の実現コストが低減される。
【００３７】
２）本発明にかかる暗号化処理方法により、変換要素数が１個の場合は、資源消費量が従来の方法の６０％に過ぎず、変換要素数が２個の場合は、資源消費量が従来の方法の７０％に過ぎない。
【００３８】
３）副鍵保持部が増設されると、集積回路の実現時に、暗号化装置のクリティカルパスを短くして、クロック周波数を上げることができる。従って、本発明の方法の暗号化能力が向上される。
【図面の簡単な説明】
【００３９】
【図１】図１は、既存の暗号化および復号処理方法に使用される装置の第１の構造を示す概略図である。
【図２】図２は、既存の暗号化および復号処理方法に使用される装置の第２の構造を示す概略図である。
【図３】図３は、本発明にかかる暗号化処理方法に使用される装置の第１の構造を示す概略図である。
【図４】図４は、本発明にかかる暗号化処理方法に使用される装置の第２の構造を示す概略図である。
【図５】図５は、本発明にかかる暗号化処理方法に使用される装置の第３の構造を示す概略図である。
【図６】図６は、本発明にかかる暗号化処理方法に使用される装置の第４の構造を示す概略図である。
【発明を実施するための形態】
【００４０】
本発明の方法は、ブロック暗号化アルゴリズムに基づく暗号化処理装置によって主として実施される。ここで、本発明を図面に関連して以下に具体的に説明する。
【００４１】
実施形態１：
【００４２】
ブロック暗号化アルゴリズムに基づく第１の暗号化処理装置は、図３に示すように、鍵拡張部１と、暗号化部３とを備えている。
【００４３】
鍵拡張部１は、鍵拡張部のデータ保持要素１００と、鍵拡張部のデータ変換要素１０１とを備えている。鍵拡張部のデータ保持要素１００の出力ポートが、鍵拡張部のデータ変換要素１０１の入力ポートに接続されており、鍵拡張部のデータ変換要素１０１の出力ポートが、鍵拡張部のデータ保持要素１００の入力ポートに接続されている。
【００４４】
暗号化部３は、暗号化部のデータ保持要素３００と、暗号化部のデータ変換要素３０１とを備えている。暗号化部のデータ保持要素３００の出力ポートが、暗号化部のデータ変換要素３０１の入力ポートに接続されており、暗号化部のデータ変換要素３０１の出力ポートが、暗号化部のデータ保持要素３００の入力ポートに接続されている。
【００４５】
特に、鍵拡張部のデータ変換要素１０１の副鍵出力ポートが、暗号化部のデータ変換要素３０１の副鍵入力ポートに接続されている。
【００４６】
図３を参照すると、ブロック暗号化アルゴリズムに基づく第１の暗号化処理装置による本発明の方法の一実施形態を実施する工程は以下のとおりである。
【００４７】
１］外部鍵保持：クロック周期のクロック端が来ると、処理される外部鍵が、保持のために鍵拡張部のデータ保持要素１００に入力される。
【００４８】
２］外部データ保持：上記クロック周期のクロック端が来ると、１個の外部データセットが、保持のために暗号化部のデータ保持要素３００に入力される。
【００４９】
３］鍵拡張：上記クロック周期の間に、鍵拡張部のデータ保持要素１００に保持されたデータが、鍵拡張のために鍵拡張部のデータ変換要素１０１に入力され、取得された副鍵が、暗号化部のデータ変換要素３０１に入力される。
【００５０】
４］データ暗号化および変換：上記クロック周期の間に、暗号化部のデータ保持要素３００に保持されたデータが、暗号化部のデータ変換要素３０１に入力され、暗号化部のデータ変換要素３０１が、データの暗号化と変換を実行する。
【００５１】
５］内部データ保持：次のクロック周期のクロック端が来ると、鍵拡張部のデータ変換要素１０１によって取得されたデータが、保持のために鍵拡張部のデータ保持要素１００に入力され、暗号化部のデータ変換要素３０１によって取得されたデータが、保持のために暗号化部のデータ保持要素３００に入力される。
【００５２】
６］データ反復：データが変換される回数がブロック暗号化アルゴリズムで指定された回数に達するまで、鍵拡張工程と、データ暗号化および変換工程と、内部データ保持工程とが繰り返され、上記データセットに対する暗号化が完了する。
【００５３】
実施形態２：
【００５４】
ブロック暗号化アルゴリズムに基づく第２の暗号化処理装置は、図４に示すように、鍵拡張部１と、暗号化部３とを備えている。
【００５５】
鍵拡張部１は、鍵拡張部のデータ保持要素１００と、鍵拡張部の２個のデータ変換要素１０１ａ，１０１ｂとを備えている。鍵拡張部のデータ保持要素１００の出力ポートが、鍵拡張部の第１のデータ変換要素１０１ａの入力ポートに接続されている。鍵拡張部の２個のデータ変換要素１０１ａ，１０１ｂが順番に接続されている。鍵拡張部の第２のデータ変換要素１０１ｂの出力ポートが、鍵拡張部のデータ保持要素１００の入力ポートに接続されている。
【００５６】
暗号化部３は、暗号化部のデータ保持要素３００と、暗号化部の２個のデータ変換要素３０１ａ，３０１ｂとを備えている。暗号化部のデータ保持要素３００の出力ポートが、暗号化部の第１のデータ変換要素３０１ａの入力ポートに接続されている。暗号化部の２個のデータ変換要素３０１ａ，３０１ｂが順番に接続されている。暗号化部の第２のデータ変換要素３０１ｂの出力ポートが、暗号化部のデータ保持要素３００の入力ポートに接続されている。
【００５７】
鍵拡張部の第１のデータ変換要素１０１ａの副鍵出力ポートが、暗号化部の第１のデータ変換要素３０１ａの副鍵入力ポートに接続されている。鍵拡張部の第２のデータ変換要素１０１ｂの副鍵出力ポートが、暗号化部の第２のデータ変換要素３０１ｂの副鍵入力ポートに接続されている。
【００５８】
鍵拡張部のデータ変換要素の数は、暗号化部のデータ変換要素の数と等しく、３個でも、４個から３２個まででも、４８個まででもよいが、好ましくは、１個、２個または４個である。
【００５９】
図４を参照すると、ブロック暗号化アルゴリズムに基づく第２の暗号化処理装置による本発明の方法の一実施形態を実施する工程は以下のとおりである。
【００６０】
１］外部鍵保持：クロック周期のクロック端が来ると、処理される外部鍵が、保持のために鍵拡張部のデータ保持要素１００に入力される。
【００６１】
２］外部データ保持：上記クロック周期のクロック端が来ると、１個の外部データセットが、保持のために暗号化部のデータ保持要素３００に入力される。
【００６２】
３］鍵拡張：上記クロック周期の間に、鍵拡張部のデータ保持要素１００に保持されたデータが、鍵拡張のために鍵拡張部のデータ変換要素１０１ａに入力され、鍵拡張部のデータ変換要素１０１ａの出力データが、鍵拡張部の次のデータ変換要素１０１ｂに入力されると同時に、取得された副鍵が、暗号化部のデータ変換要素３０１ａに入力される。鍵拡張部の複数個のデータ変換要素が、順番に鍵拡張を実行する。
【００６３】
４］データ暗号化および変換：上記クロック周期の間に、暗号化部のデータ保持要素３００に保持されたデータが、暗号化部のデータ変換要素３０１ａに入力される。暗号化部のデータ変換要素３０１ａが、データの暗号化と変換を実行し、暗号化部のデータ変換要素３０１ａの出力データが、暗号化部の次のデータ変換要素３０１ｂに入力される。暗号化部の複数個のデータ変換要素が、順番にデータ暗号化を実行する。
【００６４】
５］内部データ保持：次のクロック周期のクロック端が来ると、鍵拡張部の最後のデータ変換要素（この実施形態では１０１ｂ）の出力データが、保持のために鍵拡張部のデータ保持要素１００に入力される。暗号化部の最後のデータ変換要素（この実施形態では３０１ｂ）の出力データが、保持のために暗号化部のデータ保持要素３００に入力される。
【００６５】
６］データ反復：データが変換される回数がブロック暗号化アルゴリズムで指定された回数に達するまで、鍵拡張工程と、データ暗号化および変換工程と、内部データ保持工程とが繰り返され、上記データセットに対する暗号化が完了する。
【００６６】
実施形態３：
【００６７】
ブロック暗号化アルゴリズムに基づく第３の暗号化処理装置は、図５に示すように、鍵拡張部１と、副鍵保持部４と、暗号化部３とを備えている。
【００６８】
鍵拡張部１は、鍵拡張部のデータ保持要素１００と、鍵拡張部のデータ変換要素１０１とを備えている。鍵拡張部のデータ保持要素１００の出力ポートが、鍵拡張部のデータ変換要素１０１の入力ポートに接続されており、鍵拡張部のデータ変換要素１０１の出力ポートが、鍵拡張部のデータ保持要素１００の入力ポートに接続されている。
【００６９】
副鍵保持部４は、副鍵保持要素４０１を備えている。副鍵保持要素４０１は、汎用トリガであっても、レジスタであってもよい。
【００７０】
暗号化部３は、暗号化部のデータ保持要素３００と、暗号化部のデータ変換要素３０１とを備えている。暗号化部のデータ保持要素３００の出力ポートが、暗号化部のデータ変換要素３０１の入力ポートに接続されており、暗号化部のデータ変換要素３０１の出力ポートが、暗号化部のデータ保持要素３００の入力ポートに接続されている。
【００７１】
鍵拡張部のデータ変換要素１０１の副鍵出力ポートが、副鍵保持要素４０１の入力ポートに接続されており、副鍵保持要素４０１の出力ポートが、暗号化部のデータ変換要素３０１の副鍵入力ポートに接続されている。
【００７２】
図５を参照すると、ブロック暗号化アルゴリズムに基づく第３の暗号化処理装置による本発明の方法の一実施形態を実施する工程は以下のとおりである。
【００７３】
１］外部鍵保持：クロック周期のクロック端が来ると、処理される外部鍵が、保持のために鍵拡張部のデータ保持要素１００に入力される。
【００７４】
２］鍵前拡張：外部鍵保持工程が実行されるクロック周期の間に、鍵拡張部のデータ保持要素１００に保持されたデータが、鍵拡張のために鍵拡張部のデータ変換要素１０１に入力される。取得された副鍵が、接続されている副鍵保持要素４０１の入力ポートに入力される。鍵拡張部のデータ変換要素１０１によって変換されて取得されたデータが、鍵拡張部のデータ保持要素１００の入力ポートに入力される。
【００７５】
３］鍵バッファ保持：外部鍵保持工程後の次のクロック周期のクロック端が来ると、鍵拡張部のデータ変換要素１０１によって変換されて取得されたデータが、保持のために鍵拡張部のデータ保持要素１００に入力される。鍵拡張部のデータ変換要素１０１の副鍵が、保持のために副鍵保持要素４０１に入力される。
【００７６】
４］外部データ保持：外部鍵保持工程後の次のクロック周期のクロック端が来ると、１個の外部データセットが、保持のために暗号化部のデータ保持要素３００に入力される。
【００７７】
５］鍵拡張：上記クロック周期の間に、鍵拡張部のデータ保持要素１００に保持されたデータが、鍵拡張のために鍵拡張部のデータ変換要素１０１に入力される。取得された副鍵が、接続されている副鍵保持要素４０１の入力ポートに入力される。同時に、鍵拡張部のデータ変換要素１０１の出力データが、鍵拡張部のデータ保持要素１００の入力ポートに入力され、副鍵保持要素４０１によって出力された副鍵が、暗号化部のデータ変換要素３０１に入力される。
【００７８】
６］データ暗号化および変換：上記クロック周期の間に、暗号化部のデータ保持要素３００に保持されたデータが、暗号化部のデータ変換要素３０１に入力される。暗号化部のデータ変換要素３０１が、データの暗号化と変換を実行する。暗号化部のデータ変換要素３０１の出力データが、暗号化部のデータ保持要素３００の入力ポートに入力される。
【００７９】
７］内部データ保持：次のクロック周期のクロック端が来ると、鍵拡張部のデータ変換要素１０１によって変換されて取得されたデータが、保持のために鍵拡張部のデータ保持要素１００に入力される。鍵拡張部のデータ変換要素１０１の副鍵が、保持のために副鍵保持要素４０１に入力される。暗号化部のデータ変換要素３０１によって変換されて取得されたデータが、保持のために暗号化部のデータ保持要素３００に入力される。
【００８０】
８］データ反復：データが変換される回数がブロック暗号化アルゴリズムで指定された回数に達するまで、鍵拡張工程と、データ暗号化および変換工程と、内部データ保持工程とが繰り返され、それにより、上記データセットに対する暗号化が完了する。
【００８１】
実施形態４：
【００８２】
ブロック暗号化アルゴリズムに基づく第４の暗号化処理装置は、図６に示すように、鍵拡張部１と、副鍵保持部４と、暗号化部３とを備えている。
【００８３】
鍵拡張部１は、鍵拡張部のデータ保持要素１００と、鍵拡張部の２個のデータ変換要素１０１ａ、１０１ｂとを備えている。鍵拡張部のデータ保持要素１００の出力ポートが、鍵拡張部の第１のデータ変換要素１０１ａの入力ポートに接続されており、２個の鍵拡張部データ変換要素１０１ａ、１０１ｂが順番に接続されている。鍵拡張部の第２のデータ変換要素１０１ｂの出力ポートが、鍵拡張部のデータ保持要素１００の入力ポートに接続されている。
【００８４】
副鍵保持部４は、２個の副鍵保持要素４０１ａ、４０１ｂを備えている。副鍵保持要素は、汎用トリガであっても、レジスタであってもよい。
【００８５】
暗号化部３は、暗号化部のデータ保持要素３００と、暗号化部の２個のデータ変換要素３０１ａ、３０１ｂとを備えている。暗号化部のデータ保持要素３００の出力ポートが、暗号化部の第１のデータ変換要素３０１ａの入力ポートに接続されており、暗号化部の２個のデータ変換要素３０１ａ、３０１ｂが順番に接続されている。暗号化部の第２のデータ変換要素３０１ｂの出力ポートが、暗号化部のデータ保持要素３００の入力ポートに接続されている。
【００８６】
鍵拡張部の第１のデータ変換要素１０１ａの副鍵出力ポートが、第１の副鍵保持要素４０１ａの入力ポートに接続されており、第１の副鍵保持要素４０１ａの出力ポートが、暗号化部の第１のデータ変換要素３０１ａの副鍵入力ポートに接続されている。鍵拡張部の第２のデータ変換要素１０１ｂの副鍵出力ポートが、第２の副鍵保持要素４０１ｂの入力ポートに接続されており、第２の副鍵保持要素４０１ｂの出力ポートが、暗号化部の第２のデータ変換要素３０１ｂの副鍵入力ポートに接続されている。
【００８７】
特に、鍵拡張部のデータ変換要素の数、副鍵保持要素の数、および暗号化部のデータ変換要素の数は、互いに等しく、３個でも、４個から３２個まででも、４８個まででもよいが、好ましくは、１個、２個または４個である。
【００８８】
図６を参照すると、ブロック暗号化アルゴリズムに基づく第４の暗号化処理装置による本発明の方法の一実施形態を実施する工程は以下のとおりである。
【００８９】
１］外部鍵保持：クロック周期のクロック端が来ると、処理される外部鍵が、保持のために鍵拡張部のデータ保持要素１００に入力される。
【００９０】
２］鍵前拡張：外部鍵保持工程が実行されるクロック周期の間に、鍵拡張部のデータ保持要素１００に保持されたデータが、鍵拡張のために鍵拡張部の第１のデータ変換要素１０１ａに入力される。取得された副鍵が、接続されている第１の副鍵保持要素４０１ａの入力ポートに入力され、それと同時に、鍵拡張部の第１のデータ変換要素１０１ａの出力データが、二度目の鍵拡張のために、鍵拡張部の次のデータ変換要素１０１ｂに入力される。鍵拡張部の複数個のデータ変換要素が、順番に変換を実行し、生成された副鍵を、接続されている副鍵保持要素の入力ポートに入力する。鍵拡張部の最後のデータ変換要素（この実施形態では１０１ｂ）の出力データが、鍵拡張部のデータ保持要素１００の入力ポートに入力される。
【００９１】
３］鍵バッファ保持：外部鍵保持工程後の次のクロック周期のクロック端が来ると、鍵拡張部の最後のデータ変換要素（この実施形態では１０１ｂ）によって変換されて取得されたデータが、保持のために鍵拡張部のデータ保持要素１００に入力される。鍵拡張部のデータ変換要素の副鍵が、保持のために、対応する副鍵保持要素に入力される。
【００９２】
４］外部データ保持：外部鍵保持工程後の次のクロック周期のクロック端が来ると、１個の外部データセットが、保持のために暗号化部のデータ保持要素３００に入力される。
【００９３】
５］鍵拡張：上記クロック周期の間に、鍵拡張部のデータ保持要素１００に保持されたデータが、鍵拡張のために鍵拡張部の第１のデータ変換要素１０１ａに入力される。取得された副鍵が、接続されている第１の副鍵保持要素４０１ａの入力ポートに入力される。同時に、鍵拡張部の第１のデータ変換要素１０１ａの出力データが、二度目の鍵拡張のために鍵拡張部の次のデータ変換要素１０１ｂに入力される。鍵拡張部の複数個のデータ変換要素が、順番に鍵拡張を実行し、生成された副鍵を、接続されている副鍵保持要素の入力ポートに入力する。鍵拡張部の最後のデータ変換要素（この実施形態では１０１ｂ）の出力データが、鍵拡張部のデータ保持要素１００のデータ入力ポートに入力される。
【００９４】
６］データ暗号化および変換：上記クロック周期の間に、暗号化部のデータ保持要素３００に保持されたデータが、暗号化部の第１のデータ変換要素３０１ａに入力され、第１の副鍵保持要素４０１ａの副鍵が、暗号化部の第１のデータ変換要素３０１ａに入力される。暗号化部の第１のデータ変換要素３０１ａが、データの暗号化と変換を実行する。暗号化部の第１のデータ変換要素３０１ａで暗号化され変換されたデータが、暗号化部の第２のデータ変換要素３０１ｂに入力され、第２の副鍵保持要素４０１ｂの副鍵が、暗号化部の第２のデータ変換要素３０１ｂに入力される。暗号化部の第２のデータ変換要素３０１ｂが、データの暗号化と変換を実行する。鍵拡張部のデータ変換要素に対応する暗号化部の複数個のデータ変換要素が、順番にデータ暗号化と変換を実行し、暗号化部の最後のデータ変換要素（この実施形態では３０１ｂ）で暗号化され変換されたデータが、暗号化部のデータ保持要素３００のデータ入力ポートに入力される。
【００９５】
７］内部データ保持：次のクロック周期のクロック端が来ると、鍵拡張部の最後のデータ変換要素（この実施形態では１０１ｂ）で変換されて取得されたデータが、保持のために鍵拡張部のデータ保持要素１００に入力される。鍵拡張部のデータ変換要素の副鍵が、保持のために、対応する副鍵保持要素に入力される。暗号化部の最後のデータ変換要素（この実施形態では３０１ｂ）によって変換されて取得されたデータが、保持のために暗号化部のデータ保持要素３００に入力される。
【００９６】
８］データ反復：データが変換される回数がブロック暗号化アルゴリズムで指定された回数に達するまで、鍵拡張工程と、データ暗号化および変換工程と、内部データ保持工程とが繰り返され、それにより、上記データセットに対する暗号化が完了する。
【００９７】
暗号化装置が、鍵拡張部の複数個のデータ変換要素と、複数個の副鍵保持要素と、暗号化部の複数個のデータ変換要素を有している場合、これらの要素は、接続関係に従って鍵拡張とデータ暗号化を順番に実行する。
【００９８】
ＳＭＳ４アルゴリズムが、ブロック暗号化アルゴリズムとして特に採用される場合には、上記４つの実施形態の暗号化処理方法におけるデータ反復時の変換回数は、３２である。
【符号の説明】
【００９９】
１  鍵拡張部
１００  鍵拡張部のデータ保持要素
１０１（１０１ａ、１０１ｂ）  鍵拡張部のデータ変換要素
２  副鍵配列記憶部
３  暗号化部
３００  暗号化部のデータ保持要素
３０１（３０１ａ、３０１ｂ）  暗号化部のデータ変換要素
４  副鍵保持部
４０１（４０１ａ、４０１ｂ）  副鍵保持要素
【図１】
2011503665.tif 000003
【図２】
2011503665.tif 000004
【図３】
2011503665.tif 000005
【図４】
2011503665.tif 000006
【図５】
2011503665.tif 000007
【図６】
2011503665.tif 000008
【国際調査報告】
2011503665.tif 000009
2011503665.tif 000010
2011503665.tif 000011
2011503665.tif 000012