JP4337675B2 - 暗号処理装置および暗号処理方法 - Google Patents

暗号処理装置および暗号処理方法 Download PDF

Info

Publication number
JP4337675B2
JP4337675B2 JP2004215484A JP2004215484A JP4337675B2 JP 4337675 B2 JP4337675 B2 JP 4337675B2 JP 2004215484 A JP2004215484 A JP 2004215484A JP 2004215484 A JP2004215484 A JP 2004215484A JP 4337675 B2 JP4337675 B2 JP 4337675B2
Authority
JP
Japan
Prior art keywords
data
processing
hash
descriptor
processed
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
JP2004215484A
Other languages
English (en)
Other versions
JP2006039000A (ja
JP2006039000A5 (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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004215484A priority Critical patent/JP4337675B2/ja
Priority to US11/185,691 priority patent/US7697682B2/en
Publication of JP2006039000A publication Critical patent/JP2006039000A/ja
Publication of JP2006039000A5 publication Critical patent/JP2006039000A5/ja
Application granted granted Critical
Publication of JP4337675B2 publication Critical patent/JP4337675B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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

Landscapes

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

Description

本発明は、ハッシュアルゴリズムによる認証処理と共通鍵暗号による暗号化処理において、処理の中断/再開機能を備えた暗号処理装置および暗号処理方法に関するものである。
各種暗号処理の用途としてはメディアに格納されたコンテンツの復号や、ネットワークを介して送受信されるデータの暗号化/復号など、用途としては様々である(たとえば特許文献1参照)。
たとえば、ネットワークで配信されるデータは一定の通信速度を保証するQoS(Quality Of Service)を実現するため、優先順位の高いパケットを先に処理して送信しなければならない場合がある。
特開2003−273389号公報
しかし、暗号処理を伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する場合、各種暗号アルゴリズムの違いや、暗号処理モードの違いにより、中断/再開方法は様々であるため、その条件判定等のためにソフトウエアの介入が頻繁になるようでは、中断/再開機能が逆にQoS実現の妨げになるという点で問題があった。
本発明の目的は、各種暗号処理の中断/再開機能に関して、各種暗号アルゴリズムの違いや、暗号処理モードの違いによることなく、中断/再開機能を効率的に行うことが可能な暗号処理装置および暗号処理方法を提供することにある。
上記目的を達成するため、本発明の第1の観点は、暗号処理の中断、再開機能を有し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理装置であって、処理対象データを格納するデータ格納メモリと、転送された処理対象データに対して共通鍵暗号により暗号化処理を行う共通鍵暗号ブロックと、上記データ格納メモリから処理すべき転送データを指示する情報であるディスクリプタに基づいて、上記データ格納メモリから上記共通鍵暗号ブロックへのデータ転送を制御するメモリアクセスコントローラと、を備え上記ディスクリプタ、共通鍵暗号における暗号アルゴリズム、暗号処理モードと、が指示可能なディスクリプタフォーマットを有する。
好適には、上記共通鍵暗号ブロックは、各種暗号処理モードでの処理時に使用されるデータをセットする記憶手段と、次のブロック処理時に使用されることになるデータを自動生成して保持する記憶手段を有する。
好適には、処理すべきデータが中断処理の対象となる場合、上記ディスクリプタでは転送開始位置と転送サイズの指定に加えて、中断処理の指示を指定する。
好適には、処理すべきデータが暗号化の対象となる場合、上記ディスクリプタでは転送開始位置と転送サイズの指定に加えて、暗号化の指示を指定する。
好適には、処理すべきデータが再開処理の対象となる場合、上記ディスクリプタでは転送開始位置と転送サイズの指定に加えて、再開処理の指示を指定する。
本発明の第2の観点は、暗号処理の中断、再開機能を有し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理装置であって、処理対象データを格納するデータ格納メモリと、転送された処理対象データのハッシュ処理を行うハッシュブロックと、上記データ格納メモリから処理すべき転送データを指示する情報であるディスクリプタに基づいて、上記データ格納メモリから上記ハッシュブロックへのデータ転送を制御するメモリアクセスコントローラと、を備え上記ディスクリプタ、ハッシュ演算におけるハッシュアルゴリズムと、ハッシュ処理の中断と、ハッシュ処理の再開と、が指示可能なディスクリプタフォーマットを有する
好適には、上記ハッシュブロックは、ハッシュ処理の中断処理時に演算途中結果を保持する記憶手段と、ハッシュ処理の再開処理時に演算途中結果をセットできる記憶手段を有する。
好適には、処理すべきデータを中断も再開も行わずに一括で処理する場合、上記ディスクリプタでは中断無し、再開無しを指定する。
好適には、処理すべきデータがハッシュ演算の最初で処理されかつハッシュ演算を途中で中断する場合、上記ディスクリプタでは中断有り、再開無しを指示する。
好適には、処理すべきデータがハッシュ演算の途中で処理されかつハッシュ演算を途中で中断する場合、上記ディスクリプタでは中断有り、再開有りを指示する。
好適には、処理すべきデータがハッシュ演算の途中で処理されかつハッシュ演算の最後のデータとなる場合、上記ディスクリプタでは中断無し、再開有りを指示する。
本発明の第3の観点は、暗号処理の中断、再開機能を有し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理装置であって、処理対象データを格納するデータ格納メモリと、転送された処理対象データに対して共通鍵暗号により暗号化処理を行う共通鍵暗号ブロックと、転送された処理対象データのハッシュ処理を行うハッシュブロックと、上記データ格納メモリから処理すべき転送データを指示する情報であるディスクリプタに基づいて、上記データ格納メモリから上記共通鍵暗号ブロックおよび上記ハッシュブロックへのデータ転送を制御するメモリアクセスコントローラと、を備え、上記ディスクリプタは、上記共通鍵暗号ブロックへのデータ転送を指示するときには、上記共通鍵暗号における暗号アルゴリズムと、暗号処理モードと、が指示可能なディスクリプタフォーマットを有するとともに、上記ハッシュブロックへのデータ転送を指示するときには、ハッシュ演算におけるハッシュアルゴリズムと、ハッシュ処理の中断と、ハッシュ処理の再開と、が指示可能なディスクリプタフォーマットを有する。
本発明の第4の観点は、ディスクリプタに基づいてデータ格納メモリから処理すべき転送データを指示し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理方法であって、上記ディスクリプタ、共通鍵暗号における暗号アルゴリズムと、暗号処理モードと、が指示可能なディスクリプタフォーマットを有する。
本発明の第5の観点は、ディスクリプタに基づいてデータ格納メモリから処理すべき転送データを指示し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理方法であって、上記ディスクリプタ、ハッシュ演算におけるハッシュアルゴリズムと、ハッシュ処理の中断と、ハッシュ処理の再開と、が指示可能なディスクリプタフォーマットを有する。
本発明によれば、ディスクリプタに基づいて、データ格納メモリから処理すべき転送データを指示するが、この情報となるディスクリプタ、共通鍵暗号の暗号アルゴリズム暗号処理モード指示可能なフィールドを含むディスクリプタフォーマットを有する。
このようなフォーマットを設けることにより、データ格納メモリに格納された全ての処理対象データのうち、たとえばDES-CBCモードで処理を行なう必要がある処理対象データに対しては、転送データ位置と転送データサイズとDESとCBCモードの指示を、またたとえば、AES-Counter Modeで処理を行なう必要がある処理対象データに対しては、転送データ位置と転送データサイズとAESとCounter Modeの指示を、それぞれの処理対象データに対して指示できる
また、次のブロック処理時に使用されるデータ自動生成して保持することにより、処理の中断時はそのデータストアし、処理の再開時はストアしたデータをセットすることができ、これにより、処理の再開が容易に行われる。
また、本発明によれば、同様に、各ディスクリプタには、ハッシュアルゴリズムハッシュ処理の中断ハッシュ処理の再開を指示可能なフィールドを含むものを、ディスクリプタフォーマットとして有することもできる。
このようなフォーマットを設けることにより、データ格納メモリに格納された全ての処理対象データのうち、たとえばMD5で処理の中断を行う必要がある処理対象データに対しては、転送データ位置と転送データサイズとMD5と中断の指示を、またたとえば、SHA−1で処理の再開を行う必要がある処理対象データに対しては、転送データ位置と転送データサイズとSHA−1と再開の指示を、することができる。
また、ハッシュ処理の演算途中結果が保持することにより、処理の中断時はその途中結果となるデータをストアし、処理の再開時はストアしたデータをセットすることができ、これにより、処理の再開が容易に行われる。
本発明によれば、各種暗号処理の中断/再開機能に関して、各種暗号アルゴリズムの違いや、暗号処理モードの違いによることなく、条件判定等をハードウェアで効率的に行なうことを可能とし、ソフトウエアでは中断/再開時には、演算途中データのストア処理/ロード処理のみ行うことにより、中断/再開機能を効率的に行うことを可能となる利点がある。
以下に、本発明の一実施の形態について、図面に関連付けて説明する。
図1は、本発明に係る暗号処理装置の一実施形態を示すブロック図である。
本実施形態に係る暗号処理装置10は、図1に示すように、CPU11、データ格納メモリ12、データバス13、ダイレクトメモリアクセスコントローラ(DMAC;Direct Memory Access Controller)14、セレクタ回路15、初期値(IV;Initial Value )レジスタ16、共通鍵暗号ブロック17、ハッシュブロック18、IVレジスタ19、およびセレクタ回路20を有する。
本実施形態においては、データバス13に対して、CPU11、データ格納メモリ12、DMAC14、IVレジスタ16、およびIVレジスタ19が接続されている。
本実施形態の暗号処理装置10は、以下の特徴を有している。
DMAC14は、DMAディスクリプタを、データ格納メモリ12から処理すべき転送データを指示する情報のデータとして用い、各DMAディスクリプタは、各種のディスクリプタフォーマット(のデータ)を有することができ、このディスクリプタフォーマットに、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)といった共通鍵暗号の暗号アルゴリズムを指示するフィールドECB(Electronic Code Book)モードやCBC(Cipher Block Chaining )モードやカウンタモード(Counter Mode)といった暗号処理モードを指示するフィールド、等々を、含ませることができる。
これにより、データ格納メモリ12に格納された全ての処理対象データのうち、たとえばDES-CBCモードで処理を行う必要がある処理対象データに対しては、転送データ位置と転送データサイズとDESとCBCモードの指示を、またたとえば、AES-Counter Modeで処理を行う必要がある処理対象データに対しては、転送データ位置と転送データサイズとAESとCounter Modeの指示を、各DMAディスクリプタに基づいて、それぞれの処理対象データに対して指示可能としている。
そして、共通鍵暗号ブロック17は、IVレジスタ16に接続されており、各種暗号処理モード(CBCモード、Counter Mode)での処理時に使用されるIVをセットする記憶手段と、次のブロック処理時に使用されることになるIVを自動生成して保持する記憶手段としての機能を有する。
これにより、次のブロック処理時に使用されるIVが自動生成されて保持されるため、処理の中断時はそのIVをストアし、処理の再開時はストアしたIVをセットすることにより処理の再開を容易としている。
また、本実施形態の暗号処理装置10は、同様に、以下の特徴も有する。
すなわち、各DMAディスクリプタの各種のディスクリプタフォーマットとして、MD5(Message Digest #5 )やSHA−1(Secure Hash Algorithm )といったハッシュアルゴリズムを指定するフィールド、ハッシュ処理の中断の指示するフィールド、ハッシュ処理の再開を指示するフィールド、等々を、含ませることができる。
これにより、データ格納メモリ12に格納された全ての処理対象データのうち、たとえばMD5で処理の中断を行なう必要がある処理対象データに対しては、転送データ位置と転送データサイズとMD5と中断の指示を、またたとえば、SHA−1で処理の再開を行なう必要がある処理対象データに対しては、転送データ位置と転送データサイズとSHA−1と再開を、各DMAディスクリプタに基づいて、指示可能としている。
そして、ハッシュブロック18は、IVレジスタ19に接続されており、ハッシュ処理の中断処理時に演算途中結果を保持する記憶手段と、ハッシュ処理の再開処理時に演算途中結果をセットできる記憶手段としての機能を有する。
これにより、ハッシュ処理の演算途中結果が保持されるため、処理の中断時はその途中結果となるIVをストアし、処理の再開時はストアしたIVをセットすることにより処理の再開を容易としている。
本実施形態の暗号処理装置10においては、データ格納メモリ12が、データバス13に接続され、同じくデータバス13に接続されたCPU11からの指示により、暗号化/復号処理又はハッシュ処理を行うための処理対象データと、処理対象データの格納先と処理方法を指示するDMAディスクリプタが、データ格納メモリ12に格納される。
また、同じくデータバス13に接続されたDMAC14は、データ格納メモリ12に格納された処理すべき対象データの転送を行う。
共通鍵暗号ブロック17はセレクタ回路15に接続され、DMAC14により転送される処理対象データの処理を行う。
さらに、共通鍵暗号ブロック17はIVレジスタ16に接続され、暗号処理モードがCBCやCounter Modeの場合にIVレジスタ16に格納されたデータを用いて演算を行い、また、次のブロック処理時に使用されるIVを自動生成して保持する。
さらに、IVレジスタ16はデータバス13に接続され、CPU11もしくはDMAC14のいずれかの指示に従い、データ格納メモリ12との間でIVデータのストア/ロードを行う。共通鍵暗号ブロック17はセレクタ回路20に接続され、処理済みのデータがDMAC14によりデータ格納メモリ12に格納される。
ハッシュブロック18はセレクタ回路15に接続され、DMAC14により転送される処理対象データの処理を行う。
さらに、ハッシュブロック18はIVレジスタ19に接続され、ハッシュ演算の再開の場合にIVレジスタ19に格納されたデータを用いて演算を行い、また、ハッシュ演算の中断の場合はIVレジスタ19に演算途中データを自動生成して保持する。
さらに、IVレジスタ19はデータバス13に接続され、CPU11もしくはDMAC14のいずれかの指示に従い、データ格納メモリ12との間でIVデータのストア/ロードを行う。ハッシュブロック18はセレクタ回路20に接続され、処理済みのデータがDMAC14によりデータ格納メモリ12に格納される。
以下に、各部の構成および機能、並びに暗号化/復号処理、およびハッシュ処理における具体的な中断/再開処理について追って説明する。
図2は、一般的なDMAディスクリプタのリンクの様子と、暗号アルゴリズム、暗号処理モード、ハッシュアルゴリズム、ハッシュ中断処理、ハッシュ再開処理を指示する場合に必要となる情報を格納する方法を示す図である。
ここで示す例は一般的にはスキャッタ・ギャザ方式と呼ばれ、メモリ上に散在するデータを取り込むためにDMAディスクリプタを用い、DMAディスクリプタの内容に従い、取り込むべきデータを処理するものである。
図2のDMAディスクリプタA1には、処理すべきデータA4の情報が格納されている。ここでは例として、第1ワード目が処理すべきデータA4の先頭アドレス、第2ワード目が処理すべきデータA4の長さ、第4ワード目が次に処理すべきDMAディスクリプタA2の先頭アドレスを示す構成例となっている。
同様に、DMAディスクリプタA2は処理すべきデータA5に対応し、DMAディスクリプタA3は処理すべきデータA6に対応している。
ここでは、DMAディスクリプタA1,A2,A3の第3ワード目は他の処理情報とは重なってはいない。このため、その第3ワード目に、暗号アルゴリズム、暗号処理モード、ハッシュアルゴリズム、ハッシュ中断処理、ハッシュ再開処理を指示する指示情報を格納する領域として割り当てる。
処理すべきデータが、A4で示されるMD5での中断処理の対象となる領域の場合、DMAディスクリプタでは転送開始位置と転送サイズの指定に加えてMD5の中断処理の指示を指定する。
処理すべきデータが、A5で示されるDES-CBC暗号化の対象となる領域の場合、DMAディスクリプタでは転送開始位置と転送サイズの指定に加えてDES-CBC暗号化の指示を指定する。
処理すべきデータが、A6で示されるMD5での再開処理の対象となる領域の場合、DMAディスクリプタでは転送開始位置と転送サイズの指定に加えてMD5での再開処理の指示を指定する。
図3は、図1の暗号処理装置10における共通鍵暗号ブロック17の構成例を示すブロック図である。
図3の共通鍵暗号ブロック17は、入力データバッファB1、入力IVレジスタB2、出力IVレジスタB3、セレクタ回路B4、ExOR回路B5、セレクタ回路B6、インクリメント回路B7、共通鍵暗号コア(DES, AES)B8、ExOR回路B9、ExOR回路B10、セレクタ回路B11、および出力データバッファB12を有する。
入力データバッファB1は、図1のセレクタ回路15からの出力データを取り込み、共通鍵暗号ブロック17内に処理対象データを供給する。
入力IVレジスタB2は、図1のIVレジスタ16からの出力データを取り込み、共通鍵暗号ブロック17内にIVデータを供給する。
出力IVレジスタB3は、共通鍵暗号ブロック17内で自動生成したIVデータを図1のIVレジスタ16に供給する。
出力データバッファB12は、処理済のデータを図1のセレクタ回路20に供給する。
共通鍵暗号コア(DES,AES)B8への入力データは、入力データバッファB1の出力、もしくは、入力データバッファB1と入力IVレジスタB2をエクスクルーシブOR(排他的論理和)した出力、もしくは、入力IVレジスタB2のいずれかをセレクタ回路B6で選択して入力される。
出力データバッファB12への入力データは、共通鍵暗号コア(DES,AES)B8の出力、もしくは、共通鍵暗号コア(DES,AES)B8の出力と入力データバッファB1をエクスクルーシブORした出力、もしくは、共通鍵暗号コア(DES,AES)B8の出力と入力IVレジスタB2をエクスクルーシブORした出力のいずれかをセレクタ回路B11で選択して入力される。
出力IVレジスタB3への入力データは、入力データバッファB1の出力、もしくは、セレクタ回路B11の出力、もしくは、入力IVレジスタB2を+1インクリメントするインクリメント回路B7の出力のいずれかをセレクタ回路B4で選択して入力される。
図4は、図3のブロック図において、ECBモード暗号化/復号の場合のデータ経路を示す図である。
図3のブロック図で示したブロック構成において、DMAディスクリプタにてECBモード暗号化、もしくは、ECBモード復号を指示した場合に、選択されるデータ経路を図4に実線で示す。
ECBモードはIVを使用しないモードのため、この場合はIVレジスタへの経路は寸断される。
図5は、図3のブロック図において、CBC暗号化の場合のデータ経路を示す図である。
図3のブロック図で示したブロック構成において、DMAディスクリプタにてCBCモード暗号化を指示した場合に、選択されるデータ経路を図5に実線で示す。
CBCモード暗号化の場合は、共通鍵暗号コアB8への入力は、処理対象データとIVが順次エクスクルーシブORされたデータが入力されるように動作させ、暗号化データとしての出力は、共通鍵暗号コアB8の出力をそのまま処理済みのデータとして出力させる。
また、次のブロック処理時に使用されるIVは、暗号化後のデータを用いることになるため、暗号化データを出力IVレジスタB3に保持させるよう動作させる。
図6は、図3のブロック図において、CBC復号の場合のデータ経路を示す図である。
図3のブロック図で示したブロック構成において、ディスクリプタにてCBCモード復号を指示した場合に、選択されるデータ経路を図6に実線で示す。
CBCモード復号の場合は、共通鍵暗号コアB8への入力は、処理対象データをそのまま入力させ、暗号化データとしての出力は、共通鍵暗号コアB8の出力とIVを順次エクスクルーシブORしたデータを処理済みのデータとして出力させる。
また、次のブロック処理時に使用されるIVは、暗号化前のデータを用いることになるため、暗号化前データ(処理対象データ)を出力IVレジスタB3に保持させるよう動作させる。
図7は、図3のブロック図において、カウンタモード(Counter Mode)暗号化/復号の場合のデータ経路を示す図である。
図3のブロック図で示したブロック構成において、ディスクリプタにてCounter Mode暗号化、もしくは、Counter Mode復号を指示した場合に、選択されるデータ経路を図7に実線で示す。
Counter Modeの場合は暗号化と復号では同じ経路となる。共通鍵暗号コアB8への入力にはIVを入力させ、暗号化データとしての出力は、共通鍵暗号コアB8の出力と処理対象データを順次エクスクルーシブORしたデータを処理済みのデータとして出力させる。また、次のブロック処理時に使用されるIVは、IVを+1インクリメントしたデータを出力IVレジスタB3に保持させるよう動作させる。
これにより、様々な暗号処理モード(ECBモード、CBCモード、Counter Mode)であったとしても、IVレジスタ(図1のIVレジスタ16)の値をCPU11もしくはDMAC14がストア/ロードするだけで、暗号処理の中断/再開が容易に可能となる。
次に、ハッシュ処理のおける中断/再開処理について、図8〜図13に関連付けて説明する。
ハッシュアルゴリズムは、アルゴリズムの特性上、処理終了時は、アルゴリズムで規定されている固定のIVデータとの加算処理を行わなければならないが、処理を中断する場合は、その加算処理をバイパスする必要があるため、ディスクリプタにて中断を指示した場合は、加算処理をバイパスする経路を用意する。
また同様に、アルゴリズムの特性上、処理の開始時は、アルゴリズムで規定されている固定のIVデータを最初に演算させなければならないが、処理を再開する場合は、固定のIVデータのかわりに計算途中データをIVとして使用する必要があるため、ディスクリプタにて再開を指示した場合は、計算途中データのIVを使用する経路を用意する。
図8(A),(B)は、ハッシュ演算処理の中断/再開を行う場合、中断を指示する必要がある処理データ領域と中断を指示する必要がない処理データ領域、また、再開を指示する必要がある処理データ領域と再開を指示する必要がない処理データ領域について説明するための図である。
図8(A)における(1)は、ハッシュ演算対象となるすべての処理対象データを示す。(1)のデータに対して、中断も再開も行わずに一括で処理する場合は、DMAディスクリプタでは、中断無し、再開無しを指定する。
図8(B)における(2)〜(4)は、図8(A)における(1)の処理対象データを3分割して処理する場合、それぞれのデータに対して、中断/再開の指示方法を示した図である。
(2)は、ハッシュ演算の最初でかつハッシュ演算を途中で中断することになるため、DMAディスクリプタでは、中断有り、再開無しを指示することになる。
(3)は、ハッシュ演算の途中でかつハッシュ演算を途中で中断することになるため、DMAディスクリプタでは、中断有り、再開有りを指示することになる。
(4)は、ハッシュ演算の途中でかつハッシュ演算の最後のデータとなるため、DMAディスクリプタでは、中断無し、再開有りを指示することになる。
図9は、図1の暗号処理装置10におけるハッシュブロック18の構成例を示すブロック図である。
図9のハッシュブロック18は、入力データバッファC1、入力IVレジスタC2、出力IVレジスタC3、初期IV固定データ(出力部)C4、セレクタ回路C5、ハッシュ演算コア(MD5,SHA-1)C6、初期IV固定データ(出力部)C7、加算回路C8、および出力データバッファC9を有している。
入力データバッファC1は、図1のセレクタ回路15からの出力データを取り込み、ハッシュブロック内に処理対象データを供給する。
入力IVレジスタC2は、図1のIVレジスタ19からの出力データを取り込み、ハッシュブロック内にIVデータとして供給する。
出力IVレジスタC3は、ハッシュブロック内の計算途中結果となるデータを図1のIVレジスタ19に供給する。
出力データバッファC9は、処理済のデータを図1のセレクタ回路20に供給する。
ハッシュ演算コア(MD5,SHA1)C6への入力には、入力データバッファC1の出力データと、セレクタ回路C5の出力データが、それぞれ入力される。
セレクタ回路C5は、DMAディスクリプタにて再開無しが指示された場合は初期IV固定データC4の出力を選択し、再開有りが指示された場合は入力IVレジスタC3の出力を選択する。
出力データバッファC9への入力には、ハッシュ演算コア(MD5,SHA-1)C6の出力データと初期IV固定データC7を加算回路C8で演算した結果と入力される。
出力IVレジスタC3への入力には、ハッシュ演算コア(MD5,SHA-1)C6の出力データが入力される。初期IV固定データC7と加算する前のデータ(ハッシュの処理単位である512バイト毎に順次出力されるデータ)が、計算途中結果となり、その計算途中データをIVとして保持する。
図10は、図9における、中断無し、再開無しの場合のデータ経路を示す図である。
図9のブロック図で示したブロック構成において、ディスクリプタにて中断無し、再開無しを指示した場合、選択されるデータ経路を図10に実線で示す。
この場合、ハッシュ演算コア(MD5,SHA-1)C6に入力されるIVデータとしては初期IV固定データC4を選択し、出力データバッファC9に演算結果が格納されるよう動作させる。
図11は、図9における、中断有り、再開無しの場合のデータ経路を示す図である。
図9のブロック図で示したブロック構成において、ディスクリプタにて中断有り、再開無しを指示した場合、選択されるデータ経路を図11に実線で示す。この場合、ハッシュ演算コア(MD5,SHA-1)C6に入力されるIVデータとしては初期IV固定データC4を選択し、計算途中結果が出力IVレジスタC3に格納されるよう動作させる。
図12は、図9における、中断有り、再開有りの場合のデータ経路を示す図である。
図9のブロック図で示したブロック構成において、ディスクリプタにて中断有り、再開有りを指示した場合、選択されるデータ経路を図12に実線で示す。
この場合、ハッシュ演算コア(MD5,SHA-1)C6に入力されるIVデータとしては入力IVレジスタC2を選択し、計算途中結果が出力IVレジスタC3に格納されるよう動作させる。
図13は、図9における、中断無し、再開有りの場合のデータ経路を示す図である。
図9のブロック図で示したブロック構成において、ディスクリプタにて中断無し、再開有りを指示した場合、選択されるデータ経路を図13に実線で示す。
この場合、ハッシュ演算コア(MD5,SHA-1)C6に入力されるIVデータとしては入力IVレジスタC2を選択し、出力データバッファC9に演算結果が格納されるよう動作させる。
これにより、ハッシュ処理であっても、共通鍵暗号における暗号処理の中断/再開の動作と同様に、IVレジスタ(図1のIVレジスタ6)の値をCPUもしくはDMACがストア/ロードするだけで、ハッシュ処理の中断/再開が容易に可能となる。
以上説明したように、本実施形態によれば、DMAディスクリプタは、DMAC14がデータ格納メモリ12から処理すべき転送データを指示する情報となる。そして、DMAディスクリプタの各種ディスクリプタフォーマットとして、DESやAESといった共通鍵暗号の暗号アルゴリズムを指示するフィールドと、ECBモードやCBCモードやカウンタモード(Counter Mode)といった暗号処理モードを指示するフィールドとを含ませることができる。このため、データ格納メモリに格納された処理対象データに対して、対応する処理内容、たとえばDES-CBC暗号化やAES-Counter Mode暗号化などと転送データ位置および転送サイズをそれぞれ指定することが可能となる。
これにより、処理対象データのサイズと処理モードが確定した時点でCPUはディスクリプタを生成してDMA処理を依頼するだけとなるため、効率的に暗号化処理を行うことができる。
各種暗号処理モード(CBCモード、Counter Mode)での処理時に使用されるIVをセットする記憶手段と、次のブロック処理時に使用されることになるIVを自動生成する手段と、それを保持する記憶手段として機能する共通鍵暗号ブロックを有しているため、CPU11は処理の中断時はそのIVをストアし、処理の再開時はストアしたIVをセットすることにより容易に処理の再開が容易となる。
また、IVのストア/ロードもDMAに処理依頼することにより、さらにCPU11の介入が押さえられる。
また、処理の中断/再開が可能となるため、優先順位の高い処理対象データを先に処理させることも可能となりQoS実現の効果が見込まれる。
また、分割して処理を行うことが可能となるため、バス仕様効率の向上や擬似並列処理による処理の効率化も見込まれる。
また、本実施形態によれば、DMAディスクリプタの各種のディスクリプタフォーマットとして、MD5(Message Digest #5 )やSHA−1(Secure Hash Algorithm )といったハッシュアルゴリズムを指定するフィールド、ハッシュ処理の中断の指示するフィールド、ハッシュ処理の再開を指示するフィールド、等々を、含ませることができる。このため、データ格納メモリに格納された処理対象データに対して、対応する処理内容たとえばMD5の中断処理やSHA−1の再開処理などと転送データ位置及び転送サイズをそれぞれ指定することが可能となる。
これにより、処理対象データのサイズと処理モードが確定した時点でCPU11はDMAディスクリプタを生成してDMA処理を依頼するだけとなるため、暗号化処理と同様にハッシュ処理に関しても効率的に処理を行うことができる。
ハッシュ処理の中断処理時に演算途中結果を保持する記憶手段と、ハッシュ処理の再開処理時に演算途中結果をセットできる記憶手段として機能するハッシュブロックを有しているため、CPU11は処理の中断時はそのIVをストアし、処理の再開時はストアしたIVをセットすることにより容易に処理の再開が容易となる。
また、IVのストア/ロードもDMAに処理依頼することにより、さらにCPU11の介入が押さえられる。
また、処理の中断/再開が可能となるため、優先順位の高い処理対象データを先に処理させることも可能となりQoS実現の効果が見込まれる。
また、分割して処理を行うことが可能となるため、バス仕様効率の向上や擬似並列処理による処理の効率化も見込まれる。
本発明に係る暗号処理装置の一実施形態を示すブロック図である。 一般的なDMAディスクリプタのリンクの様子と、暗号化モード指定/ハッシュモード指定を行うために必要な情報を格納する方法を説明するための図である。 図1の共通鍵暗号ブロックの構成例を示すブロック図である。 ECBモード暗号化/復号の場合のデータ経路を示すブロック図である。 CBCモード暗号化の場合のデータ経路を示すブロック図である。 CBCモード復号の場合のデータ経路を示すブロック図である。 CounterMode暗号化/復号の場合のデータ経路を示すブロック図である。 ハッシュ演算処理の中断/再開を図示した説明図である。 ハッシュブロックの構成例を示すブロック図である。 ハッシュ演算の、中断無し、再開無しの場合のデータ経路を示すブロック図である。 ハッシュ演算の、中断有り、再開無しの場合のデータ経路を示すブロック図である。 ハッシュ演算の、中断有り、再開有りの場合のデータ経路を示すブロック図である。 ハッシュ演算の、中断無し、再開有りの場合のデータ経路を示すブロック図である。
符号の説明
10…暗号処理装置、11…CPU、12…データ格納メモリ、13…データバス、14…DMAC、15…セレクタ回路、16…IVレジスタ、17…共通鍵暗号ブロック、18…ハッシュブロック、19…IVレジスタ、20…セレクタ回路、B1…入力データバッファ、B2…入力IVレジスタ、B3…出力IVレジスタ、B4…セレクタ回路、B5…ExOR回路、B6…セレクタ回路、B7…インクリメント回路、B8…共通鍵暗号コア(DES, AES)、B9…ExOR回路、B10…ExOR回路、B11…セレクタ回路、B12…出力データバッファ、C1…入力データバッファ、C2…入力IVレジスタ、C3…出力IVレジスタ、C4…初期IV固定データ、C5…セレクタ回路、C6…ハッシュ演算コア(MD5,SHA-1)、C7…初期IV固定データ、C8…加算回路、C9…出力データバッファ。

Claims (14)

  1. 暗号処理の中断、再開機能を有し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理装置であって、
    処理対象データを格納するデータ格納メモリと、
    転送された処理対象データに対して共通鍵暗号により暗号化処理を行う共通鍵暗号ブロックと、
    上記データ格納メモリから処理すべき転送データを指示する情報であるディスクリプタに基づいて、上記データ格納メモリから上記共通鍵暗号ブロックへのデータ転送を制御するメモリアクセスコントローラと、
    備え
    上記ディスクリプタ、共通鍵暗号における暗号アルゴリズム、暗号処理モードと、が指示可能なディスクリプタフォーマットを有する
    暗号処理装置。
  2. 上記共通鍵暗号ブロックは、各種暗号処理モードでの処理時に使用されるデータをセットする記憶手段と、次のブロック処理時に使用されることになるデータを自動生成して保持する記憶手段を有する
    請求項1記載の暗号処理装置。
  3. 処理すべきデータが中断処理の対象となる場合、上記ディスクリプタでは転送開始位置と転送サイズの指定に加えて、中断処理の指示を指定する
    請求項1記載の暗号処理装置。
  4. 処理すべきデータが暗号化の対象となる場合、上記ディスクリプタでは転送開始位置と転送サイズの指定に加えて、暗号化の指示を指定する
    請求項1記載の暗号処理装置。
  5. 処理すべきデータが再開処理の対象となる場合、上記ディスクリプタでは転送開始位置と転送サイズの指定に加えて、再開処理の指示を指定する
    請求項1記載の暗号処理装置。
  6. 暗号処理の中断、再開機能を有し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理装置であって、
    処理対象データを格納するデータ格納メモリと、
    転送された処理対象データのハッシュ処理を行うハッシュブロックと、
    上記データ格納メモリから処理すべき転送データを指示する情報であるディスクリプタに基づいて、上記データ格納メモリから上記ハッシュブロックへのデータ転送を制御するメモリアクセスコントローラと、
    備え
    上記ディスクリプタ、ハッシュ演算におけるハッシュアルゴリズムと、ハッシュ処理の中断と、ハッシュ処理の再開と、が指示可能なディスクリプタフォーマットを有する
    暗号処理装置。
  7. 上記ハッシュブロックは、ハッシュ処理の中断処理時に演算途中結果を保持する記憶手段と、ハッシュ処理の再開処理時に演算途中結果をセットできる記憶手段を有する
    請求項6記載の暗号処理装置。
  8. 処理すべきデータを中断も再開も行わずに一括で処理する場合、上記ディスクリプタでは中断無し、再開無しを指定する
    請求項6記載の暗号処理装置。
  9. 処理すべきデータがハッシュ演算の最初で処理されかつハッシュ演算を途中で中断する場合、上記ディスクリプタでは中断有り、再開無しを指示する
    請求項6記載の暗号処理装置。
  10. 処理すべきデータがハッシュ演算の途中で処理されかつハッシュ演算を途中で中断する場合、上記ディスクリプタでは中断有り、再開有りを指示する
    請求項6記載の暗号処理装置。
  11. 処理すべきデータがハッシュ演算の途中で処理されかつハッシュ演算の最後のデータとなる場合、上記ディスクリプタでは中断無し、再開有りを指示する
    請求項6記載の暗号処理装置。
  12. 暗号処理の中断、再開機能を有し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理装置であって、
    処理対象データを格納するデータ格納メモリと、
    転送された処理対象データに対して共通鍵暗号により暗号化処理を行う共通鍵暗号ブロックと、
    転送された処理対象データのハッシュ処理を行うハッシュブロックと、
    上記データ格納メモリから処理すべき転送データを指示する情報であるディスクリプタに基づいて、上記データ格納メモリから上記共通鍵暗号ブロックおよび上記ハッシュブロックへのデータ転送を制御するメモリアクセスコントローラと、
    備え
    上記ディスクリプタは、
    上記共通鍵暗号ブロックへのデータ転送を指示するときには、上記共通鍵暗号における暗号アルゴリズムと、暗号処理モードと、が指示可能なディスクリプタフォーマットを有するとともに、
    上記ハッシュブロックへのデータ転送を指示するときには、ハッシュ演算におけるハッシュアルゴリズムと、ハッシュ処理の中断と、ハッシュ処理の再開と、が指示可能なディスクリプタフォーマットを有する
    暗号処理装置。
  13. ディスクリプタに基づいてデータ格納メモリから処理すべき転送データを指示し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理方法であって、
    上記ディスクリプタ、共通鍵暗号における暗号アルゴリズムと、暗号処理モードと、が指示可能なディスクリプタフォーマットを有する
    暗号処理方法。
  14. ディスクリプタに基づいてデータ格納メモリから処理すべき転送データを指示し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理方法であって、
    上記ディスクリプタ、ハッシュ演算におけるハッシュアルゴリズムと、ハッシュ処理の中断と、ハッシュ処理の再開と、が指示可能なディスクリプタフォーマットを有する
    暗号処理方法。
JP2004215484A 2004-07-23 2004-07-23 暗号処理装置および暗号処理方法 Expired - Fee Related JP4337675B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004215484A JP4337675B2 (ja) 2004-07-23 2004-07-23 暗号処理装置および暗号処理方法
US11/185,691 US7697682B2 (en) 2004-07-23 2005-07-21 Encryption apparatus and encryption method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004215484A JP4337675B2 (ja) 2004-07-23 2004-07-23 暗号処理装置および暗号処理方法

Publications (3)

Publication Number Publication Date
JP2006039000A JP2006039000A (ja) 2006-02-09
JP2006039000A5 JP2006039000A5 (ja) 2006-03-23
JP4337675B2 true JP4337675B2 (ja) 2009-09-30

Family

ID=35732220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004215484A Expired - Fee Related JP4337675B2 (ja) 2004-07-23 2004-07-23 暗号処理装置および暗号処理方法

Country Status (2)

Country Link
US (1) US7697682B2 (ja)
JP (1) JP4337675B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4786354B2 (ja) * 2006-01-27 2011-10-05 株式会社日立製作所 iSCSI通信制御方法とそれを用いた記憶システム
JP4780304B2 (ja) * 2006-02-13 2011-09-28 株式会社メガチップス 半導体メモリおよびデータアクセス方法
US8509218B2 (en) * 2006-02-28 2013-08-13 Genband Us Llc Prioritization within a session over internet protocol (SOIP) network
US8259706B2 (en) * 2006-02-28 2012-09-04 Genband Us Llc Multistage prioritization of packets within a session over internet protocol (SOIP) network
US8204043B2 (en) * 2006-02-28 2012-06-19 Genband Us Llc Quality of service prioritization of internet protocol packets using session-aware components
JP4595853B2 (ja) * 2006-03-22 2010-12-08 日本電気株式会社 暗号システム、暗号回路及びそれらに用いる暗号制御方法
US7769166B2 (en) * 2006-08-24 2010-08-03 Lsi Corporation Dual mode AES implementation to support single and multiple AES operations
US7908411B2 (en) 2006-09-20 2011-03-15 Panasonic Corporation Data transfer device and mobile telephone
JP4466641B2 (ja) * 2006-12-15 2010-05-26 コニカミノルタビジネステクノロジーズ株式会社 暗号処理装置
US7949130B2 (en) 2006-12-28 2011-05-24 Intel Corporation Architecture and instruction set for implementing advanced encryption standard (AES)
US8055902B2 (en) * 2007-01-12 2011-11-08 International Business Machines Corporation Method, system, and computer program product for data upload in a computing system
JP4347350B2 (ja) 2007-02-15 2009-10-21 富士通株式会社 データ暗号転送装置、データ復号転送装置、データ暗号転送方法およびデータ復号転送方法
JP2010128392A (ja) * 2008-11-28 2010-06-10 Canon Inc ハッシュ処理装置及びその方法
KR101210607B1 (ko) 2008-12-08 2012-12-11 한국전자통신연구원 해시 암호 장치 및 방법
US8355499B2 (en) * 2008-12-12 2013-01-15 Micron Technology, Inc. Parallel encryption/decryption
JP2011254440A (ja) * 2010-06-04 2011-12-15 Toshiba Corp 情報処理装置
JP5793694B2 (ja) * 2011-10-24 2015-10-14 パナソニックIpマネジメント株式会社 受信装置
US9756146B2 (en) * 2015-05-19 2017-09-05 Intel IP Corporation Secure boot download computations based on host transport conditions
US10348506B2 (en) 2016-09-30 2019-07-09 International Business Machines Corporation Determination of state of padding operation
GB2574642A (en) 2018-06-13 2019-12-18 Nordic Semiconductor Asa Hardware accelerator

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708273B1 (en) * 1997-09-16 2004-03-16 Safenet, Inc. Apparatus and method for implementing IPSEC transforms within an integrated circuit
JP4078858B2 (ja) 2002-03-19 2008-04-23 松下電器産業株式会社 光増幅回路
US7546327B2 (en) * 2003-12-22 2009-06-09 Wells Fargo Bank, N.A. Platform independent randomness accumulator for network applications

Also Published As

Publication number Publication date
US7697682B2 (en) 2010-04-13
JP2006039000A (ja) 2006-02-09
US20060023877A1 (en) 2006-02-02

Similar Documents

Publication Publication Date Title
JP4337675B2 (ja) 暗号処理装置および暗号処理方法
US10841243B2 (en) NIC with programmable pipeline
US7392399B2 (en) Methods and systems for efficiently integrating a cryptographic co-processor
US11658803B2 (en) Method and apparatus for decrypting and authenticating a data record
US8077867B2 (en) Confidential information processing apparatus, confidential information processing device, and confidential information processing method
US8918646B2 (en) Data processing apparatus
JP6440630B2 (ja) 画像形成方法
US7529924B2 (en) Method and apparatus for aligning ciphered data
JP2006039000A5 (ja)
US11238166B2 (en) Data processing device and operating method therefor
JP2013143653A (ja) 情報処理装置、情報処理方法
JP2008199572A (ja) 機密情報処理機器、機密情報処理装置、及び機密情報処理方法
CN115577397B (zh) 数据处理方法、装置、设备及存储介质
US8560832B2 (en) Information processing apparatus
JP2006041684A (ja) 暗号処理装置および暗号処理方法
CN112035866B (zh) 一种数据加密方法、装置、设备和计算机可读存储介质
US7908411B2 (en) Data transfer device and mobile telephone
US20060013397A1 (en) Channel adapter managed trusted queue pairs
JP2004328359A (ja) パケット処理装置
CN111031055B (zh) 一种IPsec加速装置及实现方法
JP4212339B2 (ja) メッセージダイジェスト生成回路およびパディング回路
JP7289709B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2007208696A (ja) 暗号処理回路及び印刷装置
US8832776B1 (en) Programmable micro-core processors for security processing
JP2013143652A (ja) 情報処理装置、情報処理方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051206

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

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

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

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees