JP6904417B2 - 乱数算出装置、乱数算出方法、暗号装置、及び、乱数算出プログラム - Google Patents

乱数算出装置、乱数算出方法、暗号装置、及び、乱数算出プログラム Download PDF

Info

Publication number
JP6904417B2
JP6904417B2 JP2019532262A JP2019532262A JP6904417B2 JP 6904417 B2 JP6904417 B2 JP 6904417B2 JP 2019532262 A JP2019532262 A JP 2019532262A JP 2019532262 A JP2019532262 A JP 2019532262A JP 6904417 B2 JP6904417 B2 JP 6904417B2
Authority
JP
Japan
Prior art keywords
random number
frequency
numerical
numerical interval
number calculation
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.)
Active
Application number
JP2019532262A
Other languages
English (en)
Other versions
JPWO2019021386A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2019021386A1 publication Critical patent/JPWO2019021386A1/ja
Application granted granted Critical
Publication of JP6904417B2 publication Critical patent/JP6904417B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • 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/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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

Landscapes

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

Description

本発明は、精度が高い乱数を算出する乱数算出装置等に関する。
格子暗号(Lattice−based cryptography)は、量子コンピュータ(quantum computer)を用いて暗号を解読する場合であっても、解読することが難しい暗号の一例である。格子暗号においては、高精度な(すなわち、桁数が多い)乱数が用いられる。
乱数を用いて処理を実行する処理の一例が特許文献1に開示されている。特許文献1には、確率分布(probability distribution)に従う乱数の系列に基づき、情報を符号化する符号化装置が開示されている。該符号化装置は、算出した乱数を条件として用いた条件付き確率に基づき、確率分布に従う乱数の系列を算出する。
特開2014−109697号公報
格子暗号を用いて頑強な暗号を作成するためには、格子暗号において用いられる乱数は、高精度である(すなわち、桁数が多い)必要がある。また、数値シミュレーションや、データマイニング等の分野においても、高精度な乱数が必要である場合がある。しかし、精度(precision)が高い乱数を算出する処理には、メモリ等の計算機リソースが多く必要である。たとえ、特許文献1に開示された符号化装置を用いたとしても、高精度な乱数を算出することはできない。この理由は、該符号化装置が、精度に応じた乱数を算出することができないからである。
そこで、本発明の目的の1つは、高精度な乱数を、精度に依存しないメモリ容量にて算出することが可能な乱数算出装置等を提供することである。
本発明の1つの態様として、乱数算出装置は、
所与の数に基づく第1乱数を算出する乱数算出手段と、
対象数値範囲における前記所与の数の分だけの第2乱数に関して、所与の数値区間のうち該第2乱数を含む数値区間が所望の精度にて判定された場合における前記数値区間に含まれている頻度に関する累積頻度を表す頻度情報に基づき、前記第1乱数に応じた前記数値区間を特定する特定手段と
を備える。
また、本発明の他の態様として、乱数算出方法は、
情報処理装置によって、所与の数に基づく第1乱数を算出し、対象数値範囲における前記所与の数の分だけの第2乱数に関して、所与の数値区間のうち該第2乱数を含む数値区間が所望の精度にて判定された場合における前記数値区間に含まれている頻度に関する累積頻度を表す頻度情報に基づき、前記第1乱数に応じた前記数値区間を特定する。
また、本発明の他の態様として、乱数算出プログラムは、
所与の数に基づく第1乱数を算出する乱数算出機能と、
対象数値範囲における前記所与の数の分だけの第2乱数に関して、所与の数値区間のうち該第2乱数を含む数値区間が所望の精度にて判定された場合における前記数値区間に含まれている頻度に関する累積頻度を表す頻度情報に基づき、前記第1乱数に応じた前記数値区間を特定する特定機能と
をコンピュータに実現させる。
さらに、同目的は、係るプログラムを記録するコンピュータが読み取り可能な記録媒体によっても実現される。
本発明に係る乱数算出装置等によれば、高精度な乱数を、精度に依存しないメモリ容量にて算出することができる。
本発明の第1の実施形態に係る乱数算出装置が有する構成を示すブロック図である。 第1の実施形態に係る乱数算出装置における処理の流れを示すフローチャートである。 頻度情報記憶部に格納されている頻度情報の一例を概念的に表す図である。 確率分布の一例を概念的に表す図である。 累積分布の一例を概念的に表す図である。 本発明の第2の実施形態に係る乱数算出装置が有する構成を示すブロック図である。 第2の実施形態に係る乱数算出装置における処理のうち、頻度情報を作成する処理の流れを示すフローチャートである。 第2の実施形態に係る乱数算出装置における処理のうち、頻度情報に基づき、ある数値に関する数値区間を特定する処理の流れを示すフローチャートである。 本発明の各実施形態に係る乱数算出装置、または、暗号装置を実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
<第1の実施形態>
図1を参照しながら、本発明の第1の実施形態に係る乱数算出装置101が有する構成について詳細に説明する。図1は、本発明の第1の実施形態に係る乱数算出装置101が有する構成を示すブロック図である。
第1の実施形態に係る乱数算出装置101は、乱数算出部102と、特定部103とを有する。乱数算出装置101は、さらに、頻度情報記憶部104を有していてもよい。
頻度情報記憶部104には、所与の各数値区間に含まれている数値の個数(または、頻度)に関する累積頻度を表す頻度情報(図3に例示)が格納されている。図3は、頻度情報記憶部104に格納されている頻度情報の一例を概念的に表す図である。
以降の説明においては、所与の各数値区間に含まれている数値の個数を、単に、「数値区間における頻度」と表す。また、説明の便宜上、数値として乱数を用いた例を参照しながら説明する。しかし、数値は、乱数に限定されない。また、乱数は、擬似乱数であってもよい。この場合に、数値区間に含まれている数値は、たとえば、乱数が所与の数分だけ存在している場合に、各数値区間に含まれている該乱数を表す。
頻度情報においては、数値区間を表す識別情報と、複数の数値が該数値区間に含まれている個数(すなわち、該数値区間における頻度)に関する累積頻度を表す情報とが関連付けされている。
複数の数値は、たとえば、確率分布401(図4に例示)に従い、所望の精度(または、所望の桁数)にて算出される乱数である。図4は、確率分布401の一例を概念的に表す図である。横軸は、確率変数(図4における「X」)の値を表す数値であり、右側であるほど数値が大きいことを表す。縦軸は、確率(図4における「Y」)を表し、上側であるほど確率が高いことを表す。
確率分布401は、離散ガウス分布等の数学的に定義された確率分布であってもよいし、該所望の精度に応じて近似された確率分布であってもよい。たとえば、近似された確率分布は、所望の精度において、確率が0であると近似することができる数値範囲を無視することによって作成される。たとえば、図4に例示された確率分布に関して近似された確率分布は、数値区間xよりも小さい数値範囲における確率、及び、数値区間xよりも大きな数値範囲における確率(図4における「Y」)が0であると近似することによって作成される。
また、数値区間は、たとえば、上記のように近似された確率分布に含まれている数値範囲が複数に分割されることによって作成される。たとえば、図4においては、第1数値区間(図4における「x」)乃至第6数値区間(図4における「x」)なる6つの数値区間が例示されている。
図5に例示された累積分布(cumulative distribution)501は、たとえば、図4に例示された確率分布401に関して、数値の値が小さい方から順に(すなわち、横軸の左から順に)、確率が合計された合計値に関する分布を表す。図5は、累積分布501の一例を概念的に表す図である。横軸は、確率変数(図5における「X」)の値を表す数値であり、右側であるほど数値が大きいことを表す。縦軸は、累積確率(図5における「φ(x)」)を表し、上側であるほど累積確率が高いことを表す。
たとえば、格子暗号等の暗号処理においては、累積確率に関して算出された乱数Rに応じた数値区間を特定する処理が、累積分布501に基づき実行される。この方法は、逆関数(Inversion(transform) sampling)法とも呼ばれる。該逆関数法において、乱数Rに応じた数値区間を特定する処理について説明する。
累積分布501に関しては、確率分布401(図4に例示)と同様に、数値区間(たとえば、第1数値区間乃至第6数値区間)を定義することができる。累積分布501は、確率変数の値が増加するにつれ単調に増加する関数である。図5に例示された累積分布501においては、各数値区間に応じた累積確率の範囲が、以下のように決定される。
第1数値区間:y以下である範囲、
第2数値区間:yより大きくy以下である範囲、
第3数値区間:yより大きくy以下である範囲、
第4数値区間:yより大きくy以下である範囲、
第5数値区間:yより大きくy以下である範囲、
第6数値区間:yより大きくy以下である範囲。
は、たとえば、累積確率「1」を表す。
該累積確率の範囲は、数値区間を特定する基である情報である。
乱数Rに応じた数値区間を特定する処理においては、乱数Rを含む範囲(すなわち、「yi−1<R≦y」)が特定され、特定された範囲に応じた数値区間が特定される。図5に例示された累積分布501において、乱数Rが「y<R≦y」を満たしているので、乱数Rに応じた数値区間は、第3数値区間(図5における「x」)である。乱数Rが複数である場合には、各乱数に関して、数値区間を特定する処理が実行される。また、所望の精度にて算出された乱数Rに関する数値区間を特定する場合には、乱数Rが含まれている範囲を表す閾値(たとえば、上述したy乃至y)を、少なくとも、該所望の精度にて設定する必要がある。たとえば、高い精度を有する乱数を算出するためには、該乱数に関する精度と同等以上の精度にて閾値を表す必要がある。
図3に例示された頻度情報において、累積頻度は、各数値区間であると特定された乱数の個数(頻度)に関する累積頻度である。数値区間を特定する処理は、図5を参照しながら上述したような処理と同様な処理である。該処理においては、たとえば、ある確率分布に従い、所与の数の分だけの乱数が所望の精度にて算出され、算出された乱数に関して、該所望の精度にて該乱数に関する数値区間が特定される。
所与の数は、たとえば、本実施形態に係る乱数算出装置101によって算出される乱数を利用する場合における利用形態、または、該乱数を利用するブロック暗号の種類に応じて決められる。ここで、所与の数を「N」(Nは、自然数)と表すとする。たとえば、所与の数は、十分に安全であり、かつ、実用的な(たとえば、(log N)程度ビット幅を有する)ビットブロック暗号が存在しており、かつ、該利用形態によって要求される個数よりも大きい値に設定される。ただし、「log」は、たとえば、2を底とする対数関数を表す。所与の数が少ないほど、乱数を算出する処理に要するメモリ容量は少ない。所与の数は、たとえば、ブロック暗号の種類に応じた値(232、または、264等の値)設定される。
図3に例示された頻度情報における累積頻度に関する頻度は、所望の精度にて算出された乱数(または、数値)に関する数値区間を、該所望の精度にて特定した場合に、各数値区間に含まれる該乱数の個数(頻度)を表す。したがって、図3に例示された頻度情報において、累積頻度は、数値区間における数値が小さい数値区間から順に(たとえば、図4における横軸方向左から順に)、該数値区間に含まれている頻度が合計された合計値を表している。
図4に例示された確率分布に従い算出される乱数の例を参照しながら、頻度情報(図3に例示)について説明する。説明の便宜上、乱数の個数は、第1数値区間乃至第6数値区間に関して、以下に示す通りであるとする。
第1数値区間:1個、
第2数値区間:4個、
第3数値区間:7個、
第4数値区間:5個、
第5数値区間:2個、
第6数値区間:1個。
この例において、第1数値区間に関する累積頻度は、1である。第2数値区間に関する累積頻度は、5(=1+4)である。第3数値区間に関する累積頻度は、12(=5+7)である。第4数値区間に関する累積頻度は、17(=12+5)である。第5数値区間に関する累積頻度は、19(=17+2)である。第6数値区間に関する累積頻度は、20(=19+1)である。したがって、図3に例示された頻度情報において累積頻度の最大値が20であるので、図3に示された例において、上述したような所与の数は、20である。
言い換えると、頻度情報は、対象数値範囲(たとえば、第1数値区間乃至第6数値区間)における所与の数の分だけの第2乱数に関して作成された頻度に関する累積頻度を表す情報を含む。該頻度情報に関して、該頻度は、該第2乱数を含む数値区間が所望の精度にて判定された場合に算出される頻度である。該対象数値範囲は、頻度を算出する対象である数値範囲を表す。
頻度情報は、たとえば、図7を参照しながら後述する処理に従い作成されてもよい。または、頻度情報は、所与の数と、各数値区間に関する確率を用いて構成される二項分布(binomial distribution)を用いて、該所与の数の分だけの乱数を算出することができる。この処理については、第2の実施形態にて式1乃至式3を参照しながら詳細に説明する。二項分布を用いて頻度情報を作成する処理によって、所与の数が多い場合であっても、効率的に、かつ、正確に乱数を算出することが可能である。この理由については、第2の実施形態にて詳述する。
次に、図2を参照しながら、本発明の第1の実施形態に係る乱数算出装置101における処理について詳細に説明する。図2は、第1の実施形態に係る乱数算出装置101における処理の流れを示すフローチャートである。
乱数算出部102は、1から所与の数までの間の数値に関して、乱数(以降、「第1乱数」と表す)を、少なくとも1つ、算出する(ステップS101)。したがって、乱数算出部102は、該所与の数に基づく第1乱数を算出する。乱数算出部102は、第1乱数を、たとえば、重複のない一様分布から選択する。後述する図8に示されたループ処理において、乱数算出部102は、ループ処理を実行する場合に、該第1乱数を、たとえば、所定の範囲における値のうち過去に出現した値以外の値の中から、ランダムに選択する。第1乱数は、図8におけるステップS211を参照しながら後述するような処理に従い算出される乱数であってもよいし、1から所与の数までの整数をランダムに並び替えることによって算出される乱数であってもよい。第1乱数を算出する方法は、上述した例に限定されない。
乱数算出部102は、算出した第1乱数を特定部103に入力する。
特定部103は、乱数算出部102が算出した第1乱数を受け取る。特定部103は、頻度情報記憶部104に格納されている頻度情報(図3に例示)のうち、累積頻度が該第1乱数を超える数値区間を特定する(ステップS102)。説明の便宜上、第1乱数は、8であるとする。図3に例示された頻度情報の場合に、頻度情報における累積頻度が第1乱数(この例において8)を超える数値区間は、第3数値区間(すなわち、数値区間x)である。したがって、図3に例示された頻度情報において、特定部103は、ステップS102に示された処理において、第3数値区間を特定する。
特定部103は、特定した数値区間を表す識別情報を出力してもよい。識別情報は、たとえば、数値区間における上限値、または、下限値等の数値である。
乱数算出装置101は、図2に示された処理を、所与の数回、実行することによって、各乱数に関する数値範囲を特定し、特定した該数値範囲を表す情報を出力してもよい。図2に示された処理を、所与の数回、実行することによって、頻度情報における累積頻度(すなわち、第2乱数に関する分布)に従う乱数を算出することができる。
乱数算出装置101は、図2に示された処理を所与の数回、実行する処理を、互いに異なる乱数系列に従い算出した第1乱数に対して実行してもよい。この場合に、乱数算出装置101は、図2に示された処理を、所与の数回、実行することによって、頻度情報における累積頻度(すなわち、第2乱数に関する分布)に従う乱数系列を複数算出することができる。
乱数算出部102は、互いに異なる第1乱数を、所与の数分だけ算出してもよい。この場合に、特定部103は、乱数算出部102が算出した各第1乱数に関して、該第1乱数に応じた数値区間を特定する処理を実行する。この結果、乱数算出装置101は、第2乱数の分布に従う乱数を、所与の数分だけ算出することができる。
次に、本発明の第1の実施形態に係る乱数算出装置101に関する効果について説明する。
第1の実施形態に係る乱数算出装置101によれば、高精度な乱数を、精度に依存しないメモリ容量にて算出することができる。この理由について説明する。
説明の便宜上、数値の精度は、該数値を表すビット列の長さ(すなわち、該数値の桁数)であるとする。また、ビット列の長さは、e(ただし、eは、128、256、512、1024、2048、4096等の正の整数である)であるとする。この場合に、該数値は、eビットを用いて表されている。
格子暗号等において用いられる乱数としては、所望の精度を有する乱数が用いられる。この処理においては、たとえば、乱数として、eビットを有する乱数Uを算出し、算出した乱数Uを含む数値区間を特定する処理が実行される。格子暗号等においては、たとえば、ある確率分布に関する累積確率を表す累積確率関数φにおいて、乱数Uを含む数値区間を特定する処理が実行される。累積確率は、確率変数の値が小さい順に、該確率変数に関する確率を合計することによって算出される。すなわち、累積確率は、確率変数の値が、ある値以下である場合の確率を表す。数値区間を特定する処理は、「φ(k−1)<(乱数U)≦φ(k)」を満たしている数値kを特定する処理であると表すことができる。
数値区間を特定する処理においては、たとえば、以下のように、累積確率関数φに関する値が与えられる。
φ(−1)=0.44444、
φ(0)=0.55555、
φ(1)=0.64444。
ただし、数値区間を特定する処理においては、累積確率関数φの値は、所望の精度にて表されているとする。この例において、数値区間は、2つの数値区間(すなわち、「φ(−1)<(乱数U)≦φ(0)」なる数値区間と、「φ(0)<(乱数U)≦φ(1)」なる数値区間)である。
説明の便宜上、乱数Uは、0.54321であるとする。
乱数Uに関する数値区間を特定する処理においては、たとえば、φ(−1)、φ(0)、及び、φ(1)と、乱数Uとに関して、所望の精度にて大小が比較される。この例においては「φ(0)<(乱数U)≦φ(1)」であるので、数値区間を特定する処理においては、数値kとして、0が算出される。したがって、数値区間がm(mは、自然数)個である場合に、数値区間を特定する処理においては、(m×e)ビットの大きさを有する参照情報を参照する必要がある。該参照情報においては、数値区間と、該数値区間を特定する基となる閾値とが関連付けされている。したがって、乱数の精度が高いほど、該乱数を算出する処理に、より多くのメモリ容量が必要である。
これに対して、第1の実施形態に係る乱数算出装置101において、頻度情報は、(m×e)ビットよりも小さな情報を参照する。この理由について説明する。
説明の便宜上、数値区間の個数は、上述した説明と同様に、m個であるとする。
図3に例示された頻度情報においては、累積頻度は、整数であり、j(jは、自然数)ビットを用いて表されているとする。所与の数は、たとえば、ブロック暗号の種類に応じた値(232、または、264等の値)である。したがって、この場合に、jは、32(ビット)、または、64(ビット)という値である。したがって、累積頻度を表すビット数jは、所望の精度を表すビット数eに比べて小さい。
第1の実施形態に係る乱数算出装置101において、頻度情報(図3に例示)は、(m×j)ビットの大きさを有している。したがって、頻度情報(図3に例示)が、(m×e)ビットよりも小さい大きさであるので、乱数算出装置101によれば、少ないメモリ容量にて算出することができる。また、該メモリ容量は、乱数に関する精度(すなわち、所望の精度)によらずに、一定である。したがって、乱数算出装置101によれば、精度に依存しないメモリ容量にて算出することができる。
また、図3を参照しながら上述したように、頻度情報は、所与の数の分だけの乱数が、所望の精度にて算出され、算出された乱数に関して、該所望の精度にて該乱数に関する数値区間が特定される場合における、該数値区間における頻度を表す。したがって、該頻度情報に基づき特定される数値区間は、参照情報を参照しながら特定した数値区間と同様な情報である。したがって、第1の実施形態に係る乱数算出装置101によれば、高精度な乱数を算出することができる。
上述した効果をまとめると、第1の実施形態に係る乱数算出装置101によれば、高精度な乱数を、精度に依存しないメモリ容量にて算出することができる。
<第2の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第2の実施形態について説明する。
図6を参照しながら、本発明の第2の実施形態に係る乱数算出装置201が有する構成について詳細に説明する。図6は、本発明の第2の実施形態に係る乱数算出装置201が有する構成を示すブロック図である。
第2の実施形態に係る乱数算出装置201は、乱数算出部203と、特定部204と、頻度情報記憶部208と、頻度算出部206と、頻度情報作成部207とを有する。乱数算出装置201は、さらに、第2乱数算出部205を有していてもよい。
頻度情報記憶部208には、図7を参照しながら後述する処理に従い作成される頻度情報(図3に例示)が格納される。特定部204は、図8を参照しながら後述する処理に従い、頻度情報記憶部208に格納されている頻度情報(図3に例示)に基づき、ある数値に関する数値区間を特定する。特定部204における処理は、たとえば、図2を参照しながら上述した処理と同様な処理であってもよい。
乱数算出装置201は、たとえば、図6に例示されているように、暗号装置210に含まれていてもよい。この場合に、暗号装置210は、乱数算出装置201と、鍵作成部211と、暗号化部212とを有する。
第2の実施形態に係る乱数算出装置201における処理は、頻度情報を作成する処理(図7を参照しながら後述する)と、作成した該頻度情報に基づき、ある数値に関する数値区間を特定する処理(図8を参照しながら後述する)とに大別される。
次に、図7を参照しながら、本発明の第2の実施形態に係る乱数算出装置201における処理のうち、頻度情報(図3に例示)を作成する処理について説明する。図7は、第2の実施形態に係る乱数算出装置201における処理のうち、頻度情報を作成する処理の流れを示すフローチャートである。
第2乱数算出部205は、所定の確率分布(図4に例示)に従う確率を、所与の数の分だけ、選択する(ステップS201)。該確率を選択する処理は、たとえば、ランダム、または、擬似的にランダムに選択する処理である。該確率は、所望の精度(または、所望の桁数)にて表されており、たとえば、eビットを用いて表されている。第2乱数算出部205は、選択した確率を表す情報を、頻度算出部206に入力する。また、所定の確率分布は、たとえば、離散ガウス分布において、平均が0であり、確率が0と近似できる数値区間以外の数値区間における確率が正規化された分布である。
頻度算出部206は、第2乱数算出部205から、該確率を表す情報を受け取る。頻度算出部206は、各確率に応じた数値区間を、少なくとも所望の精度にて選択する(ステップS202)。頻度算出部206は、各数値区間に関して、ステップS202にて選択された頻度(回数)を算出する(ステップS203)。頻度算出部206は、ステップS202、及び、ステップS203を、該乱数の個数(すなわち、所与の数)分だけ、実行する。ステップS202、及び、ステップS203における処理は、図5を参照しながら説明した処理と同様な処理である。頻度算出部206は、算出した頻度を表す情報を頻度情報作成部207に入力する。
頻度情報作成部207は、頻度算出部206が入力した頻度を表す情報を受け取る。頻度情報作成部207は、該頻度を表す情報に関して、小さな値である数値区間から順に合計値を算出することによって、該所与の数値区間に関する累積頻度を算出する(ステップS204)。頻度情報作成部207は、該数値区間を表す情報と、該数値区間に関して算出された該累積頻度とが関連付けされた頻度情報(図3に例示)を作成し(ステップS205)、作成した該頻度情報を、頻度情報記憶部208に格納する。
次に、図8を参照しながら、本発明の第2の実施形態に係る乱数算出装置201における処理のうち、頻度情報(図3に例示)に基づき、ある数値に関する数値区間を特定する処理について説明する。図8は、第2の実施形態に係る乱数算出装置201における処理のうち、頻度情報(図3に例示)に基づき、ある数値に関する数値区間を特定する処理の流れを示すフローチャートである。
図8に示されたステップS211乃至ステップS212における処理は、第1乱数ごとのループ処理において、繰り返し実行される。
乱数算出部203は、たとえば、1から所与の数までの間の数値のうち少なくともいずれかの数値を所定の暗号化手順に従い暗号化することによって、第1乱数を算出する(ステップS211)。所定の暗号化手順は、たとえば、暗号鍵を用いて暗号化するブロック暗号方式に従った処理である。乱数算出部203は、複数の第1乱数を算出する場合に、図8に示されたループ処理ごとに互いに異なる平文を、ブロック暗号に従い、ある暗号鍵を用いて暗号化することによって、該第1乱数を算出する。該異なる平文は、たとえば、1から所与の数までの数値の中から、重複なく、かつ、ランダムに選ばれる数値である。
該ブロック暗号は、異なる平文に対して異なる暗号文を算出する暗号である。したがって、図8に示されたループ処理ごとに異なる平文を、ブロック暗号を用いて暗号化することによって、該ループ処理ごとに異なる暗号文が作成される。本実施形態において、該暗号文が該第1乱数として用いられる。
ブロック暗号に対する入力(この場合に、平文)は、たとえば、ループ処理ごとに重複のない数である。該入力は、たとえば、1からMまでの自然数のうち、ループ処理ごとに異なる値が選ばれることによって設定されてもよい。または、該入力は、第I(ただし、Iは自然数)回目のループ処理において、自然数Iであってもよい。このような処理によって、ブロック暗号に対する入力が、ループ処理ごとに互いに異なっているので、該ブロック暗号に従い暗号化された暗号文は、互いに異なっている。したがって、該暗号文を、第1乱数として用いることができる。
説明の便宜上、暗号鍵Kを用いて、平文Cを暗号化することにより作成される暗号文を「Enc(K、C)」と表す。
上述した例において、乱数算出部203は、第1乱数として、たとえば、Enc(K,1)、Enc(K,2)、または、Enc(K,3)等の暗号文を作成する。
乱数算出部203は、作成した該第1乱数を表す情報を特定部204に入力する。
特定部204は、乱数算出部203から該第1乱数を表す情報を受け取る。特定部204は、頻度情報記憶部208に格納されている頻度情報(図3に例示)のうち、累積頻度が該第1乱数を超える数値区間を特定する(ステップS212)。上述したように、累積頻度は、第2乱数に関する所望の精度よりも低い精度にて表されている。したがって、累積頻度を特定する処理は、所望の精度にて第2乱数に関する数値区間を特定する処理も、少ない処理にて実現することができる。
たとえば、上述した例において、第1乱数を第1数値区間乃至第6数値区間に分類する条件は、以下に示すような閾値t乃至閾値tを用いて表すことができる。
第1数値区間:第1乱数がt以下である、
第2数値区間:第1乱数がtより大きくt以下である、
第3数値区間:第1乱数がtより大きくt以下である、
第4数値区間:第1乱数がtより大きくt以下である、
第5数値区間:第1乱数がtより大きくt以下である、
第6数値区間:第1乱数がtより大きくt以下である。
図3に例示された頻度情報の場合には、たとえば、tは、1である。tは、5である。tは、12である。tは、17である。tは、19である。tは、20である。
言い換えると、特定部204は、ステップS212において、「ti−1<(第1乱数)≦t」を満たしている「i」を特定することによって、第1乱数に関する数値区間を特定する。特定部204は、特定した数値区間を表す識別情報(この例では、「i」)を出力してもよい。ステップS212において、特定部204は、たとえば、2分探索法に従い数値区間を特定することができる。
次に、頻度情報を作成する処理の一例について説明する。該処理は、図7におけるステップS201乃至ステップS203に示されている処理を実現する処理の一例である。
説明の便宜上、第1数値区間乃至第m(mは、自然数を表す)数値区間について、頻度情報を作成するとする。また、所定の確率分布に従い、第i(ただし、1≦i≦m)数値区間に関する確率(たとえば、図4における縦軸方向に示された確率)をpと表す。頻度情報を作成する処理において、頻度算出部206は、第i数値区間における頻度を算出する。さらに、頻度算出部206は、第i数値区間に関して、「i」が小さい数値区間から順に(たとえば、図4における横軸方向の左から右に)頻度を算出するとする。しかし、頻度算出部206は、必ずしも「i」が小さい数値区間から作成しなくてもよい。また、Nは、所与の数を表すとする。「」は、a個の中からb個を選ぶ組み合わせの個数を表すとする。「Pr(A|B)」は、事象Bが生じた場合において事象Aが生じる条件付き確率を表す。
頻度算出部206は、所定の確率分布に従うN個の乱数のうち、第1数値区間における頻度がk(kは自然数)であり、かつ、第1数値区間以外の数値区間における頻度が(N−k)である出現確率(式1に例示)に基づき、第1数値区間における頻度(すなわち、k)を算出する。
Figure 0006904417
より具体的に該処理を説明する。第2乱数算出部205は、第2乱数を算出する。頻度算出部206は、式1に例示された二項分布に関する累積確率が、該第2乱数を超える頻度kを、第1数値区間における頻度として算出する。
説明の便宜上、第1数値区間に関して算出された頻度を「d」と表す。この場合に、式1に示された分布は、Pr(n=d)と表すこともできる。
次に、頻度算出部206は、第1数値区間における頻度がdである場合に、所定の確率分布に従うN個の乱数のうち、第2数値区間における頻度がk(kは自然数)である出現確率(式2に例示)に基づき、第2数値区間における頻度(すなわち、k)を算出する。
Figure 0006904417
式2に示された二項分布は、所定の確率分布に従うN個の乱数のうち、第1数値区間における頻度(d)以外の個数(N−d)にて、第2数値区間における頻度がkであり、第1数値区間及び第2数値区間以外の頻度が(N−d−k)以外である確率を表す。
より具体的に該処理を説明する。第2乱数算出部205は、第2乱数を算出する。頻度算出部206は、式2に例示された二項分布に関する累積確率分布が、該第2乱数を超える頻度kを、第2数値区間における頻度として算出する。
説明の便宜上、第1数値区間に関して算出された頻度を「d」と表す。この場合に、式2に示された分布は、Pr(n=d|n=d)と表すこともできる。
第3数値区間以降の数値区間に関しても、第2乱数算出部205、及び、頻度算出部206は、上述した処理と同様な処理を実行することによって、各数値区間における頻度を算出する。
次に、頻度算出部206が第i数値区間における頻度を算出する処理について説明する。この場合に、上述した仮定から、第1数値区間乃至第(i−1)数値区間における頻度は、それぞれ、d乃至di−1として算出されている。頻度算出部206は、第1数値区間乃至第(i−1)数値区間における頻度が上述したように算出されている場合に、所定の確率分布に従うN個の乱数のうち、第i数値区間における頻度がk(kは自然数)である出現確率(式3に例示)に基づき、第i数値区間における頻度(すなわち、k)を算出する。
Figure 0006904417
式3に示された二項分布は、所定の確率分布に従うN個の乱数のうち、第1数値区間乃至第(i−1)数値区間における頻度が、それぞれ、d乃至di−1である場合に、第i数値区間における頻度がkであり、第1数値区間乃至第(i−1)数値区間以外の頻度が(N−d−d−・・・−di−1)以外である確率を表す。
より具体的に該処理を説明する。第2乱数算出部205は、第2乱数を算出する。頻度算出部206は、式3に例示された二項分布に関する累積確率分布が、該第2乱数を超えるkiを、第i数値区間における頻度として算出する。この場合に、式3に示された分布は、Pr(n=d|n=d,n=d,・・・,ni−1=di−1)と表すこともできる。
上述したような処理が、第1数値区間乃至第(m−1)数値区間まで繰り返し実行される。頻度算出部206は、第m数値区間における頻度を、たとえば、所与の数から、第1数値区間乃至第(m−1)数値区間における各頻度を引き算することによって算出する。
次に、乱数算出装置201が算出した乱数を用いて、格子暗号等の暗号方式が実現される暗号装置210の一例について、簡易的に説明する。ただし、乱数を用いて格子暗号を実現する方法は、多くの方法が知られているので、本実施形態においては、詳細な説明を省略する。また、乱数算出装置201が算出した乱数を用いて実現される暗号装置は、以下に示す例に限定されない。
鍵作成部211は、乱数算出装置201が特定した数値区間を表す情報を暗号鍵として出力する。該情報は、たとえば、該数値区間における上限値である。該上限値は、乱数として扱うことができる。したがって、暗号化部212は、乱数算出装置201から乱数を受け取り、受け取った乱数を該暗号鍵として出力する。
暗号化部212は、乱数算出装置201が特定した数値区間を表す情報を、少なくとも1つの数値区間に関して受け取る。また、暗号化部212は、暗号化する対象である平文を表す情報を受け取る。上述したように、該情報は、たとえば、該数値区間における上限値である。該上限値は、乱数として扱うことができる。したがって、暗号化部212は、乱数算出装置201から少なくとも1つの乱数を受け取る。暗号化部212は、暗号鍵と、平文と、該乱数とに対して、所定の暗号化手順を適用することによって、該平文に対する暗号文を作成する。所定の暗号化手順は、たとえば、該乱数をノイズとして設定し、該暗号鍵と、該ノイズとを用いて該平文を暗号化する処理である。
次に、本発明の第2の実施形態に係る乱数算出装置201に関する効果について説明する。
第2の実施形態に係る乱数算出装置201によれば、高精度な乱数を、精度に依存しないメモリ容量にて算出することができる。この理由は、第1の実施形態にて説明した理由と同様である。
さらに、第2の実施形態に係る乱数算出装置201によって算出された乱数に基づき暗号化処理等を実行する暗号装置210によれば、暗号に関して高い安全性を保つことができる。この理由は、第1の実施形態にて上述したように、乱数算出装置201が高精度な乱数を算出するからである。
第2の実施形態に係る乱数算出装置201によれば、さらに、複数の乱数を効率よく算出することができる。この理由は、1から所与の数までの数値のうちの複数の数値を、ブロック暗号に従い暗号化することによって乱数を算出する処理が、複数の数値をシャッフルすることにより乱数を算出する処理も処理量が少ないからである。重複のない乱数を複数算出する方法には、たとえば、重複のない数値を含む数値列に関して当該数値列に含まれる数値をランダムに並び替える(シャッフルする)ことによって乱数を算出する方法等がある。これに対して、乱数算出装置201は、ブロック暗号を用いて異なる平文を暗号化することによって乱数を算出する。複数の数値をシャッフルすることにより乱数を算出する手法に関しては、該複数の数値をシャッフルする処理が進むにつれ、シャッフルされていない数値をシャッフルする対象として選択する処理に要する処理量が増える。これに対して、乱数算出装置201における処理は、複数の数値をブロック暗号に従い暗号化することによって乱数を算出する動作である。ブロック暗号に従い暗号化することにより乱数を算出する処理においては、乱数を複数算出する場合であっても、処理が進むにつれて処理量が増えることはない。この結果、第2の実施形態に係る乱数算出装置201によれば、さらに、複数の乱数を効率よく算出することができる。
第2の実施形態に係る乱数算出装置201によれば、さらに、所望の精度を有する乱数を複数含む乱数系列を複数算出する場合であっても、精度に依存しないメモリ容量にて、該複数の乱数系列を算出することができる。この理由は、頻度算出部206が所望の精度にて第2乱数を含む数値区間を特定することによって作成した頻度情報(図3に例示)に基づき、第1乱数に関する数値区間を特定することができるからである。
また、第2の実施形態に係る乱数算出装置201によれば、二項分布に関する累積分布に基づき頻度を算出することによって、効率的に、頻度情報(図3に例示)を作成することができる。この理由は、所与の数の分だけの頻度情報を、該所与の数分よりも少ない乱数の算出回数にて算出することができるからである。
(ハードウェア構成例)
上述した本発明の各実施形態に係る乱数算出装置、または、暗号装置を、1つの計算処理装置(情報処理装置、コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。但し、係る乱数算出装置は、物理的または機能的に少なくとも2つの計算処理装置を用いて実現されてもよい。また、係る乱数算出装置、または、暗号装置は、専用の装置として実現されてもよい。
図9は、本発明の各実施形態に係る乱数算出装置、または、暗号装置を実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。計算処理装置20は、中央処理演算装置(Central_Processing_Unit、以降「CPU」と表す)21、メモリ22、ディスク23、不揮発性記録媒体24、及び、通信インターフェース(以降、「通信IF」と表す)27を有する。計算処理装置20は、入力装置25、出力装置26に接続可能であってもよい。計算処理装置20は、通信IF27を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
不揮発性記録媒体24は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact_Disc)、デジタルバーサタイルディスク(Digital_Versatile_Disc)である。また、不揮発性記録媒体24は、ユニバーサルシリアルバスメモリ(USBメモリ)、ソリッドステートドライブ(Solid_State_Drive)等であってもよい。不揮発性記録媒体24は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体24は、上述した媒体に限定されない。また、不揮発性記録媒体24の代わりに、通信IF27、及び、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
すなわち、CPU21は、ディスク23に格納されているソフトウェア・プログラム(コンピュータ・プログラム:以下、単に「プログラム」と称する)を、実行する際にメモリ22にコピーし、演算処理を実行する。CPU21は、プログラム実行に必要なデータをメモリ22から読み取る。表示が必要な場合に、CPU21は、出力装置26に出力結果を表示する。外部からプログラムを入力する場合に、CPU21は、入力装置25からプログラムを読み取る。CPU21は、上述した図1、または、図6に示す各部が表す機能(処理)に対応するところのメモリ22にある乱数算出プログラム(図2、図7、または、図8)を解釈し実行する。CPU21は、上述した本発明の各実施形態において説明した処理を順次実行する。
すなわち、このような場合に、本発明の各実施形態は、係る乱数算出プログラムによっても成し得ると捉えることができる。さらに、係る乱数算出プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明の各実施形態は成し得ると捉えることができる。
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかし、上述した各実施形態により例示的に説明した本発明は、以下には限られない。
(付記1)
所与の数に基づく第1乱数を算出する乱数算出手段と、
対象数値範囲における前記所与の数の分だけの第2乱数に関して、所与の数値区間のうち該第2乱数を含む数値区間が所望の精度にて判定された場合における前記数値区間に含まれている頻度に関する累積頻度を表す頻度情報に基づき、前記第1乱数に応じた前記数値区間を特定する特定手段と
を備える乱数算出装置。
(付記2)
前記乱数算出手段は、前記所与の数の分だけの互いに異なる前記第1乱数を算出する
付記1に記載の乱数算出装置。
(付記3)
前記乱数算出手段は、暗号鍵を用いて暗号文を作成する所定の暗号化手順に従い、1から所与の数までの少なくともいずれかの数値を暗号化することによって、互いに異なる前記第1乱数を算出し、
前記所定の暗号化手順は、異なる数値に対して異なる暗号文を算出する動作である
付記1または付記2に記載の乱数算出装置。
(付記4)
前記頻度情報に基づき複数の前記第1乱数に対する数値区間を特定する場合に、前記特定手段は、前記累積頻度が前記第2乱数を超える前記数値区間を特定する
付記1乃至付記3のいずれかに記載の乱数算出装置。
(付記5)
前記乱数算出手段は、前記所定の暗号化手順に従い、前記暗号鍵を用いて、1から所与の数までの自然数を暗号化することによって、複数の前記第1乱数を算出し、
前記特定手段は、複数の前記第1乱数に関して、それぞれ、前記数値区間を特定する
付記3に記載の乱数算出装置。
(付記6)
前記第2乱数を含む前記数値区間を前記所望の精度にて特定し、前記数値区間に関する前記頻度を算出する頻度算出手段と、
前記頻度に関する前記累積頻度を求め、求めた前記累積頻度を表す前記頻度情報を作成する頻度情報作成手段と
をさらに備える付記1乃至付記5のいずれかに記載の乱数算出装置。
(付記7)
所定の確率分布に従う前記第2乱数を前記所望の精度にて算出する乱数算出手段
をさらに備える付記6に記載の乱数算出装置。
(付記8)
前記頻度算出手段は、前記所与の数のうち前記数値区間が出現する頻度に関する出現確率が合計された累積確率に基づき、0から1までの乱数に応じた前記累積確率に関する前記頻度を算出する
付記6または付記7に記載の乱数算出装置。
(付記9)
付記1乃至付記8のいずれかに記載の乱数算出装置と、
前記乱数算出装置によって特定された前記数値区間を表す情報を暗号鍵として作成する鍵作成手段
を備える暗号装置。
(付記10)
前記乱数算出装置によって特定された前記数値区間を表す情報をノイズとして設定し、前記暗号鍵と、前記ノイズとを用いて暗号化処理を実行する暗号化手段
をさらに備える付記9に記載の暗号装置。
(付記11)
情報処理装置によって、所与の数に基づく第1乱数を算出し、対象数値範囲における前記所与の数の分だけの第2乱数に関して、所与の数値区間のうち該第2乱数を含む数値区間が所望の精度にて判定された場合における前記数値区間に含まれている頻度に関する累積頻度を表す頻度情報に基づき、前記第1乱数に応じた前記数値区間を特定する乱数算出方法。
(付記12)
所与の数に基づく第1乱数を算出する乱数算出機能と、
対象数値範囲における前記所与の数の分だけの第2乱数に関して、所与の数値区間のうち該第2乱数を含む数値区間が所望の精度にて判定された場合における前記数値区間に含まれている頻度に関する累積頻度を表す頻度情報に基づき、前記第1乱数に応じた前記数値区間を特定する特定機能と
をコンピュータに実現させる乱数算出プログラムが記録された記録媒体。
上述したような本発明の各実施形態に係る乱数算出装置によって算出された乱数は、上述したような暗号装置の他に、乱数を用いた学習装置、または、モンテカルロ法等の乱数を用いてシミュレーションを実行するシミュレーション装置等にて利用することができる。または、該乱数は、乱択アルゴリズム(Randomized algorithm)に従い処理を実行する装置等にて利用することができる。
101 乱数算出装置
102 乱数算出部
103 特定部
104 頻度情報記憶部
201 乱数算出装置
203 乱数算出部
204 特定部
205 第2乱数算出部
206 頻度算出部
207 頻度情報作成部
208 頻度情報記憶部
210 暗号装置
211 鍵作成部
212 暗号化部
20 計算処理装置
21 CPU
22 メモリ
23 ディスク
24 不揮発性記録媒体
25 入力装置
26 出力装置
27 通信IF

Claims (5)

  1. 所定の確率分布に従う第2乱数を所望の精度にて所与の数の分だけ算出する乱数算出手段と、
    前記第2乱数を含む数値区間を前記所望の精度にて特定し、前記数値区間に関する頻度を算出する頻度算出手段と、
    前記頻度に関する累積頻度を求め、求めた前記累積頻度を表す頻度情報を作成する頻度情報作成手段と、
    暗号鍵を用いて暗号文を作成する所定の暗号化手順に従い、1から前記所与の数までの自然数を暗号化することによって、互いに異なる第1乱数を算出する乱数算出手段と、
    前記頻度情報に基づき、前記第1乱数に応じた前記数値区間を特定する特定手段と
    を備え
    前記所定の暗号化手順は、異なる数値に対して異なる暗号文を算出する動作である
    乱数算出装置。
  2. 前記頻度情報に基づき複数の前記第1乱数に応じた前記数値区間を特定する場合に、前記特定手段は、前記累積頻度が前記第2乱数を超える前記数値区間を特定する
    請求項1記載の乱数算出装置。
  3. 請求項1または請求項2に記載の乱数算出装置と、
    前記乱数算出装置によって特定された前記数値区間を表す情報を暗号鍵として作成する鍵作成手段
    を備える暗号装置。
  4. 情報処理装置によって、所定の確率分布に従う第2乱数を所望の精度にて所与の数の分だけ算出し、前記第2乱数を含む数値区間を前記所望の精度にて特定し、前記数値区間に関する頻度を算出し、前記頻度に関する累積頻度を求め、求めた前記累積頻度を表す頻度情報を作成し、暗号鍵を用いて暗号文を作成する所定の暗号化手順に従い、1から前記所与の数までの自然数を暗号化することによって、互いに異なる第1乱数を算出し、前記頻度情報に基づき、前記第1乱数に応じた前記数値区間を特定し、
    前記所定の暗号化手順は、異なる数値に対して異なる暗号文を算出する動作である
    乱数算出方法。
  5. 所定の確率分布に従う第2乱数を所望の精度にて所与の数の分だけ算出する乱数算出機能と、
    前記第2乱数を含む数値区間を前記所望の精度にて特定し、前記数値区間に関する頻度を算出する頻度算出機能と、
    前記頻度に関する累積頻度を求め、求めた前記累積頻度を表す頻度情報を作成する頻度情報作成機能と、
    暗号鍵を用いて暗号文を作成する所定の暗号化手順に従い、1から前記所与の数までの自然数を暗号化することによって、互いに異なる第1乱数を算出する乱数算出機能と、
    前記頻度情報に基づき、前記第1乱数に応じた前記数値区間を特定する特定機能と
    をコンピュータに実現させ
    前記所定の暗号化手順は、異なる数値に対して異なる暗号文を算出する動作である
    乱数算出プログラム。
JP2019532262A 2017-07-26 2017-07-26 乱数算出装置、乱数算出方法、暗号装置、及び、乱数算出プログラム Active JP6904417B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/027035 WO2019021386A1 (ja) 2017-07-26 2017-07-26 乱数算出装置、乱数算出方法、暗号装置、及び、乱数算出プログラムが記録された記録媒体

Publications (2)

Publication Number Publication Date
JPWO2019021386A1 JPWO2019021386A1 (ja) 2020-04-23
JP6904417B2 true JP6904417B2 (ja) 2021-07-14

Family

ID=65041130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019532262A Active JP6904417B2 (ja) 2017-07-26 2017-07-26 乱数算出装置、乱数算出方法、暗号装置、及び、乱数算出プログラム

Country Status (3)

Country Link
US (1) US11579845B2 (ja)
JP (1) JP6904417B2 (ja)
WO (1) WO2019021386A1 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4499551A (en) * 1982-09-27 1985-02-12 At&T Bell Laboratories Rapid generation of discrete random variates from general distributions
JP3013777B2 (ja) * 1996-05-21 2000-02-28 日本電気株式会社 循環演算にもとづく暗号の暗号鍵生成装置
JP3966875B2 (ja) * 2004-10-12 2007-08-29 東芝情報システム株式会社 暗号生成装置、暗号生成プログラムを使用する電子機器、記憶媒体、暗号文復号装置
US9584315B2 (en) 2012-07-04 2017-02-28 Nec Corporation Order-preserving encryption system, encryption device, decryption device, encryption method, decryption method, and programs thereof
JP5713986B2 (ja) 2012-12-03 2015-05-07 日本電信電話株式会社 符号化装置、方法、プログラム及び記録媒体
US10296628B2 (en) * 2016-06-27 2019-05-21 Futurewei Technologies, Inc Sample size estimator
US10365893B2 (en) * 2017-03-30 2019-07-30 Futurewei Technologies, Inc. Sample-based multidimensional data cloning

Also Published As

Publication number Publication date
JPWO2019021386A1 (ja) 2020-04-23
US11579845B2 (en) 2023-02-14
US20200150928A1 (en) 2020-05-14
WO2019021386A1 (ja) 2019-01-31

Similar Documents

Publication Publication Date Title
US9413729B2 (en) Symmetric encryption apparatus and storage medium, and symmetric decryption apparatus and storage medium
US8189778B2 (en) Adaptive generation of a pseudo random number generator seed
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
KR101112157B1 (ko) 데이터 암호화 방법
US10326589B2 (en) Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium
KR20180110550A (ko) 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치
TW201539243A (zh) 處理數值的裝置及方法
WO2012157279A1 (ja) 順序保存暗号化システム、装置、方法及びプログラム
JP2013138409A (ja) 情報処理装置およびその方法
Sathishkumar et al. A novel image encryption algorithm using pixel shuffling and base 64 encoding based chaotic block cipher (IMPSBEC)
JP6904417B2 (ja) 乱数算出装置、乱数算出方法、暗号装置、及び、乱数算出プログラム
RU2710310C2 (ru) Электронное устройство формирования
CN114722359B (zh) 一种基于自定义类加载器的Java源码保护方法
KR102045843B1 (ko) 블록 암호화 처리 방법 및 장치
Disina et al. All-or-Nothing Key Derivation Function Based on Quasigroup String Transformation
AU2021100948A4 (en) Enhancing cyber security using high speed hybrid authentication technique
KR20200054117A (ko) 동형암호 기법으로 암호화된 데이터의 로그 연산 서버 및 방법
US11095429B2 (en) Circuit concealing apparatus, calculation apparatus, and program
JP2021081591A (ja) 安全性評価装置、安全性評価方法及び安全性評価プログラム
CN116243887B (zh) 软件随机数生成方法及装置
JP6632962B2 (ja) 難読化装置、難読化方法及び難読化プログラム
CN116647327B (zh) 一种基于图像加密的可编程边缘控制器通信方法
WO2019180787A1 (ja) 復号装置、復号方法及びプログラム記録媒体
KR101833954B1 (ko) 메모리 과부하 난수 발생 장치 및 방법
JP6373237B2 (ja) 秘密分散装置,データ復元装置,秘密分散方法,データ復元方法およびそれらの制御プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191218

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210607

R150 Certificate of patent or registration of utility model

Ref document number: 6904417

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150