JP4443088B2 - 短い演算に対するdesハードウェア・スループットの向上 - Google Patents

短い演算に対するdesハードウェア・スループットの向上 Download PDF

Info

Publication number
JP4443088B2
JP4443088B2 JP2001581471A JP2001581471A JP4443088B2 JP 4443088 B2 JP4443088 B2 JP 4443088B2 JP 2001581471 A JP2001581471 A JP 2001581471A JP 2001581471 A JP2001581471 A JP 2001581471A JP 4443088 B2 JP4443088 B2 JP 4443088B2
Authority
JP
Japan
Prior art keywords
des
request
short
data
engine
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
JP2001581471A
Other languages
English (en)
Other versions
JP2003532915A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2003532915A publication Critical patent/JP2003532915A/ja
Application granted granted Critical
Publication of JP4443088B2 publication Critical patent/JP4443088B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • 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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Optical Communication System (AREA)
  • Pressure Welding/Diffusion-Bonding (AREA)
  • Vehicle Body Suspensions (AREA)
  • Amplifiers (AREA)
  • Bipolar Transistors (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は暗号サポートに関し、より詳細には短い演算(operation)のための暗号サポートに関する。
【0002】
本出願は、2000年5月1日付けで出願された仮出願60/201,002の特典を請求する正式出願である。
【0003】
【従来の技術】
データ暗号化規格(DES)は、幅広く使用される、秘密鍵を使用したデータ暗号化の一方式である。DESでは、電子ネットワーク上の当事者間でパケットの保護に使用することのできる可能な暗号鍵が72×1015個以上存在する。パケットまたはメッセージごとに鍵が無作為に選択される。他の対称鍵暗号方式と同様に、送信側と受信側の双方が同じ秘密鍵を知り、使用する必要がある。
【0004】
DESでは56ビットの鍵を64ビットの各データ・ブロックに適用する。このプロセスではいくつかのモードを実行することができ、また16回の演算が含まれる。これは強い暗号化であると考えられるが、多くの企業では各パケットに3つの鍵を連続的に適用するトリプルDES(TDES)を使用している。
【0005】
DESは1977年にIBMで開発され、米国国防総省で採用された。DESは、ANSI X.3.92およびX3.106規格と、連邦情報処理標準(FIPS)46および81標準に仕様が規定される。
【0006】
【発明が解決しようとする課題】
典型的には、暗号方式は大きなパケット(約80バイトを超えるパケット)を主な対象とする。しかし、より小さなパケットにDESシステムを使用すると、性能がある程度低下する可能性がある。
【0007】
このため、長いパケット(>80バイト)と短いパケットに対して高いスループットを有するDES演算用の暗号サポートの、システムおよび方法が必要とされている。
【0008】
【課題を解決するための手段】
本発明の一実施形態によると、短い演算用の対称鍵暗号方法が提供される。この方法は、複数の演算パラメータを一括すること、および、対応する演算パラメータに応じて演算を実行することを含む。この対称鍵暗号方法は、データ暗号化規格(DES)方式である。短い演算は、約80バイト未満のものなどである。短い演算は、8バイトから80バイトの間のものである。
【0009】
この方法は、複数の演算パラメータと複数のDES演算を1つの要求に一括すること、要求内の演算ごとにDESを呼び出すこと、および、対応する演算パラメータに従って演算ごとに個別にDESを実行することを含む。
【0010】
この方法はさらに、複数の演算パラメータと複数のDES演算を単一の要求に一括すること、一括した演算に対してDESを呼び出すこと、および、対応する演算パラメータに従って演算ごとに個別にDESを実行することを含む。各要求は、チップ・リセット、鍵、および初期化ベクトルを用いて実行される。一括された演算に対してDESを呼び出すことはさらに、一括した演算のためにコンテクストを切り替えることを含む。コンテクストの切り替えは、アプリケーション・レイヤとシステム・ソフトウェア・レイヤ間の切り替えである。
【0011】
この方法は、ダイナミック・ランダム・アクセス・メモリから一括されたパラメータを読み出すこと、および演算パラメータに従ってDESエンジンを通じて各演算を伝達することを含む。
【0012】
本発明の一実施形態によると、DESの短い演算のスループットを向上する方法が提供される。この方法は、複数の演算パラメータを一括し、各演算パラメータはある演算に対応すること、一括された演算パラメータをダイナミック・ランダム・アクセス・メモリに読み込むこと、および、演算パラメータに従ってDESエンジンを通じて各演算を伝達することを含む。DESは、外部−外部であり、各演算の出力は個別に伝達される。短い演算とは約80バイト未満などのものである。その短い演算は、8バイトから80バイトの間であり得る。
【0013】
本発明の一実施形態によると、長さが約8バイトから約80バイトの演算のための対称鍵暗号方法が提供される。この方法は、鍵のインデックスをエンジンに提供すること、および、エンジンを通じて演算をまとめて送り出し、中央演算処理装置がそのバイトを処理しないことを含む。このエンジンはDESエンジンである。
【0014】
この方法は、演算のためにエンジン・チップをリセットすること、初期化ベクトルを読み出すこと、および初期化ベクトルをエンジン・チップにロードすることを含む。この方法はさらに、鍵インデックスから鍵を決定すること、その鍵をエンジン・チップにロードすること、および演算のデータ長を読み取ることを含む。
【0015】
この方法は、入力チャネルを通じてエンジン・チップにデータ長を伝達すること、および出力チャネルを通じてデータ長を伝達することを含む。これらのチャネルはFIFOである。
【発明の実施の形態】
【0016】
以下で添付図面を参照して、本発明の好ましい実施形態をより詳細に説明する。
【0017】
本発明は、短いDES演算と長いDES演算に高いスループットを有する暗号サポートのシステムおよび方法を提供する。本発明の一実施形態によると、このシステムは、ペリフェラル・コンポーネント・インターコネクト(PCI)カードにパッケージされたマルチチップの埋め込みモジュールを含む。暗号ハードウェアと改ざん検出および応答用の回路の他に、中央演算処理装置を含み、ROMまたはフラッシュ・メモリあるいはその両方に記憶されたソフトウェアを実行する汎用コンピューティング環境が提供される。
【0018】
図1を参照すると、クライアント101およびホスト105のマルチレイヤのソフトウェア・アーキテクチャを示している。クライアント側は、レイヤ0および1 102の基本的なセキュリティ制御、レイヤ2 103の監視レベルのソフトウェア・システム、およびレイヤ3 104のユーザ・レベルのソフトウェア・アプリケーションを含んでいる。レイヤ2 103は、アプリケーション開発をサポートする。レイヤ2 103では、カーネルが、複数のプロセスとアドレス空間のオペレーティング・システムによる抽象化を提供する。この抽象化は、独立したマネジャをサポートし、これらのマネジャは暗号ハードウェアとその他底辺の入出力(I/O)を処理し、レイヤ3のアプリケーション104により高いレベルのアプリケーション・プログラム・インタフェース(API)を提供する。APIとは、アプリケーション・プログラムを書くプログラマがそれによってオペレーティング・システムまたはその他のアプリケーションに要求を行うことができる、コンピュータまたは別のプログラムによって規定される固有の方式である。通例は、レイヤ3のアプリケーション104が、それ自体のAPIの抽象化をホスト側アプリケーション107に提供する。
【0019】
ホスト側105は、デバイス・ドライバ106とホスト・アプリケーション107を含む。図2によると、レイヤ3のアプリケーション104がカード側アプリケーションから提供されるサービスを使用するために、ホスト側アプリケーション107は、ホスト側のデバイス・ドライバ106に対する呼び出しを発する。デバイス・ドライバ10は、デバイス上のレイヤ2のシステム103に対してsccRequestを開く(108)。レイヤ2 103は、デバイスに常駐するレイヤ3のアプリケーション104に、要求の存在と、ホストが要求とともに送ったパラメータを知らせる。
【0020】
図3および図4によると、レイヤ3のアプリケーション104は、ホスト・アプリケーションのサービス要求を処理し、例えば、データ109をデバイス・ドライバ106に転送することをレイヤ2 103に指示し、必要とされる暗号演算を行うことができる。レイヤ3のアプリケーション104は、sccRequestを閉じ(110)、ホスト・アプリケーション107に出力を送り返す(111)。
【0021】
本発明の一実施形態によると、高速暗号化のためのデバイスが提供される。このデバイスは、中央演算処理装置(CPU)と、少なくとも2レベルの内部ソフトウェアと、少なくとも3つのデータ経路とを有するコプロセッサを含む。ソフトウェア・レベルには、オペレーティング・システムまたはカーネルのレベル、およびアプリケーション・レベルを含むことができる。データ経路は、外部から内部メモリまたはCPUあるいはその両方への経路、内部メモリまたはCPUあるいはその両方から対称エンジンへの経路、および外部システムと対称エンジン間のチャネルを含むことができる。このチャネルは、先入れ先出し(FIFO)でよい。本発明の一実施形態によると、このデバイスはFIFOステートマシン(state machine)を含む。FIFOステートマシン構造は、メソッド・エンジンにデータを移送する、またはメソッド・エンジンからデータを取り出す。
【0022】
なお、対称暗号機能(例えばDES)の観点から本発明を提示しているが、本発明は、可変長のデータに対する、任意のパラメータ化された機能をも想定することに留意されたい。したがって本発明の一実施形態の例としてDESが提供され、当業者はここに提供する本発明の教示を考慮すると、本発明の上記の、あるいはそれに類似の実施または構成を企図することができよう。
【0023】
図5を参照すると、FIFO構造はDES/TDESエンジン500とともに動作する。本発明は、IBM4758コプロセッサ、特にModels002/023PCI暗号コプロセッサに則して説明しているが、当業者はここに提供する本発明の教示を考慮に入れると、ここに記す、あるいはそれに類似の実施または構成を考慮することができよう。
【0024】
Model2ハードウェアでは、FIFO構造が高速のセキュア・ハッシュ・アルゴリズム(SHA−1)もサポートするが、この構造はどのメソッド・エンジンにも適用することが可能である。
【0025】
入出力双方について、外部および内部の転送のために2対のFIFO501〜504、すなわちPCI FIFOの対501〜502と内部FIFOの対503〜504がそれぞれ提供され、また、内部のダイナミック・ランダム・アクセス・メモリ(DRAM)507とのCPUを介さない転送のためにダイレクト・メモリ・アクセス(DMA)コントローラ505〜506も提供される。
【0026】
内部CPU508は、アクティブにするデータ経路と、DESエンジン500が使用する鍵、初期化ベクトル(IV)、およびその他の演算パラメータを制御レジスタ(図示せず)を介して選択する。IVは、通例はレイヤ2のシステムに含まれる乱数発生ルーチンによって生成され、暗号化されていないテキストおよび鍵と組み合わせられる。この鍵は、暗号化されていないテキストのブロックに適用して暗号文を生成するための可変値である。
【0027】
DESエンジン500の構成には、外部−外部の大容量DES(図8に示す)、内部−内部の大容量DES(出力DMA506から内部入力FIFO503、DES500へ、そして内部出力FIFO504とPCI出力FIFO502を通じて戻る)、およびDMA転送(例えば、PCI入力FIFO501から内部入力FIFO503、入力DMA505へ、そして出力DMAコントローラ506から内部出力FIFO504、PCI出力FIFO502へ)などがある。さらに、DESハードウェアは、一般に流通するレイヤ2のシステムがハードウェアを使用しないバイパス・モードに構成することができる。
【0028】
このシステムに対する制約の1つは、内部のFIFO−DES間の経路を両方選択する必要がある(大容量モード)か、または両方とも選択しないかのいずれかであることである。別の制約は、データ転送を休止するまでFIFOの構成を変更することができず、FIFOを駆動するステートマシンが、資源が使い果たされるまでデータを非同期に転送することである。
【0029】
内部CPU508は、カード・アプリケーションを各種の方式でサポートするようにFIFOハードウェアを構成することができる。例えば、図6に示すのは、ホスト・アプリケーションがカード・アプリケーションに対してsccRequestを開くときなどにFIFOがDMAを介してカード中にデータを導く構成である。データは、PCI入力FIFO501から601を介して内部入力FIFO503に、602を介して入力DMAコントローラ505に、そして603および604を介してDRAM507に渡される。
【0030】
DES要求を表す図7を参照すると、カードは、演算パラメータをDRAM507からDESチップ500に転送することができる。内部CPU508は、線701〜703を介してDRAM507からDESチップ500に演算パラメータをロードする。
【0031】
図8によると、DES要求が外部−外部のDESに対する要求である場合、カードは、ホストからDESチップ500を通じてデータを導き入れ、ホストに戻すようにFIFOを構成する。CPU508は、ホストからDESチップを通じてデータを流し(stream)、線801〜804を介してホストに戻すようにFIFO501〜504を構成することができる。
【0032】
さらに、DES要求が内部−内部DESに対する要求であり、DMAには短すぎると判断される場合、カードはそのデータ・バイトを手動でプッシュすることができる。CPU508は、プログラム式I/Oおよび線901〜904を介して、DES/TDESエンジンを通じてDRAM507からデータを取り出すことができる。
【0033】
図10に表すように、sccRequestが完了すると、カードはDMAを介してその結果をホストに戻すことができる。内部CPU508は、DMAと線1001〜1004を介してDRAM507からホストにデータを送り返すようにFIFOを構成することができる。
【0034】
本発明は、短いDES演算のスループットを増大する方法を提案する。本発明を評価するのに使用した方法には、データ・サイズを無作為に8バイトから80バイトの間に均一に分布させた暗号ブロック連鎖方式(CBC)による暗号化とCBCによる解読を含むDES演算が含まれる。連鎖方式は、暗号文ブロックの解読をすべての先行ブロックに依存する方式である。IVと鍵は演算ごとに変更されるが、この鍵は、デバイス内部に記憶されたマスタ鍵を用いて暗号化されたトリプルDES(TDES)である。暗号化された鍵、IV、およびその他の演算パラメータは演算ごとに送られるが、データ・スループットの一部としてはカウントされない。鍵は演算ごとに変わる可能性があるが、要求の数に対して鍵の総数は少ない。図16に、本発明の各種実施形態によるDES演算で得られる速度を示している。Model1ハードウェアを使用した場合は、1601で示す速度が達成された。
【0035】
以下の実施形態では、Model2のプロトタイプを使用してベースラインの実装を確立した。図11によると、ホスト・アプリケーションは、プログラム式入出力(PIO)のDESを用いて各演算1101〜1102を個別のsccRequest1103〜1104として処理する。この実装は、短いDESの要求(暗号鍵、IV、データ)のシーケンスを生成するホスト・アプリケーションと、カード側アプリケーションを含む。カード側アプリケーションは、各要求を受け取り、鍵をアンパックし、データ、鍵、およびIVをDESエンジンに送り、その結果をホストに送り返す。鍵は、暗号鍵のセットから無作為に選択された。カード内部に鍵をキャッシュすることにより余分なTDES鍵暗号化のステップが減り、速度が増した(1602)。
【0036】
本発明の一実施形態によると、短いDESの性能は、ホストとカード間の対話を減らすことによって向上させることができる。図12を参照すると、この図には、短いDES要求の大きなシーケンスを1つのsccRequestに一括する1201ことが含まれている。これに応じてカード側アプリケーションを修正し、そのシーケンスを1ステップで受け取り、各演算を処理し1202〜1205、連結された出力を1ステップでホストに送り返す1206ようにした。レイヤ3のアプリケーションは、演算ごとにDESを呼び出す1202、1204。レイヤ2は、演算ごとに個別にDESを実行する1203、1205。ベンチマーク・データに対して、約18〜23キロバイト/秒の間、鍵のキャッシングを用いると最高で40キロバイト/秒の速度が得られた1603。
【0037】
本発明の一実施形態によると、演算ごとのDESチップのリセットを排除することにより、短いDESの性能を向上させることができる1604。すべてが1つの鍵、1つの指示(解読または暗号化)、およびゼロのIV(ただしIVは任意であってよい)を使用する短いDES演算要求のシーケンスを生成することにより、約360キロバイト/秒の速度を達成することができる。カード側アプリケーションは演算シーケンスを受け取り、その演算シーケンスをレイヤ2のシステムに送る。レイヤ2では、修正されたDESマネジャ(DESハードウェアを制御するコンポーネント)が、その鍵とゼロのIVによりチップをセットし、そのチップを通じてデータを伝達する。各演算の最後に、DESマネジャはXOR演算を行って連鎖を解除する。例えば、暗号化の場合、ソフトウェアはチップが行うXORを無効にするために、その演算についての最初の平文ブロックと、直前の演算の最後の暗号文ブロックを手動でXOR演算する。
【0038】
一括する方法によると、チップ・リセットの回数が低減するだけでなく、レイヤ3とレイヤ2間のコンテクスト切り替えの回数もO(n)からO(1)に減り、このnはバッチ(一括処理)中の演算数である。図13を参照すると、本発明の別の実施形態によると、複数鍵と非ゼロIVのセットアップ(結果は1603で示す)を使用することにより、一括した要求1301を修正されたDESマネジャ(レイヤ2)に送る1303〜1304ようにカード側アプリケーション1302を変更し、それによりコンテクスト切り替えの回数を減らした。カード側アプリケーション1302は、一括した演算のためにDESを呼び出す。修正されたDESマネジャ1303〜1304は、チップ・リセットと新しい鍵およびIVを用いて各要求を処理する。要求はホストに送られる1305。修正されたDESマネジャを使用して得られる結果1303〜1304を図16の1604に示す。
【0039】
本発明のさらに別の実施形態によると、FIFOステートマシンは、大容量モードではDESを通じてデータ・バイトを送り出す。したがって、CPUはデータ・バイトを処理しない。従来の方法では、暗号鍵、IV、およびデータの各バイトを多数回処理していた。バイトは、最初のsccRequestバッファの転送により、FIFOおよびDMAを介してDRAMに送られていた。CPUは、DRAMからバイトを取り出し、それをDESチップに入れる。CPUは、DESチップからデータを取り出し、それを再度DRAMに入れる。CPUは、FIFOを通じてホストにデータを送り返す。このため、データ転送の回数を減らすことによりスループットを増大させることができる(1605)。鍵のアンパックは、APIの組み込み部分として排除される。各アプリケーションは独自のアンパック方法を有することが可能であり、これによりAPIのアンパックが冗長になる。各アプリケーション内で、初期化ステップは、平文の鍵テーブルがデバイスDRAMに常駐することをもって完了する。演算長は40バイトに標準化した。また、ホスト・アプリケーションを修正して、暗号鍵ではなく内部の鍵テーブルへのインデックスを含む要求シーケンスを生成するようにした。したがって、カード側アプリケーション1401は、直ちに要求シーケンスをPCI入力FIFOからDRAM中に取り入れるのではなく、修正されたDESマネジャ1402および1407を呼び出し、鍵テーブル1403および1408をマネジャが使用できる状態にする。演算ごとに、修正されたDESマネジャ1402および1407はDESチップをリセットし、IVを読み取ってそれをチップにロードし、鍵テーブルを読み取ってサニティ・チェックを行い、鍵を探索し、その鍵をチップにロードし、その演算のデータ長を読み取る。修正されたDESマネジャはステートマシンをセットアップして、入力FIFOを通じてDESチップ中にそのバイト数を伝達させ、出力FIFOから戻させる1404〜1406および1409〜1411。カード側アプリケーションは要求を閉じる(1412)。この結果を図16の1605に示す。
【0040】
本発明の一実施形態によると、ISA(Industry Standard Architecture)によるI/O命令が増加した(倍加した)ことによりスループットが半減し、ISAによるI/O命令とスループット速度との間の相関関係が示された。次いで(1605および図14との関連で)上記で説明した修正されたDESマネジャを、可能な際はISAによるI/Oの代わりにメモリマップI/Oポートを使用するように修正した(使用したハードウェアは、すべての事例についてメモリマップI/Oポートを提供した訳ではない)。ソフトウェアも修正して、特定のステートマシンが断続的にポーリングを行うことによって生じる擬似のFIFO読み出しをすべて除去するようにした。この結果を図16の1606に示す。
【0041】
図15を参照すると、パラメータを一括することにより、メモリマップ・演算を介してパラメータを読み出すことができ、FIFO構成の修正とデータの処理が可能になる。レイヤ3は、一括演算のためにDESを呼び出す1501。ホスト・アプリケーションは、演算ごとのパラメータを1つのグループに一括し1503、入力データに添付する。修正されたDESマネジャは、一括されたパラメータを読み出すように内部FIFOとステートマシンをセットアップして、DESチップを回避し1502、メモリマップI/Oを介して一括したパラメータを内部出力FIFOからDRAMに読み込み1504、1508、FIFOを再構成する。そして、バッファに入れられたパラメータを使用することによりステートマシンおよびDESチップをセットアップして、各演算のデータ1506および1510を入力FIFOからDESを通じて伝達し、出力FIFOに戻すようにする1505、1507、1509、および1511。レイヤ3は要求を閉じる1512。この結果を図16の1607に示す。この方法の精度は、ISA方式1608を通じてIVレジスタおよびデータ長レジスタにアクセスすることによって高めることができる。
【0042】
本発明によると、短いDESの速度は次の関係に従って求めることができる。
【数1】
Figure 0004443088
ここで、Batchesはホストとカード間のバッチ数であり、Opsは1バッチ当たりの演算の数であり、DataLenは1演算の平均データ長であり、C1、C2、およびC3はそれぞれ、バッチ単位、演算単位、およびバイト単位のオーバーヘッドを表す未知の定数である。
【0043】
本発明は、追加データが転送できる状態になったときにそれを示すポーリングやシグナリングを増し、不確定のsccRequestを可能にするようにホスト・デバイス・ドライバとレイヤ2間の対話を修正することにより、バッチごとのオーバーヘッドC1を排除することを企図する。1演算当たりのオーバーヘッドC2は、1演算当たりのパラメータの転送数を最小にすることによって低減することができる。例えば、ホスト・アプリケーションは、1バッチ分の演算中で、すべてが特定の鍵を使用する次のN個の演算などの引数をアサートするパラメータ・ブロックをインタリーブすることが可能である。この方法では、反復ごとに鍵インデックスを取り込み、読み出すことがなくなる。別の例には、データをカードに送信する前または送信した後に、ホスト・アプリケーションがIVを処理することが挙げられる。ホスト・アプリケーションがIVを提供することが確実であれば、これはセキュリティ問題にはならない。この方法では、IVを取り込むことがなくなり、また、DESチップがリセット後にゼロのデフォルトIVを有するのでIVのロードもなくなる。
【0044】
本発明の別の実施形態によると、FIFOおよびステートマシンの設計を変更することにより演算当たりのオーバーヘッドを減らすことができる。DESエンジンを修正して、データとインタリーブされたパラメータを含むデータ入力を予期するようにすることにより、演算当たりのオーバーヘッドC2がバイト当たりのオーバーヘッドC3に近づくことができる。ステートマシンが処理する出力バイトは入力バイトよりも少なく、CPUは、例えば外部で選択されたパラメータが変動することを許されたエンジン・演算のクラスを制御する。例えば、外部のエンティティに、特定タイプの暗号化演算のみを選択させることが可能である。さらに、CPUは、外部エンティティが選択するパラメータとそのエンジンが見るパラメータに対して間接性(indirection)を挿入することができ、例えば外部エンティティが内部テーブルへのインデックスを提供する。
【0045】
暗号のシステムおよび方法の各種実施形態について説明したが、当業者は上記の教示に照らして修正形態および変形形態を作製できることに留意されたい。したがって、ここに開示する本発明の特定の実施形態には、特許請求の範囲で定義される本発明の範囲および精神内にある変更を加えてよいことを理解されたい。以上、特許法で必要とされる詳細および特定性をもって本発明を説明した。特許証によって請求され、必要とされ、保護される内容を特許請求の範囲に記載する。
【図面の簡単な説明】
【図1】 本発明の一実施形態によるDESアーキテクチャの図である。
【図2】 本発明の一実施形態によるDESアーキテクチャの別の図である。
【図3】 本発明の一実施形態によるDESアーキテクチャのさらに別の図である。
【図4】 本発明の一実施形態によるDESアーキテクチャのさらに別の図である。
【図5】 本発明の一実施形態によるコプロセッサを用いてDES/TDESをサポートするFIFO構造の図である。
【図6】 本発明の一実施形態によるコプロセッサを用いてDES/TDESをサポートするFIFO構造の別の図である。
【図7】 本発明の一実施形態によるコプロセッサを用いてDES/TDESをサポートするFIFO構造のさらに別の図である。
【図8】 本発明の一実施形態によるコプロセッサを用いてDES/TDESをサポートするFIFO構造のさらに別の図である。
【図9】 本発明の一実施形態によるコプロセッサを用いてDES/TDESをサポートするFIFO構造のさらなる図である。
【図10】 本発明の一実施形態によるコプロセッサを用いてDES/TDESをサポートするFIFO構造の図である。
【図11】 従来技術による、2つの演算を個別のsccRequestとして処理するアプリケーションの流れ図である。
【図12】 本発明の一実施形態による、一括したホストとカード間の対話を表す流れ図である。
【図13】 本発明の一実施形態による、単一の呼び出しに一括された複数の演算の流れ図である。
【図14】 本発明の一実施形態による、演算ごとのデータ転送を減らす方法の流れ図である。
【図15】 本発明の一実施形態による、すべての演算のパラメータをブロックに一括する方法の流れ図である。
【図16】 本発明の各種実施形態によるDESの速度を表すグラフである。

Claims (3)

  1. 80バイト以下である短い演算のための、データ暗号化規格(DES)方式による暗号方法であって、
    ホスト側の中央演算処理装置が、複数の前記短いDES要求を一括して、単一の要求(以下、一括されたDES要求)にするステップであって、前記短いDES要求は、短い演算パラメータと短い演算対象データとからなるDES要求であり、前記一括されたDES要求は、カード側のダイナミック・ランダム・アクセス・メモリ内に格納される、前記ステップと、
    DESエンジンを備える前記カード側の中央演算処理装置が、前記ダイナミック・ランダム・アクセス・メモリから前記一括されたDES要求を読み出して、前記DESエンジンにロードし、各DES要求に対応する演算パラメータに従って、前記DES要求中の短い演算ごとに個別に前記DESによる暗号化を前記DESエンジンに実行させるステップと
    を含む方法。
  2. 前記演算が8バイトから80バイトの間である、請求項1に記載の方法。
  3. 80バイト以下である短い演算のための、データ暗号化規格(DES)方式による暗号システムであって、
    複数の前記短いDES要求を一括して、単一の要求(以下、一括されたDES要求)にするホスト側の中央演算処理装置であって、前記短いDES要求は、短い演算パラメータと短い演算対象データとからなるDES要求であり、前記一括されたDES要求は、カード側のダイナミック・ランダム・アクセス・メモリ内に格納される、前記ホスト側の中央演算処理装置と、
    前記ダイナミック・ランダム・アクセス・メモリから前記一括されたDES要求を読み出して、前記DESエンジンにロードする、DESエンジンを備える前記カード側の中央演算処理装置であって、各DES要求に対応する演算パラメータに従って、前記DES要求中の短い演算ごとに個別に前記DESによる暗号化を前記DESエンジンに実行させる、前記カード側の中央演算処理装置と
    を備えている、前記暗号システム。
JP2001581471A 2000-05-01 2001-04-30 短い演算に対するdesハードウェア・スループットの向上 Expired - Fee Related JP4443088B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US20100200P 2000-05-01 2000-05-01
US60/201,002 2000-05-01
PCT/US2001/013927 WO2001084769A1 (en) 2000-05-01 2001-04-30 Improving des hardware throughput for short operations

Publications (2)

Publication Number Publication Date
JP2003532915A JP2003532915A (ja) 2003-11-05
JP4443088B2 true JP4443088B2 (ja) 2010-03-31

Family

ID=22744069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001581471A Expired - Fee Related JP4443088B2 (ja) 2000-05-01 2001-04-30 短い演算に対するdesハードウェア・スループットの向上

Country Status (10)

Country Link
US (3) US7362863B2 (ja)
EP (1) EP1297652B1 (ja)
JP (1) JP4443088B2 (ja)
KR (1) KR20030062232A (ja)
CN (1) CN1306748C (ja)
AT (1) ATE318032T1 (ja)
AU (1) AU2001259277A1 (ja)
DE (1) DE60117255T2 (ja)
IL (2) IL152595A0 (ja)
WO (1) WO2001084769A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970451B1 (en) * 1999-10-12 2005-11-29 At&T Corp. Smart routers-simple optics: network architecture for IP over WDM
US7103180B1 (en) * 2001-10-25 2006-09-05 Hewlett-Packard Development Company, L.P. Method of implementing the data encryption standard with reduced computation
FR2834361B1 (fr) * 2001-12-28 2004-02-27 Bull Sa Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
US7502943B2 (en) 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7532722B2 (en) 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7392400B2 (en) 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7539876B2 (en) * 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7536560B2 (en) 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7529367B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7519833B2 (en) 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7321910B2 (en) 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
KR100585135B1 (ko) * 2004-02-28 2006-06-01 삼성전자주식회사 불법 복제 방지 기능을 갖는 aes 엔진 장치 및 이의암호화/복호화 방법
KR100696061B1 (ko) * 2004-09-14 2007-03-15 쿠쿠전자주식회사 현미발아방법
JP4779657B2 (ja) * 2006-01-11 2011-09-28 ソニー株式会社 イベント方向検出装置およびその方法
CN101051904B (zh) * 2007-05-17 2010-05-19 成都金山互动娱乐科技有限公司 一种保护网络应用程序使用账号密码进行登录的方法
CN101431405B (zh) * 2008-11-17 2011-09-14 暨南大学 Des加密方法及其硬件电路实现方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731843A (en) * 1985-12-30 1988-03-15 Paradyne Corporation Method and device of increasing the execution speed of cipher feedback mode of the DES by an arbitrary multiplier
US4964164A (en) * 1989-08-07 1990-10-16 Algorithmic Research, Ltd. RSA computation method for efficient batch processing
JPH06197146A (ja) 1992-12-25 1994-07-15 Hitachi Ltd 通信制御システムにおける制御パラメータ設定方式およびデータリンクの設定方式
NL9400428A (nl) * 1994-03-18 1995-11-01 Nederland Ptt Inrichting voor het cryptografisch bewerken van datapakketten, alsmede werkwijze voor het genereren van cryptografische bewerkingsdata.
GB2288519A (en) 1994-04-05 1995-10-18 Ibm Data encryption
US5559889A (en) 1995-03-31 1996-09-24 International Business Machines Corporation System and methods for data encryption using public key cryptography
US5953418A (en) * 1995-06-14 1999-09-14 David Hall Providing selective data broadcast receiver addressability
JP3502200B2 (ja) * 1995-08-30 2004-03-02 株式会社日立製作所 暗号通信システム
CA2182254C (en) 1996-07-29 2000-02-15 Weidong Kou Generic file format for multiple security requirements
US5850443A (en) * 1996-08-15 1998-12-15 Entrust Technologies, Ltd. Key management system for mixed-trust environments
US5818939A (en) * 1996-12-18 1998-10-06 Intel Corporation Optimized security functionality in an electronic system
AUPO799197A0 (en) * 1997-07-15 1997-08-07 Silverbrook Research Pty Ltd Image processing method and apparatus (ART01)
WO1999057641A1 (en) * 1998-05-01 1999-11-11 Powerquest Corporation Manipulation of virtual and live computer storage device partitions
JPH11344925A (ja) 1998-05-29 1999-12-14 Nec Corp 部分的暗号化装置及びコンピュータ可読記録媒体
US6438678B1 (en) * 1998-06-15 2002-08-20 Cisco Technology, Inc. Apparatus and method for operating on data in a data communications system
US6393565B1 (en) * 1998-08-03 2002-05-21 Entrust Technologies Limited Data management system and method for a limited capacity cryptographic storage unit
US6636242B2 (en) * 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment

Also Published As

Publication number Publication date
US7831040B2 (en) 2010-11-09
US20090034719A1 (en) 2009-02-05
DE60117255D1 (de) 2006-04-20
EP1297652A4 (en) 2003-08-20
DE60117255T2 (de) 2006-10-05
CN1306748C (zh) 2007-03-21
JP2003532915A (ja) 2003-11-05
US20040028232A1 (en) 2004-02-12
ATE318032T1 (de) 2006-03-15
WO2001084769A1 (en) 2001-11-08
CN1502185A (zh) 2004-06-02
US7362863B2 (en) 2008-04-22
US20080192926A1 (en) 2008-08-14
IL152595A0 (en) 2003-06-24
US8374343B2 (en) 2013-02-12
AU2001259277A1 (en) 2001-11-12
EP1297652A1 (en) 2003-04-02
EP1297652B1 (en) 2006-02-15
IL152595A (en) 2010-12-30
KR20030062232A (ko) 2003-07-23

Similar Documents

Publication Publication Date Title
US8374343B2 (en) DES hardware throughput for short operations
US8983063B1 (en) Method and system for high throughput blockwise independent encryption/decryption
US7200226B2 (en) Cipher block chaining decryption
US7336783B2 (en) Cryptographic systems and methods supporting multiple modes
CN108011706B (zh) 数据处理装置和用于数据的加密处理的方法
KR20180070459A (ko) 비트-믹서에 의한 암호 라운드 키의 발생을 위한 방법 및 시스템
US20070073915A1 (en) Functional DMA
US12010209B2 (en) Memory-efficient hardware cryptographic engine
KR20040067601A (ko) 다수의 동작 모드들을 지원하는 암호화 장치
KR20090085685A (ko) 암호화 동작을 지원하기 위한 복수의 레지스터를 갖는 데이터-이동 제어기
US20070180228A1 (en) Dynamic loading of hardware security modules
CN115516454B (zh) 硬件安全模块和系统
Anderson et al. High-Performance Interface Architectures for Cryptographic Hardware
US11907408B2 (en) Encryption and decryption for a multi-tile processing unit
KR20070017411A (ko) 암호화 동작을 지원하기 위한 복수의 레지스터를 갖는데이터-이동 제어기

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050823

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051111

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060223

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060223

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20060223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060707

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060707

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060816

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20081210

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20081216

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090602

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20091201

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091209

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20091209

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20100105

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140122

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees