JP4740611B2 - 可変キー長を有する初期ラウンドキーに対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させるキースケジュラ - Google Patents

可変キー長を有する初期ラウンドキーに対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させるキースケジュラ Download PDF

Info

Publication number
JP4740611B2
JP4740611B2 JP2005054965A JP2005054965A JP4740611B2 JP 4740611 B2 JP4740611 B2 JP 4740611B2 JP 2005054965 A JP2005054965 A JP 2005054965A JP 2005054965 A JP2005054965 A JP 2005054965A JP 4740611 B2 JP4740611 B2 JP 4740611B2
Authority
JP
Japan
Prior art keywords
key
key data
output
bits
round
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005054965A
Other languages
English (en)
Other versions
JP2005242366A (ja
Inventor
慶 門 安
美 貞 盧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2005242366A publication Critical patent/JP2005242366A/ja
Application granted granted Critical
Publication of JP4740611B2 publication Critical patent/JP4740611B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60LPROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
    • B60L8/00Electric propulsion with power supply from forces of nature, e.g. sun or wind
    • B60L8/006Converting flow of air into electric energy, e.g. by using wind turbines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
    • B60K16/00Arrangements in connection with power supply of propulsion units in vehicles from forces of nature, e.g. sun or wind
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
    • B60K16/00Arrangements in connection with power supply of propulsion units in vehicles from forces of nature, e.g. sun or wind
    • B60K2016/006Arrangements in connection with power supply of propulsion units in vehicles from forces of nature, e.g. sun or wind wind power driven
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2200/00Type of vehicle
    • B60Y2200/90Vehicles comprising electric prime movers
    • B60Y2200/91Electric vehicles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E10/00Energy generation through renewable energy sources
    • Y02E10/70Wind energy
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/60Other road transportation technologies with climate change mitigation effect
    • Y02T10/7072Electromobility specific charging systems or methods for batteries, ultracapacitors, supercapacitors or double-layer capacitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Sustainable Development (AREA)
  • Sustainable Energy (AREA)
  • Power Engineering (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Storage Device Security (AREA)

Description

本発明は、AES(Advanced Encryption Standards)アルゴリズムを利用する暗号化/復号化装置に係り、特に暗号化/復号化装置の暗号化及び復号化動作に必要なラウンドキーを生成するキースケジュラに関する。
最近、AESアルゴリズムがDES(Data Encryption Standard)アルゴリズムに続けて、新たな暗号化標準として提示されるにつれて、保安を必要とする応用製品でAESアルゴリズムが適用されている。AESアルゴリズムは、リアルタイムに入力されるデータストリームをブロック別に分けて暗号化するか、または復号化するブロック暗号アルゴリズムとして、一度に処理可能な1ブロックの長さは128ビットである。このようなAESアルゴリズムは、ソフトウェアで実現できるが、外部攻撃についての安全性を保障するためには、ハードウェアで実現することが望ましい。特に、高速動作が要求される応用製品では、ハードウェアで実現された暗号化/復号化装置が広く使われている。
通常、AESアルゴリズムを利用した暗号化は、サブバイト変換、シフトロー変換、ミックスカラム変換、及びアドラウンドキー変換過程により行われる。また、AESアルゴリズムを利用した復号化は、逆シフトロー変換、逆サブバイト変換、逆ミックスカラム変換、及びアドラウンドキー変換過程により行われる。暗号化または復号化のための前記変換過程が順次に一回ずついずれも行われる時に、1ラウンドが完了し、このラウンドが複数回反復的に行われることによって、データの暗号化または復号化が行われる。
暗号化及び復号化過程のうちアドラウンドキー変換過程では、以前の変換過程で処理されたブロック単位のデータが、キースケジュラにより生成されたラウンドキーと混合されることによって、最終的に暗号化されるか、または復号化されたデータストリームに変換される。ここで、キースケジュラによるラウンドキーの生成のために、キースケジュラに入力される初期入力キーは、128ビット、192ビット、256ビットの3種類のキー長を有する。初期入力キーの長さが長くなるほど、データはさらに高いレベルに暗号化できる。また、初期入力キーの長さによってラウンドの反復回数が決定される。即ち、暗号化/復号化装置は、初期入力キーの長さが128ビットである時に10ラウンド、192ビットである時に12ラウンド、256ビットである時に14ラウンドをそれぞれ反復的に行う。この際、キースケジュラは、暗号化/復号化装置がラウンドを行う度にラウンドキーを提供する必要がある。
一般的に、キースケジュラは、オンザフライ方式またはプリコンピューテーション方式で実現できる。オンザフライ方式は、データの暗号化または復号化過程と同時にラウンドキーを生成するものであって、ラウンドごとに必要なラウンドキーをその時その時生成して出力するものである。プリコンピューテーション方式は、全体ラウンドで使われるラウンドキーを予め生成してメモリに保存しておき、各ラウンドごとに必要なラウンドキーを前記メモリから読み取って出力するものである。
しかし、プリコンピューテーション方式によれば、予め生成されたラウンドキーを保存するための大容量のメモリが必要であり、各ラウンドごとにメモリからラウンドキーを読み取らなければならないので、暗号化/復号化装置の動作速度が減少するという短所がある。ここで、メモリに保存される全体ラウンドキーの大きさは、暗号化/復号化処理される一ブロックのビット数(128ビット×(ラウンド数+1))である。例えば、ラウンドキーが128ビットである場合にラウンド数は10であるので、メモリに保存される全体ラウンドキーの大きさは、1408(128×11)ビットである。これと類似に、ラウンドキーが192ビット、256ビットである場合には、全体ラウンドキーの大きさがそれぞれ1644(128×13)ビット、1920(128×15)ビットである。
ラウンドキーを保存する装置としてレジスタが使われると仮定すれば、ラウンドキーの長さが256ビットである場合、最小15000ゲート以上のハードウェアを使わなければならない。したがって、ハードウェアの浪費を減らしつつ、最高の動作性能を得るためには、キースケジュラをオンザフライ方式で実現する必要がある。キースケジュラをオンザフライ方式で実現する場合、データの暗号化/復号化動作と同時にキー生成を行うので電流消費は増加するが、全体ラウンドキーを保存する大容量のメモリをさらに備える必要がなく、かつ一つのラウンドキーを保存する空間のみ備えればよいので、ハードウェアの浪費を減らすことができる。
図1は、従来技術によるキースケジュラを備えるAESアルゴリズムを利用した暗号化/復号化装置を示すブロック図である。図1を参照すると、暗号化/復号化装置10は、制御部11、暗号キースケジュラ12、復号キースケジュラ13、及びブロックラウンド処理部14を含む。暗号キースケジュラ12は、外部から受信される第1初期ラウンドキーE_INKEYから暗号ラウンドキーR_KEYを生成して、ブロックラウンド処理部14に出力する。復号キースケジュラ13は、外部から受信される第2初期ラウンドキーD_INKEYから復号ラウンドキーIR_KEYを生成して、ブロックラウンド処理部14に出力する。
上記のように、従来技術による暗号キースケジュラと復号キースケジュラとは、それぞれ別個のハードウェアで実現されるので、その製造コストと大きさとが増加するという問題点がある。
一方、暗号キースケジュラ12と復号キースケジュラ13とは、暗号ラウンドキーと復号ラウンドキーとを生成する時、通常的にワード置換過程を行う。ワード置換過程において、前記暗号キースケジュラと前記復号キースケジュラとは、32ビットのキーデータを4個のワード(8ビット)に分離し、4個の置換テーブルを利用してキーデータの各ワードを所定値に置換する。ここで、第1初期ラウンドキE_INKEYの長さと第2初期ラウンドキーD_INKEYの長さとがそれぞれ256ビットである場合、暗号キースケジュラ12と復号キースケジュラ13とは、ワード置換過程を1クロックサイクルの間に2回行わねばならない。したがって、暗号キースケジュラ12と復号キースケジュラ13とは、それぞれ8個の同一の置換テーブルを備えねばならない。置換テーブルは、その実現方式によって、800ゲートから2200ゲートのハードウェアで実現できる。結局、8個の置換テーブルを実現するために、6400ゲートから17600ゲートのハードウェアが要求されるので、暗号キースケジュラ12と復号キースケジュラ13とにより全体暗号化/復号化装置の大きさが増加するという問題点がある。
本発明が解決しようとする課題は、単一のハードウェアで実現されて、可変キー長を有する初期ラウンドキーに対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させ、ラウンドキー生成動作に必要な置換テーブルの数を減少させて、全体大きさを減少させうるキースケジュラを提供することにある。
前記課題を解決するための本発明によるキースケジュラは、暗号化/復号化装置の暗号化または復号化動作に必要なラウンドキーを生成するキースケジュラにおいて、キー保存部、キー演算部、及びキー出力部を備えることを特徴とする。キー保存部は、ロードイネーブル信号とクロック信号とに応答して、演算キーデータと保存キーデータのうちいずれか一つを入力キーデータとして受信して保存し、保存された入力キーデータを保存キーデータとして出力する。キー演算部は、演算制御信号に応答して保存キーデータを演算し、その演算結果として演算キーデータを出力する。キー出力部は、出力制御信号に応答して、入力キーデータと保存キーデータのうち一部を選択して、暗号ラウンドキーまたは復号ラウンドキーとして出力する。
本発明によるキースケジュラは、初期ラウンドキー長に対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させ、ラウンドキー生成動作に必要な置換テーブルの数を減少させて、全体の大きさを縮めることができる。
また、本発明によるキースケジュラは、初期ラウンドキー長によって一部レジスタの出力信号がトグリングされることを防止して、消耗電流を減少させることができる。
本発明と、本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施例を例示する添付図面及び添付図面に記載された内容を参照しなければならない。
図2は、本発明によるキースケジュラを備える暗号化/復号化装置600のブロック図である。図2を参照すると、暗号化/復号化装置600は、制御部601、キースケジュラ700、及びブロックラウンド処理部602を含む。制御部601は、外部から受信されるキー情報信号KEY_LEGに基づいて、キースケジュラ700に入力される初期ラウンドキー長を判断する。また、制御部601は、外部から受信されるモード決定信号ENC_DECに基づいて、暗号動作モードであるかまたは復号動作モードであるかを判断する。制御部601は、判断結果によってクロック信号CLK、ロードイネーブル信号LD1、LD1B〜LD4、LD4B、内部選択信号M1〜M4、出力選択信号S1、S2、演算制御信号P1〜P4、及びラウンド制御信号RCTLを出力する。
キースケジュラ700は、外部から第1ないし第3初期ラウンドキーEIKEY1〜EIKEY3のうちいずれか一つを受信する。第1初期ラウンドキーEIKEY1の長さは128ビットであり、第2初期ラウンドキーEIKEY2の長さは192ビットであり、第3初期ラウンドキーEIKEY3の長さは256ビットである。キースケジュラ700は、クロック信号CLK、ロードイネーブル信号LD1、LD1B〜LD4、LD4B、内部選択信号M1〜M4、出力選択信号S1、S2、及び演算制御信号P1〜P4に応答して、第1ないし第3暗号ラウンドキーERKEY1〜ERKEY3のうちいずれか一つ、または第1ないし第3復号ラウンドキーDRKEY1〜DRKEY3のうちいずれか一つを発生させる。
ここで、初期ラウンドキ長によって、ブロックラウンド処理部602が暗号化または復号化のために反復しなければならないラウンドの数と、キースケジュラ700により発生する暗号ラウンドキまたは復号ラウンドキの個数とが決定される。
即ち、キースケジュラ700は、第1初期ラウンドキーEIKEY1を受信すれば、10ラウンドの間に10個の第1暗号ラウンドキーERKEY1または10個の第1復号ラウンドキーDRKEY1を発生させる。また、キースケジュラ700は、第2初期ラウンドキーEIKEY2を受信すれば、12ラウンドの間に12個の第2暗号ラウンドキーERKEY2または12個の第2復号ラウンドキーDRKEY2を発生させる。キースケジュラ700は、第3初期ラウンドキーEIKEY3を受信すれば、14ラウンドの間に14個の第3暗号ラウンドキーERKEY3または14個の第3復号ラウンドキーDRKEY3を発生させる。ここで、ブロックラウンド処理部602により処理される一つのデータブロック当りのビット数が128ビットと仮定すると、キースケジュラ700が各ラウンドごとに発生させる第1ないし第3暗号ラウンドキーERKEY1〜ERKEY3、または第1ないし第3復号ラウンドキーDRKEY1〜DRKEY3のビット数は、それぞれ128ビットである。
ブロックラウンド処理部602は、第1ないし第3初期ラウンドキーEIKEY1〜EIKEY3のうちいずれか一つと、第1ないし前記第3暗号ラウンドキーERKEY1〜ERKEY3のうちいずれか一つ、または第1ないし第3復号ラウンドキーDRKEY1〜DRKEY3のうちいずれか一つとを受信する。ブロックラウンド処理部602は、ラウンド制御信号RCTLに応答して入力ストリームデータSDAT_INをブロック別に分け、受信された暗号ラウンドキーERKEY1またはERKEY2またはERKEY3、または復号ラウンドキーDRKEY1またはDRKEY2またはDRKEY3と混合して暗号化するか、または復号化して出力ストリームデータSDAT_OUTを出力する。
ここで、ブロックラウンド処理部602は、暗号化または復号化のためのラウンドを複数回反復的に行い、キースケジュラ700は、ブロックラウンド処理部602の各ラウンドごとに必要な暗号ラウンドキーまたは復号ラウンドキーをその時その時生成して、ブロックラウンド処理部602に提供する。
図3は、本発明の一実施例によるキースケジュラを詳細に示すブロック図である。図3を参照すれば、キースケジュラ700は、キー保存部701、キー演算部702、及びキー出力部703を含む。
キー保存部701は、第1ないし第8ロードイネーブル回路711〜718と第1ないし第8レジスタ721〜728とを含む。第1ないし第8ロードイネーブル回路711〜718は、ロードイネーブル信号LD1、LD1B〜LD4、LD4Bに応答して、初期キーデータw[0]〜w[7]、演算キーデータc[8m]〜c[8m+7](mは自然数)、及び保存キーデータr[8n]〜r[8n+7](nは整数)のうちいずれか一つを選択して入力キーデータw[8n]〜w[8n+7](nは整数)としてそれぞれ出力する。ここで、初期キーデータw[0]〜w[7]が第1ないし第8ロードイネーブル回路711〜718に入力される時、キー演算部702は、演算キーデータc[8m]〜c[8m+7]を出力しない。
また、第1ないし第8ロードイネーブル回路711〜718に入力されるキーデータの数は、キースケジュラ700に入力される初期ラウンドキーによって決定される。さらに詳しくは、第1初期ラウンドキーEIKEY1が初期キーデータw[0]〜w[3]を含み、第2初期ラウンドキーEIKEY2が初期キーデータw[0]〜w[5]を含み、第3初期ラウンドキーEIKEY3が初期キーデータw[0]〜w[7]を含む。したがって、キースケジュラ700に第1初期ラウンドキーEIKEY1が入力される時、初期キーデータw[0]〜w[3]が第1ないし第4ロードイネーブル回路711〜714に入力される。また、キースケジュラ700に第2初期ラウンドキーEIKEY2が入力される時、初期キーデータw[0]〜w[5]が第1ないし第6ロードイネーブル回路711〜716に入力される。また、キースケジュラ700に第3初期ラウンドキーEIKEY3が入力される時、初期キーデータw[0]〜w[7]が第1ないし第8ロードイネーブル回路711〜718に入力される。
ロードイネーブル信号LD1、LD1Bは、第1及び第2ロードイネーブル回路711、712に印加され、ロードイネーブル信号LD2、LD2Bは、第3及び第4ロードイネーブル回路713、714に印加される。また、ロードイネーブル信号LD3、LD3Bは、第5及び第6ロードイネーブル回路715、716に印加され、ロードイネーブル信号LD4、LD4Bは、第7及び第8ロードイネーブル回路717、718に印加される。
第1ないし第8レジスタ721〜728は、クロック信号CLKに応答して入力キーデータw[8n]〜w[8n+7]をそれぞれ保存し、保存された入力キーデータw[8n]〜w[8n+7]を保存キーデータr[8n]〜r[8n+7]としてそれぞれ出力する。第1ないし第8ロードイネーブル回路711〜718と第1ないし第8レジスタ721〜728とは、図4を参照してさらに詳細に後述される。
キー演算部702は、第1ないし第8チェーン演算器731〜738、独立演算器739、第1ないし第3選択回路741〜743、ワードローテーション部751、ワード置換部752、及びラウンド定数発生器753を含む。
第1ないし第8チェーン演算器731〜738は、相互直列連結され、第1ないし第8レジスタ721〜728に対応するようにそれぞれ配置され、保存キーデータr[8n]〜r[8n+7]をそれぞれ受信する。第1ないし第8チェーン演算器731〜738は、保存キーデータr[8n]〜r[8n+7]と変換キーデータSUCとに応答して、演算キーデータc[8m]〜c[8m+7]をそれぞれ出力する。これをさらに詳細に説明すれば、第1チェーン演算器731は、変換キーデータSUCをさらに受信し、第2ないし第8チェーン演算器732〜738は、それぞれ第1ないし第7チェーン演算器731〜737から演算キーデータc[8m]〜c[8m+6]をさらに受信する。第1ないし第8チェーン演算器731〜738は、望ましく排他的OR演算動作を行う。即ち、第1チェーン演算器731は、保存キーデータr[8n]と変換キーデータSUCとを排他的OR演算し、その演算結果として演算キーデータc[8m]を出力する。第2ないし第8チェーン演算器732〜738は、保存キーデータr[8n+1]〜r[8n+7]と演算キーデータc[8m]〜c[8m+6]をそれぞれ排他的OR演算し、その演算結果として演算器キーデータc[8m+1]〜c[8m+7]を出力する。
独立演算器739は、置換キーデータSUBとラウンド定数RNCとを排他的OR演算して、変換キーデータSUCを出力する。
第1選択回路741は、制御部601(図2参照)から受信される演算制御信号P1に応答して、置換キーデータSUBと演算キーデータc[8m+3]のうちいずれか一つを第5チェーン演算器735に出力する。さらに詳細に説明すれば、第1選択回路741は、演算制御信号P1がイネーブルされる時、置換キーデータSUBを第5チェーン演算器735に出力し、演算制御信号P1がディセーブルされる時、演算キーデータc[8m+3]を第5チェーン演算器735に出力する。また、第2選択回路742は、制御部601から受信される演算制御信号P2、P3に応答して、出力キーデータx3、x5、x7のうちいずれか一つをワードローテーション部751に出力する。さらに詳細に説明すれば、演算制御信号P2、P3がいずれもディセーブルされる時、第2選択回路742は、出力キーデータx3をワードローテーション部751に出力する。演算制御信号P2がイネーブルされ、演算制御信号P3がディセーブルされる時、第2選択回路742は、出力キーデータx5をワードローテーション部751に出力する。また、演算制御信号P2がディセーブルされ、演算制御信号P3がイネーブルされる時、第2選択回路742は、出力キーデータx7をワードローテーション部751に出力する。第3選択回路743は、制御部601から受信される演算制御信号P4に応答して、演算キーデータc[8m+3]とローテーションキーデータROTのうちいずれか一つをワード置換部752に出力する。即ち、第3選択回路743は、演算制御信号P4がイネーブルされる時、演算キーデータc[8m+3]を出力し、前記演算制御信号P4がディセーブルされる時、ローテーションキーデータROTを出力する。第1ないし第3選択回路741〜743は、それぞれマルチプレクサで実現できる。
ワードローテーション部751は、第2選択回路742から出力キーデータx3、x5、x7のうちいずれか一つを受信する。ワードローテーション部751は、受信された前記出力キーデータx3またはx5またはx7のビットを8ビットだけローテーションし、ローテーションキーデータROTを出力する。ここで、ワードローテーション部751の動作は、当業者であれば理解できるので、ワードローテーション部751の詳細な動作説明は省略する。
次に、ワード置換部752は、第3選択回路743から前記演算キーデータc[8m+3]とローテーションキーデータROTのうちいずれか一つを受信する。ワード置換部752は、演算キーデータc[8m+3]とローテーションキーデータROTのうち受信されたいずれか一つを置換して、置換キーデータSUBを出力する。ここで、ワード置換部752は図示しなかったが、内部に4個の置換テーブルを含む。ワード置換部752は、演算キーデータc[8m+3]とローテーションキーデータROTのうち受信されたいずれか一つを、4個の置換テーブルに含まれた所定値にそれぞれ置換する。ラウンド定数発生器753は、ラウンド定数RNCを発生させる。
キー出力部703は、第1ないし第8内部選択回路761〜768と出力選択部770とを含む。第1ないし第8内部選択回路761〜768は、制御部601から受信される前記内部選択信号M1〜M4に応答して、入力キーデータw[8n]〜w[8n+7]と保存キーデータr[8n]〜r[8n+7]のうちいずれか一つを選択して、出力キーデータx0〜x7としてそれぞれ出力する。第1及び第2内部選択回路761、762に内部選択信号M1が入力され、第3及び第4内部選択回路763、764に内部選択信号M2が入力される。また、第5及び第6内部選択回路765、766に内部選択信号M3が入力され、第7及び第8内部選択回路767、768に内部選択信号M4が入力される。
第1及び第2内部選択回路761、762は、内部選択信号M1がイネーブルされる時、入力キーデータw[8n]、w[8n+1]を出力キーデータx0、x1としてそれぞれ出力する。また、第1及び第2内部選択回路761、762は、内部選択信号M1がディセーブルされる時、保存キーデータr[8n]、r[8n+1]を出力キーデータx0、x1としてそれぞれ出力する。これと類似に、第3ないし第8内部選択回路763〜768は、内部選択信号M2〜M4がイネーブルされる時、入力キーデータw[8n+2]〜w[8n+7]を出力キーデータx3〜x7としてそれぞれ出力する。また、第3ないし第8内部選択回路763〜768は、内部選択信号M2〜M4がディセーブルされる時、保存キーデータr[8n+2]〜r[8n+7]を出力キーデータx3〜x7としてそれぞれ出力する。ここで、第1ないし第8内部選択回路761〜768は、それぞれマルチプレクサで実現できる。
出力選択部770は、制御部601から受信される出力選択信号S1、S2に応答して出力キーデータx0〜x7のうち一部を選択して、第1ないし第3暗号ラウンドキーERKEY1〜ERKEY3のうちいずれか一つ、または第1ないし第3復号ラウンドキーDRKEY1〜DRKEY3のうちいずれか一つとして出力する。出力選択部770は、図5を参照してさらに詳細に後述される。
図4は、図3に示された第1及び第2ロードイネーブル回路と、第1及び第2レジスタ721、722とを詳細に示す図である。第3ないし第8ロードイネーブル回路713〜718の構成及び具体的な動作説明は、第1及び第2ロードイネーブル回路711、712と類似しているので省略する。また、第3ないし第8レジスタ723〜728の構成及び具体的な動作説明は、第1及び第2レジスタ721、722と類似しているので省略する。
図4を参照すると、第1ロードイネーブル回路711は、ANDゲート71、73とORゲート81とを含み、第2ロードイネーブル回路712は、ANDゲート72、74とORゲート82とを含む。ANDゲート71、72は、ロードイネーブル信号LD1と初期キーデータw[0]、w[1](または前記演算キーデータc[8m]、c[8m+1])とに応答して、第1論理信号T1、T2をそれぞれ出力する。また、ANDゲート73、74は、反転されたロードイネーブル信号LD1Bと保存キーデータr[0]、r[1](または保存キーデータr[8n]、r[8n+1])とに応答して、第2論理信号T3、T4を出力する。前記ORゲート81は、前記第1論理信号T1と前記第2論理信号T3とに応答して、入力キーデータw[0](またはw[8n])を出力する。ORゲート82は、第1論理信号T2と第2論理信号T4とに応答して、入力キーデータw[8n+1]を出力する。ここで、ロードイネーブル信号LD1がハイレバルにイネーブルされる時、ANDゲート71、72が初期キーデータw[0]、w[1](または前記演算キーデータc[8m]、c[8m+1])を第1論理信号T1、T2としてそれぞれ出力する。この際、反転されたロードイネーブル信号LD1Bがローレベルであるので、ANDゲート73、74は、第2論理信号T3、T4をローレベルに出力する。その結果、ORゲート81、82は、第1論理信号T1、T2を入力キーデータw[8n]、w[8n+1]としてそれぞれ出力する。
一方、ロードイネーブル信号LD1がローレベルにディセーブルされる時、ANDゲート71、72は、第1論理信号T1、T2をローレベルに出力する。また、反転されたロードイネーブル信号LD1Bがハイレバルであるので、ANDゲート73、74は、保存キーデータr[8n]、r[8n+1]を第2論理信号T3、T4として出力する。その結果、ORゲート81、82は、第2論理信号T3、T4を入力キーデータw[8n]、w[8n+1]としてそれぞれ出力する。したがって、第1及び第2ロードイネーブル回路711、712は、ロードイネーブル信号LD1がハイレバルにイネーブルされる時、初期キーデータw[0]、w[1](または前記演算キーデータc[8m]、c[8m+1])を入力キーデータw[8n]、w[8n+1]としてそれぞれ出力する。また、第1及び第2ロードイネーブル回路711、712は、前記ロードイネーブル信号LD1がローレベルにディセーブルされる時、保存キーデータr[8n]、r[8n+1]を入力キーデータw[8n]、w[8n+1]としてそれぞれ出力する。
第1及び第2ロードイネーブル回路711、712のそれぞれの出力端子には、第1及び第2レジスタ721、722の入力端子がそれぞれ連結される。第1及び第2レジスタ721、722のそれぞれは、Dフリップフロップで実現できる。第1及び第2レジスタ721、722は、クロック信号CLKに応答して入力キーデータw[8n]、w[8n+1]を保存し、保存された前記入力キーデータw[8n]、w[8n+1]を保存キーデータr[8n]、r[8n+1]としてそれぞれ出力する。
図5は、図3に示された出力選択部770を詳細に示す図である。図5を参照すれば、出力選択部770は、第1ないし第4出力選択回路771〜774を含む。第1ないし第4出力選択回路771〜774のそれぞれは、マルチプレクサで実現できる。第1出力選択回路771は、制御部601から受信される出力選択信号S1、S2に応答して、出力キーデータx0、x4、x2のうちいずれか一つを選択して出力する。これをさらに詳細に説明すれば、第1出力選択回路771は、出力選択信号S1、S2がいずれもディセーブルされる時、出力キーデータx0を出力し、前記出力選択信号S1、S2のうちいずれか一つがイネーブルされる時、出力キーデータx4を出力する。また、第1出力選択回路771は、出力選択信号S1、S2がいずれもイネーブルされる時、出力キーデータx2を出力する。
第2出力選択回路772は、出力選択信号S1、S2に応答して出力キーデータx1、x5、x3のうちいずれか一つを出力する。これをさらに詳細に説明すれば、第2出力選択回路772は、出力選択信号S1、S2がいずれもディセーブルされる時、出力キーデータx1を出力し、出力選択信号S1、S2のうちいずれか一つがイネーブルされる時、前記出力キーデータx5を出力する。また、第2出力選択回路772は、出力選択信号S1、S2がいずれもイネーブルされる時、出力キーデータx3を出力する。
第3出力選択回路773は、出力選択信号S1、S2に応答して出力キーデータx2、x6、x0、x4のうちいずれか一つを出力する。これをさらに詳細に説明すれば、第3出力選択回路773は、出力選択信号S1、S2がいずれもディセーブルされる時、出力キーデータx2を出力し、出力選択信号S1がイネーブルされ、出力選択信号S2がディセーブルされる時、出力キーデータx6を出力する。また、第3出力選択回路773は、出力選択信号S2がイネーブルされ、出力選択信号S1がディセーブルされる時、出力キーデータx0を出力し、出力選択信号S1、S2がいずれもイネーブルされる時、出力キーデータx4を出力する。
第4出力選択回路774は、出力選択信号S1、S2に応答して出力キーデータx3、x7、x1、x5のうちいずれか一つを出力する。これをさらに詳細に説明すれば、第4出力選択回路774は、出力選択信号S1、S2がいずれもディセーブルされる時、出力キーデータx3を出力し、出力選択信号S1がイネーブルされ、出力選択信号S2がディセーブルされる時、出力キーデータx7を出力する。また、第4出力選択回路774は、出力選択信号S2がイネーブルされ、出力選択信号S1がディセーブルされる時、出力キーデータx1を出力し、出力選択信号S1、S2がいずれもイネーブルされる時、出力キーデータx5を出力する。
一方、図5において、第1ないし第4出力選択回路771〜774に出力選択信号S1、S2が入力されると図示されたが、第1ないし第4出力選択回路771〜774には、出力選択信号S3をさらに入力することもできる。その結果、第1ないし第4出力選択回路771〜774は、出力選択信号S3がディセーブルされる時、出力選択信号S1、S2に応答して出力キーデータx0〜x3またはx4〜x7またはx4、x5、x0、x1またはx2〜x5を出力する。また、第1ないし第4出力選択回路771〜774は、出力選択信号S3がイネーブルされる時、出力キーデータx0〜x3またはx4〜x7またはx4、x5、x0、x1またはx2〜x5を出力しない。
次に、上記のように構成されたキースケジュラ700の動作過程を説明すれば、次の通りである。まず、キースケジュラ700が、初期キーデータw[0]〜w[3]を含む第1初期ラウンドキーEIKEY1を受信し、第1暗号ラウンドキーERKEY1を発生させる過程を説明する。
キースケジュラ700に初期キーデータw[0]〜w[3]を含む第1初期ラウンドキーEIKEY1が入力される時、ロードイネーブル信号LD1、LD1B、LD2、LD2Bと内部選択信号M1、M2とがイネーブルされて、キースケジュラ700が10個の第1暗号ラウンドキーERKEY1sをいずれも発生させるまで維持される。
また、キースケジュラ700が10個の第1暗号ラウンドキーERKEY1sをいずれも発生させるまで、ロードイネーブル信号LD3、LD3B、LD4、LD4B、内部選択信号M3、M4、出力選択信号S1、S2、及び演算制御信号P1〜P4がいずれもディセーブル状態に維持される。その結果、キースケジュラ700が10個の第1暗号ラウンドキーERKEY1sを発生させる間に、第1ないし第4ロードイネーブル回路711〜714、第1ないし第4レジスタ721〜724、第1ないし第4チェーン演算器731〜734のみが動作する。
第5ないし第8ロードイネーブル回路715〜718は、ロードイネーブル信号LD3、LD3B、LD4、LD4Bがディセーブル状態であるので、保存キーデータr[8n+4]〜r[8n+7]を入力キーデータw[8n+4]〜w[8n+7]として続けて出力する。その結果、第5ないし第8レジスタ725〜728の出力信号がトグリングされていないので、第5ないし第8レジスタ725〜728による消耗電流が減少する。
ロードイネーブル信号LD1、LD1B、LD2、LD2Bに応答して第1ないし第4ロードイネーブル回路711〜714は、初期キーデータw[0]〜w[3]を入力キーデータw[0]〜w[3]としてそれぞれ出力する。第1ないし第4レジスタ721〜724は、クロック信号CLKに応答して入力キーデータw[0]〜w[3]を受信して保存し、保存された入力キーデータw[0]〜w[3]を保存キーデータr[0]〜r[3]としてそれぞれ出力する。
内部選択信号M1、M2に応答して第1ないし第4内部選択回路761〜764は、入力キーデータw[0]〜w[3]を選択して出力キーデータx0〜x3としてそれぞれ出力する。ここで、出力選択信号S1、S2がディセーブル状態であるので、出力選択部770が出力キーデータx0〜x3(即ち、入力キーデータw[0]〜w[3])を第1暗号ラウンドキーERKEY1として出力する。しかし、ブロックラウンド処理部602(図2参照)は、前記出力選択部770から出力される入力キーデータw[0]〜w[3]を含む第1暗号ラウンドキーERKEY1を実質的に受信しない。その理由は、ブロックラウンド処理部602が、図2で参照されるように、外部から直接に初期キーデータw[0]〜w[3]を受信するためである。この際、ブロックラウンド処理部602は、ラウンド制御信号RCTLに応答して、出力選択部770から出力される第1暗号ラウンドキーERKEY1を受信するか、または受信しない。
第2選択回路742は、演算制御信号P2、P3に応答して、出力キーデータx3を選択して出力する。ワードローテーション部751は、出力キーデータx3の各ビットをローテーションして、ローテーションキーデータROTを出力する。第3選択回路743は、演算制御信号P4に応答して、ローテーションキーデータROTを選択して出力する。
ワード置換部752は、ローテーションキーデータROTを、4個の置換テーブルを使用してそれぞれ所定値に置換し、置換キーデータSUBを出力する。独立演算器739は、置換キーデータSUBとラウンド定数発生器753から受信されるラウンド定数RNCとを論理演算して、変換キーデータSUCを出力する。
第1チェーン演算器731は、変換キーデータSUCと保存キーデータr[0]とを論理演算して、演算キーデータc[4]を出力する。第2チェーン演算器732は、保存キーデータr[1]と第1チェーン演算器731とから受信される演算キーデータc[4]とを論理演算して、演算キーデータc[5]を出力する。第3チェーン演算器733は、保存キーデータr[2]と第2チェーン演算器732から受信される演算キーデータc[5]とを論理演算して、演算キーデータc[6]を出力する。第4チェーン演算器734は、保存キーデータr[3]と第3チェーン演算器733から受信される演算キーデータc[6]とを論理演算して、演算キーデータc[7]を出力する。第1ないし第4ロードイネーブル回路711〜714は、ロードイネーブル信号LD1、LD1B、LD2、LD2Bに応答して、演算キーデータc[4]〜c[7]を入力キーデータw[4]〜w[7]としてそれぞれ出力する。
内部選択信号M1、M2に応答して第1ないし第4内部選択回路761〜764は、入力キーデータw[4]〜w[7]を選択して、出力キーデータx0〜x3としてそれぞれ出力する。出力選択部770は、出力選択信号S1、S2に応答して出力キーデータx0〜x3を選択して、第1暗号ラウンドキーERKEY1として出力する。その結果、キースケジュラ700は、クロック信号CLKの一番目サイクルの間に出力キーデータx0〜x3、即ち入力キーデータw[4]〜w[7]を含む第1暗号ラウンドキーERKEY1を発生させる。ここで、クロック信号CLKの一番目サイクルの間に、第1暗号ラウンドキーERKEY1(即ち、入力キーデータw[4]〜w[7])と第1初期ラウンドキーEIKEY1の初期キーデータw[0]〜w[3]とがブロックラウンド処理部602(図2参照)に入力される。
次いで、キースケジュラ700は、入力キーデータw[40]〜w[43]を含む第1暗号ラウンドキーERKEY1を発生させるまで、上述した演算動作と第1暗号ラウンドキーERKEY1の出力動作とを反復的に行う。また、キースケジュラ700から入力キーデータw[40]〜w[43]を含む第1暗号ラウンドキーERKEY1が発生した後、第1ないし前記第4レジスタ721〜724は、第1復号ラウンドキーDRKEY1を発生させる時に使われる入力キーデータw[40]〜w[43]を保存し、その保存状態を維持する。ここで、各クロックサイクル別にキースケジュラ700により発生する第1暗号ラウンドキーERKEY1は、次の表で示すことができる。
Figure 0004740611
ここで、クロック信号CLKの一番目サイクルの間に、入力キーデータw[4]〜w[7]を含む第1暗号ラウンドキーERKEY1と、第1初期ラウンドキーEIKEY1の初期キーデータw[0]〜w[3]とがブロックラウンド処理部602に入力される。
一方、図6は、キースケジュラ700が10個の第1暗号ラウンドキーERKEY1を発生させる間に、第1ないし第8レジスタ721〜728から出力される保存キーデータr[8n]〜r[8n+7]のタイミング図である。表1と図6とを参照すると、第1ないし第4レジスタ721〜724から出力される保存キーデータr[8n]〜r[8n+3]は、クロック信号CLKのサイクルごとにトグリングされる。また、第5ないし第8レジスタ725〜728から出力される保存キーデータr[8n+4]〜r[8n+7]は、キースケジュラ700が10個の第1暗号ラウンドキーERKEY1をいずれも発生させる間にトグリングされない。その結果、第5ないし第8レジスタ725〜728による消耗電流が減少する。
次に、キースケジュラ700が第1復号ラウンドキーDRKEY1を発生させる動作過程を説明する。キースケジュラ700が第1復号ラウンドキーDRKEY1を発生させる過程は、キースケジュラ700が初期キーデータw[0]〜w[3]を含む第1初期ラウンドキーEIKEY1を受信する場合と受信していない場合とに区分できる。
まず、キースケジュラ700が初期キーデータw[0]〜w[3]を含む第1初期ラウンドキーEIKEY1を受信する場合、第1復号ラウンドキーDRKEY1を発生させる過程を説明する。
ロードイネーブル信号LD1、LD1B、LD2、LD2Bがイネーブルされ、ロードイネーブル信号LD3、LD3B、LD4、LD4Bはディセーブルされる。次いで、キースケジュラ700が第1復号ラウンドキーDRKEY1をいずれも発生させるまで、ロードイネーブル信号LD1、LD1B、LD2、LD2Bがイネーブル状態に維持され、ロードイネーブル信号LD3、LD3B、LD4、LD4Bはディセーブル状態に維持される。
ロードイネーブル信号LD1、LD1B、LD2、LD2Bに応答して第1ないし第4ロードイネーブル回路711〜714は、初期キーデータw[0]〜w[3]を入力キーデータw[0]〜w[3]として出力する。第1ないし第4レジスタ721〜724は、クロック信号CLKに応答して入力キーデータw[0]〜w[3]を受信して保存し、保存された入力キーデータw[0]〜w[3]を保存キーデータr[0]〜r[3]としてそれぞれ出力する。
次いで、第1ないし第4チェーン演算器731〜734から演算キーデータc[40]〜c[43]が出力されるまで、キースケジュラ700は、上述した第1暗号ラウンドキーERKEY1の生成のための演算動作を反復的に行う。第1ないし第4チェーン演算器731〜734が演算キーデータc[40]〜c[43]を出力するまで、上述した演算動作を反復的に行う間、ブロックラウンド処理部602は、ラウンド制御信号RCTLに応答して、キースケジュラ700から出力される第1暗号ラウンドキーERKEY1を受信しない。ここで、第1ないし第4チェーン演算器731〜734が演算キーデータc[40]〜c[43]を出力するまで、上述した演算動作を反復的に行う間、図5を参照して上述したように、出力選択部770が第1暗号ラウンドキーERKEY1を出力しないようにすることもできる。
次いで、第1ないし第4チェーン演算器731〜734から演算キーデータc[40]〜c[43]が出力される時、第1ないし第4ロードイネーブル回路711〜714がロードイネーブル信号LD1、LD1B、LD2、LD2Bに応答して、演算キーデータc[40]〜c[43]を入力キーデータw[40]〜w[43]として出力する。第1ないし第4レジスタ721〜724がクロック信号CLKに応答して、入力キーデータw[40]〜w[43]を受信して保存し、保存された入力キーデータw[40]〜w[43]を保存キーデータr[40]〜r[43]としてそれぞれ出力する。
この際、内部選択信号M1、M2がディセーブルされる。演算制御信号P1〜P4と出力選択信号S1、S2とはいずれもディセーブルされて、キースケジュラ700が最後の第1復号ラウンドキーDRKEY1を発生させるまで維持される。
第1ないし第4内部選択回路761〜764は、内部選択信号M1、M2に応答して、保存キーデータr[40]〜r[43]を出力キーデータx0〜x3としてそれぞれ出力する。この際、出力選択部770は、出力選択信号S1、S2に応答して、出力キーデータx0〜x3(即ち、保存キーデータr[40]〜r[43])を選択して出力する。
第2選択回路742は、演算制御信号P2、P3に応答して出力キーデータx3、即ち保存キーデータr[43]をワードローテーション部751に出力する。ワードローテーション部751は、保存キーデータr[43]の各ビットをローテーションして、ローテーションキーデータROTを出力する。演算制御信号P4に応答して、第3選択回路743がローテーションキーデータROTを選択してワード置換部752に出力する。ワード置換部752は、ローテーションキーデータROTを、置換テーブルを使用して置換し、置換キーデータSUBを出力する。独立演算器739は、置換キーデータSUBとラウンド定数RNCとを論理演算して、変換キーデータSUCを出力する。
第1チェーン演算器731は、保存キーデータr[40]と変換キーデータSUCとを論理演算して、演算キーデータc[36]を出力する。第2ないし第4チェーン演算器732〜734は、保存キーデータr[41]〜r[43]と先端から受信される演算キーデータc[36]〜c[38]とをそれぞれ論理演算して、演算キーデータc[37]〜c[39]をそれぞれ出力する。第1ないし第4ロードイネーブル回路711〜714は、ロードイネーブル信号LD1、LD1B、LD2、LD2Bに応答して、演算キーデータc[36]〜c[39]を入力キーデータw[36]〜w[39]としてそれぞれ出力する。
次いで、内部選択信号M1、M2がイネーブルされ、キースケジュラ700が最後の第1復号ラウンドキーDRKEY1を発生させるまで維持される。第1ないし第4内部選択回路761〜764は、内部選択信号M1、M2に応答して、入力キーデータw[36]〜w[39]を出力キーデータx0〜x3としてそれぞれ出力する。また、出力選択部770は、出力選択信号S1、S2に応答して、出力キーデータx0〜x3を選択して第1復号ラウンドキーDRKEY1として出力する。その結果、キースケジュラ700は、クロック信号CLKの11番目サイクルの間に、出力キーデータx0〜x3、即ち入力キーデータw[36]〜w[39]を含む第1復号ラウンドキーDRKEY1を発生させる。ここで、クロック信号CLKの11番目サイクルの間に、第1復号ラウンドキーDRKEY1(即ち、入力キーデータw[36]〜w[39])と保存キーデータr[40]〜r[43]とがブロックラウンド処理部602に入力される。
第1ないし前記第4レジスタ721〜724は、クロック信号CLKに応答して、入力キーデータw[36]〜w[39]を受信して保存し、保存された前記入力キーデータw[36]〜w[39]を保存キーデータr[36]〜r[39]としてそれぞれ出力する。次いで、キースケジュラ700は、入力キーデータw[0]〜w[3]を含む第1復号ラウンドキーDRKEY1を発生させるまで、上述した演算動作と第1復号ラウンドキーDRKEY1の出力動作とを反復的に行う。
次に、キースケジュラ700が、初期キーデータw[0]〜w[3]を含む第1初期ラウンドキーEIKEY1を受信していない場合、第1復号ラウンドキーDRKEY1を発生させる過程を説明する。まず、第1ないし第4レジスタ721〜724は、クロック信号CLKに応答して、保存されていた入力キーデータw[40]〜w[43]を保存キーデータr[40]〜r[43]として出力する。
この際、内部選択信号M1、M2がディセーブルされる。演算制御信号P1〜P4と出力選択信号S1、S2とはディセーブルされて、キースケジュラ700が最後の第1復号ラウンドキーDRKEY1を発生させるまで維持される。
第1ないし第4内部選択回路761〜764は、内部選択信号M1、M2に応答して、保存キーデータr[40]〜r[43]を出力キーデータx0〜x3としてそれぞれ出力する。出力選択部770は、出力選択信号S1、S2に応答して、出力キーデータx0〜x3(即ち、保存キーデータr[40]〜r[43])を選択して出力する。次いで、キースケジュラ700の動作は、初期キーデータw[0]〜w[3]を含む第1初期ラウンドキーEIKEY1を受信した場合、第1復号ラウンドキーDRKEY1を発生させる過程と実質的に同一であるので、その具体的な説明は省略する。
一方、キースケジュラ700が第1復号ラウンドキーDRKEY1を発生させる過程の間に、第1ないし第4レジスタ721〜724は、クロック信号CLKのサイクルごとにアップデートされた入力キーデータw[4n]〜w[4n+3]を保存する。
ここで、各クロックサイクル別に、キースケジュラ700により発生する第1復号ラウンドキーDRKEY1は、次の表で示すことができる。
Figure 0004740611
キースケジュラ700が第1復号ラウンドキーDRKEY1を発生させる間に、第1ないし第8レジスタ721〜728から出力される保存キーデータr[8n]〜r[8n+7]のタイミング図は、図6に示されたものと同一である。表2と図6とを参照すると、第1ないし第4レジスタ721〜724から出力される保存キーデータr[8n]〜r[8n+3]は、クロック信号CLKのサイクルごとにトグリングされる。一方、第5ないし第8レジスタ725〜728から出力される保存キーデータr[8n+4]〜r[8n+7]は、キースケジュラ700が第1復号ラウンドキーDRKEY1をいずれも発生させる間にトグリングされない。その結果、第5ないし第8レジスタ725〜728による消耗電流が減少する。
次に、キースケジュラ700が初期キーデータw[0]〜w[5]を含む第2初期ラウンドキーEIKEY2を受信し、第2暗号ラウンドキーERKEY2を発生させる過程を説明する。キースケジュラ700に初期キーデータw[0]〜w[5]を含む第2初期ラウンドキーEIKEY2が入力される時、ロードイネーブル信号LD1、LD1B〜LD3、LD3Bと内部選択信号M1〜M3とがイネーブルされる。演算制御信号P2はイネーブルされて、キースケジュラ700が第2暗号ラウンドキーERKEY2をいずれも発生させるまで維持される。また、演算制御信号P1、P3、P4とロードイネーブル信号LD4、LD4Bとはディセーブルされて、キースケジュラ700が第2暗号ラウンドキーERKEY2をいずれも発生させるまで維持される。その結果、キースケジュラ700が12個の第2暗号ラウンドキーERKEY2sを発生させる間に、第1ないし第6ロードイネーブル回路711〜716、第1ないし第6レジスタ721〜726、第1ないし第6チェーン演算器731〜736のみが動作する。
第7及び第8ロードイネーブル回路717、718は、ロードイネーブル信号LD4、LD4Bがディセーブル状態であるので、保存キーデータr[8n+6]、r[8n+7]を入力キーデータw[8n+6]、w[8n+7]として続けて出力する。その結果、第7及び第8レジスタ727、728の出力信号がトグリングされない。したがって、第7及び第8レジスタ727、728による消耗電流が減少する。
ロードイネーブル信号LD1、LD1B〜LD3、LD3Bに応答して第1ないし第6ロードイネーブル回路711〜716は、初期キーデータw[0]〜w[5]を入力キーデータw[0]〜w[5]として出力する。第1ないし第6レジスタ721〜726は、クロック信号CLKに応答して、入力キーデータw[0]〜w[5]を受信して保存し、保存された入力キーデータw[0]〜w[5]を保存キーデータr[0]〜r[5]としてそれぞれ出力する。
内部選択信号M1〜M3に応答して、第1ないし第6内部選択回路761〜766が入力キーデータw[0]〜w[5]を出力キーデータx0〜x5としてそれぞれ出力する。
第2選択回路742は、演算制御信号P2、P3に応答して出力キーデータx5、即ち入力キーデータw[5]を選択して、ワードローテーション部751に出力する。ワードローテーション部751は、入力キーデータw[5]のビットをローテーションし、ローテーションキーデータROTを出力する。第3選択回路743は、演算制御信号P4に応答してローテーションキーデータROTを選択して、ワード置換部752に出力する。ワード置換部752は、ローテーションキーデータROTを所定値に置換し、置換キーデータSUBを出力する。独立演算器739は、置換キーデータSUBとラウンド定数RNCとを論理演算して、変換キーデータSUCを出力する。
第1チェーン演算器731は、変換キーデータSUCと保存キーデータr[0]とを論理演算して、演算キーデータc[6]を出力する。第2ないし第4チェーン演算器732〜734は、保存キーデータr[1]〜r[3]と先端から受信される演算キーデータc[6]〜c[8]とをそれぞれ論理演算して、演算キーデータc[7]〜c[9]をそれぞれ出力する。この際、第1選択回路741が演算制御信号P1に応答して、演算キーデータc[9]を第5チェーン演算器735に出力する。したがって、第5及び第6チェーン演算器735、736が、保存キーデータr[4]、r[5]と先端から受信される演算キーデータc[9]、c[10]とをそれぞれ論理演算して、演算キーデータc[10]、c[11]を出力する。
ロードイネーブル信号LD1、LD1B〜LD3、LD3Bがイネーブル状態であるので、第1ないし第6ロードイネーブル回路711〜716は、演算キーデータc[6]〜c[11]を入力キーデータw[6]〜w[11]としてそれぞれ出力する。
この際、内部選択信号M1のみがイネーブル状態に維持され、内部選択信号M2、M3はディセーブルされる。内部選択信号M1に応答して、第1及び第2内部選択回路761、762が入力キーデータw[6]、w[7]を出力キーデータx0、x1としてそれぞれ出力する。また、内部選択信号M2、M3に応答して、第3ないし第6内部選択回路763〜766が保存キーデータr[2]〜r[5]を出力キーデータx2〜x5としてそれぞれ出力する。
この際、出力選択信号S2がイネーブルされ、出力選択信号S1がディセーブルされる。出力選択信号S1、S2に応答して、出力選択部770は、出力キーデータx0〜x7のうち出力キーデータx4、x5、x0、x1を選択して、第2暗号ラウンドキーERKEY2として出力する。その結果、キースケジュラ700は、クロック信号CLKの一番目サイクルの間に、出力キーデータx0、x1(即ち、入力キーデータw[6]、w[7])と出力キーデータx4、x5(即ち、保存キーデータr[4]、r[5])を含む第2暗号ラウンドキーERKEY2とを発生させる。クロック信号CLKの一番目サイクルの間に、ブロックラウンド処理部602には、第2暗号ラウンドキーERKEY2と第2初期ラウンドキーEIKEY2の初期キーデータw[0]〜w[5]とが共に入力される。ここで、第2暗号ラウンドキーERKEY2の保存キーデータr[4]、r[5]と初期キーデータw[4]、w[5]とが実質的に同一であるので、ブロックラウンド処理部602は、保存キーデータr[4]、r[5]を受信しない。したがって、ブロックラウンド処理部602は、入力キーデータw[6]、w[7]を含む第2暗号ラウンドキーERKEY2と初期キーデータw[0]〜w[5]とを受信する。
第1ないし第6レジスタ721〜726は、クロック信号CLKに応答して入力キーデータw[6]〜w[11]を保存し、保存された入力キーデータw[6]〜w[11]を保存キーデータr[6]〜r[11]としてそれぞれ出力する。
次いで、ロードイネーブル信号LD1、LD1B〜LD3、LD3Bと内部選択信号M1〜M3とがいずれもディセーブルされ、出力選択信号S1、S2がいずれもイネーブルされる。ロードイネーブル信号LD1、LD1B〜LD3、LD3Bに応答して、第1ないし第6ロードイネーブル回路711〜716が保存キーデータr[6]〜r[11]を入力キーデータw[6]〜w[11]として続けて出力する。内部選択信号M1〜M3に応答して、第1ないし第6内部選択回路761〜766が保存キーデータr[6]〜r[11]を出力キーデータx0〜x5として出力する。
出力選択信号S1、S2に応答して、出力選択部770は、出力キーデータx2〜x5を選択して、第2暗号ラウンドキーERKEY2として出力する。その結果、キースケジュラ700は、クロック信号CLKの二番目サイクルの間に、出力キーデータx2〜x5、即ち保存キーデータr[8]〜r[11]を含む第2暗号ラウンドキーERKEY2を発生させる。
次いで、ロードイネーブル信号LD1、LD1B〜LD3、LD3Bが再びイネーブルされる。ロードイネーブル信号LD1、LD1B〜LD3、LD3Bに応答して、第1ないし第6ロードイネーブル回路711〜716は、第1ないし第6チェーン演算器731〜736から上述した動作と類似して演算されて出力される演算キーデータc[12]〜c[17]を入力キーデータw[12]〜w[17]として出力する。
次いで、キースケジュラ700は、第1ないし第6チェーン演算器731〜736から演算キーデータc[46]〜c[51]が出力されるまで上述した演算動作と、第2暗号ラウンドキーERKEY2の出力動作とを反復的に行う。また、第1ないし第6チェーン演算器731〜736から演算キーデータc[46]〜c[51]が出力される時、第1ないし前記第6レジスタ721〜726は、第1ないし第6ロードイネーブル回路711〜716から受信される入力キーデータw[46]〜w[51]を保存し、その保存状態を維持する。入力キーデータw[46]〜w[51]は、キースケジュラ700による第2復号ラウンドキーDRKEY2の発生過程で使われる。また、キースケジュラ700が第2暗号ラウンドキーERKEY2を発生させる間に、第1ないし第6レジスタ721〜726は、クロック信号CLKの2サイクルごとにアップデートされた入力キーデータw[6n]〜w[6n+5]を保存する。ここで、各クロックサイクル別に、キースケジュラ700により発生する第2暗号ラウンドキーERKEY2は、次の表で示すことができる。
Figure 0004740611
一方、図7Aは、キースケジュラ700が第2暗号ラウンドキーERKEY2を発生させる間に、第1ないし第8レジスタ721〜728から出力される保存キーデータr[8n]〜r[8n+7]のタイミング図である。表3と図7Aとを参照すると、第1ないし第6レジスタ721〜726から出力される保存キーデータr[8n]〜r[8n+5]は、クロック信号CLKの2サイクルごとにトグリングされる。また、第7及び第8レジスタ727、728から出力される保存キーデータr[8n+6]、r[8n+7]は、キースケジュラ700が第2暗号ラウンドキーERKEY2をいずれも発生させる間にトグリングされない。その結果、第7及び第8レジスタ727、728による消耗電流が減少する。
次に、キースケジュラ700が第2復号ラウンドキーDRKEY2を発生させる過程を説明する。キースケジュラ700が第2復号ラウンドキーDRKEY2を発生させる過程は、キースケジュラ700が初期キーデータw[0]〜w[5]を含む第2初期ラウンドキーEIKEY2を受信する場合と、第2初期ラウンドキーEIKEY2を受信していない場合とに区分できる。
まず、キースケジュラ700が初期キーデータw[0]〜w[5]を含む第2初期ラウンドキーEIKEY2を受信する場合、第2復号ラウンドキーDRKEY2を発生させる過程を説明する。キースケジュラ700に初期キーデータw[0]〜w[5]を含む第2初期ラウンドキーEIKEY2が入力される時、ロードイネーブル信号LD1、LD1B〜LD3、LD3Bがイネーブルされる。演算制御信号P2はイネーブルされて、キースケジュラ700が第2復号ラウンドキーDRKEY2をいずれも発生させるまで維持される。演算制御信号P1、P3、P4とロードイネーブル信号LD4、LD4Bとがディセーブルされて、キースケジュラ700が第2復号ラウンドキーDRKEY2をいずれも発生させるまで維持される。その結果、キースケジュラ700が12個の第2復号ラウンドキーDRKEY2sを発生させる間に、第1ないし第6ロードイネーブル回路711〜716、第1ないし第6レジスタ721〜726、第1ないし第6チェーン演算器731〜736のみが動作する。
前記ロードイネーブル信号LD1、LD1B〜LD3、LD3Bに応答して、第1ないし第6ロードイネーブル回路711〜716は、初期キーデータw[0]〜w[5]を入力キーデータw[0]〜w[5]として出力する。第1ないし第6レジスタ721〜726は、クロック信号CLKに応答して入力キーデータw[0]〜w[5]を保存し、保存された前記入力キーデータw[0]〜w[5]を保存キーデータr[0]〜r[5]としてそれぞれ出力する。次いで、キースケジュラ700は、第1ないし第6チェーン演算器731〜736から演算キーデータc[46]〜c[51]が出力されるまで、上述した第2暗号ラウンドキーERKEY2の生成のための演算動作を反復的に行う。
第1ないし第6チェーン演算器731〜736が演算キーデータc[46]〜c[51]を出力するまで、上述した演算動作を反復的に行う間に、ブロックラウンド処理部602は、ラウンド制御信号RCTLに応答して、キースケジュラ700から出力される第2暗号ラウンドキーERKEY2を受信しない。ここで、第1ないし第6チェーン演算器731〜736が演算キーデータc[46]〜c[51]を出力するまで、上述した演算動作を反復的に行う間に、図5を参照して詳述したように、出力選択部770が第2暗号ラウンドキーERKEY2を出力しないようにすることもできる。
次いで、第1ないし第6チェーン演算器731〜736から演算キーデータc[46]〜c[51]が出力される時、ロードイネーブル信号LD1、LD1B〜LD3、LD3Bがイネーブルされる。ロードイネーブル信号LD1、LD1B〜LD3、LD3Bに応答して、第1ないし第6ロードイネーブル回路711〜716が演算キーデータc[46]〜c[51]を入力キーデータw[46]〜w[51]としてそれぞれ出力する。第1ないし第6レジスタ721〜726は、クロック信号CLKに応答して、入力キーデータw[46]〜w[51]を受信して保存し、保存された入力キーデータw[46]〜w[51]を保存キーデータr[46]〜r[51]としてそれぞれ出力する。
この際、内部選択信号M1〜M3がディセーブルされ、出力選択信号S1、S2がいずれもイネーブルされる。内部選択信号M1〜M3に応答して、第1ないし第6内部選択回路761〜766が保存キーデータr[46]〜r[51]を出力キーデータx0〜x5としてそれぞれ出力する。出力選択信号S1、S2に応答して、出力選択部770が出力キーデータx2〜x5(即ち、保存キーデータr[48]〜r[51])を選択して出力する。第2選択回路742は、演算制御信号P2、P3に応答して、出力キーデータx5(即ち、保存キーデータr[51])を選択してワードローテーション部751に出力する。ワードローテーション部751は、保存キーデータr[51]のビットをローテーションし、ローテーションキーデータROTを出力する。第3選択回路743は、演算制御信号P4に応答して、ローテーションキーデータROTを選択してワード置換部752に出力する。ワード置換部752は、ローテーションキーデータROTを所定値に置換して、置換キーデータSUBを出力する。独立演算器739は、置換キーデータSUBとラウンド定数RNCとを論理演算して、変換キーデータSUCを出力する。
第1チェーン演算器731は、変換キーデータSUCと保存キーデータr[46]とを論理演算して、演算キーデータc[40]を出力する。第2ないし第4チェーン演算器732〜734は、保存キーデータr[47]〜r[49]と先端から受信される演算キーデータc[40]〜c[42]をそれぞれ論理演算して、演算キーデータc[41]〜c[43]をそれぞれ出力する。第1選択回路741は、演算制御信号P1に応答して、演算キーデータc[43]を第5チェーン演算器735に出力する。第5チェーン演算器735は、演算キーデータc[43]と保存キーデータr[50]とを論理演算して、演算キーデータc[44]を出力する。第6チェーン演算器736は、演算キーデータc[44]と保存キーデータr[51]とを論理演算して、演算キーデータc[45]を出力する。
この際、ロードイネーブル信号LD1、LD1B〜LD3、LD3Bがイネーブル状態であるので、第1ないし第6ロードイネーブル回路711〜716が演算キーデータc[40]〜c[45]を入力キーデータw[40]〜w[45]として出力する。
次いで、内部選択信号M3がイネーブルされ、内部選択信号M1、M2はディセーブルされる。また、出力選択信号S1がディセーブルされ、出力選択信号S2がイネーブルされる。内部選択信号M3に応答して、第5及び第6内部選択回路765、766が入力キーデータw[44]、w[45]を出力キーデータx4、x5として出力する。また、内部選択信号M1、M2に応答して、第1ないし第4内部選択回路761〜764が保存キーデータr[46]〜r[49]を出力キーデータx0〜x3として出力する。出力選択信号S1、S2に応答して、出力選択部770は、出力キーデータx4、x5、x0、x1を選択して、第2復号ラウンドキーDRKEY2として出力する。その結果、キースケジュラ700は、クロック信号CLKの13番目サイクルの間に、出力キーデータx4、x5、x0、x1、即ち保存キーデータr[46]、r[47]と入力キーデータw[44]、w[45]を含む第2復号ラウンドキーDRKEY2とを発生させる。ここで、クロック信号CLKの13番目サイクルの間に、保存キーデータr[46]、r[47]と入力キーデータw[44]、w[45]とを含む第2復号ラウンドキーDRKEY2と、保存キーデータr[48]〜r[51]とがブロックラウンド処理部602に入力される。
第1ないし第6レジスタ721〜726は、クロック信号CLKに応答して、入力キーデータw[40]〜w[45]をそれぞれ保存し、保存された入力キーデータw[40]〜w[45]を保存キーデータr[40]〜r[45]としてそれぞれ出力する。
次いで、内部選択信号M1〜M3がディセーブルされ、ロードイネーブル信号LD1、LD1B〜LD3、LD3Bと出力選択信号S1、S2とがディセーブルされる。内部選択信号M1〜M3に応答して、第1ないし第6内部選択回路761〜766が保存キーデータr[40]〜r[45]を出力キーデータx0〜x7として出力する。出力選択信号S1、S2に応答して、出力選択部770は、出力キーデータx0〜x3を選択して、第2復号ラウンドキーDRKEY2として出力する。その結果、キースケジュラ700は、クロック信号CLKの14番目サイクルの間に、出力キーデータx0〜x3、即ち保存キーデータr[40]〜r[43]を含む第2復号ラウンドキーDRKEY2を発生させる。次いで、ロードイネーブル信号LD1、LD1B〜LD3、LD3Bが再びイネーブルされる。
キースケジュラ700は、第1ないし第6チェーン演算器731〜736から演算キーデータc[0]〜c[5]が出力されるまで、上述した演算動作と第2復号ラウンドキーDRKEY2の出力動作とを反復的に行う。
次に、キースケジュラ700が初期キーデータw[0]〜w[5]を含む第2初期ラウンドキーEIKEY2を受信していない場合、第2復号ラウンドキーDRKEY2を発生させる過程を説明する。まず、第1ないし第6レジスタ721〜726が、予め保存されていた入力キーデータw[46]〜w[51]を保存キーデータr[46]〜r[51]としてそれぞれ出力する。
この際、内部選択信号M1〜M3がディセーブルされ、出力選択信号S1、S2がイネーブルされる。内部選択信号M1〜M3に応答して、第1ないし第6内部選択回路761〜766が保存キーデータr[46]〜r[51]を出力キーデータx0〜x5としてそれぞれ出力する。出力選択信号S1、S2に応答して、出力選択部770が出力キーデータx2〜x5(即ち、保存キーデータr[48]〜r[51])を選択して出力する。次いで、キースケジュラ700の動作は、初期キーデータw[0]〜w[5]を含む第2初期ラウンドキーEIKEY2を受信した場合、第2復号ラウンドキーDRKEY2を発生させる過程と実質的に同一であるので、その具体的な説明は省略する。キースケジュラ700の第2復号ラウンドキーDRKEY2の発生過程の間に、第1ないし第6レジスタ721〜726は、クロック信号CLKの2サイクルごとにアップデートされた入力キーデータw[6n]〜w[6n+5]を保存する。ここで、各クロックサイクル別に、キースケジュラ700により発生する第2復号ラウンドキーDRKEY2は、次の表で示すことができる。
Figure 0004740611
一方、図7Bは、キースケジュラ700が第2復号ラウンドキーDRKEY2を発生させる間に、第1ないし第8レジスタ721〜728から出力される保存キーデータr[8n]〜r[8n+7]のタイミング図である。表4と図7Bとで参照されるように、第1ないし第6レジスタ721〜726から出力される保存キーデータr[8n]〜r[8n+5]は、クロック信号CLKの2サイクルごとにトグリングされる。また、第7及び第8レジスタ727、728から出力される保存キーデータr[8n+6]、r[8n+7]は、キースケジュラ700が第2復号ラウンドキーDRKEY2をいずれも発生させる間にトグリングされない。その結果、第7及び第8レジスタ727、728による消耗電流が減少する。
次に、キースケジュラ700が初期キーデータw[0]〜w[7]を含む第3初期ラウンドキーEIKEY3を受信し、第3暗号ラウンドキーERKEY3を発生させる過程を説明する。キースケジュラ700に、初期キーデータw[0]〜w[7]を含む第3初期ラウンドキーEIKEY3が入力される時、ロードイネーブル信号LD1、LD1B〜LD4、LD4Bと内部選択信号M1〜M4とがイネーブルされる。
ロードイネーブル信号LD1、LD1B〜LD4、LD4Bに応答して、第1ないし第8ロードイネーブル回路711〜718が、初期キーデータw[0]〜w[7]を入力キーデータw[0]〜w[7]としてそれぞれ出力する。内部選択信号M1〜M4に応答して、第1ないし第8内部選択回路761〜768が入力キーデータw[0]〜w[7]を出力キーデータx0〜x7としてそれぞれ出力する。第1ないし第8レジスタ721〜728は、クロック信号CLKに応答して、入力キーデータw[0]〜w[7]をそれぞれ受信して保存し、保存された入力キーデータw[0]〜w[7]を保存キーデータr[0]〜r[7]としてそれぞれ出力する。
この際、演算制御信号P2、P4がディセーブルされ、演算制御信号P3がイネーブルされる。演算制御信号P2、P3に応答して、第2選択回路742が出力キーデータx7(即ち、入力キーデータw[7])を選択して、ワードローテーション部751に出力する。ワードローテーション部751は、保存キーデータr[7]のビットをローテーションし、ローテーションキーデータROTを出力する。第3選択回路743は、演算制御信号P4に応答してローテーションキーデータROTを選択して、ワード置換部752に出力する。ワード置換部752は、ローテーションキーデータROTを所定値に置換し、置換キーデータSUBを出力する。独立演算器739は、置換キーデータSUBとラウンド定数RNCとを論理演算して、変換キーデータSUCを出力する。
第1チェーン演算器731は、変換キーデータSUCと保存キーデータr[0]とを論理演算して、演算キーデータc[8]を出力する。第2ないし第4チェーン演算器732〜734は、保存キーデータr[1]〜r[3]と先端から受信される演算キーデータc[8]〜c[10]とをそれぞれ論理演算して、演算キーデータc[9]〜c[11]をそれぞれ出力する。
この際、ロードイネーブル信号LD1、LD1B、LD2、LD2Bと内部選択信号M1、M2のみがイネーブルされ、ロードイネーブル信号LD3、LD3B、LD4、LD4Bと内部選択信号M3、M4とはディセーブルされる。また、出力選択信号S1、S2がいずれもディセーブルされ、演算制御信号P1、P4がイネーブルされる。
ロードイネーブル信号LD1、LD1B、LD2、LD2Bに応答して、第1ないし第4ロードイネーブル回路711〜714が演算キーデータc[8]〜c[11]を入力キーデータw[8]〜w[11]としてそれぞれ出力する。ロードイネーブル信号LD3、LD3B、LD4、LD4Bに応答して第5ないし第8ロードイネーブル回路715〜718は、保存キーデータr[4]〜r[7]を入力キーデータw[4]〜w[7]として続けて出力する。内部選択信号M1、M2に応答して、第1ないし第4内部選択回路761〜764が入力キーデータw[8]〜w[11]を選択して、出力キーデータx0〜x3としてそれぞれ出力する。出力選択信号S1、S2に応答して、出力選択部770が出力キーデータx0〜x3を選択して、第3暗号ラウンドキーERKEY3として出力する。その結果、キースケジュラ700は、クロック信号CLKの二番目サイクルの間に、出力キーデータx0〜x3、即ち入力キーデータw[8]〜w[11]を含む第3暗号ラウンドキーERKEY3を発生させる。ここで、クロック信号CLKの一番目サイクルの間に、ブロックラウンド処理部602には、図2に示すように、第3初期ラウンドキーEIKEY3の初期キーデータw[0]〜w[7]が外部から直接入力される。
演算制御信号P4に応答して、第3選択回路743が演算キーデータc[11]を選択して、ワード置換部752に出力する。ワード置換部752は、演算キーデータc[11]を所定値に置換し、置換キーデータSUBを出力する。第1選択回路741は、演算制御信号P1に応答して、置換キーデータSUBを第5チェーン演算器735に出力する。
第5チェーン演算器735は、保存キーデータr[4]と置換キーデータSUBとを論理演算し、演算キーデータc[12]を出力する。第6ないし第8チェーン演算器736〜738は、保存キーデータr[5]〜r[7]と先端から受信される演算キーデータc[12]〜c[14]とをそれぞれ論理演算して、演算キーデータc[13]〜c[15]をそれぞれ出力する。
この際、ロードイネーブル信号LD3、LD3B、LD4、LD4B、内部選択信号M3、M4、及び出力選択信号S1がイネーブルされる。また、ロードイネーブル信号LD1、LD1B、LD2、LD2B、内部選択信号M1、M2、及び出力選択信号S2がディセーブルされる。ロードイネーブル信号LD3、LD3B、LD4、LD4Bに応答して、第5ないし第8ロードイネーブル回路715〜718が演算キーデータc[12]〜c[15]を入力キーデータw[12]〜w[15]としてそれぞれ出力する。内部選択信号M3、M4に応答して、第5ないし第8内部選択回路765〜768が入力キーデータw[12]〜w[15]を選択して、出力キーデータx4〜x7としてそれぞれ出力する。出力選択信号S1、S2に応答して、出力選択部770が前記出力キーデータx4〜x7を選択して、第3暗号ラウンドキーERKEY3として出力する。その結果、キースケジュラ700は、クロック信号CLKの三番目サイクルの間に、出力キーデータx4〜x7、即ち入力キーデータw[12]〜w[15]を含む第3暗号ラウンドキーERKEY3を発生させる。
第1ないし第8レジスタ721〜728は、クロック信号CLKに応答して入力キーデータw[8]〜w[15]をそれぞれ保存し、保存された入力キーデータw[8]〜w[15]を保存キーデータr[8]〜r[15]としてそれぞれ出力する。次いで、キースケジュラ700は、第1ないし第8チェーン演算器731〜738が演算キーデータc[52]〜c[59]をそれぞれ出力するまで、演算動作と第3暗号ラウンドキーERKEY3の出力動作とを反復的に行う。
また、第1ないし前記第8チェーン演算器731〜738が演算キーデータc[52]〜c[59]をそれぞれ出力する時、第1ないし前記第8レジスタ721〜728が、第1ないし第8ロードイネーブル回路711〜718から受信される入力キーデータw[52]〜w[59]を保存し、その保存状態を維持する。入力キーデータw[52]〜w[59]は、キースケジュラ700が第3復号ラウンドキーDRKEY3を発生させる時に使われる。
また、キースケジュラ700の第3暗号ラウンドキーERKEY3の発生過程の間に、一番目サイクルを除いて、クロック信号CLKのサイクルごとに、第1ないし第4レジスタ721〜724と第5ないし第8レジスタ725〜728とが、交互的にアップデートされた演算キーデータc[8n]〜c[8n+3]、c[8n+4]〜c[8n+7]をそれぞれ保存する。その結果、クロック信号CLKの一サイクルの間に、ワード置換部752による置換過程が一回のみ行われるので、ワード置換部752は、4個の置換テーブルのみを含めばよい。ここで、各クロックサイクル別に、キースケジュラ700により発生する第3暗号ラウンドキーERKEY3は、次の表で示すことができる。
Figure 0004740611
一方、図8Aは、キースケジュラ700が第3暗号ラウンドキーERKEY3を発生させる間、第1ないし第8レジスタ721〜728から出力される保存キーデータr[8n]〜r[8n+7]のタイミング図である。表5と図8Aとを参照すると、クロック信号CLKのサイクルごとに、第1ないし第4レジスタ721〜724から出力される保存キーデータr[8n]〜r[8n+3]と、第5ないし第8レジスタ725〜728から出力される保存キーデータr[8n+4]〜r[8n+7]とが交互的にトグリングされる。
次に、キースケジュラ700が第3復号ラウンドキーDRKEY3を発生させる過程を説明する。キースケジュラ700が第3復号ラウンドキーDRKEY3を発生させる過程は、キースケジュラ700が、初期キーデータw[0]〜w[7]を含む第3初期ラウンドキーEIKEY3を受信する場合と受信していない場合とに区分できる。
まず、キースケジュラ700が初期キーデータw[0]〜w[7]を含む第3初期ラウンドキーEIKEY3を受信する場合、第3復号ラウンドキーDRKEY3を発生させる過程を説明する。
キースケジュラ700に、初期キーデータw[0]〜w[7]を含む第3初期ラウンドキーEIKEY3が入力される時、ロードイネーブル信号LD1、LD1B〜LD4、LD4Bがいずれもイネーブルされる。ロードイネーブル信号LD1、LD1B〜LD4、LD4Bに応答して、第1ないし第8ロードイネーブル回路711〜718が初期キーデータw[0]〜w[7]を入力キーデータw[0]〜w[7]としてそれぞれ出力する。第1ないし第8レジスタ721〜728は、クロック信号CLKに応答して入力キーデータw[0]〜w[7]を保存し、保存された入力キーデータw[0]〜w[7]を保存キーデータr[0]〜r[7]としてそれぞれ出力する。
次いで、キースケジュラ700は、第1ないし第8チェーン演算器731〜738から演算キーデータc[52]〜c[59]が出力されるまで、上述した第3暗号ラウンドキーERKEY3の生成のための演算動作を反復的に行う。第1ないし第8チェーン演算器731〜738が演算キーデータc[52]〜c[59]を出力するまで、キースケジュラ700が上述した演算動作を反復的に行う間に、ブロックラウンド処理部602は、ラウンド制御信号RCTLに応答して、キースケジュラ700から出力される第3暗号ラウンドキーERKEY3を受信しない。ここで、上述した演算動作を反復的に行う間に、図5を参照して詳述したように、出力選択部770が第3暗号ラウンドキーERKEY3を出力しないようにすることもできる。
第1ないし第8チェーン演算器731〜738から演算キーデータc[52]〜c[59]が出力される時、ロードイネーブル信号LD1、LD1B〜LD4、LD4Bに応答して、第1ないし第8ロードイネーブル回路711〜718が演算キーデータc[52]〜c[59]を入力キーデータw[52]〜w[59]としてそれぞれ出力する。第1ないし第8レジスタ721〜728がクロック信号CLKに応答して、入力キーデータw[52]〜w[59]を受信して保存し、保存された入力キーデータw[52]〜w[59]を保存キーデータr[52]〜r[59]としてそれぞれ出力する。
この際、内部選択信号M1〜M4と演算制御信号P2、P4とがディセーブルされ、演算制御信号P3がイネーブルされる。また、出力選択信号S1がイネーブルされ、出力選択信号S2がディセーブルされる。内部選択信号M1〜M4に応答して、第1ないし第8内部選択回路761〜768が保存キーデータr[52]〜r[59]を出力キーデータx0〜x7としてそれぞれ出力する。出力選択信号S1、S2に応答して、出力選択部770が出力キーデータx4〜x7(即ち、保存キーデータr[56]〜r[59])を選択して出力する。
次いで、出力選択信号S1、S2がいずれもディセーブルされる。出力選択信号S1、S2に応答して、出力選択部770が出力キーデータx0〜x3(即ち、保存キーデータr[52]〜r[55])を選択して出力する。その結果、キースケジュラ700は、クロック信号CLKの15番目サイクルの間に、出力キーデータx0〜x3、即ち保存キーデータr[52]〜r[55]を含む第3復号ラウンドキーDRKEY3を発生させる。ここで、クロック信号CLKの15番目サイクルの間に、保存キーデータr[52]〜r[55]を含む第3復号ラウンドキーDRKEY3と保存キーデータr[56]〜r[59]とが、ブロックラウンド処理部602に入力される。
演算制御信号P2、P3に応答して、第2選択回路742が出力キーデータx7(即ち、保存キーデータr[59])を選択して、ワードローテーション部751に出力する。ワードローテーション部751は、保存キーデータr[59]のビットをローテーションし、ローテーションキーデータROTを出力する。第3選択回路743は、演算制御信号P4に応答してローテーションキーデータROTを選択して、ワード置換部752に出力する。ワード置換部752は、ローテーションキーデータROTを所定値に置換し、置換キーデータSUBを出力する。独立演算器739は、置換キーデータSUBとラウンド定数RNCとを論理演算して、変換キーデータSUCを出力する。
第1チェーン演算器731は、変換キーデータSUCと保存キーデータr[52]とを論理演算して、演算キーデータc[44]を出力する。第2ないし第4チェーン演算器732〜734は、保存キーデータr[53]〜r[55]と先端から受信される演算キーデータc[44]〜c[46]とをそれぞれ論理演算して、演算キーデータc[45]〜c[47]をそれぞれ出力する。
この際、ロードイネーブル信号LD1、LD1B、LD2、LD2Bがディセーブルされ、演算制御信号P1、P4がイネーブルされる。第1ないし第4ロードイネーブル回路711〜714は、ロードイネーブル信号LD1、LD1B、LD2、LD2Bに応答して、保存キーデータr[52]〜r[55]を入力キーデータw[52]〜w[55]として出力し続ける。
演算制御信号P4に応答して、第3選択回路743が演算キーデータc[47]を選択して、ワード置換部752に出力する。ワード置換部752は、演算キーデータc[47]を所定値に置換し、置換キーデータSUBを出力する。第1選択回路741は、演算制御信号P1に応答して、置換キーデータSUBを第5チェーン演算器735に出力する。第5チェーン演算器735は、保存キーデータr[56]と置換キーデータSUBとを論理演算し、演算キーデータc[48]を出力する。第6ないし第8チェーン演算器736〜738は、保存キーデータr[57]〜r[59]と先端から受信される演算キーデータc[48]〜c[50]とをそれぞれ論理演算して、演算キーデータc[49]〜c[51]をそれぞれ出力する。
この際、ロードイネーブル信号LD3、LD3B、LD4、LD4Bと内部選択信号M3、M4、及び出力選択信号S1がイネーブルされ、出力選択信号S2がディセーブルされる。ロードイネーブル信号LD3、LD3B、LD4、LD4Bに応答して、第5ないし第8ロードイネーブル回路715〜718が演算キーデータc[48]〜c[51]を入力キーデータw[48]〜w[51]としてそれぞれ出力する。内部選択信号M3、M4に応答して、第5ないし第8内部選択回路765〜768が入力キーデータw[48]〜w[51]を選択して、出力キーデータx4〜x7としてそれぞれ出力する。出力選択信号S1、S2に応答して、出力選択部770が出力キーデータx4〜x7を選択して、第3復号ラウンドキーDRKEY3として出力する。その結果、キースケジュラ700は、クロック信号CLKの16番目サイクルの間に、出力キーデータx4〜x7、即ち入力キーデータw[48]〜w[51]を含む第3復号ラウンドキーDRKEY3を発生させる。
次いで、第5ないし第8レジスタ725〜728は、入力キーデータw[48]〜w[51]を保存し、保存された入力キーデータw[48]〜w[51]を保存キーデータr[48]〜r[51]としてそれぞれ出力する。この際、ロードイネーブル信号LD3、LD3B、LD4、LD4Bと内部選択信号M3、M4とがディセーブルされ、ロードイネーブル信号LD1、LD1B、LD2、LD2Bと内部選択信号M1、M2とがイネーブルされる。また、出力選択信号S1、S2と演算制御信号P2、P4がいずれもディセーブルされ、演算制御信号P3がイネーブルされる。
ロードイネーブル信号LD1、LD1B、LD2、LD2Bに応答して、第1ないし第4ロードイネーブル回路711〜714が演算キーデータc[44]〜c[47]を入力キーデータw[44]〜w[47]として出力する。内部選択信号M1、M2に応答して、第1ないし第4内部選択回路761〜764が入力キーデータw[44]〜w[47]を選択して出力キーデータx0〜x3として出力する。第5ないし第8内部選択回路765〜768は、内部選択信号M3、M4に応答して、保存キーデータr[48]〜r[51]を選択して出力キーデータx4〜x7として出力する。出力選択信号S1、S2に応答して、出力選択部770が出力キーデータx0〜x3を選択して、第3復号ラウンドキーDRKEY3として出力する。その結果、キースケジュラ700は、クロック信号CLKの17番目サイクルの間に、出力キーデータx0〜x3、即ち入力キーデータw[44]〜w[47]を含む第3復号ラウンドキーDRKEY3を発生させる。
第1ないし第4レジスタ721〜724は、クロック信号CLKに応答して入力キーデータw[44]〜w[47]をそれぞれ保存し、保存された入力キーデータw[44]〜w[47]を保存キーデータr[44]〜r[47]としてそれぞれ出力する。演算制御信号P4に応答して、第2選択回路742が出力キーデータx7(即ち、保存キーデータr[51])を選択して、ワードローテーション部751に出力する。次いで、キースケジュラ700は、第1ないし前記第8チェーン演算器731〜738が演算キーデータc[0]〜c[7]をそれぞれ出力するまで、演算動作と第3復号ラウンドキーDRKEY3の出力動作とを反復的に行う。
次に、キースケジュラ700が初期キーデータw[0]〜w[7]を含む第3初期ラウンドキーEIKEY3を受信していない場合、第3復号ラウンドキーDRKEY3を発生させる過程を説明する。
第1ないし第8レジスタ721〜728は、予め保存されていた入力キーデータw[52]〜w[59]を保存キーデータr[52]〜r[59]としてそれぞれ出力する。次いで、ロードイネーブル信号LD1、LD1B〜LD4、LD4Bと内部選択信号M1〜M4とがいずれもディセーブルされる。ロードイネーブル信号LD1、LD1B〜LD4、LD4Bに応答して、第1ないし第8ロードイネーブル回路711〜718が保存キーデータr[52]〜r[59]を入力キーデータw[52]〜w[59]として続けて出力する。内部選択信号M1〜M4に応答して、第1ないし第8内部選択回路761〜768が保存キーデータr[52]〜r[59]を出力キーデータx0〜x7として出力する。次いで、キースケジュラ700の動作は、初期キーデータw[0]〜w[7]を含む第3初期ラウンドキーEIKEY3を受信した場合、第3復号ラウンドキーDRKEY3を発生させる過程と実質的に同一であるので、その具体的な説明は省略する。キースケジュラ700の第3復号ラウンドキーDRKEY3の発生過程の間に、クロック信号CLKのサイクルごとに、第1ないし第4レジスタ721〜724と第5ないし第8レジスタ725〜728とが、交互的にアップデートされた入力キーデータw[8n]〜w[8n+3]、w[8n+4]〜w[8n+7]をそれぞれ保存する。ここで、各クロックサイクル別に、キースケジュラ700により発生する第3復号ラウンドキーDRKEY3は、次の表で示すことができる。
Figure 0004740611
一方、図8Bは、キースケジュラ700が第3復号ラウンドキーDRKEY3を発生させる間に、第1ないし第8レジスタ721〜728から出力される保存キーデータr[8n]〜r[8n+7]のタイミング図である。表6と図8Bとで参照されるように、クロック信号CLKのサイクルごとに、第1ないし第4レジスタ721〜724から出力される保存キーデータr[8n]〜r[8n+3]と、第5ないし第8レジスタ725〜728から出力される保存キーデータr[8n+4]〜r[8n+7]とが交互的にトグリングされる。
図9は、本発明の他の実施例によるキースケジュラ800を詳細に示す図である。図9を参照すると、キースケジュラ800は、キー保存部801、キー演算部802、及びキー出力部803を含む。ここで、キースケジュラ800の構成及び具体的な動作説明は、図3に示すキースケジュラ700と一つの相違点を除いて実質的に同一であるので省略する。
キースケジュラ800、700の相違点は、キースケジュラ800のキー保存部801が、第1ないし第4クロックゲート回路811〜814と第1ないし第8レジスタ821〜828とを含むことである。第1ないし第4クロックゲート回路811〜814は、それぞれ二つのレジスタに連結される。即ち、第1クロックゲート回路811が第1及び第2レジスタ821、822に連結され、第2クロックゲート回路812が第3及び第4レジスタ823、824に連結される。また、第3クロックゲート回路813が第5及び第6レジスタ825、826に連結され、第4クロックゲート回路814が第7及び第8レジスタ827、828に連結される。第1ないし第4クロックゲート回路811〜814のそれぞれは、ロードイネーブル信号LD1〜LD4に応答して、第1ないし第8レジスタ821〜828にクロック信号CLKを供給するか、または供給を中断する。その結果、第1ないし第8レジスタ821〜828が入力される信号を保存するか、または保存しない。
図10は、図9に示されたクロックゲート回路とレジスタとを詳細に示す図であって、第1クロックゲート回路811と第1及び第2レジスタ821、822のみが示される。第2ないし第4クロックゲート回路812〜814の構成及び具体的な動作説明は、第1クロックゲート回路811と実質的に同一であるので省略する。図10を参照すると、第1クロックゲート回路811は、ANDゲートで実現できる。第1クロックゲート回路811は、ロードイネーブル信号LD1とクロック信号CLKとを受信する。第1クロックゲート回路811は、ロードイネーブル信号LD1に応答して、クロック信号CLKを第1及び第2レジスタ821、822に出力するか、または出力しない。即ち、第1クロックゲート回路811は、ロードイネーブル信号LD1がイネーブルされる時にクロック信号CLKを出力し、ロードイネーブル信号LD1がディセーブルされる時にクロック信号CLKを出力しない。第1及び第2レジスタ821、822は、クロック信号CLKを受信すれば、入力される信号w[0]、w[1]またはc[8n]、c[8n+1]を保存する。
本発明は図面に示した一実施例に基づいて説明されたが、これは例示的なものに過ぎず、当業者であれば、これから多様な変形及び均等な他の実施例が可能であるという点を理解できるであろう。従って、本発明の真の技術的な保護範囲は、特許請求の範囲の技術的思想により決まらなければならない。
本発明は、小さいチップ面積と少ない消費電力とが要求されるAES暗号化/復号化システムに適している。
従来技術によるキースケジュラを備えるAESアルゴリズムを利用する暗号化/復号化装置のブロック図である。 本発明によるキースケジュラを備える暗号化/復号化装置のブロック図である。 本発明の一実施例によるキースケジュラを詳細に示すブロック図である。 図3に示されたロードイネーブル回路とレジスタとを詳細に示す図である。 図3に示された出力選択部を詳細に示す図である。 図3に示されたキースケジュラにより第1暗号ラウンドキーまたは第1復号ラウンドキーが生成される時、レジスタの出力信号のタイミング図である。 A及びBは、図3に示されたキースケジュラにより第2暗号ラウンドキーまたは第2復号ラウンドキーが生成される時、レジスタの出力信号のタイミング図である。 A及びBは、図3に示されたキースケジュラにより第3暗号ラウンドキーまたは第3復号ラウンドキーが生成される時、レジスタの出力信号のタイミング図である。 本発明の他の実施例によるキースケジュラを詳細に示す図である。 図9に示されたクロックゲート回路とレジスタとを詳細に示す図である。
符号の説明
700 キースケジュラ
701 キー保存部
702 キー演算部
703 キー出力部
711〜718 第1ないし第8ロードイネーブル回路
721〜728 第1ないし第8レジスタ
731〜738 第1ないし第8チェーン演算器
739 独立演算器
741〜743 第1ないし第3選択回路
751 ワードローテーション部
752 ワード置換部
753 ラウンド定数発生器
761〜768 第1ないし第8内部選択回路
770 出力選択部

Claims (29)

  1. 暗号化/復号化装置の暗号化または復号化動作に必要なラウンドキーを生成するキースケジュラにおいて、
    ロードイネーブル信号とクロック信号とに応答して、演算キーデータと保存キーデータのうちいずれか一つを入力キーデータとして受信して保存し、保存された前記入力キーデータを前記保存キーデータとして出力するキー保存部と、
    演算制御信号に応答して前記保存キーデータを演算し、その演算結果として前記演算キーデータを出力するキー演算部と、
    出力制御信号に応答して、各ラウンド毎に前記入力キーデータと前記保存キーデータのうち一部を選択して、暗号ラウンドキーまたは復号ラウンドキーとして出力するキー出力部と、を備え
    前記キー保存部は、
    前記ロードイネーブル信号に応答して、前記演算キーデータと前記保存キーデータのうちいずれか一つを前記入力キーデータとしてそれぞれ出力するロードイネーブル回路と、
    前記クロック信号に応答して、前記ロードイネーブル回路から受信される前記入力キーデータをそれぞれ保存し、保存された前記入力キーデータを前記保存キーデータとしてそれぞれ出力するレジスタと、を備え、
    前記レジスタの全体のサイズは、各ラウンド毎に前記キー出力部から出力される前記暗号ラウンドキー又は前記復号ラウンドキーのサイズよりも大きいことを特徴とするキースケジュラ。
  2. 前記キー保存部は、外部から初期キーデータが受信される時、前記ロードイネーブル信号と前記クロック信号とに応答して前記初期キーデータを保存し、保存された前記初期キーデータを前記保存キーデータとして出力することを特徴とする請求項1に記載のキースケジュラ。
  3. 前記初期キーデータのそれぞれはN(Nは自然数)ビットであり、
    受信される前記初期キーデータの大きさによって、前記キー出力部から出力される前記暗号ラウンドキーの個数及び前記復号ラウンドキーの個数、前記キー演算部により行われる演算動作の反復回数が決定されることを特徴とする請求項2に記載のキースケジュラ。
  4. 前記キー演算部は、前記演算制御信号に応答して、前記初期キーデータの全体ビット数がJ(Jは、前記Nより大きい自然数)ビットである時、前記演算動作をR(Rは、前記Nより小さい自然数)回反復的に行い、前記初期キーデータの全体ビット数がK(Kは、前記Jより大きい自然数)ビットである時、前記演算動作をS(Sは、前記Rより大きく、前記Nより小さい自然数)回反復的に行い、前記初期キーデータの全体ビット数がL(Lは、前記Kより大きい自然数)ビットである時、前記演算動作をT(Tは、前記Sより大きく、前記Nより小さい自然数)回反復的に行うことを特徴とする請求項3に記載のキースケジュラ。
  5. 前記キー出力部は、前記出力制御信号に応答して、前記初期キーデータの全体ビット数が前記Jビットである時、それぞれ前記Jビットを含む前記R個の前記暗号ラウンドキーまたは前記復号ラウンドキーを順次に発生させ、前記初期キーデータの全体ビット数が前記Kビットである時、それぞれ前記Jビットを含む前記S個の前記暗号ラウンドキーまたは前記復号ラウンドキーを順次に発生させ、前記初期キーデータの全体ビット数がLビットである時、それぞれ前記Jビットを含む前記T個の前記暗号ラウンドキーまたは前記復号ラウンドキーを順次に発生させることを特徴とする請求項4に記載のキースケジュラ。
  6. 前記キー出力部は、前記出力制御信号に応答して、前記R番目または前記S番目または前記T番目に出力した前記暗号ラウンドキーを、一番目ラウンドの前記復号ラウンドキーとして出力することを特徴とする請求項1に記載のキースケジュラ。
  7. 前記キー演算部は、前記演算動作を前記初期キーデータの全体ビット数が前記Jビットである時に2R回、前記初期キーデータの全体ビット数が前記Kビットである時に2S回、前記初期キーデータの全体ビット数が前記Lビットである時に2T回それぞれ反復的に行うことを特徴とする請求項1に記載のキースケジュラ。
  8. 前記キー演算部が前記演算動作をR−1回またはS−1回またはT−1回反復的に行う間に、前記キー出力部はディセーブルされ、前記キー演算部が前記R回目または前記S回目または前記T回目前記演算動作を行う時、前記キー出力部がイネーブルされて、前記復号ラウンドキーの出力動作を始めることを特徴とする請求項1に記載のキースケジュラ。
  9. 前記初期キーデータの全体ビット数が前記Jビットである時、前記キー保存部は、前記クロック信号の1周期ごとに前記入力キーデータを保存し、前記初期キーデータの全体ビット数が前記Kビットである時、前記キー保存部は、前記クロック信号の2周期ごとに前記入力キーデータを保存し、前記初期キーデータの全体ビット数が前記Lビットである時、前記キー保存部は、前記クロック信号の一周期ごとに前記入力キーデータのうち一部を保存することを特徴とする請求項1に記載のキースケジュラ。
  10. 前記ロードイネーブル信号のそれぞれは、一対の前記ロードイネーブル回路に印加されることを特徴とする請求項に記載のキースケジュラ。
  11. 前記ロードイネーブル回路は、前記ロードイネーブル信号がイネーブルされる時、前記演算キーデータを前記入力キーデータとして出力し、前記ロードイネーブル信号がディセーブルされる時、前記保存キーデータを前記入力キーデータとして出力することを特徴とする請求項9に記載のキースケジュラ。
  12. 前記初期キーデータの全体ビット数が前記Jビットまたは前記Kビットである時、前記ロードイネーブル回路のうち一部が動作し、前記初期キーデータの全体ビット数が前記Lビットである時、前記ロードイネーブル回路がいずれも動作することを特徴とする請求項11に記載のキースケジュラ。
  13. 前記初期キーデータの全体ビット数が前記Jビットである時に動作する前記ロードイネーブル回路の数は、前記初期キーデータの全体ビット数が前記Kビットである時に動作する前記ロードイネーブル回路の数より小さいことを特徴とする請求項に記載のキースケジュラ。
  14. 前記キー保存部に含まれる前記ロードイネーブル回路及び前記レジスタの数は、それぞれL/N個であることを特徴とする請求項に記載のキースケジュラ。
  15. 前記キー演算部は、
    前記レジスタのそれぞれに対応するように配置され、相互直列連結されて前記保存キーデータと変換キーデータとに応答して、前記演算キーデータをそれぞれ出力するチェーン演算器と、
    置換キーデータとラウンド定数とを論理演算して、前記変換キーデータを出力する独立演算器と、を備えることを特徴とする請求項1に記載のキースケジュラ。
  16. 前記チェーン演算器と前記独立演算器は、それぞれ排他的OR演算を行うことを特徴とする請求項15に記載のキースケジュラ。
  17. 前記チェーン演算器のうち第1チェーン演算器は、前記変換キーデータと前記保存キーデータのうち第1保存キーデータとを論理演算して、前記演算キーデータのうち第1演算キーデータを出力し、残りの前記チェーン演算器のそれぞれは、先端のチェーン演算器から受信される前記演算キーデータと、対応する前記レジスタから受信される前記保存キーデータとを論理演算して前記演算キーデータを出力することを特徴とする請求項15に記載のキースケジュラ。
  18. 前記出力制御信号は、内部選択信号と出力選択信号とを含み、
    前記キー出力部は、
    前記内部選択信号に応答して、前記入力キーデータと前記保存キーデータのうちいずれか一つを選択して、出力キーデータとしてそれぞれ出力する内部選択回路と、
    前記内部選択回路から前記出力キーデータを受信し、前記出力選択信号に応答して前記出力キーデータのうち一部を選択して、前記暗号ラウンドキーまたは前記復号ラウンドキーとして出力する出力選択部と、を備えることを特徴とする請求項15に記載のキースケジュラ。
  19. 前記内部選択信号のそれぞれは、一対の前記内部選択回路に印加されることを特徴とする請求項18に記載のキースケジュラ。
  20. 前記内部選択回路は、前記内部選択信号がイネーブルされる時、前記演算キーデータを選択して前記出力キーデータとして出力し、前記内部選択信号がディセーブルされる時、前記保存キーデータを選択して前記出力キーデータとして出力することを特徴とする請求項19に記載のキースケジュラ。
  21. 前記演算制御信号は、第1ないし第4演算制御信号を含み、
    前記キー演算部は、
    前記第1演算制御信号に応答して、第1チェーン演算器から出力されるいずれか一つの演算キーデータと前記置換キーデータのうちいずれか一つを選択して、その選択された結果を次のチェーン演算器に出力する第1選択回路と、
    前記第2及び第3演算制御信号に応答して、第1内部選択回路、第2内部選択回路、及び第3内部選択回路からそれぞれ出力される第1出力キーデータ、第2出力キーデータ、及び第3出力キーデータのうちいずれか一つを出力する第2選択回路と、
    前記第2選択回路から受信される前記出力キーデータのビットを、設定された回数の間にローテーションして、ローテーションキーデータを出力するワードローテーション部と、
    前記第4演算制御信号に応答して、前記ローテーションキーデータと前記演算キーデータのうちいずれか一つを出力する第3選択回路と、
    前記ローテーションキーデータと前記演算キーデータのうち受信されるいずれか一つを、置換テーブルを利用して前記置換キーデータに置換して出力するワード置換部と、
    前記ラウンド定数を発生させて前記独立演算器に出力するラウンド定数発生器と、をさらに備えることを特徴とする請求項6に記載のキースケジュラ。
  22. 前記第1演算制御信号は、前記初期キーデータの全体ビット数が前記Jビットまたは前記Kビットである時にディセーブルされ、前記初期キーデータの全体ビット数が前記Lビットである時に、クロックサイクルごとに交互的にイネーブル及びディセーブルされ、
    前記初期キーデータの全体ビット数が前記Jビットである時、前記第2及び第3演算制御信号がいずれもディセーブルされ、前記初期キーデータの全体ビット数が前記Kビットである時、前記第2演算制御信号がイネーブルされ、前記第3演算制御信号がディセーブルされ、前記初期キーデータの全体ビット数が前記Lビットである時、前記第2演算制御信号がディセーブルされ、前記第3演算制御信号がイネーブルされ、
    前記第4演算制御信号は、前記初期キーデータの全体ビット数が前記Jビットまたは前記Kビットである時にディセーブルされ、前記初期キーデータの全体ビット数が前記Lビットである時に、クロックサイクルごとに交互的にディセーブル及びイネーブルされ、
    JはKより小さく、KはLより小さいことを特徴とする請求項21に記載のキースケジュラ。
  23. 前記第1選択回路は、前記第1演算制御信号がイネーブルされる時に前記置換キーデータを出力し、前記第1演算制御信号がディセーブルされる時に前記演算キーデータを出力し、
    前記第2選択回路は、前記第2及び第3演算制御信号がディセーブルされる時に前記第1出力キーデータを出力し、前記第2演算制御信号がイネーブルされて前記第3演算制御信号がディセーブルされる時に前記第2出力キーデータを出力し、前記第2演算制御信号がディセーブルされて前記第3演算制御信号がイネーブルされる時に前記第3出力キーデータを出力し、
    前記第3選択回路は、前記第4演算制御信号がイネーブルされる時に前記ローテーションキーデータを出力し、前記第4演算制御信号がディセーブルされる時に前記ローテーションキーデータを出力することを特徴とする請求項22に記載のキースケジュラ。
  24. 前記出力キーデータの全体ビット数は、前記Jビット、前記Kビット、及び前記Lビットのうちいずれか一つであり、
    前記出力選択部は、クロックサイクルごとに前記出力キーデータのうち前記Jビットの出力キーデータを選択して、前記暗号ラウンドキーまたは前記復号ラウンドキーとして出力することを特徴とする請求項21に記載のキースケジュラ。
  25. 前記キー保存部は、
    前記クロック信号に応答して前記演算キーデータをそれぞれ保存し、保存された前記演算キーデータを前記保存キーデータとしてそれぞれ出力するレジスタと、
    前記ロードイネーブル信号に応答して、前記クロック信号を前記レジスタにそれぞれ供給するか、または供給を中断するクロックゲート回路と、を備えることを特徴とする請求項1に記載のキースケジュラ。
  26. データを暗号化するか、または復号化するシステムにおいて、前記システムは、
    コントローラと、
    プロセッサと、
    キースケジュラと、を備え、
    前記コントローラは、前記プロセッサと前記キースケジュラとを制御し、前記プロセッサは、前記キースケジュラにより発生する暗号化または復号化キーに基づいてデータを暗号化して復号化し、
    前記キースケジュラは、
    ロードイネーブル信号とクロック信号とに応答して、演算キーデータと保存キーデータのうちいずれか一つを入力キーデータとして受信して保存し、保存された前記入力キーデータを前記保存キーデータとして出力するキー保存部と、
    演算制御信号に応答して前記保存キーデータを演算し、その演算結果として前記演算キーデータを出力するキー演算部と、
    出力制御信号に応答して、各ラウンド毎に前記入力キーデータと前記保存キーデータのうち一部を選択して、暗号ラウンドキーまたは復号ラウンドキーとして出力するキー出力部と、を備え
    前記キー保存部は、
    前記ロードイネーブル信号に応答して、前記演算キーデータと前記保存キーデータのうちいずれか一つを前記入力キーデータとしてそれぞれ出力するロードイネーブル回路と、
    前記クロック信号に応答して、前記ロードイネーブル回路から受信される前記入力キーデータをそれぞれ保存し、保存された前記入力キーデータを前記保存キーデータとしてそれぞれ出力するレジスタと、を備え、
    前記レジスタの全体のサイズは、各ラウンド毎に前記キー出力部から出力される前記暗号ラウンドキー又は前記復号ラウンドキーのサイズよりも大きいことを特徴とするシステム。
  27. 前記キー保存部は、
    外部から初期キーデータが受信される時、前記ロードイネーブル信号と前記クロック信号とに応答して前記初期キーデータを保存し、保存された前記初期キーデータを前記保存キーデータとして出力することを特徴とする請求項26に記載のシステム。
  28. 前記初期キーデータのそれぞれはN(Nは自然数)ビットであり、
    受信される前記初期キーデータの大きさによって、前記キー出力部から出力される前記暗号ラウンドキーの個数及び前記復号ラウンドキーの個数、前記キー演算部により行われる演算動作の反復回数が決定されることを特徴とする請求項26に記載のシステム。
  29. 前記キー演算部は、
    前記演算制御信号に応答して、前記初期キーデータの全体ビット数がJ(Jは、前記Nより大きい自然数)ビットである時、前記演算動作をR(Rは、前記Nより小さい自然数)回反復的に行い、前記初期キーデータの全体ビット数がK(Kは、前記Jより大きい自然数)ビットである時、前記演算動作をS(Sは、前記Rより大きく、前記Nより小さい自然数)回反復的に行い、前記初期キーデータの全体ビット数がL(Lは、前記Kより大きい自然数)ビットである時、前記演算動作をT(Tは、前記Sより大きく、前記Nより小さい自然数)回反復的に行うことを特徴とする請求項26に記載のシステム。
JP2005054965A 2004-02-26 2005-02-28 可変キー長を有する初期ラウンドキーに対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させるキースケジュラ Active JP4740611B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR2004-012992 2004-02-26
KR1020040012992A KR20050087271A (ko) 2004-02-26 2004-02-26 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치

Publications (2)

Publication Number Publication Date
JP2005242366A JP2005242366A (ja) 2005-09-08
JP4740611B2 true JP4740611B2 (ja) 2011-08-03

Family

ID=34880297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005054965A Active JP4740611B2 (ja) 2004-02-26 2005-02-28 可変キー長を有する初期ラウンドキーに対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させるキースケジュラ

Country Status (4)

Country Link
US (1) US7606365B2 (ja)
JP (1) JP4740611B2 (ja)
KR (1) KR20050087271A (ja)
DE (1) DE102005010779B4 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050087271A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
CN101167301B (zh) * 2005-04-27 2011-02-16 松下电器产业株式会社 机密信息处理用主机及机密信息处理方法
US9191198B2 (en) 2005-06-16 2015-11-17 Hewlett-Packard Development Company, L.P. Method and device using one-time pad data
US8842839B2 (en) * 2005-09-29 2014-09-23 Hewlett-Packard Development Company, L.P. Device with multiple one-time pads and method of managing such a device
US20070177424A1 (en) * 2005-09-29 2007-08-02 Martin Sadler Device with n-time pad and a method of managing such a pad
US7949130B2 (en) 2006-12-28 2011-05-24 Intel Corporation Architecture and instruction set for implementing advanced encryption standard (AES)
US8879727B2 (en) * 2007-08-31 2014-11-04 Ip Reservoir, Llc Method and apparatus for hardware-accelerated encryption/decryption
US8520845B2 (en) * 2007-06-08 2013-08-27 Intel Corporation Method and apparatus for expansion key generation for block ciphers
KR100949538B1 (ko) * 2008-09-09 2010-03-25 한국전자통신연구원 Aes 라인달 알고리즘을 이용하는 암호화 및 복호화 장치와 그 방법
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
GB2508052A (en) * 2012-11-18 2014-05-21 Nds Ltd Glitch resistant device
US9135834B2 (en) * 2013-04-30 2015-09-15 The United Sates of America as represented by the Secretary of the Air Force Apparatus and method to prevent side channel power attacks in advanced encryption standard using floating point operation
EP2996277B1 (en) * 2014-09-10 2018-11-14 Nxp B.V. Securing a crytographic device against implementation attacks
KR102033351B1 (ko) * 2017-08-22 2019-10-17 국민대학교산학협력단 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003015522A (ja) * 2001-06-28 2003-01-17 Fujitsu Ltd 暗号回路
JP2003216024A (ja) * 2002-01-28 2003-07-30 Fujitsu Ltd 暗号回路
JP2004038103A (ja) * 2002-07-08 2004-02-05 Fujitsu Ltd 暗号回路
JP2005077517A (ja) * 2003-08-28 2005-03-24 Mitsumi Electric Co Ltd 暗号化/復号化装置及び暗号化/復号化方法
JP2005527853A (ja) * 2002-05-23 2005-09-15 アトメル・コーポレイション 高度暗号化規格(aes)のハードウェア暗号法エンジン
JP2006527865A (ja) * 2003-06-16 2006-12-07 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート ラインドールブロック暗号化装置、及びその暗号化並びに復号化方法
JP2007500376A (ja) * 2003-05-23 2007-01-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 鍵拡大機能の低メモリハードウェア実施のための方法および装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
JP3992742B2 (ja) * 1996-05-20 2007-10-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データブロックおよび鍵を非線形的に結合する暗号方法および装置
US5745577A (en) * 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
KR100389902B1 (ko) * 1997-06-23 2003-09-22 삼성전자주식회사 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
JP2000056679A (ja) * 1998-08-11 2000-02-25 Fujitsu Ltd Desの鍵スケジュール装置
ES2244639T3 (es) * 2000-08-03 2005-12-16 Koninklijke Philips Electronics N.V. Transformacion lineal para cifrado de claves simetricas.
US20020061107A1 (en) * 2000-09-25 2002-05-23 Tham Terry K. Methods and apparatus for implementing a cryptography engine
US7142671B2 (en) * 2000-12-13 2006-11-28 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US7502463B2 (en) * 2000-12-13 2009-03-10 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US7366300B2 (en) * 2000-12-13 2008-04-29 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
KR100525389B1 (ko) * 2001-01-17 2005-11-02 엘지전자 주식회사 실시간 입력 스트림의 암호화/복호화 장치
US7280657B2 (en) * 2001-06-13 2007-10-09 Itt Manufacturing Enterprises, Inc. Data encryption and decryption system and method using merged ciphers
US20030086564A1 (en) * 2001-09-05 2003-05-08 Kuhlman Douglas A. Method and apparatus for cipher encryption and decryption using an s-box
GB0121793D0 (en) * 2001-09-08 2001-10-31 Amphion Semiconductor Ltd An apparatus for generating encryption/decryption keys
KR20030051111A (ko) 2001-12-18 2003-06-25 신경욱 AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로
GB0214620D0 (en) 2002-06-25 2002-08-07 Koninkl Philips Electronics Nv Round key generation for AES rijndael block cipher
US20040047466A1 (en) * 2002-09-06 2004-03-11 Joel Feldman Advanced encryption standard hardware accelerator and method
US20060198524A1 (en) * 2003-05-14 2006-09-07 Sexton Bonnie C Hardware implementation of the mixcolumn/invmiscolumn functions
KR100546375B1 (ko) * 2003-08-29 2006-01-26 삼성전자주식회사 자체 오류 감지 기능을 강화한 상호 의존적 병렬 연산방식의 하드웨어 암호화 장치 및 그 하드웨어 암호화 방법
KR20050087271A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
US7561689B2 (en) * 2004-06-17 2009-07-14 Agere Systems Inc. Generating keys having one of a number of key sizes
US7715555B2 (en) * 2004-09-07 2010-05-11 Broadcom Corporation Method and system for extending advanced encryption standard (AES) operations for enhanced security
US8538015B2 (en) * 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003015522A (ja) * 2001-06-28 2003-01-17 Fujitsu Ltd 暗号回路
JP2003216024A (ja) * 2002-01-28 2003-07-30 Fujitsu Ltd 暗号回路
JP2005527853A (ja) * 2002-05-23 2005-09-15 アトメル・コーポレイション 高度暗号化規格(aes)のハードウェア暗号法エンジン
JP2004038103A (ja) * 2002-07-08 2004-02-05 Fujitsu Ltd 暗号回路
JP2007500376A (ja) * 2003-05-23 2007-01-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 鍵拡大機能の低メモリハードウェア実施のための方法および装置
JP2006527865A (ja) * 2003-06-16 2006-12-07 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート ラインドールブロック暗号化装置、及びその暗号化並びに復号化方法
JP2005077517A (ja) * 2003-08-28 2005-03-24 Mitsumi Electric Co Ltd 暗号化/復号化装置及び暗号化/復号化方法

Also Published As

Publication number Publication date
DE102005010779A1 (de) 2005-09-22
JP2005242366A (ja) 2005-09-08
DE102005010779B4 (de) 2010-07-08
US20050190923A1 (en) 2005-09-01
KR20050087271A (ko) 2005-08-31
US7606365B2 (en) 2009-10-20

Similar Documents

Publication Publication Date Title
JP4740611B2 (ja) 可変キー長を有する初期ラウンドキーに対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させるキースケジュラ
JP4890976B2 (ja) 暗号処理装置
US9843441B2 (en) Compact, low power advanced encryption standard circuit
US7561689B2 (en) Generating keys having one of a number of key sizes
Chu et al. Low area memory-free FPGA implementation of the AES algorithm
EP3839788A1 (en) Bit-length parameterizable cipher
WO2009031883A1 (en) Encryption processor
US9166795B2 (en) Device and method for forming a signature
Dao et al. An energy efficient aes encryption core for hardware security implementation in iot systems
JP2010245881A (ja) 暗号処理装置
US20140369499A1 (en) Cryptographic device, cryptographic processing method, and cryptographic processing program
KR100478974B1 (ko) 직렬 유한체 승산기
Plos et al. Compact hardware implementations of the block ciphers mCrypton, NOEKEON, and SEA
KR20030051111A (ko) AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로
Hongsongkiat et al. AES implementation for RFID Tags: The hardware and software approaches
Dhanuskodi et al. An improved clocking methodology for energy efficient low area AES architectures using register renaming
KR20020087331A (ko) 부분 라운드간 파이프라인 기법을 이용한 AES Rijndael암호 및 복호 회로
Hinds et al. An asynchronous advanced encryption standard core design for energy efficiency
WO2009034393A1 (en) Aes-encryption apparatus and method
KR100986226B1 (ko) 연산 장치 및 암호화/복호화 장치
KR20060014420A (ko) 암호화/암호 해독용 장치, 메모리 요구량 감소 방법 및컴퓨터 프로그램 제품
KR100935372B1 (ko) 라인달 알고리즘을 이용한 암호화 및 복호화 장치
JP4230152B2 (ja) 暗号回路
KR100316025B1 (ko) 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치
Taha et al. Accelerated Software Implementation of Authenticated Encryption Stream Ciphers for High Speed Applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110318

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110502

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4740611

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250