JP4398904B2 - 乱数系列生成装置、乱数系列生成方法、演算処理装置、演算処理方法及びプログラム - Google Patents
乱数系列生成装置、乱数系列生成方法、演算処理装置、演算処理方法及びプログラム Download PDFInfo
- Publication number
- JP4398904B2 JP4398904B2 JP2005180747A JP2005180747A JP4398904B2 JP 4398904 B2 JP4398904 B2 JP 4398904B2 JP 2005180747 A JP2005180747 A JP 2005180747A JP 2005180747 A JP2005180747 A JP 2005180747A JP 4398904 B2 JP4398904 B2 JP 4398904B2
- Authority
- JP
- Japan
- Prior art keywords
- random number
- bit
- number sequence
- generated
- significant bit
- 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
Images
Description
[バイナリ法]
(Step0) Input k,x,n
(Step1) 整数kを、k=Σ(ki・2i)と2進数表現する(i=0〜l−1につきそれぞれkiを求める)。ここで、ki∈T,T=[0,1]とする。
(Step2) y=1
(Step3) i=l−1から0までの間、次を繰り返す。
(Step3−1) y=y2 (mod n)
(Step3−2) ki=1ならば、y=y・x (mod n)
(Step4) Output y(=xk mod n)
バイナリ法などのビットの0,1の値に依存した演算アルゴリズムでは、べき指数を2進数表現したときのハミング重みが小さいほど計算量が少なくなることが分かっている。
[NAF変換アルゴリズム]
Input n
k←n
S←< >
while k>0
If k:odd u←2−(k mod 4)
else u←0
k←k−u
Prepend u to S
k←k/2
end while
Output S
例えば、正整数n=181のとき、符号付2進数表現S=10-10-10101が得られる。
[符号付バイナリ法]
(Step0) Input k,x,n
(Step1) 整数kを、k=Σ(ki・2i)と2進数表現する(i=0〜l−1につきそれぞれkiを求める)。ここで、ki∈T,T=[−1,0,1]とする。
(Step2) y=1
(Step3) i=l−1から0までの間、次を繰り返す。
(Step3−1) y=y2 (mod n)
(Step3−2) ki=1ならば、y=y・x (mod n)
(Step3−3) ki=−1ならば、y=y・x-1 (mod n)
(Step4) Output y(=xk mod n)
これらの符号付バイナリ法やNAF表現といったテクニックを用いることで、べき乗剰余算やスカラー倍算が効率よく演算できることになる。例えば、非特許文献1,2参照には、NAFを用いると非ゼロ係数の数が全体の約1/3となり(ゼロの数は約2/3)、べき乗剰余算(あるいはスカラー倍算)の計算量に関しては、NAFを用いない場合と比べて約11%効率化が図れる旨が記述されている。
(Step1) 乱数kを生成する。
(Step2) kのNAF変換d=NAF(k)を行う。
(Step3) べき乗剰余算y=xd mod nを計算する。
CRYPTOGRAPHY Theory and Practice SECOND EDITION(pp.258-259), Author: Douglas Stinson, Publisher: Chapman & Hall/CRC, ISBN: 1-58488-206-9 Guide to Elliptic Curve Cryptography(pp.98-100) , Author: Darrel Hankerson, Alfred J. Menezes, Scott Vanstone, Publisher: Springer Professional Computing Series, ISBN: 0-387-95273-X
また、本発明は、最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成部と、該乱数系列をべき指数として使用する演算を行う演算部とを備えた演算処理装置であって、前記乱数系列生成部は、−1、0又は1をとる3値の乱数を生成する3値乱数生成手段と、前記条件に基づいて、前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成手段とを有するものであり、前記演算部は、前記乱数系列生成手段による前記乱数系列の生成と並行して、前記乱数系列生成手段により生成された前記乱数系列を、その最上位ビットから最下位ビットへ向かって1又は複数ビットずつ順に使用しながら、特定の繰り返し処理を行う手段を有するものであることを特徴とする。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムとしても成立し、該プログラムを記録したコンピュータ読み取り可能な記録媒体としても成立する。
図1に、本発明の第1の実施形態に係るNAF乱数系列生成装置の構成例を示す。
(a)当該乱数系列において、最上位ビットは、1であることのみ許される。
(b)当該乱数系列において、非ゼロのビット同士が隣接することは、許されない(0と0が隣接すること、0と1が隣接すること、0と−1が隣接することは、いずれも許されるが、1と1が隣接すること、1と−1が隣接すること、及び−1と−1が隣接することは、いずれも許されない)。
(A)当該乱数系列において、最上位ビットは、1をとることのみ許される。
(B)当該乱数系列において、最上位ビット以外のビットは、そのビットの上位ビットが0の場合には−1と0と1のいずれをとることも許され、そのビットの上位ビットが−1又は1の場合には0をとることのみ許される。
第1の実施形態は、NAF規則を満たす乱数が発生されるまでループを繰り返す処理があるため、全lビットのNAF乱数系列が決定するまでの時間は不確定となるものであるが、第2の実施形態は、全lビットのNAF乱数系列が決定するまでの時間をほぼ一定とするものである。
図6に、第3の実施形態の演算処理装置200の構成例を示す。
第4の実施形態に係る演算処理装置の構成例は、第3の実施形態と同様である(図6参照)。ただし、第3の実施形態は、第1の実施形態のNAF乱数系列生成装置に相当するNAF乱数系列生成部120に、所定の演算を行う演算部として、べき乗剰余算を行う、べき乗剰余算部105を追加したものであるが、第4の実施形態は、第2の実施形態のNAF乱数系列生成装置に相当するNAF乱数系列生成部120に、所定の演算を行う演算部として、べき乗剰余算を行う、べき乗剰余算部105を追加したものである(本実施形態においても、べき乗剰余算部105は、既存のもので構わない)。
第3,4の実施形態では、べき乗剰余算を例にとって説明したが、楕円曲線暗号系に用いられる楕円曲線上の点のスカラー倍算で置き換えることも可能である。
(Step0) Input:d,P
(Step1) 整数dを、d=Σ(di・2i)と2進数表現する(i=0〜l−1につきそれぞれkiを求める)。ここで、ki∈T,T∈[−1,0,1]とする。
(Step2) Q←P
(Step3) i=l−2から0までの間、次を繰り返す。
(Step3−1) Q←2Q
(Step3−2) di=1ならば、Q←Q+P
(Step3−3) di=−1ならば、Q←Q−P
(Step4) Output Q(=dP)
図9に、本実施形態の演算処理装置300の構成例を示す。
ところで、これまでの説明において、本実施形態のNAF乱数系列生成装置100において、乱数生成部102で生成される[−1,0,1]の3値の発生確率をある一定の比率に変更することで、生成されるNAF乱数系列の特性を変更するができるようになる。
また、本実施形態は、コンピュータに所定の手順を実行させるための、あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるためのプログラムとして実施することもできる。加えて該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
Claims (12)
- 最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成装置であって、
−1、0又は1をとる3値の乱数を生成する3値乱数生成手段と、
前記条件に基づいて、前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成手段とを備えたことを特徴とする乱数系列生成装置。 - 前記乱数系列生成手段は、
前記3値乱数生成手段により生成された乱数を、それまでに生成した前記乱数系列のその時点における最下位ビットとして連結したならば、これによって得られた乱数系列が前記条件を満たすものになるか否かを調べ、満たすものになる場合に、該乱数を、該それまでに生成した前記乱数系列のその時点における最下位ビットとして連結する処理を、繰り返し行うことによって、前記任意のビット長の乱数系列を生成することを特徴とする請求項1に記載の乱数系列生成装置。 - 前記乱数系列生成手段は、
生成すべき前記任意のビット長の乱数系列の最上位ビットについて、前記3値乱数生成手段により生成される乱数を用いることなく、1を与え、生成すべき前記任意のビット長の乱数系列の最上位ビット以外の各ビットについて、最上位ビットの1つ下位のビットから最下位ビットへ向かって順に、当該ビットの上位ビットが−1又は1である場合には、前記3値乱数生成手段により生成される乱数を用いることなく、当該ビットとして0を与え、当該ビットの上位ビットが0である場合には、前記3値乱数生成手段により生成された乱数を、当該ビットの値として用いることによって、前記任意のビット長の乱数系列を生成することを特徴とする請求項1に記載の乱数系列生成装置。 - 前記乱数系列生成手段は、
生成すべき前記任意のビット長の乱数系列の最上位ビットについて、前記3値乱数生成手段により生成される乱数を用いることなく、1を与え、生成すべき前記任意のビット長の乱数系列の最上位ビットの1つ下位のビットについて、前記3値乱数生成手段により生成される乱数を用いることなく、0を与え、生成すべき前記任意のビット長の乱数系列の最上位ビット及び最上位ビットの1つ下位のビット以外の各ビットについて、最上位ビットの1つ下位のビットから最下位ビットへ向かって順に、当該ビットの上位ビットが−1又は1である場合には、前記3値乱数生成手段により生成される乱数を用いることなく、当該ビットとして0を与え、当該ビットの上位ビットが0である場合には、前記3値乱数生成手段により生成された乱数を、当該ビットの値として用いることによって、前記任意のビット長の乱数系列を生成することを特徴とする請求項1に記載の乱数系列生成装置。 - 前記3値乱数生成手段が前記乱数を生成するにあたっての−1の発生確率と0の発生確率と1の発生確率との比率を特定の比率とすることを特徴とする請求項1ないし4のいずれか1項に記載の乱数系列生成装置。
- 前記乱数系列生成手段により生成された前記乱数系列を、最上位ビットから最下位ビットへ向かって順に、1ビット又は複数ビットずつ逐次出力する主力手段を更に備えたことを特徴とする請求項1ないし5のいずれか1項に記載の乱数系列生成装置。
- 最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成装置における乱数系列生成方法であって、
前記乱数系列生成装置が備える3値乱数生成手段が、−1、0又は1をとる3値の乱数を生成する3値乱数生成ステップと、
前記乱数系列生成装置が備える乱数系列生成手段が、前記条件に基づいて、前記3値乱数生成ステップにおいて前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成ステップとを有することを特徴とする乱数系列生成方法。 - 最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成装置としてコンピュータを機能させるためのプログラムであって、
−1、0又は1をとる3値の乱数を生成する3値乱数生成手段と、
前記条件に基づいて、前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成手段としてコンピュータを機能させることを特徴とするプログラム。 - 最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成部と、該乱数系列をべき指数として使用する演算を行う演算部とを備えた演算処理装置であって、
前記乱数系列生成部は、
−1、0又は1をとる3値の乱数を生成する3値乱数生成手段と、
前記条件に基づいて、前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成手段とを有するものであり、
前記演算部は、前記乱数系列生成手段による前記乱数系列の生成と並行して、前記乱数系列生成手段により生成された前記乱数系列を、その最上位ビットから最下位ビットへ向かって1又は複数ビットずつ順に使用しながら、特定の繰り返し処理を行う手段を有するものであることを特徴とする演算処理装置。 - 前記演算は、べき乗剰余算又は楕円曲線暗号のスカラー倍算であることを特徴とする請求項9に記載の演算処理装置。
- 最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成する乱数系列生成部と、該乱数系列をべき指数として使用する演算を行う演算部とを備えた演算処理装置における演算処理方法であって、
前記乱数系列生成部が備える3値乱数生成手段が、−1、0又は1をとる3値の乱数を生成する3値乱数生成ステップと、
前記乱数系列生成部が備える乱数系列生成手段が、前記条件に基づいて、前記3値乱数生成ステップにおいて前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成ステップと、
前記演算部が、前記乱数系列生成ステップにおける前記乱数系列生成手段による前記乱数系列の生成と並行して、前記乱数系列生成ステップにおいて前記乱数系列生成手段により生成された前記乱数系列を、その最上位ビットから最下位ビットへ向かって1又は複数ビットずつ順に使用しながら、特定の繰り返し処理を行うステップとを有することを特徴とする演算処理方法。 - 最上位ビットについては1をとることのみ許され、最上位ビット以外のビットについては、その上位ビットが0の場合には−1と0と1のいずれをとることも許され、その上位ビットが−1又は1の場合には0をとることのみ許される条件を満たす乱数系列を生成し、生成した該乱数系列をべき指数として使用する演算を行う演算処理装置としてコンピュータを機能させるためのプログラムであって、
−1、0又は1をとる3値の乱数を生成する3値乱数生成手段と、
前記条件に基づいて、前記3値乱数生成手段により逐次生成される乱数の全部又は一部をその生成順に用いながら、生成すべき任意のビット長の乱数系列の最上位ビットから最下位ビットへ向かって順に1ビットずつ前記条件を満たすように各ビットの値を決定していくことによって、前記条件を満たす乱数系列を生成する乱数系列生成手段と、
前記乱数系列生成手段による前記乱数系列の生成と並行して、前記乱数系列生成手段により生成された前記乱数系列を、その最上位ビットから最下位ビットへ向かって1又は複数ビットずつ順に使用しながら、特定の繰り返し処理を行う演算手段としてコンピュータを機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005180747A JP4398904B2 (ja) | 2005-06-21 | 2005-06-21 | 乱数系列生成装置、乱数系列生成方法、演算処理装置、演算処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005180747A JP4398904B2 (ja) | 2005-06-21 | 2005-06-21 | 乱数系列生成装置、乱数系列生成方法、演算処理装置、演算処理方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007004268A JP2007004268A (ja) | 2007-01-11 |
JP4398904B2 true JP4398904B2 (ja) | 2010-01-13 |
Family
ID=37689861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005180747A Expired - Fee Related JP4398904B2 (ja) | 2005-06-21 | 2005-06-21 | 乱数系列生成装置、乱数系列生成方法、演算処理装置、演算処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4398904B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101443575B1 (ko) | 2013-04-29 | 2014-09-23 | 한국전자통신연구원 | 이진 난수열을 정수 난수로 변환하는 장치 및 방법 |
KR101804499B1 (ko) | 2016-03-23 | 2018-01-10 | 서울대학교산학협력단 | 이진수를 난수로 변환 또는 난수를 이진수로 변환하는 방법 및 그 장치 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013047727A (ja) * | 2011-08-29 | 2013-03-07 | Sony Corp | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
RU2542903C1 (ru) * | 2014-06-10 | 2015-02-27 | Федеральное государственное казенное военное образовательное учреждение высшего профессионального образования "ВОЕННАЯ АКАДЕМИЯ СВЯЗИ имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации | Генератор случайной последовательности |
-
2005
- 2005-06-21 JP JP2005180747A patent/JP4398904B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101443575B1 (ko) | 2013-04-29 | 2014-09-23 | 한국전자통신연구원 | 이진 난수열을 정수 난수로 변환하는 장치 및 방법 |
US9042545B2 (en) | 2013-04-29 | 2015-05-26 | Electronics And Telecommunications Research Institute | Apparatus and method for converting random binary sequence into random integer |
KR101804499B1 (ko) | 2016-03-23 | 2018-01-10 | 서울대학교산학협력단 | 이진수를 난수로 변환 또는 난수를 이진수로 변환하는 방법 및 그 장치 |
Also Published As
Publication number | Publication date |
---|---|
JP2007004268A (ja) | 2007-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7904498B2 (en) | Modular multiplication processing apparatus | |
US20050041811A1 (en) | Method and apparatus for modular inversion for information security and recording medium with a program for implementing the method | |
WO2015164996A1 (zh) | 椭圆域曲线运算方法和椭圆域曲线运算器 | |
US7486789B2 (en) | Device and method for calculation on elliptic curve | |
JP4398904B2 (ja) | 乱数系列生成装置、乱数系列生成方法、演算処理装置、演算処理方法及びプログラム | |
US6480606B1 (en) | Elliptic curve encryption method and system | |
JP4180024B2 (ja) | 乗算剰余演算器及び情報処理装置 | |
WO2018211675A1 (en) | Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program | |
CN112887096B (zh) | 用于签名和密钥交换的素数阶椭圆曲线生成方法及*** | |
JP2004258141A (ja) | モンゴメリ乗算剰余の多倍長演算のための演算装置 | |
JP2004227344A (ja) | 乗算器及び暗号回路 | |
JP5175983B2 (ja) | 演算装置 | |
JP2007187908A (ja) | サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法 | |
US7233662B2 (en) | Numerical array output device, a numerical array output method, an encryption device, and a decryption device | |
JP2006023647A (ja) | 乗算剰余演算器及び情報処理装置 | |
Azarderakhsh et al. | Common subexpression algorithms for space-complexity reduction of Gaussian normal basis multiplication | |
Ruan et al. | Left-to-right optimal signed-binary representation of a pair of integers | |
TWI784406B (zh) | 採用迭代計算的模數運算電路 | |
JP7146722B2 (ja) | 安全性評価装置、安全性評価方法及び安全性評価プログラム | |
JP2004166274A (ja) | 有限体での基底変換方法及び基底変換装置 | |
JP2004038020A (ja) | 暗号学的擬似乱数発生装置及びプログラム | |
JP4541485B2 (ja) | べき乗演算装置、べき乗剰余演算装置、楕円べき倍点演算装置、並びのそれらの方法、記録媒体 | |
CN110752931A (zh) | 一种sm2椭圆曲线公钥密码体制优化方法 | |
JP5403982B2 (ja) | 計算装置、方法及びプログラム | |
JP7191804B2 (ja) | 安全性評価装置、安全性評価方法及び安全性評価プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061024 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090303 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090714 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090902 |
|
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: 20090929 |
|
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: 20091023 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121030 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131030 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |