JP5556955B2 - 暗号処理装置、認証方法およびプログラム - Google Patents
暗号処理装置、認証方法およびプログラム Download PDFInfo
- Publication number
- JP5556955B2 JP5556955B2 JP2013506933A JP2013506933A JP5556955B2 JP 5556955 B2 JP5556955 B2 JP 5556955B2 JP 2013506933 A JP2013506933 A JP 2013506933A JP 2013506933 A JP2013506933 A JP 2013506933A JP 5556955 B2 JP5556955 B2 JP 5556955B2
- Authority
- JP
- Japan
- Prior art keywords
- computer
- random number
- key
- compression
- circuit
- 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
- 238000000034 method Methods 0.000 title claims description 129
- 238000012545 processing Methods 0.000 title claims description 64
- 238000007906 compression Methods 0.000 claims description 128
- 230000006835 compression Effects 0.000 claims description 127
- 230000008569 process Effects 0.000 claims description 30
- 230000015572 biosynthetic process Effects 0.000 claims description 14
- 238000003786 synthesis reaction Methods 0.000 claims description 14
- 238000003672 processing method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 79
- 230000004044 response Effects 0.000 description 47
- 230000006870 function Effects 0.000 description 27
- 125000004122 cyclic group Chemical group 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 238000005259 measurement Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000000873 masking effect Effects 0.000 description 6
- 238000013478 data encryption standard Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000008570 general process Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- XNKICCFGYSXSAI-UHFFFAOYSA-N 1,1-diphenylpropan-2-amine Chemical compound C=1C=CC=CC=1C(C(N)C)C1=CC=CC=C1 XNKICCFGYSXSAI-UHFFFAOYSA-N 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- KDMWFFHKQUJBLB-UHFFFAOYSA-N n-methyl-1,1-diphenylpropan-2-amine;hydrochloride Chemical compound Cl.C=1C=CC=CC=1C(C(C)NC)C1=CC=CC=C1 KDMWFFHKQUJBLB-UHFFFAOYSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 208000008918 voyeurism Diseases 0.000 description 1
Images
Classifications
-
- 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/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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
-
- 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/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/08—Randomization, e.g. dummy operations or using noise
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Description
本発明は、暗号処理を実行する暗号処理装置、暗号処理に基づく認証処理を実行する認証方法およびプログラムに関する。
認証機能を搭載した小型認証チップでは、暗号処理を用いた認証プロトコルにより、機器の正当性を確認する。認証チップの正当性は、チップ内部に格納されている暗号鍵によって証明されるため、この鍵が外部に漏洩するとチップを偽造できる。
チップ偽造防止のためには、暗号鍵の漏洩防止が必須である。一般的な機器認証において、暗号鍵はチップ内部に格納され外部に読み出されることがないため安全であるが、サイドチャネル攻撃を用いることで、消費電力の測定データから、内部に格納された状態の暗号鍵を解読される危険性がある。サイドチャネル攻撃への対策は、認証機器における重要な課題である。
従来のサイドチャネル攻撃対策は、専用の暗号化回路を用いることで対策が行われていた。専用の暗号化回路は、内部データのランダム化を行うことで消費電力をランダム化するため安全であるが、専用のランダム化つき暗号回路を導入することで回路規模が大きくなるという問題があった。暗号化回路は、チップ全体の3〜4割を占める大きな回路であるが、従来のランダム化つき暗号回路の場合、回路規模がさらに2倍となり、チップのコスト増に直結するという問題点を有していた。
Paul C. Kocher "Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems", Advances in cryptology-CRYPTO 1996, Springer-Verlag, pp. 104-113
Thomas S.Messerges, Ezzy A.Dabbish and Robert H.Sloan "Power Analysis Attacks of Modular Exponentitiation in Smartcards", Cryptographic Hardware and Embedded Systems(CHES’99), Springer-Verlag, pp.144-157
Paul Kocher, Joshua Jaffe, and Benjamin Jun, "Differential Power Analysis," in proceedings of Advances in Cryptology-CRYPTO’99, Springer-Verlag, 1999, pp. 388-397
S. Chari, C. Jutla, J.R. Rao, P. Rohatgi, "An Cautionary Note Regarding Evaluation of AES Candidates on Smart-Cards,"Second Advanced Encryption Standard Candidate Conference, March 1999
T. S. Messerge, Ezzy A. Dabbish and Robert H.Sloan ,"Investigations of Power Attacks on Smartcards". Proceedings of USENIX Workshop on Smartcard Technology, Mar 1999.
Takeshi Shimoyama, Hitoshi Yanami, Kazuhiro Yokoyama, Masahiko Takenaka, Kouichi Itoh, Jun Yajima, Naoya Torii, Hidema Tanaka "The Block Cipher SC2000", Fast Software Encryption (FSE 2001), pp.312-327, LNCS vol.2355
M.Akkar, RBevan, P.Dischamp, and D. Moyart, "Power Analysis, What Is Now Possible... ", Asiacrypt 2000
Thomas S. Messerges, "Securing the AES Finalists Against Power Analysis Attacks," in proceedings of Fast Software Encryption Workshop 2000, Springer-Verlag, April 2000.
そこで、本発明の1つの側面では、回路規模または処理量を増大させずに、サイドチャネル攻撃への耐性を有するランダム化つき暗号処理および認証処理を実現することを目的とする。
態様の一例では、それぞれK1, K2, …, Knビットからなるn個の鍵を乱数によりランダム化するランダム化回路と、前記ランダム化されたn個の鍵から1つの鍵を生成することにより圧縮して得られる圧縮鍵を出力する圧縮化回路と、前記圧縮鍵を用いて入力データを暗号化する暗号化回路とを含むように構成する。
以上の構成により、回路を2倍化することなく、小さい回路規模増または処理量増ながらも、サイドチャネル攻撃に安全な認証を実現することが可能となる。
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
暗号方式は、公開鍵暗号方式と共通鍵暗号方式に大別される。公開鍵暗号方式とは、暗号化と復号で異なる鍵を用いる方式であり、暗号化を行うための鍵(公開鍵)を一般に公開する代わりに、暗号文を復号するための鍵(秘密鍵)を受信者のみの秘密情報とすることで安全性を保つ方式である。これに対し、共通鍵暗号方式と呼ばれるものは、暗号化と復号で同一の鍵(秘密鍵)を用いる方式であり、この秘密鍵を送信者と受信者以外の第三者にわからない情報とすることで安全性を保つ方式である。いずれの暗号方式を用いた場合でも、秘密鍵が外部に漏洩しないことがセキュリティ上の大きな前提となる。
暗号方式は、公開鍵暗号方式と共通鍵暗号方式に大別される。公開鍵暗号方式とは、暗号化と復号で異なる鍵を用いる方式であり、暗号化を行うための鍵(公開鍵)を一般に公開する代わりに、暗号文を復号するための鍵(秘密鍵)を受信者のみの秘密情報とすることで安全性を保つ方式である。これに対し、共通鍵暗号方式と呼ばれるものは、暗号化と復号で同一の鍵(秘密鍵)を用いる方式であり、この秘密鍵を送信者と受信者以外の第三者にわからない情報とすることで安全性を保つ方式である。いずれの暗号方式を用いた場合でも、秘密鍵が外部に漏洩しないことがセキュリティ上の大きな前提となる。
セキュリティ機能を備えた組み込み機器に求められる性質として、耐タンパ性(Tamper-proof)と呼ばれるものがある。耐タンパとは、覗き見防止の意味であり、組み込み機器の外部から観察された情報により、組み込み機器内部に格納された重要情報が漏洩しない性質を指す。暗号を用いた認証機器の場合、外部から観察された情報により秘密鍵が漏洩しない性質である。一般的な認証機器は、機器製造時に秘密鍵が内部に書き込まれ、製造後は鍵が外部に取り出されることは無いため、高い耐タンパ性を有すると考えられていた。しかし、1996年に発見されたサイドチャネル攻撃により、認証機器を含めた組み込み装置全般に対して、製造後は鍵を外部に取り出さない場合でも、秘密鍵が漏洩することが判明したため、サイドチャネル攻撃への対策が耐タンパ上の必須課題となった。
サイドチャネル攻撃とは、組み込み機器に対する物理破壊を伴わずに、外部から観察可能な情報を用いて秘密鍵を解読する攻撃である。1996年には、処理時間を観察するタイミング攻撃(非特許文献1)が提案されたが、対策も容易であったため大きな脅威とならなかった。しかし1998年に、消費電力を観察する電力解析攻撃(Power Analysis, 以下PA)と呼ばれる手法が提案され、大きな脅威として現在でも注目されている。PAとは、1998年にPaul Kocherによって考案された手法で、組み込み機器に様々な入力データを与えた時の電力消費データを収集・解析することで、内部の鍵情報を推定する手法である。特に、組み込み機器がスマートカードチップや認証チップなどの単体のLSIチップである場合、消費電力の測定が容易であるため、PA対策は耐タンパ上の大きな課題である。PAを用いることで、公開鍵暗号、秘密鍵暗号共に暗号プロセッサから秘密鍵を推定できることが知られている。
PAには、単純電力解析(Single Power Analysis, 以下SPA), 電力差分攻撃(Differential Power Analysis, 以下DPA)の2種類が存在する。SPAは暗号プロセッサにおける単一の電力消費データの特徴から秘密鍵の推定を行う方式、DPAは多数の電力消費データの差分を解析することで秘密鍵の推定を行う方式である。共通鍵に限定した場合、SPAは対策が容易であるためほとんど有効ではないが、DPAが有効な攻撃法として知られている。SPA、DPAを用いた解読技術としては代表的なものとして次のような論文が発表されている。RSAなどの公開鍵暗号に対するDPAを用いた解読法については、非特許文献2などの文献にて述べられている。また、共通鍵暗号方式において、旧来の標準として利用されているDES(Data Encryption Standards)に対するDPAを用いた解読法については、非特許文献3で述べられている。DESの他に、現在標準的に利用されているAESについては、非特許文献4などの文献でDPAを用いた解読の可能性が指摘されている。
PAを用いた解読技術は特に有効な方法として注目されており、様々な解読法が研究されている。また、解読技術のみならずPAによる解読を防ぐための対策技術も発展しており、解読技術と同様に重要な技術として注目されている。ただし、これらの対策技術を用いた場合、暗号処理を行う回路の回路規模が大きくなるという欠点も知られており、共通鍵暗号に対する専用の対策回路は、未対策の回路の2倍の回路規模が必要という問題がある。認証チップやスマートカードの小型チップにおいては、暗号回路の占める回路規模の割合は非常に大きいため、専用の対策回路を組み込むことはコスト増に直結する。
本実施形態は、専用の対策回路を用いる代わりに、暗号を利用する上位レイヤの認証プロトコルの改良を行うことで、専用の対策回路によるコスト増を招くことなく、未対策の回路と同程度の回路規模による対策つき認証チップを実現することができる。
<チャレンジアンドレスポンス認証プロトコル>
認証チップにおいては、機器の正当性を確認するために、チャレンジアンドレスポンス認証プロトコルと呼ばれる通信プロトコルが利用される。チャレンジアンドレスポンス認証プロトコルの概要を図1に示す。チャレンジアンドレスポンス認証とは、デジタル情報を用いた合言葉であり、認証を行う側(親機101)から認証される側(子機102)に対し、「チャンレジ」と呼ばれる乱数を送信する。これに対し、子機102側では「チャンレンジ」に対して「レスポンス」と呼ばれる応答を生成し、親機101に返信する。親機101は、「チャレンジ」に対する「レスポンス」の値を判断し、もし正しいならば、子機102が正当な機器であると判断する。
認証チップにおいては、機器の正当性を確認するために、チャレンジアンドレスポンス認証プロトコルと呼ばれる通信プロトコルが利用される。チャレンジアンドレスポンス認証プロトコルの概要を図1に示す。チャレンジアンドレスポンス認証とは、デジタル情報を用いた合言葉であり、認証を行う側(親機101)から認証される側(子機102)に対し、「チャンレジ」と呼ばれる乱数を送信する。これに対し、子機102側では「チャンレンジ」に対して「レスポンス」と呼ばれる応答を生成し、親機101に返信する。親機101は、「チャレンジ」に対する「レスポンス」の値を判断し、もし正しいならば、子機102が正当な機器であると判断する。
「チャレンジ」として乱数を用いることで、対応する「レスポンス」が毎回変化する。これにより、再送攻撃(Replay attack)に対する防御が行える。再送攻撃とは、過去に外部から観察された応答を繰り返すことで、正当な機器の成りすましを行う攻撃である。つまり、乱数を用いない場合、チャンレジとレスポンスのペアが完全に固定値になる。このため、攻撃者がこのペアを観察することで、チャレンジに対応する適切なレスポンスを知ることができ、このレスポンスを返すチップを製造することでチップ偽造が容易となるからである。例えるならば、「山」に対する「川」という合言葉しか用いないシステムであることを、悪意のある第三者が知ることができれば、常に「川」と応答することで成りすましが可能となる。
「チャレンジ」に対する「レスポンス」の生成は、暗号関数を用いた方法が一般的である。どの暗号関数を用いるかによってメリットとデメリットがあるが、認証チップの場合、回路規模の小ささを優先できるメリットがある共通鍵暗号を用いる方法が広く用いられている。図2は、共通鍵暗号を用いた一般的に考えられるチャレンジアンドレスポンス認証(片側認証、暗号化・復号)の機能ブロックである。図2に示す認証方式(プロトコル)は、親機101と子機102の認証チップ間で、秘密鍵Kを事前共有している。これは、チップの製造時にKの値を書き込むことで実現できる。この値が外部に漏洩しないことがセキュリティ上の重要な前提である。認証を行なう側の親機101は、乱数rを生成し、認証される側の子機102に送信する(図2のS201)。子機102は、乱数rに対し、秘密鍵Kによる暗号処理a=Enc(r, K)を実行し、応答aを生成し、親機101に返信する(図2のS202)。ただし、C=Enc(P,K)とは、共通鍵暗号を用いて、平文Pを鍵Kにより暗号化した結果が暗号文Cであることを表す。応答aを受け取った親機101は、秘密鍵Kによる復号処理r’=Dec(a,K)を実行し、復号結果r’を得る(図2のS203)。復号結果r'がrと一致するならば、親機101は子機102を正当な機器と認定する。乱数rに対応した正当なレスポンスaを生成できるのは、秘密鍵Kを有する場合に限られるので、親機101は子機102の正当性を確認することができる。図2は暗号化と復号の両方を利用した親機101のみによる片側認証であるが、暗号化のみによるチャンレジアンドレスポンス認証も可能であり、その方法は図3に示される。
図3は、共通鍵暗号を用いた一般的に考えられるチャレンジアンドレスポンス認証(片側認証、暗号化のみ)の機能ブロック図である。図3では、親機101と子機102の認証チップ間で、秘密鍵Kを事前共有しており、認証を行なう側の親機101は、乱数rを生成し、認証される側の子機102に送信する(図3のS301)。子機102は、乱数rに対し、秘密鍵Kによる暗号処理a=Enc(r, K)を実行し、応答aを生成し、親機101に返信する(図3のS302)。ここまでは図2と同じであるが、親機101が子機102の正当性を確認するために、応答aを復号する代わりに乱数rを暗号化しa’=Enc(r, K)、その処理結果a’が子機102からの応答aと一致するか判定する。そして、一致するならば子機102が正当であると判断する(図3のステップS303)。
図2、図3は、片側認証と呼ばれる、親機101が子機102の正当性を確認するための認証プロトコルである。これでは、子機102は親機101の正当性を確認することができないため、子機102は親機101の不正を防止できない。これを防ぐために、子機102も親機101の正当性を確認する手段が必要である。これを実現するのが両側認証と呼ばれる認証プロトコルであり、子機102が親機101にチャレンジを送信し、親機101からのレスポンスを確認する処理が行われる。
図2の認証プロトコルを両側認証に拡張した認証プロトコルを図4に示す。すなわち、図4は、共通鍵暗号を用いた一般的に考えられるチャレンジアンドレスポンス認証(両側認証、暗号化・復号)の機能ブロック図である。図2と同様、親機101が乱数rを子機102に送信し(図4のS401)、子機102がrを秘密鍵Kで暗号化した結果aを計算する(図4のS403)。図2との違いは、このとき子機102側でも乱数sを生成することである(図4のS402)。次にa,sが親機101に送信され、親機101はaを秘密鍵Kで復号し、rと一致するなら子機102が正当であると判断し、さらに秘密鍵Kを用いてsを暗号化した結果bを生成する(図4のS404)。このbが子機102に送られた後、子機102は親機101からの応答bを秘密鍵Kにより復号し、その結果がsと一致するならば親機101が正当であると判断する(図4のS405)。
図4は暗号化・復号を用いた両側認証であるが、暗号化のみの認証も可能であり、その機能ブロック図は図5に示される。親機101が乱数rを子機102に送信し(図5のS501)、子機102がrを秘密鍵Kで暗号化した結果aを計算しつつ、乱数sを生成し(図5のS502)、a,sを親機101に送信する(図5のS503)。親機101はrを秘密鍵Kで暗号化した結果a’が子機102からの応答aと一致するならば、子機102が正当であると判断した上で、子機102からの乱数sを秘密鍵Kにより暗号化した結果bを生成し、子機102に送信する(図5のS504)。子機102は、乱数sを秘密鍵Kにより暗号化した結果b’を生成し、bに一致するならば親機101が正当であると判断する(図5のS505)。
<共通鍵暗号回路に対するDPAによる秘密鍵解読手法>
図6は、共通鍵暗号の一般的な処理(鍵XOR処理とテーブル変換の組み合わせ)のアルゴリズムを示す図である。Mは平文(もしくは暗号文)などの入力データ、Kは拡大鍵である。図6に示すKは、拡大鍵と呼ばれる値であり、秘密鍵をもとに、特定の処理を行うことでビット長を拡大することで生成される値である。MとKの排他的論理和(XOR)した結果を、特定のビット長データごとに分割し、それぞれの分割されたデータに対し、Sboxと呼ばれる変換テーブル演算を行う。M,Kは共通鍵暗号によって異なり、例えばDESの場合48-bit(ビット), AESの場合128-bitである。Sboxのビット長は暗号に依存するが、例えばDESの場合6-bit入力4-bit出力、AESの場合8-bit入力8-bit出力である。a-bit入力b-bit出力のSboxの回路規模は、a×b×2aに比例して大きくなるため、Sbox入出力のビット長には上限があり、8-bit入出力Sboxが最も大きいものとして知られている。
図6は、共通鍵暗号の一般的な処理(鍵XOR処理とテーブル変換の組み合わせ)のアルゴリズムを示す図である。Mは平文(もしくは暗号文)などの入力データ、Kは拡大鍵である。図6に示すKは、拡大鍵と呼ばれる値であり、秘密鍵をもとに、特定の処理を行うことでビット長を拡大することで生成される値である。MとKの排他的論理和(XOR)した結果を、特定のビット長データごとに分割し、それぞれの分割されたデータに対し、Sboxと呼ばれる変換テーブル演算を行う。M,Kは共通鍵暗号によって異なり、例えばDESの場合48-bit(ビット), AESの場合128-bitである。Sboxのビット長は暗号に依存するが、例えばDESの場合6-bit入力4-bit出力、AESの場合8-bit入力8-bit出力である。a-bit入力b-bit出力のSboxの回路規模は、a×b×2aに比例して大きくなるため、Sbox入出力のビット長には上限があり、8-bit入出力Sboxが最も大きいものとして知られている。
図6の構成においてwj の入出力に関係するビットのみを取り出した構成を図7に示す。図7において、mjは平文などの既知の値、kjは未知の値、wjは既知のSboxテーブルであると仮定する。この仮定の下で、DPAにより拡大鍵Kの部分鍵kjを推定できることを示す。
DPAは電力消費データの測定と、電力差分データを用いた鍵の解析という2段階から構成される。電力消費データの測定において、ある平文を与えたときに暗号プロセッサが消費する電力消費データは、オシロスコープ等を用いれば、図8に示すような電力消費曲線として測定される。平文の値を様々に変えながらこのような測定を繰り返し、十分な回数の測定データが得られた時点で測定を終了する。この一連の測定で得られた電力消費曲線の集合をGとする。
次に電力消費曲線を用いた拡大鍵の解析について説明を行う。暗号処理内部で用いられている拡大鍵の部分鍵kjについて、kj =k’jであるという仮定を立てる。mj, wjが既知のため、このk’jの仮定に基づき、集合Gは以下のG0(k’j), G1(k’j)に示す2種類の集合に分類できる。
そして、以下に示す電力差分曲線DG(k’j)を作成する。
DG(k’i) = (集合G1に属する電力消費曲線の平均) - (集合G0に属する電力消費曲線の平均) ・・・(3)
DG(k’i) = (集合G1に属する電力消費曲線の平均) - (集合G0に属する電力消費曲線の平均) ・・・(3)
もしこの仮定が正しい、すなわちk’j=kjである場合、図9上段に示すようなスパイクが現われる。もしこの仮定が誤り、すなわちk’j≠kjである場合、図9下段に示すようにスパイクが現れない平坦な曲線となる。よって、仮定したk’jから図9上段のような電力差分曲線が得られれば、拡大鍵の部分鍵kjを解読できたことになる。このようなkjの解読を各jについて行えば、最終的に図6における鍵Kの全てを解読することができる。拡大鍵K自身は、48-bitや128-bitの大きなビット長をもつため総当りによる解読が困難であるが、k’j, kjはSbox入力に関連する鍵のビット長であり、高々8-bitであるため、上記の手法による総当り解読は容易である。
この解読を、全ての拡大鍵0,拡大鍵1,…, 拡大鍵Nについて繰り返すことで、秘密鍵を解読することができる。なおAESの場合、アルゴリズムの性質上、拡大鍵の先頭の値がそのまま秘密鍵の値であるため、秘密鍵が128-bitならば拡大鍵0を、秘密鍵が192-bitもしくは256-bitならば拡大鍵0と拡大鍵1を解読すれば、秘密鍵全体を解読することができ、拡大鍵から秘密鍵の解読が容易である事が知られている。
次に、k’j=kjである場合、電力差分曲線DG(k’j)にスパイクが現れる理由について説明する。k’j=kjの場合、(1) 式および (2)式に従いG0(k’j), G1(k’j)の分類を行うことで、zjに関して(4)式が成立する。
(G1に属するzjの平均ハミングウェイト) - (G0に属するzjの平均ハミングウェイト) = 1 ・・・(4)
(G1に属するzjの平均ハミングウェイト) - (G0に属するzjの平均ハミングウェイト) = 1 ・・・(4)
一方、k’j≠kjの場合(4)式は成立せず、ランダムな分類を行うことになるので(5)式が成立する。
(G1に属するzjの平均ハミングウェイト) - (G0に属するzjの平均ハミングウェイト)
= 0 ・・・(5)
ただし、ハミングウェイトとは、ある値をビット値で表現したときにビット値=’1’となる個数のことであり、例えばビット値(1101)2のハミングウェイトは3である。
(G1に属するzjの平均ハミングウェイト) - (G0に属するzjの平均ハミングウェイト)
= 0 ・・・(5)
ただし、ハミングウェイトとは、ある値をビット値で表現したときにビット値=’1’となる個数のことであり、例えばビット値(1101)2のハミングウェイトは3である。
よって、(4)式が成立する場合はG1(k’j)とG0(k’j)の間でのロード値zjの平均ハミングウェイトに差が生じるが、(5)式が成立する場合はG1(k’j)とG0(k’j)の間でのロード値zjの平均ハミングウェイトに差が生じない。
一般的に、消費電力はデータ値のハミングウェイトに比例すると考えられており、このことが正しいことを示した実験結果が非特許文献5などの文献にて示されている。
従って、k’j=kjである場合、(4)式が満たされることで消費電力の差が電力差分曲線上のスパイクという形になって現れるが、(5)式の場合はスパイクが現れず、平坦な曲線となる。
従って、k’j=kjである場合、(4)式が満たされることで消費電力の差が電力差分曲線上のスパイクという形になって現れるが、(5)式の場合はスパイクが現れず、平坦な曲線となる。
以上の説明では、最も簡単な図6の構造に対するDPAに関して述べたが、このような手法は、図10に示すように、拡大鍵の前後に線形変換を挿入しても成立することが判明している。すなわち、図10は、共通鍵暗号の一般的な処理(鍵XOR処理とテーブル変換と線形変換の組み合わせ)のアルゴリズムを示す図である。図10は、図6を一般化した構造であり、鍵XOR処理の前後に2つの線形変換処理L1, L2を入れた処理構造である。例えば、L1は入力をそのまま出力する関数、L2をビット転置置換関数、wjをSC2000のB関数と呼ばれるSboxにすることで、図10はSC2000と等価な構造を表す。なお、SC2000の仕様については、非特許文献6に詳細が開示されている。L2はビット置換関数であるので、wjの入出力に関係するビットのみを取りだした構造を考えることで、図11と同一の処理に変換でき、前述と同様のDPAを用いることで、拡大鍵Kを解読することができる。
以上の手法では、非線形処理中のSbox出力に注目してDPAを適用しているが、そのほかにも、入力mjと鍵kjとのXOR直後の値(鍵XOR処理の出力値)やSboxへの入力値xjの値に注目してDPAを適用する手法が知られている(非特許文献7)。
上記を整理すると、次の条件を満たす場合にDPAにより秘密鍵が推定される。図11は、DPAによる秘密鍵推定が可能な条件の説明図である。
DPA-1.:入力Mが既知かつ制御可能、拡大鍵Kは未知で固定、Sbox wjの変換が既知の場合、図11のAの部分(Sbox wjの出力)の電力消費曲線を測定することでDPA可能。
DPA-2.:入力Mが既知かつ制御可能、拡大鍵Kは未知で固定の場合、図11のBの部分(鍵XOR処理の出力の書き出し)の電力消費曲線を測定することでDPA可能。
DPA-3.:入力Mが既知かつ制御可能、拡大鍵Kは未知で固定の場合、図11のCの部分(Sbox wjを索引するための入力値のロード)の電力消費曲線を測定することでDPA可能。
DPA-1.:入力Mが既知かつ制御可能、拡大鍵Kは未知で固定、Sbox wjの変換が既知の場合、図11のAの部分(Sbox wjの出力)の電力消費曲線を測定することでDPA可能。
DPA-2.:入力Mが既知かつ制御可能、拡大鍵Kは未知で固定の場合、図11のBの部分(鍵XOR処理の出力の書き出し)の電力消費曲線を測定することでDPA可能。
DPA-3.:入力Mが既知かつ制御可能、拡大鍵Kは未知で固定の場合、図11のCの部分(Sbox wjを索引するための入力値のロード)の電力消費曲線を測定することでDPA可能。
<一般的に考えられるDPA対策手法>
一般的に考えられるDPA対策法としては、暗号処理に対策を施し消費電力をランダム化する手法が存在する。この手法の代表的なものとして、masking method と呼ばれている手法が知られている(非特許文献8。以下「一般的に考えられる手法1」と呼ぶ)。DPA対策なしの暗号処理において計算されるデータをMとすると、非特許文献8に記載されているDPA対策は、データMを計算する代わりに、
で表されるデータM’,Rを計算することで暗号処理を行う方法である。ただしRは乱数であり、暗号処理を実行する度に発生させる値である。この方法により、暗号処理のデータをランダムな値でマスクされる。よって、データがランダム化されることで消費電力もランダム化されるため、DPAに安全な処理を実現することができる。この方法の問題点は、M’, Rの両方を計算する必要があるため、対策なしの回路の2倍の回路規模を必要とすることである。
一般的に考えられるDPA対策法としては、暗号処理に対策を施し消費電力をランダム化する手法が存在する。この手法の代表的なものとして、masking method と呼ばれている手法が知られている(非特許文献8。以下「一般的に考えられる手法1」と呼ぶ)。DPA対策なしの暗号処理において計算されるデータをMとすると、非特許文献8に記載されているDPA対策は、データMを計算する代わりに、
で表されるデータM’,Rを計算することで暗号処理を行う方法である。ただしRは乱数であり、暗号処理を実行する度に発生させる値である。この方法により、暗号処理のデータをランダムな値でマスクされる。よって、データがランダム化されることで消費電力もランダム化されるため、DPAに安全な処理を実現することができる。この方法の問題点は、M’, Rの両方を計算する必要があるため、対策なしの回路の2倍の回路規模を必要とすることである。
AESにおける非特許文献8の応用事例として、図12のDPA未対策回路に対し、上記一般的に考えられる手法1を適用したAES回路を図13に示す。この回路においては、図12で計算しているデータMiの代わりに、乱数Riに対して
を満たすMi’とRiの2つのランダムなデータを計算する。暗号化処理ごとに計算されるデータ値がランダムであるため、DPAに対して安全な処理を実現することができる。ただし、データをMi’とRiの両方について計算しなくてはならないため、回路規模が増大する。(図12のおよそ2倍)。図12ではAESのSubbyte処理を、固定データによる静的なSbox変換テーブルS[x] を用いたテーブル参照処理(0≦x≦255)によって行う。Subbyte処理で用いられる変換テーブルS[x]は、Sboxと呼ばれる。これに対して、図13で用いられるSboxのテーブルデータS’[x]は、乱数Rin, Routに応じて
に従ったS’[x]を、x=0,1,...,255それぞれに対して作成する必要がある。
を満たすMi’とRiの2つのランダムなデータを計算する。暗号化処理ごとに計算されるデータ値がランダムであるため、DPAに対して安全な処理を実現することができる。ただし、データをMi’とRiの両方について計算しなくてはならないため、回路規模が増大する。(図12のおよそ2倍)。図12ではAESのSubbyte処理を、固定データによる静的なSbox変換テーブルS[x] を用いたテーブル参照処理(0≦x≦255)によって行う。Subbyte処理で用いられる変換テーブルS[x]は、Sboxと呼ばれる。これに対して、図13で用いられるSboxのテーブルデータS’[x]は、乱数Rin, Routに応じて
に従ったS’[x]を、x=0,1,...,255それぞれに対して作成する必要がある。
このように一般的に考えられる手法1による対策法を、認証チップの共通鍵暗号回路に搭載することで、サイドチャネル攻撃に対する防御を実現できる。しかし、DPA対策無しの回路と比較して、回路規模が大きいという問題が発生する。
そこで、以下の各実施形態は、前述した一般的に考えられる手法1に示されるような専用の対策つき暗号回路を用いる代わりに、暗号より上位層の認証プロトコルへの改良によりサイドチャネル攻撃に安全な処理を実現する。暗号回路そのものは、未対策の回路をそのまま用いるため、前述した一般的に考えられる手法1が有する問題点を回避する。認証プロトコルは、乱数を伴う処理であるため、この乱数を適切に利用することで、サイドチャネル攻撃に対して安全となる方法が考えられる。すなわち、一般的なチャレンジアンドレスポンス認証では、前述した図2〜5に示されるように、固定の秘密鍵Kに対する暗号化処理が行われるが、これはサイドチャネル攻撃に対して脆弱な条件である。この欠点は、乱数を用いて秘密鍵をマスク化することで一見克服できそうであるが、発明者の分析によればこの方法もサイドチャネル攻撃に対して脆弱であることが判明した。
以下、基本概念1、基本概念2に基づく各実施形態について説明する前に、乱数を用いた単純な秘密鍵のランダム化法について説明する。そして、発明者の分析によりその方法が安全でないことを示したうえで、その問題点を克服した各実施形態について説明する。
<単純な秘密鍵のランダム化(失敗事例)>
図14は、単純な鍵のランダム化による認証プロトコルの例1(片側認証、暗号化・復号)の機能ブロック図である。これは、図2をベースとしており、片側認証かつ暗号化・復号の両方を利用する認証プロトコルである。親機101側で生成した乱数rを子機102に送信し(図14のS1401)、子機102はこの乱数rと秘密鍵Kによる暗号化処理を行ことでレスポンスaを生成する(図14のS1402)。このレスポンスa生成の際、
のように、鍵を乱数rでマスクした上で生成する。親機101に送信されたレスポンスは、親機101側で
により復号され、r’がrと一致するか確認する(図14のS1403)。
図14は、単純な鍵のランダム化による認証プロトコルの例1(片側認証、暗号化・復号)の機能ブロック図である。これは、図2をベースとしており、片側認証かつ暗号化・復号の両方を利用する認証プロトコルである。親機101側で生成した乱数rを子機102に送信し(図14のS1401)、子機102はこの乱数rと秘密鍵Kによる暗号化処理を行ことでレスポンスaを生成する(図14のS1402)。このレスポンスa生成の際、
のように、鍵を乱数rでマスクした上で生成する。親機101に送信されたレスポンスは、親機101側で
により復号され、r’がrと一致するか確認する(図14のS1403)。
鍵Kをランダム化することで、サイドチャネル攻撃に一見安全そうであるが、脆弱であると結論付けられる。なぜなら、乱数rは親機101と子機102の間で共有するために送信される値であり、外部から容易に観察可能であるため、この観察された値を用いて、前述した(1)式および(2)式に示される部分鍵kj’を、攻撃者が推定した部分鍵に乱数rをXORされた値に置き換えることで、通常のサイドチャネル攻撃と同じ手順で鍵を解読できるからである。
同じ問題は、図14をさらに拡張した図15で発生する。図15は、単純な鍵のランダム化による認証プロトコルの例2(片側認証、暗号化・復号)の機能ブロック図である。この図15は、鍵をXORマスクする乱数r(図15のS1501)が外部から観察可能であるため脆弱であった図14の問題を解消するために、鍵をマスクする乱数の作成方法を変更し、rの代わりに
を生成し、このmrを用いて秘密鍵Kをマスク化することでレスポンス
を生成する(図15のS1502、S1503)。mrが外部から観察できない値であるので、レスポンス生成がサイドチャネル攻撃に対して安全そうに見えるが、レスポンス生成の前段階の処理であり、mrを生成するときの処理の消費電力を測定することで、図14と同様の手法により秘密鍵Kを解読することができる。
を生成し、このmrを用いて秘密鍵Kをマスク化することでレスポンス
を生成する(図15のS1502、S1503)。mrが外部から観察できない値であるので、レスポンス生成がサイドチャネル攻撃に対して安全そうに見えるが、レスポンス生成の前段階の処理であり、mrを生成するときの処理の消費電力を測定することで、図14と同様の手法により秘密鍵Kを解読することができる。
図14、図15の事例に示されるように、乱数を用いて鍵を単純にランダム化する手法だけでは、サイドチャネル攻撃に対して安全な認証プロトコルを実現することができない。以下の各実施形態はこの問題を解決し、対策つきの専用回路を用いなくともサイドチャネル攻撃に対して安全な認証プロトコルを実現する方式を示す。各実施形態について説明する前に、なぜ乱数を用いて鍵を単純にランダム化する手法だけでは安全でないかの理由を説明する。
図16に、AES暗号回路を事例として、サイドチャネル攻撃が成功する要因の図を示す。128-bitの拡大鍵Kが、128-bit平文とXORされた後、8-bitごとに16分割され、それぞれのデータがSboxに入力される。攻撃者は、それぞれのSboxの消費電力データを利用することで、8-bitごとに分割された拡大鍵K=k15||…||k0に対し、8-bit部分鍵kjそれぞれの総当りを前述の(1)式および(2)式に従い実行する。つまり、128-bitの鍵の総当りには本来2128の手間が必要であるのに対し、サイドチャネル攻撃を用いることで28の手間を16回28×16=212に減らすことができる。すなわち、サイドチャネル攻撃に必要な手間は、Sboxの入力に関連した部分鍵のビット長によって決定する。このビット長は共通鍵暗号方式によって変動するが、既に説明したとおりAESの8-bitが最大である。つまりSbox入力の部分鍵ビット長が最も長いAESに対しても図16の考えに基づいた攻撃が成功するならば、その他の共通鍵暗号ではさらに容易に成功することになる。これは、図17に示すように、チャレンジアンドレスポンスの乱数で鍵をマスク化した場合でも同じである。鍵をマスク化した乱数が外部から観察可能であるので、乱数による鍵のマスク化の有無に関係なく、Sboxの入力に関連する部分鍵のビット長の総当りにより、鍵を解読することができる。
<実施形態の基本概念>
以上説明したように、チャレンジアンドレスポンスで用いる乱数をそのまま秘密鍵のマスクに用いても、サイドチャネル攻撃に対して安全な処理を実現することができない。この問題を克服するために、以下の各実施形態では、単純な秘密鍵のランダム化を行う代わりに、以下の3段階の手順を実行する。
(手順-1) 秘密鍵を複数個準備し
(手順-2) 乱数を用いて1つの鍵に圧縮し
(手順-3) (発明手法-2)で圧縮された鍵を、従来の認証プロトコルで用いられる秘密鍵Kの代わりに使用
以上説明したように、チャレンジアンドレスポンスで用いる乱数をそのまま秘密鍵のマスクに用いても、サイドチャネル攻撃に対して安全な処理を実現することができない。この問題を克服するために、以下の各実施形態では、単純な秘密鍵のランダム化を行う代わりに、以下の3段階の手順を実行する。
(手順-1) 秘密鍵を複数個準備し
(手順-2) 乱数を用いて1つの鍵に圧縮し
(手順-3) (発明手法-2)で圧縮された鍵を、従来の認証プロトコルで用いられる秘密鍵Kの代わりに使用
単純なランダム化を実行する代わりに、(手順-2)に示されるようなランダムな鍵圧縮を実行することで、サイドチャネル攻撃に対する安全性と、小規模・高速な暗号処理を両立することができる(基本概念1)。
さらに、(手順-2)に示す乱数は、認証を行う側(片側認証における親機101側)で生成した乱数のみならず、認証される側(片側認証における子機102側)で生成した乱数を利用することで、さらに安全性を高めることができる(基本概念2)。基本概念1、基本概念2に共通する基本アイデアを図18に示す。
さらに、(手順-2)に示す乱数は、認証を行う側(片側認証における親機101側)で生成した乱数のみならず、認証される側(片側認証における子機102側)で生成した乱数を利用することで、さらに安全性を高めることができる(基本概念2)。基本概念1、基本概念2に共通する基本アイデアを図18に示す。
図18に示される通り、この基本アイデアでは、鍵を複数個(n個)準備し、それらを乱数を用いて1つに圧縮する。以下、乱数を用いて鍵を圧縮する処理をランダムな鍵圧縮と呼び、圧縮された鍵を圧縮鍵と呼ぶ。このアイデアは、チャレンジアンドレスポンス認証で用いる乱数は外部から観察されることは不回避であるという前提に基づくものであり、乱数が観察されたとしても、サイドチャネル攻撃における攻撃者の手間を増やすことが狙いである。ランダムな鍵圧縮は、以下の2条件を満たすものとする。
(cond-1) n個の鍵と乱数の値が分かれば、圧縮鍵の値も分かる
(cond-2) 乱数とn個の鍵が全て分からない限り、圧縮鍵の値は分からない。
(cond-1) n個の鍵と乱数の値が分かれば、圧縮鍵の値も分かる
(cond-2) 乱数とn個の鍵が全て分からない限り、圧縮鍵の値は分からない。
サイドチャネル攻撃においては、Sboxの入力する部分鍵のビット値が全て確定しないと、前述した(1)式および(2)式に示す攻撃を実施することはできない。この部分鍵は、図18の圧縮鍵に相当する値である。しかし、上記の (cond-1)(cond-2)により、全ての圧縮鍵のビット値を確定するためには、乱数が外部に観察されたとしても、n個の部分鍵全ての値がわからない限り不可能となる。つまり、サイドチャネル攻撃を成功させるためには、一般的には一つの部分鍵に関する総当りを実施すればよかったのに対し、ランダムな鍵圧縮を用いることで、n個の部分鍵全てに関する総当りを実施する必要がある。例えばAESの場合、一般的に考えられる手法ならば28の手間で解読できたのに対し、ランダムな鍵圧縮を用いることで(28)nの手間となる。例えばn=8の場合264の手間となる。サイドチャネル攻撃における264は、現実的に不可能な計算量であるため、安全となる。
基本概念1は、ランダム鍵圧縮に用いる乱数として、チャレンジアンドレスポンスに用いる乱数をそのまま利用していた。チャレンジアンドレスポンスにおいては、暗号処理により応答を生成する機器と、応答生成に必要な乱数を生成するのは別の機器である。つまり、暗号処理を行う機器とは別の機器により乱数生成が行われる。もし、乱数生成をする側が不正行為を行い、常に変化すべき乱数を固定値として与えた場合、圧縮鍵が常に固定値となるため、攻撃に必要な手間が従来法と同じとなり、サイドチャネル攻撃を防ぐことができない。この攻撃を防ぐためには、応答を生成する側の機器から外部から受け取る乱数rに加えて、応答を生成する側の機器でも別の乱数sを生成し、これら2つの乱数r,sを用いて鍵圧縮を行うことである。これは基本概念2のアイデアであり、概要は図19に示される。
認証機器は、認証プロトコルの通信相手から乱数rを受け取り、さらに自分自身でも乱数sを生成する。鍵圧縮処理はrとsの2つの乱数を用いて行うことで、外部入力乱数rが意図的に固定化された場合でも、内部生成された乱数sがランダムに変化することで、圧縮鍵が固定化されることを防ぎ、サイドチャネル攻撃に対する安全性を実現する。内部生成された乱数sは、外部出力され通信相手の認証機器に送信される。なぜなら、通信相手の機器も同じ圧縮鍵を生成する必要があるためであり、通信相手の機器は、自分自身が送信した乱数rと受け取ったsを元に、同じ圧縮鍵を生成する。
基本概念1,2を、チャレンジアンド認証プロトコルに応用した認証プロトコルに関する第1から第8の実施形態を図20から図27に示す。図20,図21,図22,図23は、それぞれ基本概念1を図2,図3,図4,図5の認証プロトコルに応用したものである。また、図24,図25,図26,図27は、それぞれ基本概念2を図2,図3,図4,図5の認証プロトコルに応用したものである。
図20から図27の全てにおいて、親機101と子機102はn個の鍵K1, K2, …, Knを事前共有するものとする。図20,図21,図22,図23に示す基本概念1を用いた認証プロトコルは、基本的には図2,図3,図4,図5に示す認証プロトコルと同じである。図20,図21,図22,図23において、図2,図3,図4,図5の場合と同じ処理には、同じステップ番号(Sで始まる番号)を付してある。図20,図21,図22,図23が、図2,図3,図4,図5と異なる点は、親機101側で生成した乱数rと、n個の鍵K1, K2, …, Knを用いて、圧縮鍵Kcmpを生成し、この鍵を用いて暗号化処理を行う点である。子機102側では、図20のS2001、図21のS2101、図22のS2201、図23のS2301の各処理である。親機101側では、図20のS2002、図21のS2102、図22のS2202、図23のS2302の各処理である。図20,図21,図22,図23において、これらの鍵圧縮処理は
Kcmp = Compress(K1, K2, …, Kn, r)
と表現されており、圧縮処理を行うCompress関数はさまざまな実装形態が存在する。Compress関数の具体的な構成については、後述する。
Kcmp = Compress(K1, K2, …, Kn, r)
と表現されており、圧縮処理を行うCompress関数はさまざまな実装形態が存在する。Compress関数の具体的な構成については、後述する。
図24,図25,図26,図27に示す基本概念2を用いた認証プロトコルは、基本的には図2,図3,図4,図5に示すプロトコルと同じである。図24,図25,図26,図27において、図2,図3,図4,図5の場合と同じ処理には、同じステップ番号(Sで始まる番号)を付してある。図24,図25,図26,図27が、図2,図3,図4,図5と異なる第一の相違点は、図2,図3では行っていなかった、子機102側の乱数sの生成処理が図24,図25で実行されている点である。図24のS2401、図25のS2501の各処理である。第二の相違点は、親機101側で生成した乱数rと、子機102側で生成した乱数s、およびn個の鍵K1, K2, …, Knを用いて、圧縮鍵Kcmpを生成し、この鍵を用いて暗号化処理を行う点である。子機102側では、図24のS2402、図25のS2502、図26のS2601、図27のS2701の各処理である。親機101側では、図24のS2403、図25のS2503、図26のS2602、図27のS2702の各処理である。図24,図25,図26,図27において、これらの鍵圧縮処理は
Kcmp = Compress_2(K1, K2, …, Kn, r,s)
と表現されており、圧縮処理を行うCompress_2関数はさまざまな実装形態が存在する。Compress_2関数の具体的な構成については、後述する。
Kcmp = Compress_2(K1, K2, …, Kn, r,s)
と表現されており、圧縮処理を行うCompress_2関数はさまざまな実装形態が存在する。Compress_2関数の具体的な構成については、後述する。
<Compress関数の基本構造>
基本概念1の鍵圧縮に用いられるCompress関数の基本構造を図28に示す。n個の鍵K1,...Knがそれぞれu-bitである。n個のu-bit鍵それぞれは、結線を用いたビット分割によりt個のg-bitブロックに分割される。鍵圧縮は、ブロック単位での実行をt回繰り返すことで実行される。すなわち、n個の鍵K1,...Knの1番目のブロックであるn個のg-bit値に対して、圧縮化回路2803で鍵圧縮処理を行った結果のg-bit値が、圧縮鍵Kcmpの1番目のk-bitブロック値となる。同様の処理を2番目からt番目のブロックについて繰り返すことで、圧縮鍵Kcmpの全てのブロック値が決定される。入力値のブロックの選択にはセレクタ(MUX)2801が、出力値のブロックの選択にはデマルチプレクサ(DEMUX)2804が用いられる。
基本概念1の鍵圧縮に用いられるCompress関数の基本構造を図28に示す。n個の鍵K1,...Knがそれぞれu-bitである。n個のu-bit鍵それぞれは、結線を用いたビット分割によりt個のg-bitブロックに分割される。鍵圧縮は、ブロック単位での実行をt回繰り返すことで実行される。すなわち、n個の鍵K1,...Knの1番目のブロックであるn個のg-bit値に対して、圧縮化回路2803で鍵圧縮処理を行った結果のg-bit値が、圧縮鍵Kcmpの1番目のk-bitブロック値となる。同様の処理を2番目からt番目のブロックについて繰り返すことで、圧縮鍵Kcmpの全てのブロック値が決定される。入力値のブロックの選択にはセレクタ(MUX)2801が、出力値のブロックの選択にはデマルチプレクサ(DEMUX)2804が用いられる。
圧縮化回路2803でのそれぞれのブロックの鍵圧縮処理においては、第一の乱数rによりn個のランダム化回路2802でランダム化処理が行われた結果、それぞれh-bitの中間出力値L1, ..., Lnを得る。ランダム化回路2802でのランダム化処理としては、さまざまな演算が適用可能である。回路規模が小さな演算としては、
・乱数と鍵の単純なビット結合 (g<h)
・乱数ビット値に応じた鍵の巡回シフト (g=h)
・乱数ビット値に応じて鍵に対する巡回シフトレジスタ(LFSR)処理の実行 (g=h)
・乱数と鍵のXOR (g==h)
・乱数と鍵のg-bit加算・減算(g==h)
・乱数と鍵のGF(2g)上の乗算(g<h)
が挙げられる。これらの演算を用いることで、乱数と鍵の全てのビットが、演算結果Liの値に対して影響を及ぼす。次に、中間出力値L1,...,Lnに対して、圧縮化回路2803圧縮処理を行うことで、g-bitの圧縮鍵Kcmpを出力する。この圧縮処理は、L1,...,Lnの全てのビットがKcmpに影響を及ぼす関数であれば、様々な演算が適用可能である。回路規模が小さな演算としては、
・全ての値のXOR(ランダム化処理がg==hの場合に限定)
・全ての値のg-bit加算(ランダム化処理がg==hの場合に限定)
・全ての値をXOR後、GF(2g)の剰余演算(ランダム化処理におけるg,hの制限なし)
・全ての値を加算後、GF(2g)の剰余演算(ランダム化処理におけるg,hの制限なし)
・全ての値をビット結合後、GF(2g)の剰余演算(ランダム化処理におけるg,hの制限なし)
が挙げられる。これらの処理を用いることで、L1,...,Lnの全てのビットがKcmpに影響を及ぼす。以上の2段階の処理を経ることで、前述した図18および図19の基本概念1,2の説明で示した(cond-1)(cond-2)が満たされた、ランダム鍵圧縮処理を実現できる。なぜなら、入力から一意に出力が決定されることで、(cond-1)が満たされ、また入力の全てのビットが出力に影響することで、(cond-2)が満たされるからである。
・乱数と鍵の単純なビット結合 (g<h)
・乱数ビット値に応じた鍵の巡回シフト (g=h)
・乱数ビット値に応じて鍵に対する巡回シフトレジスタ(LFSR)処理の実行 (g=h)
・乱数と鍵のXOR (g==h)
・乱数と鍵のg-bit加算・減算(g==h)
・乱数と鍵のGF(2g)上の乗算(g<h)
が挙げられる。これらの演算を用いることで、乱数と鍵の全てのビットが、演算結果Liの値に対して影響を及ぼす。次に、中間出力値L1,...,Lnに対して、圧縮化回路2803圧縮処理を行うことで、g-bitの圧縮鍵Kcmpを出力する。この圧縮処理は、L1,...,Lnの全てのビットがKcmpに影響を及ぼす関数であれば、様々な演算が適用可能である。回路規模が小さな演算としては、
・全ての値のXOR(ランダム化処理がg==hの場合に限定)
・全ての値のg-bit加算(ランダム化処理がg==hの場合に限定)
・全ての値をXOR後、GF(2g)の剰余演算(ランダム化処理におけるg,hの制限なし)
・全ての値を加算後、GF(2g)の剰余演算(ランダム化処理におけるg,hの制限なし)
・全ての値をビット結合後、GF(2g)の剰余演算(ランダム化処理におけるg,hの制限なし)
が挙げられる。これらの処理を用いることで、L1,...,Lnの全てのビットがKcmpに影響を及ぼす。以上の2段階の処理を経ることで、前述した図18および図19の基本概念1,2の説明で示した(cond-1)(cond-2)が満たされた、ランダム鍵圧縮処理を実現できる。なぜなら、入力から一意に出力が決定されることで、(cond-1)が満たされ、また入力の全てのビットが出力に影響することで、(cond-2)が満たされるからである。
基本概念2の鍵圧縮に用いられるCompress_2関数の基本構造を図29に示す。基本的には図28と同じ構造である。図29において、図28の場合と同じ機能を実行する部分には同じ番号を付してある。図29が図28と異なる点は、第一の乱数rと第二の乱数sを入力することと、これらの乱数を乱数合成回路2901により1つの乱数に変換したうえで利用する点である。乱数合成回路2901は、第一の乱数rと第二の乱数sの全てのビット情報が出力に反映されるならば、様々な演算が適用可能である。回路規模が小さな演算としては、
・2つの乱数のXOR
・2つの乱数のq-bit加算・減算
が挙げられる。ただし、qは乱数のビット長である。
・2つの乱数のXOR
・2つの乱数のq-bit加算・減算
が挙げられる。ただし、qは乱数のビット長である。
図28,図29の「ランダム化回路2802」「圧縮回路2803」「乱数合成回路2901」として用いる回路によって、様々な実施例が存在する。具体例については、後述する。
以下に説明する鍵圧縮回路の第1から第8の実施例は、図28、図29の「ランダム化回路2802」「圧縮回路2803」「乱数合成回路2901」として用いる回路に関するものである。
それぞれの実施例で用いられる回路の組み合わせは以下の通りである。
*基本概念1を用いた実施例
・第1の実施例
ランダム化回路2802:乱数ビット値に応じた鍵の巡回シフト
圧縮化回路2803:全ての値のXOR
・第2の実施例
ランダム化回路2802:乱数と鍵の単純なビット結合
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
・第3の実施例
ランダム化回路2802:乱数ビット値に応じて鍵に対するLFSR処理の実行
圧縮回路2803:全ての値のXOR
・第4の実施例
ランダム化回路2802:乱数と鍵のGF(2g)上の乗算 (g<h)
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
*基本概念1を用いた実施例
・第1の実施例
ランダム化回路2802:乱数ビット値に応じた鍵の巡回シフト
圧縮化回路2803:全ての値のXOR
・第2の実施例
ランダム化回路2802:乱数と鍵の単純なビット結合
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
・第3の実施例
ランダム化回路2802:乱数ビット値に応じて鍵に対するLFSR処理の実行
圧縮回路2803:全ての値のXOR
・第4の実施例
ランダム化回路2802:乱数と鍵のGF(2g)上の乗算 (g<h)
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
*基本概念2を用いた実施例
・第5の実施例
ランダム化回路2802:乱数ビット値に応じた鍵の巡回シフト
圧縮化回路2803:全ての値のXOR
乱数合成回路2901:2つの乱数のXOR
・第6の実施例
ランダム化回路2802:乱数と鍵の単純なビット結合
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
乱数合成回路2901:2つの乱数のq-bit加算
・第7の実施例
ランダム化回路2802:乱数ビット値に応じて鍵に対するLFSR処理の実行
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
乱数合成回路2901:2つの乱数のXOR
・第8の実施例
ランダム化回路2802:乱数と鍵のGF(2g)上の乗算 (g<h)
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
乱数合成回路2901:2つの乱数のXOR
・第5の実施例
ランダム化回路2802:乱数ビット値に応じた鍵の巡回シフト
圧縮化回路2803:全ての値のXOR
乱数合成回路2901:2つの乱数のXOR
・第6の実施例
ランダム化回路2802:乱数と鍵の単純なビット結合
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
乱数合成回路2901:2つの乱数のq-bit加算
・第7の実施例
ランダム化回路2802:乱数ビット値に応じて鍵に対するLFSR処理の実行
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
乱数合成回路2901:2つの乱数のXOR
・第8の実施例
ランダム化回路2802:乱数と鍵のGF(2g)上の乗算 (g<h)
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
乱数合成回路2901:2つの乱数のXOR
上記第1から第8の全ての実施例においては、128-bit共通鍵ブロック暗号において128-bit鍵を用いていると仮定する。すなわち、秘密鍵K1,…,Knのそれぞれは128-bitであり、乱数r,sは最大128-bitであるとする。全てのr,sのビットを鍵圧縮に用いる必要はない。
上記第1から第8のいずれの実施例も、必要な追加回路の回路規模を4.8Kgateから8.7Kgate(Kgateは1000ゲートを示す)と小さく抑えることができ、暗号回路規模を2倍以上大きくする一般的に考えられる手法1より優れた効果を発揮する。例えば、下記文献に記されるサイドチャネル攻撃対策なしのAES回路は、17.6Kgateを必要とするため、この回路が2倍化される構成と比較して、第1から第8の実施例は優れた効果を発揮する。
<実施例1>
図30は、鍵圧縮回路の第1の実施例(基本概念1その1)を示す図である。図30において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦4)のそれぞれは、16-bitごとに8分割され、それぞれKi,7,…, Ki,0と表記される。4つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(8-1MUX)2801により、8分割された16-bit部分鍵のいずれかをセレクトする。セレクトされた4つの16-bit部分鍵それぞれに対して、16-bit乱数を4分割した4-bit乱数に基づき、ランダム化回路2802である巡回シフト回路群により、巡回シフト処理が行われる。巡回シフトは16通りであるため、乱数は4-bitで十分である。4つの16-bit巡回シフト回路の出力は、圧縮化回路2803であるXOR(排他論理和回路)にてXORされることで1つの16-bit値を生成する。この16-bit値は、圧縮鍵Kcmpの16-bit部分鍵Kcmp,jである。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,7)の部分鍵を表す。セレクト信号を、8分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(8-1DEMUX)2804にて、j=0,1,…,7全ての圧縮鍵を生成する。
図30は、鍵圧縮回路の第1の実施例(基本概念1その1)を示す図である。図30において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦4)のそれぞれは、16-bitごとに8分割され、それぞれKi,7,…, Ki,0と表記される。4つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(8-1MUX)2801により、8分割された16-bit部分鍵のいずれかをセレクトする。セレクトされた4つの16-bit部分鍵それぞれに対して、16-bit乱数を4分割した4-bit乱数に基づき、ランダム化回路2802である巡回シフト回路群により、巡回シフト処理が行われる。巡回シフトは16通りであるため、乱数は4-bitで十分である。4つの16-bit巡回シフト回路の出力は、圧縮化回路2803であるXOR(排他論理和回路)にてXORされることで1つの16-bit値を生成する。この16-bit値は、圧縮鍵Kcmpの16-bit部分鍵Kcmp,jである。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,7)の部分鍵を表す。セレクト信号を、8分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(8-1DEMUX)2804にて、j=0,1,…,7全ての圧縮鍵を生成する。
圧縮された部分鍵は、4つの16-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(216)4=264の手間が攻撃者にとって必要となるため、安全である。
上述の鍵圧縮回路の第1の実施例の回路規模の見積もりについて、以下に説明する。図31は、鍵圧縮回路の実施例の回路規模見積もり基準の表を示す図である。
図31の表は、1-bitあたりの回路規模(gate/bit)を示したものである。ここでは、回路規模を、2入力NAND(2入力NOR)換算ゲート数として示している。図32および図33は、回路規模の算定基準となるNANDゲートおよびNORゲートの回路規模見積を示す図である。図32および図33のように、2入力NANDゲートおよび2入力NORゲートのいずれも、4つのMOSFET(金属酸化絶縁膜半導体電界効果トランジスタ:Metal-Oxide-Semiconductor Field-Effect Transistor)によって1ゲートが構成されている。
図31の表は、1-bitあたりの回路規模(gate/bit)を示したものである。ここでは、回路規模を、2入力NAND(2入力NOR)換算ゲート数として示している。図32および図33は、回路規模の算定基準となるNANDゲートおよびNORゲートの回路規模見積を示す図である。図32および図33のように、2入力NANDゲートおよび2入力NORゲートのいずれも、4つのMOSFET(金属酸化絶縁膜半導体電界効果トランジスタ:Metal-Oxide-Semiconductor Field-Effect Transistor)によって1ゲートが構成されている。
図34は、NOTゲートの回路規模見積を示す図である。NOTゲートは、図34に示されるように2つのMOSFETから構成されるため、図31に示されるように、ゲート数は0.5ゲートとなる。
図35は、1入力D-フリップフロップによって構成されるレジスタの回路規模見積を示す図である。レジスタは、図35に示されるように、4つのNANDゲート(図32参照)と、1つのNORゲート(図33参照)と、4つのNOTゲート(図34参照)と、それぞれ1ゲートからなる4個のゲート単位とから構成される。このため、図31に示されるように、レジスタのゲート数は、1*4+1*1+0.5*4+1*4=11ゲートとなる(“*”は乗算を示す)。
図36は、2入力XOR(排他論理和回路)の回路規模見積を示す図である。XORは、図36に示されるように、2つのNORゲート(図33参照)と、1つのNANDゲート(図32参照)と、1つのNOTゲート(図34参照)とから構成される。このため、図31に示されるように、XORのゲート数は、1*2+1*1+0.5*1=3.5ゲートとなる。
図37は、2-1セレクタの回路規模見積を示す図である。図37(a)はマルチプレクサ(MUX)、図37(b)はデマルチプレクサ(DEMUX)である。マルチプレクサ(MUX)は、図37(a)に示されるように、3つのNANDゲート(図32参照)と、1つのNOTゲート(図34参照)とから構成される。このため、図31に示されるように、2-1セレクタ(MUX)のゲート数は、1*3+0.5*1=3.5ゲートとなる。また、デマルチプレクサ(DEMUX)は、図37(b)に示されるように、2つのNANDゲート(図32参照)と3つのNOTゲート(図34参照)とから構成される。このため、図31に示されるように、2-1セレクタ(DEMUX)のゲート数はやはり、1*2+0.5*3=3.5ゲートとなる。
図38は、加減算器の回路規模見積を示す図である。加減算器は、図38に示されるように、1つの3入力XORゲート(7gate/3入力XOR)(図36参照)と、4つの3入力NANDゲート(2ゲート/3入力NAND)(図32参照)とから構成される。このため、図31に示されるように、加減算器のゲート数は、7*1+2*4=15ゲートとなる。
図39は、シフト/巡回レジスタの回路規模見積(14.5ゲート)を示す図である。シフト/巡回レジスタは、図39に示されるように、1つのセレクタ(MUX)(図37(a)参照)と、1つのレジスタ(図35参照)とから構成される(図39では3段分が示されている)。このため、図31に示されるように、シフト/巡回レジスタのゲート数は、3.5*1+11*1=14.5ゲートとなる。
図40は、LSFR/剰余演算回路の回路規模見積を示す図である。LSFR/剰余演算回路は、図40に示されるように、1つのセレクタ(MUX)(図37(a)参照)と、1つのレジスタ(図35参照)と、ビット位置に対応して0または1個のXORゲート(図36参照)とから構成される(図40では3段分が示されている)。このため、図31に示されるように、LSFR/剰余演算回路のゲート数は高々、3.5*1+11*1+3.5*1=18ゲートとなる。
また、特には図示しないが、ANDゲートおよびORゲートのゲート数は、図31に示されるように、それぞれ1.5ゲートとなる。
ここで、図31は、1-bitあたりの回路規模を示したものであるため、8-bitレジスタならば11×8=88gate(ゲート)、16-bitシフトレジスタならば14.5×16=232gateと見積もられる。さらに、図31は、2入力1出力(2-1と記される)の演算回路の規模を表すが、これはm入力1出力となった場合(m-1と記される)は、2入力1出力の演算回路の(m-1)倍の回路規模である。例えば、10-bit 2-1 XOR回路は3.5×10=35gateであるが、10-bit 4-1 XOR回路は回路規模が3倍となり3×3.5×10=105gateである。20-bit 4-1加算器の場合、(20×15)×3=900gateとなる。
ここで、図31は、1-bitあたりの回路規模を示したものであるため、8-bitレジスタならば11×8=88gate(ゲート)、16-bitシフトレジスタならば14.5×16=232gateと見積もられる。さらに、図31は、2入力1出力(2-1と記される)の演算回路の規模を表すが、これはm入力1出力となった場合(m-1と記される)は、2入力1出力の演算回路の(m-1)倍の回路規模である。例えば、10-bit 2-1 XOR回路は3.5×10=35gateであるが、10-bit 4-1 XOR回路は回路規模が3倍となり3×3.5×10=105gateである。20-bit 4-1加算器の場合、(20×15)×3=900gateとなる。
図41は、図31に示される見積もり基準に基づいて計算される、図30に示される鍵圧縮回路の第1の実施例(基本概念1その1)の回路規模の見積表を示す図である。ただし、図30において、Kcmpを出力するレジスタは、暗号回路のレジスタと共用するため、評価に含まれない。図41に示されるように、図30において、鍵レジスタ部分が5.6Kgate、セレクタ(8-1MUX)2801の部分が1.6Kgate、ランダム化回路2802である巡回シフトレジスタ部分が0.93Kgateである。さらに、図30において、圧縮化回路2803である4-1XORの部分が0.1Kgate、デマルチプレクサ(8-1DEMUX)2804の部分が0.4Kgateである。この結果、図30の鍵圧縮回路全体の回路規模は、8.6Kgateとなり、従来の半分程度の回路規模で実現できることがわかる。
<実施例2>
図42は、鍵圧縮回路の第2の実施例(基本概念1その2)を示す図である。図42において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦2)のそれぞれは、32-bitごとに4分割され、それぞれKi,3,…, Ki,0と表記される。2つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(4-1MUX)2801が、4分割された32-bit部分鍵のいずれかをセレクトする。次に、ランダム化回路2802において、セレクトされた2つの32-bit部分鍵それぞれに対して、32-bit乱数を2分割した16-bit乱数がビット結合される。さらに、圧縮化回路2803の構成として、ランダム化回路2802でのビット結合結果の2つの48-bit値がXORされ、このXOR結果に対してGF(232)の剰余演算(GF(232)の剰余回路)が実行される。GF(232)の剰余演算は、例えばCRC符号で用いられる多項式、
x32+x28+x27+x26+x25+x23+x22+x20+x19+x18+x14+x13+x11+x10+x9+x8+x6+1
による剰余演算が適切である。剰余演算の結果の32-bitは、圧縮鍵Kcmpの32-bit部分鍵Kcmp,jである。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,3)の部分鍵を表す。セレクト信号を、4分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(4-1DEMUX)2804が、j=0,1,…,3全ての圧縮鍵を生成する。
図42は、鍵圧縮回路の第2の実施例(基本概念1その2)を示す図である。図42において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦2)のそれぞれは、32-bitごとに4分割され、それぞれKi,3,…, Ki,0と表記される。2つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(4-1MUX)2801が、4分割された32-bit部分鍵のいずれかをセレクトする。次に、ランダム化回路2802において、セレクトされた2つの32-bit部分鍵それぞれに対して、32-bit乱数を2分割した16-bit乱数がビット結合される。さらに、圧縮化回路2803の構成として、ランダム化回路2802でのビット結合結果の2つの48-bit値がXORされ、このXOR結果に対してGF(232)の剰余演算(GF(232)の剰余回路)が実行される。GF(232)の剰余演算は、例えばCRC符号で用いられる多項式、
x32+x28+x27+x26+x25+x23+x22+x20+x19+x18+x14+x13+x11+x10+x9+x8+x6+1
による剰余演算が適切である。剰余演算の結果の32-bitは、圧縮鍵Kcmpの32-bit部分鍵Kcmp,jである。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,3)の部分鍵を表す。セレクト信号を、4分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(4-1DEMUX)2804が、j=0,1,…,3全ての圧縮鍵を生成する。
圧縮された部分鍵は、2つの32-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(232)2=264の手間が攻撃者にとって必要となるため、安全である。
図43は、図31に示される見積もり基準に基づいて計算される、図42に示される鍵圧縮回路の第2の実施例(基本概念1その2)の回路規模の見積表を示す図である。ただし、Kcmpを出力するレジスタは、暗号回路のレジスタと共用するため、評価に含まれない。図43に示されるように、図42において、鍵レジスタ部分が2.8Kgate、セレクタ(4-1MUX)2801の部分が0.67Kgate、圧縮化回路2803の一部である2-1XORの部分が0.12Kgateである。さらに、圧縮化回路2803の一部であるGF(232)剰余回路の部分が0.86Kgate、デマルチプレクサ(4-1DEMUX)2804の部分が0.34Kgateである。この結果、図42の鍵圧縮回路全体の回路規模は、4.8Kgateとなり、従来の半分程度の回路規模で実現できることがわかる。
<実施例3>
図43は、鍵圧縮回路の第3の実施例(基本概念1その3)を示す図である。図43において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦2)のそれぞれは、32-bitごとに4分割され、それぞれKi,3,…, Ki,0と表記される。2つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(4-1MUX)2801が、4分割された32-bit部分鍵のいずれかをセレクトする。次に、ランダム化回路2802である32-bitLFSR(Linear Feedback Shift Register)が、セレクトされた2つの32-bit部分鍵それぞれに対して、16-bit乱数を2分割した8-bit乱数ビット値で与えられるシフト量に従ったLFSR処理を実行する。LFSR処理で用いられる多項式は様々なものが知られているが、例えば、
x32+x7+x5+x3+x2+x+1
が利用可能である。次に、圧縮化回路2803であるXOR(排他論理和回路)にて、2つのLFSR処理結果をXORすることで、圧縮鍵Kcmpの32-bit部分鍵Kcmp,jを得る。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,3)の部分鍵を表す。セレクト信号を、4分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(4-1DEMUX)2804にて、j=0,1,…,3全ての圧縮鍵を生成する。
図43は、鍵圧縮回路の第3の実施例(基本概念1その3)を示す図である。図43において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦2)のそれぞれは、32-bitごとに4分割され、それぞれKi,3,…, Ki,0と表記される。2つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(4-1MUX)2801が、4分割された32-bit部分鍵のいずれかをセレクトする。次に、ランダム化回路2802である32-bitLFSR(Linear Feedback Shift Register)が、セレクトされた2つの32-bit部分鍵それぞれに対して、16-bit乱数を2分割した8-bit乱数ビット値で与えられるシフト量に従ったLFSR処理を実行する。LFSR処理で用いられる多項式は様々なものが知られているが、例えば、
x32+x7+x5+x3+x2+x+1
が利用可能である。次に、圧縮化回路2803であるXOR(排他論理和回路)にて、2つのLFSR処理結果をXORすることで、圧縮鍵Kcmpの32-bit部分鍵Kcmp,jを得る。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,3)の部分鍵を表す。セレクト信号を、4分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(4-1DEMUX)2804にて、j=0,1,…,3全ての圧縮鍵を生成する。
圧縮された部分鍵は、2つの32-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(232)2=264の手間が攻撃者にとって必要となるため、安全である。
図45は、図31に示される見積もり基準に基づいて計算される、図44に示される鍵圧縮回路の第3の実施例(基本概念1その3)の回路規模の見積表を示す図である。。ただし、Kcmpを出力するレジスタは、暗号回路のレジスタと共用するため、評価に含まれない。図45に示されるように、図44において、鍵レジスタ部分が2.8Kgate、セレクタ(4-1MUX)2801の部分が0.67Kgate、ランダム化回路2802であるLFSRの部分が1.15Kgateである。さらに、圧縮化回路2803である2-1XORの部分が0.1Kgate、デマルチプレクサ(4-1DEMUX)2804の部分が0.34Kgateである。この結果、図44の鍵圧縮回路全体の回路規模は、5.0Kgateとなり、従来の半分程度の回路規模で実現できることがわかる。
<実施例4>
図46は、鍵圧縮回路の第4の実施例(基本概念1その4)を示す図である。図46において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦2)のそれぞれは、32-bitごとに4分割され、それぞれKi,3,…, Ki,0と表記される。2つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(4-1MUX)2801が、4分割された32-bit部分鍵のいずれかをセレクトする。次に、ランダム化回路2802において、セレクトされた2つの32-bit部分鍵それぞれに対して、64-bit乱数を2分割した32-bit乱数ビット値同士の多項式乗算を行い、2つの64-bit値を生成する。多項式乗算を
と記した場合、多項式乗算は、乗数aを格納するシフトレジスタ1個と、被乗数bを格納するレジスタ1個と、32-bitXOR回路1個により実現できる。さらに、圧縮化回路2803の構成として、ランダム化回路2802での乗算の結果の2つの64-bitがXOR演算される。このXOR結果に対してGF(232)の剰余演算(GF(232)の剰余回路)が実行される。GF(232)の剰余演算は、例えばCRC符号で用いられる多項式、
x32+x28+x27+x26+x25+x23+x22+x20+x19+x18+x14+x13+x11+x10+x9+x8+x6+1
による剰余演算が適切である。剰余結果の32-bit値により、圧縮鍵Kcmpの32-bit部分鍵Kcmp,jを得る。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,3)の部分鍵を表す。セレクト信号を、4分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(4-1DEMUX)2804が、j=0,1,…,3全ての圧縮鍵を生成する。
図46は、鍵圧縮回路の第4の実施例(基本概念1その4)を示す図である。図46において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦2)のそれぞれは、32-bitごとに4分割され、それぞれKi,3,…, Ki,0と表記される。2つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(4-1MUX)2801が、4分割された32-bit部分鍵のいずれかをセレクトする。次に、ランダム化回路2802において、セレクトされた2つの32-bit部分鍵それぞれに対して、64-bit乱数を2分割した32-bit乱数ビット値同士の多項式乗算を行い、2つの64-bit値を生成する。多項式乗算を
と記した場合、多項式乗算は、乗数aを格納するシフトレジスタ1個と、被乗数bを格納するレジスタ1個と、32-bitXOR回路1個により実現できる。さらに、圧縮化回路2803の構成として、ランダム化回路2802での乗算の結果の2つの64-bitがXOR演算される。このXOR結果に対してGF(232)の剰余演算(GF(232)の剰余回路)が実行される。GF(232)の剰余演算は、例えばCRC符号で用いられる多項式、
x32+x28+x27+x26+x25+x23+x22+x20+x19+x18+x14+x13+x11+x10+x9+x8+x6+1
による剰余演算が適切である。剰余結果の32-bit値により、圧縮鍵Kcmpの32-bit部分鍵Kcmp,jを得る。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,3)の部分鍵を表す。セレクト信号を、4分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(4-1DEMUX)2804が、j=0,1,…,3全ての圧縮鍵を生成する。
圧縮された部分鍵は、2つの32-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(232)2=264の手間が攻撃者にとって必要となるため、安全である。
図47は、図31に示される見積もり基準に基づいて計算される、図46に示される鍵圧縮回路の第4の実施例(基本概念1その4)の回路規模の見積表を示す図である。ただし、Kcmpを出力するレジスタは、暗号回路のレジスタと共用するため、評価に含まれない。図47に示されるように、図46において、鍵レジスタ部分が2.8Kgate、セレクタ(4-1MUX)2801の部分が0.67Kgate、ランダム化回路2802である多項式乗算器の一部を構成するシフトレジスタの部分が0.93Kgateである。同じく上記多項式乗算器の一部を構成するレジスタの部分が0.7Kgate、同じく上記多項式乗算器の一部を構成する2-1XORの部分が0.2Kgateである。また、圧縮化回路2803の一部である2-1XORの部分が0.12Kgateであり、圧縮化回路2803の一部であるGF(232)剰余回路の部分が1.15Kgate、デマルチプレクサ(4-1DEMUX)2804の部分が0.34Kgateである。この結果、図46の鍵圧縮回路全体の回路規模は、7.0Kgateとなり、従来の半分程度の回路規模で実現できることがわかる。
<実施例5>
図48は、鍵圧縮回路の第5の実施例(基本概念2その1)を示す図である。図48において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。図48の構成は、基本的には図30の第1の実施例の場合と同じであるが、2つの16-bit乱数r,sを乱数合成回路2901であるXORにより合成した結果の16-bit値を、ランダム化圧縮の乱数として用いるところが異なる。
図48は、鍵圧縮回路の第5の実施例(基本概念2その1)を示す図である。図48において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。図48の構成は、基本的には図30の第1の実施例の場合と同じであるが、2つの16-bit乱数r,sを乱数合成回路2901であるXORにより合成した結果の16-bit値を、ランダム化圧縮の乱数として用いるところが異なる。
圧縮された部分鍵は、4つの16-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(216)4=264の手間が攻撃者にとって必要となるため、安全である。
図49は、図31に示される見積もり基準に基づいて計算される、図48に示される鍵圧縮回路の第5の実施例(基本概念2その1)の回路規模の見積表を示す図である。乱数圧縮回路2901の分だけゲート数が増加しているほかは、図41に示される実施例1の場合と同じである。
<実施例6>
図50は、鍵圧縮回路の第6の実施例(基本概念2その2)を示す図である。図50において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。2つの乱数の合成に乱数合成回路2901である加算器2901による加算を用いるほかは、図42に示される第2の実施例の場合と同じである。
図50は、鍵圧縮回路の第6の実施例(基本概念2その2)を示す図である。図50において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。2つの乱数の合成に乱数合成回路2901である加算器2901による加算を用いるほかは、図42に示される第2の実施例の場合と同じである。
圧縮された部分鍵は、2つの32-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(232)2=264の手間が攻撃者にとって必要となるため、安全である。
図51は、図31に示される見積もり基準に基づいて計算される、図50に示される鍵圧縮回路の第6の実施例(基本概念2その2)の回路規模の見積表を示す図である。乱数圧縮回路2901の分だけゲート数が増加しているほかは、図43に示される実施例2の場合と同じである。
<実施例7>
図52は、鍵圧縮回路の第7の実施例(基本概念2その3)を示す図である。図52において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。2つの乱数の合成に乱数合成回路2901であるXORを用いるほかは、図44に示される第3の実施例の場合と同じである。
図52は、鍵圧縮回路の第7の実施例(基本概念2その3)を示す図である。図52において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。2つの乱数の合成に乱数合成回路2901であるXORを用いるほかは、図44に示される第3の実施例の場合と同じである。
圧縮された部分鍵は、2つの32-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(232)2=264の手間が攻撃者にとって必要となるため、安全である。
図53は、図31に示される見積もり基準に基づいて計算される、図52に示される鍵圧縮回路の第7の実施例(基本概念2その3)の回路規模の見積表を示す図である。乱数圧縮回路2901の分だけ増加しているほかは、図45に示される第3の実施例の場合と同じである。
<実施例8>
図54は、鍵圧縮回路の第8の実施例(基本概念2その4)を示す図である。図54において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。2つの乱数の合成に乱数合成回路2901であるXORを用いるほかは、図46に示される第4の実施例の場合と同じである。
図54は、鍵圧縮回路の第8の実施例(基本概念2その4)を示す図である。図54において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。2つの乱数の合成に乱数合成回路2901であるXORを用いるほかは、図46に示される第4の実施例の場合と同じである。
圧縮された部分鍵は、2つの32-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(232)2=264の手間が攻撃者にとって必要となるため、安全である。
図55は、図31に示される見積もり基準に基づいて計算される、図54に示される鍵圧縮回路の第8の実施例(基本概念2その4)の回路規模の見積表を示す図である。乱数圧縮回路2901の分だけ増加しているほかは、図47に示される第4の実施例の場合と同じである。
以上説明したように、各実施形態を用いることで、一般的に考えられる手法1のように、回路を2倍化することなく、小さい回路規模増ながらも、サイドチャネル攻撃に安全な暗号処理および認証処理を実現することが可能となる。
なお、上述の基本概念1,2に基づく処理は、認証処理のみならず、暗号処理一般にも適用することが可能である。
なお、上述の基本概念1,2に基づく処理は、認証処理のみならず、暗号処理一般にも適用することが可能である。
図56は、上記システムをソフトウェア処理として実現できるコンピュータのハードウェア構成の一例を示す図である。
図56に示されるコンピュータは、CPU5601、メモリ5602、入力装置5603、出力装置5604、外部記憶装置5605、可搬記録媒体5609が挿入される可搬記録媒体駆動装置5606、及び通信インタフェース5607を有し、これらがバス5608によって相互に接続された構成を有する。同図に示される構成は上記システムを実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
CPU5601は、当該コンピュータ全体の制御を行う。メモリ5602は、プログラムの実行、データ更新等の際に、外部記憶装置5605(或いは可搬記録媒体5609)に記憶されているプログラム又はデータを一時的に格納するRAM等のメモリである。CUP5601は、プログラムをメモリ5602に読み出して実行することにより、全体の制御を行う。
入出力装置5603は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をCPU5601に通知し、CPU5601の制御によって送られてくるデータを表示装置や印刷装置に出力する。
外部記憶装置5605は、例えばハードディスク記憶装置である。主に各種データやプログラムの保存に用いられる。
可搬記録媒体駆動装置5606は、光ディスクやSDRAM、コンパクトフラッシュ(登録商標)等の可搬記録媒体5609を収容するもので、外部記憶装置5605の補助の役割を有する。
可搬記録媒体駆動装置5606は、光ディスクやSDRAM、コンパクトフラッシュ(登録商標)等の可搬記録媒体5609を収容するもので、外部記憶装置5605の補助の役割を有する。
通信インターフェース5607は、例えばLAN(ローカルエリアネットワーク)又はWAN(ワイドエリアネットワーク)の通信回線を接続するための装置である。
上述した第1〜第8の実施形態によるシステムは、それらの機能を搭載したプログラムをCPU5601が実行することで実現される。そのプログラムは、例えば外部記憶装置5605や可搬記録媒体5609に記録して配布してもよく、或いはネットワーク接続装置5607によりネットワークから取得できるようにしてもよい。
上述した第1〜第8の実施形態によるシステムは、それらの機能を搭載したプログラムをCPU5601が実行することで実現される。そのプログラムは、例えば外部記憶装置5605や可搬記録媒体5609に記録して配布してもよく、或いはネットワーク接続装置5607によりネットワークから取得できるようにしてもよい。
以上のようにして実行されるプログラムにより、小さい処理量増ながらも、サイドチャネル攻撃に安全な暗号処理および認証処理を実現することが可能となる。
Claims (10)
- それぞれK1, K2, …, Knビットからなるn個の鍵を乱数によりランダム化するランダム化回路と、
前記ランダム化されたn個の鍵から1つの鍵を生成することにより圧縮して得られる圧縮鍵を出力する圧縮化回路と、
前記圧縮鍵を用いて入力データを暗号化する暗号化回路と、
を含むことを特徴とする暗号処理装置。 - 第一の乱数と第二の乱数を入力し合成し前記乱数として出力する乱数合成回路を更に含む、
ことを特徴とする請求項1に記載の暗号処理装置。 - それぞれK1, K2, …, Knビットからなるn個の鍵を乱数によりランダム化し、
前記ランダム化されたn個の鍵から1つの鍵を生成することにより、圧縮して得られる圧縮鍵を生成し、
前記圧縮鍵を用いて認証する、
ことを特徴とする認証方法。 - 第一の乱数と第二の乱数を入力し合成し前記乱数として出力する、
ことを特徴とする請求項3に記載の暗号処理方法。 - 親機に相当する第1のコンピュータと子機に相当する第2のコンピュータとで前記n個の鍵として秘密鍵Kを共有し、
前記第1のコンピュータにて、乱数rを生成し、
前記第1のコンピュータから前記第2のコンピュータに前記乱数rを送信し、
前記第2のコンピュータにて、前記n個の秘密鍵Kと前記第1のコンピュータから受信した前記乱数rとから前記圧縮鍵の生成に従って圧縮鍵Kcmpを生成し、
前記第2のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第1のコンピュータから受信した前記乱数rを暗号化することで暗号化された乱数aを生成して前記第1のコンピュータに送信し、
前記第1のコンピュータにて、前記n個の秘密鍵Kと前記乱数rとから前記圧縮鍵の生成に従って前記圧縮鍵Kcmpを生成し、
前記第1のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第2のコンピュータの認証を行う、
ことを特徴とする請求項3または4のいずれか記載の認証方法。 - 親機に相当する第1のコンピュータと子機に相当する第2のコンピュータとで前記n個の鍵としてn個の秘密鍵Kを共有し、
前記第1のコンピュータにて、第1の乱数rを生成し、
前記第1のコンピュータから前記第2のコンピュータに前記第1の乱数rを送信し、
前記第2のコンピュータにて、第2の乱数sを生成し、
前記第2のコンピュータにて、前記n個の秘密鍵Kと前記第1のコンピュータから受信した前記第1の乱数rとから前記圧縮鍵の生成に従って圧縮鍵Kcmpを生成し、
前記第2のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第1のコンピュータから受信した前記第1の乱数rを暗号化することで第1の暗号化された乱数aを生成して前記第2の乱数sとともに前記第1のコンピュータに送信し、
前記第1のコンピュータにて、前記n個の秘密鍵Kと前記第1の乱数rとから前記圧縮鍵の生成に従って前記圧縮鍵Kcmpを生成し、
前記第1のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第2のコンピュータの認証を行い、
前記第1のコンピュータにて、前記認証に成功した場合に、前記圧縮鍵Kcmpを用いて前記第2のコンピュータから受信した前記第2の乱数sを暗号化することで第2の暗号化された乱数bを生成して前記第2のコンピュータに送信し、
前記第2のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第1のコンピュータの認証を行う、
ことを特徴とする請求項3または4のいずれか記載の認証方法。 - 親機に相当する第1のコンピュータと子機に相当する第2のコンピュータとで前記n個の鍵としてn個の秘密鍵Kを共有し、
前記第1のコンピュータにて、第1の乱数rを生成し、
前記第1のコンピュータから前記第2のコンピュータに前記第1の乱数rを送信し、
前記第2のコンピュータにて、第2の乱数sを生成し、
前記第2のコンピュータにて、前記n個の秘密鍵Kと前記第1のコンピュータから受信した前記第1の乱数rと前記第2の乱数sとから前記圧縮鍵の生成に従って圧縮鍵Kcmpを生成し、
前記第2のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第1のコンピュータから受信した前記第1の乱数rを暗号化することで暗号化された乱数aを生成して前記第2の乱数sとともに前記第1のコンピュータに送信し、
前記第1のコンピュータにて、前記n個の秘密鍵Kと前記乱数rと前記第2のコンピュータから受信した乱数sとから前記圧縮鍵の生成に従って前記圧縮鍵Kcmpを生成し、
前記第1のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第2のコンピュータの認証を行う、
ことを特徴とする請求項3または4のいずれか記載の認証方法。 - 親機に相当する第1のコンピュータと子機に相当する第2のコンピュータとで前記n個の鍵としてn個の秘密鍵Kを共有し、
前記第1のコンピュータにて、第1の乱数rを生成し、
前記第1のコンピュータから前記第2のコンピュータに前記第1の乱数rを送信し、
前記第2のコンピュータにて、第2の乱数sを生成し、
前記第2のコンピュータにて、前記n個の秘密鍵Kと前記第1のコンピュータから受信した前記第1の乱数rと前記第2の乱数sとから前記圧縮鍵の生成に従って圧縮鍵Kcmpを生成し、
前記第2のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第1のコンピュータから受信した前記第1の乱数rを暗号化することで第1の暗号化された乱数aを生成して前記第2の乱数sとともに前記第1のコンピュータに送信し、
前記第1のコンピュータにて、前記n個の秘密鍵Kと前記第1の乱数rと前記第2のコンピュータから受信した前記第2の乱数sとから前記圧縮鍵の生成に従って前記圧縮鍵Kcmpを生成し、
前記第1のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第2のコンピュータの認証を行い、
前記第1のコンピュータにて、前記認証に成功した場合に、前記圧縮鍵Kcmpを用いて前記第2のコンピュータから受信した前記第2の乱数sを暗号化することで第2の暗号化された乱数bを生成して前記第2のコンピュータに送信し、
前記第2のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第1のコンピュータの認証を行う、
ことを特徴とする請求項3または4のいずれか記載の認証方法。 - コンピュータに、
複数個の鍵のそれぞれを乱数によりランダム化し、
前記ランダム化された複数個の鍵を圧縮して得られる圧縮鍵を暗号処理のための鍵として出力する、
処理を実行させるためのプログラム。 - コンピュータに、
第一の乱数と第二の乱数を入力し合成し前記乱数として出力する、
処理を実行させるための請求項9に記載のプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/057917 WO2012131926A1 (ja) | 2011-03-29 | 2011-03-29 | 暗号処理装置、認証方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5556955B2 true JP5556955B2 (ja) | 2014-07-23 |
JPWO2012131926A1 JPWO2012131926A1 (ja) | 2014-07-24 |
Family
ID=46929752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013506933A Expired - Fee Related JP5556955B2 (ja) | 2011-03-29 | 2011-03-29 | 暗号処理装置、認証方法およびプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5556955B2 (ja) |
WO (1) | WO2012131926A1 (ja) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11500849A (ja) * | 1995-11-27 | 1999-01-19 | ベル コミュニケーションズ リサーチ,インコーポレイテッド | 改良した疑似乱数発生器 |
JP2002215030A (ja) * | 2001-01-17 | 2002-07-31 | Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd | 乱数発生方法 |
JP2007142820A (ja) * | 2005-11-18 | 2007-06-07 | Felica Networks Inc | 携帯端末,データ通信方法,およびコンピュータプログラム |
JP2007173999A (ja) * | 2005-12-19 | 2007-07-05 | Sony Computer Entertainment Inc | 認証システム及び認証対象装置 |
WO2008001918A1 (fr) * | 2006-06-30 | 2008-01-03 | Kiyoto Yui | Dispositif de production de nombres aléatoires, dispositif de chiffrement/déchiffrement utilisant un tel dispositif, programme et support d'enregistrement de programme |
JP2008131108A (ja) * | 2006-11-16 | 2008-06-05 | Fujitsu Ltd | 共通鍵暗号のための暗号化装置 |
JP2008233683A (ja) * | 2007-03-22 | 2008-10-02 | Toshiba Corp | 暗号処理装置及びプログラム |
WO2009122464A1 (ja) * | 2008-03-31 | 2009-10-08 | 富士通株式会社 | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 |
-
2011
- 2011-03-29 JP JP2013506933A patent/JP5556955B2/ja not_active Expired - Fee Related
- 2011-03-29 WO PCT/JP2011/057917 patent/WO2012131926A1/ja active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11500849A (ja) * | 1995-11-27 | 1999-01-19 | ベル コミュニケーションズ リサーチ,インコーポレイテッド | 改良した疑似乱数発生器 |
JP2002215030A (ja) * | 2001-01-17 | 2002-07-31 | Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd | 乱数発生方法 |
JP2007142820A (ja) * | 2005-11-18 | 2007-06-07 | Felica Networks Inc | 携帯端末,データ通信方法,およびコンピュータプログラム |
JP2007173999A (ja) * | 2005-12-19 | 2007-07-05 | Sony Computer Entertainment Inc | 認証システム及び認証対象装置 |
WO2008001918A1 (fr) * | 2006-06-30 | 2008-01-03 | Kiyoto Yui | Dispositif de production de nombres aléatoires, dispositif de chiffrement/déchiffrement utilisant un tel dispositif, programme et support d'enregistrement de programme |
JP2008131108A (ja) * | 2006-11-16 | 2008-06-05 | Fujitsu Ltd | 共通鍵暗号のための暗号化装置 |
JP2008233683A (ja) * | 2007-03-22 | 2008-10-02 | Toshiba Corp | 暗号処理装置及びプログラム |
WO2009122464A1 (ja) * | 2008-03-31 | 2009-10-08 | 富士通株式会社 | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2012131926A1 (ja) | 2012-10-04 |
JPWO2012131926A1 (ja) | 2014-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5700128B2 (ja) | 暗号化処理装置および認証方法 | |
Mahajan et al. | A study of encryption algorithms AES, DES and RSA for security | |
EP2290872B1 (en) | Device for generating a message authentication code for authenticating a message | |
US5623549A (en) | Cipher mechanisms with fencing and balanced block mixing | |
JP5954030B2 (ja) | 暗号処理装置および方法 | |
Marwaha et al. | Comparative analysis of cryptographic algorithms | |
RU2449482C2 (ru) | Устройство обработки шифрования, способ обработки шифрования и компьютерная программа | |
US8090957B2 (en) | Information security device, information security method, computer program, computer-readable recording medium, and integrated circuit | |
US8744078B2 (en) | System and method for securing multiple data segments having different lengths using pattern keys having multiple different strengths | |
US20130028412A1 (en) | Method of counter-measuring against side-channel attacks | |
JP2005510095A (ja) | 情報漏洩が低減される装置および方法 | |
US7248700B2 (en) | Device and method for calculating a result of a modular exponentiation | |
RU2459275C1 (ru) | Способ блочного шифрования сообщения м, представленного в двоичном виде | |
Morawiecki | Malicious Keccak | |
EP3832945B1 (en) | System and method for protecting memory encryption against template attacks | |
Singh et al. | Comparative study of DES, 3DES, AES and RSA | |
US20190171583A1 (en) | Apparatus and Method for Memory Address Encryption | |
JP5556955B2 (ja) | 暗号処理装置、認証方法およびプログラム | |
Ledda et al. | Enhancing IDEA algorithm using circular shift and middle square method | |
CN111294199B (zh) | 加解密系统、加密装置、解密装置和加解密方法 | |
Liu et al. | Improving tag generation for memory data authentication in embedded processor systems | |
JP2006025366A (ja) | 暗号化装置及び半導体集積回路 | |
KR101105384B1 (ko) | 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법 | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
Liu et al. | iCETD: An improved tag generation design for memory data authentication in embedded processor systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20140507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140520 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5556955 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |