JPWO2007046402A1 - 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路 - Google Patents

情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路 Download PDF

Info

Publication number
JPWO2007046402A1
JPWO2007046402A1 JP2007540998A JP2007540998A JPWO2007046402A1 JP WO2007046402 A1 JPWO2007046402 A1 JP WO2007046402A1 JP 2007540998 A JP2007540998 A JP 2007540998A JP 2007540998 A JP2007540998 A JP 2007540998A JP WO2007046402 A1 JPWO2007046402 A1 JP WO2007046402A1
Authority
JP
Japan
Prior art keywords
value
montgomery
unit
integer
multiplication
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.)
Granted
Application number
JP2007540998A
Other languages
English (en)
Other versions
JP4906733B2 (ja
Inventor
松崎 なつめ
なつめ 松崎
布田 裕一
裕一 布田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2007540998A priority Critical patent/JP4906733B2/ja
Publication of JPWO2007046402A1 publication Critical patent/JPWO2007046402A1/ja
Application granted granted Critical
Publication of JP4906733B2 publication Critical patent/JP4906733B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/728Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic 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 involving digital signatures
    • H04L9/3249Cryptographic 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 involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

RSA暗号などの情報セキュリティ装置に対する単純電力攻撃(SPA)に対抗する情報セキュリティ装置を提供する。情報セキュリティ装置は、モンゴメリ領域での1との乗算を用いる。モンゴメリ領域での1は、法pのビット数より大きな整数kおよび法に依存して決定されるため、pやkを知らない攻撃者は解析が困難となる。また、万が一、解析者がハミング重みを予測できた場合であっても、kまたは法をランダムに変更することにより、さらにSPAに対する安全性が向上する。

Description

本発明は、秘密鍵を用いた公開鍵暗号処理や署名処理を行う情報セキュリティ装置における耐タンパー技術に関する。
近年、情報通信技術の普及に伴い、情報セキュリティ技術の重要性が一段と増してきている。このような情報セキュリティ技術の一つとして、暗号技術がプライバシーの保護や通信相手の確認のために用いられる。
しかしながら、暗号技術により何かを守ろうとすると、暗号化を打ち破ってそれを入手しようとする者が現れる。例えば、秘密鍵の値により、暗号処理時の計算時間や消費電力などが異なることを利用して、秘密鍵を求めるサイドチャネル攻撃が問題となっている(例えば、非特許文献1)。
その中でも代表的なものとして、RSA暗号方式、より正確には、秘密鍵を用いたRSA署名の署名処理や、RSA暗号の復号処理に対する単純電力攻撃(SPA、Simple Power Analysis)がある。RSA暗号方式における主要な処理は、秘密鍵をべきとするべき乗演算であり、べき乗演算は、2乗算と乗算の繰り返しで実現される。この場合、対応する秘密鍵のビットが「0」のとき乗算が行われず、「1」のときだけ乗算が行われるので、SPAでは、消費電力の波形判断により得た乗算及び2乗算のシーケンス情報から秘密鍵を求める。
このSPAに対抗するためには、秘密鍵の当該ビットが「0」の場合も乗算を行えばよい。以下、2つの具体的な従来方法について説明する。
その第1の方法では、秘密鍵の当該ビットが「0」のときには、「1」と乗算する(例えば、非特許文献2)。「1」と乗算しても結果は変わらないため、実質的に乗算を実施していないのと同じである。その上、秘密鍵のビット値に依存せずに乗算が行われるので、乗算の有無により、秘密鍵を求めることはできない。
また、SPAに対抗する第2の方法では、ビットが「0」であろうと「1」であろうと、まず乗算を行って、ビットが「1」の場合のみ乗算結果を使い、「0」の場合は乗算結果を使わないように制御する(例えば、特許文献1、特許文献2)。この方法も、ビット値に依存せずに乗算を行うため、乗算の有無により、秘密鍵を求めることはできない。
現実の脅威「サイドチャネル解析」(1)、日経エレクトロニクス2005.7.18号 "RSA暗号の電力解析法による攻撃とその対策"(Power Analysis and Countermeasure of RSA Cryptosystem)、電子情報通信学会論文誌A Vol.J88−A、 No.5 2005 P.L.Montgomery, "Modular Multiplication without Trial Division," Mathematics of Computation,Vol.44,No.170,pp.519-521 (1985) 特開2000−165375号公報 米国特許第6408075号公報
しかしながら、SPAに対抗する前記第1の方法については、乗算への入力の一方が、ハミング重みに偏りがある「1」であるため、これが電力変化に影響して「1」との乗算を区別でき、不正に解析される可能性がある。
また、第2の方法については、乗算のときを狙って、例えば、電源電圧にスパイクノイズを与える等の、故意にエラーを生じさせるエラー攻撃により、秘密鍵が解析される可能性がある。詳細には、乗算の際にエラーを起こし、その影響が出力に表れないと、結果を使っていない、つまり対応する秘密鍵のビットが「0」であったと解析できる。反対に、エラーの影響が出力に表れると、秘密鍵の対応するビットが「1」であったと解析できる。この解析は、エラー攻撃に対する通常の対策である検算機能を入れていたとしても、可能である。
そこで、本発明では、第1の方法を用いる場合において、上記課題を解決し、SPAに対抗することができる情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、記録媒体及び集積回路を提供することを目的とする。なお、本発明では、第1の方法をベースにしているので、前記第2の方法による攻撃は、意味がなくなる。
上記目的を達成するために、本発明は、所定の法において入力値を整数乗するべき乗剰余演算を行うために、前記整数の各桁毎に乗算を繰り返してべき乗値を算出して、前記入力値の安全又は確実な処理を行う情報セキュリティ装置であって、前記整数の1個の桁の値が0であるか否かを判断する判断手段と、取得した桁の値が0であると判断される場合に、値1に対するモンゴメリ変換値を用いる乗算剰余演算を行う乗算手段とを備えることを特徴とする。
この構成によると、「1」に対するモンゴメリ変換値との乗算剰余演算を用いるので、ハミング重みに偏りがある「1」の使用を避けることができ、SPAに対抗して、不正な解析を困難にすることができる。
ここで、前記情報セキュリティ装置は、RSA方式に基づいてRSA暗号文を復号するRSA復号装置、又はRSA方式に基づいて署名対象のメッセージに対して署名データの生成を行うRSA署名装置であり、さらに、前記入力値としてRSA暗号文を取得し、又は前記入力値として署名対象のメッセージを取得する取得手段と、秘密鍵として前記整数を記憶している記憶手段と、前記RSA暗号文から復号して得られる復号文として、又は前記メッセージに対する署名データとして、算出された前記べき乗値を出力する出力手段とを含むとしてもよい。
この構成によると、RSA方式に基づいてRSA暗号文を復号するRSA復号において、また、RSA方式に基づいて署名対象のメッセージに対して署名データの生成を行うRSA署名において、ハミング重みに偏りがある「1」の使用を避けることができ、SPAによる不正な解析を困難にすることができる。
ここで、前記情報セキュリティ装置は、入力値を取得する取得手段と、整数を記憶している記憶手段と、演算結果の値を格納する演算値変数に初期値を格納する初期化手段と、前記記憶手段から前記整数の上位桁から1個の桁の値を抽出する抽出手段と、前記演算値変数に格納されている値の少なくとも1回の二乗剰余演算に基づいて得られた値を前記演算値変数に上書きする二乗手段と、取得した桁の値が0であるか否かを判断する前記判断手段と、取得した桁の値が0であると判断される場合に、前記演算値変数に格納されている値と値1に対するモンゴメリ変換値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きし、0以外であると判断される場合に、前記演算値変数に格納されている値と前記入力値から定まる値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きする前記乗算手段と、前記整数の全ての桁について、前記抽出手段、前記二乗手段、前記判断手段及び前記乗算手段に対して、値の取得と、二乗剰余演算と、判断と、乗算剰余演算とを繰り返すように制御する繰返制御手段と、前記整数の全ての桁について前記繰返しが終了すると、前記演算値変数に格納されている値に基づく値を出力する出力手段とを備えるとしてもよい。
また、前記情報セキュリティ装置は、入力値を取得して入力値変数に格納する取得手段と、整数を記憶している記憶手段と、演算結果の値を格納する演算値変数に初期値を格納する初期化手段と、前記記憶手段から前記整数の下位桁から1個の桁の値を抽出する抽出手段と、前記入力値変数に格納されている値の少なくとも1回の二乗剰余演算に基づいて得られた値を前記入力値変数に上書きする二乗手段と、取得した桁の値が0であるか否かを判断する前記判断手段と、取得した桁の値が0であると判断される場合に、前記演算値変数に格納されている値と値1に対するモンゴメリ変換値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きし、0以外であると判断される場合に、前記演算値変数に格納されている値と前記入力値変数から定まる値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きする前記乗算手段と、前記整数の全ての桁について、前記抽出手段、前記二乗手段、前記判断手段及び前記乗算手段に対して、値の取得と、二乗剰余演算と、判断と、乗算剰余演算とを繰り返すように制御する繰返制御手段と、前記整数の全ての桁について前記繰返しが終了すると、前記演算値変数に格納されている値に基づく値を出力する出力手段とを備えるとしてもよい。
情報セキュリティ装置は、実施の形態のICカード100に相当し、取得手段は、入出力部102に相当し、記憶手段は、秘密鍵格納部113に相当し、初期化手段は、図4のステップS102に相当し、抽出手段は、抽出部122に相当し、二乗手段は、二乗算部115に相当し、判断手段は、図4のステップS106に相当し、乗算手段は、乗算部116に相当し、繰返制御手段は、制御部114に相当し、出力手段は、モンゴメリ逆変換部120及び入出力部102に相当する。
これらの構成によると、前記整数の上位の桁から又は下位の桁からの演算を行うことができる。
ここで、前記情報セキュリティ装置は、さらに、値1に対するモンゴメリ変換値を算出するモンゴメリ変換手段を含み、前記乗算手段は、前記乗算剰余演算において、前記モンゴメリ変換手段により算出されたモンゴメリ変換値を用いるとしてもよい。
モンゴメリ変換手段は、第2のモンゴメリ変換部112に相当する。
この構成によると、モンゴメリ変換手段により値1に対するモンゴメリ変換値を算出し、乗算手段は、算出されたモンゴメリ変換値を用いるので、値1に対するモンゴメリ変換値の算出を複数回行うことなく、演算回数を削減することができる。
ここで、前記情報セキュリティ装置は、さらに、前記法の値を設定する法設定手段と、前記法の有効ビット数より大きい整数kをランダムに選択する整数設定手段とを備え、前記モンゴメリ変換手段は、設定された前記法の値に基づいて、前記整数kを用いて、前記モンゴメリ変換値を算出するとしてもよい。
法設定手段は、法設定部117に相当し、整数設定手段は、整数設定部118に相当する。
この構成によると、前記法の有効ビット数より大きく、ランダムに選択された整数kをモンゴメリ変換値の算出において用いるので、「1」についてのハミング重みの偏りをさらに避けることができる。
ここで、前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法において値2のk乗値を算出するとしてもよい。
この構成によると、確実にモンゴメリ変換値を算出することができる。
ここで、前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法としての値の乱数倍の法において、値2のk乗値を算出するとしてもよい。
この構成によると、「1」についてのハミング重みの偏りをさらに避けることができるモンゴメリ変換値を算出することができる。
ここで、前記情報セキュリティ装置は、さらに、前記法設定手段は、さらに、前記法としての値の乱数倍の法を設定し、前記モンゴメリ変換手段は、法設定手段によりさらに設定された前記法において、値2のk乗値を算出するとしてもよい。
この構成によると、「1」についてのハミング重みの偏りをさらに避けることができるモンゴメリ変換値を算出することができる。
ここで、前記整数設定手段は、入力値を取得する毎に、前記整数kの値をランダムに変更するとしてもよい。
この構成によると、最初の入力値を用いたSPAの結果を、別の入力値において使用することを困難とすることができる。
ここで、前記法設定手段は、入力値を取得する毎に、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更するとしてもよい。
この構成によると、最初の入力値を用いたSPAの結果を、別の入力値において使用することを困難とすることができる。
ここで、前記整数設定手段は、前記繰返しの途中に、前記整数kの値をランダムに変更するとしてもよい。
この構成によると、繰返しの途中のプロセスにおけるSPAの結果を、繰返しの別のプロセスにおいて使用することを困難とすることができる。
ここで、前記法設定手段は、前記繰返しの途中に、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更するとしてもよい。
この構成によると、繰返しの途中のプロセスにおけるSPAの結果を、繰返しの別のプロセスにおいて使用することを困難とすることができる。
ここで、前記整数設定手段は、外部からの指示により、前記整数kの値をランダムに変更するとしてもよい。
この構成によると、外部からの指示の前におけるSPAの結果を、外部からの指示の後において使用することを困難とすることができる。
ここで、前記法設定手段は、外部からの指示により、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更するとしてもよい。
この構成によると、外部からの指示の前におけるSPAの結果を、外部からの指示の後において使用することを困難とすることができる。
ここで、前記情報セキュリティ装置は、さらに、前記入力値に対するモンゴメリ変換値を算出するモンゴメリ変換手段を含み、前記乗算手段は、取得した桁の値が0以外であると判断される場合に、前記モンゴメリ変換手段により算出された前記モンゴメリ変換値を用いて乗算剰余演算を行うとしてもよい。
モンゴメリ変換手段は、第1のモンゴメリ変換部111に相当する。
この構成によると、取得した桁の値が0以外であると判断される場合においても、SPAに対抗して、不正な解析を困難にすることができる。
ここで、前記情報セキュリティ装置は、さらに、前記法の値を設定する法設定手段と、前記法の有効ビット数より大きい整数kをランダムに選択する整数設定手段とを備え、前記モンゴメリ変換手段は、設定された前記法の値に基づいて、前記整数kを用いて、前記モンゴメリ変換値を算出するとしてもよい。
法設定手段は、法設定部117に相当し、整数設定手段は、整数設定部118に相当する。
この構成によると、前記法の有効ビット数より大きく、ランダムに選択された整数kをモンゴメリ変換値の算出において用いるので、入力値についてのハミング重みの偏りをさらに避けることができる。
ここで、前記モンゴメリ変換手段は、前記法において、値2のk乗値を算出し、前記入力値と算出された値とを乗じて得られた値を前記モンゴメリ変換値とするとしてもよい。
この構成によると、確実にモンゴメリ変換値を算出することができる。
ここで、前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法としての値の乱数倍の法において、値2のk乗値を算出するとしてもよい。
この構成によると、入力値についてのハミング重みの偏りをさらに避けることができるモンゴメリ変換値を算出することができる。
本発明に係る1個の実施の形態としてのコンテンツ再生システム1の構成を示すシステム構成図である。 ICカード100及びDVDプレーヤ200の構成を示すブロック図である。 公開鍵復号部101の構成を示すブロック図である。 公開鍵復号部101による高速べき乗剰余演算の動作を示すフローチャートである。 公開鍵復号部101による別の高速べき乗剰余演算の動作を示すフローチャートである。 秘密鍵の下位ビットから処理する場合における公開鍵復号部101による高速べき乗剰余演算の動作を示すフローチャートである。
符号の説明
1 コンテンツ再生システム
10 ネットワーク
100 ICカード
101 公開鍵復号部
102 入出力部
111 第1モンゴメリ変換部
112 第2モンゴメリ変換部
113 秘密鍵格納部
114 制御部
115 二乗算部
116 乗算部
117 法設定部
118 整数設定部
119 設定制御部
120 モンゴメリ逆変換部
200 DVDプレーヤ
201 モニタ
202 スピーカ
211 通信部
212 入出力部
213 復号部
214 復号部
215 再生部
216 ドライブ部
300 DVD
400 サーバ装置
本発明に係る1個の実施の形態としてのコンテンツ再生システム1について説明する。
1.コンテンツ再生システム1の構成
コンテンツ再生システム1は、図1に示すように、ICカード100、DVDプレーヤ200及びサーバ装置400から構成されている。DVDプレーヤ200及びサーバ装置400は、ネットワーク10を介して相互に接続されている。
DVDプレーヤ200には、利用者によりDVD300が装着される。DVD300は、図2に示すように、暗号化コンテンツ301及び暗号化コンテンツ鍵302を記録している。暗号化コンテンツ301は、コンテンツ鍵を用いて、映像及び音声からなるコンテンツに、暗号化アルゴリズムAES(Advanced Encryption Standard)を施して生成されたものであり、暗号化コンテンツ鍵302は、前記コンテンツの利用の許可を示すライセンス鍵Lを用いて、前記コンテンツ鍵に、暗号化アルゴリズムAESを施して生成されたものである。
サーバ装置400は、DVDプレーヤ200の要求により、ICカード100の利用者の公開鍵(e、p)を用いて、ライセンス鍵Lに、暗号化アルゴリズムRSAを施して、暗号化ライセンス鍵Cを生成する。
C=Le mod p
なお、RSAの公開鍵の生成については、周知であるので、説明を省略する。
次に、サーバ装置400は、生成した暗号化ライセンス鍵Cを、DVDプレーヤ200の要求により、ネットワーク10を介して、DVDプレーヤ200へ送信する。
DVDプレーヤ200は、図2に示すように、通信部211、入出力部212、復号部213、復号部214、再生部215及びドライブ部216から構成されており、モニタ201及びスピーカ202がDVDプレーヤ200に接続されている。
DVDプレーヤ200の通信部211は、サーバ装置400からネットワーク10を介して、暗号化ライセンス鍵Cを受信する。DVDプレーヤ200には、利用者によりICカード100が装着される。DVDプレーヤ200の入出力部212は、受信した暗号化ライセンス鍵CをICカード100へ出力する。
ICカード100は、公開鍵復号部101及び入出力部102から構成されている。ICカード100の入出力部102は、DVDプレーヤ200から暗号化ライセンス鍵Cを受け取り、公開鍵復号部101は、入力データとして受け取った暗号化ライセンス鍵Cを、後述するようにして復号して、出力データとして復号ライセンス鍵を生成し、入出力部102は、生成した復号ライセンス鍵をDVDプレーヤ200へ出力する。
DVDプレーヤ200の入出力部212は、ICカード100から復号ライセンス鍵を受け取り、ドライブ部216は、DVD300から暗号化コンテンツ301及び暗号化コンテンツ鍵302を読み出し、復号部213は、受け取った復号ライセンス鍵を用いて、暗号化コンテンツ鍵302を復号して復号コンテンツ鍵を生成し、復号部214は、生成した復号コンテンツ鍵を用いて、暗号化コンテンツ301を復号して復号コンテンツを生成し、再生部215は、復号コンテンツを再生して映像信号及び音声信号を生成し、生成した映像信号をモニタ201へ出力し、生成した音声信号をスピーカ202へ出力する。
ここで、ICカード100及びDVDプレーヤ200は、それぞれ、具体的には、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。
なお、図2において、DVDプレーヤ200の各構成部を示す各ブロックは、接続線により他のブロックと接続されている。ただし、一部の接続線を省略している。ここで、各接続線は、信号や情報が伝達される経路を示している。また、復号部213を示すブロックに接続している複数の接続線のうち、接続線上に鍵マークが描かれているものは、復号部213へ鍵としての情報が伝達される経路を示している。復号部214を示すブロックについても同様である。
ここで、ICカード100は、所定の法において入力値を整数乗するべき乗剰余演算により、入力値の安全な処理を行う情報セキュリティ装置である。
2.公開鍵復号部101の構成
公開鍵復号部101は、図3に示すように、記憶部121、第1モンゴメリ変換部111、第2モンゴメリ変換部112、秘密鍵格納部113、制御部114、二乗算部115、乗算部116、法設定部117、整数設定部118、設定制御部119及びモンゴメリ逆変換部120から構成されている。
公開鍵復号部101は、秘密鍵Sと法pを内部に記憶しており、入力データCを入力として公開鍵暗号の計算を行い、計算結果の出力データM=Cs mod pを出力する。ここで、出力データMは、秘密鍵Sをべきとし、pを法とする入力データCのべき乗剰余演算値である。mod pは、pで除したときの剰余を求めることを示す。なお、本実施の形態において、前記公開鍵暗号の計算はRSA暗号の復号処理である。従って、入力データは暗号文C、出力データは復号文Mに相当する。具体的には、入力データは、上述した暗号化ライセンス鍵であり、出力データは、上述した復号ライセンス鍵である。
公開鍵復号部101は、前述した秘密鍵Sの各ビットの上位から1ビットずつについて、設定された法におけるモンゴメリ領域での2乗算と乗算とを繰り返す高速べき指数演算を行う。公開鍵復号部101の全体の動作については後述する。
(1) 法設定部117、整数設定部118及び設定制御部119
法設定部117は、設定制御部119の制御により、モンゴメリ変換、2乗算、乗算で用いる法pを設定する。法設定部117は、設定した法pを第1モンゴメリ変換部111、第2モンゴメリ変換部112、二乗算部115、乗算部116及びモンゴメリ逆変換部120へ出力する。
整数設定部118は、設定制御部119の制御により、pのビット数よりも大きい整数kを、ランダムに設定する。なお、ここでpの「ビット数」とは、pのうち、値「1」がセットされている最上位のビット位置から最下位のビット位置までのビット長であり、いわゆる「有効ビット数」のことを意味する。整数設定部118は、整数kを第1モンゴメリ変換部111、第2モンゴメリ変換部112、二乗算部115、乗算部116及びモンゴメリ逆変換部120へ出力する。
設定制御部119は、整数設定部118に対して、整数kの設定範囲や設定変更のタイミングを制御する。設定変更のタイミングの一例として、設定制御部119は、入力データCの値が変わるごとに変更してもよいし、入力データCの演算途中で変更してもよい。
ここで設定された整数kと法pとは、以降の、モンゴメリ変換、二乗算、乗算及びモンゴメリ逆変換で用いられる。
(2)記憶部121、第1モンゴメリ変換部111及び第2モンゴメリ変換部112
記憶部121は、入出力部102から入力データCを受け取り、受け取った入力データCを記憶する。
第1モンゴメリ変換部111は、記憶部121から入力データCを読み出し、法設定部117から法pを受け取り、整数設定部118から整数kを受け取る。次に、入力データC、法p及び整数kを用いて、次式により、Cのモンゴメリ変換値Bを算出する。
モンゴメリ変換値B=C×(2k )mod p
次に、第1モンゴメリ変換部111は、算出したモンゴメリ変換値Bを制御部114へ出力する。
また、第2モンゴメリ変換部112は、法設定部117から法pを受け取り、整数設定部118から整数kを受け取る。次に、法p及び整数kを用いて、次式により、「1」のモンゴメリ変換値Aを算出する。
モンゴメリ変換値A=(2k )mod p
次に、第2モンゴメリ変換部112は、算出したモンゴメリ変換値Aを制御部114へ出力する。
なお、以降ではモンゴメリ変換をMon_{k,p}(X)と表記する。
Mon_{k,p}(X) = X×2k mod p (式1)
なお、変換関数の{k,p}は、モンゴメリ変換値が、整数k、法pに依存することを示す。この表記を用いると、第1モンゴメリ変換部111により出力されるモンゴメリ変換値Bは、Mon_{k,p}(C)であり、第2モンゴメリ変換部112により出力されるモンゴメリ変換値Aは、Mon_{k,p}(1)である。
(3)秘密鍵格納部113
秘密鍵格納部113は、公開鍵暗号の秘密鍵Sを格納している。秘密鍵Sは、安全性確保のため少なくとも2048ビット以上は必要とされている。
(4)抽出部122、制御部114、二乗算部115及び乗算部116
抽出部122は、制御部114の指示により、秘密鍵格納部113に格納されている秘密鍵Sの各ビットの上位から1ビットずつ抽出し、抽出したビットの値を制御部114へ出力する。
制御部114は、秘密鍵Sの上位から1ビットについて、2乗算と乗算の処理を繰り返す。例えば、秘密鍵が2048ビットの場合は2048回、2乗算と乗算の処理を繰り返す。繰り返しが終了したら、モンゴメリ逆変換部120は、その演算結果をモンゴメリ逆変換し、公開鍵復号部101は、M=CS mod pを出力する。
制御部114は、上記繰り返し制御とともに、秘密鍵の当該ビットが「1」のときには、第1モンゴメリ変換部111の出力値を選択し、「0」のときには第2モンゴメリ変換部112の出力値を選択する。
二乗算部115及び乗算部116は、それぞれ、モンゴメリ領域での2乗算及び乗算を実行する。
ここでのモンゴメリ領域の乗算は、モンゴメリ領域に変換された2個の入力値、例えば、Mon_{k,p}(X)とMon_{k,p}(Y)の積に対して、モンゴメリリダクション処理を行い、モンゴメリ領域の乗算結果Mon_{k,p}(Z)=Mon_{k,p}(X×Y)を求めるものである。2乗算は、上記XとYが同じ場合に相当する。
ここで、モンゴメリリダクションは、倍長値U(上記では、X×Y)に対して、U×(2k-1 mod pの演算を、除算なしで高速に実装する方法である。モンゴメリリダクションの詳細については、例えば非特許文献3に詳しい。
なお、仮に法のビット数が2048ビットである場合、二乗算部115と乗算部116を、2048ビットの乗算器で実装するのは実装規模が巨大となり現実的でない。そのため、例えば32ビット程度の乗算器を繰り返して用いる多倍長演算方法で実現するのが、一般的である。
(5) モンゴメリ逆変換部120
モンゴメリ逆変換部120は、モンゴメリ領域での2乗算と乗算との繰り返しの最終結果に、モンゴメリ逆変換を施して、出力データMを求める。以降ではモンゴメリ逆変換を
Mon_{k,p}-1( )と表記する。
Mon_{k,p}-1(X)=X×(2k-1 mod p (式2)
なお、モンゴメリ変換とモンゴメリ逆変換について、式3が成り立つ。
Mon_{k,p}-1(Mon_{k,p}(X))=X (式3)
モンゴメリ逆変換部120は、出力データMを入出力部102へ出力する。
3.公開鍵復号部101の動作
公開鍵復号部101による高速べき乗剰余演算の動作について、図4に示すフローチャートを用いて説明する。
法設定部117は、法pを定め、整数設定部118は、整数kを定め、第1モンゴメリ変換部111は、モンゴメリ変換値B=C×(2k )mod p を算出し、第2モンゴメリ変換部112は、モンゴメリ変換値A=(2k )mod p を算出する(ステップS101)。
制御部114は、第2モンゴメリ変換部112によるモンゴメリ変換値Aを選択し、演算結果の値を格納する演算値領域に設けられた変数としての演算結果Wに、初期値として選択したモンゴメリ変換値Aを書き込む。
W=Mon_{k,p}(1)=(2k )mod p (ステップS102)
制御部114は、抽出部122により、秘密鍵格納部113に格納されている秘密鍵Sの最上位から1ビットずつ抽出を試みる(ステップS103)。
秘密鍵Sの最上位のビットから最下位のビットまで、前記抽出が完了したら(ステップS104でYES)、制御部114は、モンゴメリ逆変換部120に対して演算結果Wのモンゴメリ逆変換をするように制御し、モンゴメリ逆変換部120は、演算結果Wに対して、モンゴメリ逆変換を施して、出力データMを生成する。
M=Mon_{k,p}-1(W)
次に、モンゴメリ逆変換部120は、出力データMを入出力部102へ出力する。ここで、M=CS mod pである(ステップS109)。こうして、公開鍵復号部101による高速べき乗剰余演算が終了する。
抽出が完了していない場合(ステップS104でNO)、制御部114は、二乗算部115に対して演算結果Wをモンゴメリ領域で2乗するように制御し、二乗算部115は、演算結果Wをモンゴメリ領域で2乗し、その2乗値を演算結果Wに上書きする。
W=Mon_{k,p}(W×W) (ステップS105)。
次に、制御部114は、抽出したビットが「1」か又は「0」であるかを判断し、秘密鍵Sから抽出した当該ビットが「1」のときには(ステップS106)、第1モンゴメリ変換部111により出力されるモンゴメリ変換値Bを選択し、乗算部116に対してモンゴメリ乗算を算出するように制御し、乗算部116は、演算結果Wと第1モンゴメリ変換部111により出力されるモンゴメリ変換値B=Mon_{k,p}(C)とを乗算し、得られた値を演算結果Wへ上書きする。
W=Mon_{k,p}(W×B) (ステップS107)。次に、制御部114は、制御をステップS103へ移す。
一方、秘密鍵Sから抽出した当該ビットが「0」のときには、制御部114は、第2モンゴメリ変換部112の出力値を選択し、乗算部116に対してモンゴメリ乗算を算出するように制御し、乗算部116は、演算結果Wと第2モンゴメリ変換部112の出力値であるA=Mon_{k,p}(1)とを乗算し、得られた値を演算結果Wへ上書きする。
W=Mon_{k,p}(W×A) (ステップS108)。次に、制御部114は、制御をステップS103へ移す。
3.実施の形態の効果
まず、図4に示すフローチャートから明らかなように、秘密鍵Sの当該ビットが「1」であるか又は「0」であるかにかかわらず、必ずモンゴメリの乗算部116は動作する。そのため、乗算の有無で解析を行う攻撃であるSPAは困難である。
本実施の形態では、秘密鍵の当該ビットが「0」である場合の乗算には、モンゴメリ領域での「1」(Mon_{k,p}(1)と表記)を用いる。このモンゴメリ領域での「1」は整数kと法pに依存して定まる値であるため、kおよびpを知らない攻撃者はハミング重みを予測することができない。そのためモンゴメリ領域での「1」を判別して解析をすることは困難である。
また、万が一、ハミング重みが攻撃者により求められてしまった場合には、モンゴメリ領域での「1」を判別する解析が成功するかもしれない。本実施の形態では、さらに、法pのビット数以上という制限のもとに、整数kを任意に変更することにより、ハミング重みも変更される。これにより、いっそう、解析が困難となる。
なお、その変更タイミングは頻繁であるほど、さらに、その整数kの取りうるバラエティが多いほど、ダミー乗算を区別することは困難であり安全性が向上する。しかし、kをむやみに大きくとると1回の2乗算や乗算の処理時間が一般には増加するため、どの程度のバラエティをもったkの大きさにするのか、あるいは変更のタイミングをどう設定するのかは、アプリケーションに必要とされる速度と安全性に依存して決定する。図3における設定制御部119がこれらの制御をする。
4.その他の変形例
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)公開鍵復号部101による上記とは別の高速べき乗剰余演算の動作について、図5に示すフローチャートを用いて説明する。
法設定部117は、法pを定める。ここで、法pは、例えば、512ビットの秘密の素数である。また、法設定部117は、pより大きい任意の2のべき乗値Rを定める。例えば、乱数kを生成し、R=2k とする。例えば、R=2512 である。また、法設定部117は、乱数rを生成する(ステップS201)。
次に、第2モンゴメリ変換部112は、モンゴメリ変換値yを算出する。
y=M(1)=R mod p =R − p
yは、演算結果の値を格納するための演算値領域に設けられる変数である。
なお、ここでは、「Mon_{k,p}(1)」を更に簡略に「M(1)」と表現している(ステップS202)。
制御部114は、抽出部122により、秘密鍵格納部113に格納されている秘密鍵Sの最上位から1ビットずつ抽出を試みる(ステップS203)。
秘密鍵Sの最上位ビットから最下位ビットまで、抽出が完了したら(ステップS204でYES)、yを出力し(ステップS209)、公開鍵復号部101による高速べき乗剰余演算が終了する。
抽出が完了していない場合(ステップS204でNO)、二乗算部115は、次式による二乗算を行う。
y={y×y}×R-1 mod r×p (ステップS205)。
次に、制御部114は、抽出したビットが「1」か又は「0」であるかを判断し、秘密鍵Sから抽出した当該ビットが「1」のときには(ステップS206)、乗算部116は、次式による乗算を行う。
y={y×M(C)}×R-1 mod r×p (ステップS207)。
次に、制御部114は、制御をステップS203へ移す。
一方、秘密鍵Sから抽出した当該ビットが「0」のときには、乗算部116は、次式による乗算を行う。
y={y×M(1)}×R-1 mod r×p (ステップS208)。
次に、制御部114は、制御をステップS103へ移す。
この変形例では、公開鍵復号部101は、モンゴメリ逆変換部120を含んでない。
(2)整数kの変更タイミングは、入力データごとであってもよい。つまり、第1の入力データを取得すると、整数kの値をランダムに変更し、次に第2の入力データを取得すると、整数kの値をさらにランダムに変更し、さらに第3の入力データを取得すると、整数kの値をさらにランダムに変更する。
また、複数の入力データに対して同じkを用いてもよい。次の複数の入力データに対して、別の同じ整数を用いてもよい。
また、ある入力データの演算の途中(繰返しの途中)でランダムに変更してもよい。また、外部よりアプリケーションやユーザが指示するタイミングでランダムに変更してもよい。
第1及び第2モンゴメリ変換部において用いられる法についても、上記と同様に、入力データごとにランダムに変更してもよいし、複数の入力データに対して同じ法を用いてもよいし、次の複数の入力データに対して、別の同じ整数を用いてもよいし、ある入力データの演算の途中(繰返しの途中)でランダムに変更してもよいし、外部よりアプリケーションやユーザが指示するタイミングでランダムに変更してもよい。
(3)(a)pの乱数倍を法として用いて、第2モンゴメリ変換部112の出力を求めてもよい。つまり、法設定部117は、乱数rを生成し、生成した乱数rを第2モンゴメリ変換部112へ出力する。第2モンゴメリ変換部112は、
k mod (r×p)を出力する。
このことにより、第1モンゴメリ変換部111あるいは第2モンゴメリ変換部112のいずれを使用しているのかを区別することがよりいっそう困難となり安全性が向上する。
このとき、第2モンゴメリ変換部112の法は、pのままでよいし、また、別の乱数倍であってもよい。
このように、第1モンゴメリ変換部111の法と、第2モンゴメリ変換部112の法とに対して独立して設定されるとしてもよい。
なお、モンゴメリ逆変換部120の法は、pのままである。
(b)また、第1モンゴメリ変換部111で用いる法をpの乱数倍としてもよい。このとき、第2モンゴメリ変換部112の法は、pのままでよいし、また、別の乱数倍であってもよい。なお、モンゴメリ逆変換部120の法は、pのままとする。これにより、1つの入力データの演算中の、複数箇所の電力変化間の相関を計算する攻撃に対して安全性が向上する。
また、まずpの乱数倍を新たな法として求めた後、これを用いて第1モンゴメリ変換部111、第2モンゴメリ変換部112、そして二乗算部115や乗算部116での計算を行ってよい。ただし、この場合、定められた法のもとの最終出力を得るためには、出力の前に、法pで剰余演算をしてから、出力することが必要になる。
(c)上記(a)(b)において、第1モンゴメリ変換部111においてpの乱数倍の法(第1の法)が用いられ、第2モンゴメリ変換部112においてpの別の乱数倍の法(第2の法)が用いられる場合、つまり、第1の法と第2の法とが異なる場合には、二乗算部115と乗算部116とにおいて用いられる法は、第1の法と第2の法の公倍数とし、モンゴメリ逆変換部120において用いられる法は、pのままとすればよい。
(4)入力データ及び出力データを、モンゴメリ領域の値としてもよい。この場合、実施の形態で含まれている、第1モンゴメリ変換部111とモンゴメリ逆変換部120は公開鍵復号部101の外に実装されてもよい。これは、例えば大きなシステムの中の一部として公開鍵復号部101が実装されており、公開鍵暗号の演算のみならず、すべてをモンゴメリ領域で実装する場合である。
(5)本実施の形態では、秘密鍵を1ビットずつ処理する高速バイナリべき乗剰余演算を用いているが、何も1ビットごとの処理だけとは限らない。
例えば、2ビットごとの処理であれば、二乗算部115では2回の2乗算を行い、制御部114では、秘密鍵の2ビットに対応して4種類のモンゴメリ変換部からの出力値を選択し、選択した出力値を乗算部116で乗算する。
なお、この4種類のモンゴメリ変換部のうちの1つは、「1」のモンゴメリ変換部(つまり、ダミー乗算の入力値を求める部分)となり、秘密鍵の当該2ビットが両方とも「0」である場合に選択される。
ここで、2ビットが「00」のとき、対応するモンゴメリ変換部は、「1」のモンゴメリ変換値を出力し、2ビットが「01」のとき、対応するモンゴメリ変換部は、「C」のモンゴメリ変換値を出力する。また、2ビットが「10」のとき、対応するモンゴメリ変換部は、「C2 」のモンゴメリ変換値を出力し、2ビットが「11」のとき、対応するモンゴメリ変換部は、「C3 」のモンゴメリ変換値を出力する。
もちろん秘密鍵を3ビット以上ごとに処理する場合であっても、上記を拡張して適用することで実現できる。
また、本実施の形態では、秘密鍵を上位から処理するアルゴリズムを用いているが、下位から処理するものであってもよい。この場合には、入力データに対応したモンゴメリ変換値を繰り返し2乗し、秘密鍵の対応するビットが1のときには、前記2乗演算値を乗算し、0のときには、本実施の形態と同様に、整数kと法pから求められる値を用いたダミー乗算を行う。
この場合における公開鍵復号部101による高速べき乗剰余演算の動作について、図4との相違点を中心として、図6に示すフローチャートを用いて説明する。
図4に示すステップS103に代えて、ステップS103aにおいて、制御部114は、抽出部122により、秘密鍵格納部113に格納されている秘密鍵Sの最下位から1ビットずつ抽出を試みる。
秘密鍵Sの最下位のビットから最上位のビットまで、前記抽出が完了したら(ステップS104aでYES)、制御部114は、モンゴメリ逆変換部120に対して演算結果Wのモンゴメリ逆変換をするように制御する。
抽出が完了していない場合(ステップS104aでNO)、図4に示すステップS105に代えて、ステップS105aにおいて、制御部114は、二乗算部115に対して入力データCをモンゴメリ領域で2乗するように制御し、二乗算部115は、入力データCをモンゴメリ領域で2乗し、その2乗値を入力データCに上書きする。
C=Mon_{k,p}(C×C)
(6)本実施の形態では、RSA暗号の復号処理で説明したが、次に示すように、RSA署名の署名生成に適用してもよい。
RSAの鍵生成を行う。RSAの鍵生成は、RSA暗号の場合と同じであるので詳細を省略する。
ここで、秘密鍵をdとし、公開鍵をe、pとする。
署名生成装置は、次式により、文書mに対して、署名データsを生成する。
s=h(m)d mod p
ここで、h( )は、一方向性ハッシュ関数である。
本発明は、前記署名生成装置において、上記の実施の形態と同様にして適用される。前記署名生成装置は、所定の法において入力値を整数乗するべき乗剰余演算により、入力値の確実な処理を行う情報セキュリティ装置である。
なお、署名検証装置は、次式により、署名の検証を行う。
h(m)=se mod p
また、本発明は、RSA暗号の暗号処理において、公開鍵を秘匿するようなアプリケーションの場合に、適用することができる。
さらに、楕円曲線暗号や超楕円曲線暗号における、秘密鍵を用いた処理におけるSPA対策としても用いることができる。
(7)上記の実施の形態及び変形例は、次に示すような場合において適用される。
(a)実施の形態及び変形例は、秘密のメッセージ伝送において適用される。
本実施の形態において、秘密のメッセージ伝送の一例として、ライセンス鍵を秘密に伝送する場合について説明した。
上述したように、ICカード100は、所定の法において入力値を整数乗するべき乗剰余演算により、入力値の安全な処理を行う情報セキュリティ装置である。ここで、「安全」とは、メッセージが送信者及び受信者以外の第三者に知られないように秘密にすることをいう。
本発明は、コンテンツ暗号化装置とコンテンツ再生装置とから構成されるコンテンツ配信システムにおいて適用され、例えば、映画、動画像、音声、音楽、小説、データベースなどのデジタル情報を秘密通信の対象としてもよい。これらのコンテンツは、コンテンツ供給者から利用者に対して、これらのコンテンツを記録している記録媒体を販売したり、レンタルすることにより、提供される。また、デジタル放送やインターネットを介して、コンテンツ供給者から利用者に提供される。
コンテンツ供給者の有するコンテンツ暗号化装置は、デジタル著作物である映画を暗号化してDVDに記録する。利用者の有するコンテンツ再生装置は、DVDから暗号化デジタル著作物を読み出し、復号して、映画を生成し、生成した映画を音声及び映像として再生して、表示及び出力する。
上記の例において、コンテンツを暗号化及び復号するためのコンテンツ鍵を、実施の形態に示す秘密通信の対象としてもよい。この場合、コンテンツ鍵は、実施の形態に示す方法と同様にして、暗号化され、また復号される。
この場合に、コンテンツは、コンテンツ鍵により、共通鍵暗号方式を用いて、暗号化され、復号される。
次に示すような金銭の決済システムに適用することもできる。
例えば、通貨の代わりに用いることができる電子マネーを秘密通信の対象とし、ICカードは、電子マネーを記憶しており、利用者が、商品を購入する際に、ICカードは、商品の購入額に相当する電子マネーを暗号化して送信し、また、内部に記憶している電子マネーから送信した分を減じる。商店に設置されるレジスタ装置は、暗号化電子マネーを受信し、受信した暗号化電子マネーを復号して電子マネーを再生し、記憶する。
また、上記のICカードに代えて、美術館や博物館などの各種施設を利用のためのICカードタイプの電子チケットが、上記のように、電子マネーに相当する情報を記憶しているとしてもよい。各種施設の入り口に設けられた入場管理装置は、各種施設の利用料金に相当する額の電子マネーを要求し、前記電子チケットは、要求された額の電子マネーを暗号化して送信し、入場管理装置は、暗号化電子マネーを受信し、受信した暗号化電子マネーを復号して電子マネーを生成し、記憶するとしてもよい。
また、鉄道、バスなどの交通機関を利用する際に用いられるICカードタイプのICカード乗車券が、上記のように、電子マネーに相当する情報を記憶しているとしてもよい。交通機関の駅の入り口に設けられた入場管理装置は、当該駅を識別する識別情報を送信し、ICカード乗車券は、前記識別情報を受信し、記憶する。交通機関の駅の出口に設けられた出場管理装置は、前記識別情報をICカード乗車券から受信し、受信した識別情報と当該出場管理装置が設けられた駅とを用いて、料金表により乗車料金を算出し、算出した乗車料金に相当する額の電子マネーを要求し、ICカード乗車券は、要求された額の電子マネーを暗号化して送信し、出場管理装置は、暗号化電子マネーを受信し、受信した暗号化電子マネーを復号して電子マネーを生成し、記憶する。
(b)実施の形態及び変形例は、認証において適用される。認証とは、メッセージが自称どおりの人物によって送られたこと、またメッセージが改竄されなかったということの検証である。また、実施の形態及び変形例は、身分の証明において適用される。身分の証明とは、例えば、データへのアクセス権、又は施設へのアクセス権(入室権)を持つことの証明、又は自分が主張どおりの人物であることの証明である。さらに、実施の形態及び変形例は、否認防止において適用される。否認防止とは、例えば、実は何かに同意したのに、同意していないと主張する者に対抗することをいう。
上記の変形例において、認証の一例として、RSAデジタル署名について説明した。本発明は、上述した署名生成装置において、上記の実施の形態と同様にして適用される。前記署名生成装置は、所定の法において入力値を整数乗するべき乗剰余演算により、入力値の確実な処理を行う情報セキュリティ装置である。
ここで、「確実」とは、例えば、メッセージが自称どおりの人物によって送られたこと、またメッセージが改竄されなかったことである。また、例えば、データへのアクセス権を持つこと、施設へのアクセス権(入室権)を持つこと、又は自分が主張どおりの人物であることである。
(c)実施の形態及び変形例は、鍵交換(鍵共有とも呼ぶ)において適用される。鍵交換とは、例えば、2人の人が放送電波を使ってある秘密鍵暗号方式で使うための秘密鍵に同意することである。
鍵交換の典型的な方法として、DH(ディフィーヘルマン)鍵交換という方法がある。ここでは、鍵を交換しあうそれぞれが、秘密のべき数を任意に生成し、これを用いてべき乗演算を行う。
このときの、べき乗演算に本発明を適用し、秘密のべき数を秘匿して秘密の共通鍵を共有することができる。
(d)実施の形態及び変形例は、零知識証明において適用される。零知識証明とは、例えば、ある人が、数論的あるいは組合せ論的問題を解くことに成功したことを、解が何であるかのわずかの情報さえ与えることなく、他人にこのことを納得させることを言う。
(e)上述したように、本発明は、秘密のべき値を用いたべき乗演算を用いるプロトコル方式に適用することができる。
(8)本発明は、入力データと秘密鍵を使って、定められた法における乗算を繰り返してべき乗剰余計算を行う情報セキュリティ装置である。前記情報セキュリティ装置は、前記入力データに対応したモンゴメリ変換値を求める第1のモンゴメリ変換部と、1のモンゴメリ変換値を求める第2のモンゴメリ変換部と、秘密鍵のビットが0ならば、前記第2のモンゴメリ変換部の出力を選択し、そうでなければ前記第1のモンゴメリ変換部の出力を選択する制御部と、これまで計算した結果と前記制御部で選択した値を用いて乗算を行う乗算部を備えており、前記法をpとし、pの有効ビット数より大きな整数をkとするとき、前記第2のモンゴメリ変換部は、前記pを法として、前記kをべきとする2のべき乗値を出力する。この情報セキュリティ装置によると、第2のモンゴメリ変換部の出力(モンゴメリ領域での1)は、整数kと法pに依存して決定される。そのため、ハミング重みに偏りはなく、電力変化を用いて、乗算の入力として第1のモンゴメリ変換部の出力を用いたのか、第2のモンゴメリ変換部の出力を用いたのかを区別することは困難である。
ここで、前記pの有効ビット数より大きな整数kをランダムに選択する整数k設定部を備えると構成してもよい。この構成によると、ランダムに選択される整数kに依存して、第2のモンゴメリ変換部の出力が変わる。そのため、複数入力データにわたり、電力変化の相関を計算する攻撃に対して安全性が向上する。
ここで、前記第2のモンゴメリ変換部は、前記pの乱数倍を法として、前記kをべきとする2のべき乗値を出力すると構成してもよい。この構成によると、ランダムに選択される法の値に依存して、第2のモンゴメリ変換部の出力が変わる。そのため、複数入力データにわたり、電力変化の相関を計算する攻撃に対して安全性が向上する。
ここで、前記第1のモンゴメリ変換部は、前記pの乱数倍を法として、前記入力データに対応したモンゴメリ変換値を出力すると構成してもよい。この構成によると法の変化に依存して、第1のモンゴメリ変換部の出力が変わる。このため、1つの入力データの演算中の、複数箇所の電力変化間の相関を計算する攻撃に対して安全性が向上する。
ここで、前記pの乱数倍を新たに法とする法変更部を備え、設定した法を用いて前記第1のモンゴメリ変換部、第2のモンゴメリ変換部および前記乗算部にて所定の計算が処理されると構成してもよい。この構成によると法変更部で変更される法に依存して、第1のモンゴメリ変換部、第2のモンゴメリ変換部のみならず、乗算部で用いる法も変換されるため、よりいっそう電力変化と秘密鍵の相関が小さくなり安全性が向上する。
ここで、前記整数kあるいは前記法は、外部からの指示により変更されると構成してもよい。この構成によると、外部のアプリケーションやユーザが指定したタイミングで整数kや法を変化させることで、そのタイミングに対応した性能と安全性を有した情報セキュリティ装置が実現できる。
(9)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、などから構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。ここで、コンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。つまり、前記マイクロプロセッサは、前記コンピュータプログラムに含まれる各命令を1個ずつ読み出し、読み出した命令を解読し、解読結果に従って動作する。
(10)上記の各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されてもよい。また、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)やLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(11)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM、などから構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
(12)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(13)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明の情報セキュリティ装置および情報セキュリティ方法は、秘密鍵を用いて公開鍵暗号演算や署名演算を実現する暗号モジュールにおいて、特にICカードやセキュアカードのように解読者側の手に渡って、SPAなどの攻撃が行われる懸念がある場合に利用される。
本発明を構成する各装置は、秘密のメッセージ伝送や認証を必要とするあらゆる産業において、経営的に、また継続的及び反復的に使用することができる。また、本発明を構成する各装置は、電器機器製造産業において、経営的に、また継続的及び反復的に、製造し、販売することができる。
本発明は、秘密鍵を用いた公開鍵暗号処理や署名処理を行う情報セキュリティ装置における耐タンパー技術に関する。
近年、情報通信技術の普及に伴い、情報セキュリティ技術の重要性が一段と増してきている。このような情報セキュリティ技術の一つとして、暗号技術がプライバシーの保護や通信相手の確認のために用いられる。
しかしながら、暗号技術により何かを守ろうとすると、暗号化を打ち破ってそれを入手しようとする者が現れる。例えば、秘密鍵の値により、暗号処理時の計算時間や消費電力などが異なることを利用して、秘密鍵を求めるサイドチャネル攻撃が問題となっている(例えば、非特許文献1)。
その中でも代表的なものとして、RSA暗号方式、より正確には、秘密鍵を用いたRSA署名の署名処理や、RSA暗号の復号処理に対する単純電力攻撃(SPA、SimplePower Analysis)がある。RSA暗号方式における主要な処理は、秘密鍵をべきとするべき乗演算であり、べき乗演算は、2乗算と乗算の繰り返しで実現される。この場合、対応する秘密鍵のビットが「0」のとき乗算が行われず、「1」のときだけ乗算が行われるので、SPAでは、消費電力の波形判断により得た乗算及び2乗算のシーケンス情報から秘密鍵を求める。
このSPAに対抗するためには、秘密鍵の当該ビットが「0」の場合も乗算を行えばよい。以下、2つの具体的な従来方法について説明する。
その第1の方法では、秘密鍵の当該ビットが「0」のときには、「1」と乗算する(例えば、非特許文献2)。「1」と乗算しても結果は変わらないため、実質的に乗算を実施していないのと同じである。その上、秘密鍵のビット値に依存せずに乗算が行われるので、乗算の有無により、秘密鍵を求めることはできない。
また、SPAに対抗する第2の方法では、ビットが「0」であろうと「1」であろうと、まず乗算を行って、ビットが「1」の場合のみ乗算結果を使い、「0」の場合は乗算結果を使わないように制御する(例えば、特許文献1、特許文献2)。この方法も、ビット値に依存せずに乗算を行うため、乗算の有無により、秘密鍵を求めることはできない。
現実の脅威「サイドチャネル解析」(1)、日経エレクトロニクス2005.7.18号 "RSA暗号の電力解析法による攻撃とその対策"(Power Analysis and Countermeasure of RSACryptosystem)、電子情報通信学会論文誌A Vol.J88−A、 No.5 2005 P.L.Montgomery, "Modular Multiplicationwithout Trial Division," Mathematics ofComputation,Vol.44,No.170,pp.519-521 (1985) 特開2000−165375号公報 米国特許第6408075号公報
しかしながら、SPAに対抗する前記第1の方法については、乗算への入力の一方が、ハミング重みに偏りがある「1」であるため、これが電力変化に影響して「1」との乗算を区別でき、不正に解析される可能性がある。
また、第2の方法については、乗算のときを狙って、例えば、電源電圧にスパイクノイズを与える等の、故意にエラーを生じさせるエラー攻撃により、秘密鍵が解析される可能性がある。詳細には、乗算の際にエラーを起こし、その影響が出力に表れないと、結果を使っていない、つまり対応する秘密鍵のビットが「0」であったと解析できる。反対に、エラーの影響が出力に表れると、秘密鍵の対応するビットが「1」であったと解析できる。この解析は、エラー攻撃に対する通常の対策である検算機能を入れていたとしても、可能である。
そこで、本発明では、第1の方法を用いる場合において、上記課題を解決し、SPAに対抗することができる情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、記録媒体及び集積回路を提供することを目的とする。なお、本発明では、第1の方法をベースにしているので、前記第2の方法による攻撃は、意味がなくなる。
上記目的を達成するために、本発明は、所定の法において入力値を整数乗するべき乗剰余演算を行うために、前記整数の各桁毎に乗算を繰り返してべき乗値を算出して、前記入力値の安全又は確実な処理を行う情報セキュリティ装置であって、前記整数の1個の桁の値が0であるか否かを判断する判断手段と、取得した桁の値が0であると判断される場合に、値1に対するモンゴメリ変換値を用いる乗算剰余演算を行う乗算手段とを備えることを特徴とする。
この構成によると、「1」に対するモンゴメリ変換値との乗算剰余演算を用いるので、ハミング重みに偏りがある「1」の使用を避けることができ、SPAに対抗して、不正な解析を困難にすることができる。
ここで、前記情報セキュリティ装置は、RSA方式に基づいてRSA暗号文を復号するRSA復号装置、又はRSA方式に基づいて署名対象のメッセージに対して署名データの生成を行うRSA署名装置であり、さらに、前記入力値としてRSA暗号文を取得し、又は前記入力値として署名対象のメッセージを取得する取得手段と、秘密鍵として前記整数を記憶している記憶手段と、前記RSA暗号文から復号して得られる復号文として、又は前記メッセージに対する署名データとして、算出された前記べき乗値を出力する出力手段とを含むとしてもよい。
この構成によると、RSA方式に基づいてRSA暗号文を復号するRSA復号において、また、RSA方式に基づいて署名対象のメッセージに対して署名データの生成を行うRSA署名において、ハミング重みに偏りがある「1」の使用を避けることができ、SPAによる不正な解析を困難にすることができる。
ここで、前記情報セキュリティ装置は、入力値を取得する取得手段と、整数を記憶している記憶手段と、演算結果の値を格納する演算値変数に初期値を格納する初期化手段と、前記記憶手段から前記整数の上位桁から1個の桁の値を抽出する抽出手段と、前記演算値変数に格納されている値の少なくとも1回の二乗剰余演算に基づいて得られた値を前記演算値変数に上書きする二乗手段と、取得した桁の値が0であるか否かを判断する前記判断手段と、取得した桁の値が0であると判断される場合に、前記演算値変数に格納されている値と値1に対するモンゴメリ変換値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きし、0以外であると判断される場合に、前記演算値変数に格納されている値と前記入力値から定まる値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きする前記乗算手段と、前記整数の全ての桁について、前記抽出手段、前記二乗手段、前記判断手段及び前記乗算手段に対して、値の取得と、二乗剰余演算と、判断と、乗算剰余演算とを繰り返すように制御する繰返制御手段と、前記整数の全ての桁について前記繰返しが終了すると、前記演算値変数に格納されている値に基づく値を出力する出力手段とを備えるとしてもよい。
また、前記情報セキュリティ装置は、入力値を取得して入力値変数に格納する取得手段と、整数を記憶している記憶手段と、演算結果の値を格納する演算値変数に初期値を格納する初期化手段と、前記記憶手段から前記整数の下位桁から1個の桁の値を抽出する抽出手段と、前記入力値変数に格納されている値の少なくとも1回の二乗剰余演算に基づいて得られた値を前記入力値変数に上書きする二乗手段と、取得した桁の値が0であるか否かを判断する前記判断手段と、取得した桁の値が0であると判断される場合に、前記演算値変数に格納されている値と値1に対するモンゴメリ変換値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きし、0以外であると判断される場合に、前記演算値変数に格納されている値と前記入力値変数から定まる値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きする前記乗算手段と、前記整数の全ての桁について、前記抽出手段、前記二乗手段、前記判断手段及び前記乗算手段に対して、値の取得と、二乗剰余演算と、判断と、乗算剰余演算とを繰り返すように制御する繰返制御手段と、前記整数の全ての桁について前記繰返しが終了すると、前記演算値変数に格納されている値に基づく値を出力する出力手段とを備えるとしてもよい。
情報セキュリティ装置は、実施の形態のICカード100に相当し、取得手段は、入出力部102に相当し、記憶手段は、秘密鍵格納部113に相当し、初期化手段は、図4のステップS102に相当し、抽出手段は、抽出部122に相当し、二乗手段は、二乗算部115に相当し、判断手段は、図4のステップS106に相当し、乗算手段は、乗算部116に相当し、繰返制御手段は、制御部114に相当し、出力手段は、モンゴメリ逆変換部120及び入出力部102に相当する。
これらの構成によると、前記整数の上位の桁から又は下位の桁からの演算を行うことができる。
ここで、前記情報セキュリティ装置は、さらに、値1に対するモンゴメリ変換値を算出するモンゴメリ変換手段を含み、前記乗算手段は、前記乗算剰余演算において、前記モンゴメリ変換手段により算出されたモンゴメリ変換値を用いるとしてもよい。
モンゴメリ変換手段は、第2のモンゴメリ変換部112に相当する。
この構成によると、モンゴメリ変換手段により値1に対するモンゴメリ変換値を算出し、乗算手段は、算出されたモンゴメリ変換値を用いるので、値1に対するモンゴメリ変換値の算出を複数回行うことなく、演算回数を削減することができる。
ここで、前記情報セキュリティ装置は、さらに、前記法の値を設定する法設定手段と、前記法の有効ビット数より大きい整数kをランダムに選択する整数設定手段とを備え、前記モンゴメリ変換手段は、設定された前記法の値に基づいて、前記整数kを用いて、前記モンゴメリ変換値を算出するとしてもよい。
法設定手段は、法設定部117に相当し、整数設定手段は、整数設定部118に相当する。
この構成によると、前記法の有効ビット数より大きく、ランダムに選択された整数kをモンゴメリ変換値の算出において用いるので、「1」についてのハミング重みの偏りをさらに避けることができる。
ここで、前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法において値2のk乗値を算出するとしてもよい。
この構成によると、確実にモンゴメリ変換値を算出することができる。
ここで、前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法としての値の乱数倍の法において、値2のk乗値を算出するとしてもよい。
この構成によると、「1」についてのハミング重みの偏りをさらに避けることができるモンゴメリ変換値を算出することができる。
ここで、前記情報セキュリティ装置は、さらに、前記法設定手段は、さらに、前記法としての値の乱数倍の法を設定し、前記モンゴメリ変換手段は、法設定手段によりさらに設定された前記法において、値2のk乗値を算出するとしてもよい。
この構成によると、「1」についてのハミング重みの偏りをさらに避けることができるモンゴメリ変換値を算出することができる。
ここで、前記整数設定手段は、入力値を取得する毎に、前記整数kの値をランダムに変更するとしてもよい。
この構成によると、最初の入力値を用いたSPAの結果を、別の入力値において使用することを困難とすることができる。
ここで、前記法設定手段は、入力値を取得する毎に、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更するとしてもよい。
この構成によると、最初の入力値を用いたSPAの結果を、別の入力値において使用することを困難とすることができる。
ここで、前記整数設定手段は、前記繰返しの途中に、前記整数kの値をランダムに変更するとしてもよい。
この構成によると、繰返しの途中のプロセスにおけるSPAの結果を、繰返しの別のプロセスにおいて使用することを困難とすることができる。
ここで、前記法設定手段は、前記繰返しの途中に、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更するとしてもよい。
この構成によると、繰返しの途中のプロセスにおけるSPAの結果を、繰返しの別のプロセスにおいて使用することを困難とすることができる。
ここで、前記整数設定手段は、外部からの指示により、前記整数kの値をランダムに変更するとしてもよい。
この構成によると、外部からの指示の前におけるSPAの結果を、外部からの指示の後において使用することを困難とすることができる。
ここで、前記法設定手段は、外部からの指示により、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更するとしてもよい。
この構成によると、外部からの指示の前におけるSPAの結果を、外部からの指示の後において使用することを困難とすることができる。
ここで、前記情報セキュリティ装置は、さらに、前記入力値に対するモンゴメリ変換値を算出するモンゴメリ変換手段を含み、前記乗算手段は、取得した桁の値が0以外であると判断される場合に、前記モンゴメリ変換手段により算出された前記モンゴメリ変換値を用いて乗算剰余演算を行うとしてもよい。
モンゴメリ変換手段は、第1のモンゴメリ変換部111に相当する。
この構成によると、取得した桁の値が0以外であると判断される場合においても、SPAに対抗して、不正な解析を困難にすることができる。
ここで、前記情報セキュリティ装置は、さらに、前記法の値を設定する法設定手段と、前記法の有効ビット数より大きい整数kをランダムに選択する整数設定手段とを備え、前記モンゴメリ変換手段は、設定された前記法の値に基づいて、前記整数kを用いて、前記モンゴメリ変換値を算出するとしてもよい。
法設定手段は、法設定部117に相当し、整数設定手段は、整数設定部118に相当する。
この構成によると、前記法の有効ビット数より大きく、ランダムに選択された整数kをモンゴメリ変換値の算出において用いるので、入力値についてのハミング重みの偏りをさらに避けることができる。
ここで、前記モンゴメリ変換手段は、前記法において、値2のk乗値を算出し、前記入力値と算出された値とを乗じて得られた値を前記モンゴメリ変換値とするとしてもよい。
この構成によると、確実にモンゴメリ変換値を算出することができる。
ここで、前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法としての値の乱数倍の法において、値2のk乗値を算出するとしてもよい。
この構成によると、入力値についてのハミング重みの偏りをさらに避けることができるモンゴメリ変換値を算出することができる。
本発明に係る1個の実施の形態としてのコンテンツ再生システム1について説明する。
1.コンテンツ再生システム1の構成
コンテンツ再生システム1は、図1に示すように、ICカード100、DVDプレーヤ200及びサーバ装置400から構成されている。DVDプレーヤ200及びサーバ装置400は、ネットワーク10を介して相互に接続されている。
DVDプレーヤ200には、利用者によりDVD300が装着される。DVD300は、図2に示すように、暗号化コンテンツ301及び暗号化コンテンツ鍵302を記録している。暗号化コンテンツ301は、コンテンツ鍵を用いて、映像及び音声からなるコンテンツに、暗号化アルゴリズムAES(AdvancedEncryption Standard)を施して生成されたものであり、暗号化コンテンツ鍵302は、前記コンテンツの利用の許可を示すライセンス鍵Lを用いて、前記コンテンツ鍵に、暗号化アルゴリズムAESを施して生成されたものである。
サーバ装置400は、DVDプレーヤ200の要求により、ICカード100の利用者の公開鍵(e、p)を用いて、ライセンス鍵Lに、暗号化アルゴリズムRSAを施して、暗号化ライセンス鍵Cを生成する。
C=Le mod p
なお、RSAの公開鍵の生成については、周知であるので、説明を省略する。
次に、サーバ装置400は、生成した暗号化ライセンス鍵Cを、DVDプレーヤ200の要求により、ネットワーク10を介して、DVDプレーヤ200へ送信する。
DVDプレーヤ200は、図2に示すように、通信部211、入出力部212、復号部213、復号部214、再生部215及びドライブ部216から構成されており、モニタ201及びスピーカ202がDVDプレーヤ200に接続されている。
DVDプレーヤ200の通信部211は、サーバ装置400からネットワーク10を介して、暗号化ライセンス鍵Cを受信する。DVDプレーヤ200には、利用者によりICカード100が装着される。DVDプレーヤ200の入出力部212は、受信した暗号化ライセンス鍵CをICカード100へ出力する。
ICカード100は、公開鍵復号部101及び入出力部102から構成されている。ICカード100の入出力部102は、DVDプレーヤ200から暗号化ライセンス鍵Cを受け取り、公開鍵復号部101は、入力データとして受け取った暗号化ライセンス鍵Cを、後述するようにして復号して、出力データとして復号ライセンス鍵を生成し、入出力部102は、生成した復号ライセンス鍵をDVDプレーヤ200へ出力する。
DVDプレーヤ200の入出力部212は、ICカード100から復号ライセンス鍵を受け取り、ドライブ部216は、DVD300から暗号化コンテンツ301及び暗号化コンテンツ鍵302を読み出し、復号部213は、受け取った復号ライセンス鍵を用いて、暗号化コンテンツ鍵302を復号して復号コンテンツ鍵を生成し、復号部214は、生成した復号コンテンツ鍵を用いて、暗号化コンテンツ301を復号して復号コンテンツを生成し、再生部215は、復号コンテンツを再生して映像信号及び音声信号を生成し、生成した映像信号をモニタ201へ出力し、生成した音声信号をスピーカ202へ出力する。
ここで、ICカード100及びDVDプレーヤ200は、それぞれ、具体的には、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。
なお、図2において、DVDプレーヤ200の各構成部を示す各ブロックは、接続線により他のブロックと接続されている。ただし、一部の接続線を省略している。ここで、各接続線は、信号や情報が伝達される経路を示している。また、復号部213を示すブロックに接続している複数の接続線のうち、接続線上に鍵マークが描かれているものは、復号部213へ鍵としての情報が伝達される経路を示している。復号部214を示すブロックについても同様である。
ここで、ICカード100は、所定の法において入力値を整数乗するべき乗剰余演算により、入力値の安全な処理を行う情報セキュリティ装置である。
2.公開鍵復号部101の構成
公開鍵復号部101は、図3に示すように、記憶部121、第1モンゴメリ変換部111、第2モンゴメリ変換部112、秘密鍵格納部113、制御部114、二乗算部115、乗算部116、法設定部117、整数設定部118、設定制御部119及びモンゴメリ逆変換部120から構成されている。
公開鍵復号部101は、秘密鍵Sと法pを内部に記憶しており、入力データCを入力として公開鍵暗号の計算を行い、計算結果の出力データM=Cs mod pを出力する。ここで、出力データMは、秘密鍵Sをべきとし、pを法とする入力データCのべき乗剰余演算値である。mod pは、pで除したときの剰余を求めることを示す。なお、本実施の形態において、前記公開鍵暗号の計算はRSA暗号の復号処理である。従って、入力データは暗号文C、出力データは復号文Mに相当する。具体的には、入力データは、上述した暗号化ライセンス鍵であり、出力データは、上述した復号ライセンス鍵である。
公開鍵復号部101は、前述した秘密鍵Sの各ビットの上位から1ビットずつについて、設定された法におけるモンゴメリ領域での2乗算と乗算とを繰り返す高速べき指数演算を行う。公開鍵復号部101の全体の動作については後述する。
(1) 法設定部117、整数設定部118及び設定制御部119
法設定部117は、設定制御部119の制御により、モンゴメリ変換、2乗算、乗算で用いる法pを設定する。法設定部117は、設定した法pを第1モンゴメリ変換部111、第2モンゴメリ変換部112、二乗算部115、乗算部116及びモンゴメリ逆変換部120へ出力する。
整数設定部118は、設定制御部119の制御により、pのビット数よりも大きい整数kを、ランダムに設定する。なお、ここでpの「ビット数」とは、pのうち、値「1」がセットされている最上位のビット位置から最下位のビット位置までのビット長であり、いわゆる「有効ビット数」のことを意味する。整数設定部118は、整数kを第1モンゴメリ変換部111、第2モンゴメリ変換部112、二乗算部115、乗算部116及びモンゴメリ逆変換部120へ出力する。
設定制御部119は、整数設定部118に対して、整数kの設定範囲や設定変更のタイミングを制御する。設定変更のタイミングの一例として、設定制御部119は、入力データCの値が変わるごとに変更してもよいし、入力データCの演算途中で変更してもよい。
ここで設定された整数kと法pとは、以降の、モンゴメリ変換、二乗算、乗算及びモンゴメリ逆変換で用いられる。
(2)記憶部121、第1モンゴメリ変換部111及び第2モンゴメリ変換部112
記憶部121は、入出力部102から入力データCを受け取り、受け取った入力データCを記憶する。
第1モンゴメリ変換部111は、記憶部121から入力データCを読み出し、法設定部117から法pを受け取り、整数設定部118から整数kを受け取る。次に、入力データC、法p及び整数kを用いて、次式により、Cのモンゴメリ変換値Bを算出する。
モンゴメリ変換値B=C×(2k )mod p
次に、第1モンゴメリ変換部111は、算出したモンゴメリ変換値Bを制御部114へ出力する。
また、第2モンゴメリ変換部112は、法設定部117から法pを受け取り、整数設定部118から整数kを受け取る。次に、法p及び整数kを用いて、次式により、「1」のモンゴメリ変換値Aを算出する。
モンゴメリ変換値A=(2k )mod p
次に、第2モンゴメリ変換部112は、算出したモンゴメリ変換値Aを制御部114へ出力する。
なお、以降ではモンゴメリ変換をMon_{k,p}(X)と表記する。
Mon_{k,p}(X) = X×2k mod p (式1)
なお、変換関数の{k,p}は、モンゴメリ変換値が、整数k、法pに依存することを示す。この表記を用いると、第1モンゴメリ変換部111により出力されるモンゴメリ変換値Bは、Mon_{k,p}(C)であり、第2モンゴメリ変換部112により出力されるモンゴメリ変換値Aは、Mon_{k,p}(1)である。
(3)秘密鍵格納部113
秘密鍵格納部113は、公開鍵暗号の秘密鍵Sを格納している。秘密鍵Sは、安全性確保のため少なくとも2048ビット以上は必要とされている。
(4)抽出部122、制御部114、二乗算部115及び乗算部116
抽出部122は、制御部114の指示により、秘密鍵格納部113に格納されている秘密鍵Sの各ビットの上位から1ビットずつ抽出し、抽出したビットの値を制御部114へ出力する。
制御部114は、秘密鍵Sの上位から1ビットについて、2乗算と乗算の処理を繰り返す。例えば、秘密鍵が2048ビットの場合は2048回、2乗算と乗算の処理を繰り返す。繰り返しが終了したら、モンゴメリ逆変換部120は、その演算結果をモンゴメリ逆変換し、公開鍵復号部101は、M=CSmod pを出力する。
制御部114は、上記繰り返し制御とともに、秘密鍵の当該ビットが「1」のときには、第1モンゴメリ変換部111の出力値を選択し、「0」のときには第2モンゴメリ変換部112の出力値を選択する。
二乗算部115及び乗算部116は、それぞれ、モンゴメリ領域での2乗算及び乗算を実行する。
ここでのモンゴメリ領域の乗算は、モンゴメリ領域に変換された2個の入力値、例えば、Mon_{k,p}(X)とMon_{k,p}(Y)の積に対して、モンゴメリリダクション処理を行い、モンゴメリ領域の乗算結果Mon_{k,p}(Z)=Mon_{k,p}(X×Y)を求めるものである。2乗算は、上記XとYが同じ場合に相当する。
ここで、モンゴメリリダクションは、倍長値U(上記では、X×Y)に対して、U×(2k-1 mod pの演算を、除算なしで高速に実装する方法である。モンゴメリリダクションの詳細については、例えば非特許文献3に詳しい。
なお、仮に法のビット数が2048ビットである場合、二乗算部115と乗算部116を、2048ビットの乗算器で実装するのは実装規模が巨大となり現実的でない。そのため、例えば32ビット程度の乗算器を繰り返して用いる多倍長演算方法で実現するのが、一般的である。
(5) モンゴメリ逆変換部120
モンゴメリ逆変換部120は、モンゴメリ領域での2乗算と乗算との繰り返しの最終結果に、モンゴメリ逆変換を施して、出力データMを求める。以降ではモンゴメリ逆変換を
Mon_{k,p}-1( )と表記する。
Mon_{k,p}-1(X)=X×(2k-1 mod p (式2)
なお、モンゴメリ変換とモンゴメリ逆変換について、式3が成り立つ。
Mon_{k,p}-1(Mon_{k,p}(X))=X (式3)
モンゴメリ逆変換部120は、出力データMを入出力部102へ出力する。
3.公開鍵復号部101の動作
公開鍵復号部101による高速べき乗剰余演算の動作について、図4に示すフローチャートを用いて説明する。
法設定部117は、法pを定め、整数設定部118は、整数kを定め、第1モンゴメリ変換部111は、モンゴメリ変換値B=C×(2k )mod p を算出し、第2モンゴメリ変換部112は、モンゴメリ変換値A=(2k)mod p を算出する(ステップS101)。
制御部114は、第2モンゴメリ変換部112によるモンゴメリ変換値Aを選択し、演算結果の値を格納する演算値領域に設けられた変数としての演算結果Wに、初期値として選択したモンゴメリ変換値Aを書き込む。
W=Mon_{k,p}(1)=(2k )mod p (ステップS102)
制御部114は、抽出部122により、秘密鍵格納部113に格納されている秘密鍵Sの最上位から1ビットずつ抽出を試みる(ステップS103)。
秘密鍵Sの最上位のビットから最下位のビットまで、前記抽出が完了したら(ステップS104でYES)、制御部114は、モンゴメリ逆変換部120に対して演算結果Wのモンゴメリ逆変換をするように制御し、モンゴメリ逆変換部120は、演算結果Wに対して、モンゴメリ逆変換を施して、出力データMを生成する。
M=Mon_{k,p}-1(W)
次に、モンゴメリ逆変換部120は、出力データMを入出力部102へ出力する。ここで、M=CS mod pである(ステップS109)。こうして、公開鍵復号部101による高速べき乗剰余演算が終了する。
抽出が完了していない場合(ステップS104でNO)、制御部114は、二乗算部115に対して演算結果Wをモンゴメリ領域で2乗するように制御し、二乗算部115は、演算結果Wをモンゴメリ領域で2乗し、その2乗値を演算結果Wに上書きする。
W=Mon_{k,p}(W×W) (ステップS105)。
次に、制御部114は、抽出したビットが「1」か又は「0」であるかを判断し、秘密鍵Sから抽出した当該ビットが「1」のときには(ステップS106)、第1モンゴメリ変換部111により出力されるモンゴメリ変換値Bを選択し、乗算部116に対してモンゴメリ乗算を算出するように制御し、乗算部116は、演算結果Wと第1モンゴメリ変換部111により出力されるモンゴメリ変換値B=Mon_{k,p}(C)とを乗算し、得られた値を演算結果Wへ上書きする。
W=Mon_{k,p}(W×B) (ステップS107)。次に、制御部114は、制御をステップS103へ移す。
一方、秘密鍵Sから抽出した当該ビットが「0」のときには、制御部114は、第2モンゴメリ変換部112の出力値を選択し、乗算部116に対してモンゴメリ乗算を算出するように制御し、乗算部116は、演算結果Wと第2モンゴメリ変換部112の出力値であるA=Mon_{k,p}(1)とを乗算し、得られた値を演算結果Wへ上書きする。
W=Mon_{k,p}(W×A) (ステップS108)。次に、制御部114は、制御をステップS103へ移す。
3.実施の形態の効果
まず、図4に示すフローチャートから明らかなように、秘密鍵Sの当該ビットが「1」であるか又は「0」であるかにかかわらず、必ずモンゴメリの乗算部116は動作する。そのため、乗算の有無で解析を行う攻撃であるSPAは困難である。
本実施の形態では、秘密鍵の当該ビットが「0」である場合の乗算には、モンゴメリ領域での「1」(Mon_{k,p}(1)と表記)を用いる。このモンゴメリ領域での「1」は整数kと法pに依存して定まる値であるため、kおよびpを知らない攻撃者はハミング重みを予測することができない。そのためモンゴメリ領域での「1」を判別して解析をすることは困難である。
また、万が一、ハミング重みが攻撃者により求められてしまった場合には、モンゴメリ領域での「1」を判別する解析が成功するかもしれない。本実施の形態では、さらに、法pのビット数以上という制限のもとに、整数kを任意に変更することにより、ハミング重みも変更される。これにより、いっそう、解析が困難となる。
なお、その変更タイミングは頻繁であるほど、さらに、その整数kの取りうるバラエティが多いほど、ダミー乗算を区別することは困難であり安全性が向上する。しかし、kをむやみに大きくとると1回の2乗算や乗算の処理時間が一般には増加するため、どの程度のバラエティをもったkの大きさにするのか、あるいは変更のタイミングをどう設定するのかは、アプリケーションに必要とされる速度と安全性に依存して決定する。図3における設定制御部119がこれらの制御をする。
4.その他の変形例
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)公開鍵復号部101による上記とは別の高速べき乗剰余演算の動作について、図5に示すフローチャートを用いて説明する。
法設定部117は、法pを定める。ここで、法pは、例えば、512ビットの秘密の素数である。また、法設定部117は、pより大きい任意の2のべき乗値Rを定める。例えば、乱数kを生成し、R=2kとする。例えば、R=2512 である。また、法設定部117は、乱数rを生成する(ステップS201)。
次に、第2モンゴメリ変換部112は、モンゴメリ変換値yを算出する。
y=M(1)=R mod p =R − p
yは、演算結果の値を格納するための演算値領域に設けられる変数である。
なお、ここでは、「Mon_{k,p}(1)」を更に簡略に「M(1)」と表現している(ステップS202)。
制御部114は、抽出部122により、秘密鍵格納部113に格納されている秘密鍵Sの最上位から1ビットずつ抽出を試みる(ステップS203)。
秘密鍵Sの最上位ビットから最下位ビットまで、抽出が完了したら(ステップS204でYES)、yを出力し(ステップS209)、公開鍵復号部101による高速べき乗剰余演算が終了する。
抽出が完了していない場合(ステップS204でNO)、二乗算部115は、次式による二乗算を行う。
y={y×y}×R-1 mod r×p (ステップS205)。
次に、制御部114は、抽出したビットが「1」か又は「0」であるかを判断し、秘密鍵Sから抽出した当該ビットが「1」のときには(ステップS206)、乗算部116は、次式による乗算を行う。
y={y×M(C)}×R-1 mod r×p (ステップS207)。
次に、制御部114は、制御をステップS203へ移す。
一方、秘密鍵Sから抽出した当該ビットが「0」のときには、乗算部116は、次式による乗算を行う。
y={y×M(1)}×R-1 mod r×p (ステップS208)。
次に、制御部114は、制御をステップS103へ移す。
この変形例では、公開鍵復号部101は、モンゴメリ逆変換部120を含んでない。
(2)整数kの変更タイミングは、入力データごとであってもよい。つまり、第1の入力データを取得すると、整数kの値をランダムに変更し、次に第2の入力データを取得すると、整数kの値をさらにランダムに変更し、さらに第3の入力データを取得すると、整数kの値をさらにランダムに変更する。
また、複数の入力データに対して同じkを用いてもよい。次の複数の入力データに対して、別の同じ整数を用いてもよい。
また、ある入力データの演算の途中(繰返しの途中)でランダムに変更してもよい。また、外部よりアプリケーションやユーザが指示するタイミングでランダムに変更してもよい。
第1及び第2モンゴメリ変換部において用いられる法についても、上記と同様に、入力データごとにランダムに変更してもよいし、複数の入力データに対して同じ法を用いてもよいし、次の複数の入力データに対して、別の同じ整数を用いてもよいし、ある入力データの演算の途中(繰返しの途中)でランダムに変更してもよいし、外部よりアプリケーションやユーザが指示するタイミングでランダムに変更してもよい。
(3)(a)pの乱数倍を法として用いて、第2モンゴメリ変換部112の出力を求めてもよい。つまり、法設定部117は、乱数rを生成し、生成した乱数rを第2モンゴメリ変換部112へ出力する。第2モンゴメリ変換部112は、
k mod (r×p)を出力する。
このことにより、第1モンゴメリ変換部111あるいは第2モンゴメリ変換部112のいずれを使用しているのかを区別することがよりいっそう困難となり安全性が向上する。
このとき、第2モンゴメリ変換部112の法は、pのままでよいし、また、別の乱数倍であってもよい。
このように、第1モンゴメリ変換部111の法と、第2モンゴメリ変換部112の法とに対して独立して設定されるとしてもよい。
なお、モンゴメリ逆変換部120の法は、pのままである。
(b)また、第1モンゴメリ変換部111で用いる法をpの乱数倍としてもよい。このとき、第2モンゴメリ変換部112の法は、pのままでよいし、また、別の乱数倍であってもよい。なお、モンゴメリ逆変換部120の法は、pのままとする。これにより、1つの入力データの演算中の、複数箇所の電力変化間の相関を計算する攻撃に対して安全性が向上する。
また、まずpの乱数倍を新たな法として求めた後、これを用いて第1モンゴメリ変換部111、第2モンゴメリ変換部112、そして二乗算部115や乗算部116での計算を行ってよい。ただし、この場合、定められた法のもとの最終出力を得るためには、出力の前に、法pで剰余演算をしてから、出力することが必要になる。
(c)上記(a)(b)において、第1モンゴメリ変換部111においてpの乱数倍の法(第1の法)が用いられ、第2モンゴメリ変換部112においてpの別の乱数倍の法(第2の法)が用いられる場合、つまり、第1の法と第2の法とが異なる場合には、二乗算部115と乗算部116とにおいて用いられる法は、第1の法と第2の法の公倍数とし、モンゴメリ逆変換部120において用いられる法は、pのままとすればよい。
(4)入力データ及び出力データを、モンゴメリ領域の値としてもよい。この場合、実施の形態で含まれている、第1モンゴメリ変換部111とモンゴメリ逆変換部120は公開鍵復号部101の外に実装されてもよい。これは、例えば大きなシステムの中の一部として公開鍵復号部101が実装されており、公開鍵暗号の演算のみならず、すべてをモンゴメリ領域で実装する場合である。
(5)本実施の形態では、秘密鍵を1ビットずつ処理する高速バイナリべき乗剰余演算を用いているが、何も1ビットごとの処理だけとは限らない。
例えば、2ビットごとの処理であれば、二乗算部115では2回の2乗算を行い、制御部114では、秘密鍵の2ビットに対応して4種類のモンゴメリ変換部からの出力値を選択し、選択した出力値を乗算部116で乗算する。
なお、この4種類のモンゴメリ変換部のうちの1つは、「1」のモンゴメリ変換部(つまり、ダミー乗算の入力値を求める部分)となり、秘密鍵の当該2ビットが両方とも「0」である場合に選択される。
ここで、2ビットが「00」のとき、対応するモンゴメリ変換部は、「1」のモンゴメリ変換値を出力し、2ビットが「01」のとき、対応するモンゴメリ変換部は、「C」のモンゴメリ変換値を出力する。また、2ビットが「10」のとき、対応するモンゴメリ変換部は、「C2」のモンゴメリ変換値を出力し、2ビットが「11」のとき、対応するモンゴメリ変換部は、「C3 」のモンゴメリ変換値を出力する。
もちろん秘密鍵を3ビット以上ごとに処理する場合であっても、上記を拡張して適用することで実現できる。
また、本実施の形態では、秘密鍵を上位から処理するアルゴリズムを用いているが、下位から処理するものであってもよい。この場合には、入力データに対応したモンゴメリ変換値を繰り返し2乗し、秘密鍵の対応するビットが1のときには、前記2乗演算値を乗算し、0のときには、本実施の形態と同様に、整数kと法pから求められる値を用いたダミー乗算を行う。
この場合における公開鍵復号部101による高速べき乗剰余演算の動作について、図4との相違点を中心として、図6に示すフローチャートを用いて説明する。
図4に示すステップS103に代えて、ステップS103aにおいて、制御部114は、抽出部122により、秘密鍵格納部113に格納されている秘密鍵Sの最下位から1ビットずつ抽出を試みる。
秘密鍵Sの最下位のビットから最上位のビットまで、前記抽出が完了したら(ステップS104aでYES)、制御部114は、モンゴメリ逆変換部120に対して演算結果Wのモンゴメリ逆変換をするように制御する。
抽出が完了していない場合(ステップS104aでNO)、図4に示すステップS105に代えて、ステップS105aにおいて、制御部114は、二乗算部115に対して入力データCをモンゴメリ領域で2乗するように制御し、二乗算部115は、入力データCをモンゴメリ領域で2乗し、その2乗値を入力データCに上書きする。
C=Mon_{k,p}(C×C)
(6)本実施の形態では、RSA暗号の復号処理で説明したが、次に示すように、RSA署名の署名生成に適用してもよい。
RSAの鍵生成を行う。RSAの鍵生成は、RSA暗号の場合と同じであるので詳細を省略する。
ここで、秘密鍵をdとし、公開鍵をe、pとする。
署名生成装置は、次式により、文書mに対して、署名データsを生成する。
s=h(m)d mod p
ここで、h( )は、一方向性ハッシュ関数である。
本発明は、前記署名生成装置において、上記の実施の形態と同様にして適用される。前記署名生成装置は、所定の法において入力値を整数乗するべき乗剰余演算により、入力値の確実な処理を行う情報セキュリティ装置である。
なお、署名検証装置は、次式により、署名の検証を行う。
h(m)=se mod p
また、本発明は、RSA暗号の暗号処理において、公開鍵を秘匿するようなアプリケーションの場合に、適用することができる。
さらに、楕円曲線暗号や超楕円曲線暗号における、秘密鍵を用いた処理におけるSPA対策としても用いることができる。
(7)上記の実施の形態及び変形例は、次に示すような場合において適用される。
(a)実施の形態及び変形例は、秘密のメッセージ伝送において適用される。
本実施の形態において、秘密のメッセージ伝送の一例として、ライセンス鍵を秘密に伝送する場合について説明した。
上述したように、ICカード100は、所定の法において入力値を整数乗するべき乗剰余演算により、入力値の安全な処理を行う情報セキュリティ装置である。ここで、「安全」とは、メッセージが送信者及び受信者以外の第三者に知られないように秘密にすることをいう。
本発明は、コンテンツ暗号化装置とコンテンツ再生装置とから構成されるコンテンツ配信システムにおいて適用され、例えば、映画、動画像、音声、音楽、小説、データベースなどのデジタル情報を秘密通信の対象としてもよい。これらのコンテンツは、コンテンツ供給者から利用者に対して、これらのコンテンツを記録している記録媒体を販売したり、レンタルすることにより、提供される。また、デジタル放送やインターネットを介して、コンテンツ供給者から利用者に提供される。
コンテンツ供給者の有するコンテンツ暗号化装置は、デジタル著作物である映画を暗号化してDVDに記録する。利用者の有するコンテンツ再生装置は、DVDから暗号化デジタル著作物を読み出し、復号して、映画を生成し、生成した映画を音声及び映像として再生して、表示及び出力する。
上記の例において、コンテンツを暗号化及び復号するためのコンテンツ鍵を、実施の形態に示す秘密通信の対象としてもよい。この場合、コンテンツ鍵は、実施の形態に示す方法と同様にして、暗号化され、また復号される。
この場合に、コンテンツは、コンテンツ鍵により、共通鍵暗号方式を用いて、暗号化され、復号される。
次に示すような金銭の決済システムに適用することもできる。
例えば、通貨の代わりに用いることができる電子マネーを秘密通信の対象とし、ICカードは、電子マネーを記憶しており、利用者が、商品を購入する際に、ICカードは、商品の購入額に相当する電子マネーを暗号化して送信し、また、内部に記憶している電子マネーから送信した分を減じる。商店に設置されるレジスタ装置は、暗号化電子マネーを受信し、受信した暗号化電子マネーを復号して電子マネーを再生し、記憶する。
また、上記のICカードに代えて、美術館や博物館などの各種施設を利用のためのICカードタイプの電子チケットが、上記のように、電子マネーに相当する情報を記憶しているとしてもよい。各種施設の入り口に設けられた入場管理装置は、各種施設の利用料金に相当する額の電子マネーを要求し、前記電子チケットは、要求された額の電子マネーを暗号化して送信し、入場管理装置は、暗号化電子マネーを受信し、受信した暗号化電子マネーを復号して電子マネーを生成し、記憶するとしてもよい。
また、鉄道、バスなどの交通機関を利用する際に用いられるICカードタイプのICカード乗車券が、上記のように、電子マネーに相当する情報を記憶しているとしてもよい。交通機関の駅の入り口に設けられた入場管理装置は、当該駅を識別する識別情報を送信し、ICカード乗車券は、前記識別情報を受信し、記憶する。交通機関の駅の出口に設けられた出場管理装置は、前記識別情報をICカード乗車券から受信し、受信した識別情報と当該出場管理装置が設けられた駅とを用いて、料金表により乗車料金を算出し、算出した乗車料金に相当する額の電子マネーを要求し、ICカード乗車券は、要求された額の電子マネーを暗号化して送信し、出場管理装置は、暗号化電子マネーを受信し、受信した暗号化電子マネーを復号して電子マネーを生成し、記憶する。
(b)実施の形態及び変形例は、認証において適用される。認証とは、メッセージが自称どおりの人物によって送られたこと、またメッセージが改竄されなかったということの検証である。また、実施の形態及び変形例は、身分の証明において適用される。身分の証明とは、例えば、データへのアクセス権、又は施設へのアクセス権(入室権)を持つことの証明、又は自分が主張どおりの人物であることの証明である。さらに、実施の形態及び変形例は、否認防止において適用される。否認防止とは、例えば、実は何かに同意したのに、同意していないと主張する者に対抗することをいう。
上記の変形例において、認証の一例として、RSAデジタル署名について説明した。本発明は、上述した署名生成装置において、上記の実施の形態と同様にして適用される。前記署名生成装置は、所定の法において入力値を整数乗するべき乗剰余演算により、入力値の確実な処理を行う情報セキュリティ装置である。
ここで、「確実」とは、例えば、メッセージが自称どおりの人物によって送られたこと、またメッセージが改竄されなかったことである。また、例えば、データへのアクセス権を持つこと、施設へのアクセス権(入室権)を持つこと、又は自分が主張どおりの人物であることである。
(c)実施の形態及び変形例は、鍵交換(鍵共有とも呼ぶ)において適用される。鍵交換とは、例えば、2人の人が放送電波を使ってある秘密鍵暗号方式で使うための秘密鍵に同意することである。
鍵交換の典型的な方法として、DH(ディフィーヘルマン)鍵交換という方法がある。ここでは、鍵を交換しあうそれぞれが、秘密のべき数を任意に生成し、これを用いてべき乗演算を行う。
このときの、べき乗演算に本発明を適用し、秘密のべき数を秘匿して秘密の共通鍵を共有することができる。
(d)実施の形態及び変形例は、零知識証明において適用される。零知識証明とは、例えば、ある人が、数論的あるいは組合せ論的問題を解くことに成功したことを、解が何であるかのわずかの情報さえ与えることなく、他人にこのことを納得させることを言う。
(e)上述したように、本発明は、秘密のべき値を用いたべき乗演算を用いるプロトコル方式に適用することができる。
(8)本発明は、入力データと秘密鍵を使って、定められた法における乗算を繰り返してべき乗剰余計算を行う情報セキュリティ装置である。前記情報セキュリティ装置は、前記入力データに対応したモンゴメリ変換値を求める第1のモンゴメリ変換部と、1のモンゴメリ変換値を求める第2のモンゴメリ変換部と、秘密鍵のビットが0ならば、前記第2のモンゴメリ変換部の出力を選択し、そうでなければ前記第1のモンゴメリ変換部の出力を選択する制御部と、これまで計算した結果と前記制御部で選択した値を用いて乗算を行う乗算部を備えており、前記法をpとし、pの有効ビット数より大きな整数をkとするとき、前記第2のモンゴメリ変換部は、前記pを法として、前記kをべきとする2のべき乗値を出力する。この情報セキュリティ装置によると、第2のモンゴメリ変換部の出力(モンゴメリ領域での1)は、整数kと法pに依存して決定される。そのため、ハミング重みに偏りはなく、電力変化を用いて、乗算の入力として第1のモンゴメリ変換部の出力を用いたのか、第2のモンゴメリ変換部の出力を用いたのかを区別することは困難である。
ここで、前記pの有効ビット数より大きな整数kをランダムに選択する整数k設定部を備えると構成してもよい。この構成によると、ランダムに選択される整数kに依存して、第2のモンゴメリ変換部の出力が変わる。そのため、複数入力データにわたり、電力変化の相関を計算する攻撃に対して安全性が向上する。
ここで、前記第2のモンゴメリ変換部は、前記pの乱数倍を法として、前記kをべきとする2のべき乗値を出力すると構成してもよい。この構成によると、ランダムに選択される法の値に依存して、第2のモンゴメリ変換部の出力が変わる。そのため、複数入力データにわたり、電力変化の相関を計算する攻撃に対して安全性が向上する。
ここで、前記第1のモンゴメリ変換部は、前記pの乱数倍を法として、前記入力データに対応したモンゴメリ変換値を出力すると構成してもよい。この構成によると法の変化に依存して、第1のモンゴメリ変換部の出力が変わる。このため、1つの入力データの演算中の、複数箇所の電力変化間の相関を計算する攻撃に対して安全性が向上する。
ここで、前記pの乱数倍を新たに法とする法変更部を備え、設定した法を用いて前記第1のモンゴメリ変換部、第2のモンゴメリ変換部および前記乗算部にて所定の計算が処理されると構成してもよい。この構成によると法変更部で変更される法に依存して、第1のモンゴメリ変換部、第2のモンゴメリ変換部のみならず、乗算部で用いる法も変換されるため、よりいっそう電力変化と秘密鍵の相関が小さくなり安全性が向上する。
ここで、前記整数kあるいは前記法は、外部からの指示により変更されると構成してもよい。この構成によると、外部のアプリケーションやユーザが指定したタイミングで整数kや法を変化させることで、そのタイミングに対応した性能と安全性を有した情報セキュリティ装置が実現できる。
(9)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、などから構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。ここで、コンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。つまり、前記マイクロプロセッサは、前記コンピュータプログラムに含まれる各命令を1個ずつ読み出し、読み出した命令を解読し、解読結果に従って動作する。
(10)上記の各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されてもよい。また、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(FieldProgrammable Gate Array)やLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(11)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAM、などから構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
(12)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(13)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明の情報セキュリティ装置および情報セキュリティ方法は、秘密鍵を用いて公開鍵暗号演算や署名演算を実現する暗号モジュールにおいて、特にICカードやセキュアカードのように解読者側の手に渡って、SPAなどの攻撃が行われる懸念がある場合に利用される。
本発明を構成する各装置は、秘密のメッセージ伝送や認証を必要とするあらゆる産業において、経営的に、また継続的及び反復的に使用することができる。また、本発明を構成する各装置は、電器機器製造産業において、経営的に、また継続的及び反復的に、製造し、販売することができる。
本発明に係る1個の実施の形態としてのコンテンツ再生システム1の構成を示すシステム構成図である。 ICカード100及びDVDプレーヤ200の構成を示すブロック図である。 公開鍵復号部101の構成を示すブロック図である。 公開鍵復号部101による高速べき乗剰余演算の動作を示すフローチャートである。 公開鍵復号部101による別の高速べき乗剰余演算の動作を示すフローチャートである。 秘密鍵の下位ビットから処理する場合における公開鍵復号部101による高速べき乗剰余演算の動作を示すフローチャートである。
符号の説明
1 コンテンツ再生システム
10 ネットワーク
100 ICカード
101 公開鍵復号部
102 入出力部
111 第1モンゴメリ変換部
112 第2モンゴメリ変換部
113 秘密鍵格納部
114 制御部
115 二乗算部
116 乗算部
117 法設定部
118 整数設定部
119 設定制御部
120 モンゴメリ逆変換部
200 DVDプレーヤ
201 モニタ
202 スピーカ
211 通信部
212 入出力部
213 復号部
214 復号部
215 再生部
216 ドライブ部
300 DVD
400 サーバ装置

Claims (23)

  1. 所定の法において入力値を整数乗するべき乗剰余演算を行うために、前記整数の各桁毎に乗算を繰り返してべき乗値を算出して、前記入力値の安全又は確実な処理を行う情報セキュリティ装置であって、
    前記整数の1個の桁の値が0であるか否かを判断する判断手段と、
    取得した桁の値が0であると判断される場合に、値1に対するモンゴメリ変換値を用いる乗算剰余演算を行う乗算手段と
    を備えることを特徴とする情報セキュリティ装置。
  2. 前記情報セキュリティ装置は、RSA方式に基づいてRSA暗号文を復号するRSA復号装置、又はRSA方式に基づいて署名対象のメッセージに対して署名データの生成を行うRSA署名装置であり、さらに、
    前記入力値としてRSA暗号文を取得し、又は前記入力値として署名対象のメッセージを取得する取得手段と、
    秘密鍵として前記整数を記憶している記憶手段と、
    前記RSA暗号文から復号して得られる復号文として、又は前記メッセージに対する署名データとして、算出された前記べき乗値を出力する出力手段と
    を含むことを特徴とする請求項1に記載の情報セキュリティ装置。
  3. 前記情報セキュリティ装置は、
    入力値を取得する取得手段と、
    整数を記憶している記憶手段と、
    演算結果の値を格納する演算値変数に初期値を格納する初期化手段と、
    前記記憶手段から前記整数の上位桁から1個の桁の値を抽出する抽出手段と、
    前記演算値変数に格納されている値の少なくとも1回の二乗剰余演算に基づいて得られた値を前記演算値変数に上書きする二乗手段と、
    取得した桁の値が0であるか否かを判断する前記判断手段と、
    取得した桁の値が0であると判断される場合に、前記演算値変数に格納されている値と値1に対するモンゴメリ変換値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きし、0以外であると判断される場合に、前記演算値変数に格納されている値と前記入力値から定まる値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きする前記乗算手段と、
    前記整数の全ての桁について、前記抽出手段、前記二乗手段、前記判断手段及び前記乗算手段に対して、値の取得と、二乗剰余演算と、判断と、乗算剰余演算とを繰り返すように制御する繰返制御手段と、
    前記整数の全ての桁について前記繰返しが終了すると、前記演算値変数に格納されている値に基づく値を出力する出力手段と
    を備えることを特徴とする請求項1に記載の情報セキュリティ装置。
  4. 前記情報セキュリティ装置は、
    入力値を取得して入力値変数に格納する取得手段と、
    整数を記憶している記憶手段と、
    演算結果の値を格納する演算値変数に初期値を格納する初期化手段と、
    前記記憶手段から前記整数の下位桁から1個の桁の値を抽出する抽出手段と、
    前記入力値変数に格納されている値の少なくとも1回の二乗剰余演算に基づいて得られた値を前記入力値変数に上書きする二乗手段と、
    取得した桁の値が0であるか否かを判断する前記判断手段と、
    取得した桁の値が0であると判断される場合に、前記演算値変数に格納されている値と値1に対するモンゴメリ変換値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きし、0以外であると判断される場合に、前記演算値変数に格納されている値と前記入力値変数から定まる値との乗算剰余演算に基づいて得られた値を前記演算値変数に上書きする前記乗算手段と、
    前記整数の全ての桁について、前記抽出手段、前記二乗手段、前記判断手段及び前記乗算手段に対して、値の取得と、二乗剰余演算と、判断と、乗算剰余演算とを繰り返すように制御する繰返制御手段と、
    前記整数の全ての桁について前記繰返しが終了すると、前記演算値変数に格納されている値に基づく値を出力する出力手段と
    を備えることを特徴とする請求項1に記載の情報セキュリティ装置。
  5. 前記情報セキュリティ装置は、さらに、
    値1に対するモンゴメリ変換値を算出するモンゴメリ変換手段を含み、
    前記乗算手段は、前記乗算剰余演算において、前記モンゴメリ変換手段により算出されたモンゴメリ変換値を用いる
    ことを特徴とする請求項1に記載の情報セキュリティ装置。
  6. 前記情報セキュリティ装置は、さらに、
    前記法の値を設定する法設定手段と、
    前記法の有効ビット数より大きい整数kをランダムに選択する整数設定手段とを備え、
    前記モンゴメリ変換手段は、設定された前記法の値に基づいて、前記整数kを用いて、前記モンゴメリ変換値を算出する
    ことを特徴とする請求項5に記載の情報セキュリティ装置。
  7. 前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法において値2のk乗値を算出する
    ことを特徴とする請求項6に記載の情報セキュリティ装置。
  8. 前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法としての値の乱数倍の法において、値2のk乗値を算出する
    ことを特徴とする請求項6に記載の情報セキュリティ装置。
  9. 前記情報セキュリティ装置は、さらに、
    前記法設定手段は、さらに、前記法としての値の乱数倍の法を設定し、
    前記モンゴメリ変換手段は、法設定手段によりさらに設定された前記法において、値2のk乗値を算出する
    ことを特徴とする請求項8に記載の情報セキュリティ装置。
  10. 前記整数設定手段は、入力値を取得する毎に、前記整数kの値をランダムに変更する
    ことを特徴とする請求項6に記載の情報セキュリティ装置。
  11. 前記法設定手段は、入力値を取得する毎に、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更する
    ことを特徴とする請求項6に記載の情報セキュリティ装置。
  12. 前記整数設定手段は、前記繰返しの途中に、前記整数kの値をランダムに変更する
    ことを特徴とする請求項6に記載の情報セキュリティ装置。
  13. 前記法設定手段は、前記繰返しの途中に、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更する
    ことを特徴とする請求項6に記載の情報セキュリティ装置。
  14. 前記整数設定手段は、外部からの指示により、前記整数kの値をランダムに変更する
    ことを特徴とする請求項6に記載の情報セキュリティ装置。
  15. 前記法設定手段は、外部からの指示により、前記モンゴメリ変換手段において用いられる前記法の値をランダムに変更する
    ことを特徴とする請求項6に記載の情報セキュリティ装置。
  16. 前記情報セキュリティ装置は、さらに、
    前記入力値に対するモンゴメリ変換値を算出するモンゴメリ変換手段を含み、
    前記乗算手段は、取得した桁の値が0以外であると判断される場合に、前記モンゴメリ変換手段により算出された前記モンゴメリ変換値を用いて乗算剰余演算を行う
    ことを特徴とする請求項1に記載の情報セキュリティ装置。
  17. 前記情報セキュリティ装置は、さらに、
    前記法の値を設定する法設定手段と、
    前記法の有効ビット数より大きい整数kをランダムに選択する整数設定手段とを備え、
    前記モンゴメリ変換手段は、設定された前記法の値に基づいて、前記整数kを用いて、前記モンゴメリ変換値を算出する
    ことを特徴とする請求項16に記載の情報セキュリティ装置。
  18. 前記モンゴメリ変換手段は、前記法において、値2のk乗値を算出し、前記入力値と算出された値とを乗じて得られた値を前記モンゴメリ変換値とする
    ことを特徴とする請求項17に記載の情報セキュリティ装置。
  19. 前記モンゴメリ変換手段は、前記モンゴメリ変換値として、前記法としての値の乱数倍の法において、値2のk乗値を算出する
    ことを特徴とする請求項17に記載の情報セキュリティ装置。
  20. 所定の法において入力値を整数乗するべき乗剰余演算を行うために、前記整数の各桁毎に乗算を繰り返してべき乗値を算出して、前記入力値の安全又は確実な処理を行う情報セキュリティ装置において用いられる情報セキュリティ方法であって、
    前記整数の1個の桁の値が0であるか否かを判断する判断ステップと、
    取得した桁の値が0であると判断される場合に、値1に対するモンゴメリ変換値を用いる乗算剰余演算を行う乗算ステップと
    を含むことを特徴とする情報セキュリティ方法。
  21. 所定の法において入力値を整数乗するべき乗剰余演算を行うために、前記整数の各桁毎に乗算を繰り返してべき乗値を算出して、前記入力値の安全又は確実な処理を行う情報セキュリティ装置において用いられる情報セキュリティのためのコンピュータプログラムであって、
    前記整数の1個の桁の値が0であるか否かを判断する判断ステップと、
    取得した桁の値が0であると判断される場合に、値1に対するモンゴメリ変換値を用いる乗算剰余演算を行う乗算ステップと
    を含むことを特徴とするコンピュータプログラム。
  22. 所定の法において入力値を整数乗するべき乗剰余演算を行うために、前記整数の各桁毎に乗算を繰り返してべき乗値を算出して、前記入力値の安全又は確実な処理を行う情報セキュリティ装置において用いられる情報セキュリティのためのコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
    前記コンピュータプログラムは、
    前記整数の1個の桁の値が0であるか否かを判断する判断ステップと、
    取得した桁の値が0であると判断される場合に、値1に対するモンゴメリ変換値を用いる乗算剰余演算を行う乗算ステップと
    を含むことを特徴とする記録媒体。
  23. 所定の法において入力値を整数乗するべき乗剰余演算を行うために、前記整数の各桁毎に乗算を繰り返してべき乗値を算出して、前記入力値の安全又は確実な処理を行う集積回路であって、
    前記整数の1個の桁の値が0であるか否かを判断する判断手段と、
    取得した桁の値が0であると判断される場合に、値1に対するモンゴメリ変換値を用いる乗算剰余演算を行う乗算手段と
    を備えることを特徴とする集積回路。
JP2007540998A 2005-10-19 2006-10-18 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路 Active JP4906733B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007540998A JP4906733B2 (ja) 2005-10-19 2006-10-18 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005304169 2005-10-19
JP2005304169 2005-10-19
JP2007540998A JP4906733B2 (ja) 2005-10-19 2006-10-18 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路
PCT/JP2006/320715 WO2007046402A1 (ja) 2005-10-19 2006-10-18 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路

Publications (2)

Publication Number Publication Date
JPWO2007046402A1 true JPWO2007046402A1 (ja) 2009-04-23
JP4906733B2 JP4906733B2 (ja) 2012-03-28

Family

ID=37962495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007540998A Active JP4906733B2 (ja) 2005-10-19 2006-10-18 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路

Country Status (5)

Country Link
US (1) US8090957B2 (ja)
EP (1) EP1939838A1 (ja)
JP (1) JP4906733B2 (ja)
CN (1) CN101292274B (ja)
WO (1) WO2007046402A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4612112B1 (ja) * 2010-03-01 2011-01-12 健稔 岡本 デジタル機器がリムーバブルメディアに記録されたファイルを削除する方法及びプログラム
US8626811B2 (en) * 2010-04-30 2014-01-07 Certicom Corp. Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine
EP2385461A1 (en) * 2010-04-30 2011-11-09 Certicom Corp. Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine
EP2472451A1 (en) 2010-12-30 2012-07-04 Philip Morris Products S.A. Method and apparatus for marking manufactured items
ITMI20111992A1 (it) * 2011-11-03 2013-05-04 St Microelectronics Srl Metodo per crittografare un messaggio mediante calcolo di funzioni matematiche comprendenti moltiplicazioni modulari
JP5848106B2 (ja) * 2011-11-28 2016-01-27 ルネサスエレクトロニクス株式会社 半導体装置及びicカード
CN103164187B (zh) * 2011-12-09 2017-03-01 深圳市证通电子股份有限公司 Rsa模幂电路及rsa安全加密芯片
DE102012005427A1 (de) * 2012-03-16 2013-09-19 Giesecke & Devrient Gmbh Verfahren und System zur gesicherten Kommunikation zwischen einen RFID-Tag und einem Lesegerät
CN104573544B (zh) * 2013-10-28 2017-09-12 上海复旦微电子集团股份有限公司 数据的防攻击方法及装置、rsa模幂运算方法、装置和电路
CN105844815B (zh) * 2014-10-29 2018-11-16 罗军 一种atm机的取现控制方法
TWI575924B (zh) * 2015-10-06 2017-03-21 瑞昱半導體股份有限公司 解密裝置、方法及電路
TWI580243B (zh) * 2015-10-06 2017-04-21 瑞昱半導體股份有限公司 解密裝置、方法及電路
CN106571922B (zh) * 2015-10-12 2020-03-10 瑞昱半导体股份有限公司 解密装置、方法及电路
CN116647318A (zh) * 2022-02-16 2023-08-25 瑞昱半导体股份有限公司 防御密码系统时间攻击的方法及密码系统处理电路

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513133A (en) * 1992-11-30 1996-04-30 Fortress U&T Ltd. Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
FR2726667B1 (fr) * 1994-11-08 1997-01-17 Sgs Thomson Microelectronics Procede de mise en oeuvre de multiplication modulaire selon la methode montgomery
US5724279A (en) * 1995-08-25 1998-03-03 Microsoft Corporation Computer-implemented method and computer for performing modular reduction
US6408075B1 (en) 1998-11-30 2002-06-18 Hitachi, Ltd. Information processing equipment and IC card
JP2000165375A (ja) 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
JP3950638B2 (ja) * 2001-03-05 2007-08-01 株式会社日立製作所 耐タンパーモジュラ演算処理方法
CN1271506C (zh) * 2001-03-19 2006-08-23 深圳市中兴集成电路设计有限责任公司 Rsa加密算法的实现电路及方法
DE10260655B3 (de) * 2002-12-23 2004-06-24 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen einer Multiplikation mit einer Verschiebung des Multiplikanden, insbesondere bei der kryptographischen Berechnung
DE10260660B3 (de) * 2002-12-23 2004-06-09 Infineon Technologies Ag Modulare Multiplikation mit paralleler Berechnung der Look-Ahead-Parameter u.a. bei der kryptographischen Berechnung
DE10304451B3 (de) * 2003-02-04 2004-09-02 Infineon Technologies Ag Modulare Exponentiation mit randomisiertem Exponenten
FR2862454A1 (fr) * 2003-11-18 2005-05-20 Atmel Corp Methode de reduction modulaire aleatoire et equipement associe

Also Published As

Publication number Publication date
WO2007046402A1 (ja) 2007-04-26
EP1939838A1 (en) 2008-07-02
CN101292274B (zh) 2011-01-19
US8090957B2 (en) 2012-01-03
JP4906733B2 (ja) 2012-03-28
CN101292274A (zh) 2008-10-22
US20100064142A1 (en) 2010-03-11

Similar Documents

Publication Publication Date Title
JP4906733B2 (ja) 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路
US7940927B2 (en) Information security device and elliptic curve operating device
US7707430B2 (en) Digital content protection system
CN102437912B (zh) 一种基于混沌算法的n重rsa加密算法的数字版权保护方法
EP2656537B1 (en) Cryptography module for use with fragmented key and methods for use therewith
CN103283178B (zh) 具有分段密钥处理的椭圆曲线密码学及其使用方法
EP1475920A1 (en) Key sharing system, shared key creation device, and shared key restoration device
KR20020025630A (ko) 비밀 정보의 처리 장치, 프로그램 또는 시스템
WO2005041474A1 (ja) 認証システム及び遠隔分散保存システム
US7388957B2 (en) Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus
JP4816025B2 (ja) 情報管理システム
JP4875481B2 (ja) 暗号化情報生成装置及びそのプログラム、秘密鍵生成装置及びそのプログラム、配信用コンテンツ生成装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム
JP4634046B2 (ja) 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置
JP2001503164A (ja) 暗号化および復号化システムとキー・エスクローシステムを含む暗号システム、および関連機器
TW202023223A (zh) 加解密系統、加密裝置、解密裝置和加解密方法
JP2004221800A (ja) 暗号処理システムにおける不正エンティティ追跡方法、暗号処理システム、および不正エンティティ追跡処理装置、並びにコンピュータ・プログラム
JP2009171384A (ja) 暗号化情報生成装置及びそのプログラム、秘密鍵生成装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム
Yong et al. An efficient fingerprinting scheme with symmetric and commutative encryption
Mao Send message into a definite future
JP2003032239A (ja) コンテント配信システム、耐タンパ装置、サーバ、コンピュータ・プログラム、およびコンテント配信方法
JP2004159043A (ja) 暗号通信システム、情報処理装置、および方法、並びにコンピュータ・プログラム
JP2008048121A (ja) 実行権限分散方法及びシステム
Kang et al. REQUIREMENTS FOR E-PAYMENT SYSTEM BASED ON THE CREDIT CARD
MXPA06000109A (en) Authentication for admitting parties into a network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090807

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120110

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4906733

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150