JP4890976B2 - 暗号処理装置 - Google Patents

暗号処理装置 Download PDF

Info

Publication number
JP4890976B2
JP4890976B2 JP2006183850A JP2006183850A JP4890976B2 JP 4890976 B2 JP4890976 B2 JP 4890976B2 JP 2006183850 A JP2006183850 A JP 2006183850A JP 2006183850 A JP2006183850 A JP 2006183850A JP 4890976 B2 JP4890976 B2 JP 4890976B2
Authority
JP
Japan
Prior art keywords
circuit
encryption
processing
data
cryptographic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006183850A
Other languages
English (en)
Other versions
JP2007094377A5 (ja
JP2007094377A (ja
Inventor
成 西川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2006183850A priority Critical patent/JP4890976B2/ja
Priority to US11/467,699 priority patent/US20070098153A1/en
Publication of JP2007094377A publication Critical patent/JP2007094377A/ja
Publication of JP2007094377A5 publication Critical patent/JP2007094377A5/ja
Application granted granted Critical
Publication of JP4890976B2 publication Critical patent/JP4890976B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Logic Circuits (AREA)

Description

本発明はデータを暗号化・復号化する技術に関する。
近年の情報技術・ネットワーク技術の発展に伴い、情報に対するセキュリティ(安全性)確保のニーズが高まっている。情報のセキュリティを確保する為の技術として、所定の暗号化方式に基づきデータを暗号化・復号化する暗号技術が知られている。暗号化方式は共通鍵暗号(秘密鍵暗号)と公開鍵暗号に大別される。
前者(共通鍵暗号)は暗号化に用いる暗号鍵と復号化に用いる復号鍵とが同一(共通)である暗号化方式である。共通鍵暗号を用いた構成においては、データの暗号化を行う側と暗号化されたデータを復号化する側との双方において、事前に同一の鍵を共有しておく必要がある。このため、共通鍵暗号方式を用いたシステムにおいては、鍵の共有と管理を安全に行う仕組みを必要とする。
一方、後者(公開鍵暗号)は暗号化に用いる鍵と復号化に用いる鍵とが異なる暗号化方式である。公開鍵暗号を用いた構成においては、事前にデータの復号側毎に公開鍵と秘密鍵という異なる2つの鍵を用意しておく。公開鍵はデータの暗号化に用いる暗号化鍵としての役割を担う鍵であり、システムにおいて公開される。秘密鍵はデータの復号化に用いる復号鍵としての役割を担う鍵であり、データの復号側によって秘密に管理される。公開鍵暗号方式を用いたシステムにおいて、暗号化の際には公開されている通信相手の公開鍵を用いて暗号化する。復号の際には、復号側は自分の秘密鍵を用いて復号化する。
公開鍵暗号方式においては公開鍵から復号鍵を求めることは数学的に困難である。このため、公開鍵暗号方式を用いたシステムにおいてはデータの復号側が自分の秘密鍵を秘密に管理するのみでシステムの安全性が保たれる。
ただし、暗号化・復号化に要する計算コストは、共通鍵暗号の方が公開鍵暗号よりもずっと小さい。言い換えると、共通鍵暗号による演算は公開鍵暗号による演算よりもずっと高速である。
共通鍵暗号の代表的な方式としては、従来より事実上の標準として広く使われてきたDESや、2001年にNIST(米国商務省標準技術局)により米国標準の128ビット共通鍵ブロック暗号AESとして選定されたRijndaelが知られている。なお、DESはData Encryption Standardの略称である。AESはAdvanced Encryption Standardの略称である。
DES、AESの基本処理はシンプルであり、ラウンド関数と呼ばれるデータ変換処理を一定回数繰り返し実行する構成となっている。AESでは、128ビット(16バイト)の入力データに対して、4つの基本演算(ShiftRows、SubBytes、MixColumns、AddRoundKey)を複数回繰り返す。ラウンド数は鍵長によって異なり、128ビット鍵では11、192ビット鍵では13、256ビット鍵では15と定められている。
AESの基本演算のShiftRowsはデータを4バイト×4バイトの行列と見なした上で、各行を0〜3バイト巡回シフトする。
SubBytesはデータの各バイトを28のガロア体GF(28)の逆元に変換し、更に、アフィン変換と呼ばれる行列変換を行う。SubBytesは或る1バイトから異なる1バイトへの写像であり、真理値表として表現できる。
MixColumnsは上記行列の各列に対し、要素のそれぞれを係数とする3次多項式と見なし、その3次多項式に多項式{03}16X3+{01}16X2+{01}16X+{02}16を乗じる。ただし{k}nはn進表現の値kを表す。そして、乗算によって得られた多項式をX4+1で剰余を取り、結果として得られた多項式の4係数を出力する。
AddRoundKeyはデータと秘密鍵から生成されるラウンド鍵とのXORを計算する。
このような暗号化・復号化処理は一定の演算負荷を要する。このため従来の構成においては用途や目的に応じて、スループット(処理速度)・低消費電力化を重視してハードウエアで実現する構成と、スループットよりもコスト・柔軟性を重視してソフトウエアで実現する構成が取られていた。
例えば、AESの処理構成をx86プロセッサ上でソフトウエアで実現する場合、ラウンド関数における演算をテーブルとしてメモリに保持しておく、ラウンド鍵を事前に計算しておく等、大きなメモリを使用可能という利点を活かした工夫が可能である。この場合、クロック周波数800MHzで、350サイクル程度で実現でき、スループットは360Mbps程度を実現することができる。但し、CPUは通常暗号処理以外の処理も行うので実用上はスループットは数十〜数百Mbpsとなる。1Gbps以上の性能が必要な場合はハードウエアで実現せざるを得ない。
AESでは128ビットのデータを32ビットの関数を4つ集めた形のラウンド関数で演算する。このためAESをハードウエアで実現する場合、1ラウンドの処理を32ビットずつ複数クロックかけて処理する場合、サイクル数は多くなるが、回路規模は小さくなる。一方、1ラウンドの処理を32ビットずつ1クロックかけて処理する場合、サイクル数は小さくなるが、回路規模は大きくなる。例えば、1ラウンドを1クロックで処理する場合は、サイクル数は11、回路規模は3万ゲート程度、スループットは2〜3Gbps程度となる。1ラウンドを4クロックで処理する場合は、サイクル数は44、回路規模は1万ゲート程度、スループットは500Mbps程度となる。
AESの暗号化・復号化を実行する従来のハードウエア構成について図7を参照して説明する。図7は、AES暗号化・復号化回路の従来のハードウエア構成を例示的に示した図である。
図7において、800はAES暗号化・復号化回路の範囲を示している。801は入力データラウンド処理回路、802は鍵ラウンド処理回路である。803は2:1セレクタ回路、804はData Registerである。805はShiftRows/InvShiftRows回路、806はSubBytes/InvSubBytes回路である。807はMixColumns/InvMixColumns回路、808は3:1セレクタ回路である。809はAddRoundKey回路、810はKeyExpander回路である。
ただし、InvShiftRowsはShiftRowsの逆関数、InvSubBytesはSubBytesの逆関数、InvMixColumnsはMixColumnsの逆関数をそれぞれ意味する。805、806、807はそれぞれ正関数と逆関数を切替えて1つの回路で実現するようにしている。このため、以下、805、806、807をそれぞれShiftRows、SubBytes、MixColumnsと称する。
上記の構成要素によって実現されるAESのラウンド関数の中で処理の負荷が最も大きい箇所は、S−Boxと呼ばれているSubBytes806の非線形変換の処理に係る部分である。128ビットのデータラウンド処理を1クロックで実現する場合には1バイト用のSubBytesが16個必要となる。このため、SubBytesを実現する構成がスループット、面積、消費電力を左右する。
SubBytesの回路構成としては、SubBytesの真理値表に対応する組み合わせ回路として実現する構成と、逆元演算回路とアファイン変換回路とを直列に接続した回路として実現する構成とに大別される。
真理値表に対応する組み合わせ回路は、積和形の回路や、1段或いは多段のAND−XOR形の回路として実現可能であり、例えば、論理合成ツールによる自動合成により設計することができる。
逆元演算回路は、ガロア体GF(28)上では、任意の値Xの逆元X-1=X254という性質を利用して、順序回路により構成できる。即ち、ガロア体GF(28)上で254乗を計算することによって逆元を求めることができる。しかし、単純に254回ループさせて乗算するとクロックサイクルが著しく多くなって出力の遅延が大きくなってしまう。逆元演算回路の構成法としては、3回のループで逆元演算を実現する伊東・辻井のアルゴリズムが知られている。
SubBytes回路の構成により、その回路規模や出力遅延は大きく異なる。例えば、自動合成した回路では出力遅延は少ないが、回路規模は3000ゲート弱と大きくなってしまう。一方、逆元演算回路を伊東・辻井のアルゴリズムを実装した構成では出力遅延はやや大きいが、回路規模は2000ゲート弱と比較的小さくなる。
このように、AESをハードウエアで実現する場合、速度、回路規模、消費電力等の各評価項目の値は回路構成に大きく依存する。このため、従来の設計においては、用途や目的に応じて、速度、回路規模、消費電力等の各要求仕様のうちの何れかの優先的な要求仕様が満たされるように、SubBytesの回路構成が選択・設計されていた。
また、他の従来例としては、特許文献1には剰余乗算を小規模な回路で高速に実現する技術が開示されている。これは、小規模の複数の演算素子を縦続に接続してパイプライン処理を行うことにより、小規模な回路により高速に暗号化の剰余乗算を行うものである。なお、剰余乗算は、乱数を用いた一部の共通暗号、及び、RSA暗号、エルガマル暗号等の公開鍵暗号において使用されている。
一方、従来より、回路構成を変更可能なデバイスとしてFPGA(Field Programmable Gate Array)が知られている。FPGAはルックアップテーブル等からなるプリミティブな回路を単位として、様々な機能に再構成可能なLSIである。但し、FPGAは回路構成の書き換えに通常1分程度要し、クロック毎に動的に再構成するようなことはできなかった。
これに対して、近年、極めて短時間に内部構成を書き換え可能なダイナミック・リコンフィギュアブル・プロセッサ(動的再構成プロセッサ、回路再構成プロセッサ)が知られている。回路再構成プロセッサは再構成する回路単位を乗算器等ある程度まとまった演算回路とするとともに、その他高速化の工夫を行うことにより、例えば、6ns周期の1クロック毎に回路構成を書き換え可能にしている。
特開平7−199807号公報
上述のように、AESの暗号化・復号化処理をソフトウエアにより実現する場合は、低コストとなる。しかし、CPUによるソフトウエア処理により、所定の処理速度以下でしか実現できず、要求される暗号化・復号化処理速度によっては所望の要求を満足できない場合もあった。また、CPUによるソフトウエア処理により、ハードウエアで実現する場合に比して、消費電力が大きかった。
一方、ハードウエアにより実現する場合は、ハードウエア次第で処理速度を高められ、消費電力もCPUによるソフトウエア処理に比して小さくすることができる。しかし、上述のような回路規模削減の工夫を盛り込んでも、要求される暗号化処理速度を満足できない、或いは、暗号化・復号化アルゴリズムによっては、ハードウエアとしてゲートサイズが大規模となり、チップのコストが高くなるという課題があった。
このように従来の構成によっては、処理の高速性、低消費電力、ゲート規模の小ささの要件にトレードオフがあった。
本発明は上記問題に鑑みなされたものであり、処理の高速性、低消費電力、ゲート規模の小ささの要件を満たすことのできる暗号化・復号化処理回路に関する技術を提供することを目的とする。
上記目的を達成するため、本発明による暗号処理装置は以下の構成を備える。即ち、
データに対し所定の暗号処理を実行する暗号処理装置であって、
処理対象の前記データと、鍵情報を保持する保持手段と、
前記暗号処理の途中で生成される情報を中間データとして保持する中間データ保持手段と、
前記中間データと前記鍵情報との少なくともいずれかに基づきラウンド鍵情報を生成する第1の回路を第1の制御情報の入力に応じて再構成し、前記データと前記中間データとの少なくともいずれかと前記ラウンド鍵情報とに基づいて演算処理を行う第2の回路を第2の制御情報の入力に応じて再構成する、回路再構成プロセッサと、
第1のタイミングで前記第1の制御情報を前記回路再構成プロセッサに出力し、第2のタイミングで前記第2の制御情報を前記回路再構成プロセッサに出力する制御手段と、を備え、
前記中間データは、前記第1の回路において生成された前記鍵情報と、前記第2の回路において行われた演算処理の結果のデータとの少なくともいずれかであり、
前記第2の回路において行われた前記演算処理の結果のデータは暗号処理の結果として出力される。
本発明によれば、処理の高速性、低消費電力、ゲート規模の小ささの要件を満たすことのできる暗号化・復号化処理回路に関する技術を提供することができる。
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
<<第1実施形態>>
本実施形態は、複数の処理工程から成る一連の暗号処理を実行する暗号処理装置に関するものである。本実施形態に係る暗号処理装置は、実行期間が異なる2つ以上の暗号処理工程のそれぞれについて、同一の動的再構成手段(回路再構成プロセッサ)を用いて、各々の暗号処理回路を各処理期間に動的に再構成し、各暗号処理工程を実現する。即ち、従来の構成においては各々独立に用意していた個々の暗号処理回路を、本実施形態に係る構成においては1つの回路再構成プロセッサを時分割に用いて実現する。これにより、回路規模を削減し、高パフォーマンス(高速処理)、低消費電力、低コスト(小ゲート規模)を満足することができる。
(基本処理)
まず、本実施形態に係る暗号処理装置としての暗号化回路が実行する基本処理について図1を参照して説明する。図1は、本実施形態に係る暗号処理装置が実行する基本処理の流れを示したフローチャートである。図1は、例として、2つの異なる処理期間(各々処理期間1、処理期間2とする)に、それぞれ所定の処理(処理1、処理2とする)を実行する場合の動作フローを示している。
まず、ステップS100において処理期間1のタイミングを検出したか否かを判定する。検出した場合(ステップS100でYES)はステップS101へ進み、検出しなかった場合(ステップS100でNO)はステップS103へ進む。
ステップS101では、後述する制御部202の制御により、処理期間1用の再構成情報1を後述する再構成情報記憶部203より読み出す。そして読み出された再構成情報1に基づき、処理回路1を後述する動的再構成回路201に動的に再構成する。
次に、ステップS102において、ステップS101において動的再構成された処理回路1が所定の処理1を実行し、ステップS103に進む。
ステップS103では、処理期間2のタイミングを検出したか否かを判定する。検出した場合(ステップS103でYES)はステップS104へ進み、検出しなかった場合(ステップS103でNO)はステップS100へ進む。
ステップS104では、制御部202の制御により、処理期間2用の再構成情報2を再構成情報記憶部203より読み出す。そして読み出された再構成情報2に基づき、処理回路2を動的再構成回路201に動的に再構成する。
次に、ステップS105において、ステップS104において動的再構成された処理回路2が所定の処理2を実行し、ステップS100に戻る。
(基本構成)
本実施形態では、AESの暗号化回路に動的再構成手段を適用し、ラウンド処理周期の前半と、後半に異なる処理回路を動的再構成して、回路規模削減を図る例を示す。図2は本実施形態に係る暗号処理装置としての暗号化回路の主要構成を示した図である。尚、図面の符号は、図7と共通する部分は同じ符号を使用する。
図2において、201は動的再構成回路、202は前記動的再構成回路の制御部、203は動的再構成する回路の情報を格納する再構成情報記憶部、204は制御部の制御プログラムを格納する制御情報記憶部、205は再構成タイミング検出部である。
動的再構成回路201は動的再構成可能なプロセッサアレイ等から構成され、回路再構成プロセッサとして機能する。制御部202は、通常のCPU等から構成される。動的再構成回路201は、再構成可能な演算器206と、接続を切り替えるスイッチ(以下、SWと呼ぶ)207とから構成される。
再構成情報記憶部203、制御情報記憶部204は、通常のフラッシュメモリ等の不揮発性メモリから構成される。再構成タイミング検出部205は、本実施形態においては、ラウンド処理周期の前半と後半の開始タイミングを検出するものとする。
208は中間データ記憶部であり、動的再構成回路201の処理結果を格納すると共に、次回の再構成の際に該格納されたデータ(処理結果)を動的再構成回路201にロードする。209は入力データバッファであり、暗号化或いは復号化すべき入力データを格納する。210は鍵データバッファであり、暗号化或いは復号化する際の鍵データを格納する。211は出力データバッファであり、入力データを暗号化或いは復号化して生成される出力データを格納する。
中間データ記憶部208、入力データバッファ209、鍵データバッファ210、出力データバッファ211は、それぞれ各々SRAM等の揮発性メモリ、或いは、DRAM等の揮発性メモリ等により構成される。
(暗号処理装置の動作)
次に、本実施形態に係る暗号処理装置としての暗号化回路の動作について図3、4を参照して説明する。
図3は、本実施形態に係る暗号処理装置としての暗号化回路の内部構成を示したブロック図である。本実施形態では暗号処理装置としてAES暗号化を行う回路について例示的に説明するが、これに限られるわけではない。例えば、本実施形態の構成はAES復号化に適用することができる。また、DES等の他の暗号化・復号化回路にも適用することができる。図3に例示した暗号化回路は、動的再構成回路201の部分に、ラウンド処理周期の前半に鍵データラウンド処理部を動的再構成し、ラウンド処理周期の後半に入力データラウンド処理部を動的再構成する。
図4は本実施形態に係る構成の動作の流れを示したフローチャートである。
まず、ステップS400において、制御部202は再構成タイミング検出部205によりラウンド処理周期の前半の開始タイミングが検出されたか否かを判定する。検出された場合(ステップS400でYES)はステップS401へ進み、検出されなかった場合(ステップS400でNO)はステップS403へ進む。なお、再構成タイミング検出部205はラウンド処理周期の前半の開始タイミングを検出すると、検出したことを示す情報を制御部202に割り込み等で通知する。制御部202はこの情報に基づいてステップS400の判定を行う。
ステップS401において、制御部202は、制御情報記憶部204に格納されたプログラムに基づいて、再構成情報記憶部203より鍵データラウンド処理部802の再構成情報を読み出す。さらに、読み出した再構成情報に基づいて動的再構成回路201の演算器206、SW207を制御し、動的再構成回路201に鍵データラウンド処理部802を動的再構成するように制御する。
次に、ステップS402において、図7の構成における処理と同様に、鍵データラウンド処理部802に、鍵データバッファ210内の鍵データと、中間データ記憶部208内の当該ラウンド以前のデータとの少なくともいずれかを入力するように制御する。さらに、鍵データラウンド処理部802が、入力されたデータに基づいて当該ラウンドのラウンド鍵を生成し、生成したラウンド鍵を中間データ記憶部208に格納するように制御する。そしてステップS403へ進む。
ステップS403においては、制御部202は再構成タイミング検出部205によりラウンド処理周期の後半の開始タイミングが検出されたか否かを判定する。検出された場合(ステップS403でYES)はステップS404へ進み、検出されなかった場合(ステップS403でNO)はステップS400へ戻る。なお、ステップS400における処理と同様に、再構成タイミング検出部205はラウンド処理周期の後半の開始タイミングを検出すると、検出したことを示す情報を制御部202に割り込み等で通知する。制御部202はこの情報に基づいてステップS403の判定を行う。
ステップS404において、制御部202は、制御情報記憶部204に格納されたプログラムに基づいて、再構成情報記憶部203より入力データラウンド処理部801の再構成情報を読み出す。さらに、読み出した再構成情報に基づいて動的再構成回路201の演算器206、SW207を制御し、動的再構成回路201に入力データラウンド処理部801を動的再構成するように制御する。
次に、ステップS405において、図7の構成における処理と同様に、入力データラウンド処理部801に所定のデータを入力するように制御する。即ち、入力データバッファ209内の入力データと中間データ記憶部208内の当該ラウンド以前のデータとの少なくともいずれかと、ステップS402で生成された当該ラウンドのラウンド鍵とを入力するように制御する。さらに、入力データラウンド処理部801が、入力されたデータに基づいて当該ラウンドのデータラウンド処理を実行し、当該処理結果を中間データ記憶部208と出力データバッファ211に格納するように制御する。そしてステップS400へ戻る。
以上説明したように、本実施形態に係る構成においては、AES暗号化回路のラウンド処理周期の前半と後半に各々鍵データラウンド処理部と、入力データラウンド処理部を、動的再構成する。これにより、本実施形態に係る構成によれば、従来の構成に比べて大幅にASICゲートの回路規模を削減することができる。
例えば、暗号化のみ、又は、復号化のみを実行する従来の回路においては、鍵データラウンド処理部に対応する回路に約1万ASICゲートの規模、入力データラウンド処理部に対応する回路に約3万ASICゲートの規模を要していた。即ち、従来の構成においては合計約4万(=1万+3万)ASICゲート程度の規模を要していた。
これに対して、本実施形態に係る構成においては、動的再構成回路が3万ASICゲート程度の規模を備えていれば、従来の構成における鍵データラウンド処理部と入力データラウンド処理部の双方に対応する回路を実現することができる。このため、本実施形態に係る構成によれば、従来の構成に比べて回路規模が1万(=4万−3万)ASICゲート程度小さくても従来の構成と同等の機能を実現することができる。
また、例えば、暗号化及び復号化の両方の処理を動作モードに応じて切り替えて実行する従来の回路は約6.5万ASICゲート程度の規模を要していた。これは、鍵データラウンド処理部に対応する回路に約1.5万ASICゲート、入力データラウンド処理部に対応する回路に約5万ASICゲートの規模を要していたため(約1.5万+約5万=約6.5万)である。
これに対して、本実施形態に係る構成においては、動的再構成回路が5万ASICゲート程度の規模を備えていれば、従来の構成における鍵データラウンド処理部と入力データラウンド処理部の双方に対応する回路を実現することができる。このため、本実施形態に係る構成によれば、従来の構成に比べて回路規模が1.5万(=6.5万−5万)ASICゲート程度小さくても従来の構成と同等の機能を実現することができる。
尚、動的再構成回路201制御用の制御部202の処理負荷は数MIPS程度、制御情報用記憶部204、再構成情報記憶部203に要する容量は数kByte程度である。このように、AES暗号化回路200を包含する装置自体の制御部及び制御情報用記憶部、データ用記憶部に容易に実装可能であり、回路規模の増大の要因になることはない。
また、データ暗号化の要求スループットが1Gbpsとし、128ビットのデータを1ラウンド1クロックで11サイクルかけて処理する場合を考える。この場合、1ラウンドを処理するクロック周期は最低128/(11×1×109)=11.6ns以内に1ラウンドの暗号化処理を実行する必要がある。上記1ラウンドの処理期間の間に、鍵データラウンド処理と入力データラウンド処理を時分割で実行することを考慮すると、各処理は更に半分以下の時間以内に実行する必要がある。近年発表された高速のリコンフィギュアプロセッサは最大166MHz動作で、1クロック(6ns)で再構成を実現する。このため、このような高速な動的再構成手段を用いることで、上記した様なラウンド処理周期の前半と、後半で、異なる処理回路を動的再構成することができる。従って、ほぼ1Gbpsのスループットを実現することが可能である。
以上のように、本実施形態に係る構成によれば回路規模を大きく削減できると同時に、高速な処理を実行することができる。また、暗号処理をハードウェアで実行することにより、低消費電力を実現している。
尚、本実施形態に係る構成において利用する動的再構成手段は、上記したような高速性を満足するものであれば、図2に示した実施形態に限定されるものではない。即ち、動的再構成回路の内部構成、制御部、再構成情報記憶部の構成等は、他のアーキテクチャーでも構わないことは言うまでもない。
また、本実施形態においては、鍵データラウンド処理部802と、入力データラウンド処理部801の両処理回路を異なる期間に動的再構成するものとしたが、動的再構成の対象とする回路はこれに限定されるものではない。即ち、暗号化処理において実行する工程のうち、異なる期間に実行される処理工程に対応する処理回路を動的再構成の対象として良いことは言うまでもない。例えば、AES暗号化回路においては、入力データ処理工程内の各工程の中から異なる期間に実行される2つ以上の異なる工程に対応する処理回路を動的再構成の対象にしても良い。なお、入力データ処理工程には、ShiftRows工程、SubBytes工程、MixColumns工程、AddRoundKey工程等が含まれる。
また、本実施形態においては、入力データを暗号化するという場合の説明をしたが、入力データを復号化する場合、或いは、暗号化・復号化を切り替えて行う場合についても同様に実現できることは言うまでもない。
また、本実施形態においては、動的再構成を切り替える処理期間はラウンド処理周期の前半と後半としたが、動的再構成を切り替える処理期間もこれに限定されるものではない。即ち、暗号化・復号化処理工程のうち、実行する処理期間が異なる2つ以上の異なる暗号化処理工程に対応して、各々の処理期間に、対応する処理回路を動的再構成しても良いことは言うまでもない。
また、本実施形態においては、鍵データラウンド処理部802と、入力データラウンド処理部801の両処理回路を異なる期間に動的再構成するものとしたが、これは必ずしもそれぞれの回路の全体を動的再構成することを意味しない。即ち、次のように構成してもよい。まず、鍵データラウンド処理部802と入力データラウンド処理部801は共通部分を共通回路として予め用意しておく。そして、当該共通回路と鍵データラウンド処理部802との差分回路、及び、当該共通回路と入力データラウンド処理部801との差分回路を各々動的再構成するようにしても良い。
<<第2実施形態>>
第2実施形態として、AES暗号化回路に動的再構成手段を適用し、ラウンド処理周期の前半と、後半に異なる処理回路を動的再構成して、回路規模削減を図る例を更に示す。
本実施形態に係る構成は、第1実施形態と同様に、ラウンド処理周期の前半と後半で、各々鍵データラウンド処理部と、入力データ暗号化処理部を動的再構成する。ただし、本実施形態に係る構成においては、入力データを暗号化する場合は、ラウンド周期の前半に暗号化用の鍵データラウンド処理部を動的再構成し、ラウンド周期の後半時に入力データ暗号化ラウンド処理部を動的再構成するようにする。更に、入力データを復号化する場合は、ラウンド周期の前半に復号化用の鍵データラウンド処理部を動的再構成し、ラウンド周期の後半時に入力データ復号化ラウンド処理部を動的再構成するようにする。つまり、本実施形態に係る構成は、第1実施形態のように暗号化、又は、復号化の何れか一方について適宜処理回路を動的再構成するのみならず、状況に応じて暗号化と復号化をも切り替えて処理を行うものである。
本実施形態では暗号処理装置として、第1実施形態と同様に、AESの暗号処理を行う回路について例示的に説明するが、これに限られるわけではない。例えば、DES等の他の暗号化・復号化回路にも適用することができる。
本実施形態に係る暗号処理装置の構成は、第1実施形態に係る暗号処理装置の構成と基本的には同様である。図5は、本実施形態に係る構成のラウンド処理周期後半の、入力データ暗号化処理時と復号化処理時とにおける動作説明図である。尚、図面の符号は、他の図と共通する部分は同じ符号を使用する。以下、図2及び図7と異なる部分のみ説明する。
図5においては、811は入力データ暗号化処理部であり、813はShiftRows、814はSubBytes、815はMixColumnである。812は入力データ復号化処理部であり、816はInvShiftRows、817はInvSubBytes、818はInvMixColumnである。
次に、本実施形態に係る構成の動作について図5、6を参照して説明する。図6は本実施形態に係る構成の処理の流れを示したフローチャートである。
まず、ステップS700において、制御部202は再構成タイミング検出部205によりラウンド処理周期の前半の開始タイミングが検出されたか否かを判定する。検出された場合(ステップS700でYES)はステップS701へ進み、検出されなかった場合(ステップS700でNO)はステップS706へ進む。なお、第1実施形態と同様に、再構成タイミング検出部205はラウンド処理周期の前半の開始タイミングを検出すると、検出したことを示す情報を制御部202に割り込み等で通知する。制御部202はこの情報に基づいてステップS700の判定を行う。
ステップS701において、制御部202は、暗号化または復号化のいずれかの動作モードを示す不図示の制御情報に基づいて、実行中の動作が暗号化であるか否かを判定する。暗号化である場合(ステップS701でYES)はステップS702へ進み、暗号化でない即ち復号化である場合(ステップS701でNO)はステップS704へ進む。暗号化または復号化のいずれかの動作モードを示す制御情報は、例えば、本実施形態に係る暗号処理装置を利用するユーザや外部装置から動作前に入力される。
ステップS702において、制御部202は、制御情報記憶部204に格納されたプログラムに基づいて、再構成情報記憶部203より暗号化用の鍵データラウンド処理部802の再構成情報を読み出す。さらに、読み出した再構成情報に基づいて動的再構成回路201の演算器206、SW207を制御し、動的再構成回路201に暗号化用の鍵データラウンド処理部802を動的再構成するように制御する。
次に、ステップS703において、図7の構成と同様に、暗号化用の鍵データラウンド処理部802に、鍵データバッファ210内の鍵データと、中間データ記憶部208内の当該ラウンド以前のデータとの少なくともいずれかを入力するように制御する。さらに、鍵データラウンド処理部802が、入力されたデータに基づいて当該ラウンドの暗号化用ラウンド鍵を生成し、生成した暗号化用ラウンド鍵を中間データ記憶部208に格納するように制御する。そしてステップS706へ進む。
一方、ステップS704において、制御部202は、制御情報記憶部204に格納されたプログラムに基づいて、再構成情報記憶部203より復号化用の鍵データラウンド処理部802の再構成情報を読み出す。さらに、読み出した再構成情報に基づいて動的再構成回路201の演算器206、SW207を制御し、動的再構成回路201に復号化用の鍵データラウンド処理部802を動的再構成するように制御する。
次に、ステップS705において、図7の構成と同様に、復号化用の鍵データラウンド処理部802に、鍵データバッファ210内の鍵データと、中間データ記憶部208内の当該ラウンド以前のデータとの少なくともいずれかを入力するように制御する。さらに、鍵データラウンド処理部802が、入力されたデータに基づいて当該ラウンドの復号化用ラウンド鍵を生成し、生成した復号化用ラウンド鍵を中間データ記憶部208に格納するように制御する。そしてステップS706へ進む。
ステップS706においては、ステップS700と同様に、制御部202は再構成タイミング検出部205によりラウンド処理周期の後半の開始タイミングが検出されたか否かを判定する。検出された場合(ステップS706でYES)はステップS707へ進み、検出されなかった場合(ステップS706でNO)はステップS700へ戻る。なお、ステップS700と同様に、再構成タイミング検出部205はラウンド処理周期の後半の開始タイミングを検出すると、検出したことを示す情報を制御部202に割り込み等で通知する。制御部202はこの情報に基づいてステップS706の判定を行う。
ステップS707において、ステップS701と同様に、制御部202は、暗号化または復号化のいずれかの動作モードを示す不図示の制御情報に基づいて、実行中の動作が暗号化であるか否かを判定する。暗号化である場合(ステップS707でYES)はステップS708へ進み、暗号化でない即ち復号化である場合(ステップS707でNO)はステップS710へ進む。暗号化または復号化のいずれかの動作モードを示す制御情報は、例えば、本実施形態に係る暗号処理装置を利用するユーザや外部装置から動作前に入力される。
ステップS708において、制御部202は、制御情報記憶部204に格納されたプログラムに基づいて、再構成情報記憶部203より入力データ暗号化ラウンド処理部811の再構成情報を読み出す。さらに、読み出した再構成情報に基づいて動的再構成回路201の演算器206、SW207を制御し、動的再構成回路201に入力データ暗号化ラウンド処理部811を動的再構成するように制御する。
次に、ステップS709において、図7の構成における処理と同様に、入力データ暗号化ラウンド処理部811に所定のデータを入力するように制御する。即ち、入力データバッファ209内の入力データと中間データ記憶部208内の当該ラウンド以前のデータとの少なくともいずれかと、ステップS703で生成された当該ラウンドの暗号化用ラウンド鍵とを入力するように制御する。さらに、入力データ暗号化ラウンド処理部811が、入力されたデータに基づいて当該ラウンドのデータ暗号化ラウンド処理を実行し、当該処理結果を中間データ記憶部208と出力データバッファ211に格納するように制御する。そしてステップS700へ戻る。
一方、ステップS710において、制御部202は、制御情報記憶部204に格納されたプログラムに基づいて、再構成情報記憶部203より入力データ復号化ラウンド処理部812の再構成情報を読み出す。さらに、読み出した再構成情報に基づいて動的再構成回路201の演算器206、SW207を制御し、動的再構成回路201に入力データ復号化ラウンド処理部812を動的再構成するように制御する。
次に、ステップS711において、図7の構成における処理と同様に、入力データ復号化ラウンド処理部812に所定のデータを入力するように制御する。即ち、入力データバッファ209内の入力データと中間データ記憶部208内の当該ラウンド以前のデータとの少なくともいずれかと、ステップS705で生成された当該ラウンドの復号化用ラウンド鍵とを入力するように制御する。さらに、入力データ復号化ラウンド処理部812が、入力されたデータに基づいて当該ラウンドのデータ暗号化ラウンド処理を実行し、当該処理結果を中間データ記憶部208と出力データバッファ211に格納するように制御する。そしてステップS700へ戻る。
以上説明したように、本実施形態に係る構成においては、AES暗号化回路のラウンド処理周期の前半と後半に、各々鍵データラウンド処理部と、入力データ処理部を動的再構成する。更に、当該鍵データラウンド処理部及び入力データ処理部を暗号化或いは復号化の動作モードに応じて各々対応する動作モード専用の回路を動的再構成する。これにより、本実施形態の構成によれば第1実施形態の構成よりも更に回路規模を削減することができる。
例えば、暗号化及び復号化の両方の処理を動作モードに応じて切り替えて実行する従来の回路においては、第1実施形態で述べたように、約6.5万ASICゲート程度の規模を要していた。これに対して、本実施形態に係る構成においては、動的再構成回路が3万ASICゲート程度の規模を備えていれば、従来の構成と同等の機能を実現することができる。
第1実施形態で述べたように、暗号化又は復号化に必要な回路規模はそれぞれ鍵データラウンド処理部に対応する回路に約1万ASICゲート規模、入力データラウンド処理部に対応する回路に約3万ASICゲート規模である。このため、本実施形態に係る構成においては、動的再構成回路が3万ASICゲート程度の規模を備えていればこれらの回路を切り替えて実現することができる。このように本実施形態に係る構成によれば、従来の構成に比べて回路規模が3.5万(=6.5万−3万)ASICゲート程度小さくても従来の構成と同等の機能を実現することができる。
尚、動的再構成回路201制御用の制御部202の処理負荷は数MIPS程度、制御情報用記憶部204、再構成情報記憶部203に要する容量は数kByte程度である。このように、AES暗号化回路200を包含する装置自体の制御部及び制御情報用記憶部、データ用記憶部に容易に実装可能であり、回路規模の増大の要因になることはない。
また、データ暗号化の要求スループットが1Gbpsとし、128ビットのデータを1ラウンド1クロックで11サイクルかけて処理する場合を考える。この場合、1ラウンドを処理するクロック周期は最低128/(11×1×109)=11.6ns以内に1ラウンドの暗号化処理を実行する必要がある。上記1ラウンドの処理期間の間に、鍵データラウンド処理と入力データラウンド処理を時分割で実行することを考慮すると、各処理は更に半分以下の時間以内に実行する必要がある。近年発表された高速のリコンフィギュアプロセッサは最大166MHz動作で、1クロック(6ns)で再構成を実現する。このため、このような高速な動的再構成手段を用いることで、上記した様なラウンド処理周期の前半と、後半で、異なる処理回路を動的再構成することができる。従って、ほぼ1Gbpsのスループットを実現することが可能である。
以上のように、本実施形態に係る構成によれば第1実施形態の構成よりも回路規模を更に削減できると同時に、高速な処理を実行することができる。また、暗号処理をハードウェアで実行することにより、低消費電力を実現している。
尚、本実施形態に係る構成において利用する動的再構成手段は、上記したような高速性を満足するものであれば、図2に示した実施形態に限定されるものではない。即ち、動的再構成回路の内部構成、制御部、再構成情報記憶部の構成等は、他のアーキテクチャーでも構わないことは言うまでもない。
また、本実施形態においては、鍵データラウンド処理部と、入力データラウンド処理部を暗号化・復号化の動作モードに応じて、両処理回路を異なる期間に動的再構成するものとしたが、動的再構成の対象とする回路はこれに限定されるものではない。即ち、暗号化・復号化処理において実行する工程のうち、異なる期間に実行される処理工程に対応する処理回路を動的再構成の対象として良いことは言うまでもない。例えば、AES暗号化回路においては、入力データ処理工程内の各工程の中から異なる期間に実行される2つ以上の異なる工程に対応する処理回路を動的再構成の対象にしても良い。なお、入力データ処理工程には、ShiftRows工程、SubBytes工程、MixColumns工程、AddRoundKey工程等が含まれる。
また、本実施形態においては、動的再構成を切り替える処理期間はラウンド処理周期の前半と後半としたが、動的再構成を切り替える処理期間もこれに限定されるものではない。即ち、暗号化・復号化処理工程のうち、実行する処理期間が異なる2つ以上の異なる暗号化処理工程に対応して、各々の処理期間に、対応する処理回路を動的再構成しても良いことは言うまでもない。
また、本実施形態においては、鍵データラウンド処理部802と、入力データラウンド処理部801の両処理回路を異なる期間に動的再構成するものとしたが、これは必ずしもそれぞれの回路の全体を動的再構成することを意味しない。即ち、次のように構成してもよい。まず、鍵データラウンド処理部802と入力データラウンド処理部801は共通部分を共通回路として予め用意しておく。そして、当該共通回路と鍵データラウンド処理部802との差分回路、及び、当該共通回路と入力データラウンド処理部801との差分回路を各々動的再構成するようにしても良い。例えば、SubBytes或いはInvSubBytesの中の、逆元演算回路を共通回路として固定的に用意し、SubBytes、InvSubBytesで異なるアフィン変換回路と逆アフィン変換のみ動的再構成するようにしても良い。
<<第3実施形態>>
第1、第2実施形態に係る構成においては、所定の処理期間に動的再構成する処理回路が予め決まっていたが、所定の処理期間に動的再構成する処理回路を、所定の指標に基づいて決定するように構成しても良い。このような指標には、例えば、処理負荷、スループット、暗号強度、暗号化或いは復号化の処理目的、暗号化動作モード(例えば、ECB、CBC、CFB、OFB、CTRのうちのいずれか)、消費電力、回路規模等が含まれる。
また、各処理期間に所定の処理回路を動的再構成する制御方法自体も、所定の指標に基づいて決定しても良い。
このような構成の一例として、ここでは、各指標について要求されるレベルを示すレベル情報に基づいて、どの指標をどのくらい重視するか判断し、対応する回路構成及びクロックの周波数を選択して、再構成する構成について述べる。なお、このような指標には、スループット(即ち、高速処理)暗号強度、消費電力、或いは、回路規模等が含まれる。
本実施形態に係る暗号処理装置の基本的な構成は第1、第2実施形態に係る構成を示した図2と基本的には同様である。図8は、本実施形態に係る暗号処理装置の主要構成を示した図であり、図2の構成に加え、動的再構成のみならず、暗号処理装置全体に関わる構成も示した。尚、本実施形態において、制御部202は、動的再構成回路の制御のみならず、タイミング回路、バッテリ回路、ユーザインタフェース(UI)部等の暗号回路以外の他の回路部分の制御、暗号処理を含むアプリケーションの制御も司る。以下、図2と異なる部分のみ説明する。
図8において、212は処理状態検出部であり、動的再構成回路201の処理状態、例えば、データラウンド処理中、或いは、鍵ラウンド処理中等を検出する。213はタイミング生成部であり、制御部202の制御によりクロック周波数を高速、低速等に制御可能とする。具体的には、例えば、内部にクロックを分周する分周回路を設け、この分周回路の分周率を制御することによって実現することができる。214はUI部であり、キー入力、液晶表示部等で実現され、ユーザとの間で情報を入出力する。215はバッテリ容量検出部であり、暗号処理装置が携帯機器の場合等において、電源がバッテリから構成されている場合に、当該バッテリの容量(残量)を検出する。216は全体制御情報記憶部であり、暗号処理を含むアプリケーションプログラム、タイミング制御、バッテリ制御、UI等の各部制御プログラムを格納する。217は各種情報記憶部であり、各アプリケーション用データ、UIデータ、バッテリ容量データ、指標−構成/クロック対応情報等の各種データを格納する。
処理状態検出部212の出力、及び、タイミング生成部213の出力は、再構成タイミング検出部205に入力する。再構成タイミング検出部205は、これらの入力に基づいて再構成のタイミングを検出する。従って、例えば、鍵ラウンド処理状態からデータラウンド処理状態への動的再構成回路の状態の変化のタイミング、又は、タイミング生成部からの各処理期間を示すフレーム信号等の所定の切替えタイミングに基づいて、再構成タイミングを制御することができる。UI部214、バッテリ容量検出部215、全体制御情報記憶部216、各種情報記憶部217は、各々、制御部202に接続されている。
尚、前記タイミング生成部213を制御して、低速のクロックを動的再構成回路の動作クロックとして用いる場合は、動的再構成の切替えタイミングも当該クロックに基づき、周期が長くなる。逆に、高速のクロックを動作クロックとして用いる場合は、動的再構成の切替えタイミングの周期は短くなる。また、切替えタイミングは、再構成される処理回路の処理サイクルに応じても変化する。例えば、1回のラウンド処理を1クロックサイクルで実行する処理回路を再構成する場合は、1回のラウンド処理を4クロックサイクルで実行する処理回路を再構成する場合に比して、切替えタイミングの周期は1/4になる。
図9は、本実施形態における記憶部内情報を例示する図である。記憶部は、全体制御記憶部216、再構成制御情報記憶部204を有するプログラム記憶部と、各種情報記憶部217、再構成情報記憶部203を有するデータ記憶部とに大別することができる。本実施形態においては、各記憶部(216,204,217,203)には、図9に示す情報が格納されているものとする。
本実施形態においては、動的再構成の回路構成、クロック周波数を決定する為の各指標(例えば、スループット、暗号強度、消費電力、或いは、回路規模等)の要求レベルを、UI部214を介してユーザから指定できるようになっている。また、動的再構成の回路構成及びクロック周波数は、UI部214からの指定からだけではなく、バッテリ容量検出部215からの情報に基づくバッテリ容量に応じて消費電力の少ない回路構成・クロックを選択するように構成することができる。或いは、UI部214を介してユーザが選択して実行するアプリケーションに応じて、必要な暗号強度・スループットを有する回路構成・クロック周波数を選択することも可能である。
また、第1、第2実施形態においては、回路規模低減を考慮して、中間データ記憶部208の容量が1ラウンド分のデータのみで済むように、1ラウンド毎に、鍵データラウンド処理と入力データラウンド処理を交互に動的再構成する例を示した。しかし、中間データ記憶部の容量が全ラウンド分のデータを格納できる場合は、まず、鍵データラウンド処理回路を動的再構成して全ラウンド分のラウンド鍵データを作成した後、入力データラウンド処理回路を動的再構成して全ラウンド処理を行うこともできる。この場合、動的再構成の切替え回数が少なくて済み、制御部の処理負荷、消費電力が少ないという効果がある。本実施形態においては、この全ラウンド分の鍵データ処理実行後に、入力データ処理を実行するように、図9の動的再構成部制御プログラム(302)においては、制御方法2を選択して実行する。
例えば、ユーザからUI部214が、スループットよりも消費電力の低減を重視する旨の指定情報、即ち、「スループットのレベルがC、かつ、消費電力のレベルがA」を受け取った場合を考える。また、同様に、ユーザから、暗号鍵のビット数を128ビットとする指定がなされたとする。この場合、本実施形態に係る暗号処理装置は、図9の各種情報記憶部217に格納された、指標−構成/クロック対応情報306に基づいて、ユーザの指定に適合する回路構成、クロックを選択する。即ち、この例では、消費電力の指標のレベルが最も優れた回路構成2.1かつクロック2を選択する。ただし、C3、C2、C1、B3、B2、B1、A3、A2、A1の順に、消費電力の指標のレベルが優れているものとする。回路構成2.1は、4サイクル&暗号鍵128ビットの構成に対応し、クロックは、...、クロック2、クロック1の順に周波数が高いものとする。これにより、128ビットの1回のラウンド処理を32ビット処理用の小規模回路により4クロックサイクルかけて実行する入力データラウンド処理回路を動的再構成させて、電力消費を抑止する為に低速なクロックで動作させる。
また、消費電力よりもスループットを重視する旨の指定情報、即ち、「スループットのレベルがA、かつ、消費電力のレベルがB」を受け取った場合、そして、暗号鍵のビット数を128ビットとする指定がなされた場合を考える。この場合は、本実施形態に係る暗号処理装置は、図9の各種記憶部217に格納された、指標−構成/クロック対応情報306に基づき、スループットの指標のレベルが最も優れた回路構成1.1(1サイクル&暗号鍵128ビット)かつクロック1を選択する。これにより、128ビットの1回のラウンド処理を回路規模は大きいが32ビット処理回路を4並列有して1クロックサイクルで小さな遅延時間で実行する入力データラウンド処理回路を動的再構成させて、高速なクロックで動作させる。
また、上記の2つの事例で、暗号強度を強化するように、ユーザから暗号鍵256ビットが指定された場合は、各々回路構成2.3、回路構成1.3が選択されることになる。
このように、本実施形態に係る構成は動的再構成する回路を指定情報に基づいて決定するため、利用時の多様な要件に対して柔軟に適応し、適切な回路を提供することができる。
尚、上記実施形態においては、図9に示す、各種記憶部217に格納された、指標−構成/クロック対応情報306に基づき、所定の指標を重視するという指定に基づき、回路構成を選択するようにした。しかし、指標の指定方法はこれらに限られない。例えば、重視すべき指標の識別情報を指定するのでも、重視すべき指標の識別情報と共に所望のレベルの識別情報を指定するのでも、予め指標のレベルと回路構成の対応を既知として回路構成の識別情報を指定するのでも良い。
また、本実施形態においては、暗号処理装置各部及び全体の制御を、動的再構成を制御する制御部201で行う構成としたが、暗号処理装置各部及び全体制御とは別に制御部を設けても良いことは言うまでもない。尚、本実施形態において、動的再構成回路の外のタイミング生成部においてクロック速度を制御する構成としたが、クロックを制御する分周回路は動的再構成回路201の内部に設けてもよいし、外部に設けてもよい。
また、本実施形態において、動的再構成制御方法は指標に基づき変更しなかった。しかし、指標―構成/クロック対応情報306の部分を、指標―構成/クロック/制御方法情報として、指標に基づき、回路構成、クロックの組合せだけでなく、回路構成、クロック、制御方法の組合せを選択するようにしても良い。
尚、本実施形態においては、次の2つの回路構成を例示した。
・128ビット分のデータラウンド処理を32ビット分の処理回路により4クロックサイクルかけて実行する入力データラウンド処理回路。
・32ビット分の処理回路を4並列有して1クロックサイクルで実行する入力データラウンド処理回路。
しかし、回路構成はこれらの例以外であっても構わないことは言うまでもない。
第1乃至第3実施形態に係る暗号処理装置が実行する基本処理の流れを示したフローチャートである。 第1実施形態に係る暗号処理装置の主要構成を示した図である。 第1実施形態に係る暗号処理装置の内部構成を示したブロック図である。 第1実施形態に係る構成の動作の流れを示したフローチャートである。 第2実施形態に係る暗号処理装置の内部構成を示したブロック図である。 第2実施形態に係る構成の処理の流れを示したフローチャートである。 AES暗号化・復号化回路の従来のハードウエア構成を例示的に示した図である。 第3実施形態に係る暗号処理装置の主要構成を示した図である。 記憶部内情報を例示する図である。

Claims (22)

  1. データに対し予め定められた暗号処理を実行する暗号処理装置であって、
    処理対象の前記データと、鍵情報を保持する保持手段と、
    前記暗号処理の途中で生成される情報を中間データとして保持する中間データ保持手段と、
    前記中間データと前記鍵情報との少なくともいずれかに基づきラウンド鍵情報を生成する第1の回路を第1の制御情報の入力に応じて再構成し、前記データと前記中間データとの少なくともいずれかと前記ラウンド鍵情報とに基づいて演算処理を行う第2の回路を第2の制御情報の入力に応じて再構成する、回路再構成プロセッサと、
    第1のタイミングで前記第1の制御情報を前記回路再構成プロセッサに出力し、第2のタイミングで前記第2の制御情報を前記回路再構成プロセッサに出力する制御手段と、を備え、
    前記中間データは、前記第1の回路において生成された前記ラウンド鍵情報と、前記第2の回路において行われた演算処理の結果のデータとの少なくともいずれかを含み、
    前記第2の回路において行われた前記演算処理の結果のデータは暗号処理の結果として出力されることを特徴とする暗号処理装置。
  2. 前記制御手段は、同時に処理する必要の無い2つ以上のn個の暗号処理を一定周期以内のn分割された各々第iのタイミングで第iの回路を第iの制御情報の入力に応じて再構成することを特徴とする請求項1に記載の暗号処理装置。
  3. 前記暗号処理は、共通鍵暗号の、暗号化処理又は復号化処理であることを特徴とする請求項1又は2に記載の暗号処理装置。
  4. 前記暗号処理は、共通鍵暗号の、ラウンド鍵生成工程およびデータラウンド処理工程を含む暗号化処理又は復号化処理であることを特徴とする請求項1又は2に記載の暗号処理装置。
  5. 前記第1及び第2のタイミングは、それぞれ一定時間おきに予め定められた回数生起することを特徴とする請求項1又は2に記載の暗号処理装置。
  6. 前記第1及び第2の回路は、前記暗号処理に含まれる各処理に対応する回路の差分に相当する回路であることを特徴とする請求項1乃至5のいずれか1項に記載の暗号処理装置。
  7. データに対し予め定められた暗号処理を実行する暗号処理装置であって、
    処理対象の前記データと、鍵情報と、暗号化と復号化とのいずれかを指定する指定情報と、を保持する保持手段と、
    前記暗号処理の途中で生成される情報を中間データとして保持する中間データ保持手段と、
    前記中間データと前記鍵情報との少なくともいずれかに基づき第1のラウンド鍵情報を生成する第1の回路を第1の制御情報の入力に応じて再構成し、前記データと前記中間データとの少なくともいずれかと前記第1のラウンド鍵情報とに基づいて暗号化処理を行う第2の回路を第2の制御情報の入力に応じて再構成し、前記中間データと前記鍵情報との少なくともいずれかに基づき第2のラウンド鍵情報を生成する第3の回路を第3の制御情報の入力に応じて再構成し、前記データと前記中間データとの少なくともいずれかと前記第2のラウンド鍵情報とに基づいて復号化処理を行う第4の回路を第4の制御情報の入力に応じて再構成する、回路再構成プロセッサと、
    前記指定情報において暗号化が指定されている場合、第1のタイミングで前記第1の制御情報を前記回路再構成プロセッサに出力し、第2のタイミングで前記第2の制御情報を前記回路再構成プロセッサに出力し、前記指定情報において復号化が指定されている場合、前記第1のタイミングで前記第3の制御情報を前記回路再構成プロセッサに出力し、前記第2のタイミングで前記第4の制御情報を前記回路再構成プロセッサに出力する制御手段と、を備え、
    前記中間データは、前記第1の回路において生成された前記第1のラウンド鍵情報と、前記第2の回路において行われた暗号化処理の結果のデータと、前記第3の回路において生成された前記第2のラウンド鍵情報と、前記第4の回路において行われた復号化処理の結果のデータとの少なくともいずれかを含み、
    前記第2の回路において行われた暗号化処理の結果のデータと、前記第4の回路において行われた復号化処理の結果のデータは暗号処理の結果として出力されることを特徴とする暗号処理装置。
  8. 前記回路再構成プロセッサは、前記制御情報の入力に応じて前記回路を一定時間内に再構成することを特徴とする請求項1乃至7のいずれか1項に記載の暗号処理装置。
  9. 前記暗号処理はAESアルゴリズムに基づくことを特徴とする請求項1乃至8のいずれか1項に記載の暗号処理装置。
  10. 前記制御手段は、予め定義された指標に基づいて、前記第1及び第2のタイミングの少なくともいずれかと、前記回路再構成プロセッサに出力する前記制御情報と、の少なくともいずれかを決定することを特徴とする請求項1乃至9のいずれか1項に記載の暗号処理装置。
  11. 前記指標は、処理負荷、スループット、暗号強度、動作モード、消費電力、回路規模の少なくともいずれかであることを特徴とする請求項10に記載の暗号処理装置。
  12. 前記動作モードは、ECB、CBC、CFB、OFB、CTRのうちの少なくともいずれかを含むことを特徴とする請求項11に記載の暗号処理装置。
  13. ユーザから前記指標に関する指定を受け付ける受付手段を更に備え、
    前記制御手段は、前記受付手段が受け付けた前記指定に基づいて、前記決定を行う
    ことを特徴とする請求項10乃至12のいずれか1項に記載の暗号処理装置。
  14. 前記指標に関する指定と、回路構成とクロック速度と再構成の制御方法との少なくともいずれかを示す再構成制御情報と、の対応関係を示す情報を記憶する記憶手段を更に備え、
    前記制御手段は、前記受付手段が受け付けた前記指定に対応する前記再構成制御情報を参照し、当該再構成制御情報に基づいて前記決定を行う
    ことを特徴とする請求項13に記載の暗号処理装置。
  15. 前記指標に関する指定には、指標の要求レベルの指定が含まれる
    ことを特徴とする請求項13又は14に記載の暗号処理装置。
  16. 予め定められた装置状態を検出する検出手段を更に備え、
    前記制御手段は、前記検出手段により検出された前記装置状態に基づいて前記決定を行う
    ことを特徴とする請求項10乃至15のいずれか1項に記載の暗号処理装置。
  17. 前記装置状態には、バッテリ残容量と、実行アプリケーションで使用する暗号強度と、スループットと、の少なくともいずれかが含まれる
    ことを特徴とする請求項16に記載の暗号処理装置。
  18. 前記制御手段は、
    前記受付手段が、高いスループットを示す指定を受け付けた場合は、遅延及びサイクル数が少なく、かつ、高速なクロックで、回路を動的再構成するように、前記決定を行う
    ことを特徴とする請求項10乃至17のいずれか1項に記載の暗号処理装置。
  19. 前記制御手段は、
    前記受付手段が、低消費電力を示す指定を受け付けた場合は、小規模な回路を低速クロックで動的再構成するように、前記決定を行う
    ことを特徴とする請求項10乃至18のいずれか1項に記載の暗号処理装置。
  20. 前記制御手段は、
    前記検出手段が、バッテリ残容量が予め定められた量以下であることを検出した場合は、小規模な回路を低速クロックで動的再構成するように、前記決定を行うことを特徴とする請求項10乃至18のいずれか1項に記載の暗号処理装置。
  21. 前記制御手段は、
    前記検出手段が、実行アプリケーションで使用する暗号強度を検出した場合は、当該暗号強度に対応する暗号鍵ビット数を処理する回路を動的再構成するように、前記決定を行うことを特徴とする請求項10乃至18のいずれか1項に記載の暗号処理装置。
  22. 前記制御手段は、
    前記検出手段が、実行アプリケーションで使用するスループットを検出した場合は、当該スループットに対応する遅延及びサイクル数、クロック速度で処理する回路を動的再構成するように、前記決定を行うことを特徴とする請求項10乃至18のいずれか1項に記載の暗号処理装置。
JP2006183850A 2005-08-31 2006-07-03 暗号処理装置 Active JP4890976B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006183850A JP4890976B2 (ja) 2005-08-31 2006-07-03 暗号処理装置
US11/467,699 US20070098153A1 (en) 2005-08-31 2006-08-28 Cryptographic processing apparatus

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005252483 2005-08-31
JP2005252483 2005-08-31
JP2006183850A JP4890976B2 (ja) 2005-08-31 2006-07-03 暗号処理装置

Publications (3)

Publication Number Publication Date
JP2007094377A JP2007094377A (ja) 2007-04-12
JP2007094377A5 JP2007094377A5 (ja) 2009-07-16
JP4890976B2 true JP4890976B2 (ja) 2012-03-07

Family

ID=37980106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006183850A Active JP4890976B2 (ja) 2005-08-31 2006-07-03 暗号処理装置

Country Status (2)

Country Link
US (1) US20070098153A1 (ja)
JP (1) JP4890976B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003288861A1 (en) * 2003-12-18 2005-07-05 Telefonaktiebolaget Lm Ericsson (Publ) Exchangeable module for additional functionality
US8379841B2 (en) 2006-03-23 2013-02-19 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US7769166B2 (en) * 2006-08-24 2010-08-03 Lsi Corporation Dual mode AES implementation to support single and multiple AES operations
DE102006048379B4 (de) * 2006-10-12 2008-11-06 Infineon Technologies Ag Verfahren zur Durchsatzsteuerung einer elektronischen Schaltung sowie entsprechende Durchsatzsteuerung und zugehörige Halbleiterschaltung
JP2008151829A (ja) * 2006-12-14 2008-07-03 Fujitsu Ltd 暗号演算装置
US7949130B2 (en) * 2006-12-28 2011-05-24 Intel Corporation Architecture and instruction set for implementing advanced encryption standard (AES)
US8538012B2 (en) * 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
US8781110B2 (en) * 2007-06-30 2014-07-15 Intel Corporation Unified system architecture for elliptic-curve cryptography
EP2186250B1 (en) * 2007-08-31 2019-03-27 IP Reservoir, LLC Method and apparatus for hardware-accelerated encryption/decryption
US8370622B1 (en) * 2007-12-31 2013-02-05 Rockstar Consortium Us Lp Method and apparatus for increasing the output of a cryptographic system
JP5121494B2 (ja) * 2008-02-21 2013-01-16 株式会社リコー 画像形成装置、情報処理方法、及び情報処理プログラム
US8194854B2 (en) * 2008-02-27 2012-06-05 Intel Corporation Method and apparatus for optimizing advanced encryption standard (AES) encryption and decryption in parallel modes of operation
US9336160B2 (en) * 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
JP5560763B2 (ja) * 2009-03-18 2014-07-30 株式会社リコー 画像処理装置、データ処理方法およびプログラム
US8516272B2 (en) 2010-06-30 2013-08-20 International Business Machines Corporation Secure dynamically reconfigurable logic
JP5665588B2 (ja) * 2011-02-16 2015-02-04 Kddi株式会社 アルゴリズム可変型暗号装置、アルゴリズム可変型復号装置、アルゴリズム可変型暗号方法、アルゴリズム可変型復号方法およびプログラム
WO2013168151A2 (en) 2012-05-08 2013-11-14 Serentic Ltd. Method and system for authentication of communication and operation
US9461815B2 (en) * 2013-10-18 2016-10-04 Advanced Micro Devices, Inc. Virtualized AES computational engine
IL231550A0 (en) * 2014-03-17 2014-08-31 Nuvoton Technology Corp Saving secure information in external memory
US11463236B2 (en) * 2016-12-09 2022-10-04 Cryptography Research, Inc. Programmable block cipher with masked inputs
US11863304B2 (en) * 2017-10-31 2024-01-02 Unm Rainforest Innovations System and methods directed to side-channel power resistance for encryption algorithms using dynamic partial reconfiguration

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185018A (ja) * 1997-09-12 1999-03-30 Toshiba Corp 暗号処理用半導体集積回路及び暗号アルゴリズム変更方法
JP2001308843A (ja) * 2000-04-19 2001-11-02 Nec Commun Syst Ltd 暗号復号化装置
JP2002175689A (ja) * 2000-09-29 2002-06-21 Mitsubishi Electric Corp 半導体集積回路装置
JP4785303B2 (ja) * 2000-10-31 2011-10-05 キヤノン株式会社 印刷制御装置、印刷制御方法およびプログラム
US7103180B1 (en) * 2001-10-25 2006-09-05 Hewlett-Packard Development Company, L.P. Method of implementing the data encryption standard with reduced computation
US7536560B2 (en) * 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
JP2005117232A (ja) * 2003-10-06 2005-04-28 Matsushita Electric Ind Co Ltd データ通信装置、データ通信方法、データ変換装置および変換選択方法
TW200617703A (en) * 2004-11-30 2006-06-01 Tokyo Electron Ltd Dynamically reconfigurable processor
JP4986206B2 (ja) * 2006-02-22 2012-07-25 株式会社日立製作所 暗号処理方法及び暗号処理装置

Also Published As

Publication number Publication date
JP2007094377A (ja) 2007-04-12
US20070098153A1 (en) 2007-05-03

Similar Documents

Publication Publication Date Title
JP4890976B2 (ja) 暗号処理装置
Kaps Chai-tea, cryptographic hardware implementations of xtea
Yalla et al. Lightweight cryptography for FPGAs
Mangard et al. A highly regular and scalable AES hardware architecture
Akishita et al. Very compact hardware implementations of the blockcipher CLEFIA
Zhou et al. Efficient and high-throughput implementations of AES-GCM on FPGAs
Rahimunnisa et al. FPGA implementation of AES algorithm for high throughput using folded parallel architecture
JP2002032018A (ja) データ暗号化標準アルゴリズムを利用した暗号化装置
Güneysu Utilizing hard cores of modern FPGA devices for high-performance cryptography
JP2002040933A (ja) データ暗号化標準アルゴリズムを利用した暗号化装置
JP2005242366A (ja) 可変キー長を有する初期ラウンドキーに対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させるキースケジュラ
Shahbazi et al. Design and implementation of an ASIP-based cryptography processor for AES, IDEA, and MD5
Fischer Realization of the round 2 AES candidates using Altera FPGA
Hutter et al. NaCl’s crypto_box in hardware
KR20050078271A (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
JP5143817B2 (ja) ハッシュ暗号装置及び方法
Tay et al. Compact and low power aes block cipher using lightweight key expansion mechanism and optimal number of s-boxes
JP2002040932A (ja) データ暗号化標準アルゴリズムを利用する暗号化装置
KR100922728B1 (ko) Aes 암복호화 장치 및 암복호화 방법
Elbirt Fast and efficient implementation of AES via instruction set extensions
De Dormale et al. An improved Montgomery modular inversion targeted for efficient implementation on FPGA
JP5182295B2 (ja) 暗号化装置及び暗号処理方法
Rashidi et al. FPGA based a new low power and self-timed AES 128-bit encryption algorithm for encryption audio signal
Hämäläinen et al. Review of hardware architectures for advanced encryption standard implementations considering wireless sensor networks
Jungk et al. On optimized FPGA implementations of the SHA-3 Candidate Grøstl

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111209

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111215

R151 Written notification of patent or utility model registration

Ref document number: 4890976

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3