JP2006235440A - Semiconductor integrated circuit - Google Patents
Semiconductor integrated circuit Download PDFInfo
- Publication number
- JP2006235440A JP2006235440A JP2005052602A JP2005052602A JP2006235440A JP 2006235440 A JP2006235440 A JP 2006235440A JP 2005052602 A JP2005052602 A JP 2005052602A JP 2005052602 A JP2005052602 A JP 2005052602A JP 2006235440 A JP2006235440 A JP 2006235440A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- data
- processing
- data groups
- semiconductor integrated
- 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.)
- Withdrawn
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 94
- 238000006243 chemical reaction Methods 0.000 claims abstract description 70
- 238000007781 pre-processing Methods 0.000 claims abstract description 7
- 238000000034 method Methods 0.000 claims description 52
- 230000015654 memory Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000012805 post-processing Methods 0.000 claims description 4
- 230000017105 transposition Effects 0.000 description 8
- 238000006467 substitution reaction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013478 data encryption standard Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Abstract
【課題】AES方式の暗号化及び復号化における処理を、論理回路を中心とするハードウェアと、ソフトウェアに基づいて動作するマイクロプロセッサとに分担させることによって、所望の処理スループットを実現しつつ回路規模又は消費電力を低減した半導体集積回路を提供する。
【解決手段】半導体集積回路で、暗号処理において用いられる少なくとも1つの鍵及び複数の制御信号を生成するマイクロプロセッサと、複数の入力データ群と複数の帰還データ群との内の一方を選択する選択回路と、選択回路から出力される複数のデータ群を格納する格納回路と、前処理として複数の帰還データ群を生成して帰還ループに供給すると共に、その後、複数の帰還データ群を順次用いて行った演算結果を変換テーブルを参照して変換することにより複数の入力データ群に対して暗号化又は復号化処理を施す論理回路とを具備する。
【選択図】図2A circuit scale that achieves a desired processing throughput by sharing processing in encryption and decryption of AES system between hardware centered on a logic circuit and a microprocessor that operates based on software. Alternatively, a semiconductor integrated circuit with reduced power consumption is provided.
In a semiconductor integrated circuit, a microprocessor for generating at least one key and a plurality of control signals used in cryptographic processing, and a selection for selecting one of a plurality of input data groups and a plurality of feedback data groups A circuit, a storage circuit for storing a plurality of data groups output from the selection circuit, and generating a plurality of feedback data groups as preprocessing and supplying them to the feedback loop, and then sequentially using the plurality of feedback data groups And a logic circuit that performs encryption or decryption processing on a plurality of input data groups by converting the operation results performed with reference to the conversion table.
[Selection] Figure 2
Description
本発明は、一般に、暗号処理を行う半導体集積回路に関し、特に、次世代標準暗号化方式であるAES(Advanced Encryption Standard)方式の暗号処理を行う半導体集積回路に関する。 The present invention generally relates to a semiconductor integrated circuit that performs encryption processing, and more particularly to a semiconductor integrated circuit that performs encryption processing of an AES (Advanced Encryption Standard) system that is a next-generation standard encryption system.
近年の電子商取引や電子通信技術の発展により、暗号技術の重要性はますます高まっている。暗号方式には、大きく分類して、共通鍵暗号と公開鍵暗号とがある。共通鍵暗号(秘密鍵暗号とも呼ばれる)とは、暗号化と復号化とに同じ鍵(共通鍵)を用いる暗号方式である。共通鍵暗号においては、データの送信者と受信者との間で、安全な経路を介して共通鍵を予め共有しておく必要がある。一方、公開鍵暗号とは、本人によって管理される秘密鍵と、他人に公開される公開鍵との、対応する2つの鍵によってデータの暗号化及び復号化を行う暗号方式である。公開鍵暗号において、秘密鍵によって暗号化されたデータは、それに対応する公開鍵以外では復号化することができず、また、公開鍵によって暗号化されたデータは、それに対応する秘密鍵以外では復号化することができないので、暗号強度が比較的高く、鍵の管理が容易である。 With the recent development of electronic commerce and electronic communication technology, the importance of cryptographic technology is increasing. Encryption methods are roughly classified into common key encryption and public key encryption. Common key cryptography (also called secret key cryptography) is an encryption method that uses the same key (common key) for encryption and decryption. In common key cryptography, it is necessary to share a common key in advance between a data sender and a receiver via a secure path. On the other hand, public key cryptography is an encryption method in which data is encrypted and decrypted with two corresponding keys: a private key managed by the principal and a public key that is disclosed to others. In public key cryptography, data encrypted with a private key cannot be decrypted except for the corresponding public key, and data encrypted with the public key can be decrypted with other than the corresponding private key. Therefore, encryption strength is relatively high and key management is easy.
一般に、共通鍵暗号は、大容量データを暗号化する用途には適しているが、公開鍵暗号及びその他の方式と比較すると、暗号強度の点において信頼性が低い。そこで、近年のコンピュータネットワークの広帯域化・高度化、及び、テレビ放送やラジオ放送のディジタル化に伴い、送受信される大容量データを保護して第三者による不正使用を防止するために、高い暗号強度を有すると共に、実装に必要とされるリソースを低減できる暗号アルゴリズムが望まれている。 In general, common key cryptography is suitable for use in encrypting large-capacity data, but is less reliable in terms of cryptographic strength than public key cryptography and other methods. Therefore, with the recent increase in bandwidth and sophistication of computer networks and the digitization of television broadcasts and radio broadcasts, high encryption is used to protect large amounts of transmitted and received data and prevent unauthorized use by third parties. A cryptographic algorithm that has strength and can reduce resources required for implementation is desired.
従来より、米国及びその他の多くの国においては、標準的な共通鍵暗号アルゴリズムとしてDES(Data Encryption Standard:データ暗号化標準)が用いられている。DESは、IBM社(米国)によって開発され、米国政府標準技術局(National Institute of Standards and Technology:NIST)によって連邦情報処理基準として採用された。この暗号アルゴリズムは、開発当時においては非常に高性能であり、長い間商用通信や文書の安全性を保障してきた。しかしながら、近年のコンピュータ技術の高性能化、及び、暗号理論の発展に伴い、DESの信頼性は低下している。そのため、NISTは、DESに替わる暗号方式を公募することにより、ラインダール(Rijndael)方式の共通鍵暗号アルゴリズムをAESとして選定した。 Conventionally, in the United States and many other countries, DES (Data Encryption Standard) is used as a standard common key encryption algorithm. DES was developed by IBM Corporation (USA) and adopted as a Federal Information Processing Standard by the National Institute of Standards and Technology (NIST). This cryptographic algorithm is very high performance at the time of development, and has long secured commercial communication and document security. However, the reliability of DES is decreasing with the recent advancement of computer technology and the development of cryptographic theory. Therefore, NIST selected a common key encryption algorithm of the Rijndael method as AES by soliciting an encryption method to replace DES.
ラインダール方式の共通鍵暗号アルゴリズムは、データ系列を固定長ブロックに分割して取り扱うブロック暗号方式であり、鍵語長−ブロック語長の組み合わせを、128ビット−128ビット、192ビット−128ビット、及び、256ビット−128ビットの内から独立して指定できることを特徴としている。また、ビット変換においてSPN(substitution permutation network)構造を採用していることも特徴である。SPN構造においては、1ラウンドの処理が、換字処理(substitution)及び転置処理(permutation)によって構成される。また、1ラウンドの処理が換字処理と転置処理と換字処理とによって構成されるものは、2ラウンドSPN構造と呼ばれている。AESの詳細については、AES仕様書を参照されたい(インターネット<URL:http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf>、2005年2月4日検索)。 The line dahl common key encryption algorithm is a block encryption method that handles a data sequence by dividing it into fixed-length blocks. The key word length-block word length combinations are 128 bits-128 bits, 192 bits-128 bits, In addition, it is characterized in that it can be specified independently from 256 bits to 128 bits. Another feature is that an SPN (substitution permutation network) structure is adopted in bit conversion. In the SPN structure, one round of processing is constituted by substitution processing (substitution) and transposition processing (permutation). In addition, a structure in which one round process includes substitution processing, transposition processing, and substitution processing is called a two-round SPN structure. For details on AES, refer to the AES specification (Internet <URL: http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf>, search February 4, 2005 ).
上記のようなAES方式の暗号処理回路は、例えば、企業向けの高性能ネットワーク機器や無線LAN機器等に組み込まれて、既に実用化されている。また、下記の特許文献1には、AES暗号回路を実装する際に、回路規模を小型化すると共に、一定水準の高速処理が実現可能な暗号回路が開示されている。
The AES encryption processing circuit as described above has already been put into practical use by being incorporated in, for example, a high-performance network device or a wireless LAN device for enterprises.
この暗号回路のRound処理部は、Round Keyの値を入力データに加算する第1Round Key加算回路と、第1Round Key加算回路の出力を一時的に格納すると共にShift Row変換を実行する中間レジスタ兼Shift Row変換回路と、中間レジスタ兼Shift Row変換回路の値が入力されてByte Sub変換を実行するByte Sub変換回路と、中間レジスタ兼Shift Row変換回路の値が入力されてRound Keyの値を加算する第2Round Key加算回路と、第2Round Key加算回路の出力に対してMix Column変換を実行するMix Column変換回路と、第1セレクタ、中間レジスタ兼Shift Row変換回路、Byte Sub変換回路、Mix Column変換回路の出力の内のいずれか1つを第2Round Key加算回路に出力する第2セレクタとを備えている(第1頁、図4)。 The round processing unit of the encryption circuit includes a first round key addition circuit that adds the value of the round key to the input data, and an intermediate register and shift that temporarily stores the output of the first round key addition circuit and executes shift row conversion. Row conversion circuit, Byte Sub conversion circuit that executes the Byte Sub conversion when the value of the intermediate register / Shift Row conversion circuit is input, and the value of the intermediate register / Shift Row conversion circuit is input and the Round Key value is added Second Round Key addition circuit, Mix Column conversion circuit that performs Mix Column conversion on the output of the second Round Key addition circuit, First selector, Intermediate register / Shift Row conversion circuit, Byte Sub conversion circuit, Mix Column conversion circuit And a second selector for outputting any one of the outputs to the second round key adding circuit (first page, FIG. 4).
特許文献1においては、AES暗号をスマートカードに組み込むことが想定されている(第3頁、段落0014)。また、パーソナルコンピュータ(PC)向けの汎用プロセッサの中には、AES暗号処理用のハードウェアを内蔵したものも現れている。例えば、VIAテクノロジー社(台湾)製のC3プロセッサは、PadLockと名付けられたAES暗号処理エンジンを内蔵している。なお、PadLockについては、VIAテクノロジー社のホームページを参照されたい(インターネット<URL:http://www.via.com.tw/en/products/processors/c3/>、2005年2月4日検索)
上記のようなAES方式の暗号処理回路が実装される機器のターゲットは、例えばネットワーク通信機器のように、コストよりも処理スループットが重視される分野と、例えばICカードのように、性能よりも小型化することが重視される分野とに二極化される傾向にある。前者においては、ギガビット/秒のオーダーの処理スループットが求められるケースが少なくない。反対に、後者においては、高々数メガビット/秒程度の処理スループットで足りるケースが多いと考えられる。 Targets of devices on which the AES encryption processing circuit as described above is mounted are, for example, network communication devices where processing throughput is more important than cost, and, for example, IC cards are smaller than performance. There is a tendency to be polarized to the field where emphasis is placed on. In the former, there are many cases where processing throughput of the order of gigabits / second is required. On the other hand, in the latter case, it is considered that a processing throughput of about several megabits / second at most is sufficient.
一般に、ギガビット/秒のオーダーの処理スループットを得るためには、128ビットのデータを1サイクルで処理できるような、大規模な専用のハードウェアロジックの実装が必要とされる。実際には、ラウンド鍵(1ラウンドの処理において使用される鍵であって、ラウンドごとに異なる)の生成を含むほとんどの処理をハードウェアロジック化した、専用のLSIを搭載することによって実現している場合が多い。 In general, in order to obtain processing throughput of the order of gigabit / second, it is necessary to implement a large-scale dedicated hardware logic that can process 128-bit data in one cycle. Actually, it is realized by installing a dedicated LSI that is hardware logic for most of the processing including generation of round keys (keys used in one round of processing and differ for each round). There are many cases.
一方で高々、数メガビット/秒の処理スループットを得るためには、SubBytes変換やMixColumns変換のように、小型マイクロプロセッサによる演算においては著しくサイクル数を要する処理のみをハードウェアで実装するが、それ以外の演算処理はソフトウェアによって実現しているものが多い。 On the other hand, in order to obtain processing throughput of several megabits / second at most, only processing that requires a significant number of cycles is implemented in hardware, such as SubBytes conversion and MixColumns conversion, but other than that, Many of the arithmetic processes are realized by software.
今後、所謂ディジタル家電分野においてAES暗号を積極的に導入していくためには、できるだけコストを抑えつつ、要求される暗号処理スループットを十分に確保できる実装技術が望まれる。例えば、日本のディジタルハイビジョン放送におけるデータストリームは24Mbpsであるので、そのようなデータストリームをAES暗号化及び復号化する機能を有する全ての機器は、上記の実効スループットを満足させなければならない。 In the future, in order to actively introduce AES encryption in the so-called digital home appliance field, a mounting technique that can sufficiently secure the required encryption processing throughput while suppressing the cost as much as possible is desired. For example, since a data stream in Japanese digital high-definition broadcasting is 24 Mbps, all devices having a function for AES encryption and decryption of such a data stream must satisfy the above-described effective throughput.
しかしながら、最近のディジタル家電においては、様々な機能をシステムLSIに集約化することにより性能を落とすことなく低コスト化を実現させているものが多いので、AES暗号のためだけに専用ハードウェアLSIを追加することは困難であるし、暗号鍵や複号したデータを故意に外部から読み取られることを防ぐためにも、それは推奨されない。また、システムLSIに内蔵されるマイクロプロセッサと該マイクロプロセッサを動作させるソフトウェアとによってAES暗号処理を実現しようとしても、そのようなマイクロプロセッサは、動作周波数やALU(arithmetic and logic unit)の構造上の理由により、暗号処理スループットに関する条件を満たすことは非常に困難である。 However, in recent digital home appliances, many functions are realized in a system LSI by integrating various functions into a system LSI, so that cost reduction is achieved without degrading performance. Therefore, a dedicated hardware LSI is used only for AES encryption. It is difficult to add, and it is not recommended in order to prevent the encryption key and decrypted data from being intentionally read from the outside. Further, even if an AES encryption process is to be realized by a microprocessor built in a system LSI and software for operating the microprocessor, such a microprocessor has an operating frequency and an ALU (arithmetic and logic unit) structure. For the reason, it is very difficult to satisfy the conditions regarding the cryptographic processing throughput.
そこで、上記の点に鑑み、本発明は、暗号化及び復号化における処理を、論理回路を中心とするハードウェアと、ソフトウェアに基づいて動作するマイクロプロセッサとに分担させることによって、所望の処理スループットを実現しつつ回路規模又は消費電力を低減した半導体集積回路を提供することを目的とする。 Therefore, in view of the above points, the present invention distributes the processing in encryption and decryption to hardware centered on a logic circuit and a microprocessor operating based on software, thereby achieving a desired processing throughput. An object of the present invention is to provide a semiconductor integrated circuit with reduced circuit scale or power consumption while realizing the above.
上記課題を解決するため、本発明に係る半導体集積回路は、ソフトウェアに基づいて動作し、暗号処理において用いられる少なくとも1つの鍵及び複数の制御信号を生成するマイクロプロセッサと、入力されるテキストに含まれているデータのビット長を分割して得られる複数の入力データ群と帰還ループを介して供給される複数の帰還データ群との内の一方を制御信号に従って選択する選択回路と、選択回路から出力される複数のデータ群を格納する格納回路と、制御信号に従って、前処理として、格納回路から出力される複数の入力データ群とマイクロプロセッサによって生成された少なくとも1つの鍵とを順次用いて演算を行うことにより複数の帰還データ群を生成して帰還ループに供給すると共に、その後、格納回路から出力される複数の帰還データ群を順次用いて行った演算結果を変換テーブルを参照して変換することにより複数の入力データ群に対して暗号化又は復号化処理を施し、変換されたデータとマイクロプロセッサによって生成された少なくとも1つの鍵とを順次用いて演算を行うことにより複数の帰還データ群を生成して帰還ループに供給する論理回路とを具備する。 In order to solve the above problems, a semiconductor integrated circuit according to the present invention includes a microprocessor that operates based on software and generates at least one key and a plurality of control signals used in cryptographic processing, and input text. A selection circuit that selects one of a plurality of input data groups obtained by dividing the bit length of the received data and a plurality of feedback data groups supplied via a feedback loop according to a control signal; and An operation is performed by sequentially using a storage circuit for storing a plurality of data groups to be output, and a plurality of input data groups output from the storage circuit and at least one key generated by the microprocessor as preprocessing according to a control signal. To generate a plurality of feedback data groups, supply them to the feedback loop, and then output from the storage circuit Performs encryption or decryption processing on multiple input data groups by converting the operation results obtained by sequentially using multiple feedback data groups with reference to the conversion table, and generates the converted data and the microprocessor A logic circuit that generates a plurality of feedback data groups and supplies them to the feedback loop by performing an operation using the at least one key sequentially.
ここで、論理回路が、各々の帰還データ群を用いて行った演算結果を変換テーブルを参照して変換することと、変換されたデータとマイクロプロセッサによって生成された少なくとも1つの鍵とを用いて演算を行うことにより複数の帰還データ群を生成して帰還ループに供給することとを、所定の回数繰り返して行うようにしても良い。 Here, the logic circuit converts the operation result performed using each feedback data group with reference to the conversion table, and uses the converted data and at least one key generated by the microprocessor. A plurality of feedback data groups generated by calculation and supplied to the feedback loop may be repeated a predetermined number of times.
また、論理回路が、複数の入力データ群に対する暗号化又は復号化処理を終了する際に、後処理として、格納回路から出力される複数の帰還データ群を順次用いて行った演算結果を変換テーブルを参照して変換することにより、出力すべき複数のデータ群を生成するようにしても良い。 In addition, when the logic circuit finishes the encryption or decryption process for a plurality of input data groups, as a post-process, a calculation result obtained by sequentially using a plurality of feedback data groups output from the storage circuit is converted into a conversion table. A plurality of data groups to be output may be generated by converting with reference to FIG.
さらに、論理回路が、変換テーブルを参照して変換されたデータとマイクロプロセッサによって生成された少なくとも1つの鍵との排他的論理和を求める排他的論理和回路を含むようにしても良い。 Further, the logic circuit may include an exclusive OR circuit that obtains an exclusive OR of data converted with reference to the conversion table and at least one key generated by the microprocessor.
この半導体集積回路は、暗号化処理において用いられる変換テーブルを格納する第1のメモリ領域と、復号化処理において用いられる変換テーブルを格納する第2のメモリ領域とをさらに具備するようにしても良い。 The semiconductor integrated circuit may further include a first memory area for storing a conversion table used in the encryption process and a second memory area for storing the conversion table used in the decryption process. .
また、この半導体集積回路は、帰還ループに供給される少なくとも1つの帰還データ群を格納する第2の格納回路をさらに具備するようにしても良いし、パイプライン処理を行うために論理回路の演算データパスの途中に挿入された第3の格納回路をさらに具備するようにしても良い。 In addition, the semiconductor integrated circuit may further include a second storage circuit that stores at least one feedback data group supplied to the feedback loop, or may perform an operation of a logic circuit to perform pipeline processing. A third storage circuit inserted in the middle of the data path may be further provided.
以上において、この半導体集積回路が、AES(Advanced Encryption Standard)方式の暗号処理を行い、マイクロプロセッサが、AES方式の暗号処理において用いられるラウンド鍵を生成するようにしても良い。 In the above, this semiconductor integrated circuit may perform AES (Advanced Encryption Standard) encryption processing, and the microprocessor may generate a round key used in AES encryption processing.
以上の様に構成した本発明によれば、暗号処理において用いられる少なくとも1つの鍵及び複数の制御信号を生成するマイクロプロセッサと、変換テーブルを参照することによって暗号化又は復号化処理を行う論理回路とを設けたことにより、所望の処理スループットを実現しつつ回路規模を低減することができる。 According to the present invention configured as described above, a microprocessor that generates at least one key and a plurality of control signals used in encryption processing, and a logic circuit that performs encryption or decryption processing by referring to a conversion table Thus, the circuit scale can be reduced while realizing a desired processing throughput.
以下、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
図1は、本発明の一実施形態に係る半導体集積回路の構成を示すブロック図である。この半導体集積回路(システムLSI)は、ソフトウェアに基づいて動作するマイクロプロセッサ1と、ハードウェア処理を行う論理回路及びメモリによって構成されたアクセラレータ2とを内蔵している。マイクロプロセッサ1とアクセラレータ2とは、AES方式の暗号化及び復号化の処理を協働して行う。
Hereinafter, the best mode for carrying out the present invention will be described in detail with reference to the drawings. The same constituent elements are denoted by the same reference numerals, and the description thereof is omitted.
FIG. 1 is a block diagram showing a configuration of a semiconductor integrated circuit according to an embodiment of the present invention. This semiconductor integrated circuit (system LSI) includes a
また、AES方式の暗号化及び復号化の処理においては、ラウンド鍵が格納されているメモリ領域に処理サイクル毎にアクセスする必要があるので、ラウンド鍵を格納するためのバッファメモリ3をマイクロプロセッサ1の外に設けることが望ましい。バッファメモリ3は、読出し及び書込みがそれぞれ1方向のみに行われ、そのアクセスアドレスがシーケンシャルにインクリメント又はデクリメントされるリングバッファメモリであり、FIFOの一種である。バッファメモリ3への書込みは、マイクロプロセッサ1が行い、読出しはアクセラレータ2が行う。バッファメモリ3の各メモリラインは、パラレル32ビットで構成される。
Further, in the AES system encryption and decryption processing, it is necessary to access the memory area in which the round key is stored every processing cycle. Therefore, the
本実施形態において、アクセラレータ2は、マイクロプロセッサ1の近傍に配置されており、マイクロプロセッサ1から見ると、アクセラレータ2は、記憶階層的には主記憶装置よりも上位、かつ、マイクロプロセッサ1の内部のレジスタよりも下位に位置する。即ち、アクセラレータ2とマイクロプロセッサ1との間のアクセスは、マイクロプロセッサ1の内部のレジスタよりも低速になるが、主記憶装置よりも高速になる。
In the present embodiment, the
一例として、アクセラレータ2は、AES方式の暗号処理を支援するためのIP(intellectual property:インテレクチュアル・プロパティ)として構成される。ここで、IPとは、所定の機能を実現するための一群の回路ブロックをいう。また、アクセラレータ2は、システムLSIに内蔵されるマイクロプロセッサ1の近傍、例えば、コプロセッサ・インタフェースに配置するのに適している。
As an example, the
即ち、アクセラレータ2が、テキスト入出力、制御、及び、ラウンド鍵入力のための仮想インタフェース4として働くことにより、コプロセッサ・モジュール5が実現され、マイクロプロセッサ1からは、コプロセッサ・モジュール5がレジスタ型インタフェースとして見える。
That is, the
図1に示すように、アクセラレータ2は、入力されるデータ及び出力すべきデータを一時的に格納するためのレジスタ6と、AES方式の暗号処理に関するハードウェア演算を行う演算データパス回路7と、演算データパス回路7における演算動作を制御したりラウンド鍵の入力を制御する制御回路8とを含んでいる。本発明においては、AES方式の暗号処理に関する全ての演算をハードウェア化するのではなく、最も演算量の割合が大きいテキスト処理については完全にアクセラレータ2により自動的に処理を行うが、鍵拡張(ラウンド鍵生成)処理については付随的なものとみなしてソフトウェア処理を行う。
As shown in FIG. 1, the
図2は、本発明の一実施形態において用いられる演算データパス回路を示す詳細なブロック図である。AES暗号の仕様により、テキスト入出力は128ビットを基本とするが、演算データパス回路7内においては、32ビットを基本演算単位としている。従って、128ビットの入力テキストは、4サイクルかけて演算データパス回路7に入力される。また、本実施形態において、1ワードは32ビットのデータで構成される。なお、図2において、太線は128ビットのデータを表しており、細線は、32ビットのデータを表している。
FIG. 2 is a detailed block diagram showing an arithmetic data path circuit used in one embodiment of the present invention. According to the AES encryption specification, text input / output is based on 128 bits, but in the arithmetic
演算データパス回路7において、4つのセレクタ11〜14は、制御信号C1に従って、入力テキスト、又は、一時ベクタレジスタ(Temporary Vector Register)121〜123等から帰還ループを介して帰還されるデータを選択する。最初に、入力テキストが選択され、128ビット(32ビット×4サイクル)の入力テキスト(svin)が、これらのセレクタ11〜14によって順次選択される。
In the arithmetic
具体的には、制御信号C1に従って、セレクタ11がデータ[127:96]を選択し、セレクタ12がデータ[95:64]を選択し、セレクタ13がデータ[63:32]を選択し、セレクタ14がデータ[31:00]を選択する。ここで、[n:m]は、ビット番号n〜mのデータを意味する。なお、本実施形態においては、一般にならい、最下位ビットのビット番号を「0」とし、上位ビットに向かってビット番号をカウントする。
Specifically, according to the control signal C1, the
セレクタ11〜14から順次出力されるデータは、32ビット×4の状態ベクタレジスタ(Status Vector Register)21〜24に格納される。状態ベクタレジスタ21〜24からは、128ビットのデータと共に、制御信号C2に従って選択された32ビットのデータが出力される。状態ベクタレジスタ21〜24から出力される128ビットのデータは、第1のシフト及びセレクト回路(ShiftRows & Word Selector)31と、ダイレクトワードセレクタ(Direct Word Selector)32と、第2のシフト及びセレクト回路(InvShiftRows & Word Selector)33とに入力される。 Data sequentially output from the selectors 11-14 is stored in 32-bit × 4 status vector registers 21-24. From the state vector registers 21 to 24, 32-bit data selected according to the control signal C2 is output together with 128-bit data. The 128-bit data output from the state vector registers 21 to 24 includes a first shift and select circuit (ShiftRows & Word Selector) 31, a direct word selector (Direct Word Selector) 32, and a second shift and select circuit. (InvShiftRows & Word Selector) 33.
第1のシフト及びセレクト回路(ShiftRows & Word Selector)31は、128ビットのデータに対し、AES仕様書の2.2章及び5.1.2章に記載されているShiftRows変換を行い、制御信号C3に従って、変換された128ビットのデータを4分割して得られる4つのラインの内から1つのラインを選択して、セレクタ42に出力する。ここで、ShiftRows変換とは、AES方式の暗号化処理において、状態(State)に対し、その状態の最後の3行を異なるオフセットだけ巡回的にシフトすることにより処理する変換をいう。また、状態(State)とは、複数のバイトの2次元行列(長方形アレイ)として表される中間的な暗号結果であり、この2次元行列は、4行Nb列を有している(例えば、Nb=4)。 A first shift and select circuit (ShiftRows & Word Selector) 31 performs a ShiftRows conversion described in chapters 2.2 and 5.1.2 of the AES specification on 128-bit data, and generates a control signal. According to C3, one line is selected from the four lines obtained by dividing the converted 128-bit data into four, and is output to the selector. Here, ShiftRows conversion refers to conversion that is performed by cyclically shifting the last three rows in the state by a different offset with respect to the state (State) in the encryption process of the AES method. In addition, the state is an intermediate encryption result expressed as a two-dimensional matrix (rectangular array) of a plurality of bytes, and this two-dimensional matrix has 4 rows and Nb columns (for example, Nb = 4).
ダイレクトワードセレクタ(Direct Word Selector)32は、制御信号C6に従って、前処理等において、128ビットのデータ(4つのワード)から1つのワードを選択して出力する。また、第2のシフト及びセレクト回路(InvShiftRows & Word Selector)33は、128ビットのデータに対し、AES仕様書の2.2章及び5.3.1章に記載されているInvShiftRows変換を行い、制御信号C4に従って、変換された128ビットのデータを4分割して得られる4つのラインの内から1つのラインを選択して、第1のメインセレクタ60に出力する。ここで、InvShiftRows変換とは、AES方式の復号化処理において行われる、ShiftRows変換の逆変換をいう。
The direct word selector (Direct Word Selector) 32 selects and outputs one word from 128-bit data (four words) in preprocessing or the like according to the control signal C6. The second shift and select circuit (InvShiftRows & Word Selector) 33 performs InvShiftRows conversion described in chapters 2.2 and 5.3.1 of the AES specification on 128-bit data, According to the
一方、制御信号C2に従って状態ベクタレジスタ21〜24の内の1つから出力される32ビットのデータは、セレクタ42と、転置処理回路(RotWord)41とに入力される。転置処理回路41は、この32ビット、即ち、1ワードのデータに対し、AES仕様書の2.2章及び5.2章に記載されているRotWord処理を行う。ここで、RotWordとは、鍵拡張処理において、4バイト(1ワード)のデータを取り出して、巡回的な転置処理を行う機能をいう。具体的には、32ビットのデータが、左方向(MSB方向)に8ビットだけローテートされる。
On the other hand, 32-bit data output from one of the state vector registers 21 to 24 in accordance with the control signal C2 is input to the
セレクタ42は、制御信号C5に従って、状態ベクタレジスタ21〜24の内の1つから出力される1ワードのデータと、第1のシフト及びセレクト回路31において選択された1ラインのデータと、転置処理回路41によって巡回的な転置処理が行われた1ワードのデータとの内から32ビットのデータを選択して、選択されたデータを第1の変換テーブル(S-box)51に出力する。
The
第1の変換テーブル(S-box)51は、AES方式の暗号化処理における数種類のバイト換字処理変換及び鍵拡張処理において、バイト値の1:1換字処理を行うために用いられる非線形換字処理テーブルである。第1の変換テーブル51は、例えば、8ビットのアドレス及び8ビットのデータを使用するROM4個が入力に対してパラレルに配置されることによって実現され、入力されるデータがアドレスとして用いられ、当該アドレスに対応するデータがROMから読み出される。第1の変換テーブル51から出力されるデータは、第1のメインセレクタ60に入力される。
The first conversion table (S-box) 51 is a non-linear conversion processing table used for performing 1: 1 conversion processing of byte values in several types of byte conversion processing conversion and key expansion processing in AES encryption processing. It is. The first conversion table 51 is realized, for example, by arranging four ROMs using 8-bit address and 8-bit data in parallel with the input, and the input data is used as an address. Data corresponding to the address is read from the ROM. Data output from the first conversion table 51 is input to the first
第2のシフト及びセレクト回路33において選択された1ラインのデータは、第2の変換テーブル(InvS-box)52に入力される。第2の変換テーブル(InvS-box)52は、AES方式の復号化処理において、バイト値の1:1換字処理を行うために用いられる非線形換字処理テーブルである。第2の変換テーブル52は、例えば、8ビットのアドレス及び8ビットのデータを使用するROM4個が入力に対してパラレルに配置されることによって実現され、入力されるデータがアドレスとして用いられ、当該アドレスに対応するデータがROMから読み出される。第2の変換テーブル52から出力されるデータは、第1のメインセレクタ60に入力される。
One line of data selected by the second shift and
第1のメインセレクタ60は、第1の変換テーブル51から出力される1ワードのデータと、ダイレクトワードセレクタ32から出力される1ワードのデータと、第2の変換テーブル52から出力される1ワードのデータとの内から、制御信号C7に従って1ワードのデータを選択し、選択された1ワードのデータを、エクスクルーシブOR(XOR)回路70及び第2のメインセレクタ80に出力すると共に、128ビット(32ビット×4サイクル)の出力テキスト(svout)として順次出力する。
The first
図1に示す制御回路8は、制御信号C1〜S10と共に、32ビットのラウンド鍵(rdkey)を演算データパス回路7に供給する。XOR回路70は、復号化処理及び前処理/後処理において、第1のメインセレクタ60から出力されるデータとラウンド鍵との排他的論理和を求めて、第2のメインセレクタ80に出力する。
The
第2のメインセレクタ80は、制御信号C8に従って、第1のメインセレクタ60から出力されるデータとXOR回路70から出力されるデータとの内の一方を選択し、選択されたデータを、列混合回路(MixCol & InvMixCol)90及び第3のメインセレクタ110に出力する。
The second
列混合回路90は、入力されたデータに対して、AES仕様書の2.2章及び5.1.3章に記載されているMixColumns変換と、AES仕様書の2.2章及び5.3.3章に記載されているInvMixColumns変換との内のいずれか一方を施す。ここで、MixColumns変換とは、AES方式の暗号化処理において、状態の全ての列を取り込んで、それらのデータを混合することにより新たな列を作成する変換をいう。また、InvMixColumns変換とは、AES方式の復号化処理における、MixColumns変換の逆変換をいう。MixColumns変換の演算式は、InvMixColumns変換の演算式の中に含まれるため、列混合回路90として1つの回路に集約する。列混合回路90は、入力データに対してMixColumns変換されたデータをXOR回路100に出力すると共に、InvMixColumns変換されたデータを第3のメインセレクタ110に出力する。
The
XOR回路100は、暗号化処理において、列混合回路90から出力されるMixColumns変換データとラウンド鍵との排他的論理和を求めて、第3のメインセレクタ110に出力する。第3のメインセレクタ110は、制御信号C9に従って、第2のメインセレクタ80から出力されるデータと、XOR回路100から出力されるデータと、列混合回路90から出力されるInvMixColumns変換データとの内の1つを、演算データパスにおける演算結果を表すデータとして選択し、選択されたデータを、96ビット幅の一時ベクタレジスタ121〜123、及び、帰還ループに順次出力する。
In the encryption process, the
具体的には、制御信号C10に従って、一時ベクタレジスタ121にデータ[127:96]が格納され、一時ベクタレジスタ122にデータ[95:64]が格納され、一時ベクタレジスタ123にデータ[63:32]が格納され、これらのデータが、帰還ループに直接出力されたデータ[31:00]と共に、帰還ループに順次供給される。なお、一時ベクタレジスタ121及び122及び123へのデータ格納は、それぞれ、制御信号C10により個別に制御される。帰還ループを介してセレクタ11〜14に供給されたデータは、状態ベクタレジスタ21〜24に順次コピーされる。これにより、1サイクルの処理が終了する。
Specifically, according to the control signal C10, data [127: 96] is stored in the
上記のような暗号化及び複号化処理においては、128ビットのデータに対して1単位の処理を施すために、4サイクルの期間を必要とする。この処理においては、96ビット幅の一時ベクタレジスタ121〜123が、3ワード分のバッファとして利用される。32ビット(1ワード)の演算を各サイクルで繰り返して、第1〜第3サイクルの演算結果が、一時ベクタレジスタ121〜123に格納される。第4サイクルの演算結果が求められると、128ビットの演算結果は、帰還ループを介して状態ベクタレジスタ11〜14に供給されてコピーされ、これによって1単位の処理が終了する。 In the encryption and decryption processing as described above, a period of 4 cycles is required to perform one unit of processing on 128-bit data. In this process, the 96-bit width temporary vector registers 121 to 123 are used as a buffer for three words. A 32-bit (1 word) operation is repeated in each cycle, and the operation results of the first to third cycles are stored in the temporary vector registers 121 to 123. When the calculation result of the fourth cycle is obtained, the 128-bit calculation result is supplied and copied to the state vector registers 11 to 14 through the feedback loop, thereby completing one unit of processing.
このような1単位の処理を、鍵の長さが128ビットの基本モードの場合には11回、鍵の長さが192ビットの場合には13回、鍵の長さが256ビットの場合には15回実行することにより、1テキスト・ブロックの暗号化又は復号化処理が終了する。従って、1テキスト・ブロックの暗号化又は復号化処理のために、鍵の長さが128ビットの基本モードの場合には44サイクル、鍵の長さが192ビットの場合には52サイクル、鍵の長さが256ビットの場合には60サイクルを要することになる。 One unit of processing is performed 11 times when the key length is 128 bits in the basic mode, 13 times when the key length is 192 bits, and when the key length is 256 bits. Is executed 15 times, the encryption or decryption processing of one text block is completed. Therefore, for encryption or decryption processing of one text block, the key length is 44 cycles when the key length is 128 bits, and the key length is 192 bits when the key length is 52 cycles. If the length is 256 bits, 60 cycles are required.
図2に示す演算データパス回路においては、両端部分のみに順序論理回路(レジスタ)を用い、他の部分は組合せ論理回路及びメモリで構成しているので、ストリームで演算を行うことになり、時間的なロスが生じない。また、回路構成も簡素であり、基板面積を小さくすることができる。 In the arithmetic data path circuit shown in FIG. 2, sequential logic circuits (registers) are used only at both ends, and the other parts are composed of combinational logic circuits and memories. Loss does not occur. Further, the circuit configuration is simple and the substrate area can be reduced.
また、図2に示す演算データパス回路において、右端部分から左端部分への帰還ループは存在するが、局所的な帰還ループは存在しないので、回路構成に自由度がある。例えば、2ワード又は4ワードのデータを並列処理できるように組合せ論理回路の規模を拡張することにより、処理速度を2倍又は4倍にすることができる。その場合に、動作時に必要とされる処理スループットと消費電力との観点から、並列処理するワード数を変更するようにしても良い。 Further, in the arithmetic data path circuit shown in FIG. 2, there is a feedback loop from the right end portion to the left end portion, but there is no local feedback loop, so there is a degree of freedom in the circuit configuration. For example, the processing speed can be doubled or quadrupled by expanding the scale of the combinational logic circuit so that 2-word or 4-word data can be processed in parallel. In that case, the number of words to be processed in parallel may be changed from the viewpoint of processing throughput and power consumption required during operation.
図2に示す演算データパス回路における暗号化処理について、図1〜図3を参照しながら説明する。本実施形態においては、基本鍵語長128ビットの入力テキストが32ビット毎に4つのデータ群#0〜#3に分けられ、それぞれのステップにおいて、これらのデータ群#0〜#3に対応して4サイクルの処理が繰り返される。
The encryption process in the arithmetic data path circuit shown in FIG. 2 will be described with reference to FIGS. In the present embodiment, the input text having a basic key word length of 128 bits is divided into four
図3は、図2に示す演算データパス回路における暗号化処理を示すフローチャートである。まず、ステップS11において、図1に示す制御回路8が制御信号C1の値を設定することにより、セレクタ11〜14が、入力テキスト中の4つのデータ群#0〜#3を順次選択して、状態ベクタレジスタ21〜24にそれぞれ格納させる。
FIG. 3 is a flowchart showing encryption processing in the arithmetic data path circuit shown in FIG. First, in step S11, the
ステップS12において、制御信号C6に従ってダイレクトワードセレクタ32から順次出力される4つのデータ群#0〜#3を用いて、前処理が行われる。即ち、第1のメインセレクタ60において、ダイレクトワードセレクタ32から出力されるデータが選択され、第2のメインセレクタ80において、XOR70から出力されるデータが選択され、第3のメインセレクタ110において、第2のメインセレクタ80から出力されるデータが選択される。
In step S12, preprocessing is performed using four
第1〜第3のデータ群#0〜#2の処理中においては、セレクタ11〜14及び状態ベクタレジスタ21〜24の現状が維持され、それぞれの演算結果が、一時ベクタレジスタ121〜123に順次格納される。第4のデータ群#3の処理中においては、一時ベクタレジスタ121〜123の現状が維持され、帰還ループを介してセレクタ11〜14に供給される4つのデータ群#0〜#3が、状態ベクタレジスタ21〜24にコピーされる。
During the processing of the first to third
ステップS13〜S14において、暗号化処理が行われる。
ステップS13において、制御信号C3に従って第1のシフト及びセレクト回路31からライン#0〜#3のデータが順次出力され、第1の変換テーブル51を参照することによりデータ変換が施される。即ち、セレクタ42において、第1のシフト及びセレクト回路31から出力されるデータが選択され、第1のメインセレクタ60において、第1の変換テーブル51から出力されるデータが選択され、第2のメインセレクタ80において、第1のメインセレクタ60から出力されるデータが選択され、第3のメインセレクタ110において、XOR100から出力されるデータが選択される。ここで、XOR100は、列混合回路90においてMixcolumns処理が施されたデータと、ラウンド鍵との排他的論理和を求めている。
In steps S13 to S14, an encryption process is performed.
In step S13, the data of
第1〜第3のデータ群#0〜#2の処理中においては、セレクタ11〜14及び状態ベクタレジスタ21〜24の現状が維持され、それぞれの演算結果が、一時ベクタレジスタ121〜123に順次格納される。第4のデータ群#3の処理中においては、一時ベクタレジスタ121〜123の現状が維持され、帰還ループを介してセレクタ11〜14に供給される4つのデータ群#0〜#3が、状態ベクタレジスタ21〜24にコピーされる。
During the processing of the first to third
ステップS14において、4つのデータ群#0〜#3のそれぞれについて所定の回数の処理が終了したか否かが判定される。ここで、所定の回数とは、基本鍵語長が128ビットの場合には8回であり、基本鍵語長が192ビットの場合には10回であり、基本鍵語長が256ビットの場合には12回である。所定の回数の処理が終了していない場合には、処理がステップS13に戻って暗号化処理が繰り返され、所定の回数の処理が終了した場合には、処理がステップS15に移行する。
In step S14, it is determined whether or not a predetermined number of processes have been completed for each of the four
ステップS15において、制御信号C3に従って第1のシフト及びセレクト回路31から順次出力されるライン#0〜#3のデータを用いて、後処理が行われる。即ち、セレクタ42において、第1のシフト及びセレクト回路31から出力されるデータが選択され、第1のメインセレクタ60において、第1の変換テーブル51から出力されるデータが選択され、第2のメインセレクタ80において、XOR70から出力されるデータが選択され、第3のメインセレクタ110において、第2のメインセレクタ80から出力されるデータが選択される。
In step S15, post-processing is performed using data of
第1〜第3のデータ群#0〜#2の処理中においては、セレクタ11〜14及び状態ベクタレジスタ21〜24の現状が維持され、それぞれの演算結果が、一時ベクタレジスタ121〜123に順次格納される。第4のデータ群#3の処理中においては、一時ベクタレジスタ121〜123の現状が維持され、帰還ループを介してセレクタ11〜14に供給される4つのデータ群#0〜#3が、状態ベクタレジスタ21〜24にコピーされる。
During the processing of the first to third
ステップS16において、第1のメインセレクタ60から、暗号化処理されたテキストが出力される。即ち、セレクタ11〜14及び状態ベクタレジスタ21〜24の現状が維持され、ダイレクトワードセレクタ32において、状態ベクタレジスタ21〜24から出力される第1〜第4のデータ群#0〜#3が順次選択され、第1のメインセレクタ60において、ダイレクトワードセレクタ32から出力されるデータが選択される。
In step S 16, the encrypted text is output from the first
図2に示す演算データパス回路における復号化処理について、図1、図2、図4を参照しながら説明する。本実施形態においては、基本鍵語長128ビットの入力テキストが32ビット毎に4つのデータ群#0〜#3に分けられ、それぞれのステップにおいて、これらのデータ群#0〜#3に対応して4サイクルの処理が繰り返される。
Decoding processing in the arithmetic data path circuit shown in FIG. 2 will be described with reference to FIGS. In the present embodiment, the input text having a basic key word length of 128 bits is divided into four
図4は、図2に示す演算データパス回路における復号化処理を示すフローチャートである。まず、ステップS21において、図1に示す制御回路8が制御信号C1の値を設定することにより、セレクタ11〜14が、入力テキスト中の4つのデータ群#0〜#3を順次選択して、状態ベクタレジスタ21〜24にそれぞれ格納させる。
FIG. 4 is a flowchart showing a decoding process in the arithmetic data path circuit shown in FIG. First, in step S21, the
ステップS22において、制御信号C6に従ってダイレクトワードセレクタ32から順次出力される4つのデータ群#0〜#3を用いて、前処理が行われる。即ち、第1のメインセレクタ60において、ダイレクトワードセレクタ32から出力されるデータが選択され、第2のメインセレクタ80において、XOR70から出力されるデータが選択され、第3のメインセレクタ110において、第2のメインセレクタ80から出力されるデータが選択される。
In step S22, preprocessing is performed using the four
第1〜第3のデータ群#0〜#2の処理中においては、セレクタ11〜14及び状態ベクタレジスタ21〜24の現状が維持され、それぞれの演算結果が、一時ベクタレジスタ121〜123に順次格納される。第4のデータ群#3の処理中においては、一時ベクタレジスタ121〜123の現状が維持され、帰還ループを介してセレクタ11〜14に供給される4つのデータ群#0〜#3が、状態ベクタレジスタ21〜24にコピーされる。
During the processing of the first to third
ステップS23〜S24において、復号化処理が行われる。
ステップS23において、制御信号C4に従って第2のシフト及びセレクト回路32からライン#0〜#3のデータが順次出力され、第2の変換テーブル52を参照することによりデータ変換が施される。即ち、セレクタ42において、第2のシフト及びセレクト回路32から出力されるデータが選択され、第1のメインセレクタ60において、第2の変換テーブル52から出力されるデータが選択され、第2のメインセレクタ80において、XOR70から出力されるデータが選択され、第3のメインセレクタ110において、列混合回路90においてInvMixcolumns処理が施されたデータが選択される。ここで、XOR70は、第1のセレクタ60から出力されるデータと、ラウンド鍵との排他的論理和を求めている。
In steps S23 to S24, a decoding process is performed.
In step S23, the data of
第1〜第3のデータ群#0〜#2の処理中においては、セレクタ11〜14及び状態ベクタレジスタ21〜24の現状が維持され、それぞれの演算結果が、一時ベクタレジスタ121〜123に順次格納される。第4のデータ群#3の処理中においては、一時ベクタレジスタ121〜123の現状が維持され、帰還ループを介してセレクタ11〜14に供給される4つのデータ群#0〜#3が、状態ベクタレジスタ21〜24にコピーされる。
During the processing of the first to third
ステップS24において、4つのデータ群#0〜#3のそれぞれについて所定の回数の処理が終了したか否かが判定される。ここで、所定の回数とは、基本鍵語長が128ビットの場合には8回であり、基本鍵語長が192ビットの場合には10回であり、基本鍵語長が256ビットの場合には12回である。所定の回数の処理が終了していない場合には、処理がステップS23に戻って復号化処理が繰り返され、所定の回数の処理が終了した場合には、処理がステップS25に移行する。
In step S24, it is determined whether or not a predetermined number of processes have been completed for each of the four
ステップS25において、制御信号C4に従って第2のシフト及びセレクト回路33から順次出力されるライン#0〜#3のデータを用いて、後処理が行われる。即ち、セレクタ42において、第2のシフト及びセレクト回路33から出力されるデータが選択され、第1のメインセレクタ60において、第2の変換テーブル52から出力されるデータが選択され、第2のメインセレクタ80において、XOR70から出力されるデータが選択され、第3のメインセレクタ110において、第2のメインセレクタ80から出力されるデータが選択される。
In step S25, post-processing is performed using data of
第1〜第3のデータ群#0〜#2の処理中においては、セレクタ11〜14及び状態ベクタレジスタ21〜24の現状が維持され、それぞれの演算結果が、一時ベクタレジスタ121〜123に順次格納される。第4のデータ群#3の処理中においては、一時ベクタレジスタ121〜123の現状が維持され、帰還ループを介してセレクタ11〜14に供給される4つのデータ群#0〜#3が、状態ベクタレジスタ21〜24にコピーされる。
During the processing of the first to third
ステップS26において、第1のメインセレクタ60から、復号化処理されたテキストが出力される。即ち、セレクタ11〜14及び状態ベクタレジスタ21〜24の現状が維持され、ダイレクトワードセレクタ32において、状態ベクタレジスタ21〜24から出力される第1〜第4のデータ群#0〜#3が順次選択され、第1のメインセレクタ60において、ダイレクトワードセレクタ32から出力されるデータが選択される。
In step S <b> 26, the decrypted text is output from the first
次に、本発明の一実施形態において用いられる演算データパス回路の変形例について説明する。
図5は、本発明の一実施形態において用いられる演算データパス回路の変形例を示す詳細なブロック図である。この演算データパス回路は、図2に示す演算データパス回路の中間部分に、パイプラインレジスタ130を挿入したものである。
Next, a modified example of the arithmetic data path circuit used in one embodiment of the present invention will be described.
FIG. 5 is a detailed block diagram showing a modification of the arithmetic data path circuit used in the embodiment of the present invention. This arithmetic data path circuit has a
図5に示すように、32ビット幅のパイプラインレジスタ130を第1のメインセレクタ60の直後に挿入することによって、前処理、暗号化処理、復号化処理、及び、後処理の各フェーズにおいて2段パイプライン処理を実現することができるので、動作速度の向上が見込まれる。このように、本発明によれば、中間レジスタを適宜挿入することによってデータパスをパイプライン化できるので、演算データパス回路における処理速度をマイクロプロセッサの動作周波数に合わせて容易に高めることが可能である。
As shown in FIG. 5, by inserting a 32-bit
1 マイクロプロセッサ、 2 アクセラレータ、 3 バッファメモリ、 4 仮想インタフェース、 5 コプロセッサ・モジュール、 6 レジスタ、 7 演算データパス回路、 8 制御回路、 11〜14、42 セレクタ、 21〜24 状態ベクタレジスタ、 31 第1のシフト及びセレクト回路、 32 ダイレクトワードセレクタ、 33 第2のシフト及びセレクト回路、 41 転置処理回路、 51 第1の変換テーブル、 52 第2の変換テーブル、 60 第1のメインセレクタ、 70、100 XOR回路、 80 第2のメインセレクタ、 90 列混合回路、 110 第3のメインセレクタ、 121〜123 一時ベクタレジスタ、 130 パイプラインレジスタ 1 microprocessor, 2 accelerator, 3 buffer memory, 4 virtual interface, 5 coprocessor module, 6 registers, 7 arithmetic data path circuit, 8 control circuit, 11-14, 42 selector, 21-24 status vector register, 31st 1 shift and select circuit, 32 direct word selector, 33 second shift and select circuit, 41 transposition processing circuit, 51 first conversion table, 52 second conversion table, 60 first main selector, 70, 100 XOR circuit, 80 second main selector, 90 column mixing circuit, 110 third main selector, 121-123 temporary vector register, 130 pipeline register
Claims (8)
入力されるテキストに含まれているデータのビット長を分割して得られる複数の入力データ群と帰還ループを介して供給される複数の帰還データ群との内の一方を制御信号に従って選択する選択回路と、
前記選択回路から出力される複数のデータ群を格納する格納回路と、
制御信号に従って、前処理として、前記格納回路から出力される複数の入力データ群と前記マイクロプロセッサによって生成された少なくとも1つの鍵とを順次用いて演算を行うことにより複数の帰還データ群を生成して前記帰還ループに供給すると共に、その後、前記格納回路から出力される複数の帰還データ群を順次用いて行った演算結果を変換テーブルを参照して変換することにより複数の入力データ群に対して暗号化又は復号化処理を施し、変換されたデータと前記マイクロプロセッサによって生成された少なくとも1つの鍵とを順次用いて演算を行うことにより複数の帰還データ群を生成して前記帰還ループに供給する論理回路と、
を具備する半導体集積回路。 A microprocessor that operates based on software and generates at least one key and a plurality of control signals used in cryptographic processing;
Selection that selects one of a plurality of input data groups obtained by dividing the bit length of data included in the input text and a plurality of feedback data groups supplied via a feedback loop according to a control signal Circuit,
A storage circuit for storing a plurality of data groups output from the selection circuit;
According to the control signal, as a pre-processing, a plurality of feedback data groups are generated by performing an operation by sequentially using a plurality of input data groups output from the storage circuit and at least one key generated by the microprocessor. To the feedback loop, and then, with respect to the plurality of input data groups by converting the calculation results obtained by sequentially using the plurality of feedback data groups output from the storage circuit with reference to the conversion table A plurality of feedback data groups are generated by performing an operation using encryption or decryption processing, sequentially using the converted data and at least one key generated by the microprocessor, and supplying the plurality of feedback data groups to the feedback loop Logic circuit;
A semiconductor integrated circuit comprising:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005052602A JP2006235440A (en) | 2005-02-28 | 2005-02-28 | Semiconductor integrated circuit |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005052602A JP2006235440A (en) | 2005-02-28 | 2005-02-28 | Semiconductor integrated circuit |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2006235440A true JP2006235440A (en) | 2006-09-07 |
Family
ID=37043120
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005052602A Withdrawn JP2006235440A (en) | 2005-02-28 | 2005-02-28 | Semiconductor integrated circuit |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2006235440A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009135813A (en) * | 2007-11-30 | 2009-06-18 | Ricoh Co Ltd | An encryption / decryption device and a computer-readable storage medium storing an encryption / decryption program. |
| JP2017044757A (en) * | 2015-08-24 | 2017-03-02 | 富士電機株式会社 | Information processing device and information processing method |
-
2005
- 2005-02-28 JP JP2005052602A patent/JP2006235440A/en not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009135813A (en) * | 2007-11-30 | 2009-06-18 | Ricoh Co Ltd | An encryption / decryption device and a computer-readable storage medium storing an encryption / decryption program. |
| JP2017044757A (en) * | 2015-08-24 | 2017-03-02 | 富士電機株式会社 | Information processing device and information processing method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Mangard et al. | A highly regular and scalable AES hardware architecture | |
| US7295671B2 (en) | Advanced encryption standard (AES) hardware cryptographic engine | |
| US7760871B2 (en) | Block cipher using auxiliary transformation | |
| EP2356771B1 (en) | Low latency block cipher | |
| Samir et al. | ASIC and FPGA comparative study for IoT lightweight hardware security algorithms | |
| Chu et al. | Low area memory-free FPGA implementation of the AES algorithm | |
| EP2058781B1 (en) | Encryption device, encryption method, and computer program | |
| Rahimunnisa et al. | FPGA implementation of AES algorithm for high throughput using folded parallel architecture | |
| Satoh et al. | Hardware-focused performance comparison for the standard block ciphers aes, camellia, and triple-des | |
| JP2005004048A (en) | Key-expanding apparatus, key expansion method, and key expansion program | |
| KR20050078271A (en) | Hardware cryptographic engine and method improving power consumption and operation speed | |
| Nadjia et al. | Aes ip for hybrid cryptosystem rsa-aes | |
| US6931127B2 (en) | Encryption device using data encryption standard algorithm | |
| Paar et al. | New designs in lightweight symmetric encryption | |
| Sever et al. | A high speed ASIC implementation of the Rijndael algorithm | |
| KR20030051111A (en) | Round processing circuit and on-line round key generation circuit for the hardware implementation of AES Rijndael cipher algorithm | |
| US20100138648A1 (en) | Information processing apparatus | |
| Rais et al. | A novel FPGA implementation of AES-128 using reduced residue of prime numbers based S-Box | |
| Gomes et al. | A fast cryptography pipelined hardware developed in FPGA with VHDL | |
| Bajaj et al. | AES algorithm for encryption | |
| Panato et al. | An IP of an Advanced Encryption Standard for Altera/spl trade/devices | |
| JP2006235440A (en) | Semiconductor integrated circuit | |
| Valasa et al. | On-the-fly key generation based VLSI implementation of advanced encryption standard | |
| Thirer | A pipelined FPGA implementation of an encryption algorithm based on genetic algorithm | |
| Li et al. | A new compact architecture for AES with optimized ShiftRows operation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070404 |
|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080513 |