JP4678968B2 - 素数判定装置、方法及びプログラム - Google Patents

素数判定装置、方法及びプログラム Download PDF

Info

Publication number
JP4678968B2
JP4678968B2 JP2001070855A JP2001070855A JP4678968B2 JP 4678968 B2 JP4678968 B2 JP 4678968B2 JP 2001070855 A JP2001070855 A JP 2001070855A JP 2001070855 A JP2001070855 A JP 2001070855A JP 4678968 B2 JP4678968 B2 JP 4678968B2
Authority
JP
Japan
Prior art keywords
prime number
integer
storage means
prime
positive integer
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 - Lifetime
Application number
JP2001070855A
Other languages
English (en)
Other versions
JP2002268548A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2001070855A priority Critical patent/JP4678968B2/ja
Publication of JP2002268548A publication Critical patent/JP2002268548A/ja
Application granted granted Critical
Publication of JP4678968B2 publication Critical patent/JP4678968B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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

Description

【0001】
【発明の属する技術分野】
本発明は、素数判定装置、方法及びプログラムに係り、特に、素数判定中における外部からの解析に対し、素数判定に用いたデータの漏洩を阻止し得る素数判定装置、方法及びプログラムに関する。
【0002】
【従来の技術】
社会における急速な情報関連技術の発展に伴い、電子情報の秘匿手段、認証手段として暗号技術の重要性が高まっている。係る暗号技術は、DES(Data Encryption Standard)方式に代表される秘密鍵方式と、RSA(Rivest-Shamir-Adleman)方式に代表される公開鍵方式とが広く用いられている。
【0003】
公開鍵方式は、多くの場合、素数が重要な役割を果たしており、素数のもつ性質を利用している。例えば、RSA方式では秘密鍵として2つの素数p,qを用い、DSA(Digital signature Algorithm)方式では公開鍵として2つの素数p,qを用いている。
【0004】
素数の生成方法は、一般に、適当に生成した正の整数に素数判定アルゴリズムを適用し、素数と判定された場合にその正の整数を素数として出力する方式が用いられている。
【0005】
素数判定アルゴリズムは、ラビン(Rabin)法(シリーズ/情報科学の数学 現代暗号、岡本龍明,山本博資著、産業図書株式会社、P.18-19(1997))などのように、高度な数学に基づく方法から、「エラトステネスのふるい(飾)」のように古くから周知の方法まで、数多くの方法が存在する。
【0006】
ここで、エラトステネスのふるいは、素数候補nに対し、n1/2(nの平方根)以下の全ての素数で割り切れない時に、素数候補nを素数であると判定する方法である。逆に言うと、1つでも割り切れる素数がある時には、素数候補nを合成数と判定する方法である。
【0007】
係るエラトステネスのふるいは、確実に素数か否かを判定できる反面、nが大きくなるとn1/2以下の素数の個数も大きくなり、判定時間も長くなるため、通常、ラビン法などの他の素数判定方法と組合せて利用される。
【0008】
例えば、他の素数判定方法の実行前に、素数候補nをn1/2以下の(全てではなく)幾つかの素数で割ってみて、割り切れないことを確認する、というように利用される。
【0009】
これは、ラビン法などの素数判定アルゴリズムは、通常、処理量の多いべき乗剰余算を含むため、事前にエラトステネスのふるいを少しだけ実行し、この段階で合成数を排除した方が、素数判定の高速化に有効であるという理由による。
【0010】
また、このような素数判定アルゴリズムにおいては、生成中も生成後も素数を秘密に保持する必要がある。理由は、例えばRSA方式では素数を秘密鍵として用いるため、秘密鍵保持者以外に素数が知られると、暗号文が解読可能となるからである。
【0011】
さらに、秘密鍵の一部の情報(ある特定のビットの値など)が漏れることも、例えば鍵の全数探索の際に、探索対象の個数を大幅に減らして、鍵の解析の糸口を与えるため、望ましくない。このため、素数を厳重に管理し、秘密に保持している。
【0012】
しかしながら、近年、スマートカードにおける演算中の状態を観察し、データの値と演算の内容とを解析する方法が提案され始めている。係る解析方法としては、例えば、コチャー(Kocher)らにより提案された電力解析及びタイミング解析などが強力な方式として知られている。
【0013】
電力解析は、スマートカードにおける演算中の消費電力を計測し、電力波形の解析に基づき、演算のデータを推測する手法である(P. Kocher, J. Jaffe, B. Jun、"Differential Power Analysis", Advances in Cryptology : Proceeding of CRYPTO’99, Springer-Verlag, 1999, pp.388-397)。
【0014】
また、タイミング解析は、演算の処理時間がデータ依存であることに基づき、演算のデータを推測する手法である(P. C. Kocher, “Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems", Advances in Cryptology : Proceedings of CRYPTO’96, Springer-Verlag, 1996, PP.104-113)。
【0015】
これらの解析方法によれば、特に乗算、除算では、演算に使われたデータに依存して消費電力や処理時間が変わるため、多くの情報を外部に漏らすことが知られている。ここで、外部とは、権限の無い第三者又は第三者装置などを意味している。
【0016】
前述したエラトステネスのふるいでは、秘密鍵の候補nを除算のデータとして用いるため、電力解析やタイミング解析によりnの情報が外部に漏れる可能性がある。
【0017】
【発明が解決しようとする課題】
以上説明したように従来の素数判定装置では、素数判定中に、電力解析やタイミング解析といった外部からの解析手法を施されたとしても、素数判定対象の素数候補を外部に漏洩させない必要がある。
【0018】
本発明は上記実情を考慮してなされたもので、素数判定時に電力解析やタイミング解析を施されても、素数候補の漏洩を阻止し得る素数判定装置、方法及びプログラムを提供することを目的とする。
【0019】
【課題を解決するための手段】
本発明の骨子は、素数候補nをそのまま除算せずに、素数候補nを含む見掛け上の素数候補nαを除算して素数判定を行なう構成により、除算中における外部からの解析に対し、素数候補nの漏洩を阻止することにある。
【0020】
さて以上のような本発明の骨子に対し、具体的には以下のような手段が講じられる。なお、各発明は、重複した記載を避ける観点から、装置として表現された場合のみを示すが、方法、システム又はプログラム等の他のカテゴリーで表現してもよいことは言うまでもない。
【0021】
本発明は、入力された正の整数nが素数であるか否かを判定する素数判定装置であって、前記nの平方根n1/2以下の全ての素数が予め記憶されている素数記憶手段と、前記素数記憶手段内の何れの素数でも割り切れない正の整数αが予め記憶されている整数記憶手段と、前記入力された正の整数nと前記整数記憶手段内の整数αとを乗算し、乗算結果m(=nα)を算出する乗算手段と、前記乗算手段により得られた乗算結果mを前記素数記憶手段内の何れかの素数で割った余りrを算出する除算手段と、前記除算手段により得られた余りrが前記素数記憶手段の何れの素数で割った場合も0でないとき、前記入力された正の整数nを素数であると判定する判定手段と、を備えている。
【0022】
これにより、正の整数nの素数判定を行うとき、判定の演算中においては、素数候補n自体を使わずに、素数候補nを整数αで隠蔽した値m=nαを使っている。このため、整数αを秘密に保持しておけば、mからnの情報を得ることが難しくなっている。
【0023】
従って、素数判定時に電力解析やタイミング解析を施されても、演算の消費電力波形または処理時間からnの解析を困難にすることができるので、素数候補の漏洩を阻止することができる。
【0024】
ここで、素数判定処理を容易且つ確実に行なう観点から次の条件(a)〜(b2)を満たすことが好ましい。
(a)前記整数記憶手段内の整数αは、前記素数記憶手段内の最大の素数よりも大きい素数である。
(b)前記整数記憶手段は前記正の整数αの集合{αj}が記憶されてもよい。
【0025】
(b1)前記乗算手段は、前記整数記憶手段内の何れかの正の整数αjが選択されたとき、この選択された正の整数αjを用いて前記乗算を実行する。
この場合、正の整数αが集合の中から選択されるので、より一層、演算の消費電力波形または処理時間からnの解析を困難にすることができる。
(b2)前記正の整数αの集合{αj}は、前記素数記憶手段内の最大の素数よりも大きい素数の集合である。
【0026】
一方、上述した正の整数nを素数であるか否かを判定する素数判定に代えて、正の整数nを素数候補であるか否かを判定する素数判定としてもよい。
この場合、素数記憶手段に代えて、前記nの平方根n1/2以下の全ての素数のうち、幾つかの素数が予め記憶されている素数部分記憶手段が用いられる。また、整数記憶手段は、前記素数部分記憶手段内の何れの素数でも割り切れない正の整数βが予め記憶されたものとなる。乗算手段は、前述同様に、前記入力された正の整数nと前記整数記憶手段内の整数βとを乗算し、乗算結果g(=nβ)を算出するものでよい。また、条件(a)〜(b2)についても同様に読み替えられる。
【0027】
このような素数候補を判定する素数判定に変形しても、素数候補nを正の整数βで隠蔽する構成に変わりはないので、前述した作用と同様の作用を奏することができる。
【0028】
【発明の実施の形態】
以下、本発明の各実施形態について図面を用いて説明する6なお、以下の説明中、素数、素数候補、整数などの語を用いるが、これらは、素数データ、素数候補データ、整数データと読み替えてもよい。
【0029】
(第1の実施形態)
図1は本発明の第1の実施形態に係る素数判定装置の構成を示す模式図である。この素数判定装置10は、スマートカード等の計算機の素数生成部として構成され、ハードウェア、ソフトウェア又は両者の組合せによって素数判定処理を行うものであって、具体的には、ROM(リードオンリーメモリ)11、RAM(ランダムアクセスメモリ)12、乗算器13、除算器14及び比較部15を有する計算ユニット16及びその制御部17を備えている。
【0030】
なお、素数判定装置10は、ハードウェア(計算ユニット16)及びソフトウェア(制御部17)により構成される場合、あるいは、ソフトウェア(計算ユニット16及び制御部17)により構成される場合、ソフトウェアで実現される要素17(及び16)の機能を実現するためのプログラムが記憶媒体又はネットワークから素数判定装置10のコンピュータに予めインストールされた構成となる。
【0031】
ここで、ROM11は、入力される正の整数nの平方根(n1/2)以下の素数全体{p1,p2,…,p}を元としたテーブルT、およびn1/2以下のどの素数でも割り切れない整数αを保持する機能を有し、制御部17からの転送制御により、整数αが乗算器13に転送され、また、テーブルTに含まれる素数piが順次(i=1,2,…,s)、除算器14に転送されるものである。
【0032】
なお、テーブルTは、入力可能な正の整数nの上限値又はサイズに基づいて、n1/2以下の全ての素数の集合が予め設定されている。また、整数αは、テーブルTのどの元(素数)でも割り切れない整数と読み替えてもよい。整数αは、ROM11に代えて、RAM12に保持されてもよい。
【0033】
RAM12は、入力された素数候補nを保持する機能を有し、制御部17からの転送制御により、素数候補nが乗算器13に転送されるものである。
乗算器13は、RAM12から転送された素数候補nと、ROM11から転送された整数αとの乗算m=nαを行う機能と、乗算結果mを除算器14に出力する機能とをもっている。
【0034】
除算器14は、乗算器13の出力mを、ROM12から転送された素数piにより除算し、その余りを求める剰余算r=m mod piを行なう機能と、剰余算の結果rを比較部15に出力する機能とをもっている。
【0035】
比較部15は、除算器の14の出力rと“0(余り無し)”とを比較し、r=0のとき、素数候補nが合成数である旨を出力し、r≠0のとき、比較結果を制御部17に出力する機能をもっている。
【0036】
制御部17は、このような計算ユニット16に対し、ROM11及びRAM12の記憶内容を乗算器13又は除算器14に転送させる転送制御機能と、比較部15の出力に基づいて、素数判定の継続を制御する機能と、テーブルTの全ての素数piによる剰余算結果rが0でないとき、素数候補nが素数である旨を示す判定結果を出力する機能とをもっている。
【0037】
次に、以上のように構成された素数判定装置における素数判定方法について説明するが、始めに概略を述べる。
この素数判定はエラトステネスのふるいに基づいている。エラトステネスのふるいによれば、素数候補nがn1/2以下のどの素数p1〜psでも割り切れなければ、素数候補nを素数と判定できる。
【0038】
本実施形態では、素数候補nを電力解析やタイミング解析から隠蔽するため、整数αを乗じた値m=nαをn1/2以下の素数で除算しているが、整数αをn1/2以下のどの素数でも割り切れない整数としているので、乗算結果nαがn1/2以下のどの素数でも割り切れなければ、素数候補nを素数と判定できる。
【0039】
さて、このような概略に沿って、具体的には以下のように素数判定が実行される。
いま、素数判定装置10において、例えば暗号用の素数生成アルゴリズムの実行中に、正の整数nが素数であるか否かを判定する必要が生じたとする。
【0040】
このとき、素数候補nは、RAM12に書込まれた後、制御部17の転送制御により、RAM12から乗算器13に転送される。
【0041】
また、ROM11内の整数αは、制御部17の転送制御により、乗算器13に転送される。
【0042】
さらに、ROM11内の素数p1は、制御部17の転送制御により、ROM11から除算器14に転送される。なお、素数p1の転送は、乗算器13の乗算後に行なってもよい。
【0043】
さて乗算器13は、各々転送された素数候補nと整数αとを乗算し、乗算結果m(=nα)を除算器14に出力する。以後、素数候補nは、乗じられた整数αのため、電力解析やタイミング解析が困難となる。
【0044】
除算器14は、乗算器13の出力mを、ROM12から転送された素数piにより除算し、その余りを求める剰余算r=m mod piを行ない、剰余算の結果rを比較部15に出力する。
【0045】
比較部15は、除算器14の出力rと0とを比較し、r=0のとき、素数候補nが合成数である旨を出力し、素数判定装置10は処理を終了する。一方、比較部15は、比較結果がr≠0のとき、比較結果を制御部17に出力する。
【0046】
制御部17は、この比較結果により、次の素数pi+1による素数判定を行なうため、ROM11を制御し、テーブルT内の素数pi+1を除算器14に転送させる。
【0047】
以下前述同様に、除算器14による剰余算の結果r(=m mod pi+1)が比較部15に出力され、比較部15による剰余rと0との比較が行われ、r=0であれば合成数である旨を出力して処理を終了するが、比較結果がr≠0であれば、次の素数pi+2による素数判定が行われる。
【0048】
以下、このような素数判定が最長の場合、テーブルT内の最大の素数psまで繰り返される。
上述したように本実施形態によれば、正の整数nの素数判定を行うとき、判定の演算中においては、素数候補n自体を使わずに、素数候補nを整数αで隠蔽した値m=nαを使っている。
【0049】
このため、素数判定時に電力解析やタイミング解析を施されても、演算の消費電力波形または処理時間から素数候補nの解析を困難にすることができるので、素数候補nの漏洩を阻止することができる。
【0050】
(第2の実施形態)
図2は本発明の第2の実施形態に係る素数判定装置の構成を示す模式図であり、図1と同一部分には同一符号を付すと共に、ほぼ同一部分にはアルファベットの添字を付して、その詳しい説明を省略し、ここでは異なる部分について主に述べる。なお、以下の各実施形態も同様にして重複した部分の説明を省略する。
【0051】
すなわち、本実施形態は、第1の実施形態の変形例であり、整数αをランダムに取ることにより、外部からの解析をより困難にすることを図っている。具体的には、前述したROM11のうち、1つの整数αに代えて、複数の整数αを要素としてもつテーブルAを有するROM11aと、ROM11aのテーブルAから1つの整数αjを選択して乗算器13aに入力するための選択部18とを備えている。
【0052】
ここで、ROM11aは、前述したテーブルTと、n1/2以下のどの素数でも割り切れない整数の集合{α1,α2,…,αt}からなるテーブルAとを保持するものである。
【0053】
選択部18は、制御部17aからの制御により、ROM11a内のテーブルAから整数αjをランダムに選択し(j=1,2,…,tのいずれか)、この整数αjを乗算器13aに出力する機能をもっている。なお、整数αjは、1つの素数候補nに対し、1回だけ選択されるが、これに限らず、1つの素数候補nに対し、テーブルTの各素数pi毎に選択されてもよい。また、選択方法は、ランダムに限らず、昇順、降順等の任意の方式が使用可能となっている。
【0054】
乗算器13aは、RAM12から転送された素数候補nと、選択部18から出力された整数αjとの乗算m=nαjを行う機能と、乗算結果mを除算器14に出力する機能とをもっている。
【0055】
制御部17aは、前述した制御部17の機能に加え、選択部18を制御する機能をもっている。
【0056】
次に、以上のように構成された素数判定装置における素数判定方法について説明する。
いま、前述同様に、素数判定装置10aにおいて、正の整数nが素数であるか否かを判定する必要が生じたとする。
このとき、素数候補nは、前述した通り、RAM12から乗算器13aに転送される。
【0057】
一方、選択部18は、制御部17aからの制御により、ROM11a内のテーブルAから整数αjをランダムに選択し、この整数αjを乗算器13aに出力する。
【0058】
乗算器13aは、素数候補nと整数αjとの乗算結果m(=nαj)を除算器14に出力する。この整数αjを乗じることにより、前述同様に、電力解析やタイミング解析が困難となるが、ここでは、整数αjが複数の整数α1〜αtのうちから選択されるため、外部からの解析がより困難となっている。
以下、前述した通り、乗算結果mを用いて素数候補nの素数判定が実行される。
【0059】
上述したように本実施形態によれば、正の整数nの素数判定を行うとき、前述同様に、素数候補nを整数αjで隠蔽した値m=nαjを使うため、演算の消費電力波形または処理時間からnの解析を困難にすることができる。
【0060】
また、素数候補nに乗じる正の整数αjをランダムに選択するため、素数候補nの解析をより困難にすることができる。
【0061】
(第3の実施形態)
図3は本発明の第3の実施形態に係る素数判定装置の構成を示す模式図である。本実施形態は、第1の実施形態の変形例であり、ラビン法などの素数判定アルゴリズムの実行前に、少しだけエラトステネスのふるいを用いる場合の形態であって、ROM11に代えて、ROM11bを備えている。
【0062】
ここで、ROM11bは、ROM11のうちのテーブルT内の素数の個数を減らしたテーブルUと、整数αに代えて整数βとを備えている。
ここで、テーブルUは、n1/2以下の全て(s個)ではなくt個の素数{p1,p2,…,pt}が格納されている(t<s)。換言すると、テーブルUはテーブルTの一部であり、テーブルU内の素数は、テーブルT内の素数の部分集合である。また、整数βは、テーブルU内のどの素数p1,p2,…、ptでも割り切れない正の整数であり、前述同様に、乗算器!3において、素数候補nに乗じられる整数である。なお、この整数βとして、整数αを用いてもよい。
【0063】
制御部17bは、前述した制御部17の機能において、テーブルTに代えて、テーブルUを用いるものである。
【0064】
以上のような構成によれば、第1の実施形態と同様に、素数判定の演算中においては、素数候補n自体を使わずに、素数候補nを整数βで隠蔽した値g=nβを使っているため、演算の消費電力波形または処理時間からnの解析を困難にすることができる。
【0065】
また、素数候補nの素数判定用のテーブルとして、n1/2以下の全ての素数のうちの幾つかの素数を用いたので、省略した素数の個数に応じて、判定結果をより高速に得ることができる。但し、判定結果は、第1の実施形態とは異なり、n1/2以下で除算に用いない素数があるため、テーブルUの全ての素数で割り切れない場合でも、「素数」とはいえずに「素数候補」を示す内容になる。
【0066】
(第4の実施形態)
図4は本発明の第4の実施形態に係る素数判定装置の構成を示す模式図である。本実施形態は、第2及び第3の実施形態を互いに組合せた変形例であり、第3の実施形態の高速に素数候補を判定する構成に対し、第2の実施形態における整数を選択する構成を組合せたものである。
【0067】
これに伴い、ROM11cは、前述したテーブルUと、テーブルU内の全ての素数でも割り切れない整数の集合{β12,…,βq}からなるテーブルBを保持するものとする。
【0068】
また、選択部18cは、前述同様に、制御部17cからの制御により、ROM11a内のテーブルBから整数βhをランダムに選択し(h=1,2,…,qのいずれか)、この整数βhを乗算器13aに出力する機能をもっている。また、選択方式も前述同様に、ランダムに限らず任意である。
【0069】
乗算器13cは、RAM12から転送された素数候補nと、選択部18cから出力された整数βhとの乗算g=nβhを行う機能と、乗算結果gを除算器14に出力する機能とをもっている。
【0070】
制御部17cは、前述した制御部17bの機能に加え、選択部18cを制御する機能をもっている。
【0071】
以上のような構成によれば、第2の実施形態と同様の選択部18cを用いた整数βhの選択を行なう一方、第3の実施形態のテーブルUを用いて高速な素数候補判定を行なうので、第2及び第3の実施形態の効果を同時に得ることができる。
【0072】
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピーディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0073】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0074】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行しても良い。
【0075】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0076】
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0077】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0078】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0079】
なお、本願発明は、上記各実施形態に限定されるものでなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合、組み合わされた効果が得られる。さらに、上記各実施形態には種々の段階の発明が含まれており、開示される複数の構成用件における適宜な組み合わせにより種々の発明が抽出され得る。例えば実施形態に示される全構成要件から幾つかの構成要件が省略されることで発明が抽出された場合には、その抽出された発明を実施する場合には省略部分が周知慣用技術で適宜補われるものである。
【0080】
その他、本発明はその要旨を逸脱しない範囲で種々変形して実施できる。
【0081】
【発明の効果】
以上説明したように本発明によれば、素数判定時に電力解析やタイミング解析を施されても、素数候補の漏洩を阻止できる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る素数判定装置の構成を示す模式図
【図2】本発明の第2の実施形態に係る素数判定装置の構成を示す模式図
【図3】本発明の第3の実施形態に係る素数判定装置の構成を示す模式図
【図4】本発明の第4の実施形態に係る素数判定装置の構成を示す模式図
【符号の説明】
10,10a〜10c…素数判定装置
11,11a〜11c…ROM
12…RAM
13,13a〜13c…乗算器
14…除算器
15…比較部
16…計算ユニット
17,17a〜17c…制御部
18,18c…選択部
n…素数候補
m,g…乗算結果
αj,βh…整数
p…素数
r…余り

Claims (24)

  1. 入力された正の整数nが素数であるか否かを判定する素数判定装置であって、
    前記nの平方根n1/2以下の全ての素数が予め記憶されている素数記憶手段と、
    前記素数記憶手段内の何れの素数でも割り切れない正の整数αが予め記憶されている整数記憶手段と、
    前記入力された正の整数nと前記整数記憶手段内の整数αとを乗算し、乗算結果m(=nα)を算出する乗算手段と、
    前記乗算手段により得られた乗算結果mを前記素数記憶手段内の何れかの素数で割った余りrを算出する除算手段と、
    前記除算手段により得られた余りrが前記素数記憶手段の何れの素数で割った場合も0でないとき、前記入力された正の整数nを素数であると判定する判定手段と、
    を備えたことを特徴とする素数判定装置。
  2. 請求項1に記載の素数判定装置において、
    前記整数記憶手段内の整数αは、前記素数記憶手段内の最大の素数よりも大きい素数であることを特徴とする素数判定装置。
  3. 請求項1に記載の素数判定装置において、
    前記整数記憶手段は、前記正の整数αの集合{αj}が記憶されており、
    前記乗算手段は、前記整数記憶手段内の何れかの正の整数αjが選択されたとき、この選択された正の整数αjを用いて前記乗算を実行することを特徴とする素数判定装置。
  4. 請求項3に記載の素数判定装置において、
    前記正の整数αの集合{αj}は、前記素数記憶手段内の最大の素数よりも大きい素数の集合であることを特徴とする素数判定装置。
  5. 入力された正の整数nが素数候補であるか否かを判定する素数判定装置であって、
    前記nの平方根n1/2以下の全ての素数のうち、幾つかの素数が予め記憶されている素数部分記憶手段と、
    前記素数部分記憶手段内の何れの素数でも割り切れない正の整数βが予め記憶されている整数記憶手段と、
    前記入力された正の整数nと前記整数記憶手段内の整数βとを乗算し、乗算結果g(=nβ)を算出する乗算手段と、
    前記乗算手段により得られた乗算結果gを前記素数部分記憶手段内の何れかの素数で割った余りrを算出する除算手段と、
    前記除算手段により得られた余りrが前記素数部分記憶手段の何れの素数で割った場合も0でないとき、前記入力された正の整数nを素数候補であると判定する判定手段と、
    を備えたことを特徴とする素数判定装置。
  6. 請求項5に記載の素数判定装置において、
    前記整数記憶手段内の整数βは、前記素数部分記憶手段内の最大の素数よりも大きい素数であることを特徴とする素数判定装置。
  7. 請求項5に記載の素数判定装置において、
    前記整数記憶手段は、前記正の整数βの集合{βh}が記憶されており、
    前記乗算手段は、前記整数記憶手段内の何れかの正の整数βhが選択されたとき、この選択された正の整数βhを用いて前記乗算を実行することを特徴とする素数判定装置。
  8. 請求項7に記載の素数判定装置において、
    前記正の整数βの集合{βh}は、前記素数部分記憶手段内の最大の素数よりも大きい素数の集合であることを特徴とする素数判定装置。
  9. 入力された正の整数nが素数であるか否かを判定する素数判定方法であって、
    前記nの平方根n1/2以下の全ての素数が予め記憶されている素数記憶手段と、
    前記素数記憶手段内の何れの素数でも割り切れない正の整数αが予め記憶されている整数記憶手段とを用い、前記入力された正の整数nと前記整数記憶手段内の整数αとを乗算し、乗算結果m(=nα)を算出する乗算工程と、
    前記乗算工程により得られた乗算結果mを前記素数記憶手段内の何れかの素数で割った余りrを算出する除算工程と、
    前記除算工程により得られた余りrが前記素数記憶手段の何れの素数で割った場合も0でないとき、前記入力された正の整数nを素数であると判定する判定工程と、を含んでいることを特徴とする素数判定方法。
  10. 請求項9に記載の素数判定方法において、
    前記整数記憶手段内の整数αは、前記素数記憶手段内の最大の素数よりも大きい素数であることを特徴とする素数判定方法。
  11. 請求項9に記載の素数判定方法において、
    前記整数記憶手段は、前記正の整数αの集合{αj}が記憶されており、
    前記乗算工程は、前記整数記憶手段内の何れかの正の整数αjが選択されたとき、この選択された正の整数αjを用いて前記乗算を実行することを特徴とする素数判定方法。
  12. 請求項11に記載の素数判定方法において、
    前記正の整数αの集合{αj}は、前記素数記憶手段内の最大の素数よりも大きい素数の集合であることを特徴とする素数判定方法。
  13. 入力された正の整数nが素数候補であるか否かを判定する素数判定方法であって、
    前記nの平方根n1/2以下の全ての素数のうち、幾つかの素数が予め記憶されている素数部分記憶手段と、
    前記素数部分記憶手段内の何れの素数でも割り切れない正の整数βが予め記憶されている整数記憶手段とを用い、
    前記入力された正の整数nと前記整数記憶手段内の整数βとを乗算し、乗算結果g(=nβ)を算出する乗算工程と、
    前記乗算工程により得られた乗算結果gを前記素数部分記憶手段内の何れかの素数で割った余りrを算出する除算工程と、
    前記除算工程により得られた余りrが前記素数部分記憶手段の何れの素数で割った場合も0でないとき、前記入力された正の整数nを素数候補であると判定する判定工程と、
    を含んでいることを特徴とする素数判定方法。
  14. 請求項13に記載の素数判定方法において、
    前記整数記憶手段内の整数βは、前記素数部分記憶手段内の最大の素数よりも大きい素数であることを特徴とする素数判定方法。
  15. 請求項13に記載の素数判定方法において、
    前記整数記憶手段は、前記正の整数βの集合{βh}が記憶されており、
    前記乗算工程は、前記整数記憶手段内の何れかの正の整数βhが選択されたとき、この選択された正の整数βhを用いて前記乗算を実行することを特徴とする素数判定方法。
  16. 請求項15に記載の素数判定方法において、
    前記正の整数βの集合{βh}は、前記素数部分記憶手段内の最大の素数よりも大きい素数の集合であることを特徴とする素数判定方法。
  17. 入力された正の整数nが素数であるか否かを判定する素数判定装置に用いられる素数判定プログラムであって、
    前記素数判定装置のコンピュータを、
    前記nの平方根n1/ 以下の全ての素数が予め記憶されている素数記憶手段、前記素数記憶手段内の何れの素数でも割り切れない正の整数αが予め記憶されている整数記憶手段、
    前記入力された正の整数nと前記整数記憶手段内の整数αとを乗算し、乗算結果m(=nα)を算出する乗算手段、
    前記乗算手段により得られた乗算結果mを前記素数記憶手段内の何れかの素数で割った余りrを算出する除算手段、
    前記除算手段により得られた余りrが前記素数記憶手段の何れの素数で割った場合も0でないとき、前記入力された正の整数nを素数であると判定する判定手段、
    として機能させるための素数判定プログラム。
  18. 請求項17に記載の素数判定プログラムにおいて、
    前記整数記憶手段内の整数αは、前記素数記憶手段内の最大の素数よりも大きい素数であることを特徴とする素数判定プログラム。
  19. 請求項17に記載の素数判定プログラムにおいて、
    前記整数記憶手段は、前記正の整数αの集合{αj}が記憶されており、
    前記乗算手段は、前記整数記憶手段内の何れかの正の整数αjが選択されたとき、この選択された正の整数αjを用いて前記乗算を実行することを特徴とする素数判定プログラム。
  20. 請求項19に記載の素数判定プログラムにおいて、
    前記正の整数αの集合{αj}は、前記素数記憶手段内の最大の素数よりも大きい素数の集合であることを特徴とする素数判定プログラム。
  21. 入力された正の整数nが素数候補であるか否かを判定する素数判定装置に用いられる素数判定プログラムであって、
    前記素数判定装置のコンピュータを、
    前記nの平方根n1/2以下の全ての素数のうち、幾つかの素数が予め記憶されている素数部分記憶手段、
    前記素数部分記憶手段内の何れの素数でも割り切れない正の整数βが予め記憶されている整数記憶手段、
    前記入力された正の整数nと前記整数記憶手段内の整数βとを乗算し、乗算結果g(=nβ)を算出する乗算手段、
    前記乗算手段により得られた乗算結果gを前記素数部分記憶手段内の何れかの素数で割った余りrを算出する除算手段、
    前記除算手段により得られた余りrが前記素数部分記憶手段の何れの素数で割った場合も0でないとき、前記入力された正の整数nを素数候補であると判定する判定手段、
    として機能させるための素数判定プログラム。
  22. 請求項21に記載の素数判定プログラムにおいて、
    前記整数記憶手段内の整数βは、前記素数部分記憶手段内の最大の素数よりも大きい素数であることを特徴とする素数判定プログラム。
  23. 請求項21に記載の素数判定プログラムにおいて、
    前記整数記憶手段は、前記正の整数βの集合{βh}が記憶されており、
    前記乗算手段は、前記整数記憶手段内の何れかの正の整数βhが選択されたとき、この選択された正の整数βhを用いて前記乗算を実行することを特徴とする素数判定プログラム。
  24. 請求項23に記載の素数判定プログラムにおいて、
    前記正の整数βの集合{βh}は、前記素数部分記憶手段内の最大の素数よりも大きい素数の集合であることを特徴とする素数判定プログラム。
JP2001070855A 2001-03-13 2001-03-13 素数判定装置、方法及びプログラム Expired - Lifetime JP4678968B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001070855A JP4678968B2 (ja) 2001-03-13 2001-03-13 素数判定装置、方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001070855A JP4678968B2 (ja) 2001-03-13 2001-03-13 素数判定装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2002268548A JP2002268548A (ja) 2002-09-20
JP4678968B2 true JP4678968B2 (ja) 2011-04-27

Family

ID=18928646

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001070855A Expired - Lifetime JP4678968B2 (ja) 2001-03-13 2001-03-13 素数判定装置、方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4678968B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725169B1 (ko) 2005-01-27 2007-06-04 삼성전자주식회사 전력 분석 공격에 안전한 논리 연산 장치 및 방법
JP2007108960A (ja) * 2005-10-12 2007-04-26 Nippon Telegr & Teleph Corp <Ntt> ディジタルコンテンツ特徴量抽出方法及び装置及びプログラム及びコンピュータ読み取り可能な記録媒体
FR2946207A1 (fr) * 2009-05-28 2010-12-03 Proton World Internat Nv Protection d'une generation de nombres premiers pour algorithme rsa
FR2949925A1 (fr) * 2009-09-09 2011-03-11 Proton World Int Nv Protection d'une generation de nombres premiers contre des attaques par canaux caches
EP2657925B1 (en) 2010-12-24 2018-05-16 Mitsubishi Electric Corporation Signature generating device, method of generating signature, and recording medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066585A (ja) * 1998-08-20 2000-03-03 Toshiba Corp 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP2003518872A (ja) * 1999-12-28 2003-06-10 ギーゼッケ ウント デフリエント ゲーエムベーハー 鍵の細分化によってアクセスを防止する携帯可能なデータ記憶媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3626340B2 (ja) * 1996-12-26 2005-03-09 株式会社東芝 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066585A (ja) * 1998-08-20 2000-03-03 Toshiba Corp 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP2003518872A (ja) * 1999-12-28 2003-06-10 ギーゼッケ ウント デフリエント ゲーエムベーハー 鍵の細分化によってアクセスを防止する携帯可能なデータ記憶媒体

Also Published As

Publication number Publication date
JP2002268548A (ja) 2002-09-20

Similar Documents

Publication Publication Date Title
US11251935B2 (en) Multiplicative blinding for cryptographic operations
Shamir et al. Playing ‘hide and seek’with stored keys
Fried et al. A kilobit hidden SNFS discrete logarithm computation
JP3821631B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
JP4841785B2 (ja) 鍵の細分化によってアクセスを防止する携帯可能なデータ記憶媒体
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
US20070206789A1 (en) Elliptic curve cryptosystem optimization using two phase key generation
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
US8458478B2 (en) Signature generating apparatus, signature verifying apparatus, and methods and programs therefor
US8280042B2 (en) Decryption processor and decryption processing method
KR20070008012A (ko) 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법
JP2014207717A (ja) 指数難読化
CN111325535A (zh) 基于椭圆曲线偏移的区块链私钥管理方法、系统及存储介质
JP4678968B2 (ja) 素数判定装置、方法及びプログラム
CN104660399B (zh) 一种rsa模幂运算方法和装置
KR20050106416A (ko) 암호화 시스템 내의 모듈러 멱승 결과 결정 장치 및 방법
Gérard et al. Setla: Signature and encryption from lattices
TW201629829A (zh) 用於加密操作之指數分拆技術
JP4626148B2 (ja) 復号または署名作成におけるべき乗剰余算の計算方法
JP4664514B2 (ja) 素数生成装置及びプログラム
JP5038866B2 (ja) 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム
JP5032955B2 (ja) 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム
JP2003521010A (ja) 公開鍵暗号アルゴリズムを用いる電子構成品におけるモジュラべき乗演算アルゴリズム
JP2002268547A (ja) 演算装置、方法及びプログラム
Yen et al. Improvement on Ha-Moon randomized exponentiation algorithm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071221

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

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

R151 Written notification of patent or utility model registration

Ref document number: 4678968

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20140210

Year of fee payment: 3

EXPY Cancellation because of completion of term