説明

パケット暗号化アルゴリズムに基づく暗号化処理方法

パケット暗号化アルゴリズムに基づく暗号化処理方法は、以下の工程、すなわち、外部鍵保持、外部データ保持、鍵拡張、データ暗号化変換、内部データ保持、およびデータ反復処理を含むことにより、低い暗号化効率や高い実現コストなど、従来のパケット暗号化アルゴリズムに基づく暗号化方法の問題を解決して、従来技術の高効率を維持するという前提の下で資源消費量を効率的に低下させ、装置の実現コストを低減させる。変換要素数が1個の場合は、資源消費量は従来技術の約60%に過ぎず、変換要素数が2個の場合は、資源消費量は従来技術の約70%に過ぎない。本発明は、副鍵保持部を増設することにより、集積回路の実現時に暗号化装置のクリティカルパスを短くしてクロック主周波数を上げることができ、それにより本発明の方法の暗号化能力を向上させることができる。

【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、参照により全体が本明細書に組み込まれ、「ブロック暗号化アルゴリズムに基づく暗号化処理方法」という名称で2007年11月19日に出願された中国特許出願第200710019109.x号の利益を主張する。
【0002】
本発明は、情報セキュリティ技術の分野に関し、特に、ブロック暗号化アルゴリズムに基づく暗号化処理方法に関する。
【背景技術】
【0003】
ブロック暗号化アルゴリズムには、主に、データ暗号化規格(DES)アルゴリズム、トリプルDES(3DES)アルゴリズム、高度暗号化規格(AES)アルゴリズム、国際データ暗号化アルゴリズム(IDEA)、中国国家暗号管理局によって公開されたSMS4アルゴリズムなどが含まれる。ブロック暗号化アルゴリズムを実行するための主要な構成要素は、鍵拡張部、暗号化部および副鍵配列記憶部である。その点において、鍵拡張部と暗号化部は、主にデータ保持要素とデータ変換要素とを備えた類似の内部構造を有する。
【0004】
データ保持要素は、データを保持する汎用トリガを主に使用する。1クロック周期の間は、要素によって保持されたデータは変わらない。汎用トリガは、クロック周期の立ち上がり端または立ち下がり端で、トリガのデータ入力ポートのデータを出力ポートに入力するデータ保持装置であるが、他の時間では、トリガ出力ポートのデータは変わらない。
【0005】
データ変換要素は、ブロック暗号化アルゴリズムに従ってデータ処理を行う要素であり、例えば、SMS4暗号化アルゴリズムに従ってデータ処理を行う要素である。データ変換要素によって実行される演算は、暗号化アルゴリズムによって指定された1つの合成置換(synthetic replacement)しか有していない。
【0006】
副鍵配列記憶部は、副鍵配列を記憶するように適応されている。既存の技術では、副鍵配列は、一般に、暗号化および復号処理の前に予め配列され、鍵拡張部によって生成されるデータ配列である。SMS4暗号化アルゴリズムでは、副鍵配列記憶部のデータは、アドレス順に配列され、rk0、rk1…rk31のように名づけられる。
【0007】
現在、SMS4暗号化アルゴリズムに従うデータ暗号化および復号処理のプロセスは、鍵拡張段階とデータ暗号化段階の2つの独立した段階を含んでいる。図1に示すように、まず第1に、鍵拡張部が、鍵を副鍵配列に拡張して、その配列を先行順(precedence order)に従って副鍵配列記憶部に記憶させ、その後、暗号化部が、鍵拡張部によって生成された副鍵配列を用いてデータ暗号化を達成する。
【0008】
A)鍵拡張段階
【0009】
1)外部鍵を鍵拡張部のデータ保持要素に入力
【0010】
前処理の後、外部鍵が、保持のために鍵拡張部のデータ保持要素100に入力される。
【0011】
2)データ変換
【0012】
鍵拡張部のデータ保持要素100に保持されたデータが、変換のために鍵拡張部のデータ変換要素101に入力され、副鍵が取得される。
【0013】
3)データ反復
【0014】
先の変換処理後のデータが、鍵拡張部のデータ変換要素100に記憶されると同時に、取得された副鍵が、副鍵配列記憶部2の第1行に記憶され、その後、鍵拡張部のデータ保持要素100に保持されたデータが、データ変換のために鍵拡張部のデータ変換要素101に再び入力され、処理後に取得された副鍵が、副鍵配列記憶部2の次の行に記憶され、このデータ変換処理が32回繰り返され、これにより、32×32ビット=1024ビットの副鍵配列が取得される。
【0015】
B)データ暗号化段階
【0016】
1)外部データを暗号化部のデータ保持要素に入力
【0017】
外部データが、保持のために暗号化部のデータ保持要素300に入力される。
【0018】
2)データ変換
【0019】
暗号化部のデータ保持要素300に保持されたデータが、暗号化部のデータ変換要素301に入力されると同時に、副鍵配列記憶部2に記憶された副鍵配列の第1行に対応するデータが、変換のために暗号化部のデータ変換要素301に入力される。
【0020】
3)データ反復
【0021】
先のデータ変換処理後のデータが、暗号化部のデータ保持要素300に保持され、その後、暗号化部のデータ保持要素300に保持されたデータが、暗号化部のデータ保持要素301に再び入力されると同時に、副鍵配列記憶部2の次の行の副鍵も、データ再変換のために暗号化部のデータ変換要素301に入力され、この処理が32回繰り返されて、最終的な処理結果が取得される。
【0022】
上記暗号化アルゴリズムでは、1つのデータセットを処理するのに32クロック周期が必要であり、効率が低い。この問題を解決するためには、データ変換要素の数を増やすことによって、処理効率を向上させることができる。例えば、図2に示す解決策では、128ビットの1データセットが16クロック周期で処理される。
【0023】
既存の技術では、副鍵配列記憶要素が必要な要素である。1024ビットの副鍵配列記憶要素を実現するために、集積回路にレジスタが使用された場合、全資源の約40%を占める約10000ゲートの論理資源が消費される(図1の解決策では、総資源消費量は約25000ゲートである)。したがって、実現コストが非常に高い。
【発明の概要】
【発明が解決しようとする課題】
【0024】
従来の方法の技術的問題、すなわち、ブロック暗号化アルゴリズムに基づく暗号化処理にかかる高い実現コストを解決するため、低コストで高効率のブロック暗号化アルゴリズムに基づく暗号化処理方法を提供することが本発明の目的である。
【課題を解決するための手段】
【0025】
本発明の技術的解決策は、以下のとおりである。
【0026】
ブロック暗号化アルゴリズムに基づく暗号化処理方法は、
【0027】
1]クロック周期のクロック端が来ると、鍵拡張部のデータ保持要素が、入力される外部鍵を保持する外部鍵保持と、
【0028】
2]上記クロック周期のクロック端が来ると、暗号化部のデータ保持要素が、入力される外部データを保持する外部データ保持と、
【0029】
3]上記クロック周期の間に、上記鍵拡張部のデータ変換要素が、上記鍵拡張部のデータ保持要素によって保持されたデータを受け取り、鍵拡張を実行し、取得された副鍵を上記暗号化部のデータ変換要素に入力する鍵拡張と、
【0030】
4]上記クロック周期の間に、上記暗号化部の上記データ変換要素が、上記暗号化部の上記データ保持要素によって保持されたデータを受け取り、上記鍵拡張工程で取得された副鍵を用いて、受け取り側(receiving end)からのデータに対してデータ暗号化と変換を実行するデータ暗号化および変換と、
【0031】
5]次のクロック周期のクロック端が来ると、
【0032】
上記鍵拡張部の上記データ保持要素が、上記鍵拡張部の上記データ変換要素によって取得されたデータを保持し、
【0033】
上記暗号化部の上記データ保持要素が、上記暗号化部の上記データ変換要素によって取得されたデータを保持する内部データ保持と、
【0034】
6]データが変換される回数がブロック暗号化アルゴリズムで指定された回数に達するまで、上記鍵拡張工程と、上記データ暗号化および変換工程と、上記内部データ保持工程とが繰り返され、これにより1データセットに対する暗号化が完了するデータ反復とを含む。
【発明の効果】
【0035】
上記の技術的解決策は以下の利点を有する。
【0036】
1)副鍵配列記憶部が省略されるので、本発明にかかる暗号化処理方法は、高効率を維持しながら、資源消費量を効率的に低下させることができ、それにより、装置の実現コストが低減される。
【0037】
2)本発明にかかる暗号化処理方法により、変換要素数が1個の場合は、資源消費量が従来の方法の60%に過ぎず、変換要素数が2個の場合は、資源消費量が従来の方法の70%に過ぎない。
【0038】
3)副鍵保持部が増設されると、集積回路の実現時に、暗号化装置のクリティカルパスを短くして、クロック周波数を上げることができる。従って、本発明の方法の暗号化能力が向上される。
【図面の簡単な説明】
【0039】
【図1】図1は、既存の暗号化および復号処理方法に使用される装置の第1の構造を示す概略図である。
【図2】図2は、既存の暗号化および復号処理方法に使用される装置の第2の構造を示す概略図である。
【図3】図3は、本発明にかかる暗号化処理方法に使用される装置の第1の構造を示す概略図である。
【図4】図4は、本発明にかかる暗号化処理方法に使用される装置の第2の構造を示す概略図である。
【図5】図5は、本発明にかかる暗号化処理方法に使用される装置の第3の構造を示す概略図である。
【図6】図6は、本発明にかかる暗号化処理方法に使用される装置の第4の構造を示す概略図である。
【発明を実施するための形態】
【0040】
本発明の方法は、ブロック暗号化アルゴリズムに基づく暗号化処理装置によって主として実施される。ここで、本発明を図面に関連して以下に具体的に説明する。
【0041】
実施形態1:
【0042】
ブロック暗号化アルゴリズムに基づく第1の暗号化処理装置は、図3に示すように、鍵拡張部1と、暗号化部3とを備えている。
【0043】
鍵拡張部1は、鍵拡張部のデータ保持要素100と、鍵拡張部のデータ変換要素101とを備えている。鍵拡張部のデータ保持要素100の出力ポートが、鍵拡張部のデータ変換要素101の入力ポートに接続されており、鍵拡張部のデータ変換要素101の出力ポートが、鍵拡張部のデータ保持要素100の入力ポートに接続されている。
【0044】
暗号化部3は、暗号化部のデータ保持要素300と、暗号化部のデータ変換要素301とを備えている。暗号化部のデータ保持要素300の出力ポートが、暗号化部のデータ変換要素301の入力ポートに接続されており、暗号化部のデータ変換要素301の出力ポートが、暗号化部のデータ保持要素300の入力ポートに接続されている。
【0045】
特に、鍵拡張部のデータ変換要素101の副鍵出力ポートが、暗号化部のデータ変換要素301の副鍵入力ポートに接続されている。
【0046】
図3を参照すると、ブロック暗号化アルゴリズムに基づく第1の暗号化処理装置による本発明の方法の一実施形態を実施する工程は以下のとおりである。
【0047】
1]外部鍵保持:クロック周期のクロック端が来ると、処理される外部鍵が、保持のために鍵拡張部のデータ保持要素100に入力される。
【0048】
2]外部データ保持:上記クロック周期のクロック端が来ると、1個の外部データセットが、保持のために暗号化部のデータ保持要素300に入力される。
【0049】
3]鍵拡張:上記クロック周期の間に、鍵拡張部のデータ保持要素100に保持されたデータが、鍵拡張のために鍵拡張部のデータ変換要素101に入力され、取得された副鍵が、暗号化部のデータ変換要素301に入力される。
【0050】
4]データ暗号化および変換:上記クロック周期の間に、暗号化部のデータ保持要素300に保持されたデータが、暗号化部のデータ変換要素301に入力され、暗号化部のデータ変換要素301が、データの暗号化と変換を実行する。
【0051】
5]内部データ保持:次のクロック周期のクロック端が来ると、鍵拡張部のデータ変換要素101によって取得されたデータが、保持のために鍵拡張部のデータ保持要素100に入力され、暗号化部のデータ変換要素301によって取得されたデータが、保持のために暗号化部のデータ保持要素300に入力される。
【0052】
6]データ反復:データが変換される回数がブロック暗号化アルゴリズムで指定された回数に達するまで、鍵拡張工程と、データ暗号化および変換工程と、内部データ保持工程とが繰り返され、上記データセットに対する暗号化が完了する。
【0053】
実施形態2:
【0054】
ブロック暗号化アルゴリズムに基づく第2の暗号化処理装置は、図4に示すように、鍵拡張部1と、暗号化部3とを備えている。
【0055】
鍵拡張部1は、鍵拡張部のデータ保持要素100と、鍵拡張部の2個のデータ変換要素101a,101bとを備えている。鍵拡張部のデータ保持要素100の出力ポートが、鍵拡張部の第1のデータ変換要素101aの入力ポートに接続されている。鍵拡張部の2個のデータ変換要素101a,101bが順番に接続されている。鍵拡張部の第2のデータ変換要素101bの出力ポートが、鍵拡張部のデータ保持要素100の入力ポートに接続されている。
【0056】
暗号化部3は、暗号化部のデータ保持要素300と、暗号化部の2個のデータ変換要素301a,301bとを備えている。暗号化部のデータ保持要素300の出力ポートが、暗号化部の第1のデータ変換要素301aの入力ポートに接続されている。暗号化部の2個のデータ変換要素301a,301bが順番に接続されている。暗号化部の第2のデータ変換要素301bの出力ポートが、暗号化部のデータ保持要素300の入力ポートに接続されている。
【0057】
鍵拡張部の第1のデータ変換要素101aの副鍵出力ポートが、暗号化部の第1のデータ変換要素301aの副鍵入力ポートに接続されている。鍵拡張部の第2のデータ変換要素101bの副鍵出力ポートが、暗号化部の第2のデータ変換要素301bの副鍵入力ポートに接続されている。
【0058】
鍵拡張部のデータ変換要素の数は、暗号化部のデータ変換要素の数と等しく、3個でも、4個から32個まででも、48個まででもよいが、好ましくは、1個、2個または4個である。
【0059】
図4を参照すると、ブロック暗号化アルゴリズムに基づく第2の暗号化処理装置による本発明の方法の一実施形態を実施する工程は以下のとおりである。
【0060】
1]外部鍵保持:クロック周期のクロック端が来ると、処理される外部鍵が、保持のために鍵拡張部のデータ保持要素100に入力される。
【0061】
2]外部データ保持:上記クロック周期のクロック端が来ると、1個の外部データセットが、保持のために暗号化部のデータ保持要素300に入力される。
【0062】
3]鍵拡張:上記クロック周期の間に、鍵拡張部のデータ保持要素100に保持されたデータが、鍵拡張のために鍵拡張部のデータ変換要素101aに入力され、鍵拡張部のデータ変換要素101aの出力データが、鍵拡張部の次のデータ変換要素101bに入力されると同時に、取得された副鍵が、暗号化部のデータ変換要素301aに入力される。鍵拡張部の複数個のデータ変換要素が、順番に鍵拡張を実行する。
【0063】
4]データ暗号化および変換:上記クロック周期の間に、暗号化部のデータ保持要素300に保持されたデータが、暗号化部のデータ変換要素301aに入力される。暗号化部のデータ変換要素301aが、データの暗号化と変換を実行し、暗号化部のデータ変換要素301aの出力データが、暗号化部の次のデータ変換要素301bに入力される。暗号化部の複数個のデータ変換要素が、順番にデータ暗号化を実行する。
【0064】
5]内部データ保持:次のクロック周期のクロック端が来ると、鍵拡張部の最後のデータ変換要素(この実施形態では101b)の出力データが、保持のために鍵拡張部のデータ保持要素100に入力される。暗号化部の最後のデータ変換要素(この実施形態では301b)の出力データが、保持のために暗号化部のデータ保持要素300に入力される。
【0065】
6]データ反復:データが変換される回数がブロック暗号化アルゴリズムで指定された回数に達するまで、鍵拡張工程と、データ暗号化および変換工程と、内部データ保持工程とが繰り返され、上記データセットに対する暗号化が完了する。
【0066】
実施形態3:
【0067】
ブロック暗号化アルゴリズムに基づく第3の暗号化処理装置は、図5に示すように、鍵拡張部1と、副鍵保持部4と、暗号化部3とを備えている。
【0068】
鍵拡張部1は、鍵拡張部のデータ保持要素100と、鍵拡張部のデータ変換要素101とを備えている。鍵拡張部のデータ保持要素100の出力ポートが、鍵拡張部のデータ変換要素101の入力ポートに接続されており、鍵拡張部のデータ変換要素101の出力ポートが、鍵拡張部のデータ保持要素100の入力ポートに接続されている。
【0069】
副鍵保持部4は、副鍵保持要素401を備えている。副鍵保持要素401は、汎用トリガであっても、レジスタであってもよい。
【0070】
暗号化部3は、暗号化部のデータ保持要素300と、暗号化部のデータ変換要素301とを備えている。暗号化部のデータ保持要素300の出力ポートが、暗号化部のデータ変換要素301の入力ポートに接続されており、暗号化部のデータ変換要素301の出力ポートが、暗号化部のデータ保持要素300の入力ポートに接続されている。
【0071】
鍵拡張部のデータ変換要素101の副鍵出力ポートが、副鍵保持要素401の入力ポートに接続されており、副鍵保持要素401の出力ポートが、暗号化部のデータ変換要素301の副鍵入力ポートに接続されている。
【0072】
図5を参照すると、ブロック暗号化アルゴリズムに基づく第3の暗号化処理装置による本発明の方法の一実施形態を実施する工程は以下のとおりである。
【0073】
1]外部鍵保持:クロック周期のクロック端が来ると、処理される外部鍵が、保持のために鍵拡張部のデータ保持要素100に入力される。
【0074】
2]鍵前拡張:外部鍵保持工程が実行されるクロック周期の間に、鍵拡張部のデータ保持要素100に保持されたデータが、鍵拡張のために鍵拡張部のデータ変換要素101に入力される。取得された副鍵が、接続されている副鍵保持要素401の入力ポートに入力される。鍵拡張部のデータ変換要素101によって変換されて取得されたデータが、鍵拡張部のデータ保持要素100の入力ポートに入力される。
【0075】
3]鍵バッファ保持:外部鍵保持工程後の次のクロック周期のクロック端が来ると、鍵拡張部のデータ変換要素101によって変換されて取得されたデータが、保持のために鍵拡張部のデータ保持要素100に入力される。鍵拡張部のデータ変換要素101の副鍵が、保持のために副鍵保持要素401に入力される。
【0076】
4]外部データ保持:外部鍵保持工程後の次のクロック周期のクロック端が来ると、1個の外部データセットが、保持のために暗号化部のデータ保持要素300に入力される。
【0077】
5]鍵拡張:上記クロック周期の間に、鍵拡張部のデータ保持要素100に保持されたデータが、鍵拡張のために鍵拡張部のデータ変換要素101に入力される。取得された副鍵が、接続されている副鍵保持要素401の入力ポートに入力される。同時に、鍵拡張部のデータ変換要素101の出力データが、鍵拡張部のデータ保持要素100の入力ポートに入力され、副鍵保持要素401によって出力された副鍵が、暗号化部のデータ変換要素301に入力される。
【0078】
6]データ暗号化および変換:上記クロック周期の間に、暗号化部のデータ保持要素300に保持されたデータが、暗号化部のデータ変換要素301に入力される。暗号化部のデータ変換要素301が、データの暗号化と変換を実行する。暗号化部のデータ変換要素301の出力データが、暗号化部のデータ保持要素300の入力ポートに入力される。
【0079】
7]内部データ保持:次のクロック周期のクロック端が来ると、鍵拡張部のデータ変換要素101によって変換されて取得されたデータが、保持のために鍵拡張部のデータ保持要素100に入力される。鍵拡張部のデータ変換要素101の副鍵が、保持のために副鍵保持要素401に入力される。暗号化部のデータ変換要素301によって変換されて取得されたデータが、保持のために暗号化部のデータ保持要素300に入力される。
【0080】
8]データ反復:データが変換される回数がブロック暗号化アルゴリズムで指定された回数に達するまで、鍵拡張工程と、データ暗号化および変換工程と、内部データ保持工程とが繰り返され、それにより、上記データセットに対する暗号化が完了する。
【0081】
実施形態4:
【0082】
ブロック暗号化アルゴリズムに基づく第4の暗号化処理装置は、図6に示すように、鍵拡張部1と、副鍵保持部4と、暗号化部3とを備えている。
【0083】
鍵拡張部1は、鍵拡張部のデータ保持要素100と、鍵拡張部の2個のデータ変換要素101a、101bとを備えている。鍵拡張部のデータ保持要素100の出力ポートが、鍵拡張部の第1のデータ変換要素101aの入力ポートに接続されており、2個の鍵拡張部データ変換要素101a、101bが順番に接続されている。鍵拡張部の第2のデータ変換要素101bの出力ポートが、鍵拡張部のデータ保持要素100の入力ポートに接続されている。
【0084】
副鍵保持部4は、2個の副鍵保持要素401a、401bを備えている。副鍵保持要素は、汎用トリガであっても、レジスタであってもよい。
【0085】
暗号化部3は、暗号化部のデータ保持要素300と、暗号化部の2個のデータ変換要素301a、301bとを備えている。暗号化部のデータ保持要素300の出力ポートが、暗号化部の第1のデータ変換要素301aの入力ポートに接続されており、暗号化部の2個のデータ変換要素301a、301bが順番に接続されている。暗号化部の第2のデータ変換要素301bの出力ポートが、暗号化部のデータ保持要素300の入力ポートに接続されている。
【0086】
鍵拡張部の第1のデータ変換要素101aの副鍵出力ポートが、第1の副鍵保持要素401aの入力ポートに接続されており、第1の副鍵保持要素401aの出力ポートが、暗号化部の第1のデータ変換要素301aの副鍵入力ポートに接続されている。鍵拡張部の第2のデータ変換要素101bの副鍵出力ポートが、第2の副鍵保持要素401bの入力ポートに接続されており、第2の副鍵保持要素401bの出力ポートが、暗号化部の第2のデータ変換要素301bの副鍵入力ポートに接続されている。
【0087】
特に、鍵拡張部のデータ変換要素の数、副鍵保持要素の数、および暗号化部のデータ変換要素の数は、互いに等しく、3個でも、4個から32個まででも、48個まででもよいが、好ましくは、1個、2個または4個である。
【0088】
図6を参照すると、ブロック暗号化アルゴリズムに基づく第4の暗号化処理装置による本発明の方法の一実施形態を実施する工程は以下のとおりである。
【0089】
1]外部鍵保持:クロック周期のクロック端が来ると、処理される外部鍵が、保持のために鍵拡張部のデータ保持要素100に入力される。
【0090】
2]鍵前拡張:外部鍵保持工程が実行されるクロック周期の間に、鍵拡張部のデータ保持要素100に保持されたデータが、鍵拡張のために鍵拡張部の第1のデータ変換要素101aに入力される。取得された副鍵が、接続されている第1の副鍵保持要素401aの入力ポートに入力され、それと同時に、鍵拡張部の第1のデータ変換要素101aの出力データが、二度目の鍵拡張のために、鍵拡張部の次のデータ変換要素101bに入力される。鍵拡張部の複数個のデータ変換要素が、順番に変換を実行し、生成された副鍵を、接続されている副鍵保持要素の入力ポートに入力する。鍵拡張部の最後のデータ変換要素(この実施形態では101b)の出力データが、鍵拡張部のデータ保持要素100の入力ポートに入力される。
【0091】
3]鍵バッファ保持:外部鍵保持工程後の次のクロック周期のクロック端が来ると、鍵拡張部の最後のデータ変換要素(この実施形態では101b)によって変換されて取得されたデータが、保持のために鍵拡張部のデータ保持要素100に入力される。鍵拡張部のデータ変換要素の副鍵が、保持のために、対応する副鍵保持要素に入力される。
【0092】
4]外部データ保持:外部鍵保持工程後の次のクロック周期のクロック端が来ると、1個の外部データセットが、保持のために暗号化部のデータ保持要素300に入力される。
【0093】
5]鍵拡張:上記クロック周期の間に、鍵拡張部のデータ保持要素100に保持されたデータが、鍵拡張のために鍵拡張部の第1のデータ変換要素101aに入力される。取得された副鍵が、接続されている第1の副鍵保持要素401aの入力ポートに入力される。同時に、鍵拡張部の第1のデータ変換要素101aの出力データが、二度目の鍵拡張のために鍵拡張部の次のデータ変換要素101bに入力される。鍵拡張部の複数個のデータ変換要素が、順番に鍵拡張を実行し、生成された副鍵を、接続されている副鍵保持要素の入力ポートに入力する。鍵拡張部の最後のデータ変換要素(この実施形態では101b)の出力データが、鍵拡張部のデータ保持要素100のデータ入力ポートに入力される。
【0094】
6]データ暗号化および変換:上記クロック周期の間に、暗号化部のデータ保持要素300に保持されたデータが、暗号化部の第1のデータ変換要素301aに入力され、第1の副鍵保持要素401aの副鍵が、暗号化部の第1のデータ変換要素301aに入力される。暗号化部の第1のデータ変換要素301aが、データの暗号化と変換を実行する。暗号化部の第1のデータ変換要素301aで暗号化され変換されたデータが、暗号化部の第2のデータ変換要素301bに入力され、第2の副鍵保持要素401bの副鍵が、暗号化部の第2のデータ変換要素301bに入力される。暗号化部の第2のデータ変換要素301bが、データの暗号化と変換を実行する。鍵拡張部のデータ変換要素に対応する暗号化部の複数個のデータ変換要素が、順番にデータ暗号化と変換を実行し、暗号化部の最後のデータ変換要素(この実施形態では301b)で暗号化され変換されたデータが、暗号化部のデータ保持要素300のデータ入力ポートに入力される。
【0095】
7]内部データ保持:次のクロック周期のクロック端が来ると、鍵拡張部の最後のデータ変換要素(この実施形態では101b)で変換されて取得されたデータが、保持のために鍵拡張部のデータ保持要素100に入力される。鍵拡張部のデータ変換要素の副鍵が、保持のために、対応する副鍵保持要素に入力される。暗号化部の最後のデータ変換要素(この実施形態では301b)によって変換されて取得されたデータが、保持のために暗号化部のデータ保持要素300に入力される。
【0096】
8]データ反復:データが変換される回数がブロック暗号化アルゴリズムで指定された回数に達するまで、鍵拡張工程と、データ暗号化および変換工程と、内部データ保持工程とが繰り返され、それにより、上記データセットに対する暗号化が完了する。
【0097】
暗号化装置が、鍵拡張部の複数個のデータ変換要素と、複数個の副鍵保持要素と、暗号化部の複数個のデータ変換要素を有している場合、これらの要素は、接続関係に従って鍵拡張とデータ暗号化を順番に実行する。
【0098】
SMS4アルゴリズムが、ブロック暗号化アルゴリズムとして特に採用される場合には、上記4つの実施形態の暗号化処理方法におけるデータ反復時の変換回数は、32である。
【符号の説明】
【0099】
1 鍵拡張部
100 鍵拡張部のデータ保持要素
101(101a、101b) 鍵拡張部のデータ変換要素
2 副鍵配列記憶部
3 暗号化部
300 暗号化部のデータ保持要素
301(301a、301b) 暗号化部のデータ変換要素
4 副鍵保持部
401(401a、401b) 副鍵保持要素

【特許請求の範囲】
【請求項1】
1)クロック周期のクロック端が来ると、鍵拡張部のデータ保持要素が、入力される外部鍵を保持する外部鍵保持工程と、
2)前記クロック周期のクロック端が来ると、暗号化部のデータ保持要素が、入力される外部データを保持する外部データ保持工程と、
3)前記クロック周期の間に、前記鍵拡張部のデータ変換要素が、前記鍵拡張部のデータ保持要素によって保持されたデータを受け取り、鍵拡張を実行し、取得された副鍵を前記暗号化部のデータ変換要素に入力する鍵拡張工程と、
4)前記クロック周期の間に、前記暗号化部の前記データ変換要素が、前記暗号化部の前記データ保持要素によって保持されたデータを受け取り、前記鍵拡張工程で取得された副鍵を用いて、受け取り側からのデータに対してデータ暗号化と変換を実行するデータ暗号化および変換工程と、
5)次のクロック周期のクロック端が来ると、
前記鍵拡張部の前記データ保持要素が、前記鍵拡張部の前記データ変換要素によって取得されたデータを保持し、
前記暗号化部の前記データ保持要素が、前記暗号化部の前記データ変換要素によって取得されたデータを保持する内部データ保持工程と、
6)データが変換される回数がブロック暗号化アルゴリズムで指定された回数に達するまで、前記鍵拡張工程と、前記データ暗号化および変換工程と、前記内部データ保持工程とが繰り返され、これにより1データセットに対する暗号化が完了するデータ反復工程と、
を含むブロック暗号化アルゴリズムに基づく暗号化処理方法。
【請求項2】
前記鍵拡張工程が、前記クロック周期の間に、前記鍵拡張部の前記データ保持要素に保持されたデータを鍵拡張のために前記鍵拡張部の前記データ変換要素に入力し、取得された副鍵を前記暗号化部の前記データ変換要素に入力すると同時に、前記鍵拡張部の前記データ変換要素の出力データを前記鍵拡張部の次のデータ変換要素に入力することと、前記鍵拡張部の複数個のデータ変換要素によって順番に鍵拡張を実行することを含み、
前記データ暗号化および変換工程が、前記クロック周期の間に、前記暗号化部の前記データ保持要素に保持されたデータを前記暗号化部の前記データ変換要素に入力し、前記暗号化部の前記データ変換要素によってデータの暗号化と変換を実行し、前記暗号化部の前記データ変換要素の出力データを前記暗号化部の次のデータ変換要素に入力することと、前記暗号化部の複数個のデータ変換要素によって順番にデータ暗号化を実行することを含み、
前記内部データ保持工程が、次のクロック周期のクロック端が来ると、前記鍵拡張部の最後のデータ変換要素の出力データを保持のために前記鍵拡張部の前記データ保持要素に入力することと、前記暗号化部の最後のデータ変換要素の出力データを保持のために前記暗号化部の前記データ保持要素に入力することを含む、
請求項1に記載のブロック暗号化アルゴリズムに基づく暗号化処理方法。
【請求項3】
前記外部鍵保持工程と前記外部データ保持工程との間に、鍵前拡張工程と鍵バッファ保持工程とをさらに備え、
前記鍵前拡張工程が、前記外部鍵保持工程が実行されるクロック周期の間に、前記鍵拡張部の前記データ保持要素に保持されたデータを鍵拡張のために前記鍵拡張部の前記データ変換要素に入力し、取得された副鍵を、接続されている副鍵保持要素の入力ポートに入力することと、前記鍵拡張部の前記データ変換要素によって変換されて取得されたデータを前記鍵拡張部の前記データ保持要素の入力ポートに入力することを含み、
前記鍵バッファ保持工程が、前記外部鍵保持工程後の次のクロック周期のクロック端が来ると、前記鍵拡張部の前記データ変換要素によって変換されて取得されたデータを保持のために前記鍵拡張部の前記データ保持要素に入力することと、前記鍵拡張部の前記データ変換要素の副鍵を保持のために前記副鍵保持要素に入力することを含み、
これにより、前記鍵拡張工程が、前記鍵拡張部のデータ変換要素により、前記鍵拡張部の前記データ保持要素によって保持されたデータを受け取り、鍵拡張を実行し、取得された副鍵を前記副鍵保持要素の入力ポートに入力することを含み、
前記内部データ保持工程が、前記副鍵保持要素により、前記鍵拡張部の前記データ変換要素によって取得された副鍵を保持することをさらに含み、
前記データ暗号化および変換工程が、前記内部データ保持工程が実行されるクロック周期の間に、前記暗号化部の前記データ変換要素により、前記副鍵保持要素に保持された副鍵を受け取り、前記副鍵を用いて、前記受け取り側からのデータに対してデータの暗号化と変換を実行することを含む、
請求項1に記載のブロック暗号化アルゴリズムに基づく暗号化処理方法。
【請求項4】
前記鍵前拡張工程が、前記外部鍵保持工程が実行されるクロック周期の間に、前記鍵拡張部の前記データ保持要素に保持されたデータを鍵拡張のために前記鍵拡張部の第1のデータ変換要素に入力し、取得された副鍵を、接続されている第1の副鍵保持要素の入力ポートに入力すると同時に、前記鍵拡張部の第1のデータ変換要素の出力データを二度目の鍵拡張のために前記鍵拡張部の次のデータ変換要素に入力することと、前記鍵拡張部の複数個のデータ変換要素により、順番に変換を実行し、生成された副鍵を、接続されている副鍵保持要素の入力ポートに入力し、前記鍵拡張部の最後のデータ変換要素の出力データを前記鍵拡張部の前記データ保持要素の入力ポートに入力することを含み、
前記鍵バッファ保持工程が、前記外部鍵保持工程後の次のクロック周期のクロック端が来ると、前記鍵拡張部の最後のデータ変換要素によって変換されて取得されたデータを保持のために前記鍵拡張部の前記データ保持要素に入力することと、前記鍵拡張部の前記データ変換要素の副鍵を保持のために対応する副鍵保持要素に入力することを含み、
前記鍵拡張工程が、前記鍵拡張部の前記データ保持要素に保持されたデータを鍵拡張のために前記鍵拡張部の第1のデータ変換要素に入力し、取得された副鍵を、接続されている第1の副鍵保持要素の入力ポートに入力すると同時に、前記鍵拡張部の第1のデータ変換要素の出力データを二度目の鍵拡張のために前記鍵拡張部の次のデータ変換要素に入力することと、前記鍵拡張部の複数個のデータ変換要素により、順番に鍵拡張を実行し、生成された副鍵を、接続されている副鍵保持要素の入力ポートに入力し、前記鍵拡張部の最後のデータ変換要素の出力データを前記鍵拡張部の前記データ保持要素のデータ入力ポートに入力することを含み、
前記データ暗号化および変換工程が、前記内部データ保持工程が実行されるクロック周期の間に、前記暗号化部の前記データ保持要素に保持されたデータを前記暗号化部の第1のデータ変換要素に入力し、第1の副鍵保持要素の副鍵を前記暗号化部の第1のデータ変換要素に入力し、前記暗号化部の第1のデータ変換要素により、データの暗号化と変換を実行し、前記暗号化部の第1のデータ変換要素で暗号化され変換されたデータを前記暗号化部の第2のデータ変換要素に入力し、第2の副鍵保持要素の副鍵を前記暗号化部の第2のデータ変換要素に入力し、前記暗号化部の第2のデータ変換要素により、データの暗号化と変換を実行することと、前記鍵拡張部の前記データ変換要素に対応する前記暗号化部の複数個のデータ変換要素により、順番にデータの暗号化と変換を実行し、前記暗号化部の最後のデータ変換要素で暗号化され変換されたデータを前記暗号化部の前記データ保持要素のデータ入力ポートに入力することを含み、
前記内部データ保持工程が、前記鍵拡張工程後の次のクロック周期のクロック端が来ると、前記鍵拡張部の最後のデータ変換要素によって変換されて取得されたデータを保持のために前記鍵拡張部の前記データ保持要素に入力することと、前記鍵拡張部の前記データ変換要素の副鍵を保持のために対応する副鍵保持要素に入力することと、前記暗号化部の最後のデータ変換要素によって変換されて取得されたデータを保持のために前記暗号化部の前記データ保持要素に入力することを含む、
請求項3に記載のブロック暗号化アルゴリズムに基づく暗号化処理方法。
【請求項5】
前記ブロック暗号化アルゴリズムが、中国国家暗号管理局によって公開されたSMS4アルゴリズムである、請求項1から4のいずれか1項に記載のブロック暗号化アルゴリズムに基づく暗号化処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2011−503665(P2011−503665A)
【公表日】平成23年1月27日(2011.1.27)
【国際特許分類】
【出願番号】特願2010−534349(P2010−534349)
【出願日】平成20年11月13日(2008.11.13)
【国際出願番号】PCT/CN2008/073040
【国際公開番号】WO2009/067928
【国際公開日】平成21年6月4日(2009.6.4)
【出願人】(510138969)西安西電捷通無線網絡通信有限公司 (7)
【Fターム(参考)】