+

JP2006235440A - Semiconductor integrated circuit - Google Patents

Semiconductor integrated circuit Download PDF

Info

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
Application number
JP2005052602A
Other languages
Japanese (ja)
Inventor
Koji Hashimoto
浩二 橋本
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005052602A priority Critical patent/JP2006235440A/en
Publication of JP2006235440A publication Critical patent/JP2006235440A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】AES方式の暗号化及び復号化における処理を、論理回路を中心とするハードウェアと、ソフトウェアに基づいて動作するマイクロプロセッサとに分担させることによって、所望の処理スループットを実現しつつ回路規模又は消費電力を低減した半導体集積回路を提供する。
【解決手段】半導体集積回路で、暗号処理において用いられる少なくとも1つの鍵及び複数の制御信号を生成するマイクロプロセッサと、複数の入力データ群と複数の帰還データ群との内の一方を選択する選択回路と、選択回路から出力される複数のデータ群を格納する格納回路と、前処理として複数の帰還データ群を生成して帰還ループに供給すると共に、その後、複数の帰還データ群を順次用いて行った演算結果を変換テーブルを参照して変換することにより複数の入力データ群に対して暗号化又は復号化処理を施す論理回路とを具備する。
【選択図】図2
A 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. Patent Document 1 below discloses a cryptographic circuit capable of reducing the circuit scale and realizing a certain level of high-speed processing when an AES cryptographic circuit is mounted.

この暗号回路の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日検索)
特開2003−15522号公報(第1、3頁、図4)
In Patent Document 1, it is assumed that AES encryption is incorporated into a smart card (page 3, paragraph 0014). Some general-purpose processors for personal computers (PCs) have built-in hardware for AES encryption processing. For example, a C3 processor manufactured by VIA Technology (Taiwan) incorporates an AES encryption processing engine named PadLock. For details on PadLock, please refer to the VIA Technology website (Internet <URL: http://www.via.com.tw/en/products/processors/c3/>, search February 4, 2005)
Japanese Patent Laid-Open No. 2003-15522 (first and third pages, FIG. 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 microprocessor 1 that operates based on software, and an accelerator 2 that includes a logic circuit that performs hardware processing and a memory. The microprocessor 1 and the accelerator 2 cooperate to perform AES encryption and decryption processing.

また、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 buffer memory 3 for storing the round key is provided in the microprocessor 1. It is desirable to provide outside. The buffer memory 3 is a ring buffer memory in which reading and writing are each performed in only one direction, and the access address is incremented or decremented sequentially, and is a kind of FIFO. Writing to the buffer memory 3 is performed by the microprocessor 1 and reading is performed by the accelerator 2. Each memory line of the buffer memory 3 is composed of parallel 32 bits.

本実施形態において、アクセラレータ2は、マイクロプロセッサ1の近傍に配置されており、マイクロプロセッサ1から見ると、アクセラレータ2は、記憶階層的には主記憶装置よりも上位、かつ、マイクロプロセッサ1の内部のレジスタよりも下位に位置する。即ち、アクセラレータ2とマイクロプロセッサ1との間のアクセスは、マイクロプロセッサ1の内部のレジスタよりも低速になるが、主記憶装置よりも高速になる。   In the present embodiment, the accelerator 2 is disposed in the vicinity of the microprocessor 1, and when viewed from the microprocessor 1, the accelerator 2 is higher than the main storage device in terms of the storage hierarchy, and is located inside the microprocessor 1. It is located lower than the register. In other words, the access between the accelerator 2 and the microprocessor 1 is slower than the internal register of the microprocessor 1 but faster than the main memory.

一例として、アクセラレータ2は、AES方式の暗号処理を支援するためのIP(intellectual property:インテレクチュアル・プロパティ)として構成される。ここで、IPとは、所定の機能を実現するための一群の回路ブロックをいう。また、アクセラレータ2は、システムLSIに内蔵されるマイクロプロセッサ1の近傍、例えば、コプロセッサ・インタフェースに配置するのに適している。   As an example, the accelerator 2 is configured as an IP (intellectual property) for supporting AES encryption processing. Here, IP refers to a group of circuit blocks for realizing a predetermined function. Further, the accelerator 2 is suitable for being arranged in the vicinity of the microprocessor 1 built in the system LSI, for example, in a coprocessor interface.

即ち、アクセラレータ2が、テキスト入出力、制御、及び、ラウンド鍵入力のための仮想インタフェース4として働くことにより、コプロセッサ・モジュール5が実現され、マイクロプロセッサ1からは、コプロセッサ・モジュール5がレジスタ型インタフェースとして見える。   That is, the accelerator 2 functions as a virtual interface 4 for text input / output, control, and round key input, thereby realizing a coprocessor module 5. From the microprocessor 1, the coprocessor module 5 is registered. It looks as a type interface.

図1に示すように、アクセラレータ2は、入力されるデータ及び出力すべきデータを一時的に格納するためのレジスタ6と、AES方式の暗号処理に関するハードウェア演算を行う演算データパス回路7と、演算データパス回路7における演算動作を制御したりラウンド鍵の入力を制御する制御回路8とを含んでいる。本発明においては、AES方式の暗号処理に関する全ての演算をハードウェア化するのではなく、最も演算量の割合が大きいテキスト処理については完全にアクセラレータ2により自動的に処理を行うが、鍵拡張(ラウンド鍵生成)処理については付随的なものとみなしてソフトウェア処理を行う。   As shown in FIG. 1, the accelerator 2 includes a register 6 for temporarily storing input data and data to be output, an arithmetic data path circuit 7 that performs hardware arithmetic regarding AES encryption processing, And a control circuit 8 for controlling the calculation operation in the calculation data path circuit 7 and controlling the input of the round key. In the present invention, all computations related to AES encryption processing are not implemented in hardware, but text processing with the largest computation amount is automatically performed by the accelerator 2, but key expansion ( The round key generation process is regarded as incidental and software processing is performed.

図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 data path circuit 7, 32 bits are used as a basic arithmetic unit. Accordingly, the 128-bit input text is input to the arithmetic data path circuit 7 over 4 cycles. In the present embodiment, one word is composed of 32-bit data. In FIG. 2, the thick line represents 128-bit data, and the thin line represents 32-bit data.

演算データパス回路7において、4つのセレクタ11〜14は、制御信号C1に従って、入力テキスト、又は、一時ベクタレジスタ(Temporary Vector Register)121〜123等から帰還ループを介して帰還されるデータを選択する。最初に、入力テキストが選択され、128ビット(32ビット×4サイクル)の入力テキスト(svin)が、これらのセレクタ11〜14によって順次選択される。   In the arithmetic data path circuit 7, the four selectors 11 to 14 select data to be fed back from the input text or the temporary vector registers 121 to 123 through the feedback loop according to the control signal C 1. . First, an input text is selected, and a 128-bit (32 bits × 4 cycles) input text (svin) is sequentially selected by these selectors 11-14.

具体的には、制御信号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 selector 11 selects data [127: 96], the selector 12 selects data [95:64], the selector 13 selects data [63:32], and the selector 14 selects data [31:00]. Here, [n: m] means data of bit numbers n to m. In this embodiment, in general, the bit number of the least significant bit is set to “0”, and the bit number is counted toward the upper bit.

セレクタ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 control signal C 4, one line is selected from four lines obtained by dividing the converted 128-bit data into four, and is output to the first main selector 60. Here, InvShiftRows conversion refers to reverse conversion of ShiftRows conversion performed in the AES decoding process.

一方、制御信号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 selector 42 and the transposition processing circuit (RotWord) 41. The transposition processing circuit 41 performs RotWord processing described in chapters 2.2 and 5.2 of the AES specification on the 32-bit data, that is, one word data. Here, RotWord refers to a function of extracting 4 bytes (1 word) of data and performing a cyclic transposition process in the key expansion process. Specifically, 32-bit data is rotated by 8 bits in the left direction (MSB direction).

セレクタ42は、制御信号C5に従って、状態ベクタレジスタ21〜24の内の1つから出力される1ワードのデータと、第1のシフト及びセレクト回路31において選択された1ラインのデータと、転置処理回路41によって巡回的な転置処理が行われた1ワードのデータとの内から32ビットのデータを選択して、選択されたデータを第1の変換テーブル(S-box)51に出力する。   The selector 42 performs one-word data output from one of the state vector registers 21 to 24 according to the control signal C5, one line of data selected by the first shift and select circuit 31, and transposition processing. The 32-bit data is selected from the one-word data subjected to the cyclic transposition processing by the circuit 41, and the selected data is output to the first conversion table (S-box) 51.

第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 main selector 60.

第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 select circuit 33 is input to a second conversion table (InvS-box) 52. The second conversion table (InvS-box) 52 is a non-linear substitution processing table used for performing 1: 1 substitution processing of byte values in the AES decoding process. The second conversion table 52 is realized, for example, by arranging four ROMs using an 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 second conversion table 52 is input to the first main selector 60.

第1のメインセレクタ60は、第1の変換テーブル51から出力される1ワードのデータと、ダイレクトワードセレクタ32から出力される1ワードのデータと、第2の変換テーブル52から出力される1ワードのデータとの内から、制御信号C7に従って1ワードのデータを選択し、選択された1ワードのデータを、エクスクルーシブOR(XOR)回路70及び第2のメインセレクタ80に出力すると共に、128ビット(32ビット×4サイクル)の出力テキスト(svout)として順次出力する。   The first main selector 60 includes 1-word data output from the first conversion table 51, 1-word data output from the direct word selector 32, and 1-word output from the second conversion table 52. The data of 1 word is selected from the data of 1 in accordance with the control signal C7, the selected 1 word of data is output to the exclusive OR (XOR) circuit 70 and the second main selector 80, and 128 bits ( It is output sequentially as output text (svout) of 32 bits × 4 cycles.

図1に示す制御回路8は、制御信号C1〜S10と共に、32ビットのラウンド鍵(rdkey)を演算データパス回路7に供給する。XOR回路70は、復号化処理及び前処理/後処理において、第1のメインセレクタ60から出力されるデータとラウンド鍵との排他的論理和を求めて、第2のメインセレクタ80に出力する。   The control circuit 8 shown in FIG. 1 supplies a 32-bit round key (rdkey) to the arithmetic data path circuit 7 together with the control signals C1 to S10. The XOR circuit 70 obtains an exclusive OR of the data output from the first main selector 60 and the round key in the decryption process and the pre-process / post-process, and outputs the exclusive OR to the second main selector 80.

第2のメインセレクタ80は、制御信号C8に従って、第1のメインセレクタ60から出力されるデータとXOR回路70から出力されるデータとの内の一方を選択し、選択されたデータを、列混合回路(MixCol & InvMixCol)90及び第3のメインセレクタ110に出力する。   The second main selector 80 selects one of the data output from the first main selector 60 and the data output from the XOR circuit 70 in accordance with the control signal C8, and the selected data is subjected to column mixing. Output to the circuit (MixCol & InvMixCol) 90 and the third main selector 110.

列混合回路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 column mixing circuit 90 converts the input data into MixColumns conversion described in chapters 2.2 and 5.1.3 of the AES specification, and chapters 2.2 and 5.3 of the AES specification. Perform one of the InvMixColumns conversions described in Chapter 3. Here, MixColumns conversion refers to conversion in which all columns in a state are taken and a new column is created by mixing these data in an AES encryption process. InvMixColumns conversion refers to reverse conversion of MixColumns conversion in the AES decoding process. Since the arithmetic expression for MixColumns conversion is included in the arithmetic expression for InvMixColumns conversion, the column mixing circuit 90 is integrated into one circuit. The column mixing circuit 90 outputs MixColumns-converted data to the input data to the XOR circuit 100 and outputs InvMixColumns-converted data to the third main selector 110.

XOR回路100は、暗号化処理において、列混合回路90から出力されるMixColumns変換データとラウンド鍵との排他的論理和を求めて、第3のメインセレクタ110に出力する。第3のメインセレクタ110は、制御信号C9に従って、第2のメインセレクタ80から出力されるデータと、XOR回路100から出力されるデータと、列混合回路90から出力されるInvMixColumns変換データとの内の1つを、演算データパスにおける演算結果を表すデータとして選択し、選択されたデータを、96ビット幅の一時ベクタレジスタ121〜123、及び、帰還ループに順次出力する。   In the encryption process, the XOR circuit 100 obtains an exclusive OR of the MixColumns conversion data output from the column mixing circuit 90 and the round key, and outputs it to the third main selector 110. In accordance with the control signal C9, the third main selector 110 includes data output from the second main selector 80, data output from the XOR circuit 100, and InvMixColumns conversion data output from the column mixing circuit 90. Is selected as data representing the operation result in the operation data path, and the selected data is sequentially output to the 96-bit width temporary vector registers 121 to 123 and the feedback loop.

具体的には、制御信号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 temporary vector register 121, data [95:64] is stored in the temporary vector register 122, and data [63:32] is stored in the temporary vector register 123. ] And these data are sequentially supplied to the feedback loop together with the data [31:00] output directly to the feedback loop. Note that data storage in the temporary vector registers 121, 122, and 123 is individually controlled by the control signal C10. Data supplied to the selectors 11 to 14 through the feedback loop is sequentially copied to the state vector registers 21 to 24. Thereby, one cycle of processing is completed.

上記のような暗号化及び複号化処理においては、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 data groups # 0 to # 3 every 32 bits, and in each step, these data groups # 0 to # 3 correspond to these. The process of 4 cycles is repeated.

図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 control circuit 8 shown in FIG. 1 sets the value of the control signal C1, so that the selectors 11 to 14 sequentially select the four data groups # 0 to # 3 in the input text, Stored in the state vector registers 21 to 24, respectively.

ステップS12において、制御信号C6に従ってダイレクトワードセレクタ32から順次出力される4つのデータ群#0〜#3を用いて、前処理が行われる。即ち、第1のメインセレクタ60において、ダイレクトワードセレクタ32から出力されるデータが選択され、第2のメインセレクタ80において、XOR70から出力されるデータが選択され、第3のメインセレクタ110において、第2のメインセレクタ80から出力されるデータが選択される。   In step S12, preprocessing is performed using four data groups # 0 to # 3 sequentially output from the direct word selector 32 in accordance with the control signal C6. That is, the data output from the direct word selector 32 is selected in the first main selector 60, the data output from the XOR 70 is selected in the second main selector 80, and the data output from the XOR 70 is selected in the third main selector 110. The data output from the second main selector 80 is selected.

第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 data groups # 0 to # 2, the current states of the selectors 11 to 14 and the state vector registers 21 to 24 are maintained, and the respective operation results are sequentially stored in the temporary vector registers 121 to 123. Stored. During the processing of the fourth data group # 3, the current state of the temporary vector registers 121 to 123 is maintained, and the four data groups # 0 to # 3 supplied to the selectors 11 to 14 through the feedback loop are in the state. Copied to vector registers 21-24.

ステップ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 lines # 0 to # 3 are sequentially output from the first shift and select circuit 31 according to the control signal C3, and data conversion is performed by referring to the first conversion table 51. That is, the selector 42 selects the data output from the first shift and select circuit 31, the first main selector 60 selects the data output from the first conversion table 51, and the second main In the selector 80, data output from the first main selector 60 is selected, and in the third main selector 110, data output from the XOR 100 is selected. Here, the XOR 100 obtains an exclusive OR of the data subjected to the Mixcolumns processing in the column mixing circuit 90 and the round key.

第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 data groups # 0 to # 2, the current states of the selectors 11 to 14 and the state vector registers 21 to 24 are maintained, and the respective operation results are sequentially stored in the temporary vector registers 121 to 123. Stored. During the processing of the fourth data group # 3, the current state of the temporary vector registers 121 to 123 is maintained, and the four data groups # 0 to # 3 supplied to the selectors 11 to 14 through the feedback loop are in the state. Copied to vector registers 21-24.

ステップ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 data groups # 0 to # 3. Here, the predetermined number of times is 8 when the basic key word length is 128 bits, 10 times when the basic key word length is 192 bits, and the basic key word length is 256 bits. There are 12 times. If the predetermined number of processes has not been completed, the process returns to step S13 and the encryption process is repeated. If the predetermined number of processes have been completed, the process proceeds to step S15.

ステップ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 lines # 0 to # 3 sequentially output from the first shift and select circuit 31 according to the control signal C3. That is, the selector 42 selects the data output from the first shift and select circuit 31, the first main selector 60 selects the data output from the first conversion table 51, and the second main In the selector 80, data output from the XOR 70 is selected, and in the third main selector 110, data output from the second main selector 80 is selected.

第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 data groups # 0 to # 2, the current states of the selectors 11 to 14 and the state vector registers 21 to 24 are maintained, and the respective operation results are sequentially stored in the temporary vector registers 121 to 123. Stored. During the processing of the fourth data group # 3, the current state of the temporary vector registers 121 to 123 is maintained, and the four data groups # 0 to # 3 supplied to the selectors 11 to 14 through the feedback loop are in the state. Copied to vector registers 21-24.

ステップ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 main selector 60. That is, the current state of the selectors 11 to 14 and the state vector registers 21 to 24 is maintained, and in the direct word selector 32, the first to fourth data groups # 0 to # 3 output from the state vector registers 21 to 24 are sequentially supplied. The first main selector 60 selects the data output from the direct word selector 32.

図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 data groups # 0 to # 3 every 32 bits, and in each step, these data groups # 0 to # 3 correspond to these. The process of 4 cycles is repeated.

図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 control circuit 8 shown in FIG. 1 sets the value of the control signal C1, so that the selectors 11 to 14 sequentially select the four data groups # 0 to # 3 in the input text, Stored in the state vector registers 21 to 24, respectively.

ステップ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 data groups # 0 to # 3 sequentially output from the direct word selector 32 in accordance with the control signal C6. That is, the data output from the direct word selector 32 is selected in the first main selector 60, the data output from the XOR 70 is selected in the second main selector 80, and the data output from the XOR 70 is selected in the third main selector 110. The data output from the second main selector 80 is selected.

第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 data groups # 0 to # 2, the current states of the selectors 11 to 14 and the state vector registers 21 to 24 are maintained, and the respective operation results are sequentially stored in the temporary vector registers 121 to 123. Stored. During the processing of the fourth data group # 3, the current state of the temporary vector registers 121 to 123 is maintained, and the four data groups # 0 to # 3 supplied to the selectors 11 to 14 through the feedback loop are in the state. Copied to vector registers 21-24.

ステップ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 lines # 0 to # 3 are sequentially output from the second shift and select circuit 32 in accordance with the control signal C4, and data conversion is performed by referring to the second conversion table 52. That is, the selector 42 selects the data output from the second shift and select circuit 32, the first main selector 60 selects the data output from the second conversion table 52, and the second main In the selector 80, data output from the XOR 70 is selected, and in the third main selector 110, data that has been subjected to InvMixcolumns processing in the column mixing circuit 90 is selected. Here, the XOR 70 obtains an exclusive OR of the data output from the first selector 60 and the round key.

第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 data groups # 0 to # 2, the current states of the selectors 11 to 14 and the state vector registers 21 to 24 are maintained, and the respective operation results are sequentially stored in the temporary vector registers 121 to 123. Stored. During the processing of the fourth data group # 3, the current state of the temporary vector registers 121 to 123 is maintained, and the four data groups # 0 to # 3 supplied to the selectors 11 to 14 through the feedback loop are in the state. Copied to vector registers 21-24.

ステップ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 data groups # 0 to # 3. Here, the predetermined number of times is 8 when the basic key word length is 128 bits, 10 times when the basic key word length is 192 bits, and the basic key word length is 256 bits. There are 12 times. If the predetermined number of processes have not been completed, the process returns to step S23 and the decoding process is repeated. If the predetermined number of processes have been completed, the process proceeds to step S25.

ステップ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 lines # 0 to # 3 sequentially output from the second shift and select circuit 33 in accordance with the control signal C4. That is, the selector 42 selects the data output from the second shift and select circuit 33, the first main selector 60 selects the data output from the second conversion table 52, and the second main In the selector 80, data output from the XOR 70 is selected, and in the third main selector 110, data output from the second main selector 80 is selected.

第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 data groups # 0 to # 2, the current states of the selectors 11 to 14 and the state vector registers 21 to 24 are maintained, and the respective operation results are sequentially stored in the temporary vector registers 121 to 123. Stored. During the processing of the fourth data group # 3, the current state of the temporary vector registers 121 to 123 is maintained, and the four data groups # 0 to # 3 supplied to the selectors 11 to 14 through the feedback loop are in the state. Copied to vector registers 21-24.

ステップ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 main selector 60. That is, the current state of the selectors 11 to 14 and the state vector registers 21 to 24 is maintained, and in the direct word selector 32, the first to fourth data groups # 0 to # 3 output from the state vector registers 21 to 24 are sequentially supplied. The first main selector 60 selects the data output from the direct word selector 32.

次に、本発明の一実施形態において用いられる演算データパス回路の変形例について説明する。
図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 pipeline register 130 inserted in an intermediate portion of the arithmetic data path circuit shown in FIG.

図5に示すように、32ビット幅のパイプラインレジスタ130を第1のメインセレクタ60の直後に挿入することによって、前処理、暗号化処理、復号化処理、及び、後処理の各フェーズにおいて2段パイプライン処理を実現することができるので、動作速度の向上が見込まれる。このように、本発明によれば、中間レジスタを適宜挿入することによってデータパスをパイプライン化できるので、演算データパス回路における処理速度をマイクロプロセッサの動作周波数に合わせて容易に高めることが可能である。   As shown in FIG. 5, by inserting a 32-bit wide pipeline register 130 immediately after the first main selector 60, two phases are provided in each phase of preprocessing, encryption processing, decryption processing, and postprocessing. Since the stage pipeline processing can be realized, the operation speed is expected to be improved. As described above, according to the present invention, the data path can be pipelined by appropriately inserting the intermediate register, so that the processing speed in the arithmetic data path circuit can be easily increased according to the operating frequency of the microprocessor. is there.

本発明の一実施形態に係る半導体集積回路の構成を示すブロック図。1 is a block diagram showing a configuration of a semiconductor integrated circuit according to an embodiment of the present invention. 本発明の一実施形態における演算データパス回路を示すブロック図。The block diagram which shows the calculation data path circuit in one Embodiment of this invention. 図2に示す演算データパス回路における暗号化処理を示すフローチャート。The flowchart which shows the encryption process in the calculation data path circuit shown in FIG. 図2に示す演算データパス回路における復号化処理を示すフローチャート。3 is a flowchart showing a decoding process in the arithmetic data path circuit shown in FIG. 2. 本発明の一実施形態における演算データパス回路の変形例を示すブロック図。The block diagram which shows the modification of the arithmetic data path circuit in one Embodiment of this invention.

符号の説明Explanation of symbols

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つの鍵とを順次用いて演算を行うことにより複数の帰還データ群を生成して前記帰還ループに供給すると共に、その後、前記格納回路から出力される複数の帰還データ群を順次用いて行った演算結果を変換テーブルを参照して変換することにより複数の入力データ群に対して暗号化又は復号化処理を施し、変換されたデータと前記マイクロプロセッサによって生成された少なくとも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:
前記論理回路が、各々の帰還データ群を用いて行った演算結果を前記変換テーブルを参照して変換することと、変換されたデータと前記マイクロプロセッサによって生成された少なくとも1つの鍵とを用いて演算を行うことにより複数の帰還データ群を生成して前記帰還ループに供給することとを、所定の回数繰り返して行う、請求項1記載の半導体集積回路。   The logic circuit converts an 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. The semiconductor integrated circuit according to claim 1, wherein a plurality of feedback data groups are generated by operation and supplied to the feedback loop is repeated a predetermined number of times. 前記論理回路が、複数の入力データ群に対する暗号化又は復号化処理を終了する際に、後処理として、前記格納回路から出力される複数の帰還データ群を順次用いて行った演算結果を変換テーブルを参照して変換することにより、出力すべき複数のデータ群を生成する、請求項1又は2記載の半導体集積回路。   When the logic circuit finishes encryption or decryption processing for a plurality of input data groups, as a post-processing, a calculation result obtained by sequentially using a plurality of feedback data groups output from the storage circuit is converted into a conversion table. The semiconductor integrated circuit according to claim 1, wherein a plurality of data groups to be output are generated by converting with reference to FIG. 前記論理回路が、前記変換テーブルを参照して変換されたデータと前記マイクロプロセッサによって生成された少なくとも1つの鍵との排他的論理和を求める排他的論理和回路を含む、請求項1〜3のいずれか1項記載の半導体集積回路。   The logic circuit includes an exclusive OR circuit that calculates an exclusive OR of data converted with reference to the conversion table and at least one key generated by the microprocessor. The semiconductor integrated circuit according to any one of claims. 暗号化処理において用いられる変換テーブルを格納する第1のメモリ領域と、復号化処理において用いられる変換テーブルを格納する第2のメモリ領域とをさらに具備する、請求項1〜4のいずれか1項記載の半導体集積回路。   5. The apparatus according to claim 1, further comprising: a first memory area that stores a conversion table used in the encryption process; and a second memory area that stores a conversion table used in the decryption process. The semiconductor integrated circuit as described. 前記帰還ループに供給される少なくとも1つの帰還データ群を格納する第2の格納回路をさらに具備する、請求項1〜5のいずれか1項記載の半導体集積回路。   The semiconductor integrated circuit according to claim 1, further comprising a second storage circuit that stores at least one feedback data group supplied to the feedback loop. パイプライン処理を行うために前記論理回路の演算データパスの途中に挿入された第3の格納回路をさらに具備する、請求項6記載の半導体集積回路。   The semiconductor integrated circuit according to claim 6, further comprising a third storage circuit inserted in the middle of an arithmetic data path of the logic circuit to perform pipeline processing. 前記半導体集積回路が、AES(Advanced Encryption Standard)方式の暗号処理を行い、前記マイクロプロセッサが、AES方式の暗号処理において用いられるラウンド鍵を生成する、請求項1〜7のいずれか1項記載の半導体集積回路。   8. The semiconductor integrated circuit according to claim 1, wherein the semiconductor integrated circuit performs AES (Advanced Encryption Standard) encryption processing, and the microprocessor generates a round key used in AES encryption processing. Semiconductor integrated circuit.
JP2005052602A 2005-02-28 2005-02-28 Semiconductor integrated circuit Withdrawn JP2006235440A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载