JP4684550B2 - 多数の動作モードを支援する暗号化装置 - Google Patents

多数の動作モードを支援する暗号化装置 Download PDF

Info

Publication number
JP4684550B2
JP4684550B2 JP2003426676A JP2003426676A JP4684550B2 JP 4684550 B2 JP4684550 B2 JP 4684550B2 JP 2003426676 A JP2003426676 A JP 2003426676A JP 2003426676 A JP2003426676 A JP 2003426676A JP 4684550 B2 JP4684550 B2 JP 4684550B2
Authority
JP
Japan
Prior art keywords
data
encryption
multiplexer
mode
register
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.)
Expired - Fee Related
Application number
JP2003426676A
Other languages
English (en)
Other versions
JP2004226966A (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 JP2004226966A publication Critical patent/JP2004226966A/ja
Application granted granted Critical
Publication of JP4684550B2 publication Critical patent/JP4684550B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Description

本発明はデータ暗号化に関するものであり、さらに具体的には、データを暗号化/復号化する暗号化装置に関するものである。
暗号化技術はメッセージ送信の安全を保障するためによく使われている。暗号化技術は送信側(transmission side)でメッセージ(以下、プレーンテキスト(plain text)という)を符号化し、受信側(receiving side)でメッセージ(以下、サイファテキスト(cipher text)という)を解読または復号化する。このようなメッセージの符号化及び復号化は暗号化技術として広く知られている。
データ暗号化標準(Data Encryption Standard:DES)は多くの国々とANSI(American National Standards Institute)で標準に採用されたブロック単位暗号化プロトコルである。これ以外にも、暗号化プロトコルには3−DES及びAESなどがある。ブロック単位暗号化プロトコルでは多様な動作モードすなわち、ECB(Electronic Codebook)、CBC(Cipher Block Chaining)、OFB(Output Feedback)、及びCFB(Cipher Feedback)などを定義している。最近では、カウンタ(counter)モード及びOCB(Offset Codebook)モードなども提案された。
このような多様な動作モードは個別的なハードウェアで実現することができる。しかし、多様な動作モードを一つのチップで実現するためには、多数のゲートが必要である。
本発明の目的は、多数の動作モードを支援する暗号化装置を提供することにある。
本発明の他の目的は、簡単な回路構成を有し、多数の動作モードを支援する暗号化装置を提供することにある。
本発明のさらに他の目的は、多数の動作モードを支援する通信システムを提供することにある。
上述のような目的を達成するために、本発明の特徴によると、メモリに貯蔵されたデータを暗号化するための暗号化装置は、外部から提供される暗号化情報に応答して制御信号を生成する制御ユニットと、前記メモリから前記データを読み出すメモリコントローラと、前記メモリコントローラによって読み出されたデータを貯蔵するための入力バッファと、前記入力バッファに貯蔵されたデータブロックを暗号化するための暗号化ユニットと、前記暗号化ユニットにより暗号化されたデータを貯蔵するための出力バッファとを含む。前記メモリコントローラは前記出力バッファに貯蔵された前記暗号化されたデータを前記メモリに書き込み、前記メモリコントローラ、前記入力バッファ、前記暗号化ユニット及び前記出力バッファは前記制御信号に応答して動作する。
望ましい形態において、前記制御ユニットは、前記暗号化情報に応答して初期ベクタ及び動作モードを示す動作モード信号を生成する。
この形態において、前記動作モードは、ECB(Electronic Codebook)モード、CBC(Cipher Block Chaining)モード、CBC−MAC(CBC−Message Authetication Code)モードまたはCNT(Counter)モードのうちいずれか一つである。
この形態において、前記暗号化ユニットは、前記入力バッファから提供されたデータを貯蔵するためのデータ入力レジスタと、前記データ入力レジスタに貯蔵されたデータを暗号化する暗号化器と、前記暗号化器によって暗号化されたデータを貯蔵するためのデータ出力レジスタとを含む。
この形態において、前記暗号化ユニットは前記ECBモードで動作する。
望ましい形態において、前記暗号化ユニットは、前記制御ユニットから提供された初期ベクタを貯蔵するための初期ベクタレジスタと、前記初期ベクタレジスタに貯蔵された前記初期ベクタと前記データ入力レジスタに貯蔵されたデータを論理演算する第1論理演算器とをさらに含む。
この形態において、前記暗号化ユニットは前記CBCまたはCBC−MACモードのうちいずれか一つで動作する。
この形態において、前記暗号化ユニットが前記CBC−MACモードで動作する時に、前記メモリコントローラは前記出力バッファに貯蔵された暗号化されたデータを前記メモリに書き込まない。
望ましい形態において、前記暗号化ユニットは、前記制御ユニットから提供された初期ベクタを貯蔵するための初期ベクタレジスタと、前記初期ベクタレジスタに貯蔵されたデータに予め設定された値を加えて前記初期ベクタレジスタに再貯蔵する加算器と、前記初期ベクタレジスタに貯蔵されたデータを暗号化する暗号化器と、前記入力バッファから提供されたデータを貯蔵するためのデータ入力レジスタと、前記暗号化器によって暗号化されたデータと前記データ入力レジスタに貯蔵されたデータを論理演算するための第2論理演算器と、前記第2論理演算器の出力を貯蔵するためのデータ出力レジスタとを含む。
この形態において、前記暗号化ユニットは前記CNTモードで動作する。
望ましい形態において、前記暗号化ユニットは、前記制御ユニットからの初期ベクタを貯蔵する初期ベクタレジスタと、前記入力バッファからの前記データを貯蔵するデータ入力レジスタと、入力データを暗号化する暗号化器と、前記出力バッファに提供されるデータを貯蔵するデータ出力レジスタと、加算器と、前記動作モード信号に応答して、前記初期ベクタレジスタに貯蔵されたデータ、前記初期ベクタレジスタに貯蔵されたデータ及び前記データ入力レジスタに貯蔵されたデータを論理演算した結果データ、または前記データ入力レジスタに貯蔵されたデータのうち一つを前記暗号化器の入力データとして提供し、前記動作モード信号に応答して、前記初期ベクタレジスタに貯蔵されたデータを前記加算器に伝達する第1選択回路と、前記動作モード信号に応答して、前記データ入力レジスタに貯蔵されたデータ及び前記ブロック暗号化器によって暗号化されたデータを論理演算した結果データまたは前記ブロック暗号化器によって暗号化されたデータを前記データ出力レジスタに伝達し、前記動作モード信号に応答して、前記暗号化器によって暗号化されたデータを前記初期ベクタレジスタに伝達する第2選択回路とを含む。前記加算器は前記第1選択回路から提供されたデータに予め設定された値を加えて前記初期ベクタレジスタに貯蔵する。
この形態において、前記第1選択回路は、第1マルチプレクサと、第1論理演算器と、前記モード信号に応答して、前記初期ベクタレジスタに貯蔵されたデータを前記加算器と前記第1マルチプレクサに、または前記第1論理演算器に伝達する第2マルチプレクサと、前記モード信号に応答して、前記データ入力レジスタに貯蔵されたデータを前記第1論理演算器または前記第1マルチプレクサに伝達する第3マルチプレクサとを含む。前記第1論理演算器は前記第2及び第3マルチプレクサからの出力を受け入れて論理演算し、前記第1マルチプレクサは前記モード信号に応答して、前記第2マルチプレクサ、前記第1論理演算器または前記第3マルチプレクサの出力を前記ブロック暗号化器に伝達する。前記第2選択回路は、第4マルチプレクサ、第2論理演算器、及び前記モード信号に応答して、前記暗号化器の出力を前記第2論理演算器または前記第4マルチプレクサまたは/および前記初期ベクタレジスタに伝達する第5マルチプレクサを含む。前記第2論理演算器は前記第3及び第5マルチプレクサの出力を受け入れて論理演算し、前記第4マルチプレクサは前記第2論理演算器または前記第5マルチプレクサの出力を前記データ出力データに伝達する。
望ましい形態において、前記制御ユニットは、前記入力バッファに貯蔵されたデータがブロック単位に前記暗号化ユニットに提供されるように制御する。
この形態において、前記制御ユニットは、前記入力バッファに貯蔵された最後のデータが予め設定されたブロックサイズより小さい時に、ゼロ−パディング(zero−padding)を実行する。
望ましい形態において、前記入力バッファはFIFO(First−In First−Out)バッファであり、少なくとも二つのデータブロックを貯蔵する。
望ましい形態において、前記出力バッファはFIFOバッファであり、少なくとも二つの暗号化されたデータブロックを貯蔵する。
望ましい形態において、前記メモリコントローラは、DMA(Direct Memory Access)コントローラである。
本発明の他の特徴によると、通信システムは、メモリと、前記メモリに貯蔵されたデータを暗号化するための暗号化装置と、前記暗号化装置の動作を制御する中央処理装置とを含む。前記暗号化装置は、前記中央処理装置から提供される暗号化情報に応答して制御信号を生成する制御ユニットと、前記メモリから前記データを読み出すメモリコントローラと、前記メモリコントローラによって読み出されたデータを貯蔵するための入力バッファと、前記入力バッファに貯蔵されたデータブロックを暗号化するための暗号化ユニットと、前記暗号化ユニットによって暗号化されたデータを貯蔵するための出力バッファとを含む。前記メモリコントローラは前記出力バッファに貯蔵された前記暗号化されたデータを前記メモリに書き込み、前記メモリコントローラ、前記入力バッファ、前記暗号化ユニット及び前記出力バッファは前記制御信号に応答して動作する。
本発明によると、小さくて簡単な素子を利用してECB、CBC、CBC−MAC、カウンタ及びOCBモードなどで動作することができる暗号化装置が実現される。また、CPUと暗号化装置との間のデータの送受信を最少化することによって、通信システムの性能を向上させる。一方、暗号化装置内に構成される入力バッファ及び出力バッファが各々少なくとも二つのブロックを貯蔵することができるように構成することによって、暗号化装置の性能を極大化することができる。さらに、暗号化装置がゼロ−パディング機能を支援することによって、CPUが処理しなければならない作業を最少化する。
以下本発明の望ましい実施の形態を添付の図面を参照して詳細に説明する。
図1は本発明の望ましい実施の形態による暗号化装置を具備した通信システムを示す図である。暗号化装置を具備した通信システムにはデスクトップコンピュータ、携帯用コンピュータ、PDA及び携帯電話などがある。図1を参照すると、通信システムは、CPU10、メモリ20、暗号化装置30、アービタ40、及びシステムバス50を含む。
メモリ20は暗号化プログラムを貯蔵しており、プレーンテキストとサイファテキストを貯蔵する。CPU10はメモリ20に貯蔵された暗号化プログラムに応じて暗号化装置30が動作するように制御する。アービタ40はシステムバス50にいくつかのDMAマスタが連結されている時に、バス50を使用することができる権限を特定DMAマスタに付与する。図1に示した通信システムでは、CPU10と暗号化ユニット30がDMAマスタとして機能するので、アービタ40が必要である。
図2は図1に示した暗号化装置30の詳細な構成を示すブロック図である。図2を参照すると、暗号化装置30は制御ユニット31、DMAコントローラ32、入力バッファ33、出力バッファ34、及びブロック暗号化ユニット35を含む。
制御ユニット31はCPU10から提供される暗号化情報すなわち、ソースアドレス(Source Address、SA)、目的アドレス(Destination Address、DA)、データサイズ(data size:D_SIZE)、ブロックサイズ(block size:B_SIZE)、キー(key :K)、キーサイズ(key size)、方向(direction)暗号化(encryption)または復号化(decryption)、初期ベクタ(Initialization Vector)及び動作モードが入力されれば、暗号化装置30内の構成要素を制御する。DMAコントローラ32は制御ユニット31の制御に応答して、メモリ20のソースアドレスSAに貯蔵されたプレーンテキストを読み出して入力バッファ33に貯蔵し、出力バッファ34に貯蔵されたサイファテキストをメモリ20の目標アドレスDAに貯蔵する。入力バッファ33に貯蔵されたプレーンテキストはブロック単位にブロック暗号化ユニット35に伝達される。例えば、ブロック暗号化ユニット35が128ビットAESで構成される場合に、入力バッファ33からブロック暗号化ユニット35に伝達されるブロックのサイズは128ビットである。出力バッファ34はブロック暗号化ユニット35からのサイファテキストブロックを貯蔵し、制御ユニット31の制御に従って貯蔵されたサイファテキストをDMAコントローラ32に伝達する。入力バッファ33及び出力バッファ34は各々FIFOバッファで構成され、サイズはブロック暗号化ユニット35で処理するブロックのサイズの2倍である。したがって、入力バッファ33及び出力バッファ34は二つのブロックを各々貯蔵することができる。例えば、ブロック暗号化ユニット35が一回に処理するプレーンテキストブロックのサイズが128ビットであれば、入力バッファ33及び出力バッファ34のサイズは各々256ビットである。この実施の形態で、入力バッファ33及び出力バッファ34は各々二つのブロックを貯蔵することができると説明したが、入力バッファ33及び出力バッファ34のサイズは多様に変更することができる。ブロック暗号化ユニット35は例えば、AES(Advanced Encryption Standard)ブロック暗号化器を含む。ブロック暗号化ユニット35の詳細な回路構成及び動作は以下詳細に説明される。
図3乃至図5は図2に示したブロック暗号化ユニット35の動作モードによる回路構成を示す図である。先ず、図3は図2に示したブロック暗号化ユニット35がECB(Electronic Codebook)モードで動作するために必要な回路構成を示している。図3を参照すると、ECBモードのブロック暗号化ユニット35aはデータ入力レジスタ110、データ出力レジスタ120、及びブロック暗号化器130を含む。図2に示した入力バッファ33からのプレーンテキストブロックはデータ入力レジスタ110を通じてブロック暗号化器130に入力される。ブロック暗号化器130は制御ユニット31から与えられるキーKに従って暗号化を実行し、サイファテキストをデータ出力レジスタ120に出力する。データ出力レジスタ120に貯蔵されたデータは図2に示した出力バッファ34に出力される。
図4は図2に示したブロック暗号化ユニット35がCBCモードまたはCBC−MACで動作するために必要な回路構成を示す。
図4を参照すると、ブロック暗号化ユニット35bは初期値レジスタ210、データ入力レジスタ220、データ出力レジスタ230、EXCLUSIVE−OR演算器240、及びブロック暗号化器250を含む。データ入力レジスタ220を通じて図2に示した入力バッファ33から入力されたプレーンテキストブロックと初期値レジスタ210に設定された初期ベクタ(initializaton vector)データはEXCLUSIVE−OR演算器240でEXCLUSIVE−OR演算される。初期値レジスタ210に設定される初期ベクタデータは制御ユニット31から提供される。EXCLUSIVE−OR演算器240の演算結果はブロック暗号化器250に伝達される。ブロック暗号化器250は制御ユニット31から提供されたキーKに従ってEXCLUSIVE−OR演算器240の演算結果を暗号化する。ブロック暗号化器250からのサイファテキストはデータ出力レジスタ230と初期値レジスタ210に貯蔵される。データ出力レジスタ230に貯蔵されたデータは、CBCモードである時は、図2の出力バッファ34に出力されるが、CBC−MACモードである時は、出力バッファ34に出力されない。CBC−MACモードでは、メモリ20に貯蔵されたプレーンテキストが全部暗号化された後に、初期値レジスタ210に貯蔵された最終データだけが出力バッファ34に出力される。
図5は図2に示したブロック暗号化ユニット35がCNT(Counter)モードで動作するために必要な回路構成を示す。図5を参照すると、ブロック暗号化ユニット35cは、レジスタ310、データ入力レジスタ320、データ出力レジスタ330、加算器340、ブロック暗号化器350、及びEXCLUSIVE−OR演算器360を含む。
レジスタ310には制御ユニット31から提供された初期データが貯蔵される。加算器340はレジスタ310に貯蔵されたデータに1を加える。加算器340の出力はレジスタ310に再貯蔵される。ブロック暗号化器350は制御ユニット31から提供されたキーKに従ってレジスタ310に貯蔵されたデータを暗号化する。データ入力レジスタ320は図2に示した入力バッファ33からのプレーンテキストブロックを貯蔵する。EXCLUSIVE−OR演算器360はブロック暗号化器350からの出力とデータ入力レジスタ320に貯蔵されたプレーンテキストをEXCLUSIVE−OR演算し、その結果をデータ出力レジスタ330に貯蔵する。データ出力レジスタ330に貯蔵されたデータはサイファテキストとして、図2の出力バッファ34に出力される。
図3乃至図5に示したように、ブロック暗号化ユニット35は暗号化モードに従って少しずつ異なる回路構成を要する。しかし、各々のモードのための回路を個別的に構成したら、回路面積は大きくなるであろう。本発明では簡単な回路構成を有し、先の説明の暗号化モードで全部動作することができるブロック暗号化ユニットを提供する。図6は本発明の望ましい実施の形態によるブロック暗号化ユニット35を示す。
図6を参照すると、ブロック暗号化ユニット35はレジスタ410、データ入力レジスタ420、データ出力レジスタ430、加算器440、マルチプレクサ450〜454、EXCLUSIVE−OR演算器461、462、及びブロック暗号化器470を含む。WLANに本発明が適用される場合に、図6に示したブロック暗号化器470はAES(Advanced Encryption Standard)ブロック暗号化器で構成されるが、他の応用分野ではDES(Data Encryption Standrd)または3−DESなど他のブロック暗号化器で構成することができる。
レジスタ410はCBC、CBC−MAC及びCNTモードで使用され、図2の制御ユニット31により初期値が設定される。データ入力レジスタ420は図2の入力バッファ33から入力されるプレーンテキストブロックを貯蔵する。データ出力レジスタ430はマルチプレクサ452から出力されるサイファテキストを貯蔵する。マルチプレクサ450〜454は制御ユニット31からのモード信号MDに応答して各々動作する。モード信号MDはブロック暗号化ユニット35の動作モードを示す信号として、多数のビットで構成される。この実施の形態で、ブロック暗号化ユニット35はECB、CBC、CBC−MACまたはCNTモードで動作することができるので、モード信号MDは2ビットである。例えば、モード信号MDが‘00’であればECBモード、‘01’であればCBCモード、‘10’であればCBC−MACモード、‘11’であればCNTモードを示す。図6で、太い点線はCNTモードでのデータ移動経路を示し、太い実線はCBCまたはCBC−MACモードでのデータ移動経路、細い点線はECBモードでのデータ移動経路を示す。そして細い実線はすべてのモードでのデータ移動経路を示す。
マルチプレクサ450はモード信号MDがCNTモードを示す時に、レジスタ410に貯蔵されたデータを加算器440とマルチプレクサ453に伝達し、モード信号MDが CBCモードまたはCBC−MACモードを示す時に、レジスタ410に貯蔵されたデータをEXCLUSIVE−OR演算器461に伝達する。マルチプレクサ451はモード信号MDがCBCモードまたはCBC−MACモードを示す時に、レジスタ420に貯蔵されたプレーンテキストブロックをEXCLUSIVE−OR演算器461に伝達し、モード信号MDがECBモードを示す時に、レジスタ420に貯蔵されたプレーンテキストブロックをマルチプレクサ453に伝達し、モード信号MDがCNTモードを示す時に、レジスタ420に貯蔵されたプレーンテキストブロックをEXCLUSIVE−OR演算器461に伝達する。マルチプレクサ453はモード信号MDに応答してマルチプレクサ450、451またはEXCLUSIVE−OR演算器461の出力のうち一つをブロック暗号化器470に伝達する。すなわち、マルチプレクサ453は、モード信号MDがCNTモードを示す時に、マルチプレクサ450の出力を、モード信号MDがCBCまたはCBC−MACモードを示す時に、EXCLUSIVE−OR演算器461の出力を、モード信号MDがECBモードを示す時に、マルチプレクサ451の出力をブロック暗号化器470に伝達する。
マルチプレクサ454はモード信号MDに応答してブロック暗号化器470から出力されるサイファテキストをEXCLUSIVE−OR演算器462、マルチプレクサ452または/およびレジスタ410に伝達する。すなわち、マルチプレクサ454は、モード信号MDがCNTモードを示す時に、ブロック暗号化器470からのサイファテキストをEXCLUSIVE−OR演算器462に、モード信号MDがECBモードを示す時に、ブロック暗号化器470からのサイファテキストをマルチプレクサ452に、そしてモード信号MDがCBC及びCBC−MACモードを示す時に、ブロック暗号化器470からのサイファテキストをマルチプレクサ452及びレジスタ410に伝達する。マルチプレクサ452はモード信号MDがCNTモードを示す時に、EXCLUSIVE−OR演算器462からの演算結果を、そしてECB、CBCまたはCBC−MACモードである時に、マルチプレクサ454の出力をデータ出力レジスタ430に伝達する。
上述のように、本発明のブロック暗号化ユニット35は、レジスタ410、420、430、加算器440、マルチプレクサ450〜454、EXCLUSIVE−OR演算器461、462、及びブロック暗号化器470を含み、ECB、CBC、CBC−MAC及びCNTモードを全部実行することができる。
図7は図1に示した暗号化装置30とメモリ20との間のデータの送受信を例示的に示している。暗号化装置30はCPU10から提供されたソースアドレスSA、目標アドレスDA及びデータサイズD_SIZEなどに従ってメモリ20をアクセスする。図7に示したように、暗号化装置30はメモリ20のソースアドレスSAに貯蔵されたプレーンテキストを読み出して暗号化を実行する。そして、暗号化装置30は暗号化されたサイファテキストをメモリ20の目標アドレスDAに貯蔵する。暗号化装置30は第0読み出し段階R0で読み出されたプレーンテキストPT0に対する暗号化が完了すると、第0書き込み段階W0でサイファテキストCT0をメモリ20に書き込む。このような方法で、残りの読み出し段階R1、R2及びR3と残りの書き込み段階W0、W1及びW2が順次に実行される。しかし、暗号化装置30が第0読み出し段階R0を実行した後に、第0書き込み段階W0を実行し、再び第1読み出し段階R1を実行することは、暗号化装置30の性能低下を誘発する。なぜなら、暗号化装置30がメモリ20にサイファテキストを書き込む間暗号化装置30内のブロック暗号化ユニット35はどのような動作もしなくて休むようになるためである。本発明では、このような問題を解決するため、先の説明のように、入力バッファ33と出力バッファ34(図2参照)を各々ブロックサイズの2倍サイズで構成する。したがって、R0、W0、R1及びW1のように読み出し段階と書き込み段階を順次にせず、読み出し段階と書き込み段階を多様に変形することができる。読み出し及び書き込み方法について以下詳細に説明する。
先の説明のように、暗号化装置30が最大の性能を発揮することができるように、ブロック暗号化ユニット35のアイドル時間(idle time)を最少化しなければならない。そのためには、入力データの欠乏(starvation)状態を防止することが重要である。本発明では入力バッファ33のサイズがブロック暗号化ユニット35に入力されるブロックのサイズの2倍すなわち、入力バッファ33が二つのブロックを貯蔵する。したがって、ブロック暗号化ユニット35が暗号化プロセスを実行する間入力バッファ33には新しいデータが書き込まれるようにすることができる。また、ブロック暗号化ユニット35から出力されたサイファテキストが出力バッファ34に一時貯蔵されることによって、メモリ20にサイファテキストが書き込まれる前でも、ブロック暗号化ユニット35は次のプレーンテキストブロックに対する暗号化プロセスを実行することができるようになる。
一方、DMAコントローラ32はメモリ20からプレーンテキストを読み出す動作とサイファテキストをメモリ20に書き込む動作を同時に実行することができない。したがって、制御ユニット31は予め設定された優先順位に応じてDMAコントローラ32が読み出し及び書き込みプロセスを実行するように制御する。次の表1は入力バッファ33と出力バッファ34に貯蔵されたブロックの個数によるDMAコントローラ32の動作優先順位を示す。
Figure 0004684550
表1の基本概念は入力バッファ33に空いている空間があれば、読み出し動作が優先順位であり、出力バッファ34に少なくとも一つのブロックが貯蔵されていれば、書き込み動作に優先順位があることである。表1で、入力バッファ33が完全に空いており、出力バッファ34が完全に満たされている時に、ブロック暗号化ユニット35が動作していなかったら、入力バッファ33にプレーンテキストブロックを入れる読み出し動作を実行してブロック暗号化ユニット35が動作することができるように制御した後に、出力バッファ34に貯蔵されたサイファテキストをメモリ20に書き込むことが望ましい。しかし、入力バッファ33が完全に空いており、出力バッファ34が完全に満たされている時に、ブロック暗号化ユニット35が動作していたら、読み出しまたは書き込み動作のうちどれを先に実行してもよい。しかし、動作の基準は必要であるので、このような場合には、DMAコントローラ32が読み出し動作を実行すると設定する。表1のNOP(no operation)はDMAコントローラ32がどのような動作も実行しないことを示す。
このように、入力バッファ33と出力バッファ34が各々少なくとも二つのブロックを貯蔵することができるように構成することによって、システムバス50が動作BUSY状態にあっても、暗号化ユニット35はバッファ33、34を利用してブロック暗号化プロセスを実行することができる。
図8は図2に示したDMAコントローラ32のFSM(Finite State Machine)を示す。図8で、読み出し制御信号MORE_DATARは、メモリ20のソースアドレスSAから読み出して暗号化プロセスを実行しなければならない全体データのサイズD_SIZEが現在までDMAコントローラ32によってメモリ20から読み出されたデータのサイズより大きい時に1、そして同一、またはより小さい時に0である。書き込み制御信号MORE_DATAWは、暗号化プロセスが実行された後に、メモリ20の目標アドレスDAに書き込まれる全体データのサイズDATA_SIZEが現在までDMA コントローラ32によって書き込まれたデータのサイズより大きい時に1、そして同一、またはより小さい時に0になる。
制御ユニット31は次の数1を満足する時に、DMAコントローラ32が休止状態510から読み出し状態520に遷移するように制御する。
[数1]
MORE_DATAR&&(RBUFCNT!=2)&&(RBUFCNT!=1||WBUFCNT!=2)=1
DMAコントローラ32はメモリ20からデータを読み出す動作DMA_READが完了すると、読み出し完了信号DMA_READ_DONEを活性化し、読み出し状態520から休止状態510に遷移する。この時に、読み出しカウントDMA_READ_CNT値が1だけ増加する。
制御ユニット31は次の数2を満足する時に、DMAコントローラ32が休止状態510から書き込み状態530に遷移する。
[数2]
MORE_DATAW&&((RBUFCNT=2)||(RBUFCNT=1&&WBUFCNT=2))&&!CBC−MAC=1
DMAコントローラ32はメモリ20にデータを書き込む動作DMA_WRITEが完了すると、書き込み完了信号DMA_WRITE_DONEを活性化し、書き込み状態530から休止状態510に遷移する。この時に、書き込みカウントDMA_WRITE_CNT値が1だけ増加する。読み出し完了信号DMA_READ_DONEと書き込み完了信号DMA_WRITE_DONEは制御ユニット31に提供され、読み出しカウントDMA_READ_CNTと書き込みカウントDMA_WRITE_CNTは制御ユニット31内に構成されたカウンタ(図示しない)の値である。
メモリ20から読み出されるデータのサイズDATA_SIZEと読み出しカウントDMA_READ_CNTの関係による読み出し制御信号MORE_DATARの状態、そしてメモリ20に書き込まれるデータのサイズDATA_SIZEと書き込みカウントDMA_WRITE_CNTの関係による書き込み制御信号MORE_DATAWの状態が次の表2及び表3に各々整理されている。
Figure 0004684550
Figure 0004684550
図9は図2に示した入力バッファ33、出力バッファ34、及びブロック暗号化ユニット35の関係によるFSMを示している。図9を参照すると、制御ユニット31は、ブロック暗号化ユニット35で処理しなければならないデータが残っていれば(すなわち、読み出し制御信号MORE_DATARが1であれば)ブロック暗号化ユニット35を休止状態610からブロック暗号化ユニット35チェック状態620に遷移させる。ブロック暗号化ユニット35は暗号化プロセスを始める準備が完了した時に、入力準備信号INPUT_READYを1に活性化し、現在入力されたブロックに対する暗号化プロセスが終了した時に、終了信号OUTPUT_READYを1に活性化する。
チェック状態620に置かれたブロック暗号化ユニット35は、入力準備信号INPUT_READYが1であり、そして入力バッファ33に少なくとも一つのデータがあれば、入力バッファ33からブロック暗号化ユニット35にデータを送信する状態640に遷移する。入力バッファ33からブロック暗号化ユニット35にデータ送信が完了すれば、ブロック暗号化ユニット35は入力完了信号INPUT_DONEを活性化し、再びチェック状態620に遷移する。
チェック状態620に置かれたブロック暗号化ユニット35は、出力準備信号OUTPUT_READYが1であり、そして出力バッファ34がいっぱいになっていなければ、ブロック暗号化ユニット35から出力バッファ34にデータを送信する状態640に遷移する。ブロック暗号化ユニット35から出力バッファ34にデータ送信が完了すると、ブロック暗号化ユニット35は出力完了信号OUTPUT_DONEを活性化し、再びチェック状態620に遷移する。
図8及び図9で、CBC_MACモードの場合に、各ブロックに対する暗号化プロセスが完了した時に生成されるサイファテキストは不要であるので、メモリ20に書き込む必要がない。したがって、暗号化装置30のシステムバス50の使用を最少化するために、CBC−MACモードでは、各ブロックに対するサイファテキストをメモリ20に書き込まない。CBC−MACモードでは、すべてのブロックに対する暗号化プロセスが終了した時に、レジスタ410に貯蔵されたデータをメモリ20の目標アドレスDAに一回書き込めばよい。
図10および図11はデータの最後に‘0’を挿入するゼロ−パディングを例示的に示している。図10を参照すると、データフレームがn個のブロックで構成され、1ブロックのサイズはL1である時に、最後のn番目のブロックのサイズは常にL1ではない。例えば、n番目のブロックのサイズL2がL1より小さければ、n番目のブロックのサイズがL1になるように、データの最後に‘0’を挿入するゼロ−パディングが実行される。本発明ではCPU10と暗号化装置30との間のデータの送受信を最少化するために暗号化装置30内でゼロ−パディングを実行する。すなわち、制御ユニット31は初期にCPU10から受信されるデータサイズがブロックサイズの整数倍でなければ、DMAコントローラ32を通じて入力バッファ33に入力された最後のブロックにゼロ−パディングを実行する。図11に示したように、制御ユニット31は入力バッファ33に貯蔵されたn番目のブロックの最後に‘0’を挿入してn番目のブロックのサイズがL1になるようにする。
整理すると、CPU10と暗号化装置30との間に送受信されるデータは次の通りである。先ず、CPU10は制御情報を暗号化装置30の制御ユニット31に伝達する。制御情報にはソースアドレス、目標アドレス、データサイズ、キー、キーサイズ、方向(暗号化または復号化)、初期ベクタ、及び動作モードがある。
基本的に、暗号化されるデータすなわち、プレーンテキストはメモリ20のソースアドレスに貯蔵されていなければならない。 その後に、CPU10が制御情報を暗号化装置30に知らせれば暗号化装置30は暗号化プロセスを実行し、処理結果であるサイファテキストを目標アドレスに貯蔵する。このような本発明によると、CPU10と暗号化装置30との間の相互接続が最少化してシステムの性能の低下を防止する。
一方、動作モードに従って、CPU10と暗号化装置30との間に送受信される制御情報とデータが異なる。ECBモードで、プレーンテキストはメモリ20のソースアドレスに貯蔵されていなければならず、サイファテキストはメモリ20の目標アドレスに貯蔵される。ECBモードで、ソースアドレスと目標アドレスは同一であってもよい。CPU10が暗号化装置30に提供しなければならない制御情報はソースアドレス、目標アドレス、キー、キーサイズ、データサイズ、方向、及び動作モードである。ECBモードでは、各ブロックに対する暗号化プロセスが完了するごとにサイファテキストがメモリ20の目標アドレスに貯蔵されなければならない。
CBCモードはECBモードと類似であるが、制御情報に初期ベクタが含まれなければならない。CBC−MACモードでは各ブロックに対するサイファテキストが不要であるので、毎ブロックごとにサイファテキストをメモリ20に書き込まなくても良い。但し、すべてのブロックに対する暗号化プロセスが終了した後に、レジスタ410に貯蔵されたデータがCPU10に送信されなければならない。
OCB(offset codebook)モードはCPU10の演算を多く要する。図12はOCBモードの暗号化プロセスを、そして図13はOCBモードの復号化プロセスを概念的に示している。OCBモードに関する詳細な説明は米国公開公報2000−51537に開示されている。本発明の暗号化装置30は予め作成されたコードブック(codebook)とオフセット(offset)に従って各ブロックのサイファテキストを生成する。図12で、符号710及び720の点線枠で囲まれた部分はCPU10によって実行され、符号730、740及び750の点線枠で囲まれた第1乃至第3ステージは暗号化装置30により実行される。
図14は図1に示したメモリ20のソースアドレスSA0〜SAm+1に貯蔵されたデータブロックI0〜Im+1と目標アドレスDA0〜DAm+1に貯蔵されたデータブロック00〜0m+1を示している。
図12及び図14を参照すると、暗号化装置30はOCBモードの間ECBモードと同一に動作する。第1ステージ730で、メモリ20のソースアドレスSA0に貯蔵されたデータブロックI0はデータ入力レジスタ420(図6)に貯蔵される。ブロック暗号化器470はデータ入力レジスタ420に貯蔵されたデータブロックI0に対する暗号化プロセスを実行し、その結果をデータ出力レジスタ430に貯蔵する。データ出力レジスタ430に貯蔵されたデータはオフセットOffset0としてCPU10に伝達される。CPU10は暗号化装置30から提供されたオフセットOffset0と予め設定されたコードブックLntz(1)〜Lntz_(m)に従ってオフセットOffset1〜Offsetmを計算し、さらにメモリ20の所定の領域に貯蔵されたプレーンテキストM1〜Mmと計算されたオフセットOffsest1〜OffsetmをEXCLUSIVE−OR演算し、演算結果をメモリ20のソースアドレスSA1〜SAm+1に貯蔵する。
第2ステージ740で、暗号化装置30はメモリ20のソースアドレスSA1〜SAmに貯蔵されたデータブロックを順次に読み出して暗号化プロセスを実行し、暗号化されたデータブロック01〜0mをメモリ20の目標アドレスDA1〜DAmに貯蔵する。
CPU10は暗号化装置30の第2ステージ740が完了すると、目標アドレスDA1〜DAmに貯蔵されたデータブロック01〜0m、及びオフセットOffset1〜Offsetm−1及びプレーンテキストMmに対するEXCLUSIVE−OR演算を実行してサイファテキストC1〜Cmを生成する。さらに、CPU10はチェックサム(Checksum)とオフセット(Offsetm)に対するEXCLUSIVE−OR演算を実行して結果をソースアドレスSAm+1に貯蔵する。
第3ステージ750で、暗号化装置30はソースアドレスSAm+1に貯蔵されたデータブロックIm+1を読み出して暗号化プロセスを実行し、暗号化されたデータブロック0m+1をメモリ20の目標アドレスDAm+1に貯蔵する。CPU10はメモリ20の目標アドレスDAm+1に貯蔵されたデータ0m+1を読み出し、データ0m+1の一部をMICとして取得する。
図13を参照して、OCBモードの復号化過程が説明される。図13で、符号810及び820の点線枠で囲まれた部分はCPU10によって実行され、符号830、840、850及び860の点線枠で囲まれた第1乃至第4ステージは暗号化装置30によって実行される。OCBモードの復号化過程は図12に示したOCBモードの暗号化過程の逆の順序で実行されるが、暗号化装置30の4段のステージ830〜860を通じて復号化が実行される。ここで、OCBモードの復号化も暗号化装置30をECB モードの復号化に設定した後に実行される。
以上で例示的な望ましい実施の形態を利用して本発明を説明したが、本発明の範囲は開示された実施の形態に限定されないことはよく理解されるであろう。むしろ、本発明の範囲には多様な変形例及びその類似の構成が全部含まれる。したがって、特許請求の範囲はそのような変形例及び類似の構成全部を含むように可能な限り幅広く解釈されなければならない。
本発明の望ましい実施の形態による暗号化装置を具備した通信システムを示す図。 図1に示した暗号化装置の詳細な構成を示すブロック図。 図2に示したブロック暗号化ユニットの動作モードによる回路構成を示す図。 図2に示したブロック暗号化ユニットがCBCモードまたはCBC−MACモードで動作するために必要な回路構成を示す図。 図2に示したブロック暗号化ユニットがCNTモードで動作するために必要な回路構成を示す図。 本発明の望ましい実施の形態によるブロック暗号化ユニットを示す図。 図1に示した暗号化装置とメモリとの間のデータの送受信を例示的に示す図。 図2に示したDMAコントローラのFSMを示す図。 図2に示した入力バッファ、出力バッファ、及びブロック暗号化ユニットの関係によるFSMを示す図。 データの最後に‘0’を挿入するゼロ−パディングを例示的に示す図。 データの最後に‘0’を挿入するゼロ−パディングを例示的に示す図。 OCBモードの暗号化プロセスを示す図。 OCBモードの復号化プロセスを概念的に示す図。 図1に示したメモリのソースアドレスSA0〜SAm+1に貯蔵されたデータブロックI0〜Im+1と目標アドレスDA0〜DAm+1に貯蔵されたデータブロック00〜Om+1を示す図。
符号の説明
30 暗号化装置
31 制御ユニット
32 DMAコントローラ
33 入力バッファ
34 出力バッファ
35 ブロック暗号化ユニット
50 システムバス

Claims (2)

  1. メモリに貯蔵されたデータを暗号化するための暗号化装置において、
    外部から提供される暗号化情報に応答して制御信号を生成する制御ユニットと、
    前記メモリから前記データを読み出すメモリコントローラと、
    前記メモリコントローラによって読み出されたデータを貯蔵するための入力バッファと、
    前記入力バッファに貯蔵されたデータブロックを暗号化するための暗号化ユニットと、
    前記暗号化ユニットにより暗号化されたデータを貯蔵するための出力バッファとを含み、
    前記メモリコントローラは前記出力バッファに貯蔵された前記暗号化されたデータを前記メモリに書き込み、
    前記メモリコントローラ、前記入力バッファ、前記暗号化ユニット及び前記出力バッファは前記制御信号に応答して動作し、
    前記制御ユニットは、
    前記暗号化情報に応答して初期ベクタ及び動作モードを示すモード信号を生成し、
    前記動作モードは、ECBモード、CBCモード、CBC−MACモードまたはCNTモードのうちいずれか一つであり、
    前記暗号化ユニットは、
    前記制御ユニットから提供された初期ベクタを貯蔵するための初期ベクタレジスタと、
    前記入力バッファから提供されたデータを貯蔵するためのデータ入力レジスタと、
    入力データを暗号化する暗号化器と、
    前記出力バッファに提供されるデータを貯蔵するデータ出力レジスタと、
    加算器と、
    前記モード信号に応答して、前記初期ベクタレジスタに貯蔵されたデータ、前記初期ベクタレジスタに貯蔵されたデータ及び前記データ入力ベクタレジスタに貯蔵されたデータを論理演算した結果データ、または前記データ入力レジスタに貯蔵されたデータのうち一つを前記暗号化器の入力データとして提供し、前記モード信号に応答して、前記初期ベクタレジスタに貯蔵されたデータを前記加算器に伝達する第1選択回路と、
    前記モード信号に応答して、前記データ入力レジスタに貯蔵されたデータ及び前記暗号化器によって暗号化されたデータを論理演算した結果データまたは前記暗号化器によって暗号化されたデータを前記データ出力レジスタに伝達し、前記モード信号に応答して、前記暗号化器によって暗号化されたデータを前記初期ベクタレジスタに伝達する第2選択回路とを含み、
    前記加算器は前記第1選択回路から提供されたデータに予め設定された値を加えて前記初期ベクタレジスタに貯蔵し、
    前記第1選択回路は、
    第1マルチプレクサと、
    第1論理演算器と、
    前記モード信号に応答して、前記初期ベクタレジスタに貯蔵されたデータを前記加算器と前記第1マルチプレクサに、または前記第1論理演算器に伝達する第2マルチプレクサと、
    前記モード信号に応答して、前記データ入力レジスタに貯蔵されたデータを前記第1論理演算器または前記第1マルチプレクサに伝達する第3マルチプレクサとを含み、
    前記第1論理演算器は前記第2及び第3マルチプレクサからの出力を受け入れて論理演算し、
    前記第1マルチプレクサは前記第2マルチプレクサ、前記第1論理演算器または前記第3マルチプレクサの出力のうち一つを前記暗号化器に伝達することを特徴とする暗号化装置。
  2. 前記第2選択回路は、
    第4マルチプレクサと、
    第2論理演算器と、
    前記モード信号に応答して、前記暗号化器の出力を前記第2論理演算器または前記第4マルチプレクサまたは前記初期ベクタレジスタまたは前記第4マルチプレクサおよび前記初期ベクタレジスタの両方に伝達する第5マルチプレクサとを含み、
    前記第2論理演算器は前記第3及び第5マルチプレクサの出力を受け入れて論理演算し、
    前記第4マルチプレクサは前記第2論理演算器および前記第5マルチプレクサの出力を前記データ出力データとして伝達することを特徴とする請求項1に記載の暗号化装置。
JP2003426676A 2003-01-24 2003-12-24 多数の動作モードを支援する暗号化装置 Expired - Fee Related JP4684550B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030004806A KR100583635B1 (ko) 2003-01-24 2003-01-24 다수의 동작 모드들을 지원하는 암호화 장치

Publications (2)

Publication Number Publication Date
JP2004226966A JP2004226966A (ja) 2004-08-12
JP4684550B2 true JP4684550B2 (ja) 2011-05-18

Family

ID=32733106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003426676A Expired - Fee Related JP4684550B2 (ja) 2003-01-24 2003-12-24 多数の動作モードを支援する暗号化装置

Country Status (5)

Country Link
US (1) US7509501B2 (ja)
JP (1) JP4684550B2 (ja)
KR (1) KR100583635B1 (ja)
CN (1) CN1531240B (ja)
TW (1) TWI286689B (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7336783B2 (en) * 2003-01-24 2008-02-26 Samsung Electronics, C., Ltd. Cryptographic systems and methods supporting multiple modes
KR100754585B1 (ko) * 2005-01-11 2007-09-05 삼성전자주식회사 통신 시스템에서 신호 암호화/해독 장치 및 방법
JP2006220748A (ja) * 2005-02-08 2006-08-24 Toshiba Corp データ処理装置、データ記録装置、データ再生装置およびデータ格納方法
US20060198515A1 (en) * 2005-03-03 2006-09-07 Seagate Technology Llc Secure disc drive electronics implementation
US8094814B2 (en) * 2005-04-05 2012-01-10 Broadcom Corporation Method and apparatus for using counter-mode encryption to protect image data in frame buffer of a video compression system
JP4887668B2 (ja) * 2005-06-09 2012-02-29 ソニー株式会社 暗号化復号処理回路および暗号化復号システム
US8218770B2 (en) * 2005-09-13 2012-07-10 Agere Systems Inc. Method and apparatus for secure key management and protection
KR101234114B1 (ko) * 2005-12-22 2013-02-20 인터디지탈 테크날러지 코포레이션 무선 통신 시스템에서 데이터 보안 및 자동 반복 요청실시를 위한 방법 및 장치
KR100837270B1 (ko) * 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법
US7769166B2 (en) * 2006-08-24 2010-08-03 Lsi Corporation Dual mode AES implementation to support single and multiple AES operations
JP5094727B2 (ja) * 2006-09-20 2012-12-12 パナソニック株式会社 データ転送装置、及び携帯電話機
FR2906380B1 (fr) * 2006-09-27 2008-12-19 Trusted Logic Sa Systeme et procede de securisation de donnees.
KR100866959B1 (ko) * 2007-02-13 2008-11-05 삼성전자주식회사 불휘발성 메모리 장치의 부분 페이지 데이터 기입 방법
US8538012B2 (en) * 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
JP4304215B2 (ja) * 2007-03-23 2009-07-29 株式会社東芝 秘密分散装置、方法及びプログラム
US8538015B2 (en) 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
JP4334582B2 (ja) * 2007-06-26 2009-09-30 株式会社東芝 秘密分散装置、方法及びプログラム
TWI386814B (zh) 2007-12-31 2013-02-21 Ind Tech Res Inst 具動態工作管理能力之多處理器界面及其程式載卸方法
CN101499020B (zh) * 2008-01-28 2011-08-31 财团法人工业技术研究院 具有动态工作管理能力的多处理器界面及其程序加载或卸载方法
JP5228803B2 (ja) * 2008-10-30 2013-07-03 富士通セミコンダクター株式会社 共通鍵ブロック暗号におけるスワップ回路及び、それを有する暗号化・復号化回路
CN102035641A (zh) * 2009-09-24 2011-04-27 中兴通讯股份有限公司 一种实现aes加解密的装置和方法
JP5017439B2 (ja) * 2010-09-22 2012-09-05 株式会社東芝 暗号演算装置及びメモリシステム
US8498410B2 (en) * 2011-03-14 2013-07-30 Motorola Solutions, Inc. Methods for customizing a Rijndael block cipher
CN103517269B (zh) * 2012-06-19 2017-12-29 深圳市中兴微电子技术有限公司 数据加解密方法及系统
CN103874060B (zh) * 2012-12-13 2019-04-30 深圳市中兴微电子技术有限公司 数据的加/解密方法和装置
US20150363333A1 (en) * 2014-06-16 2015-12-17 Texas Instruments Incorporated High performance autonomous hardware engine for inline cryptographic processing
US9003200B1 (en) 2014-09-22 2015-04-07 Storagecraft Technology Corporation Avoiding encryption of certain blocks in a deduplication vault
CN109804596B (zh) 2016-12-09 2023-05-09 密码研究公司 具有加掩码的输入的可编程块密码器
KR101922955B1 (ko) * 2018-02-14 2018-11-28 (주)케이사인 데이터 블록 기반의 근 실시간 데이터 암호화 시스템 및 방법
GB201808834D0 (en) * 2018-05-30 2018-07-11 Nordic Semiconductor Asa Memory-efficient hardware cryptographic engine
GB2574642A (en) 2018-06-13 2019-12-18 Nordic Semiconductor Asa Hardware accelerator
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
CN115348004A (zh) * 2022-08-11 2022-11-15 北京特纳飞电子技术有限公司 用于数据加密的方法、系统和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63196198A (ja) * 1987-01-28 1988-08-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 情報伝送交換方法
JPH01295293A (ja) * 1988-05-23 1989-11-28 Nippon Telegr & Teleph Corp <Ntt> 暗号回路
JPH07253753A (ja) * 1994-03-15 1995-10-03 Fujitsu Ltd 暗号回路
JPH07261662A (ja) * 1994-03-22 1995-10-13 Fujitsu Ltd 暗号演算回路
JPH08249238A (ja) * 1995-03-08 1996-09-27 Sanyo Electric Co Ltd 着脱可能な記憶メディアの機密保持方法
JP2000075785A (ja) * 1998-08-26 2000-03-14 Fujitsu Ltd 高速暗号処理回路および処理方法
JP2001177518A (ja) * 1999-12-17 2001-06-29 Nec Corp 暗号化方法、復号化方法及び装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623549A (en) * 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
EP0839418B1 (en) * 1996-05-20 2003-05-02 Koninklijke Philips Electronics N.V. Cryptographic method and apparatus for non-linearly merging a data block and a key
US6061449A (en) 1997-10-10 2000-05-09 General Instrument Corporation Secure processor with external memory using block chaining and block re-ordering
JPH11212451A (ja) * 1998-01-22 1999-08-06 Dainippon Printing Co Ltd 暗号処理装置
US6295604B1 (en) * 1998-05-26 2001-09-25 Intel Corporation Cryptographic packet processing unit
TW375721B (en) * 1998-06-17 1999-12-01 Ind Tech Res Inst DES chip processor capable of executing data encryption standard (DES) operation
JP3581601B2 (ja) 1998-12-18 2004-10-27 松下電器産業株式会社 データ転送装置、データ転送システムおよび記録媒体
JP2002297030A (ja) * 2001-03-29 2002-10-09 Toshiba Corp 暗号処理装置及び暗号処理方法並びにプログラム
JP4761652B2 (ja) * 2001-06-04 2011-08-31 ルネサスエレクトロニクス株式会社 データ暗号化回路
US7191341B2 (en) * 2002-12-18 2007-03-13 Broadcom Corporation Methods and apparatus for ordering data in a cryptography accelerator
US7657757B2 (en) * 2003-04-30 2010-02-02 Freescale Semiconductor, Inc. Semiconductor device and method utilizing variable mode control with block ciphers

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63196198A (ja) * 1987-01-28 1988-08-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 情報伝送交換方法
JPH01295293A (ja) * 1988-05-23 1989-11-28 Nippon Telegr & Teleph Corp <Ntt> 暗号回路
JPH07253753A (ja) * 1994-03-15 1995-10-03 Fujitsu Ltd 暗号回路
JPH07261662A (ja) * 1994-03-22 1995-10-13 Fujitsu Ltd 暗号演算回路
JPH08249238A (ja) * 1995-03-08 1996-09-27 Sanyo Electric Co Ltd 着脱可能な記憶メディアの機密保持方法
JP2000075785A (ja) * 1998-08-26 2000-03-14 Fujitsu Ltd 高速暗号処理回路および処理方法
JP2001177518A (ja) * 1999-12-17 2001-06-29 Nec Corp 暗号化方法、復号化方法及び装置

Also Published As

Publication number Publication date
TW200421098A (en) 2004-10-16
CN1531240B (zh) 2010-11-03
KR20040067601A (ko) 2004-07-30
US7509501B2 (en) 2009-03-24
CN1531240A (zh) 2004-09-22
US20040148512A1 (en) 2004-07-29
JP2004226966A (ja) 2004-08-12
KR100583635B1 (ko) 2006-05-26
TWI286689B (en) 2007-09-11

Similar Documents

Publication Publication Date Title
JP4684550B2 (ja) 多数の動作モードを支援する暗号化装置
KR101394710B1 (ko) 단일 명령어를 이용한 다수 모드에서의 aes 암호화 또는 암호 해독 수행
US20110255689A1 (en) Multiple-mode cryptographic module usable with memory controllers
US8112635B2 (en) Data-mover controller with plural registers for supporting ciphering operations
US11387980B2 (en) Hardware multiple cipher engine
US20140189367A1 (en) Digital-encryption hardware accelerator
EP3803672B1 (en) Memory-efficient hardware cryptographic engine
US11429751B2 (en) Method and apparatus for encrypting and decrypting data on an integrated circuit
US20030044007A1 (en) Methods and apparatus for accelerating ARC4 processing
US20210006391A1 (en) Data processing method, circuit, terminal device and storage medium
US7769166B2 (en) Dual mode AES implementation to support single and multiple AES operations
KR100546777B1 (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리 방법, 이에 적합한 f함수 처리기
US7167997B1 (en) Apparatus and method for limiting data transmission rates
KR20040000925A (ko) 다양한 인터페이스를 갖는 고속 블럭 암호 장치 및 그구동 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101222

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: 20110118

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110209

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

Free format text: PAYMENT UNTIL: 20140218

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4684550

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees