JP5954030B2 - 暗号処理装置および方法 - Google Patents
暗号処理装置および方法 Download PDFInfo
- Publication number
- JP5954030B2 JP5954030B2 JP2012172410A JP2012172410A JP5954030B2 JP 5954030 B2 JP5954030 B2 JP 5954030B2 JP 2012172410 A JP2012172410 A JP 2012172410A JP 2012172410 A JP2012172410 A JP 2012172410A JP 5954030 B2 JP5954030 B2 JP 5954030B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- secret key
- agitation
- key
- challenge
- 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
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3271—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Measuring Volume Flow (AREA)
Description
認証機能を備えたデバイス(以下、認証デバイスと呼ぶ)において鍵の盗聴を防ぎ偽造を防ぐための対策としては、共通鍵による暗号化通信プロトコルを用いた方法が一般的である。共通鍵暗号を用いることで、小さな回路規模で暗号方式を実装できる。このとき、秘密鍵が認証チップ等の認証デバイスの外部に漏洩しないことが偽造防止の大きな前提となる。この前提を満たすために、製造時に秘密鍵をデバイス内部のメモリに書き込んだ上で、製造後は外部からどのような操作を行ったとしても、秘密鍵の値を外部から読み取らせないようにする方法が一般的である。
<チャレンジアンドレスポンス認証プロトコルの概要>
暗号方式は、公開鍵暗号方式と共通鍵暗号方式に大別される。公開鍵暗号方式とは、暗号化と復号で異なる鍵を用いる方式であり、暗号化を行うための鍵(公開鍵)を一般に公開する代わりに、暗号文を復号するための鍵(秘密鍵)を受信者のみの秘密情報とすることで安全性を保つ方式である。これに対し、共通鍵暗号方式と呼ばれるものは、暗号化と復号で同一の鍵(秘密鍵)を用いる方式であり、この秘密鍵を送信者と受信者以外の第三者にわからない情報とすることで安全性を保つ方式である。
図1では、認証を行う側(親機)101および認証される側(子機)102は共に、認証チップ103を含んでいる。
「チャレンジ」に対する「レスポンス」の生成は、暗号関数を用いた方法が一般的である。どの暗号関数を用いるかによってメリットとデメリットがあるが、認証チップの場合、回路規模の小ささを優先できるメリットがある共通鍵暗号を用いる方法が広く用いられている。
ステップS104で、子機102は、整数Gに対し、認証チップ103に格納されている秘密鍵Kによる暗号化処理Enc(G、K)を実行し、応答A=Enc(G、K)を生成する。そして、子機102は、応答Aを親機101に返信する。ここで、A=Enc(P、K)とは、共通鍵暗号を用いて、平文Pを秘密鍵Kにより暗号化した結果が暗号文Aであることを表す。
図3に示されているチャンレジアンドレスポンス認証では暗号化のみを行う点が、図2に示されている暗号化と復号の両方を利用するチャンレジアンドレスポンス認証との違いである。
ステップS202で、認証を行なう側の親機101は、チャレンジと呼ばれる整数Gを生成し、認証される側の子機102に送信する。
図2、3に示されている認証は、片側認証と呼ばれる、親機101が子機102の正当性を確認するための認証プロトコルである。片側認証では、子機102は親機101の正当性を確認することができないため、子機102は親機101の不正を防止できない。これを防ぐために、子機102も親機101の正当性を確認する手段が必要である。これを実現するのが両側認証と呼ばれる認証プロトコルであり、子機102が親機101にチャレンジを送信し、親機101からのレスポンスを確認する処理が行われる。
ステップS304で、子機102がチャレンジGを認証チップ103に格納されている秘密鍵Kで暗号化した結果である応答Aを計算する。
図4に示されている認証は暗号化・復号を用いた両側認証であるが、暗号化のみの認証も可能である。
ステップS404で子機102は、親機101から受け取った整数Gを秘密鍵Kで暗号化処理Enc(G、K)を行い、結果A=Enc(G、K)を生成する。
図6〜8を参照して、プローブ攻撃の概略と、シールド回路を用いたプローブ攻撃対策の概略を説明する。
図6は、プローブ攻撃の概要を示す図である。
(条件1)攻撃者が同時盗聴可能な最大ビット数をQとした場合、Qビットプローブ攻撃に対して、秘密鍵の全ビットを盗聴出来ないこと。
図7a、7cに示されているように、認証チップ103は、認証チップ103の底面の上に、下から内部回路B106c、内部回路A106b、シールド回路106a(これらをまとめて内部回路106として参照することがある)の順に積層されている。図7b、7dに示されているように、認証チップ103を上から見たときに、シールド回路106aが内部回路B106cおよび内部回路A106bを覆うように配置される。
秘密鍵は、フラッシュROMなどの不揮発性メモリに書かれている状態では、全てのビットは狭い領域に集中しているが、暗号機能を動作させるために、不揮発性メモリから読み出しレジスタに転送した場合、128ビット鍵の各ビット値がチップ中のあらゆる場所に散在することになる。このような状態のチップを128個集めた場合、一つの認証チップから1ビットずつプローブ攻撃を行い、この情報を128ビット分集めることで、全てのチップに共通する値である128ビット鍵を盗聴可能である。
(条件2)多数の認証チップから、Qビット以下のプローブ攻撃を繰り返す攻撃に対しても、秘密鍵の全ビットを盗聴できないこと。
図9は鍵に対する動的な攪拌処理を用いる方法の概略を示す図である。
以下の方法では、子機は親機と同一の鍵を保持するとともに、電源onの間に変化する攪拌値(例えば乱数値)とを保持する(攪拌値は、子機間で別の値を有する)。認証時に、親機からチャレンジを受け取ると、鍵と攪拌値をもとに生成した攪拌鍵によってチャレンジを暗号化し、攪拌値と共に親機に送る。親機は保持している鍵と受け取った攪拌値とをもとに、受け取った暗号化されたチャレンジを復号して認証するか、親機は送ったチャレンジを、攪拌値と鍵をもとに生成した攪拌鍵によって暗号化し、子機から受け取った暗号化されたチャレンジと比較することで認証する。
図10に示されているように、親機1001は認証チップ103を含み、子機1002は認証チップ1003を含んでいる。認証チップ103は秘密鍵Kを格納しており、認証チップ1003は秘密鍵Kと攪拌値Cを格納している。
ステップS504で子機1002は、認証チップ1003に格納され、常に更新される攪拌値Cと秘密鍵Kを攪拌関数F(K,C)に用いて攪拌された鍵K’=F(K,C)を生成する。
ステップS510で親機1001は、ステップS508で生成された攪拌された鍵K’を用いて、子機1002から受け取った応答Aの復号処理Dec(A、K’)を実行し、復号結果Gc=Dec(A、K’)を得る。復号結果Gcが、ステップS502で生成した整数Gと一致するならば、親機1001は子機1002を正当な機器と認定する。
上記の構成を有する親機1001と子機1002の組において、親機1001と子機1002の役割は、互いに交換可能である。
ステップS604で子機1002は、認証チップ1003に格納され、常に更新される攪拌値Cと秘密鍵Kを攪拌関数F(K,C)に用いて攪拌された鍵K’=F(K,C)を生成する。
ステップS704で子機1002は、チャレンジHを生成する。チャレンジHは整数であり、また乱数であっても良い。
次のステップS712で親機1001は、攪拌された鍵K’を用いて子機1002から受け取った応答Aの復号処理Dec(A、K’)を実行し、復号結果Gc=Dec(A、K’)を得る。
次にステップS720で子機1002は、攪拌された鍵K”を用いて親機1001から受け取った応答Bの復号処理Dec(B、K”)を実行し、復号結果Hc=Dec(B、K”)を得る。復号結果Hcが、ステップS704で生成した整数Hと一致するならば、子機1002は親機1001を正当な機器と認証する。
ステップS804で子機1002は、チャレンジHを生成する。チャレンジHは整数であり、また乱数であっても良い。
次のステップS812で親機1001は、攪拌された鍵K’を用いてステップS802で生成したチャレンジGの暗号化処理Enc(G、K’)を実行し、結果Ac=Enc(G、K’)を生成する。
次にステップS820で子機1002は、攪拌された鍵K”を用いてステップS804で生成したチャレンジHの暗号化処理Enc(H、K”)を実行し、結果Bc=Enc(H、K”)を生成する。結果Bcが、親機1001から受け取った応答Bと一致するならば、子機1002は親機1001を正当な機器と認証する。
以下では、(i)不揮発性回路に対するプローブ攻撃対策の種別と、(ii)揮発性回路に対するプローブ攻撃対策の種別、(iii)秘密鍵へのマスク演算の種別について説明する。
(1)不揮発性回路:読み込み、書き込みの両方が可能であり、電源が切れた状態やリセット後も値を記憶している回路。フラッシュROM、Electrically Erasable Programmable Read−Only Memory(EEPROM)、強誘電体メモリ(FRAM(登録商標))、不揮発性フリップフロップが該当する。
(2)揮発性回路:電源が切れた状態やリセット後は値を記憶しない回路。レジスタや論理回路が該当する。
図14は、攪拌関数F(K、C)を用いて鍵に対する動的な攪拌処理を行う鍵攪拌処理部の機能ブロック図である。
(性質1)入力値KまたはCが1ビットでも変化した場合、出力値K’=F(K、C)の全てのビットが変化する。
(性質2)F(K、C)の逆関数F−1(K、C)が存在する。
(性質3)F(K、C)の全てのビット値が分からない限り、F(K、C)から入力値K、Cの組(K、C)を求めることは出来ない。
(性質1’)入力値KまたはCが1ビットでも変化した場合、出力値K’=F(K、C)の複数のビットが変化する。
(性質3’)F(K、C)のQ+1ビット以上のビット値が分からない限り、F(K、C)から入力値K、Cの組(K、C)を求めることは出来ない。 上記の(性質1)により、攪拌値Cが1ビットでも変化した場合、不揮発性回路で構成される攪拌鍵格納部2102の全ビットが変化するので、攻撃者は攪拌鍵格納部2102に対してプローブ攻撃を用いても、認証チップごとに得られる値が異なるため、複数の認証チップから取り出した結果を用いても、秘密鍵Kを再構成することができない。また、上記(性質1’)により、攪拌値Cが変化した場合、不揮発性回路で構成される攪拌鍵格納部2102の複数のビットが変化するので、攻撃者が攪拌鍵格納部2102に対してプローブ攻撃を用いて秘密鍵Kを再構成しようとしても、時間と手間が必要である。
(性質1)(性質2)(性質3)を満たす鍵攪拌処理部2004の構成は複数存在する。
図15に開示の方法は、最適非対称暗号符号化(OAEP)と呼ばれる公開鍵のメッセージパディング方式をベースとしている。
マスク生成関数MGFはメッセージ生成関数とも呼ばれ、次のような性質を持つ。
(MGF1)入力が1ビットでも変化した場合、出力値の全ビットが変化する。
(MGF2)出力から入力値を求めることが出来ない。
(MGF3)入力と出力のビット長を、パラメータにより調整することができる。
マスク生成関数MGFは基本的には、入出力のビット長を調整することができるハッシュ関数である。
本明細書中では、記号「☆」を排他的論理和
の意味で用いる。
マスク生成関数(MGF)作用部2702では、上記性質(MGF1)より、種値seedが1ビットでも変化すると、出力MGF(seed)は全ビットが変化する。
ここまでがデータ値DBを、種値seedを用いて暗号化する処理に対応する。
記憶部2800の第1のメモリ2802にはseed☆MGF(DB☆MGF(seed))が、第2のメモリ2804にはDB☆MGF(seed)が格納されている。
[seed☆MGF(DB☆MGF(seed))]☆[MGF(DB☆MGF(seed))]
=seed
上式の左辺第1項は第1のメモリ2802に格納されている値であり、左辺第2項は第2のメモリ2804に格納されている値にマスク生成関数(MGF)を作用させることによって得ることができる値である。
MGF(seed)☆[DB☆MGF(seed)]=DB
上式の左辺第1項はXORゲート2904の出力にマスク生成関数(MGF)を作用させることによって得ることができる値である。左辺第2項は第2のメモリ2804に格納されている値である。よって、データ値DBを得るためには、まず、XORゲート2904の出力を、マスク生成関数(MGF)作用部2906に入力し、出力MGF(seed)を得る。次に、マスク生成関数(MGF)作用部2906の出力MGF(seed)と、第2のメモリ2804に格納されている値DB☆MGF(seed)との排他的論理和(XOR)を、XORゲート2908で演算すればよい。
ラッピング処理部3000は、マスク生成関数(MGF)作用部3002、3006、XORゲート3004、3008を含む。
アンラッピング処理部3200は、マスク生成関数(MGF)作用部3202、3206、XORゲート3204、3208を含む。
攪拌値Cはマスク生成関数(MGF)作用部3002に入力され出力MGF(C)を得る。出力MGF(C)はXORゲート3004に入力され、秘密鍵Kとの排他的論理和(XOR)が演算され、出力K☆MGF(C)を得る。
秘密鍵Kの上位半分のビットをKH、秘密鍵Kの下位半分のビットをKL、攪拌値Cの上位半分のビットをCH、秘密鍵Kの下位半分のビットをCLとする。また以下では、ビット結合を記号「||」で表すことにする。
メモリ2602からラッピング処理部2300に入力された値KH||CHは、マスク生成関数(MGF)作用部2302でマスク処理が施され、結果MGF(KH|CH)が生成される。その結果は、XORゲート2304に入力され、メモリ2606からラッピング処理部2300に入力された値KL||CLとの排他的論理和(XOR)、すなわちKL||CL☆MGF(KH||CH)が演算される。さらに、XORゲート2304の出力は、鍵記憶部2400に入力されると共に、マスク生成関数(MGF)作用部2306でマスク処理が施され、結果MGF(KL||CL☆MGF(KH||CH)が生成される。この結果は、XORゲート2308でメモリ2602からラッピング処理部2300に入力された値KH||CHとの排他的論理和KH||CH☆MGF(KL||CL☆MGF(KH||CH)が演算される。XORゲート2308の出力は鍵記憶部2400に入力される。
このように、図15に示されている鍵攪拌処理部の攪拌関数F(K、C)の第1の構成は、ラッピング処理部2300およびアンラッピング処理部2500はそれぞれ2段のマスク生成関数(MGF)作用部を含み、不揮発性回路に対する(条件1)および(条件2)を満足することができる。
図18に示されている構成は、ラッピング処理部3400およびアンラッピング処理部3600はそれぞれ3段のマスク生成関数(MGF)作用部を含む。また、図15に示されている構成と異なり、図18に示されている構成は、秘密鍵K、攪拌値Cの分割、再結合処理を行わない。秘密鍵K、攪拌値Cの分割、再結合処理を行わない理由は、マスク生成関数(MGF)を3回適用した結果の不揮発性回路の値は、左半分、右半分共に秘密鍵Kを入力としたマスク生成関数(MGF)値によるマスクがかかっているため、不揮発性回路の全ビットを同時にプロービングしない限り攻撃者は鍵Kの値を得ることが出来ないからである。
ラッピング処理部3400は、マスク生成関数(MGF)作用部3402、3406、3410、XORゲート3404、3408、3412を含む。
アンラッピング処理部3200は、マスク生成関数(MGF)作用部3602、3606、3610、XORゲート3204、3208、3612を含む。
またメモリ3706には、秘密鍵Kが格納される。
メモリ3702からラッピング処理部3400に入力された攪拌値Cは、マスク生成関数(MGF)作用部3402でマスク処理が施され、結果MGF(C)が生成される。その結果は、XORゲート3404に入力され、メモリ3706からラッピング処理部3400に入力された値秘密鍵Kとの排他的論理和(XOR)、すなわちK☆MGF(C)が演算される。さらに、XORゲート3404の出力は、XORゲート3412に入力されると共に、マスク生成関数(MGF)作用部3406でマスク処理が施され、結果MGF(K☆MGF(C))が生成される。この結果は、XORゲート3408でメモリ3702からラッピング処理部3400に入力された攪拌値Cとの排他的論理和C☆MGF(K☆MGF(C))が演算される。XORゲート3408の出力は、鍵記憶部3100は第1のメモリ3502に格納されると共に、マスク生成関数(MGF)作用部3410でマスク処理が施され、結果MGF(C☆MGF(K☆MGF(C)))が生成される。その結果は、XORゲート2712に入力され、XORゲート3404の出力K☆MGF(C)との排他的論理和(XOR)、すなわちK☆MGF(C)☆MGF(C☆MGF(K☆MGF(C)))が演算される。XORゲート2712の出力は、鍵記憶部3100の第2のメモリ3504に格納される。
図19〜33を参照して、揮発性回路へのプローブ攻撃対策について説明する。
秘密鍵K(共通鍵K)は、マスク値と呼ばれる値によりマスク化される。マスク値はV個の値M0、M1、…、MV−1が用いられ、秘密鍵KはこれらV個の値に対して、M=M0☆M1☆…☆MV−1を満たすマスク値Mを用いてマスク化された値K☆Mとして論理回路上に保存されている。マスク値Mは、攪拌値Cと同様に、認証チップごとに異なり、電源が入っている間は常に更新されている値であるが、攪拌値のように認証チップの外部に見せる値ではなく、認証チップの内部のみで使用される値である。揮発性回路に対しプローブ攻撃を行った場合でも、秘密鍵Kは動的に変化するマスク値Mでマスク化されているため、攻撃者は秘密鍵Kの値を知ることが出来ない。また、回路上ではマスク値Mの値を直接的に格納されていないので、マスク値Mを知るためには、V個のマスク値M0、M1、…、MV−1を同じタイミングで観察しなければならない。このVの値が(条件1)と(条件2)のQを超えるならば、攻撃者はプローブ攻撃を行うことが出来ないので、(条件1)と(条件2)を揮発性回路についても満足することが出来る。
ラッピング処理部3800は、値K☆MとV個のマスク値M0、M1、…、MV−1を記憶するメモリ3802、V個のマスク値M0、M1、…、MV−1を更新する第1の更新処理部(マスク値更新処理部)3804、攪拌値Cを格納するメモリ3806、攪拌値を更新する第2の更新処理部(攪拌値更新処理部)3808、切り替え器3810、攪拌関数作用部F(K、C、M0、M1、…、MV−1)3812を含む。
マスク値は、チップ外部から観察することができない値である。すなわち、図10〜13に示すプロトコルでは、親機と子機でマスク値の同期をとることができない。同期が取れないマスク値を基準に認証を行うことは出来ない。すなわち、図10〜13に示す認証プロトコルにおいて、鍵攪拌処理の結果は、マスク値の影響を受けてはならない。
(条件3)鍵攪拌処理の結果は、マスク値の影響を受ない。
しかし、もしマスク生成関数MGFを含む鍵攪拌処理を行う場合、マスクされた鍵の値へのマスク生成関数(MGF)の作用は、マスク値の全ビットの影響をうけて、予測のつかない変化をもたらす。鍵攪拌関数はF’(K、M0、M1、…、MV−1)と表され、この演算結果がマスク値の全ビットの影響をうけて予測のつかない変化をする場合、この演算結果からマスク値の除去は困難である。従って、F’(K、M0、M1、…、MV−1)で示される鍵攪拌結果は、マスク値の影響を受けず、秘密鍵K、攪拌値Cの影響のみを受けて変化する。鍵攪拌関数F’の逆関数は、F’−1(K、M0、M1、…、MV−1)で表される。更新されたマスク値M0、M1、…、MV−1の影響を受けて、マスクされた秘密鍵K☆Mが出力される。
入力セット4100がMGF事前複雑化処理部4102に入力され、MGF事前複雑化処理結果P(K、C)4104が出力される。そして、MGF事前複雑化処理結果P(K、C)4104がマスク生成関数(MGF)作用部4106に入力される。
入力:マスクされた秘密鍵K☆M、V個のマスク値M0、M1、…、MV−1、攪拌値C
出力:MGF事前複雑化処理結果P(K、C)
(複雑化1)マスク値M0、M1、…、MV−1の個数Vが(条件1)と(条件2)に現れるQより大きい
(複雑化2)P(K、C)の値から、攪拌値Cを知っていても入力の値Kを求めることができない
図21に示されている構成では、入力セット4200がMGF事前複雑化処理部4202に入力され、MGF事前複雑化処理結果P(K、C)4204が出力される。そして、MGF事前複雑化処理結果P(K、C)4204がマスク生成関数(MGF)作用部4206に入力される。
P(K、C)=B(K☆C)=B(K)☆B(C)
が成立する。
図23は、マスク生成関数MGFを用いるMGF事前複雑化処理を含む、鍵に対する動的な攪拌処理を行う鍵攪拌処理部に対するプローブ攻撃の概略を示す図である。図24は、マスク生成関数MGFを用いるMGF事前複雑化処理を含む、鍵に対する動的な攪拌処理を行う鍵攪拌処理部に対するプローブ攻撃の概略を示す図である。
図25a〜25bに示されている原理では、秘密鍵Kや攪拌値Cの値に応じたビット転置処理を実行する。入力に対する出力の関係は、秘密鍵Kや攪拌値Cのビット値のとりうる指数的なパターン数に応じて変化するため、攻撃者は秘密鍵Kの全ビット値を知らない限り、入力に対する出力の関係を特定できないため、安全となる。また、ビット転置は、定式が難しく、攻撃を抑制できるという利点がある。
図26〜29は、スワッピングボックスの構成と性質を説明する図である。
(スワッピングボックス1)多数のスワッピングボックスを直列に繋いだ場合のビット転置の結果と、1個のスワッピングボックスのセレクタ信号に対して前述のスワッピングボックスの各セレクタ信号の全ての値をXOR演算した値を入力した結果が同じ。
図27は、1ビットスワッピングボックス4600の構成の例を示す図である。
1ビットスワッピングボックスは、2つの入力a、bを受け取り、出力としてX,Yを返す。1ビットセレクト信号が0ならビット転置を行わず、出力として、X=a、Y=bを出力し、1ビットセレクト信号が1ならばビット転置を行った結果であるX=b、Y=aを出力する。つまり、1ビットスワッピングボックスは次のような動作を行う。
セレクト信号が「0」の場合:ビット転置を実行しない。
セレクト信号が「1」の場合:ビット転置を実行する。
これは、x☆yで示される1ビット値x、yのXOR演算、すなわち
y=0の場合:xの値をビット反転させない
y=1の場合:xの値をビット反転する
と類似している。
2つの入力a、b、c、dを受け取り、出力としてX、Y、Z、Wを返す。2ビットセレクト信号sel[1]、sel[0]のうち、sel[1]が「1」ならば、1段目のセレクト回路にてa、bとc、dのビット転置を行い、sel[1]が「0」なら行わない。sel[1]=0ならば、この1段目のセレクト回路の処理結果のうち、a、bのペアを2段目のセレクト回路の上位側に、c、dのペアを2段目のセレクト回路の下位側に入力する。sel[1]=1ならば、c、dのペアを2段目のセレクト回路の上位側に、a、bのペアを2段目のセレクト回路の下位側に入力する。sel[0]が「1」ならば、a、bとc、dのそれぞれのペアのビット位置を入れ替えるビット転置を行い、sel[0]が「0」ならば何もしない。このような構成を用いることで、セレクト信号が2ビットである場合でも、多段スワッピングボックスのビット転置結果は、セレクト信号をXOR演算した1個のスワッピングボックスの転置結果と等価となる。
図30に示した構成を用いて、秘密鍵Kの部分的なTビットの値に応じたビット転置を複数回繰り返すことで、秘密鍵Kの全ビット値に応じたビット転置を実現する。
数個の入力をスワッピングボックスに与え全ての出力をXOR演算した結果は、これら複数個の入力全てをXOR演算した値をスワッピングボックスに与えた場合の出力と同一となるからである。ただし、このときスワッピングボックスに与えるセレクト信号は、複数個の入力で同一である必要がある。
図32は、加算スワッピングボックスの性質を示す図である。図33は、Tビットスワッピングボックスの性質を示す図である。
(スワッピングボックス2)多数のスワッピングボックスを直列に繋いだ場合のビット転置の結果と、1個のスワッピングボックスのセレクタ信号に対して前述のスワッピングボックスの各セレクタ信号の全ての値を加算した値を入力した結果が同じとなる。
実施例は、(i)不揮発性回路に対するプローブ攻撃対策の種別と、(ii)揮発性回路に対するプローブ攻撃対策の種別、(iii)秘密鍵へのマスク演算の種別、の3つの組み合わせから構成される。以下では、この組み合わせに応じた5つの実施例を述べる。しかしながら(i)不揮発性回路に対するプローブ攻撃対策の種別と、(ii)揮発性回路に対するプローブ攻撃対策の種別、(iii)秘密鍵へのマスク演算の種別の組み合わせは、以下の実施例に限定されない。
(i)不揮発性回路に対するプローブ攻撃対策:図15の構成を利用
(ii)揮発性回路に対するプローブ攻撃対策:図30のスワッピングボックスを利用
(iii)秘密鍵へのマスク演算の種別:XOR演算
図34において、128ビット秘密鍵Kは上位の64ビットであるKHと下位64ビットであるKLに分割されており、それぞれ16ビットマスク値Mによってマスク化されたデータKH☆(M||M||M||M)、KL☆(M||M||M||M)として64ビットレジスタ7001、7004に格納される。また、128ビット攪拌値Cは上位の64ビットであるCHと下位64ビットであるCLに分割され、それぞれ64ビットレジスタ7002、7005に格納されている。
以上の処理により、F−1(K、C)の演算処理が完了する。
切り替え器7007、7008は、攪拌値を内部レジスタと外部入力から切り替える処理を行う。
端子7401に入力された128ビット定数Cは、16ビットごとに8分割され、切り替え器7438、7460を含む8つの切り替え器に入力される。つまり定数Cは、C=C0||C1||…||C7と書くことができる。これら8個の16ビットの値C0、C1、…、C7は、8系列実行される、ビット転置処理の初期値として入力される。
本例では、マスク処理部、アンマスク処理部の構成は共通化されている。
第2実施例は、以下の組み合わせによる実施例である。
(i)不揮発性回路に対するプローブ攻撃対策:図15の構成を利用
(ii)揮発性回路に対するプローブ攻撃対策:図31のスワッピングボックスを利用
(iii)秘密鍵へのマスク演算の種別:XOR演算
第2実施例の全体の構成は図34に、マスク処理部、アンマスク処理部の構成は図36に示されており、第1実施例と同一である。
図37に示されているMGF事前複雑化処理全体7600に対して、マスク化された128ビットデータが入力端子7602から、16個の16ビットマスク値M0、M1、…、M15が入力端子7603、7604を含む16個の端子から入力される。端子7601は補助入力端子である。
端子7601には、128ビット定数が入力される。これらの入力から、128ビットの出力値が生成され、出力値は出力端子7608から取り出すことができる。
第3の実施例は、以下の組み合わせによる実施例である。
(i)不揮発性回路に対するプローブ攻撃対策:図15の構成を利用
(ii)揮発性回路に対するプローブ攻撃対策:図30のスワッピングボックスを利用
(iii)秘密鍵へのマスク演算の種別:加算
図38は、基本的な構造は図34と同一であるが、秘密鍵のマスク処理がXOR演算を用いるものから加算を用いるものに置き換わっている。そのため、一部のXOR演算が加算および減算に置き換わっている。また、秘密鍵のマスク値Mを4ビットを単位に扱うため、16分割されたマスク値Mi(iは0から15までの整数)の各々も4ビットである。
マスク値Mは直接レジスタに格納されないが、M0☆M1☆…☆M15=Mを満たすMi(iは0から15までの整数)がそれぞれ16ビットレジスタ7909〜7924に格納される。16ビットレジスタ7909〜7924は更新部7909〜7924としても機能する。これらの値から、鍵攪拌関数F(K、C)を作用させる処理が行われた結果が、2つの128ビット不揮発性レジスタ8101、8102に格納され、これら2つの値を入力としてXOR演算をした結果を128ビット攪拌鍵として利用する。
以上の処理により、逆攪拌関数F−1(K、C)の演算処理が完了する。
切り替え器7907、7908は、攪拌値を内部レジスタと外部入力から切り替える処理を行う。
MGF事前複雑化処理部8300の端子8302には、マスク化された128ビットデータX☆Mと16個の16ビットマスク値Mi(iは0から15までの整数)が入力される。端子8301には、例えば、128ビットの定数Cが入力される。端子8301は補助入力端子である。
アンマスク処理部8400は、入力端子8401〜8416に入力された16個の4ビットマスク値M0、M1、…、M15と、入力端子8417、8450に入力される64ビット入力値x、y(xとyのビット結合値x||yを128ビット入力値とも呼ぶ)を受け取り、出力端子8480、8481から128ビット出力値X、Yを出力する。減算器8418〜8449では、入力端子8417に入力される64ビット入力値x、yを4ビットごとに分割した16個の4ビット値x0、…x15、y0、…y15から4ビットマスク値M0、M1、…、M15を順次減算する処理を行う。4ビット値x0、…x15から4ビットマスク値M0、M1、…、M15を減算した結果をビット結合して64ビット値としたものと、入力端子8417入力された64ビット入力値xは結合され、出力端子8480から出力される。4ビット値y0、…y15から4ビットマスク値M0、M1、…、M15を減算して得た結果をビット結合して64ビット値としたものと、入力端子8450入力された64ビット入力値yは結合され、出力端子8481から出力される。
マスク処理部8500は、入力端子8501〜8516に入力された16個の4ビットマスク値M0、M1、…、M15と、入力端子8517、8550に入力される64ビット入力値x、y(xとyのビット結合値x||yを128ビット入力値とも呼ぶ)を受け取り、出力端子8580、8581から128ビット出力値X、Yを出力する。加算器8518〜8549では、入力端子8417に入力される64ビット入力値x、yを4ビットごとに分割した16個の4ビット値x0、…x15、y0、…y15から4ビットマスク値M0、M1、…、M15を順次加算する処理を行う。4ビット値x0、…x15に4ビットマスク値M0、M1、…、M15を加算した結果をビット結合して64ビット値としたものと、入力端子8517入力された64ビット入力値xは結合され、出力端子8580から出力される。4ビット値y0、…y15に4ビットマスク値M0、M1、…、M15を加算した結果をビット結合して64ビット値としたものと、入力端子8450入力された64ビット入力値yは結合され、出力端子8581から出力される。
実施例4は、以下の組み合わせによる実施例である。
(i)不揮発性回路に対するプローブ攻撃対策:図18の構成を利用
(ii)揮発性回路に対するプローブ攻撃対策:図30のスワッピングボックスを利用
(iii)秘密鍵へのマスク演算の種別:XOR演算
図42において、128ビットレジスタ8601に攪拌値Cが格納される。128ビットレジスタ8601には攪拌値Cが格納されている。8603には、マスク化された秘密鍵が格納されている。マスク化された秘密鍵は、128ビットレジスタ16ビットマスク値をMとすると、128ビット秘密鍵Kに対して、16ビットマスク値Mを8個、ビット結合した値K☆(M||…||M)で表される。マスク値Mは直接レジスタに格納されないが、M0☆M1☆…☆M15=Mを満たすMi(iは0から15までの整数)がそれぞれ16ビットレジスタ8604〜8619に格納される。16ビットレジスタ8604〜8619は更新部8604〜8619としても機能する。これらの値から、鍵攪拌関数F(K、C)を作用させる処理が行われた結果が、2つの128ビット不揮発性レジスタ8901、8902に格納される。
以上の処理により、逆攪拌関数F−1(K、C)の演算処理が完了する。
切り替え器8623は、攪拌値を内部レジスタと外部入力から切り替える処理を行う。
MGF事前複雑化処理部9100の端子9102〜9118には、マスク化された128ビットデータX☆Mと16個の16ビットマスク値Mi(iは0から15までの整数)が入力される。端子9101には、例えば、128ビットの定数Cが入力される。端子9101は補助入力端子である。
本例では、マスク処理部、アンマスク処理部の構成は共通化されている。
実施例5は、以下の組み合わせによる実施例である。
(i)不揮発性回路に対するプローブ攻撃対策:図15の構成を利用
(ii)揮発性回路に対するプローブ攻撃対策:図30のスワッピングボックスを利用
(iii)秘密鍵へのマスク演算の種別:XOR演算
図45において、128ビット秘密鍵Kは上位の64ビットであるKHと下位64ビットであるKLに分割されており、それぞれ16ビットマスク値Mによってマスク化されたデータKH☆(M||M||M||M)、KL☆(M||M||M||M)として64ビットレジスタ9301、9304に格納される。また、128ビット攪拌値Cは上位の64ビットであるCHと下位64ビットであるCLに分割され、それぞれ64ビットレジスタ9302、9305に格納されている。
逆攪拌関数F−1(K、C)の演算のためには、MGF事前複雑化処理部9701、9704、MGF作用部9702、9705、XORゲート9703、9706で処理が行われる。
F−1(K、C)の演算処理によるトレジスタ9301、9305に格納される値の更新が終わると、再び鍵攪拌関数F(K、C)を計算し、不揮発性フリップフロップ9601、9602に格納される値の更新を行う。そして、F−1(K、C)の演算処理によってレジスタ9301、9304に格納される値の更新を、認証チップの電源が入っている間、繰り返す。
図46は上記の実施形態の装置を実現可能なハードウェア構成図の例である。
ここで図46について説明する。図46は、上記実施形態の暗号処理装置に使用可能なコンピュータの一例の構成図である。
(付記1)
入力として整数の乱数であるチャレンジを受ける受信部と、
整数である秘密鍵を格納する不揮発性メモリである第1のメモリと、
整数である攪拌値を格納する第2のメモリと、
前記秘密鍵と前記攪拌値に攪拌関数を作用させて整数である攪拌された秘密鍵を生成する鍵攪拌部と、
前記攪拌された秘密鍵と前記チャレンジに暗号化関数を作用させてレスポンスを生成するレスポンス生成部と、
前記第2のメモリに格納されている前記攪拌値を更新する攪拌値更新部と、
前記攪拌値と前記レスポンスを出力する送信部と、
を含む暗号処理装置。
(付記2)
暗号処理装置に接続された外部装置であって、前記送信部から出力された前記攪拌値と前記レスポンスを受け取り、受け取った前記攪拌値と、予め自身の不揮発性メモリに格納してある前記秘密鍵と同じ値である第2の秘密鍵とに攪拌関数を作用させて整数である秘密鍵比較値を生成し、前記秘密鍵比較値と前記レスポンスを前記暗号化関数の逆関数である復号関数に作用させてチャレンジ比較値を生成し、前記チャレンジと前記チャレンジ比較値前記チャレンジと前記チャレンジ比較値との比較の結果に基づいて、前記攪拌値と前記レスポンスを出力した前記暗号処理装置を認証する外部装置によって認証を受ける、付記1に記載の暗号処理装置。
(付記3)
前記送信部から出力された前記攪拌値と前記レスポンスを受け取り、受け取った前記攪拌値と、予め自身の不揮発性メモリに格納してある前記秘密鍵と同じ値である第2の秘密鍵に攪拌関数を作用させて整数である秘密鍵比較値を生成し、前記秘密鍵比較値と前記レスポンスに暗号化関数を作用させてチャレンジ比較値を生成し、前記チャレンジと前記チャレンジ比較値を比較し、前記チャレンジと前記チャレンジ比較値との比較の結果に基づいて、前記攪拌値と前記レスポンスを出力した前記暗号処理装置を認証する外部装置によって認証を受ける、付記1に記載の暗号処理装置。
(付記4)
さらに、整数の乱数である第2のチャレンジを生成するチャレンジ生成部を含む暗号処理装置であって、
前記送信部は、前記攪拌値と前記レスポンスと前記第2チャレンジを出力し、
前記受信部は、暗号処理装置に接続された外部装置であって、前記送信部から出力された前記攪拌値と前記レスポンスと前記第2チャレンジを受け取り、受け取った前記攪拌値と、予め自身の不揮発性メモリに格納してある前記秘密鍵と同じ値である第2の秘密鍵とに攪拌関数を作用させて整数である秘密鍵比較値を生成し、前記秘密鍵比較値と前記レスポンスを前記暗号化関数の逆関数である復号関数に作用させて整数であるチャレンジ比較値を生成し、自身のメモリに格納してある整数である第2の攪拌値と前記秘密鍵に攪拌関数を作用させて整数である第2の秘密鍵比較値を生成し、前記チャレンジと前記チャレンジ比較値との比較をし、前記前記チャレンジと前記チャレンジ比較値との比較の結果に基づいて前記攪拌値と前記レスポンスと前記第2チャレンジを出力した前記暗号処理装置が認証された場合に、前記第2の秘密鍵比較値と前記第2のチャレンジに暗号化関数を作用させて整数である第2のレスポンスを生成し、前記第2の攪拌値と前記第2のレスポンスを出力する外部装置から、前記第2の攪拌値と前記第2のレスポンスを受け、
前記鍵攪拌部は、前記秘密鍵と前記第2の攪拌値に攪拌関数を作用させて整数である第2の攪拌された秘密鍵を生成する暗号処理装置であって、
さらに、
前記第2の攪拌された秘密鍵と前記第2のレスポンスを前記暗号化関数の逆関数である復号関数に作用させて第2のチャレンジ比較値を生成する復号部と、
前記第2のチャレンジ比較値と前記第2チャレンジとの比較に基づいて、前記第2の攪拌値と前記第2のレスポンスを出力した外部装置を認証する認証部と、
を含む付記2に記載の暗号処理装置。
(付記5)
さらに、
整数の乱数である第2のチャレンジを生成するチャレンジ生成部を含む暗号処理装置であって、
前記送信部は、前記攪拌値と前記レスポンスと前記第2チャレンジを出力し、
前記受信部は、暗号処理装置に接続された外部装置であって、前記送信部から出力された前記攪拌値と前記レスポンスと前記第2チャレンジを受け取り、受け取った前記攪拌値と、予め自身の不揮発性メモリに格納してある前記秘密鍵と同じ値でる第2の秘密鍵に攪拌関数を作用させて整数である秘密鍵比較値を生成し、前記秘密鍵比較値と前記チャレンジに前記暗号化関数を作用させて整数であるレスポンス比較値を生成し、さらに自身のメモリに格納してある整数である第2の攪拌値と前記秘密鍵に攪拌関数を作用させて第2の攪拌された秘密鍵を生成し、前記レスポンスと前記レスポンス比較値とを比較し、前記レスポンスと前記レスポンス比較値との比較の結果に基づいて前記攪拌値と前記レスポンスと前記第2チャレンジを出力した前記暗号処理装置が認証された場合に、前記第2の秘密鍵比較値と前記第2のチャレンジに暗号化関数を作用させて整数である第2のレスポンスを生成し、前記第2のレスポンスと前記第2の攪拌値を出力する外部装置から、前記第2のレスポンスと前記第2の攪拌値を受け、
前記鍵攪拌部は、前記秘密鍵と前記第2の攪拌値に攪拌関数を作用させて整数である第2の攪拌された秘密鍵を生成する暗号処理装置であって、
さらに、
前記第2の攪拌値と前記秘密鍵を前記暗号化に作用させて第2のレスポンス比較値を生成する暗号化部と、
前記第2のレスポンス前記第2のレスポンス比較値との比較に基づいて、前記第2のレスポンスと前記第2の攪拌値を出力した外部装置を認証する認証部と、
を含む付記3に記載の暗号処理装置。
(付記6)
前記鍵攪拌部は、不揮発性回路から構成される攪拌鍵格納部を含み、前記秘密鍵と前記攪拌値に前記攪拌関数を作用させて前記攪拌された秘密鍵を生成し、前記攪拌鍵格納部に格納し、前記秘密鍵の更新の際には保持されている前記攪拌された秘密鍵に前記攪拌関数の逆関数である逆攪拌関数を作用させる、付記2乃至5のいずれか一項に記載の暗号処理装置。
(付記7)
前記鍵攪拌部は、不揮発性回路から構成される攪拌鍵格納部を含み、前記不揮発性回路に格納された前記攪拌された秘密鍵の読み出し処理は、前記攪拌された秘密鍵の全ビットを1サイクルで読み出しをする、付記2乃至6のいずれか一項に記載の暗号処理装置。
(付記8)
前記鍵攪拌部は、不揮発性回路から構成される攪拌鍵格納部を含み、前記攪拌鍵格納部への前記攪拌された秘密鍵の書き込み処理は、前記攪拌された秘密鍵の全ビットを1サイクルで読み出しをする、付記2乃至7のいずれか一項に記載の暗号処理装置。
(付記9)
前記鍵攪拌部は、前記不揮発性回路への書き込み処理および/または前記不揮発性回路から読み出し処理は、不揮発性フリップフロップを用いて行う、付記7または8に記載の暗号処理装置。
(付記10)
前記鍵攪拌部において、前記秘密鍵と前記攪拌値に前記攪拌関数を作用させて前記攪拌された秘密鍵を生成することは、入力値と出力値が以下のような性質:
(MGF1)前記入力値が1ビットでも変化した場合、前記出力値の少なくとも複数のビットが変化する、
(MGF2)前記出力値から前記入力値を求めることが出来ない、
(MGF3)前記入力値と前記出力値のビット長を、任意に調整することができる、
を有するマスク生成関数(MGF)を作用することを含む、付記6に記載の暗号処理装置。
(付記11)
前記鍵攪拌部は、前記秘密鍵と前記攪拌値に前記攪拌関数を作用させて前記攪拌された秘密鍵を生成することは、前記秘密鍵と前記攪拌値の上位半分ビットと下位半分ビットのビット結合に対して、入力値と出力値が以下のような性質:
(MGF1)前記入力値が1ビットでも変化した場合、前記出力値の少なくとも複数のビットが変化する、
(MGF2)前記出力値から前記入力値を求めることが出来ない、
(MGF3)前記入力値と前記出力値のビット長を、任意に調整することができる、
を有するマスク生成関数(MGF)を作用する、および排他的論理和(XOR)演算を実行するマスク生成関数(MGF)作用部を含む、付記6に記載の暗号装置。
(付記12)
前記鍵攪拌部において、前記秘密鍵をマスク値によってマスク化するマスク処理部を含む、付記2乃至11のいずれか一項に記載の暗号処理装置。
(付記13)
前記鍵攪拌部において、前記マスク生成関数(MGF)を作用することの前に、入力値と出力値が以下のような性質:
(事前複雑化1)前記入力値は、マスク化処理に用いられるマスク値、前記秘密鍵に対して前記マスク化処理を実行して得られるマスク化された秘密鍵、前記攪拌値である、
(事前複雑化2)前記入力値に対して、前記秘密鍵および前記攪拌値によって定まるビット転置処理を行う、
(事前複雑化3)前記出力値は、前記秘密鍵および前記攪拌値にのみ依存する、
を有する事前複雑化処理を行うMGF事前複雑化処理部を含む、付記12に記載の暗号処理装置。
(付記14)
前記MGF事前複雑化処理部において、前記事前複雑化処理は、以下の性質:
(スワッピングボックス1)多数のスワッピングボックスを直列に繋いだ場合のビット転置の結果と、1個のスワッピングボックスのセレクタ信号に対して前述のスワッピングボックスの各セレクタ信号の全ての値排他的論理和(XOR)演算した値を入力した結果が同じ、
を有するXOR型スワッピングボックスを用いて行う、付記13に記載の暗号処理装置。
(付記15)
前記MGF事前複雑化処理部において、前記事前複雑化処理を行う前記XOR型スワッピングボックスと、線形シフトフィードバック処理を行う線形帰還シフトレジスタを含み、前記事前複雑化処理の後に線形シフトフィードバック処理を行う、付記13に記載の暗号処理装置。
(付記16)
前記MGF事前複雑化処理部において、前記事前複雑化処理を行う前記XOR型スワッピングボックスと、線形シフトフィードバック処理を行う線形帰還シフトレジスタを含み、前記事前複雑化処理の後に線形シフトフィードバック処理を行う複数の構成とXORゲートを含み、前記複数の構成の出力に対して排他的論理和(XOR)演算を行う、付記13に記載の暗号処理装置。
(付記17)
前記MGF事前複雑化処理部において、前記事前複雑化処理は、以下の性質:
(スワッピングボックス2)多数のスワッピングボックスを直列に繋いだ場合のビット転置の結果と、1個のスワッピングボックスのセレクタ信号に対して前述のスワッピングボックスの各セレクタ信号の全ての値を加算した値を入力した結果が同じとなる、
を有する加算型スワッピングボックスを用いて行うMGF事前複雑化処理部を含む、付記13に記載の暗号処理装置。
(付記18)
攪拌値更新部前記攪拌値を更新することは、前記暗号処理装置が稼動している間は、常に行われる、付記1乃至18のいずれか一項に記載の暗号処理装置。
(付記19)
入力として整数の乱数であるチャレンジを受けることと、
整数である秘密鍵と整数である攪拌値に攪拌関数を作用させて整数である攪拌された秘密鍵を生成することと、
前記攪拌された秘密鍵を用いて前記チャレンジに暗号化関数を作用させて整数であるレスポンスを生成することと、
前記攪拌値を更新することと、
前記攪拌値と前記レスポンスを出力することと、
を含む暗号処理方法。
(付記20)
前記攪拌値と前記レスポンスが受け取られ、受け取られた前記攪拌値と前記秘密鍵と同じ値である第2の秘密鍵に攪拌関数を作用させて整数である秘密鍵比較値が生成され、前記秘密鍵比較値と前記レスポンスを前記暗号化関数の逆関数である復号関数に作用させてチャレンジ比較値が生成され、前記チャレンジと前記チャレンジ比較値が比較され、前記チャレンジと前記チャレンジ比較値の比較の結果に基づいて認証を受けること、
を含む、付記19に記載の暗号処理方法。(付記21)
前記攪拌値と前記レスポンスを受け取られ、受け取られた前記攪拌値と前記秘密鍵と同じ値である第2の秘密鍵に攪拌関数を作用させて整数である秘密鍵比較値が生成され、前記秘密鍵比較値と前記レスポンスに暗号化関数を作用させてチャレンジ比較値が生成され、前記チャレンジと前記チャレンジ比較値が比較され、前記チャレンジと前記チャレンジ比較値との比較の結果に基づいて認証を受けること、
を含む、付記19に記載の暗号処理方法。
(付記22)
さらに、整数の乱数である第2のチャレンジを生成することを含み、
前記攪拌値と前記レスポンスを出力すること前記攪拌値と前記レスポンスに加え、前記第2チャレンジを出力しする暗号処理方法であって、
さらに、
前記攪拌値と前記レスポンスと前記第2チャレンジが受け取られ、受け取られた前記攪拌値と前記秘密鍵と同じ値である第2の秘密鍵とに攪拌関数を作用させて整数である秘密鍵比較値が生成され、前記秘密鍵比較値と前記レスポンスを前記暗号化関数の逆関数である復号関数に作用させてチャレンジ比較値が生成され、さらに整数である第2の攪拌値と前記秘密鍵に攪拌関数を作用させて第2の秘密鍵比較値が生成され、前記チャレンジと前記チャレンジ比較値が比較され、前記前記チャレンジと前記チャレンジ比較値との比較の結果に基づいて認証を受けた場合に、前記第2の秘密鍵比較値と前記第2のチャレンジに暗号化関数を作用させて整数である第2のレスポンスが生成され、前記第2の攪拌値と前記第2のレスポンスが出力されたことに応答して、前記第2の攪拌値と前記第2のレスポンスを受けることと、
前記秘密鍵と前記第2の攪拌値に攪拌関数を作用させて整数である第2の攪拌された秘密鍵を生成することと、
前記第2の攪拌された秘密鍵と前記第2のレスポンスを前記暗号化関数の逆関数である復号関数に作用させて第2のチャレンジ比較値を生成することと、
前記第2のチャレンジ比較値と前記第2チャレンジとを比較することと、
前記第2のチャレンジ比較値と前記第2チャレンジとの比較に基づいて、認証を行うことと、
を含む付記20に記載の暗号処理方法。
(付記23)
さらに、乱数である第2のチャレンジを生成することを含み、
前記攪拌値と前記レスポンスを出力することは、さらに前記攪拌値と前記レスポンスに加え、前記第2チャレンジを出力しする暗号処理方法であって、
前記攪拌値と前記レスポンスと前記第2チャレンジが受け取られ、受け取られた前記攪拌値と、前記秘密鍵と同じ値である第2の秘密鍵に攪拌関数を作用させて整数である秘密鍵比較値が生成され、前記秘密鍵比較値と前記チャレンジに前記暗号化関数を作用させてレスポンス比較値が生成され、さらに整数である第2の攪拌値と前記秘密鍵に攪拌関数を作用させて整数である第2の攪拌された秘密鍵が生成され、前記レスポンスと前記レスポンス比較値とが比較され、前記レスポンスと前記レスポンス比較値との比較の結果に基づいて認証を受けた場合に、前記第2の秘密鍵比較値と前記第2のチャレンジに暗号化関数を作用させて整数である第2のレスポンスが生成され、前記第2のレスポンスと前記第2の攪拌値が出力されることに応答して、前記第2のレスポンスと前記第2の攪拌値を受けることと、
前記秘密鍵と前記第2の攪拌値に攪拌関数を作用させて整数である第2の攪拌された秘密鍵を生成することと、
前記第2の攪拌値と前記秘密鍵を前記暗号化に作用させて第2のレスポンス比較値値を生成することと、
前記第2のレスポンス前記第2のレスポンス比較値とを比較することと、
前記第2のレスポンス前記第2のレスポンス比較値との比較の結果に基づいて認証を行うことと、
を含む付記21に記載の暗号処理方法。
(付記24)
整数である秘密鍵と整数である攪拌値に攪拌関数を作用させて整数である攪拌された秘密鍵を生成すること
前記秘密鍵と前記攪拌値に前記攪拌関数を作用させて前記攪拌された秘密鍵を生成することと、
前記攪拌された秘密鍵を格納することと、
前記秘密鍵の更新の際には前記攪拌された秘密鍵に前記攪拌関数の逆関数である逆攪拌関数を作用させること、
を含む付記20乃至23のいずれか一項に記載の暗号処理方法。
(付記25)
攪拌された秘密鍵を生成すること前記攪拌された秘密鍵の読み出し処理は、前記攪拌された秘密鍵の全ビットを1サイクルで読み出しをすることを含む、付記19乃至23のいずれか一項に記載の暗号処理方法。
(付記26)
攪拌された秘密鍵を生成すること前記攪拌された秘密鍵の書き込み処理は、前記攪拌された秘密鍵の全ビットを1サイクルで読み出しをすることを含む、付記19乃至24のいずれか一項に記載の暗号処理方法。
(付記27)
前記攪拌された秘密鍵を生成することは、入力値と出力値が以下のような性質:
(MGF1)前記入力値が1ビットでも変化した場合、前記出力値の少なくとも複数のビットが変化する、
(MGF2)前記出力値から前記入力値を求めることが出来ない、
(MGF3)前記入力値と前記出力値のビット長を、任意に調整することができる、
を有するマスク生成関数(MGF)を作用することを含む、付記24に記載の暗号処理方法。
(付記28)
前記攪拌された秘密鍵を生成することは、前記秘密鍵と前記攪拌値のビット結合の上位半分ビットと下位半分ビットに対して、入力値と出力値が以下のような性質:
(MGF1)前記入力値が1ビットでも変化した場合、前記出力値の少なくとも複数のビットが変化する、
(MGF2)前記出力値から前記入力値を求めることが出来ない、
(MGF3)前記入力値と前記出力値のビット長を、任意に調整することができる、
を有するマスク生成関数(MGF)を作用すること、および排他的論理和(XOR)演算を実行することを含む、付記24に記載の暗号処理方法。
(付記29)
さらに、前記秘密鍵をマスク値を用いてマスク化することを含む、付記20乃至28のいずれか一項に記載の暗号処理方法。
(付記30)
前記マスク生成関数(MGF)を作用することの前に、入力値と出力値が以下のような性質:
(事前複雑化1)前記入力値は、マスク化処理に用いられるマスク値、前記秘密鍵に対して前記マスク化処理を実行して得られるマスク化された秘密鍵、前記攪拌値である、
(事前複雑化2)前記入力値に対して、前記秘密鍵および前記攪拌値によって定まるビット転置処理を行う、
(事前複雑化3)前記出力値は、前記秘密鍵および前記攪拌値にのみ依存する、
を有する事前複雑化処理を行うことを含む、付記28に記載の暗号処理方法。
(付記31)
前記事前複雑化処理の後、線形シフトフィードバック処理を行うことを含む、付記30に記載の暗号処理方法。
(付記32)
ビット転置を行うことを繰り返し行うことによって前記事前複雑化処理を行うことと、線形シフトフィードバック処理を行うこと、を並列に行い複数の出力を得ることと、
前記複数の出力に対して排他的論理和(XOR)演算を行うことと、
を含む付記31に記載の暗号処理方法。
(付記33)
さらに、
攪拌値更新部前記攪拌値を更新することは、前記暗号処理装置が稼動している間、常に行うこと
を含む、付記20乃至32のいずれか一項に記載の暗号処理装置。
102、1002 子機
103 不揮発性メモリ
104 センサ
105 マイクロプローバー
106(106a、106b、106c)、106’(106a’、106b、106c) 内部回路
2000、2300、3400、3800、7100、8000、8700、9500 ラッピング部
2002 メモリ
2004 攪拌関数作用部
2100、2400、3500、3900、7200、8100、8900、9600 鍵記憶部(不揮発性回路)
2200、2500、3600、4000、7300、8200、9000、9700 アンラッピング部
4100、4200、4300、4400 入力セット
4102、4202、4302、4402,7400、7600、8300、9100 MGF事前複雑化処理部
4104、4204、4304、4404 MGF事前複雑化処理結果
4106、4206、4306 マスク生成関数(MGF)作用部
4500、4502、4504 スワッピングボックス
4600、4700、4702、4704、4706、4708、4710、4712、4802、4804、4806 1ビットスワッピングボックス
4800 2ビットスワッピングボックス
4900 切り替え器
5002、5004、5006、5200、5402、5404、5406、5702、5704、5706、6102、6104、6106、6500 Tビットスワッピングボックス
5500、5800、6200 線形シフトフィードバック
6302、6304、6306、6400 加算スワッピングボックス
7500、8400、9200 マスク処理部
7500、8500、9200 アンマスク処理部
Claims (13)
- 入力として整数の乱数であるチャレンジを受ける受信部と、
整数である秘密鍵を格納する不揮発性メモリである第1のメモリと、
整数である攪拌値を格納する第2のメモリと、
前記秘密鍵と前記攪拌値に攪拌関数を作用させて整数である攪拌された秘密鍵を生成する鍵攪拌部と、
前記攪拌された秘密鍵と前記チャレンジに暗号化関数を作用させてレスポンスを生成するレスポンス生成部と、
前記第2のメモリに格納されている前記攪拌値を更新する攪拌値更新部と、
前記攪拌値と前記レスポンスを出力する送信部と、を備え、
外部装置であって、前記送信部から出力された前記攪拌値と前記レスポンスを受け取り、受け取った前記攪拌値と、予め自身の不揮発性メモリに格納してある前記秘密鍵と同じ値である第2の秘密鍵とに攪拌関数を作用させて整数である秘密鍵比較値を生成し、前記秘密鍵比較値と前記レスポンスを前記暗号化関数の逆関数である復号関数に作用させてチャレンジ比較値を生成し、前記チャレンジと前記チャレンジ比較値との比較の結果に基づいて、前記攪拌値と前記レスポンスを出力した前記暗号処理装置を認証する外部装置によって認証を受け、
前記鍵攪拌部は、不揮発性回路から構成される攪拌鍵格納部を含み、前記秘密鍵と前記攪拌値に前記攪拌関数を作用させて前記攪拌された秘密鍵を生成し、前記攪拌鍵格納部に格納し、前記秘密鍵の更新の際には保持されている前記攪拌された秘密鍵に前記攪拌関数の逆関数である逆攪拌関数を作用させる、
暗号処理装置。 - 前記送信部から送信された前記攪拌値と前記レスポンスを受け取り、受け取った前記攪拌値と、予め自身の不揮発性メモリに格納してある前記秘密鍵と同じ値である第2の秘密鍵に攪拌関数を作用させて整数である秘密鍵比較値を生成し、前記秘密鍵比較値と前記レスポンスに暗号化関数を作用させてチャレンジ比較値を生成し、前記チャレンジと前記チャレンジ比較値を比較し、前記チャレンジと前記チャレンジ比較値との比較の結果に基づいて、前記攪拌値と前記レスポンスを出力した前記暗号処理装置を認証する外部装置によって認証を受ける、請求項1に記載の暗号処理装置。
- さらに、整数の乱数である第2のチャレンジを生成するチャレンジ生成部を含む暗号処理装置であって、
前記送信部は、前記攪拌値と前記レスポンスと前記第2チャレンジを出力し、
前記受信部は、外部装置であって、前記送信部から出力された前記攪拌値と前記レスポンスと前記第2チャレンジを受け取り、受け取った前記攪拌値と、予め自身の不揮発性メモリに格納してある前記秘密鍵と同じ値である第2の秘密鍵とに攪拌関数を作用させて整数である秘密鍵比較値を生成し、前記秘密鍵比較値と前記レスポンスを前記暗号化関数の逆関数である復号関数に作用させて整数であるチャレンジ比較値を生成し、自身のメモリに格納してある整数である第2の攪拌値と前記秘密鍵に攪拌関数を作用させて整数である第2の秘密鍵比較値を生成し、前記チャレンジと前記チャレンジ比較値との比較をし、前記前記チャレンジと前記チャレンジ比較値との比較の結果に基づいて前記攪拌値と前記レスポンスと前記第2チャレンジを出力した前記暗号処理装置が認証された場合に、前記第2の秘密鍵比較値と前記第2のチャレンジに暗号化関数を作用させて整数である第2のレスポンスを生成し、前記第2の攪拌値と前記第2のレスポンスを出力する外部装置から、前記第2の攪拌値と前記第2のレスポンスを受け、
前記鍵攪拌部は、前記秘密鍵と前記第2の攪拌値に攪拌関数を作用させて整数である第2の攪拌された秘密鍵を生成する暗号処理装置であって、
さらに、
前記第2の攪拌された秘密鍵と前記第2のレスポンスを前記暗号化関数の逆関数である復号関数に作用させて第2のチャレンジ比較値を生成する復号部と、
前記第2のチャレンジ比較値と前記第2チャレンジとの比較に基づいて、前記第2の攪拌値と前記第2のレスポンスを出力した外部装置を認証する認証部と、
を含む請求項1に記載の暗号処理装置。 - さらに、
整数の乱数である第2のチャレンジを生成するチャレンジ生成部を含む暗号処理装置であって、
前記送信部は、前記攪拌値と前記レスポンスと前記第2チャレンジを出力し、
前記受信部は、外部装置であって、前記送信部から出力された前記攪拌値と前記レスポンスと前記第2チャレンジを受け取り、受け取った前記攪拌値と、予め自身の不揮発性メモリに格納してある前記秘密鍵と同じ値である第2の秘密鍵に攪拌関数を作用させて整数である秘密鍵比較値を生成し、前記秘密鍵比較値と前記チャレンジに前記暗号化関数を作用させて整数であるレスポンス比較値を生成し、さらに自身のメモリに格納してある整数である第2の攪拌値と前記秘密鍵に攪拌関数を作用させて第2の攪拌された秘密鍵を生成し、前記レスポンスと前記レスポンス比較値とを比較し、前記レスポンスと前記レスポンス比較値との比較の結果に基づいて前記攪拌値と前記レスポンスと前記第2チャレンジを出力した前記暗号処理装置が認証された場合に、前記第2の攪拌された秘密鍵と前記第2のチャレンジに暗号化関数を作用させて整数である第2のレスポンスを生成し、前記第2のレスポンスと前記第2の攪拌値を出力する外部装置から、前記第2のレスポンスと前記第2の攪拌値を受け、
前記鍵攪拌部は、前記秘密鍵と前記第2の攪拌値に攪拌関数を作用させて整数である第2の攪拌された秘密鍵を生成する暗号処理装置であって、
さらに、
前記第2の攪拌値と前記秘密鍵を前記暗号化に作用させて第2のレスポンス比較値を生成する暗号化部と、
前記第2のレスポンス前記第2のレスポンス比較値との比較に基づいて、前記第2のレスポンスと前記第2の攪拌値を出力した外部装置を認証する認証部と、
を含む請求項2に記載の暗号処理装置。 - 前記鍵攪拌部は、不揮発性回路から構成される攪拌鍵格納部を含み、前記不揮発性回路に格納された前記攪拌された秘密鍵の読み出し処理は、前記攪拌された秘密鍵の全ビットを1サイクルで読み出しをする、請求項1乃至4のいずれか一項に記載の暗号処理装置。
- 前記鍵攪拌部は、不揮発性回路から構成される攪拌鍵格納部を含み、前記攪拌鍵格納部への前記攪拌された秘密鍵の書き込み処理は、前記攪拌された秘密鍵の全ビットを1サイクルで書き込みを行う、請求項1乃至5のいずれか一項に記載の暗号処理装置。
- 前記鍵攪拌部は、前記不揮発性回路への書き込み処理および/または前記不揮発性回路から読み出し処理は、不揮発性フリップフロップを用いて行う、請求項5または6に記載の暗号処理装置。
- 前記鍵攪拌部において、前記秘密鍵と前記攪拌値に前記攪拌関数を作用させて前記攪拌された秘密鍵を生成することは、入力値と出力値が以下のような性質:
(MGF1)前記入力値が1ビットでも変化した場合、前記出力値の少なくとも複数のビットが変化する、
(MGF2)前記出力値から前記入力値を求めることが出来ない、
(MGF3)前記入力値と前記出力値のビット長を、任意に調整することができる、
を有するマスク生成関数(MGF)を作用することを含む、請求項1に記載の暗号処理装置。 - 前記鍵攪拌部は、前記秘密鍵と前記攪拌値に前記攪拌関数を作用させて前記攪拌された秘密鍵を生成することは、前記秘密鍵と前記攪拌値の上位半分ビットと下位半分ビットのビット結合に対して、入力値と出力値が以下のような性質:
(MGF1)前記入力値が1ビットでも変化した場合、前記出力値の少なくとも複数のビットが変化する、
(MGF2)前記出力値から前記入力値を求めることが出来ない、
(MGF3)前記入力値と前記出力値のビット長を、任意に調整することができる、
を有するマスク生成関数(MGF)を作用する、および排他的論理和(XOR)演算を実行するマスク生成関数(MGF)作用部を含む、請求項1に記載の暗号装置。 - 前記鍵攪拌部において、前記秘密鍵をマスク値によってマスク化するマスク処理部を含む、請求項1乃至9のいずれか一項に記載の暗号処理装置。
- 前記鍵攪拌部において、前記マスク生成関数(MGF)を作用することの前に、入力値と出力値が以下のような性質:
(事前複雑化1)前記入力値は、マスク化処理に用いられるマスク値、前記秘密鍵に対して前記マスク化処理を実行して得られるマスク化された秘密鍵、前記攪拌値である、
(事前複雑化2)前記入力値に対して、前記秘密鍵および前記攪拌値によって定まるビット転置処理を行う、
(事前複雑化3)前記出力値は、前記秘密鍵および前記攪拌値にのみ依存する、
を有する事前複雑化処理を行うMGF事前複雑化処理部を含む、請求項10に記載の暗号処理装置。 - 前記MGF事前複雑化処理部において、前記事前複雑化処理を行う前記XOR型スワッピングボックスと、線形シフトフィードバック処理を行う線形帰還シフトレジスタを含み、前記事前複雑化処理の後に線形シフトフィードバック処理を行う複数の構成とXORゲートを含み、前記複数の構成の出力に対して排他的論理和(XOR)演算を行う、請求項11に記載の暗号処理装置。
- 暗号処理装置が実行する暗号処理方法であって、
入力として整数の乱数であるチャレンジを受け、
整数である秘密鍵と整数である攪拌値に攪拌関数を作用させて整数である攪拌された秘密鍵を生成し、
前記攪拌された秘密鍵を用いて前記チャレンジに暗号化関数を作用させて整数であるレスポンスを生成し、
前記攪拌値を更新し、
前記攪拌値と前記レスポンスを出力し、
外部装置であって、出力された前記攪拌値と前記レスポンスを受け取り、受け取った前記攪拌値と、予め自身の不揮発性メモリに格納してある前記秘密鍵と同じ値である第2の秘密鍵とに攪拌関数を作用させて整数である秘密鍵比較値を生成し、前記秘密鍵比較値と前記レスポンスを前記暗号化関数の逆関数である復号関数に作用させてチャレンジ比較値を生成し、前記チャレンジと前記チャレンジ比較値との比較の結果に基づいて、前記攪拌値と前記レスポンスを出力した前記暗号処理装置を認証する外部装置によって認証を受け、
前記秘密鍵と前記攪拌値に前記攪拌関数を作用させて前記攪拌された秘密鍵を生成し、不揮発性回路に格納し、前記秘密鍵の更新の際には保持されている前記攪拌された秘密鍵に前記攪拌関数の逆関数である逆攪拌関数を作用させる、
処理を実行する暗号処理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012172410A JP5954030B2 (ja) | 2012-08-02 | 2012-08-02 | 暗号処理装置および方法 |
US13/919,299 US20140037089A1 (en) | 2012-08-02 | 2013-06-17 | Encryption processing device and method |
EP13173773.6A EP2698780A3 (en) | 2012-08-02 | 2013-06-26 | Encryption processing device and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012172410A JP5954030B2 (ja) | 2012-08-02 | 2012-08-02 | 暗号処理装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014033324A JP2014033324A (ja) | 2014-02-20 |
JP5954030B2 true JP5954030B2 (ja) | 2016-07-20 |
Family
ID=48747933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012172410A Expired - Fee Related JP5954030B2 (ja) | 2012-08-02 | 2012-08-02 | 暗号処理装置および方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20140037089A1 (ja) |
EP (1) | EP2698780A3 (ja) |
JP (1) | JP5954030B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9787568B2 (en) * | 2012-11-05 | 2017-10-10 | Cercacor Laboratories, Inc. | Physiological test credit method |
EP3001401A4 (en) * | 2013-07-18 | 2017-03-22 | Nippon Telegraph And Telephone Corporation | Decoding device, decoding ability providing device, method thereof, and program |
US10367803B2 (en) * | 2015-04-12 | 2019-07-30 | Gropper Adrian | Managed open source medical devices |
CN105119900B (zh) * | 2015-07-17 | 2019-02-26 | 北京奇虎科技有限公司 | 信息安全传输方法、联网接入方法及相应的终端 |
JP2017076854A (ja) * | 2015-10-14 | 2017-04-20 | 富士通株式会社 | 電子装置、及びデータ検証方法 |
US10853523B2 (en) * | 2016-03-22 | 2020-12-01 | New York University In Abu Dhabi Corporation | System, method and computer-accessible medium for satisfiability attack resistant logic locking |
KR101934221B1 (ko) * | 2016-10-27 | 2018-12-31 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 교체가능 물품 인증 |
EP3373178A1 (en) | 2017-03-08 | 2018-09-12 | Secure-IC SAS | Comparison of execution context data signatures with references |
CN110891472B (zh) | 2017-04-28 | 2023-04-04 | 迈心诺公司 | 抽查测量系统 |
US11296896B2 (en) * | 2018-03-30 | 2022-04-05 | Canon Kabushiki Kaisha | Method of authenticating authentication-target apparatus using challenge and response |
CN109257630B (zh) * | 2018-11-14 | 2020-12-11 | 苏州科达科技股份有限公司 | 视频点播中的数据传输系统、方法、装置及存储介质 |
KR102025569B1 (ko) * | 2019-01-31 | 2019-11-04 | 김동현 | 재생 카트리지에 설치되는 인증용 메모리 모듈 |
US11575521B2 (en) | 2019-06-28 | 2023-02-07 | Intel Corporation | Fast XMSS signature verification and nonce sampling process without signature expansion |
US11218320B2 (en) * | 2019-06-28 | 2022-01-04 | Intel Corporation | Accelerators for post-quantum cryptography secure hash-based signing and verification |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH104403A (ja) * | 1996-06-17 | 1998-01-06 | N T T Data Tsushin Kk | 暗号化装置、復号化装置およびその方法 |
US5828753A (en) * | 1996-10-25 | 1998-10-27 | Intel Corporation | Circuit and method for ensuring interconnect security within a multi-chip integrated circuit package |
WO1998051029A1 (en) * | 1997-05-07 | 1998-11-12 | Southwestern Bell Telephone Company | Apparatus and method for customized secondary access authentication |
JPH11252069A (ja) * | 1998-03-06 | 1999-09-17 | Fuji Electric Co Ltd | 情報機器間の相互認証装置 |
JPH11305661A (ja) * | 1998-04-23 | 1999-11-05 | Toyo Commun Equip Co Ltd | シフトレジスタ構成用回路およびシフトレジスタ |
US6243811B1 (en) * | 1998-07-31 | 2001-06-05 | Lucent Technologies Inc. | Method for updating secret shared data in a wireless communication system |
JP2002015512A (ja) * | 1999-07-15 | 2002-01-18 | Matsushita Electric Ind Co Ltd | デジタルデータ書込装置、デジタルデータ記録装置、デジタルデータ利用装置 |
FR2820577B1 (fr) * | 2001-02-08 | 2003-06-13 | St Microelectronics Sa | Procede securise de calcul cryptographique a cle secrete et composant mettant en oeuvre un tel procede |
US7034654B2 (en) * | 2004-01-13 | 2006-04-25 | General Motors Corporation | Motor vehicle engine immobilizer security system and method |
US9497022B2 (en) * | 2005-05-24 | 2016-11-15 | Broadcom Corporation | Method and system for improved fault tolerance in distributed customization controls using non-volatile memory |
DE102009024604B4 (de) * | 2009-06-10 | 2011-05-05 | Infineon Technologies Ag | Erzeugung eines Session-Schlüssels zur Authentisierung und sicheren Datenübertragung |
JP5446650B2 (ja) * | 2009-09-17 | 2014-03-19 | 沖電気工業株式会社 | 通信データ新規性確認システム並びに送信端末及び受信端末 |
US8660005B2 (en) * | 2010-11-30 | 2014-02-25 | Marvell Israel (M.I.S.L) Ltd. | Load balancing hash computation for network switches |
-
2012
- 2012-08-02 JP JP2012172410A patent/JP5954030B2/ja not_active Expired - Fee Related
-
2013
- 2013-06-17 US US13/919,299 patent/US20140037089A1/en not_active Abandoned
- 2013-06-26 EP EP13173773.6A patent/EP2698780A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP2698780A2 (en) | 2014-02-19 |
US20140037089A1 (en) | 2014-02-06 |
EP2698780A3 (en) | 2017-07-05 |
JP2014033324A (ja) | 2014-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5954030B2 (ja) | 暗号処理装置および方法 | |
US9819657B2 (en) | Protection of memory interface | |
JP5700128B2 (ja) | 暗号化処理装置および認証方法 | |
JP5621907B2 (ja) | 共通鍵暗号を用いた認証システム | |
US20200244434A1 (en) | Differential power analysis resistant encryption and decryption functions | |
CN111492616B (zh) | 用于基于晶格的密码学的可配置设备 | |
US20130051552A1 (en) | Device and method for obtaining a cryptographic key | |
US9648026B2 (en) | Cryptographic method for securely exchanging messages and device and system for implementing this method | |
JP2014509812A (ja) | チップ製造中に一意の鍵を確立すること | |
WO2012120671A1 (ja) | 共通鍵暗号を用いた認証システム | |
CN109039596B (zh) | 利用加扰电路的白盒实施方案 | |
KR100546375B1 (ko) | 자체 오류 감지 기능을 강화한 상호 의존적 병렬 연산방식의 하드웨어 암호화 장치 및 그 하드웨어 암호화 방법 | |
Arshad et al. | New extension of data encryption standard over 128-bit key for digital images | |
Kelber et al. | General design rules for chaos-based encryption systems | |
US11336425B1 (en) | Cryptographic machines characterized by a Finite Lab-Transform (FLT) | |
US7415110B1 (en) | Method and apparatus for the generation of cryptographic keys | |
JP2002217898A (ja) | 擬似乱数生成システム | |
Mars et al. | Digitally Mutating NV-FPGAs into Physically Clone-Resistant Units | |
KR101105384B1 (ko) | 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법 | |
Reddy et al. | A new symmetric probabilistic encryption scheme based on random numbers | |
Hameed et al. | SMX algorithm: A novel approach to avalanche effect on advanced encryption standard AES | |
Ratheesh et al. | A Public Key Cryptography based Mechanism for the Secure Transmission of RGB Images using Elliptic Curve based Hill Cipher and Magic Square Concept | |
Gomathisankaran et al. | Glitch resistant private circuits design using HORNS | |
US20220376922A1 (en) | Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor | |
US10897345B2 (en) | Method for encrypting or decrypting a n-tuple of data with a n-tuple of predetermined secret keys |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150406 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160308 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160419 |
|
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: 20160517 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160530 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5954030 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |