JP5150642B2 - 効率的なデータ完全性保護 - Google Patents

効率的なデータ完全性保護 Download PDF

Info

Publication number
JP5150642B2
JP5150642B2 JP2009540753A JP2009540753A JP5150642B2 JP 5150642 B2 JP5150642 B2 JP 5150642B2 JP 2009540753 A JP2009540753 A JP 2009540753A JP 2009540753 A JP2009540753 A JP 2009540753A JP 5150642 B2 JP5150642 B2 JP 5150642B2
Authority
JP
Japan
Prior art keywords
circuit
shift register
lfsr
feedback
value
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
JP2009540753A
Other languages
English (en)
Other versions
JP2010513941A (ja
Inventor
クリスチャン ゲールマン,
ベルナルド スミーツ,
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
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 テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2010513941A publication Critical patent/JP2010513941A/ja
Application granted granted Critical
Publication of JP5150642B2 publication Critical patent/JP5150642B2/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • 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
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/043Masking or blinding of tables, e.g. lookup, substitution or mapping
    • 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)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Sorption Type Refrigeration Machines (AREA)
  • Gyroscopes (AREA)
  • Lubricants (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明はデータに対して完全性保護を効率的に提供するステップに関する。
不正な再プログラミングから機器を保護したいというニーズが多くのタイプのプログラム可能な電子機器に対して存在する。このニーズは(セルラ通信機器などの)移動通信機器について存在するものであり、このようなケースでは唯一のタイプの承認済みソフトウェアを機器上で実行することを保証する必要があるだけでなく、(安全な加入者情報モジュール(SIM)のロックメカニズムなどの)機器に記憶されている機密情報に対する安全なロックメカニズムを提供することも保証する必要がある。不正な再プログラミングに対抗する保護を行うためのシステム・ソリューションにおける1つの重要な構成要素として、1回のプログラムが可能な(OTP:ワンタイム・プログラマブル)メモリの利用がある。その名称が表しているように、OTPメモリは、情報を記憶領域の中へ一回だけ保存することが許されるタイプのメモリデバイスである。OTPメモリは不揮発性メモリ(すなわち、電源が切れているときにもメモリの情報を保持するメモリ)である。最初、OTPはプログラムされていない状態になっている。次いで、メモリビットをプログラムするプログラミング段が存在する(例えば、単一の処理時に1段ずつ、あるいは、ブロック全体としてプログラミングが行われるが、この特別の実装構成は、本解説を理解する上で本質的に重要な部分ではない)。(以下「OTPデータ」と呼ぶことにする)情報の保存に続いて、OTPメモリは、いずれの情報もメモリの当該部分に書き込まれないようにするいくつかの技術のうちの任意の技術によってロックされる。多くの場合、OTPがひとたび「ロック」状態に入ると、情報の消去は不可能となる。いくつかの実装構成では、消去は許されるが、この消去は、メモリビットのブロック全体に適用される場合にのみに許されるものである。個々のメモリロケーションに対して消去を選択的に適用することはできない。
OTPメモリは多くのタイプのアプリケーションにおいて有用である。多くの生じる可能性のある例のほんの1例として、移動通信機器がカスタマイズされる前に、機器のソフトウェアは(フラッシュメモリデバイスなどの)不揮発性メモリの中へ格納できなければならないという点が挙げられる。したがって、新たなソフトウェアとパラメータとを機器内へプログラムすることを許す、攻撃を受け易い「バージン(virgin)」状態が存在することになる。したがって、機器が工場から出荷されるとすぐに、いかなる制御されない方法でも機器を「バージン」状態へ戻すことができないことを確認することが重要になる。というのは、この「バージン」状態が不正な再プログラミングを可能にすることになるからである。OTPメモリはこの目的のために非常に有用なものである。というのは、OTPメモリの内容は、工場から出荷した機器をそうでない機器と識別する情報を保持するために用いることができるからである。例えば、機器のカスタマイズが終了すると、いわゆる製造フラグをOTPメモリ内にセットすることが可能となる。次いで、このフラグは、機器がカスタマイズされていること、並びに、何らかの再プログラミングを行うには特別の認証処理を必要とすることを機器ブート用及びローダ用ソフトウェアに知らせることになる。
OTP情報を利用するソフトウェアは、一般に(移動電話機などの移動通信装置のメインベースバンドプロセッサなどの)メインプロセッサ機器において実行される。これは、最も安全なOTPベースのソリューションは、OTPメモリがメインプロセッサとして(移動電話機内のベースバンドプロセッサなどの)同じ集積回路(「チップ」)上に存在するソリューションであるということを意味するものである。なぜなら、このソリューションによってOTPの読出し機能の改竄がはるかに困難になるからである。不都合なことに、複数の技術上及びコスト上の制約に起因して、オンチップOTPメモリの提供は常に可能であるとはかぎらない。したがって、外部のハードウェア構成要素の中にOTPメモリを実現しなければならない場合が多い。このような構成では、外部のハードウェア構成要素からメインプロセッサへOTP読出しを送るために通信リンクを設けることが必要となる。この通信リンクはOTPメモリとベースバンドチップ間でのデータ転送操作に対してOTP読出し機能を曝すことになる。操作したデータによって、機器はその「バージン」状態に戻っているように思わされて、不正な再プログラミングを受けやすくなる可能性がある。
OTPメモリに関してここまで説明した状況は、周辺機器に記憶されているデータ(以後「周辺機器データ」又は「PD」と呼ぶことにする)が「メイン」プロセッサによる読出し時に不正操作に曝される場合に生じるさらに一般的な問題のほんの1例にすぎない。
暗号手段によってPDの読出し動作を保護することにより上記不正操作の脅威を著しく低減することが可能となる。さらに詳細には、メインプロセッサは、該メインプロセッサが周辺機器のメモリから読出し動作を開始する時刻に又はそのおよその時刻に、ランダムな(又は擬似ランダムな)チャレンジワード(RND)を外部のハードウェア構成要素へ送出することによって、メインプロセッサ自体と(OTPメモリなどの)周辺機器のメモリ間での通信リンクから該メインプロセッサが受信するデータが真正なものであるかどうかの判定を行うことが可能となる。外部のハードウェア構成要素は、周辺機器のメモリからデータを読み出すと共に、暗号化処理手順を用いて、周辺機器データから「メッセージ認証コード」(MAC)と、事前に格納された秘密鍵(K)と、ランダムなチャレンジワード(RND)とを取得する。この生成されたMACは、次いで、周辺機器データと共にメインプロセッサへ返信される。メインプロセッサは、秘密鍵Kのコピーも保持し、秘密鍵Kと、受信済みの周辺機器データと、送出されたランダムなチャレンジワード(RND)とを用いて基準MAC値の計算を行う。MACが受信したMAC値に等しければ、受信した周辺機器データは有効なデータ(すなわち改竄を受けていない)と見なされる。
本目的及び他の目的のためにMACを構成する最も一般的な方法として、SHA−I及びMD5のようないわゆる一方向ハッシュ関数をMACのベースにする方法がある。この方法に関心をお持ちの読者は、さらに詳細については、非特許文献1(9.4章、p.338〜351)を参照されたい。最も広く用いられているMAC関数のうちの1つは実際には一方向ハッシュ関数に基づくHMAC関数である。この関数に関心をお持ちの読者は、非特許文献2を参照されたい。
例えば、(上述のOTPデータなどの)周辺機器ユニットによって供給されるデータの完全性を保護するメカニズムの提供を目的として、周辺機器ユニットにおいてMACを生成する場合、考え得る最小の部品を用いてMAC計算用ハードウェアを実装することが望ましい。残念なことに、一方向ハッシュ関数又はブロック暗号に基づくMACの実装構成はかなり複雑な構成となるため、上記基準が満たされなくなる。例えば、最適化されたSHA−Iハードウェアの実装は単独で通常14Kゲート前後のサイズを有するものとなる。
J.メネンゼス(Menezes),P.C.ヴァン オールショット(van Oorschot),及びS.A.ヴァンストーン(Vanstone)著「応用暗号法ハンドブック」(1997年) 「メッセージ認証用HMAC鍵・ハッシュ」、IETF RFC2104
したがって、セキュリティ性の高いデータ完全性装置及び方法を部品効率良く提供することが望ましい。
「備える」という語が本明細書において用いられる場合、記載される特徴、数値、ステップまたは構成要素の存在を規定するものと解釈されるが、これら用語の使用は1以上の他の特徴、数値、ステップ、構成要素、またはそれらの組合せの存在または追加を排除するものではないことが強調されるべきである。
本発明の1つの側面によれば、前述の目的およびその他の目的は、認証コードを生成する方法と装置の少なくともいずれかを包含する実施形態において達成される。これは、線形フィードバックシフトレジスタ(LFSR)回路及びLFSRに接続された追加回路を備えた装置において、シフトレジスタ及びフィードバック回路を備えたLFSRを含むものであり、第1の動作モードでLFSR回路及び追加回路を鍵生成装置として一体的に機能させると共に、第2の動作モードでLFSR回路と追加回路とを乗算器として一体的に機能させるものである。
別の側面では、上記方法は電子回路において実施され、該方法には、ランダムなチャレンジワード(RND)を電子回路の外部にあるソースから受信するステップが含まれる。第1の値が、ランダムなチャレンジワード(RND)の少なくとも一部と、秘密鍵の値(K)の少なくとも一部との間で論理演算を実行することによって生成される(但し、Kは電子回路に格納されている)。第2の値が、ランダムなチャレンジワード(RND)の少なくとも一部と、秘密鍵の値(K)の少なくとも別の一部との間で論理演算を実行することによって生成される。LFSR回路によって第1の値から第1の擬似ランダム値が生成され、さらに、追加回路は、第2の値から第2の擬似ランダム値を生成する第2の線形フィードバックシフトレジスタとして利用される。LFSR回路と追加回路とを鍵生成装置として一体的に機能させることによって、第1の擬似ランダム値と第2の擬似ランダム値とから第1の鍵の値(K’)が生成される。
さらに別の側面では、LFSR回路と追加回路とによって一連の項K’i+1、及び、(m1K’+m2K’2+...+mi,K’i)、(1≦i≦l)が同時に生成される。
ここで、m1,m2,...,mlは、体GF(2n)内のl組の要素として周辺機器データ(PD)を表すことにより導き出される。但し、nは0よりも大きい整数である。
さらに別の側面では、第3の値が、ランダムなチャレンジワード(RND)の少なくとも一部と、秘密鍵の値(K)の少なくとも一部との間で論理演算を実行することによって生成される。第4の値が、ランダムなチャレンジワード(RND)の少なくとも別の一部と、秘密鍵の値(K)の少なくとも別の一部との間で論理演算を実行することによって生成される。LFSR回路によって第3の値から第3の擬似ランダム値が生成され、さらに、追加回路は、第2の値から第4の擬似ランダム値を生成する第2の線形フィードバックシフトレジスタとして利用される。LFSR回路と追加回路とを鍵生成装置として一体的に機能させることによって、第1の擬似ランダム値と第2の擬似ランダム値とから第2の鍵の値(K”)が生成される。第2の鍵の値(K”)が(m1K’+m2K’2+...+mlK’l)と組み合わされ、これによって、追加回路は下記のメッセージ認証コード(MAC)を生成することになる。
MAC=K”+m1K’+m2K’2+...+mlK’l
いくつかの実施形態では、認証コードを生成するステップは複数の制御信号を生成するステップを含み、該制御信号は、線形フィードバックシフトレジスタ(LFSR)回路、多目的論理回路、合計回路並びに置換論理回路をストリーム暗号生成装置として一体的に機能させる。さらに、LFSR回路及び多目的論理回路のフィードバック回路は乗算器として一体的に機能させられ、乗算の積が生成され、それによって、この積は多目的論理回路のシフトレジスタの中へ格納される。
LFSR回路はシフトレジスタとフィードバック回路とを含み、その場合、フィードバック回路は、シフトレジスタの対応する1以上の段により供給される1以上の出力信号から導き出されるフィードバック信号を生成するように構成される。フィードバック回路は、1以上の制御信号により指定された機能に基づいてフィードバック信号を生成するように構成されると共に、シフトレジスタの入力段がフィードバック信号を利用できるように構成される。
多目的論理回路はシフトレジスタとフィードバック回路とを備え、その場合、多目的論理回路のフィードバック回路を介してフィードバックされる信号は、下記の少なくとも2つのソースのうちの1つのソースによって選択的に供給される:
(1)LFSR回路のシフトレジスタの対応する1以上の段によって供給される1以上の出力信号、又は、
(2)多目的論理回路のシフトレジスタの対応する1以上の段によって供給される1以上の出力信号。
また、多目的論理回路のシフトレジスタのフィードバック回路は、1以上の制御信号により指定された機能に基づいてフィードバック信号を生成するように構成されると共に、多目的論理回路のシフトレジスタの入力段がフィードバック信号を利用できるように構成される。
上述の合計回路は、LFSR回路、多目的論理回路、及び置換論理回路によって供給される加算信号用の回路である。さらに、置換論理回路は、合計回路によって供給される1以上の信号を受信するための入力ポートと、合計回路へ信号を供給するための出力ポートとを備える。
別の側面では、K’レジスタで示されるシフトレジスタが合計回路により動作されて、1以上の供給信号を受信し、格納する。
さらに別の側面では、値1のデュアル基底表現がLFSR回路のシフトレジスタの中へロードされると共に、乗算中のオペランドとして用いるためのK’レジスタの出力信号が多目的論理回路へ供給させられることになる。これはK’レジスタに格納されている値のデュアル基底表現を生成するために役に立つ。
さらに別の側面では、制御信号の第3の状態に応じて、多目的論理回路のシフトレジスタから得られた値がLFSR回路のシフトレジスタの中へコピーされる。この機能の有用性を示す一例として、後続する乗算演算時に前回の演算から得られた結果を用いることが可能になるということが挙げられる。
さらに別の側面では、以下の動作が同時に実行される:
・ 多目的論理回路のLFSR回路とフィードバック回路とを第1の積を生成する乗算器として一体的に機能させることが可能であり、第1の積が生成されると、この第1の積は多目的論理回路のシフトレジスタの中へ格納される。
・ LFSR回路と補助フィードバック回路とを第2の積を生成する乗算器として一体的に機能させ、第2の積が生成されると、この第2の積は補助シフトレジスタの中へ格納される。
上記側面に従う実施形態において、補助フィードバック回路を介してフィードバックされた信号は、LFSR回路のシフトレジスタの1以上の段によって供給される出力信号となる。次いで、補助フィードバック回路は、1以上の制御信号によって指定された機能に基づいてフィードバック信号を生成する。補助シフトレジスタの入力段はフィードバック信号を利用できるようになっている。
さらに別の側面では、合計回路によって供給される1以上の信号を、補助シフトレジスタによって供給される対応する番号の信号と順次結合することによって合計信号が生成される。
さらに別の側面では、上記合計信号は補助フィードバック回路へ供給される。補助フィードバック回路が動作されて、補助シフトレジスタへ合計信号を供給する。
さらに別の側面では、メッセージ認証コード(MAC)が電子回路において生成され、そこでMACによってデータ値(PD)の完全性が保護される。このステップには、電子回路の外部にあるソースからランダムなチャレンジワード(RND)を受信するステップが含まれる。第1の暗号化された値(K’)をRNDとKとから生成する第1の関数G(RND,K)が評価される。但し、Kは電子回路に格納されている秘密鍵の値である。第2の暗号化された値(K”)をRNDとKとから生成する第2の関数F(RND,K)が評価される。メッセージ認証コードは下式に基づいて生成される:
MAC=K”+m1K’+m2K’2+...+mlK’l
上式において、m1、m2,...,mlは、体GF(2n)内のl組の要素としてデータ値(PD)を表すことによって導き出される。但し、nは0よりも大きい整数である。
別の側面では、第1の関数G(RND,K)を評価するステップには、ランダムなチャレンジワード(RND)の少なくとも一部と、秘密鍵の値(K)の少なくとも一部との間で論理演算を実行することによって第1の値を生成するステップが含まれる。第2の値が、ランダムなチャレンジワード(RND)の少なくとも別の一部と、秘密鍵の値(K)の少なくとも別の一部との間で論理演算を実行することによって生成される。第1の値から第1の擬似ランダム値を生成するために第1の線形フィードバックシフトレジスタが利用される。第2の値から第2の擬似ランダム値を生成するために第2の線形フィードバックシフトレジスタが利用される。第1及び第2の擬似ランダム値がストリーム暗号生成装置に印加され、それによって、第1の暗号化された値(K’)が生成されるようになっている。
さらに別の側面では、第2の関数F(RND,K)を評価するステップには、ランダムなチャレンジワード(RND)の少なくとも一部と、秘密鍵の値(K)の少なくとも一部との間で論理演算を実行することによって第3の値を生成するステップが含まれる。第4の値が、ランダムなチャレンジワード(RND)の少なくとも別の一部と、秘密鍵の値(K)の少なくとも別の一部との間で論理演算を実行することによって生成される。第3の値から第3の擬似ランダム値を生成するために第1の線形フィードバックシフトレジスタが利用される。第4の値から第4の擬似ランダム値を生成するために第2の線形フィードバックシフトレジスタが利用される。第3及び第4の擬似ランダム値がストリーム暗号生成装置に印加され、それによって、第2の暗号化された値(K”)が生成されるようになっている。
さらに別の側面では、MAC=K”+m1K’+m2K’2+...+mlK’lに基づいてメッセージ認証コードを生成するステップには、第1の乗算器回路と第2の乗算器回路とを同時に動作させて、それぞれのmiK’i項とK’i+1項(1≦i≦l)とを同時に生成するステップが含まれる。この場合、第1の乗算器回路には、第1の線形フィードバックシフトレジスタと、該第1の線形フィードバックシフトレジスタを含む第2の乗算器回路とが含まれる。
図面を参照して以下の詳細な説明を読むことにより本発明の目的及び利点は理解されるであろう。
メインプロセッサを収納する集積回路の外部にある周辺機器ユニットにOTPメモリが実装された配置構成を示すブロック図である。 例示の線形フィードバックシフトレジスタを示すブロック図である。 本発明に一致する実施形態の1側面である例示のストリーム暗号回路を示すブロック図である。 本発明に一致する実施形態の1側面であるIIRフィルタにおいて用いられる関数への例示の入力を示す。 本発明に一致する実施形態の1側面であるIIRフィルタにおいて用いられる例示のブール関数のスペクトルウォルシュのテーブルである。 (n回のステップで)シーケンシャルにy∈GF(2n)にx∈GF(2n)を乗算する能力を備えた周知のデュアル基底のビットシリアル乗算器を示すブロック図である。 乗算の結果を受信するためのレジスタを装備した乗算器を示すブロック図である。 本発明に従う例示プロセスにおいて実行されるステップを描くフローチャートである。 第2の結果レジスタと第3の多段フィードバックレジスタとを図6に描かれている配置構成へ追加する利点を例示する回路構成を示すブロック図である。 K’及びK”を生成し、次いで、これらの値を用いて、MAC値を計算することが可能な回路の例示の実施形態を示すブロック図である。
以下、図面を参照して本発明の種々の特徴を説明するが、図面では、同一要素に対して同一の参照番号が付されている。
本発明の種々の側面を幾つかの例示の実施形態と関係づけてより詳細に説明する。本発明の理解を容易にするために、プログラムされた命令を実行する能力を備えたコンピュータシステム又は他のハードウェアの要素により実施される動作シーケンスによって本発明の多くの側面を説明する。各実施形態において、種々の動作が、特別の回路(例えば、特別の機能を実行するために相互結合されたディスクリート論理ゲート)、1以上のプロセッサにより実行されるプログラム命令、または両者の組み合わせにより実行できることが認められる。さらに加えて、本明細書に記載の技術をプロセッサに実行させるための適切なコンピュータ命令セットを含む、固体メモリ、磁気ディスク、光ディスクまたは搬送波(無線周波数、音声周波数または光周波数の搬送波などの)任意の形態のコンピュータ読取可能な媒体において本発明は完全に実施可能である。従って、本発明の種々の側面は多くの異なる形式で実施することが可能であり、そのような形式は全て本発明の範囲に属するものと考えられる。本発明の種々の側面のそれぞれに対応する、このような任意の形式による実施形態は、本明細書に記載の動作を実行するように「構成された論理素子」、またはこれとは別に、記載の動作を実行する「論理素子」を意味することができる。
本発明の側面は、発明の背景のセクションに記載し、例示の構成を示すブロック図である図1に示したような認証手続きに対して適用可能である(但しこれらのみに限定されるわけではない)。上記例示の構成によって、メインプロセッサを含む集積回路の外部にある周辺機器ユニットに(OTPメモリなどの)周辺機器のメモリが実装されることになる。したがって、PDの読出し処理手順は、メインプロセッサ101が、周辺機器のメモリ105を含む周辺機器ユニット103へ向かってランダムなチャレンジ(RND)を送出するステップ(ステップ1)を含むことになる。ランダムなチャレンジ(RND)と、周辺機器のメモリ内容(PD)、並びに、メインプロセッサを備えたユニットと周辺機器ユニット間で共有される秘密鍵107が完全性保護アルゴリズムへの入力として用いられる。次いで、完全性保護アルゴリズムから得られたメッセージ認証コード(MAC)と共にPDがメインプロセッサ101へ返送される(ステップ2)。MACは、メッセージ(この場合、周辺機器ユニットのメモリから読み出されたPD)と、周辺機器ユニット103に記憶されている秘密鍵(K)との関数として生成された値である。メインプロセッサ101は、受信したPDと、秘密鍵K109自身のコピーと、最初に送信されたランダムなチャレンジ(RND)についてのその情報とに基づいて、受信した完全性値(MAC)が予想していたものであるかどうかの判定を行うことによって、受信したPDの有効性のチェックを行う。
本発明の実施形態の側面は、MACを生成する際に用いられる数学関数の特殊な数式に関するものである。
本発明の実施形態の他の側面は、効率的なハードウェア構成と、MAC生成関数を計算する能力を備えたアルゴリズムとに関する。
これらの側面並びにその他の側面について以下さらに詳述する。
HはMAC関数を示すものとする;すなわち、MAC=H(K、RND、PD)。MAC関数は以下の別個の3つの部分に分けることができる。
・マスキング鍵導出部
・完全性鍵導出部
・絶対的に安全なMAC部
絶対的に安全なMAC部は本願では関数H’()によって示される。完全性鍵導出部は本願では関数G()によって示し、この関数G()が生成する完全性鍵は本願ではK’によって示される。すなわち、K’=G(RND,K)(但し、RNDはランダムなチャレンジであり、Kは前述の秘密鍵である)。完全性鍵(K’)は総当たり攻撃に対抗してデータの完全性保護を提供する鍵である。
マスキング鍵導出関数は本願ではF()によって示され、F()が生成するマスキング鍵は本願ではK”、すなわち、K”=F(RND,K)によって示される。マスキング鍵は完全性保護データのマスク/ブラインドを行う役割を果たし、それによって高められたセキュリティが追加されることになる。
関数Hは前述の基準を満たし、複数の異なる形式のうちの任意の形式をとることが可能である。本発明の例示の実施形態では、2つの鍵の値と共に入力として保護されるメッセージの形をとる関数形式(本願ではH’で示される)が用いられる。これらの鍵のうちの第1の鍵は完全性鍵(K’)であり、これらの鍵のうちの第2の鍵はマスキング鍵(K”)である。したがって、例示のMAC関数は以下のように表現することができる:
MAC=H(K,RND,PD)=H’(K”,K’,PD)=H’(F(RND,K)、G(RND,K),PD)
非常に高いセキュリティを示す関数は多項式評価法を用いて構成することができる。この一般的原理は公知のものであるため本明細書で詳細に説明する必要はない。上記の原理に関心をお持ちの読者は、さらなる情報については、G.カバチアンスキ、B.スミーツ及びT.ヨハンソンによる「誤り訂正コードを介する体系的コードの濃度」(情報理論に関するIEEE会報、第42巻、no.2、1996年)を参照されたい。
本発明の実施形態は、MAC関数(H’)の形式の多項式評価法を採用することによって上記特徴を利用するものである。この結果、H’に対して任意の所定値を計算するステップは、鍵生成と、乗算と、加算との3つのメインタスクを含むことになる。3つすべてを行う効率的な方法及び手段が本願において提示される。
例えば、J.L.マッシー(Massey)及びR.A.ルーペル(Rueppel)による「デジタルシーケンスを符号化された形式に変換するための方法及び装置」(米国特許第4,797,922号、1989年)、並びに、ゲールマン、J.ペールソン、及びB.スミーツによる「ブルートゥースセキュリティ」(p.74〜80、アーテック・ハウス、2004年)に記載されている加算結合器ストリーム暗号技術(summation combiner stream cipher technology)によって初期値から擬似ランダム鍵を生成するステップを達成することができる。このような技術は、線形フィードバックシフトレジスタ(「LFSR」、但し、「LFSR」とはシフトレジスタの組み合わせ及び関連付けられたフィードバック回路を意味する)並びに追加のサポート用論理回路の利用に依拠するものである。
多項式乗算は、LFSR及び低複雑性サポート用ハードウェアを用いて非常に効率的に達成することも可能である。したがって、本発明に一致する実施形態の側面によれば、1組のLFSRが鍵生成と乗算の2つの目的のために用いられることになる。これによって、以下の記載から理解されるように、完全な関数Hからなる非常に効率的なハードウェアの実装が可能となる。
GF(2n)によってサイズ2nの有限体を示す。この体の中にl組の要素としてPDを表現する。すなわち、PD=(m1,m2,...,ml);m1∈GF(2n
この場合、関数H’(K”,K’,PD)は以下のように表現することができる:
H’(K”,K’,PD)=K”+m1K’+m2K’2+...+mlK’l (1)
鍵K’及びK”が個々の新たなMACの計算のために完全にランダムに選ばれた場合、総当たり攻撃の成功確率は1×2-nに等しくなる。しかし、暗号上正常な関数FとGとを発見できると仮定すれば、関数F及びGによってKとRNDから導き出される鍵を用いて真の乱数値K’及びK”を置換する際にも上記理論値が有効であることを主張することができる。
LFSRは、鍵生成と乗算の双方において用いられ、したがって本発明の様々な実施形態において重要な役割を果たすものとなる。図2は例示のLFSR200を示すブロック図である。LFSR200は、入力段Sn-1及び出力段S0を含む複数個(n個)の段を有するシフトレジスタ201を含む。LFSR200には、シフトレジスタ201の出力段S0によって供給される出力信号を受信するように接続された第1の入力部を含む複数の入力部、並びに、シフトレジスタ201の別の対応する段の1つによって供給される出力信号を受信するように接続された1以上の別の入力部を有する多段フィードバック論理回路203が含まれている。多段フィードバック論理回路203は複数の段を備え、この複数の段は、個々の段が(シフトレジスタ201の対応する段によって供給される)対応する入力信号と、多段フィードバック論理回路203の隣接する先行段によって生成されたフィードバック信号との合計信号を含むフィードバック信号を生成するように構成されている。
多段フィードバック論理回路203の他の入力部の個数及び位置はアプリケーションによって変動する。図2に描かれている例示の実施形態は、以下のようにLFSR200の再構成を可能にする一般的ケースを示す実施形態である。これら他の段の各段は、(加算器205などの)加算器及び(乗算器207などの)乗算器を備える。乗算器207は、対応する段のシフトレジスタ201の出力部から信号を、そして、(Pn-3などの)多項式から項を受信する。乗算器207の出力はシフトレジスタの出力信号と、多項式の項との積を表す信号である。この積は加算器205の1つの入力部へ供給される。加算器205の別の入力部が、隣接する先行段からフィードバック信号(本例では、段0によって生成されたフィードバック信号)を受信する。加算器205からの出力は該加算器の2つの入力の合計を表し、追加の段が存在しなければ、この出力が多段フィードバック論理回路203内の次の段へ供給される。その場合、この出力が多段フィードバック論理回路203からの出力信号となる。
多項式の項P0...Pn-1を変えることによって多段フィードバック論理回路203の機能を変更できることが分かる。多段フィードバック論理回路203が構成された後、論理回路203の機能を変更する必要がないことが予想される場合、多項式の項が0になる任意の段に関連づけられた加算器及び乗算器を省くことによってハードウェアを節減することが可能となる。というのは、対応する乗算器の出力も0になる必要があるからである。
任意の段において1ビットの2進値のみを用いる実施形態では、単一の論理「AND」ゲートによって乗算器の各々を構成することが可能であること、及び、加算器の各々は、単一の論理「排他的OR」ゲートによって構成することが可能であることも認識される。
次にMAC生成関数の側面についての説明を参照すると、前述したいわゆる加重結合器(summation combiner)ストリーム暗号を用いて、良好な鍵生成アルゴリズムF及びGを構成することが可能となる。図3は本発明のこの側面に係る例示回路300を示すブロック図である。回路300は第1のLFSR301及び第2のLFSR303を備える。第1及び第2のLFSR301、303の各々は、他の回路とは独立に動作して、周知の原理に基づいて擬似乱数を生成することができる。第1のLFSR301は、フィードバック多項式、pi(0≦i≦n−1)を有し、この多項式は第1のLFSR301の長さに対して与えられる最大長のシーケンスを得ることができるように選択されることが望ましい。第2のLFSR303は同様に、フィードバック多項式、Ii(0≦i≦n−1)を有し、この多項式は第2のLFSR303の長さに対して与えられる最大長のシーケンスを得ることができるように選択されることが望ましい。第2のフィードバック多項式Ilは、第1のフィードバック多項式Piと同じになるように、あるいは第1のフィードバック多項式Piとは異なるように選択されてもよい。
回路300は、合計回路305と、無限インパルス応答(IIR)フィルタ307によって例示される置換論理回路とをさらに含む。IIRフィルタ307は、合計回路305の出力部と入力部との間にあるフィードバックパスに位置されているため、入力の1つを合計回路305へ供給することになる。合計回路305は、第1のLFSR301の出力から第2の入力も受信し、次いで、第2のLFSR303の出力から第3の入力を受信する。
この例示の実施形態において、LFSR301、303内の個々の段は1ビットのみを構成する。この例示の実施ではIIRフィルタ307の出力もまた1ビットのみである。したがって合計回路305からの出力は0から3までの範囲の値になり、この値は2進の2つの数字によって表すことができる。本実施形態では、これら2進数の最上位ビットはIIRフィルタ307への入力として用いられる。これらの2進数の最下位ビットは最終出力(すなわち、ストリーム暗号生成装置の暗号化されたデータ)を供給する。
次いで、代替の実施形態では、個々の第1及び第2のLFSRの段はマルチビット値を保持するように設計することも可能であることが認識される。残りの回路は適宜サイズの変更が行われて、この変更に適合される。しかし、説明の簡略化のために、及び、本発明の範囲に含まれる他の可能な実施形態に関する言外の意味や限定を含むことのないように、本説明の残り部分は1ビットの実施形態の場合を想定するものとする。
この例示の実施形態では、IIRフィルタ307は、線形長11のシフトレジスタのデュアル実装構成を(GF(2)にわたって)備え、フィードバックとして、多項式f(x)=1+f1x+f22+...+f1010+x11を有するようになっている。例えば、f(x)=1+x3+x5+x7+x11を選択することも可能である。このケースでは、IIRフィルタ307の出力は、7個の変数で表される4次の2相関免疫(2-correlation immune)ブール関数(F)の関数値となる。実際には、この出力は(7、2、4、56)関数値となる。この関数への入力が図4aに示されている。これは、非線形次数が2であること、及び、2つの入力変数と関数の出力値との間に相関が存在しないことを意味するものである。関数は線形構造から距離56を有する。これらの同じパラメータを有するいくつかのブール関数(F)が存在し、これらのうちのいずれも使用可能である。一例として、図4bは、これらのブール関数のうちの1つのウォルシュ・スペクトルを示すテーブルである。
次に、乗算のパフォーマンスに関係する本発明の実施形態の側面に解説の焦点をしぼることにする。図5は、(n回のステップで)シーケンシャルにy∈GF(2n)にx∈GF(2n)を乗算する能力を備えた周知のデュアル基底のビットシリアル乗算器を示すブロック図である。ここでyは正常の(正規)基底y=y0+y1α+y2α2+...+yn-1αn-1で表される(但し、α∈GF(2n)は多項式p(t)=p0+p1t+p22+...+pn-1n-1+pnn,pi∈GF(2)の0であり、かつ、yi∈GF(2)はy座標である)。次に、例えば、R.J.メリース(McEliece)による「コンピュータ科学者及び技術者のための有限体」(p.97〜118、クルーワー出版、1987年)に記載のように、β1,...,βn-1をいわゆる(トレース)デュアル基底とする。すなわち、
i=jであればTR(αiβj)=1、そうでなければTR(αiβj)=0。
ここでTR()はトレース関数を示す。次いで、以下のようにそのデュアル表現によってxを表現することが可能となる:
x=[x]0β0+[x]1β1+[x]2β2+...+[x]n-1βn−i([x]i∈GF(2))
ここで、[.]という表記法は本願ではデュアル座標を示すために用いられているという点に留意されたい。
図5の構成を用いて量Xと量Yの間で乗算を実行するために、Xのデュアル基底表現はLFSR501のシフトレジスタの中へ格納される。多項式pi(0<i<n−1)の項がLFSRの乗算器のそれぞれの入力に印加されて、当業で公知の原理に基づいて必要な所望のフィードバックが達成される。
段を備えた多段フィードバック論理回路503の第2の構成が与えられ、個々の段は(乗算器505などの)乗算器と、(加算器507などの)加算器とを備える。個々の段において、乗算器は、LFSR501のシフトレジスタの対応する段と、(ビットなどの)量Yの対応する部分とによって供給される出力信号の積を生成する。第2の多段フィードバック論理回路503の段は、個々の段が、それ自身の乗算器出力の合計を含むフィードバック信号と、第2の多段フィードバック論理回路503の隣接する先行段によって生成されたフィードバック信号とを生成するように構成される。LFSR501のシフトレジスタがn回クロック入力されると、(デュアル基底表現での)積XYは、第2の多段フィードバック論理回路503の最終段の出力時に順次供給される。
図6は、乗算の結果を受信するためのレジスタ601を装備した同じ乗算器を示すブロック図である。結果レジスタ601の段と、LFSR501のシフトレジスタの段との間の接続によって、LFSR501のシフトレジスタの中へ結果レジスタ601の内容をフィードバックすることが可能になる。図6並びに、例示のプロセスで実行されるステップを描くフローチャートである図7を参照しながら以下説明するように、この構成は、数式(1)において必要に応じて数値K’,K’2,...,K’lを計算するのに有益である。
最初のステップとして、K’のデュアル基底表現を有するLFSR501のシフトレジスタ(以後Xレジスタと呼ぶ)をロードすることが望ましい。これは、複数の異なる方法のうちの任意の方法で実行することができる。例えば、他の回路において必要な所望の量の計算を行い、次いで、Xレジスタの中へクロック入力を行うことができる。これを達成するための接続は図を過度に複雑にすることを避けるために描かれていないが、これらの接続は当業者によって容易に確かめることが可能である。
上記とは別に、及び、本発明の様々な実施形態の他の側面に従って、K’のデュアル基底表現を決定するために描かれた回路が利用される。この決定は、(図示されていないメモリデバイスにのみ記憶されていて、かつ、必要なときに取り出される定数である)番号1のデュアル基底表現と共にXレジスタを最初にロードすることにより達成される(ステップ701)。(この説明を通じてずっと、角括弧を用いて、角括弧の中に提示される量のデュアル基底表現を示すことにする)。K’の値が乗算器のY入力に印加され(ステップ703)、次いで、Xレジスタがn回クロック入力される(ステップ705)。このようにして、K’のデュアル基底表現が結果レジスタ601において最後になるまで積1×Y=K’はn回のステップで計算される。
別の側面では、結果レジスタ601の内容(=K’)を該レジスタ601からXレジスタの中へコピーする(ステップ707)ことによってK’2の値を計算し、次いで、乗算器(709)のY入力にK’の値を印加し続けることができる。次いで、回路はさらにn回クロック入力され(ステップ711)、これによって計算K’−K’=K’2が達成されて、結果レジスタ601に現れる(デュアル基底表現で表される)計算結果が得られる。この一連の動作(すなわち、結果レジスタ601からXレジスタの中へ最後の計算値を移動させ、K’を乗算器のY入力に印加し続け、次いで、回路にn回クロック入力を行う動作)を、デュアル表現で表されている場合であっても、必要に応じて反復して、K’のK’lまで増加する冪を得るようにすることができる。しかし、MACコードの計算を必要とするアプリケーション(又は同様のアプリケーション)の場合、計算結果をデュアル基底表現で放置しておいてもよい。なぜなら、デュアル基底から正規基底へのマッピングは線形マッピングであるため、MACコードのセキュリティパラメータに影響を与えることはないからである。
図8は、第2の結果レジスタ801と第3の多段フィードバック論理回路803とを追加することによって達成可能となる追加の利点を例示する回路構成を示すブロック図である。第3の多段フィードバック論理回路803は複数の段を備え、個々の段は(乗算器805などの)乗算器及び(加算器807などの)加算器を備える。個々の段において、第3の乗算器は、LFSR501のXレジスタの対応する段と、(ビットなどの)量Mの対応する部分とによって供給される出力信号の積を生成する。第3の多段フィードバック論理回路803の段は、個々の段が、該段自身の乗算器出力の合計を含むフィードバック信号と、第3の多段フィードバック論理回路803の隣接する先行段によって生成されたフィードバック信号とを生成するように構成される。LFSR501のシフトレジスタがn回クロック入力されると、(デュアル基底表現で表される)積XMは、第3の多段フィードバック論理回路803の最終段の出力時に順次供給される。第2の結果レジスタ801の入力段と、第3の多段フィードバック論理回路803の最終段との間での接続によって積XMが生成されると、第2の結果レジスタ801の中へ積XMを順次クロック入力することが可能となる。好適には、このクロック入力は、第2の多段フィードバック論理回路503の最終段の中から第1の結果レジスタ601の中へ積をクロック入力すると同時に実行できることが望ましい。
2個のデュアル乗算器を備えることによって、今度はm1K’+m2K’2+...+m1K’lを容易に計算することが可能となる。1つの乗算器(LFSR501と第2の多段フィードバック論理回路503との組み合わせ)は、デュアル表現K’,K’2,...,K’lを計算し、もう一方の乗算器(LFSR501と第3の多段フィードバック論理回路803との組み合わせ)は、同時実行中に、このもう一方の乗算器によって計算できるようなK’iから積m1K’iを計算する。
次に示すように、比較的小型の論理回路によって、量m1K’+m2K’2+...+mlK’lを第2の結果レジスタ801において容易に計算し、収集することが可能になる。さらに、2つの乗算器内の論理回路を用いて、K’だけでなくK”の生成も可能となる。
図9は、K’及びK”の生成が可能であると共に、次いで、これらの値を用いて、数式(1)に基づいてMAC値の計算が可能な回路900の例示の実施形態を示すブロック図である。回路900は以下に記載のハードウェアにおいて用いられる制御信号と定数のすべてを生成する制御・サポート論理回路901を含む。制御・サポート論理回路901は、配線タイプかプログラム可能タイプかの少なくともいずれかのタイプの論理回路として実装可能であり、この論理回路の設計は以下の説明から当業者には容易に理解されよう。
回路900には、LFSR903、第1の多段フィードバック論理回路905、及びシフトレジスタ機能を有する第1の結果レジスタ907が含まれている。第1の多段フィードバック論理回路905と、LFSR903と、第1の結果レジスタ907との間で切り替え可能な接続によって、これらの論理素子が(例えばストリーム暗号モードで)図3に関連して前述したように、あるいは上記とは別に、(乗算器モードで)図6及び図7に関連して前述したように機能することが可能になる。特に、1組のスイッチ909によって、第1の多段フィードバック論理回路905は、LFSR903内のシフトレジスタか、第1の結果レジスタ907のいずれかのレジスタの種々の段から入力信号を取得することができる。スイッチ909の制御は、制御・サポート論理回路901によって生成される制御信号によって支配される。制御・サポート論理回路901は、第1の結果レジスタ907の内容が直接LFSR903内のシフトレジスタの中へクロック入力されるか、結果レジスタ907が独立したシフトレジスタとして動作するかの判定を行う信号も生成する回路である。図9において、第1の多段フィードバック論理回路905を特定するボックスにスイッチ909が描かれていることに留意されたい。しかし、スイッチ909が多段フィードバック論理回路905から独立したかつ分離された部品であることは容易に考えることができる。
回路900は、合計回路911と、無限インパルス応答(IIR)フィルタ913によって示される置換論理回路とをさらに含む回路である。IIRフィルタ913は、合計回路911の出力部と入力部との間にあるフィードバックパスに配置されているため、入力を合計回路911へ供給することになる。制御・サポート論理回路901によって生成された信号の指揮の下で、合計回路911は、LFSR903の出力から第2の入力を受信する能力を備えていると共に、シフトレジスタとして動作するように構成された結果レジスタ907の出力から第3の入力を受信する能力も備えている。
スイッチ909が、第1の結果レジスタ907から第1の多段フィードバック論理回路909へ信号を供給するように構成されているとき、(シフトレジスタとして動作している)結果レジスタ907を第2のLFSRとして動作させるようにすることができる。その場合、多項式In-1、In-2,...,I0は、制御・サポート論理回路901によって生成され、次いで、第1の多段フィードバック論理回路905内に配置されている乗算器の入力部へ供給される。
ここまで説明した回路は、数式(1)に基づいてMACを生成するために必要なK’項を生成するために好適に利用される。例えば、(nビットなどの)PDの第1の部分は、ランダムなチャレンジ(RND)の第1の部分と、LFSR903のXレジスタの中へロードされた計算結果とに対してビット単位で排他的論理和(XOR)を実行することができる。PDの第2部分はランダムなチャレンジ(RND)の第2部分と、第1の結果レジスタ907の中へロードされた当該計算結果とに対しXORを実行することができる。PDの第1の部分はPDの第2部分と同じにならないようにしなければならない。同様に、ランダムなチャレンジ(RND)の第1の部分はランダムなチャレンジ(RND)の第2部分と同じにならないようにしなければならない。多項式PとIから得られた適切な項を第1及び第2の乗算器内のLFSRに印加することによって、合計回路911及びIIRフィルタ913と組み合わせて、これらのLFSRを図3に関連して上述したストリーム暗号生成装置として動作させ、合計回路911の出力の最下位ビット(LSB)を生成することが可能となり、ビットストリームによって項K’が構成される。好適な実施形態において、IIRフィルタ913の入力部につながるスイッチ912が閉じられ、さらに、IIRフィルタ913は、(IIRフィルタ913のそれぞれのフィードバック回路を経由して)Xレジスタ及び第1の結果レジスタ907の内容と共に、(100回などの)複数回循環を行うことが可能となる。Xレジスタと第1の結果レジスタ907との循環を行うことによって、これらのレジスタの中に含まれている値のさらに良好なランダム化が行われ、次いで、IIRフィルタ913へのクロック入力が、合計回路911の出力部において提示される状態変数のスクランブリングを助けることになる。
上記回路へのさらなるクロック入力は、値K’の生成を引き起こし、次いで、合計回路911のLSB出力時に値K’を利用できるようにする。生成された値K’の受信及び格納を行うために別のシフトレジスタ(K’レジスタ915)が提供される。スイッチ923と929を閉じることによって、合計回路911のLSB出力時にK’レジスタ915が利用できるようになるとすぐに、K’レジスタ915の中へ値K’をロードすることが可能になる。
別の動作モードで、多項式m1K’+m2K’2+...+m1K’lが生成される。この生成を達成するために、第1の多段フィードバック論理回路905と、第2の多段フィードバック論理回路917と、シフトレジスタ機能を備えた第2の結果レジスタ919と、第2の組のスイッチ921とが組み合わされたLFSR903が用いられる。第1のLFSR903内のシフトレジスタから第1の多段フィードバック論理回路905の乗算器の入力部へ出力を供給して、図6に描かれている配置構成に相当する第1の乗算器の配置構成を形成するようにスイッチ909はセットされる。前述したように、この配置構成は、LFSR903内のXレジスタの内容と、第1の多段フィードバック論理回路905の乗算器の入力部へ供給される値との間の乗算の実行を可能にする構成である。本例では、上記値がK’レジスタ段から出力時に供給されるようにスイッチがセットされる。K’のデュアル基底表現を行う必要があることに起因して、番号1のデュアル基底表現をLFSR903のXレジスタの中へロードし、次いで、論理回路のサイクリングを行うことによって、このデュアル基底表現を好適に生成して、LFSR903のXレジスタと、K’レジスタ915に格納されているK’の値との間で乗算を実行することが可能となる。上記結果は第1の結果レジスタ907に格納されたK’のデュアル基底表現になる。次のステップにおいて、この値はLFSR903のXレジスタにクロック入力することができる。
ここで、スイッチ923と925とをそれらの開放位置にセットして(あるいは、値「0」の転送を保証する任意の代替方法で)多項式m1K’+m2K’2+...+m1K’lを計算できるように上記配置構成は準備される。スイッチ909は、LFSR903内のXレジスタから第1の多段フィードバック論理回路905内の乗算器へ出力を供給し続ける。第2の多段フィードバック論理回路917内の乗算器の1つの入力がLFSR903内のXレジスタの対応する段によって供給されるように、スイッチ921も閉じられる。LFSR903内の多項式の項Pが乗算用としてセットされる。第2の多段フィードバック論理回路917内の乗算器のその他の入力が同様に、項mi(0≦i≦l)(数式(1)を参照のこと)を表すビットとなるようにセットされる。但し、m1、m2,...,mlは、体GF(2n)におけるl組の要素として表現されるデータ値(PD)を表すことにより導き出される。第2の多段フィードバック論理回路917によって生成された結果は第2の結果レジスタ919にクロック入力される。
上記配置構成は、図8に描かれている配置構成に非常に似たものとしてここで構成され、図8に関して上述したように動作して、多項式m1K’+m2K’2+...+m1K’lを生成することができる。特に、LFSR903のシフトレジスタがn回クロック入力されると、(デュアル基底表現で表される)積K’×[Xレジスタの内容]は第1の多段フィードバック論理回路905の最終段の出力時に順次供給され、次いで、この積は第1の結果レジスタ907の入力段に順次クロック入力されることができる。Xレジスタの内容が上述のように初期化されて、K’のデュアル基底表現を格納するようになると、結果として第1の結果レジスタ907は乗算演算の最後に値K’2をこの結果レジスタの中に格納したことになる。これが生じているのと同時に、(デュアル基底表現で表される)積mi×[Xレジスタの内容]が、第2の多段フィードバック論理回路917の最終段の出力時に順次供給され、次いで、この積を第2の結果レジスタ919の入力段に順次クロック入力することが可能となる。miが項m1に等しくセットされると、その結果として第2の結果レジスタ919は、第1の反復後に値m1K’をこの結果レジスタの中に格納したことになる。
第1の結果レジスタ909の内容をLFSR903のXレジスタの中へクロック入力することによって、さらにまた、(値m1K’が加算器927へ順次供給されるように)スイッチ925を閉じることによってLFSR923のシフトレジスタをさらにn回クロック入力することによって、値K’2を生成し、第1の結果レジスタ907の中へクロック入力することが可能となる。これと同時に、miは次項m2に等しくセットされ、それによって値m1K’+m2K’2が生成され、次いで、この値は第2の結果レジスタ919の中へクロック入力される。
上記処理のさらなる反復は、最終的に、多項式m1K’+m2K’2+...+mlK’lが計算され、第2の結果レジスタ919の中へ格納されてしまうまで、(第1の結果レジスタ907に格納されている)K’のより高い冪と数式(1)との計算を生成することになる。
次の処理段において、制御・サポート論理回路901は、K”の値が生成されている間第2の結果レジスタ919の内容が安定状態をそのまま維持することを保証する信号を生成する。K’値の生成に関して上述したのと同じステップに後続してK”値の生成を実行することが望ましい。すなわち、結果レジスタ907は独立したシフトレジスタとして動作され、第1の多段フィードバック論理回路905、合計回路911、及びIIRフィルタ913はストリーム暗号生成装置としてLFSR903と連携して動作するように構成される。PDの部分は、ランダムなチャレンジ(RND)の部分と、LFSR903のXレジスタの中へロードされた結果とに対してビット単位で排他的論理和(XOR)を実行することができる。PDの別の部分は、ランダムなチャレンジ(RND)の別の部分と、第1の結果レジスタ907の中へロードされた当該結果とに対してビット単位でXORを実行することができる。PDの2つの部分は互いに同じにならないようにしなければならない。同様に、ランダムなチャレンジ(RND)の2つの部分は互いに同じにならないようにしなければならない。暗号生成に適した多項式PとIとは、再びLFSR903と第1の多段フィードバック論理回路905とへそれぞれ供給される。IIRフィルタ913の入力部につながるスイッチ912が閉じられ、次いで、IIRフィルタ913は、LFSR903のXレジスタと第1の結果レジスタ907との内容と共に(150回などの)複数回クロック入力される。
次いで、スイッチ923と925は閉じられる。回路のさらなるクロック入力によって値K”は合計回路911のLSBの中からシーケンシャルにシフトされることになる。スイッチ923と925とを閉じた状態で、値K”+m1K’+m2K’2+...+mlK’lが第2の多段フィードバック論理回路917の出力時に生成される。上記値は第2の結果レジスタ919の中へ格納することが可能であると共に、この結果レジスタ919から、制御・サポート論理回路901によって上記値を取り出し、生成されたMAC値として該値を利用することが可能である。
上記配置構成において、(互いに素である周期を得るために)n次未満の多項式に従ってI個の多項式の値がセットされることが望ましい。
上記実施形態は単に例示のためのものであり、本発明の種々の側面に従う多くの代替の実施形態を導き出すことが可能である。例えば、項K’の生成時に、初期化が、ランダムなチャレンジ(RND)の1以上の部分に対してPDの1以上の部分のXORをビット単位で行う必要があることについてはすでに述べた。代替の実施形態では、関数G()に対する一意の定数を用いて、結果として得られる(単複の)値に対してさらにXORを行うことが可能である。
同様に、項K”の生成時に、初期化が、ランダムなチャレンジ(RND)の1以上の部分に対してPDの1以上の部分のXORをビット単位で行う必要があることについてもすでに述べた。代替の実施形態では、関数F()に対する一意の定数を用いて、結果として得られる(単複の)値に対してさらにXORを行うことが可能である。
他の代替例では、K’の計算プロセスを修正することによって、以下のようにMACの強度の改善を行うことが可能となる:合計回路911の出力時にK’値を直接読み出す代わりに、前述したように回路を実行して値Kを生成することができる。次いで、Xレジスタと残りの回路の状態が変化しない状態で放置されている間、上記値は第1の結果レジスタ907の中へロードされる。次いで、回路は再び複数回クロック入力され、それから、値K’は合計回路911から読み出される。所望の場合、この計算プロセスを任意の回数反復してもよい。
上記実施形態はデータに対する完全性保護を提供するというコンテキストに関連して提示されたものである。しかし、種々の実施形態は上記特定アプリケーションのみに限定されるわけではない。全く同一の回路を用いて、左右対称の鍵を共有する2つのピア間においてデータ通信の完全性保護を実行することも可能である。このような場合、図1に示すチャレンジ&レスポンス方式は用いられない。代わりに、2つのピアは通信セッションを開始する前に例えば2つの乱数を交換することができる。次いで、例えば、単に乱数及び共有化鍵(K)からだけでなく、当該メッセージが、保護を受ける対象メッセージである一連のメッセージの中のどのメッセージであるかを特定するインデックスからも初期鍵を生成することが可能となる。こうすることによって、ランダムなデータの新たな交換を行うことなく、個々の新たなメッセージ用として独立の鍵K”及びK’を用いることが可能となる。
本発明の実施形態の種々の側面を拡張して、データの機密性保護と完全性保護の双方を実行するケースをカバーするように図ることも可能である。このケースでは、(図9に示すような)暗号化エンジンを用いて、完全性が保護される前又は完全性が保護された後にデータの暗号化を実行することも可能である。この場合、暗号化エンジンの初期化鍵は、完全性保護のために用いる初期化鍵すなわちK’及びK”とは異なる鍵にしなければならない。
他の代替例では、図9に記載され、示されている基本構成を拡張して、さらに多くのシフトレジスタとフィードバック多項式とをカバーすることが可能であるが、上記以外の場合でも、同じ基本構造を保持できることは当業者であれば認識するであろう。これにより、さらに大きなハードウェアにコストをかければより高いセキュリティを得ることが可能となる。
種々の実施形態によって、相対的に小型の完全性保護用ハードウェアの実装を実現することが可能となる。本発明に従う実施形態は、安全な記憶装置用アプリケーションにおいて、かつ、安全な通信メッセージ状況においても利用することができる。
個々の実施形態を参照しながら本発明について説明した。しかしながら、以上に説明した実施形態以外の特定の形で本発明の実施が可能であることは、当業者には容易に理解されよう。好ましい実施形態は単に説明のために役立てるべきものであり、いかなる点においても限定的なものとして考えられるべきではない。
例えば、図9の詳細な説明は、個々の例示要素の動作と、他の例示要素のそのインタラクションの動作とに焦点を絞った説明である。しかし、要素の例示の組み合わせは、代替の実施形態の中に含まれている複数の側面も同様に示すものであることが認識される。例えば、第1の多段フィードバック論理回路905と、第1の結果レジスタ907と、スイッチ909とは、シフトレジスタとフィードバック回路とを一体に備えた多目的論理回路の実施形態を例示するものであり、その場合、多目的論理回路のフィードバック回路を経由してフィードバックされる信号は、以下のいずれかによって選択的に供給されることになる:
1)LFSR回路903のシフトレジスタの対応する1以上の段によって供給される1以上の出力信号、又は、
2)多目的論理回路のシフトレジスタの対応する1以上の段によって供給される1以上の出力信号。
多目的論理回路のシフトレジスタのフィードバック回路は、1以上の制御信号により指定された機能に基づいてフィードバック信号を生成するように構成されると共に、多目的論理回路のシフトレジスタの入力段がフィードバック信号を利用できるように構成される。
LFSR903のシフトレジスタからか、あるいは、(第1の結果レジスタ907によって図9に例示されている)多目的論理回路自体のシフトレジスタからかのいずれかのシフトレジスタから得られた入力を選択的に取得することは、多目的論理回路のフィードバック回路のフィードバック回路の能力であり、上記シフトレジスタが、LFSR903と組み合わされて、ストリーム暗号演算か、乗算関数のいずれかを実行するために多目的論理回路を用いることを可能にするものである。
また、LFSR903のシフトレジスタに接続されている(第2の多段フィードバック論理回路917などの)補助フィードバック回路を設けることによって、(LFSR903などの同じ線形フィードバックシフトレジスタ部に個々に含まれている)同時演算が可能な乗算器による同時乗算演算の実行が可能になることが理解される。次いで、上記乗算演算の実行は、それぞれのmiK’i項並びにK’i+1項(1≦i≦l)の同時生成を順に可能にする。
さらに一般的に見ると、実施形態はLFSR回路とLFSR回路とに接続された追加回路を含み、その場合、制御信号の第1の状態は、LFSR回路と追加回路とを鍵生成装置として一体的に機能させる。さらに、制御信号の第2の状態は、LFSR回路と追加回路とを乗算器として一体的に機能させる。
代替の実施形態の別例として、体GF(2n)を用いる本発明の実施形態について説明した。しかし、当業者であれば、代替の実施形態は、代わりに任意のタイプの体GF((2m))nか、あるいはさらに風変わりなタイプの体GF((pm))n(「p」は素数)を用いることも可能であることを認めるであろう。
さらに別の例では、有限状態シフトレジスタ機能が必要とされるときはいつでも上記記載の種々の実施形態はすべてLFSR構成に依拠するものであった。しかし、LFSRの代わりに非線形有限状態シフトレジスタによってストリーム暗号生成を達成することも可能である。当業者であれば、LFSRの代わりに非線形有限状態シフトレジスタを利用する種々の実施形態を上記記載の原理及び他の教示からどのように導き出すことができるかは容易に理解されるであろう。本願明細書では、「有限状態シフトレジスタ」(FSR)という用語は、一般的な意味で用いられ、当該配置構成が線形フィードバックシフトレジスタを構成するか、非線形フィードバックシフトレジスタを構成するかにかかわりなく、任意のタイプのシフトレジスタ/フィードバックの配置構成を意味する用語である。
このように、記載の実施形態は単なる例示であり、いかなる点でも限定するものと考えるべきではない。

Claims (15)

  1. 認証コードを生成する装置であって、
    複数の制御信号を生成するための制御・サポート論理回路と、
    シフトレジスタと、フィードバック回路とを備えた線形フィードバックシフトレジスタ(LFSR)回路と、
    前記LFSR回路に接続された追加回路と、
    を備え、
    第1の状態の前記制御信号は、前記LFSR回路と前記追加回路とを鍵生成装置として一体的に機能させ、
    第2の状態の前記制御信号は、前記LFSR回路と前記追加回路とを乗算器として一体的に機能させる
    ことを特徴とする装置。
  2. 前記装置は電子回路の一部であり、
    前記装置は、
    前記電子回路の外部にあるソースからランダムなチャレンジワード(RND)を受信する論理回路と、
    前記ランダムなチャレンジワード(RND)の少なくとも一部と、前記電子回路に記憶されている秘密鍵の値(K)の少なくとも一部との間で論理演算を実行することによって第1の値を生成する論理回路と、
    前記ランダムなチャレンジワード(RND)の少なくとも別の一部と、前記秘密鍵の値(K)の少なくとも別の一部との間で論理演算を実行することによって第2の値を生成する論理回路と、
    を備え、
    前記制御・サポート論理回路は信号を生成する論理回路を備え、該信号は、
    前記LFSR回路に前記第1の値から第1の擬似ランダム値を生成させ、
    前記第2の値から第2の擬似ランダム値を生成する第2の線形フィードバックシフトレジスタとして前記追加回路が利用されるようにし、
    前記LFSR回路と前記追加回路とを前記鍵生成装置として一体的に機能させ、
    前記第1の擬似ランダム値と前記第2の擬似ランダム値とから第1の鍵の値(K’)を前記鍵生成装置に生成させる
    ことを特徴とする請求項1に記載の装置。
  3. 前記追加回路は、
    シフトレジスタとフィードバック回路とを備えた多目的論理回路と、
    前記LFSR回路と、前記多目的論理回路と、置換論理回路とによって供給される加算信号用のための合計回路と、
    前記合計回路によって供給される1以上の信号を受信するための入力ポートと、前記合計回路へ信号を供給するための出力ポートとを備えた前記置換論理回路と、
    を備え、
    前記多目的論理回路の前記フィードバック回路を経由してフィードバックされた信号が、前記LFSR回路の前記シフトレジスタの対応する1以上の段によって供給される1以上の出力信号のいずれかによって、又は、前記多目的論理回路の前記シフトレジスタの対応する1以上の段によって供給される1以上の出力信号によって、選択的に供給され、
    前記多目的論理回路の前記シフトレジスタのフィードバック回路は、1以上の前記制御信号により指定された機能に基づいてフィードバック信号を生成するように構成されると共に、前記多目的論理回路の前記シフトレジスタの入力段が前記フィードバック信号を利用できるようになっており、
    前記鍵生成装置はストリーム暗号生成装置であり、
    前記制御信号の前記第1の状態は、前記LFSR回路と、前記多目的論理回路と、前記合計回路と、前記置換論理回路とを前記ストリーム暗号生成装置として一体的に機能させ、
    前記制御信号の前記第2の状態は、前記LFSR回路と、前記多目的論理回路の前記フィードバック回路とを前記乗算器として一体的に機能させるようになっている
    ことを特徴とする請求項1に記載の装置。
  4. 前記制御信号の前記第2の状態は、さらに、乗算の積を前記多目的論理回路の前記シフトレジスタの中へ格納させることを特徴とする請求項に記載の装置。
  5. 前記合計回路により供給され1以上の供給信号を受信し、格納するK’レジスタで示されるシフトレジスタと、
    値1のデュアル基底表現を前記LFSR回路の前記シフトレジスタの中へロードするための回路と、
    前記K’レジスタの出力信号を乗算中オペランドとして用いられるように多目的論理回路へ供給させる回路と、
    を備えることを特徴とする請求項に記載の装置。
  6. 前記制御信号の第3の状態に応じて、前記多目的論理回路のシフトレジスタから得られた値を前記LFSR回路の前記シフトレジスタの中へコピーするための回路を備えることを特徴とする請求項に記載の装置。
  7. 補助シフトレジスタと、
    補助フィードバック回路と、
    を備え、
    前記補助フィードバック回路を介してフィードバックされる信号が、前記LFSR回路の前記シフトレジスタの1以上の段によって供給される出力信号であり、
    前記補助フィードバック回路は、1以上の前記制御信号により指定された機能に基づいてフィードバック信号を生成するように構成されると共に、前記補助シフトレジスタの入力段が前記フィードバック信号を利用することができ、
    前記制御信号の第3の状態は、次の動作、すなわち、
    前記第1の積を生成する乗算器として一体的に機能すると共に前記第1の積が生成されると、該第1の積を前記多目的論理回路の前記シフトレジスタの中へ格納するようになっている、前記多目的論理回路の前記LFSR回路並びに前記フィードバック回路と、
    第2の積を生成し、該第2の積が生成されると、該積を前記補助シフトレジスタの中へ格納する乗算器として一体的に機能する前記LFSR回路及び前記補助フィードバック回路と、を同時に実行させる
    ことを特徴とする請求項に記載の装置。
  8. 前記合計回路によって供給される1以上の信号を、前記補助シフトレジスタによって供給される対応する番号の信号と順次結合する加算器を備えることを特徴とする請求項に記載の装置。
  9. 出力信号を補助フィードバック回路へ供給するために前記加算器が接続され、
    前記加算器の前記出力信号を補助シフトレジスタへ供給するために前記補助フィードバック回路が接続される
    ことを特徴とする請求項に記載の装置。
  10. シフトレジスタと、フィードバック回路とを備えたLFSRに接続されている線形フィードバックシフトレジスタ(LFSR)回路及び追加回路を備えた装置において認証コードを生成する方法であって、
    第1の動作モードにおいて、前記LFSR回路と前記追加回路とを鍵生成装置として一体的に機能させ、
    第2の動作モードにおいて、前記LFSR回路と前記追加回路とを乗算器として一体的に機能させる
    ことを特徴とする方法。
  11. 電子回路において実行される方法であって、
    前記電子回路の外部にあるソースからランダムなチャレンジワード(RND)を受信するステップと、
    前記ランダムなチャレンジワード(RND)の少なくとも一部と、前記電子回路に格納されている秘密鍵の値(K)の少なくとも一部との間で論理演算を実行することによって第1の値を生成するステップと、
    前記ランダムなチャレンジワード(RND)の少なくとも別の一部と、前記秘密鍵の値(K)の少なくとも別の一部との間で論理演算を実行することによって第2の値を生成するステップと、
    前記LFSR回路に前記第1の値から第1の擬似ランダム値を生成させるステップと、
    第2の擬似ランダム値を前記第2の値から生成する第2の線形フィードバックシフトレジスタとして前記追加回路が利用されるようにするステップと、
    前記LFSR回路と前記追加回路とを鍵生成装置として一体的に機能させることによって前記第1の擬似ランダム値と前記第2の擬似ランダム値とから第1の鍵の値(K’)を生成するステップと、
    を有することを特徴とする請求項10に記載の方法。
  12. 前記追加回路は、
    シフトレジスタとフィードバック回路とを備えた多目的論理回路であって、
    前記LFSR回路と、前記多目的論理回路と、置換論理回路とによって供給される加算信号用の合計回路と、
    前記合計回路によって供給される1以上の信号を受信するための入力ポートと、前記合計回路へ信号を供給するための出力ポートとを備えた前記置換論理回路と、を備え、
    前記多目的論理回路の前記フィードバック回路を経由してフィードバックされた信号が、前記LFSR回路の前記シフトレジスタの対応する1以上の段によって供給される1以上の出力信号のいずれかによって、又は、前記多目的論理回路の前記シフトレジスタの対応する1以上の段によって供給される1以上の出力信号によって選択的に供給され、
    前記多目的論理回路の前記シフトレジスタのフィードバック回路は、1以上の前記制御信号により指定された機能に基づいてフィードバック信号を生成するように構成されると共に、前記多目的論理回路の前記シフトレジスタの入力段が前記フィードバック信号を利用できるようになっており、
    前記第1の動作モードは、前記LFSR回路と、前記多目的論理回路と、前記合計回路と、前記置換論理回路とを前記鍵生成装置として一体的に機能させるステップを有し、
    前記第2の動作モードは、前記LFSR回路と、前記多目的論理回路の前記フィードバック回路とを前記乗算器として一体的に機能するようにさせるステップを有する
    ことを特徴とする請求項10に記載の方法。
  13. 前記LFSR回路及び前記多目的論理回路の前記フィードバック回路が、第1の積を生成する乗算器として一体的に機能し、前記第1の積が生成されると、該第1の積を前記多目的論理回路の前記シフトレジスタの中へ格納する動作と、
    前記LFSR回路及び補助フィードバック回路が、第2の積を生成し、該第2の積が生成されると、該積を補助シフトレジスタの中へ格納する乗算器として一体的に機能する動作と、
    を同時に実行させるステップを有し、
    前記補助フィードバック回路を介してフィードバックされる信号は、前記LFSR回路の前記シフトレジスタの1以上の段によって供給される出力信号であり、
    前記補助フィードバック回路は、1以上の前記制御信号により指定された機能に基づいてフィードバック信号を生成すると共に、前記補助シフトレジスタの入力段が前記フィードバック信号を利用できるようにする
    ことを特徴とする請求項12に記載の方法。
  14. 前記合計回路によって供給される1以上の信号を、前記補助シフトレジスタによって供給される対応する番号の信号と順次結合することによって合計を生成するステップを有することを特徴とする請求項13に記載の方法。
  15. 前記合計を前記補助フィードバック回路へ供給するステップと、
    前記加算器の前記出力信号を前記補助シフトレジスタへ供給するために前記補助フィードバック回路を動作させるステップと、
    を有することを特徴とする請求項14に記載の方法。
JP2009540753A 2006-12-14 2007-12-11 効率的なデータ完全性保護 Expired - Fee Related JP5150642B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/611,128 US8036380B2 (en) 2006-12-14 2006-12-14 Efficient data integrity protection
US11/611,128 2006-12-14
PCT/EP2007/063712 WO2008071703A2 (en) 2006-12-14 2007-12-11 Efficient data integrity protection

Publications (2)

Publication Number Publication Date
JP2010513941A JP2010513941A (ja) 2010-04-30
JP5150642B2 true JP5150642B2 (ja) 2013-02-20

Family

ID=38229977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009540753A Expired - Fee Related JP5150642B2 (ja) 2006-12-14 2007-12-11 効率的なデータ完全性保護

Country Status (7)

Country Link
US (1) US8036380B2 (ja)
EP (1) EP2103033B1 (ja)
JP (1) JP5150642B2 (ja)
AT (1) ATE463899T1 (ja)
DE (1) DE602007005843D1 (ja)
TW (1) TWI439101B (ja)
WO (1) WO2008071703A2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013126880A1 (en) * 2012-02-23 2013-08-29 Applied Communication Sciences Privacy-preserving publish-subscribe protocol in a cloud-assisted model
TWI517655B (zh) 2013-05-23 2016-01-11 晨星半導體股份有限公司 密碼裝置以及密鑰保護方法
US10256973B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Linear masking circuits for side-channel immunization of advanced encryption standard hardware
US11171949B2 (en) * 2019-01-09 2021-11-09 EMC IP Holding Company LLC Generating authentication information utilizing linear feedback shift registers
KR20230173286A (ko) 2022-06-17 2023-12-27 삼성전자주식회사 Puf를 사용하여 인증 코드를 생성하는 반도체 메모리 장치 및 그것의 메시지 인증 코드 생성 방법

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5351301A (en) 1980-03-03 1994-09-27 The United States Of America As Represented By The Director Of National Security Agency Authenticator circuit
CH664056A5 (de) 1984-11-02 1988-01-29 Borer Communications Ag Verfahren und vorrichtung fuer die umwandlung einer digitalen datensequenz in die verschluesselte form.
US5051999A (en) * 1989-03-13 1991-09-24 Motorola, Inc. Programmable error correcting apparatus within a paging receiver
IL94449A (en) * 1990-05-20 1994-06-24 Fortress U & T 2000 Ltd Method and apparatus for exponentiation over gf(2")
TW266280B (ja) 1993-05-10 1995-12-21 Siemens Ag
US5345507A (en) 1993-09-08 1994-09-06 International Business Machines Corporation Secure message authentication for binary additive stream cipher systems
WO1995012845A1 (en) * 1993-11-04 1995-05-11 Cirrus Logic, Inc. Finite field inversion
US5642367A (en) * 1994-02-07 1997-06-24 Mitsubishi Semiconductor America, Inc. Finite field polynomial processing module for error control coding
US5864491A (en) * 1997-11-10 1999-01-26 Telefonaktiebolaget L M Ericsson Apparatus and associated method for generating a pseudo random number
US6816968B1 (en) 1998-07-10 2004-11-09 Silverbrook Research Pty Ltd Consumable authentication protocol and system
US6463448B1 (en) 1999-09-30 2002-10-08 Agere Systems Guardian Corp. Linear intrasummed multiple-bit feedback shift register
IL132898A (en) * 1999-11-11 2009-09-01 Nds Ltd System for bitstream generation
US6804354B1 (en) 1999-12-02 2004-10-12 Honeywell International Inc. Cryptographic isolator using multiplication
JP3864675B2 (ja) * 2000-03-09 2007-01-10 株式会社日立製作所 共通鍵暗号装置
US6963976B1 (en) * 2000-11-03 2005-11-08 International Business Machines Corporation Symmetric key authenticated encryption schemes
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
US7895253B2 (en) * 2001-11-30 2011-02-22 Analog Devices, Inc. Compound Galois field engine and Galois field divider and square root engine and method
US6895545B2 (en) * 2002-01-28 2005-05-17 Broadcom Corporation System and method for generating cyclic codes for error control in digital communications
US7003713B2 (en) 2002-05-16 2006-02-21 Broadcom Corporation Variable Hamming error correction for a one-time-programmable-ROM
ATE318034T1 (de) 2002-09-16 2006-03-15 Gesichertes herstellungsverfahren
DE10250831B3 (de) * 2002-10-31 2004-06-17 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen einer pseudozufälligen Folge von Zahlen
KR100478974B1 (ko) 2002-12-03 2005-03-25 한국전자통신연구원 직렬 유한체 승산기
US7296213B2 (en) * 2002-12-11 2007-11-13 Nvidia Corporation Error correction cache for flash memory
TW200629192A (en) * 2005-02-03 2006-08-16 Sanyo Electric Co Random number generating circuit
JP2008532410A (ja) * 2005-03-01 2008-08-14 エヌエックスピー ビー ヴィ メッセージ認証コードを発生する発生器、発生方法、プログラム要素、及びコンピュータ読取可能媒体
KR100800800B1 (ko) * 2005-08-30 2008-02-04 삼성전자주식회사 선형궤환시프트레지스터를 이용한 부호 생성 방법 및 장치

Also Published As

Publication number Publication date
WO2008071703A3 (en) 2008-09-18
DE602007005843D1 (de) 2010-05-20
EP2103033A2 (en) 2009-09-23
TW200833054A (en) 2008-08-01
TWI439101B (zh) 2014-05-21
US8036380B2 (en) 2011-10-11
US20080144819A1 (en) 2008-06-19
WO2008071703A2 (en) 2008-06-19
JP2010513941A (ja) 2010-04-30
ATE463899T1 (de) 2010-04-15
EP2103033B1 (en) 2010-04-07

Similar Documents

Publication Publication Date Title
US9898623B2 (en) Method for performing an encryption with look-up tables, and corresponding encryption apparatus and computer program product
EP1398901B1 (en) Feistel type encryption method and apparatus protected against DPA attacks
WO2019121780A1 (en) System and method for boolean masked arithmetic addition
JP4659149B2 (ja) 電子チップの不正行為に対する保護の非対称暗号通信法
EP3839788B1 (en) Bit-length parameterizable cipher
JP2005529364A (ja) 擬似乱数生成器の出力の予測不可能性を向上させる方法
KR20150102827A (ko) 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법
EP1557740A2 (en) Methods, circuits and computer program products for processing masked data in an advanced encryption system
JP5150642B2 (ja) 効率的なデータ完全性保護
US20050097153A1 (en) Pseudorandom number generator
US20130108039A1 (en) Lightweight stream cipher cryptosystems
JP5165755B2 (ja) 有限体演算を用いる暗号学的乱数発生器
CN111756520A (zh) 超低时延高级加密标准
WO2018115143A1 (en) A calculation device for encoded addition
Rashidi Efficient and high‐throughput application‐specific integrated circuit implementations of HIGHT and PRESENT block ciphers
Roy et al. Combining puf with rluts: a two-party pay-per-device ip licensing scheme on fpgas
JP5188414B2 (ja) 情報処理装置及び情報処理方法及びプログラム
CN107463354B (zh) 一种面向ECC的双域并行度可变的Montgomery模乘电路
JP2010107947A (ja) Shaアルゴリズム基盤のメッセージスケジュール演算方法、メッセージ圧縮演算方法及びこれを行う暗号装置
JP2005045760A (ja) 暗号処理方法及び装置
Mars et al. Digitally Mutating NV-FPGAs into Physically Clone-Resistant Units
Garipcan et al. FPGA modeling of a novel fully-synthesizable and secure TRNG based on key-dependent s-box
KR20020060237A (ko) 키스트림 생성방법 및 장치
US7860251B1 (en) Encryption-decryption circuit and method of operation
JP2005348453A (ja) 携帯カードの保護方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101129

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121203

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

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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