JP2003501698A - 基本的なレジスタ演算を用いたパラメータの生成 - Google Patents

基本的なレジスタ演算を用いたパラメータの生成

Info

Publication number
JP2003501698A
JP2003501698A JP2001501960A JP2001501960A JP2003501698A JP 2003501698 A JP2003501698 A JP 2003501698A JP 2001501960 A JP2001501960 A JP 2001501960A JP 2001501960 A JP2001501960 A JP 2001501960A JP 2003501698 A JP2003501698 A JP 2003501698A
Authority
JP
Japan
Prior art keywords
value
parameter
predefined
generating
mod
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.)
Pending
Application number
JP2001501960A
Other languages
English (en)
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003501698A publication Critical patent/JP2003501698A/ja
Pending legal-status Critical Current

Links

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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Abstract

(57)【要約】 例えばチェックサムを計算するために、プリミティブをインプリメントする技術。具体的には、このプリミティブは、mod(M)演算を一連の単純な基本的レジスタ演算(20)で置き換える。これらの演算は、mod2乗算、順序操作(例えばバイトスワップやワードスワップ)、および加算を含み、これらはすべて実施が非常に単純であり、実行するのにごくわずかな処理サイクルしか必要としない。したがって、我々の発明的技術を用いれば、様々な暗号パラメータ、例えばメッセージ認証コード(MAC)(400)を計算するため、またはストリーム暗号(23)を実装するための処理時間を、従来必要とされていた処理時間に打ち勝って大きく短縮することができる。この技術は、可逆と非可逆の両方の変形を有する。

Description

【発明の詳細な説明】
【0001】 (開示の背景) (1.発明の分野) 本発明は、例えばチェックサムを計算するためにプリミティブ(primitive)
を実施する技術に関する。有利なことに、この技術は比較的単純であり、かなり
基本的なレジスタ演算を用いる。したがって、例えばメッセージ認証コード(M
AC、message authentication code)を計算する
ため、またはストリーム暗号を実施するための処理時間が、従来必要とされてい
た処理時間に打ち勝って大きく節約される。
【0002】 (2.従来技術の説明) 現在使用されている多くの様々な暗号技術は、今日、モジュラー計算法を含め
た数学関数を採用しており、モジュラー算法は通常、比較的大きな素数(M)、
例えば232-1やそれ以上の素数などについて、数の剰余を計算するものである
。このような関数の一例、f(x)は、2nを超えるガロア体(GF)において
f(x)=ax+bmod(M)の形となり、この場合、n=2m+1であり、
nおよびmは、体Z(modM)における事前定義済みの整数である。関数自体
は技術間で大きく異なるが、これらは共通して、何らかの形の、かつ通常は著し
く反復的なmod(M)演算の計算が必要である。
【0003】 このようなモジュラー演算は、メッセージ中の平文の各々かつ全てのブロック
を暗号化して対応する暗号文ブロックを生み出し、暗号文ブロックを復号して関
連する平文ブロックを回復するのに用いられるだけでなく、メッセージ認証コー
ド(MAC)やストリーム暗号など、この技術の中間部分を計算する際にも用い
られる。
【0004】 単一のmod(M)演算を行うには、これより多くはならないとしても10〜
15サイクルもの処理サイクルが必要となる可能性がある(法の値Mに基づく)
。暗号技術にはこのような演算が多数必要なので、この技術を採用することに伴
い、単にmod(M)演算を計算することだけにかなりの量の処理時間が消費さ
れる可能性がある。
【0005】 暗号技術は、幅広く拡大しつつある非常に多岐にわたる用途において、ならび
に、例えばパーソナルコンピュータやワークステーションなどの高度に複雑な汎
用目的の機器から、例えば「スマートカード」、リモートコントロール、電子器
具などの比較的単純な専用機器までの、拡大しつつある多くの機器において、情
報を保護するためにますます利用されている。
【0006】 例えば、電子メールによる通信の容易さおよび低コストから、インターネット
は(ネットワークモダリティの中でもとりわけ)、好適な通信媒体として爆発的
かつ急激な成長を遂げている。しかし、インターネットは公衆のアクセスが可能
なネットワークなのでセキュア(secure)ではなく、事実、盗聴、傍受、および
/あるいはさもなければインターネットメッセージトラフィックに障害を生じさ
せるかさらには崩壊させること、または不正にインターネットサイトを通り抜け
ることを意図した、様々な個人および組織からの多様な攻撃の標的になっており
、ますますそうなり続けている。好適な通信媒体としてのインターネット使用に
ますます信頼が置かれるようになっていることに鑑みて、こうしたセキュリティ
の脅威は、第三者による盗聴、傍受、および可能性ある改ざんから、メールメッ
セージやデータおよびコンピュータファイルなどの電子通信を守るセキュリティ
のレベルの改善をもたらす、ますます強力な暗号技術を開発するための当技術分
野における努力を激化させる。したがって、セキュアなインターネットの接続性
を提供するために、ますます多くのパーソナルコンピュータソフトウェア、特に
ウェブブラウザおよびその他のオペレーティングシステムコンポーネントと、電
子メールプログラムおよびその他のアプリケーションプログラムに、暗号処理が
組み込まれている。
【0007】 これとは全く異なる暗号適用例は、いわゆる「スマートカード」に関係するも
のである。この場合、いくぶん複雑でなく安価なマイクロプロセッサを採用した
クレジットカードサイズの専用デバイス、すなわち「スマートカード」が、対応
する個人についての銀行および/または他の金銭残高を記憶する。マイクロプロ
セッサは、カード内部に記憶されたプログラムを使用し、取引の妥当性を検査し
て、そのような各残高を取引に基づいて適切に変更することができる。具体的に
は、その個人は、カードに記憶された残高の全部または一部を借方記入(debit
)および/または貸方記入(credit)するために、単にカードを適切なデータ端
末に挿入して端末に結合されたキーボードに取引データを入力するだけで、ベン
ダや銀行などの別の当事者との電子取引を実施することができる。この方式の取
引によれば、即座に金銭振替ができ、紙幣を、または小切手などの紙ベースの通
貨手段を、処理する必要およびそれに関連するコストはどれも不要になる。記憶
されたプログラムは、非常に強力な暗号技術を利用して、カードに記憶された情
報、特に残高を第三者による不正なアクセスおよび改ざんから守る。
【0008】 しかし前述のように、暗号は処理オーバーヘッドを招く。PCやワークステー
ションなど、大きな処理能力を有する複雑な機器では、このオーバーヘッドによ
ってシステムスループット全体が低下し、スマートカード、リモートコントロー
ル、およびその他の「ローエンド」デバイスなど、やや限られた処理能力を有す
る他のデバイスでは、オーバーヘッドに耐えられず、十分に強力な暗号技術をそ
のようなデバイス中で使用することが阻まれる場合がある。
【0009】 したがって、多様なデバイス、特に限られた処理力を有するデバイスに、暗号
技術を組み込むことへの当技術分野における要望は急速であり、かつ絶えず増え
続けるように見受けられるので、現在、暗号技術を実施するのに必要な処理時間
を短縮する必要性が、当技術分野に存在する。
【0010】 具体的には、等価だが処理集中性のより低い演算で、mod(M)演算を置き
換えられれば、いくつかの暗号技術に関連する処理オーバーヘッドは、特にチェ
ックサムの計算において、急激に減少する可能性がある。この結果が達成できれ
ば、様々な暗号技術を採用したパーソナルコンピュータやワークステーションな
ど、複雑度の高い機器のスループット全体を有利に向上させることができる。さ
らに、このようなオーバーヘッドを削減することができれば、従来このような技
術をうまくサポートする十分な処理力を有しなかった多数のコンピュータ関連デ
バイスにも、強力な暗号技術を組み込むことができる。
【0011】 (発明の概要) 有利なことに我々の本発明は、チェックサムを計算するためのプリミティブを
実施することによってこの必要性を満足するが、有利にもmod(M)演算は必
要ない。
【0012】 我々の広範な発明の教示によれば、このプリミティブは、mod(M)演算を
単純な一連の基本的レジスタ演算で置き換える。これらの演算は、mod2n
算、順序操作(例えばバイトスワップやワードスワップ)、および加算を含み、
これらはすべて実施が非常に単純であり、実行するのにごくわずかな処理サイク
ルしか必要としない。我々の発明の教示を用いれば、様々な暗号パラメータ、例
えばメッセージ認証コード(MAC)を計算するため、またはストリーム暗号を
実装するために必要な処理時間を、従来必要とされていた処理時間に打ち勝って
大きく短縮することができる。
【0013】 具体的には、我々の技術の基本的、例示的、かつ非可逆的なバージョンは、以
下の一連の式を通してプリミティブを計算することを基にする。 xS←wordswap(x) y←Ax+BxSmod(2n) yS←wordswap(y) z←CyS+yDmod(2n) θ←z+ySEmod(2n) 上式で、係数A、B、C、D、Eは、それぞれ2n以下のランダムな奇数の整数
であり、θはnビットストリングである。
【0014】 MACまたは他の暗号パラメータを生成する際に使用する場合は、これらの係
数は「秘密」である。しかしチェックサムの生成に使用するときは、これらの係
数は公開される。
【0015】 有利にも我々の発明的技術は、その特徴として、可逆と非可逆の両方の変形を
有する。
【0016】 (詳細な説明) 以下の説明を考察した後には、チェックサムの計算を含む幅広い暗号技術のい
ずれにおいても、我々の本発明の教示が利用できることを、当業者ならはっきり
と理解するであろう。このような技術とは、例えばメッセージ認証コード(MA
C)を計算する技術やストリーム暗号を実装する技術である。
【0017】 読者が容易に理解できるように、我々はインターネットなどの、セキュアでな
い通信ネットワークを介して、トランザクションメッセージが通信されるクライ
アントサーバトランザクション処理環境で、採用できるような技術(かなり一般
化されるが)における使用の面において我々の発明を論じ、特に、その技術にお
いて採用されるMACを計算する面において論じる。
【0018】 A.概観 図1は、我々の本発明を用いることによって、MACを生成する端末相互間の
暗号プロセス5全体のブロック図を示す。
【0019】 図示されるように、到来した平文情報はいわゆる「メッセージ」に構成されて
いる。Pとして示す、このような各メッセージ7をN個のブロック(P1,P2
...,PN)として構成するが、各ブロックはnビット幅であり、ここでは例
示的にnは32ビットである。このような各平文ブロックを、線10で表すよう
に暗号化プロセス20に適用する。このプロセスは例示的に、メッセージ暗号化
プロセス23および発明のMAC生成プロセス400を含む。プロセス400(
図4および5に関連して後で詳細に述べる)は、平文メッセージPまたは適した
その暗号操作が入力として与えられれば、我々の発明により、このメッセージに
固有かつ通常64ビット長であるMACを生成する。メッセージ暗号化プロセス
23は、平文メッセージを暗号文に暗号化し、2つの最上位ブロック(CN-1
N)として例示するように、64ビットMACをそのメッセージに適切に挿入
して、暗号文メッセージCを生み出す(以下、括弧内の連続した値を分離するカ
ンマを、これらの値の連鎖を示す演算子として用いる)。この2つの最上位ブロ
ックは、集合的にMAC42を形成する。プロセス23内で採用される具体的な
暗号化プロセスに応じて、MAC42は、周知のDES(データ暗号化規格)暗
号化や別の従来の擬似ランダム置換などを通して、それ自体で暗号化してもよく
、そうしなくてもよい。暗号文メッセージは、連続するN個のnビット暗号文ブ
ロックで形成される。
【0020】 得られた暗号文メッセージCは、次いで記憶されるか、所与のモダリティ、例
えば破線45で表されインターネット接続に代表されるセキュアでない通信チャ
ネルを介して、受信側の場所に転送される。ここで、受信済みバージョンの暗号
文メッセージを
【0021】
【数7】
【0022】 として示すが、(メッセージ40´としても符号付けする)、これを復号プロセ
ス50によって復号して、回復された平文メッセージ70を生み出す。 これは平文メッセージ
【0023】
【数8】
【0024】 としても示すが、有効でありしたがってダウンストリーム使用に適するものであ
るためには、すべての面において元の平文メッセージPと同一でなければならな
い。復号プロセス50は、メッセージ復号プロセス60、MAC生成プロセス4
00、および識別コンパレータ90を含む。
【0025】 回復された平文メッセージが有効であるかどうか、例えば改変されていないか
どうかを判定するために、メッセージ復号プロセス60は、回復された平文を作
成するだけでなく、暗号文メッセージ
【0026】
【数9】
【0027】 からMACを抽出する(かつ必要なら復号する)。得られる回復されたMACを
、線67で表すように、コンパレータ90の入力の一方に加える。回復された平
文もまた、線77で表すように、MAC生成プロセス400に加える。プロセス
400は、回復された平文メッセージ
【0028】
【数10】
【0029】 からMACを再計算し、線80で表すように、得られた再計算済みMACをコン
パレータ90の入力の他方に加える。コンパレータ90の対応する入力にこのと
き加えたこれらのMACが両方とも等しく一致する場合、コンパレータ90は、
出力リード73上にこの時現れる。回復された平文メッセージ
【0030】
【数11】
【0031】 が、後続の使用に有効であることを示す適切なID(identification)を、出力
93上に生成する。そうではなく、回復したMACと再計算したMACが一致し
ない場合は、コンパレータ90は、 出力73上にこのとき現れる、回復された平文メッセージ
【0032】
【数12】
【0033】 が、無効であり無視すべきであることを示す適切なIDを、出力97上に生成す
る。MACの生成は別として、暗号化プロセス23およびメッセージ復号プロセ
ス60で、それぞれ用いる暗号化技術および復号技術の具体的な性質は、本発明
に無関係であり、このような様々な技術のいずれでもうまく用いることができる
ので、これらの態様についてはこれ以上詳細に論じない。しかし我々の、199
8年4月20日出願の「Cryptographic Technique T
hat Provides Fast Encryption and Dec
ryption and Assures Integrity of a C
iphertext Message」という名称の係属中の米国特許出願、出
願番号09/062、836と、1998年4月20日出願の「Method
and Apparatus for Producing A Messag
e Authentication Code」という名称の同時係属中の米国
特許出願、出願整理番号09/062、837(読者は参照されたい)の中で、
このような暗号技術の一例を述べ、特許請求している。これらを両方とも参照に
より本明細書に組み込み、またこれらは本明細書と同一の譲受人に譲渡されてい
る。
【0034】 B.例示的な処理環境 以上のことを念頭に置いて、図2を考察されたい。図2には、本発明を利用す
るクライアントサーバ処理環境200の高レベルのブロック図が示してある。
【0035】 図示の通り、この環境は、サーバ210を実装するコンピュータ205を含み
、サーバ210は例示的にウェブサーバとする。リモートに位置するいくつかの
個別クライアントコンピュータを、それぞれ例示的にパーソナルコンピュータ(
PC)とし、このようなクライアントのうちの1つだけ、すなわちクライアント
コンピュータ100だけを具体的に示すが、これは、チャネル140や160な
どの適切な通信チャネルを使用して、セキュアでない通信ネットワークを介して
コンピュータ205に接続されており、通信ネットワークはここでは例示的にイ
ンターネット150として示す。クライアントコンピュータ100に配置され、
サーバから情報を得たいと思っているユーザ(具体的には図示せず)は、クライ
アントコンピュータ100にある対応するクライアントプログラム130を呼び
出すことができる。クライアントプログラムは、クライアントコンピュータ10
0内に集合的にあってクライアントコンピュータ100によって実行される、い
くつかのアプリケーションプログラム120のうちの1つを形成する。クライア
ントプログラムは、アプリケーションプログラム内にあるものとして具体的に示
してあるが、クライアントプログラムはまた、ウェブブラウザやオペレーティン
グシステム(O/S)、例えば図3に示すO/S337などのコンポーネントと
して実装してもよい。図2に示すサーバ210は、例えば、コマースサーバ、バ
ンキングサーバ、電子メールサーバまたはファイルサーバを含めた様々なアプリ
ケーション機能のいずれを実装していてもよい。電子商取引に関しては、ユーザ
は、クライアントコンピュータ100およびサーバ210を介して、商業取引を
行いたいと思う場合があり、これは、金融機関におけるユーザの口座番号や、受
取人に資金を振り替えるための支払い指示などの情報を、サーバに提供すること
(線110で表す)、またはユーザの利用可能な口座残高またはクレジット残高
などの情報をサーバから得ること(線135で表す)を含み、いずれの場合でも
それはそのユーザの秘密である。あるいは、サーバ210は、リポジトリに記憶
された様々なファイルへのアクセス権をユーザに与えるファイルサーバとするこ
ともでき、ユーザは任意のファイルをダウンロードすることができる。このよう
なファイルをダウンロードすると、そこでローカル利用するためにそれをクライ
アントコンピュータ100内にあるメモリ330(図3参照)内に記憶すること
ができる。しかしこのようなファイルは、その所有者がユーザアクセスを制御し
たいと思うプロプラエタリ情報および/または機密の情報を含む場合がある。例
えば、このようなファイルは、所与のプログラムに対する更新の自己インストー
ル実行可能ファイルとすることができ、このプログラムに対して、その所有者例
えばソフトウェア製造者は、不正な公衆アクセスを防止すること、すなわち、そ
れに対して適切な支払いを送金していない個人によってその更新が使用されるの
を防止することを望む。図2に示すように、サーバ210自体がまた、ユーザか
ら発せられた(かつネットワーク(ここではインターネット)150を介してサ
ーバに送信された)機密のまたはプロプラエタリ情報を、後続の処理のためにダ
ウンストリーム機器(具体的には図示せず)に提供する(線215で表す)か、
あるいは最終的に、ネットワークを介して、ユーザに送信するために、機密のま
たはプロプラエタリ情報をダウンストリーム機器から受け取る(線218で表す
)場合もある。
【0036】 例示的にインターネットとするネットワーク150は、第三者によって障害が
引き起こされやすい。これに関して、従来通り暗号化された後でネットワークを
介して搬送されているメッセージであって、例えばクライアントコンピュータ1
00に位置するユーザに関係する進行中の金融取引のために、例えばクライアン
トコンピュータ100から発せられたメッセージを、第三者が傍受する可能性も
ある。第三者は、利用可能な処理能力または時間からみて、メッセージを暗号化
するのに使用された従来型の暗号を破って、送信メッセージに内在する平文を回
復するのに、十分な資源を有しない場合もあるが、それでもこの当事者は、その
暗号文メッセージに関する十分な知識、具体的にはその構造上の構成と、そのメ
ッセージをユーザの損害になるように首尾よく変更するのに必要な手段とを有す
る可能性がある。これに関して、この第三者は、1つまたは複数の事前定義済み
暗号文ブロックで対応する元の暗号文ブロックを置き換え、次いで、得られた修
正済み暗号文メッセージを、コンピュータ205に搬送されてそこで処理される
ようにネットワーク上に返送することにより、暗号文メッセージを不正に改ざん
する可能性がある。
【0037】 クライアントコンピュータ100とコンピュータ205との間で、ネットワー
ク150上を通過する機密のまたはプロプラエタリな性質の情報を、第三者アク
セスから保護するために、クライアントプログラム130とサーバ210は両方
とも、それぞれ、暗号化プロセス20および復号プロセス50を組み込むことに
よって、暗号通信を利用する。したがって、ネットワークで搬送されることにな
っておりクライアントプログラム130とサーバ210のいずれかのネットワー
クアプリケーションピア(peer)によって生成されたメッセージは、それぞれそ
の中で暗号化プロセス20によって暗号化されて、MACが埋め込まれた対応す
る暗号文メッセージが生み出され、これらの暗号文メッセージは、順に、それぞ
れネットワーク150を介して、他方のネットワークアプリケーションピアに送
信される。同様に、各ピアによってネットワークから受け取られた暗号文メッセ
ージは、各ピアの中で復号プロセス50によって復号されて、適切な回復済み平
文メッセージおよびその妥当性に関してIDが生み出される。暗号化プロシージ
ャ20と復号プロシージャ50とは、相互の逆のプロシージャである。
【0038】 C.クライアントコンピュータ100 図3に、クライアントコンピュータ(PC)100のブロック図を示す。
【0039】 図示のように、クライアントコンピュータ100は、入力インタフェース(I
/F)320、プロセッサ340、通信インタフェース350、メモリ330、
および出力インタフェース360を備え、これらはすべて従来通りバス370に
よって相互接続される。メモリ330は一般に、データおよび命令を一時的に記
憶するためのランダムアクセスメモリ(RAM)332と、ユーザコマンドによ
り、フロッピー(登録商標)ディスケットで情報を交換するためのディスケット
ドライブ334と、通常は磁気性質であるハードディスクによって実装される不
揮発性大容量記憶装置335とを例示的に含めた、異なるモダリティを含む。大
容量記憶装置335はまた、適した光学記憶媒体から情報を読み取る(かつそれ
に情報を書き込む)ための、CD−ROMまたは他の光学媒体リーダ(具体的に
は図示せず)(またはライタ)も含むことができる。大容量記憶装置は、オペレ
ーティングシステム(O/S)337およびアプリケーションプログラム120
を記憶する。後者は例示的に、我々の発明的技術を組み込んだクライアントプロ
グラム130(図2参照)を含む。図3に示すO/S337は、WINDOWS
(登録商標) NTオペレーティングシステム(「WINDOWS(登録商標)
NT」はワシントン州RedmondにあるMicrosoft Corpo
rationの登録商標)など、従来のオペレーティングシステムのいずれによ
っても実装することができる。このことから、O/S337のコンポーネントは
すべて関係がないので、そのいずれについても論じない。アプリケーションプロ
グラム120のうちの1つであるクライアントプログラムがO/Sの制御下で実
行される、と言えば十分であろう。
【0040】 有利なことに、我々のこの発明の技術は、暗号法による暗号化モジュールおよ
び復号モジュール内で用いられるように組み込まれたとき、有利に処理時間を節
約し、それによりクライアントコンピュータ100とサーバ210(図2参照)
の両方のスループットを向上させる。
【0041】 図3に示すように、例示的な2つの外部ソースからの到来情報が発生する可能
性がある。すなわち、例えばネットワーク接続140を介してインターネットお
よび/または他のネットワーク化された機能から、通信インタフェース350に
供給されるか、あるいはパス310を介して、専用入力ソースから入力インタフ
ェース320に供給される、ネットワーク供給情報である。専用入力は幅広い、
様々なソース、例えば外部データベースから発することができる。さらに、入力
情報は、その情報を含むディスケットをディスケットドライブ334に挿入する
ことによって、ファイルまたはその中の具体的な内容の形で、提供することもで
き、コンピュータ100は、ユーザの命令下で、ディスケットからその情報にア
クセスして読み取る。入力インタフェース320は、入力情報に対する異なる専
用ソースそれぞれを、コンピュータシステム100に物理的に接続およびインタ
フェースするのに必要とされる、必要かつ対応した電気的接続を提供するのに、
適した回路を備える。アプリケーションプログラム120は、オペレーティング
システムの制御下で、ネットワーク接続140またはパス310を介して、外部
ソースとコマンドおよびデータを交換して、プログラム実行中に通常はユーザか
ら要求される情報を送受信する。
【0042】 入力インタフェース320はまた、キーボードやマウスなどのユーザ入力装置
395を、コンピュータシステム100に電気的に接続およびインタフェースす
る。従来のカラーモニタなどのディスプレイ380、および従来のレーザプリン
タなどのプリンタ385は、それぞれリード363および367を介して、出力
インタフェース360に接続される。出力インタフェースは、ディスプレイおよ
びプリンタをコンピュータシステムに電気的に接続およびインタフェースするの
に、必要な回路を備える。理解できるように、我々のこの発明の暗号技術は、ク
ライアントコンピュータ100が情報を入手し、記憶し、および/または通信す
るモダリティに関係なく、どんなタイプのディジタル情報でも動作することがで
きる。
【0043】 さらに、コンピュータシステム100の具体的なハードウェアコンポーネント
ならびにメモリ335内に記憶されるソフトウェアのすべての態様は、本発明を
実装するモジュールは別として、従来型かつ周知であるので、これ以上詳細には
論じない。概して言えば、コンピュータ205は、クライアントコンピュータ1
00と非常に類似するアーキテクチャを有する。
【0044】 D.従来の暗号技術におけるモジュロ算法によって生じる制限 従来の暗号技術は、mod(M)の計算を必要とするチェックサムを、プリミ
ティブとして頻繁に採用し、Mは例えば231−1やそれ以上などの、大きな素数
である。
【0045】 残念なことに、mod(M)演算は、これより多くはならないとしても、少な
くとも約10〜15マシンサイクルが計算に必要である(法の値Mに基づく)。
この関数は、従来の暗号化演算中と復号演算中の両方で繰り返し計算される。し
たがって、PCやワークステーションなど、大きな処理能力を有する機器上にこ
のような技術を実装した場合、mod(M)計算は、スループット全体をおそら
く顕著に低下させるであろう。しかし、やや限られた処理能力しか有さない機器
内では、この計算オーバーヘッドは耐えられない場合があり、したがって、この
暗号技術の使用が非常に有益となる可能性のあるこれらの機器内で、この暗号技
術を使用することが阻まれる。
【0046】 E.我々の発明的技術およびその実施 当技術分野におけるこの欠陥を認識し、有利にもmod(M)演算を必要とし
ないチェックサム実施技術を開発した。
【0047】 我々の技術は、チェックサムを比較的単純な一連の基本的レジスタ演算として
実施する。これらの演算は、mod2n乗算、順序操作(ブロック中のビット順
序付けを変更する演算、例えばバイトスワップやワードスワップなど)、および
加算を含み、これらはすべて実施が非常に単純であり、実行するのにごくわずか
な処理サイクルしか必要としない。プリミティブ中で用いる演算はまた、いくぶ
ん効果的にパイプライン化することもできる。したがって、我々の発明に基づく
プリミティブを使用すると、特にパイプライン化されている場合には、様々な暗
号パラメータ、例えばメッセージ認証コード(MAC)を計算するため、および
ストリーム暗号を実装するために必要な処理時間を、従来必要とされていた処理
時間に打ち勝って、大きく短縮することができる。我々の発明的技術はまた、有
利にも、ある暗号に組み込んで、何らかの平文−暗号文の攻撃に対して、それら
の暗号のセキュリティを高めることもできる、と考えられる。
【0048】 以下の数学定義F(x)=θから始めるが、添字「S」、すなわちxSにおけ
るSは、適切なバイトスワップ演算またはワードスワップ演算のいずれかを示す
【0049】 やや本題から外れるが、図6Aおよび6Bに、ワードスワップ演算およびバイ
トスワップ演算をそれぞれ示す。2つの16ビットワード(例えばワード613
および617。それぞれ「左」および「右」にあたるLおよびRの符号も付けて
ある)を有するnビットのブロック610(例示的に32ビット長)を仮定した
場合、線620で表すワードスワップ演算により、場所が入れ替わったこれらの
ワード(すなわちワード617および613とそれぞれ同一のワード633およ
び637)を有するnビットのブロック630が生み出される。このような演算
は、矢印625で示すように単に個々のワードを交換するだけで、1つの処理サ
イクルで実施することができる。個別の8ビットバイト652、654、656
、658(やはりそれぞれバイトA、B、C、Dとして符号をつける)を有する
nビットのブロック650(やはり例示的に32ビット長)を仮定した場合、線
660で表すバイトスワップ演算により、順番に反転されたこの4つのバイト(
すなわちバイト658、656、654、652とそれぞれ同一のバイト672
、674、676、678)を有するnビットのブロック670が生み出される
。このバイトスワップ演算は、矢印665で示すように個々のバイトを並列に交
換することにより、1つの処理サイクルで実施することができる。
【0050】 これらの定義を念頭に置いた場合、非可逆バージョンのプリミティブF(x)
は、我々の発明的な教示により、以下の式(1)〜(5)を順番に計算すること
によってチェックサム、具体的にはf(x)=ax+bmod(M)を実施する
。 xS←wordswap(x) (1) y←Ax+BxSmod(2n) (2) yS←wordswap(y) (3) z←CyS+yDmod(2n) (4) θ←z+ySEmod(2n) (5) 上式で、係数A、B、C、D、Eは、それぞれ2n以下のランダムな奇数の整数
であり、θはnビットのストリングである。
【0051】 見れば分かるように、これらの式は、基本的なレジスタ演算すなわち順序操作
(例えばワードスワップおよびバイトスワップ、加算、mod(2n)乗算)を
用いて実施される。したがって、これらの演算は比較的わずかな処理サイクルを
用いて実施することができ、これはmod(M)演算を行うのに必要な10〜1
5サイクルよりも確実にかなり少ない。式(1)および(3)はワードスワップ
演算を用いて示したが、代わりにバイトスワップ演算(または場合によっては、
ビット順序付けを変更する他の操作)を用いることもできる。係数の値A、B、
C、D、Eは、MACまたは他の様々な暗号タームを生成する際に使用する場合
は、「秘密の」値すなわち非公開の値である。
【0052】 可逆バージョンのプリミティブF(x)は、やはり我々の発明的教示により、
以下の式(6)〜(15)を通してf(x)を実施する。 y←Axmod(2n) (6) yS←wordswap(y) (7) z←BySmod(2n) (8) zS←wordswap(z) (9) v←CzSmod(2n) (10) vS←wordswap(v) (11) w←DvSmod(2n) (12) wS←wordswap(w) (13) t←EwSmod(2n) (14) θ←t+LySmod(2n) (15) 上式で、係数A、B、C、D、Eは、それぞれ2n以下のランダムな奇数の整数
であり、Lは2n以下のランダムな整数である。
【0053】 ここでもまた、MACまたは他の様々な暗号タームを生成するときは、係数の
値A、B、C、D、E、Gはすべて「秘密の」値である。別法として、式(6)
〜(12)を使用してF(x)=wでプリミティブを実施することもできる。さ
らに、別のタイプの順序操作である「反転」演算(ブロック中のすべてのビット
が順番に完全に反転される)をバイトスワップまたはワードスワップの代わりに
用いることもできる。例えば、我々の発明により、以下の式(16)〜(19)
を通して可逆形式のf(x)に対する、プリミティブF(x)を実施することも
できる。 y←Hxmod(2n) (16) z←reverse(y) (17) s←Jzmod(2n) (18) θ←s+Kmod(2n) (19) 上式で、係数H、J、Kはそれぞれ2n以下のランダムな整数である。
【0054】 MACまたは他の暗号タームを生成するのにこのプリミティブを使用する場合
は、係数H、J、Kは「秘密の」値となる。反転演算はバイトスワップまたはワ
ードスワップ演算と比較して相対的に遅いので、式(16)〜(19)によって
得られるプリミティブよりも、上記の式(6)〜(12)または(6)〜(15
)によって得られるプリミティブを使用する方が好ましい。
【0055】 以上の記述に基づけば、f(x)=ax+bmod(M)に対して等価な暗号
特徴を備え、mod2n乗算、順序操作、および加算を本発明により利用するが
mod(M)演算は利用せず、したがって前述の具体的なプリミティブの代わり
とすることのできる、他の様々なプリミティブF(x)を、当業者なら容易に案
出することができることは明らかである。
【0056】 先に論じたように、我々の発明的技術に基づく一般化されたプリミティブを使
用して、MACを生成することができる。そうするためには、非可逆であり前述
と同じ形(F(x))の、関数f(x)に対する一連のプリミティブF1(x)
,F2(x),...,Fp(x)が選択されるが、これらは対応する「秘密の」
係数の値が異なる。すなわち、F1(x)が「秘密の」係数A、B、C、D、E
を有する場合は、F2(x)は「秘密の」係数a、b、c、d、eを有する等で
ある。その後、nビットのストリングの入力シーケンスX=x1,x2,...,
Nが与えられた場合、これらのp個のプリミティブ(ただしp<n)のうちの
連続したプリミティブを、対応する連続した入力値xiに使用して、対応する出
力値(中間結果)Y=y1,y2,...,yNが以下の式(20)〜(25)に
従って計算される。 y1=F1(x1) (20) y2=F2(x2+y1) (21) y3=F3(x3+y2) (22) yp=Fp(xp+yp-1) (23) . . . yp+1=F1(yp+xp+1) (24) yp+2=F2(yp+1+xp+2) (25) . . . この中間結果の関数として、以下の式(26)に従って、MACを形成するこ
とができる。
【0057】
【数13】
【0058】 追加のセキュリティのために、以下の式(27)によって示すように、合計の
中の各yi項に対して秘密またはランダムの置換(γi)を導入することにより、
式(25)を修正することができる。
【0059】
【数14】
【0060】 上式で、γiは、kを含めた±kの範囲内すなわちγi∈{k,k−1,k−2,
...,0,−1,−2,...,−k}で、ランダムにまたは「秘密の」事前
定義値として選択され、kは事前定義済みの整数である。簡単にするために、各
γiは値+1または−1に設定してもよく、そのようなすべてのγiのうちでラン
ダムな、擬似ランダムな、または「秘密の」事前定義済みの変動を伴う。
【0061】 式(20)〜(25)は同じp個のプリミティブを繰り返した連続を利用して
いるが、代わりに、このような連続で異なるものを使用してもよい。関数の各連
続は別々の出力ハッシュ値yを生成し、次いでこれを共に連結させてMAC形成
することができ、あるいは式(26)を用いて各プリミティブの個別の出力yを
合計してMAC値を生み出すことができる。さらに、例えば式(20)〜(23
)によって示すように、ある連続を前向き連鎖で実行することもできる。例えば
式(24)および(25)によって示すものなど、同じ連続の次の実行を、また
は異なる連続の次の実行を「逆方向」連鎖で実行することもできる。逆方向連鎖
を使用する場合、関連する入力値は、前向き連鎖で使用した入力値に対して、逆
の順番で、その連続の中にある個々のプリミティブに加えることができる。
【0062】 我々の発明的技術を使用してチェックサムを計算する場合、この計算は、MA
Cの計算に用いられる計算と同一とは言わないまでも非常に類似するが、すべて
の係数の値、ならびに、使用するならば、すべてのγiの値は、公開される。
【0063】 以上を念頭に置きながら、次に、暗号化プロセス20によって使用される、か
つ、我々の発明的技術を実装したプリミティブに従って、MACを生成するのに
必要なソフトウェアの説明に移る。
【0064】 図4に、図1に示したプロセス5でMACの生成に用いるMAC生成プロセス
400の高レベルのフローチャートを示す。このルーチンは、プリミティブF(
x)およびG(x)が完全に選択されていると仮定して、先に論じた式(20)
〜(25)を実施する。
【0065】 具体的には、暗号化プロセス20と復号プロセス50のいずれかの実行中にル
ーチン410に入ると、図4に示すようにまずブロック410に進む。このブロ
ックは、ポインタ(i)を1に、かつ合計変数(ys)を0に初期化する。その
後、ブロック420、430、440、および450で形成されるループに入っ
て、入力された入力平文ブロック(Pi)ごとに連続する出力値yiを計算し、こ
れらの出力値を合計変数ysに累積する。
【0066】 具体的には、このループに入るとまずブロック420に進んで、F(P1)に
等しい出力値y1を計算する。これを行った後で、合計計算プロシージャ430
に進み、そこでブロック435を介して単純に出力値yiを合計変数ysに加算す
る。これを行った後で、判断ブロック440に進んで、入力平文メッセージPの
N個のブロックをすべて処理したかどうか、すなわちポインタiの現在の値がこ
のときNに等しいかどうかを判定する。このようなブロックが残っている場合、
すなわちiの現在の値がN未満の場合は、判断ブロック440はNOパス443
を介してブロック450に実行をルーティングする。この後者のブロックは、ポ
インタiの値を1つインクリメントし、次いでフィードバックパス455を介し
てブロック420に実行が戻されて、次の連続する出力値が計算され、以下同様
である。この時点では、ブロック420によって実施される計算は、ブロック4
20を介する所与の反復について、iの値がその場合に偶数か奇数かによって決
まる。したがって、連続するiに対してプリミティブF(x)とG(x)が交互
になる。
【0067】 すべての出力値を計算して合計した後で、判断ブロック440はYESパス4
47を介してブロック460に実行をルーティングする。この後者のブロックは
、値yNを合計変数の現在の値と連結させて、得られたMACとしての64ビッ
ト値を出力として供給することにより、単純にMACを形成する。これを行った
後で、ルーチン400を終了する。
【0068】 図5に、MAC生成プロセス400の一部をなす合計計算プロシージャ430
の代わりに用いることのできる代替の合計計算プロシージャ500の、高レベル
のフローチャートを示す。プロシージャ500は、上記の式(26)を実施する
【0069】 具体的には、プロシージャ500に入るとまずブロック510に進み、ここで
γiの値を適切に設定する。前述のようにこの値は、±k(ただし通常は±1の
値を使用する)の範囲内でランダム、擬似ランダム、または事前定義済みとする
ことができる。この値を設定した後で、ブロック520に進み、ここで現在の出
力値yiに、対応するγiの値を掛け、得られた値を合計変数ysに加算する。こ
れを行った後で、プロシージャ500を終了する。
【0070】 MAC(またはチェックサム)を64ビット長すなわち2つの32ビットブロ
ックとして述べたが、この代わりに、単一の32ビットブロックや64ビットよ
りも長いもの(ただし整数ブロックのサイズのもの)など、他のビット(および
ブロック)サイズのMAC(またはチェックサム)を使用することもできること
を、明らかに当業者なら理解するだろう。MACを生成するためと、必要な場合
に、それを暗号化および復号するために、増加した処理時間がかかることが見込
まれるものの、MACが大きいほど、保証される限度までの、より高いレベルの
セキュリティがもたらされる。
【0071】 本発明の教示を組み込んだ詳細な実施形態について、いくつかの変形と共に本
明細書に詳細に示し、説明したが、これらの教示をやはり利用した本発明の他の
多くの実施形態および適用例を、当業者なら容易に案出することができる。
【図面の簡単な説明】
本発明の教示は、添付の図面とともに詳細な説明を考察することによって容易
に理解することができる。
【図1】 本発明の教示を利用して、例示的にメッセージ認証コード(MAC)を生成す
る、端末相互間の暗号プロセス5全体のブロック図である。
【図2】 例示的に本発明を利用する、典型的なインターネットベースのクライアントサ
ーバ処理環境の、高レベルのブロック図である。
【図3】 図2に示したクライアントコンピュータ100のブロック図である。
【図4】 我々の本発明の教示によってMACを生成するために、図1に示したプロセス
5で用いられる、MAC生成プロセス400の高レベルのフローチャートである
【図5】 図4に示したMAC生成プロセス400の一部をなす、合計計算プロシージャ
430の代わりに用いることのできる、代替の合計計算プロシージャ500の、
高レベルのフローチャートである。
【図6A】 我々の本発明によって採用できる典型的なワードスワップ演算を示す図である
【図6B】 我々の本発明によって採用できる典型的なバイトスワップ演算を示す図である
。 理解を容易にするために、各図に共通の同一要素を指すためには、可能な限り
、同一の参照番号を使用している。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,MZ,SD,SL,SZ,TZ,UG ,ZW),EA(AM,AZ,BY,KG,KZ,MD, RU,TJ,TM),AE,AL,AM,AT,AU, AZ,BA,BB,BG,BR,BY,CA,CH,C N,CR,CU,CZ,DE,DK,DM,EE,ES ,FI,GB,GD,GE,GH,GM,HR,HU, ID,IL,IN,IS,JP,KE,KG,KP,K R,KZ,LC,LK,LR,LS,LT,LU,LV ,MA,MD,MG,MK,MN,MW,MX,NO, NZ,PL,PT,RO,RU,SD,SE,SG,S I,SK,SL,TJ,TM,TR,TT,TZ,UA ,UG,UZ,VN,YU,ZA (72)発明者 マリウス エイチ.ジャクボウスキー アメリカ合衆国 98007 ワシントン州 ベルビュー 154 アベニュー ノースイ ースト 1840 アパートメント シー− 222 Fターム(参考) 5J104 AA18 AA21 NA17

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】 入力ディジタル平文の連続する複数(N個)のブロック(x 1 ,x2,...,xn)からパラメータを生み出すための、機器で用いる方法に
    おいて、該方法は、事前定義済みの関数f(x)=ax+bmod(M)の特性
    と等価な暗号特徴を備える、プリミティブF(x)を実施し、aおよびbは事前
    定義済みの整数であり、Mは事前定義済みの整数の素数であり、前記機器は、 プロセッサと、 前記プロセッサに接続されたメモリであって、コンピュータ実行可能命令で形
    成されたコンピュータプログラムを記憶したメモリとを有し、 前記方法は、前記プロセッサによって実行され前記実行可能命令を通して実施
    されるステップであって、順序操作、加算、およびmod(2n)乗算の演算(
    nは事前定義済みの整数)の、事前定義済みシーケンスを、前記プリミティブと
    して含む所定のプロシージャを通して、前記平文のブロックを処理することによ
    って、前記パラメータを生成するステップを備え、前記演算は集合的に前記プリ
    ミティブを実施するがmod(M)の値を計算することはなく、前記プリミティ
    ブは短縮された処理時間を呈することを特徴とする方法。
  2. 【請求項2】 前記各順序操作は、実行対象であるデータブロックのビット
    順序を変更する、事前定義済みの演算であることを特徴とする請求項1に記載の
    方法。
  3. 【請求項3】 以下の式、 y1=F1(x1) y2=F2(x2+y1) y3=F3(x3+y2) yp=Fp(xp+yp-1) . . . yp+1=F1(yp+xp+1) yp+2=F2(yp+1+xp+2) . . . に従って、複数の中間結果yi(N≧i≧1)を生成するステップであって、F1 (x),F2(x),...,Fp(x)は同じ形のプリミティブでありp<nで
    あるステップと、 前記中間結果の事前定義済み関数に応答して、前記パラメータを生成するステ
    ップと から成り、前記プロセッサによって実行され前記実行可能命令に応答したステ
    ップをさらに備えたことを特徴とする請求項2に記載の方法。
  4. 【請求項4】 前記パラメータ生成ステップは、yNの値と前記中間結果の
    合計の値との連結として、前記パラメータを生み出すステップをさらに備えたこ
    とを特徴とする請求項3に記載の方法。
  5. 【請求項5】 前記パラメータ生成ステップは、yNの値と 【数1】 の値との連結として、前記パラメータを生み出すステップをさらに備え、各iに
    つき、γiはkを含めた±kの範囲内で、事前定義済みまたはランダムな値を有
    し、kは事前定義済みの整数であることを特徴とする請求項3に記載の方法。
  6. 【請求項6】 前記各順序操作は、バイトスワップもしくはワードスワップ
    、または反転演算であることを特徴とする請求項3に記載の方法。
  7. 【請求項7】 以下の式、 xS←wordswap(x) y←Ax+BxSmod(2n) yS←wordswap(y) z←CyS+yDmod(2n) θ←z+ySEmod(2n) に従って、前記プリミティブF1(x)を実施するステップであって、係数A、
    B、C、DおよびEは、それぞれ2n以下のランダムな奇数の整数であり、θは
    出力ストリングであるステップと、 以下の式、 xS←wordswap(x) y←ax+bxSmod(2n) yS←wordswap(y) z←cyS+ydmod(2n) θ←z+ySemod(2n) に従って、前記プリミティブF2(x)を実施するステップであって、係数a、
    b、c、dおよびeは、係数A、B、C、DおよびEに対応するが、それらとは
    異なるそれぞれの値を有するステップと から成り、前記プロセッサによって実行され前記実行可能命令に応答したステ
    ップをさらに備えたことを特徴とする請求項4に記載の方法。
  8. 【請求項8】 プリミティブF1(x),F2(x),...,Fp(x)に
    対する前記係数は秘密であり、前記パラメータからメッセージ認証コードが形成
    されることを特徴とする請求項7に記載の方法。
  9. 【請求項9】 前記パラメータ生成ステップは、yNの値と前記中間結果の
    合計の値との連結として、前記パラメータを生み出すステップをさらに備えたこ
    とを特徴とする請求項8に記載の方法。
  10. 【請求項10】 前記パラメータ生成ステップは、yNの値と 【数2】 の値との連結として、前記パラメータを生み出すステップをさらに備え、各iに
    つき、γiはkを含めた±kの範囲内で、事前定義済みまたはランダムな値を有
    し、kは事前定義済みの整数であることを特徴とする請求項8に記載の方法。
  11. 【請求項11】 プリミティブF1(x),F2(x),...,Fp(x)
    に対する前記係数は公開されており、前記パラメータはチェックサムであること
    を特徴とする請求項7に記載の方法。
  12. 【請求項12】 前記パラメータ生成ステップは、yNの値と前記中間結果
    の合計の値との連結として、前記パラメータを生み出すステップをさらに備えた
    ことを特徴とする請求項11に記載の方法。
  13. 【請求項13】 前記パラメータ生成ステップは、yNの値と 【数3】 の値との連結として、前記パラメータを生み出すステップをさらに備え、各iに
    つき、γiはkを含めた±kの範囲内で、事前定義済みまたはランダムな値を有
    し、kは事前定義済みの整数であることを特徴とする請求項11に記載の方法。
  14. 【請求項14】 請求項1のステップを実行するためのコンピュータ実行可
    能命令を記憶したことを特徴とするコンピュータ可読媒体。
  15. 【請求項15】 入力ディジタル平文の連続する複数(N個)のブロック(
    1,x2,...,xn)からパラメータを生み出すための装置において、プロ
    セスは、事前定義済みの関数f(x)=ax+bmod(M)の特性と等価な暗
    号特徴を備える、プリミティブF(x)を実施し、aおよびbは事前定義済みの
    整数であり、Mは事前定義済みの整数の素数であり、前記装置は、 プロセッサと、 前記プロセッサに接続されたメモリであって、コンピュータ実行可能命令で形
    成されたコンピュータプログラムを記憶したメモリとを備え、 前記プロセッサは、前記実行可能命令に応答して、順序操作、加算、およびm
    od(2n)乗算の演算(nは事前定義済みの整数)の、事前定義済みシーケン
    スを、前記プリミティブとして含む所定のプロシージャを通して、前記平文のブ
    ロックを処理することによって、前記パラメータを生成し、前記演算は集合的に
    前記プリミティブを実施するがmod(M)の値を計算することはなく、前記プ
    リミティブは短縮された処理時間を呈することを特徴とする装置。
  16. 【請求項16】 前記各順序操作は、実行対象であるデータブロックのビッ
    ト順序を変更する、事前定義済みの演算であることを特徴とする請求項15に記
    載の装置。
  17. 【請求項17】 前記プロセッサは、前記実行可能命令に応答して、 以下の式、 y1=F1(x1) y2=F2(x2+y1) y3=F3(x3+y2) yp=Fp(xp+yp-1) . . . yp+1=F1(yp+xp+1) yp+2=F2(yp+1+xp+2) . . . に従って、複数の中間結果yi(N≧i≧1)を生成し、F1(x),F2(x)
    ,...,Fp(x)は同じ形のプリミティブであってp<nであり、 前記中間結果の事前定義済み関数に応答して、前記パラメータを生成する ことを特徴とする請求項16に記載の装置。
  18. 【請求項18】 前記パラメータ生成ステップは、yNの値と前記中間結果
    の合計の値との連結として、前記パラメータを生み出すステップをさらに備えた
    ことを特徴とする請求項17に記載の装置。
  19. 【請求項19】 前記プロセッサは、前記実行可能命令に応答して、yN
    値と 【数4】 の値との連結として、前記パラメータを生み出し、各iにつき、γiはkを含め
    た±kの範囲内で、事前定義済みまたはランダムな値を有し、kは事前定義済み
    の整数であることを特徴とする請求項17に記載の装置。
  20. 【請求項20】 前記各順序操作は、バイトスワップもしくはワードスワッ
    プ、または反転演算であることを特徴とする請求項17に記載の装置。
  21. 【請求項21】 前記プロセッサは、前記実行可能命令に応答して、 以下の式、 xS←wordswap(x) y←Ax+BxSmod(2n) yS←wordswap(y) z←CyS+yDmod(2n) θ←z+ySEmod(2n) に従って、前記プリミティブF1(x)を実施し、係数A、B、C、DおよびE
    は、それぞれ2n以下のランダムな奇数の整数であり、θは出力ストリングであ
    り、 以下の式、 xS←wordswap(x) y←ax+bxSmod(2n) yS←wordswap(y) z←cyS+ydmod(2n) θ←z+ySemod(2n) に従って、前記プリミティブF2(x)を実施し、係数a、b、c、dおよびe
    は、係数A、B、C、DおよびEに対応するが、それらとは異なるそれぞれの値
    を有する ことを特徴とする請求項20に記載の装置。
  22. 【請求項22】 プリミティブF1(x),F2(x),...,Fp(x)
    に対する前記係数は秘密であり、前記パラメータからメッセージ認証コードが形
    成されることを特徴とする請求項21に記載の装置。
  23. 【請求項23】 前記パラメータ生成ステップは、yNの値と前記中間結果
    の合計の値との連結として、前記パラメータを生み出すステップをさらに備えた
    ことを特徴とする請求項22に記載の装置。
  24. 【請求項24】 前記プロセッサは、前記実行可能命令に応答して、yN
    値と 【数5】 の値との連結として、前記パラメータを生み出し、各iにつき、γiはkを含め
    た±kの範囲内で、事前定義済みまたはランダムな値を有し、kは事前定義済み
    の整数であることを特徴とする請求項22に記載の装置。
  25. 【請求項25】 プリミティブF1(x),F2(x),...,Fp(x)
    に対する前記係数は公開されており、前記パラメータはチェックサムであること
    を特徴とする請求項21に記載の装置。
  26. 【請求項26】 前記パラメータ生成ステップは、yNの値と前記中間結果
    の合計の値との連結として、前記パラメータを生み出すステップをさらに備えた
    ことを特徴とする請求項25に記載の装置。
  27. 【請求項27】 前記プロセッサは、前記実行可能命令に応答して、yN
    値と 【数6】 の値との連結として、前記パラメータを生み出し、各iにつき、γiはkを含め
    た±kの範囲内で、事前定義済みまたはランダムな値を有し、kは事前定義済み
    の整数であることを特徴とする請求項25に記載の装置。
JP2001501960A 1999-06-09 2000-06-09 基本的なレジスタ演算を用いたパラメータの生成 Pending JP2003501698A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/329,138 US6483918B2 (en) 1999-06-09 1999-06-09 Technique for producing a parameter, such as a checksum, through a primitive that uses elementary register operations
US09/329,138 1999-06-09
PCT/US2000/015871 WO2000075750A2 (en) 1999-06-09 2000-06-09 Parameter generation using elementary register operations

Publications (1)

Publication Number Publication Date
JP2003501698A true JP2003501698A (ja) 2003-01-14

Family

ID=23284016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001501960A Pending JP2003501698A (ja) 1999-06-09 2000-06-09 基本的なレジスタ演算を用いたパラメータの生成

Country Status (10)

Country Link
US (1) US6483918B2 (ja)
EP (2) EP1555777B1 (ja)
JP (1) JP2003501698A (ja)
AT (2) ATE293262T1 (ja)
AU (1) AU7469500A (ja)
DE (2) DE60036499T2 (ja)
DK (1) DK1208416T3 (ja)
ES (1) ES2235946T3 (ja)
HK (1) HK1081021A1 (ja)
WO (1) WO2000075750A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341394B2 (en) 2007-07-03 2012-12-25 Nec Corporation Data encryption/decryption method and data processing device

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6657625B1 (en) * 1999-06-09 2003-12-02 Microsoft Corporation System and method of caching glyphs for display by a remote terminal
US7676438B2 (en) * 1999-10-27 2010-03-09 Ncr Corporation Personal digital assistant as smart card
US7505046B1 (en) * 2000-05-02 2009-03-17 Adobe Systems Incorporated Preserving opaque-like rendering in transparent 2D graphics using knockout groups
CN1202648C (zh) * 2002-06-07 2005-05-18 周颖平 用手机短信息进行无线遥控的方法
US7502943B2 (en) * 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
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
US7925891B2 (en) * 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7900055B2 (en) * 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7539876B2 (en) * 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7536560B2 (en) 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US8060755B2 (en) * 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7532722B2 (en) * 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7542566B2 (en) * 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7529367B2 (en) * 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7580038B2 (en) * 2003-09-30 2009-08-25 Microsoft Corporation System and method of caching glyphs for display by a remote terminal
WO2006040682A2 (en) * 2004-10-13 2006-04-20 Synaptic Laboratories Limited Process of and apparatus for encoding a digital input
WO2007073766A1 (en) * 2005-12-29 2007-07-05 Telecom Italia S.P.A. A method for communicating entitlement data from a server, related server, client systems and computer program product
US7930551B2 (en) * 2006-05-15 2011-04-19 Arris Group, Inc. Method and system for reusing an MMH function to perform a fast MMH-MAC calculation
FR2907622A1 (fr) 2006-10-19 2008-04-25 St Microelectronics Sa Procede de transmission de donnees utilisant un code d'accuse de reception comportant des bits d'authentification caches
US8161166B2 (en) * 2008-01-15 2012-04-17 Adobe Systems Incorporated Information communication using numerical residuals
US8082320B1 (en) * 2008-04-09 2011-12-20 Adobe Systems Incorporated Communicating supplemental information over a block erasure channel

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0720778A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 剰余計算装置、テーブル作成装置および乗算剰余計算装置
JPH09244530A (ja) * 1996-03-13 1997-09-19 Nec Corp 循環演算にもとづく暗号化方法および装置
JPH09292836A (ja) * 1996-04-26 1997-11-11 Nec Corp 循環演算にもとづく暗号文の復号化方法および装置
JPH118616A (ja) * 1997-06-17 1999-01-12 Dainippon Printing Co Ltd 故障利用攻撃対応icカード
WO2000078118A2 (en) * 1999-06-09 2000-12-28 Microsoft Corporation Implementing a cryptographic primitive using elementary register operations

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724428A (en) 1995-11-01 1998-03-03 Rsa Data Security, Inc. Block encryption algorithm with data-dependent rotations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0720778A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 剰余計算装置、テーブル作成装置および乗算剰余計算装置
JPH09244530A (ja) * 1996-03-13 1997-09-19 Nec Corp 循環演算にもとづく暗号化方法および装置
JPH09292836A (ja) * 1996-04-26 1997-11-11 Nec Corp 循環演算にもとづく暗号文の復号化方法および装置
JPH118616A (ja) * 1997-06-17 1999-01-12 Dainippon Printing Co Ltd 故障利用攻撃対応icカード
WO2000078118A2 (en) * 1999-06-09 2000-12-28 Microsoft Corporation Implementing a cryptographic primitive using elementary register operations
US6570988B1 (en) * 1999-06-09 2003-05-27 Microsoft Corporation Simple technique for implementing a cryptographic primitive using elementary register operations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341394B2 (en) 2007-07-03 2012-12-25 Nec Corporation Data encryption/decryption method and data processing device

Also Published As

Publication number Publication date
HK1081021A1 (en) 2006-05-04
EP1555777A2 (en) 2005-07-20
US6483918B2 (en) 2002-11-19
ES2235946T3 (es) 2005-07-16
DK1208416T3 (da) 2005-07-11
DE60019432T2 (de) 2005-09-01
WO2000075750A3 (en) 2001-02-15
WO2000075750A2 (en) 2000-12-14
ATE293262T1 (de) 2005-04-15
US20020110239A1 (en) 2002-08-15
EP1208416B1 (en) 2005-04-13
DE60036499T2 (de) 2008-01-10
EP1208416A4 (en) 2003-03-12
AU7469500A (en) 2000-12-28
EP1208416A2 (en) 2002-05-29
DE60019432D1 (de) 2005-05-19
ATE373906T1 (de) 2007-10-15
DE60036499D1 (de) 2007-10-31
EP1555777A3 (en) 2005-09-14
EP1555777B1 (en) 2007-09-19

Similar Documents

Publication Publication Date Title
JP4559679B2 (ja) 基本的なレジスタ演算を用いた暗号プリミティブのインプリメント
JP2003501698A (ja) 基本的なレジスタ演算を用いたパラメータの生成
US20230107243A1 (en) Personal device security using cryptocurrency wallets
CN106161034B (zh) 使用乘法秘密共享的rsa解密
KR101714108B1 (ko) 검증가능 누출 방지 암호화 및 복호화
US8296566B2 (en) Method for session key derivation in an IC card
RU2376651C2 (ru) Использование изогений для разработки криптосистем
KR100833828B1 (ko) 중매인의 사기 가능성을 감소시키면서 익명의 사용자를인증하는 방법
KR20020025630A (ko) 비밀 정보의 처리 장치, 프로그램 또는 시스템
JP2022520675A (ja) 暗号システムおよび方法
CN111476573A (zh) 一种账户数据处理方法、装置、设备及存储介质
Skudnov Bitcoin clients
JP2004512570A (ja) 非安全な暗号加速器を用いる方法と装置
US7191333B1 (en) Method and apparatus for calculating a multiplicative inverse of an element of a prime field
JP2017526981A5 (ja)
JP2004054128A (ja) 暗号化装置
CN117157938A (zh) 敏捷密码部署服务
WO2000028493A1 (en) A method of encryption and apparatus therefor
JP2004222332A (ja) ユーザが電子商取引/情報サービス提供者の正当性をチェックできるようにする方法
KR100474887B1 (ko) 씨디엠에이(cdma)이동통신시스템의인증방법
GOEL DEVELOPMENT OF SECURE AND EFFICIENT HYBRID CRYPTOSYSTEM

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070611

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100810

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110118