JP2013037290A - 情報処理システム、情報処理方法、及びプログラム - Google Patents
情報処理システム、情報処理方法、及びプログラム Download PDFInfo
- Publication number
- JP2013037290A JP2013037290A JP2011175290A JP2011175290A JP2013037290A JP 2013037290 A JP2013037290 A JP 2013037290A JP 2011175290 A JP2011175290 A JP 2011175290A JP 2011175290 A JP2011175290 A JP 2011175290A JP 2013037290 A JP2013037290 A JP 2013037290A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- random number
- generation
- prime number
- processing
- 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
Links
Images
Abstract
【解決手段】生成ユニットは、乱数を生成し、かつ生成した乱数のビット列の少なくとも一部を、少なくとも1つの判定ユニットに送信する。判定ユニットは、少なくとも1つの生成ユニットから送信されたビット列を組み合わせて所定ビット数の数値を生成し、生成した数値が素数であるか否かを判定し、かつ素数であると判定された数値を出力する。制御手段は、生成ユニットが乱数を生成するのに要する時間と、判定ユニットが数値について素数であるか否かを判定するのに要する時間とが近くなるように、複数の処理ユニットの一部若しくは全部のそれぞれを生成ユニット又は判定ユニットとして動作させる制御を行う。
【選択図】図4
Description
複数の処理ユニットと、該処理ユニットを生成ユニット又は判定ユニットとして動作させる制御手段と、を備える情報処理システムであって、
前記生成ユニットとして動作する処理ユニットは、乱数を生成し、かつ前記生成した乱数のビット列の少なくとも一部を、少なくとも1つの前記判定ユニットとして動作する処理ユニットに送信し、
前記判定ユニットとして動作する処理ユニットは、少なくとも1つの前記生成ユニットから送信されたビット列を組み合わせて所定ビット数の数値を生成し、前記生成した数値が素数であるか否かを判定し、かつ素数であると判定された前記数値を出力し、
前記制御手段は、前記生成ユニットとして動作する処理ユニットが前記乱数を生成するのに要する時間と、前記判定ユニットとして動作する処理ユニットが前記数値について素数であるか否かを判定するのに要する時間とが近くなるように、前記複数の処理ユニットの一部若しくは全部のそれぞれを前記生成ユニット又は前記判定ユニットとして動作させる制御を行う
ことを特徴とする。
<システム全体構成>
図1は、実施例1に係る情報処理システム100の例を示す。情報処理システム100は、CPU101、グラフィックボード102、主メモリ105、メモリコントローラハブ106、入出力コントローラハブ107、NIC108、記憶装置109、及び外部接続ポート110を含む。
以下、図2を参照してCPU101について詳しく説明する。図2は、本実施例に適用可能なCPU101の構成例を示す。図2において、CPU101は2つのCPUコア201,202を含む。しかしながら、CPU101が含むCPUコアの数は2つに限定されない。すなわちCPU101は、2つ以上のCPUコアを含みうる。CPUコア201及び202は、並列動作が可能な処理装置である。例えばCPUコア201及び202は、それぞれ別の命令を実行することができ、また別のデータを扱うことができる。
以下、図3を参照してGPU103について詳しく説明する。図3は、本実施例に適用可能なGPU103の構成例を示す。図2において、GPU103は2つのGPUコア301,302を含む。しかしながら、GPU103が含むGPUコアの数は2つに限定されない。GPU103は、2つ以上のGPUコアを含みうる。GPUコア301及び302は、並列動作が可能な演算装置である。例えばGPUコア301及び302は、それぞれ別の命令を実行することができ、また別のデータを扱うことができる。
図4を参照して、本実施例に係る情報処理システム100の機能構成について説明する。図4に示すように、情報処理システム100は第1の演算装置と第2の演算装置とを含む。第1の演算装置の例としては前述したCPU101が挙げられる。第2の演算装置の例としては前述したGPU103が挙げられる。もっとも、第1の演算装置及び第2の演算装置はCPU又はGPUには限られず、例えば前述した暗号アクセラレータであってもよい。
生成時間取得部401は、乱数生成部402が乱数の生成に要した処理時間を取得する。そして、取得した処理時間を保存部404に出力する。以下、乱数の生成に要した処理時間を乱数生成時間と称する。乱数生成時間は、実際に計測された処理時間であってもよく、例えば乱数生成部402によって計測されてもよい。本実施例において生成時間取得部401は、乱数生成部402がシードを用いてそれぞれの乱数を生成するのに要したそれぞれの時間を取得する。また、乱数生成時間は予め定められた値であってもよく、例えばCPUコア201,202のクロックをもとに算出されていてもよい。
乱数生成部402は、シードと乱数生成器とを用いて乱数を生成し、生成した乱数のビット列を素数判定部406に出力する。乱数生成器とは、シードを用いて乱数を生成する生成器である。乱数生成器の機能は、例えばCPUコア201,202がプログラムに従って動作することにより実現されうる。もっとも、独立した乱数生成器をCPU101が有していてもよい。
制御部403は、生成時間取得部401が取得した乱数生成時間と、判定時間取得部405が取得した素数判定時間とに応じて、乱数生成部402と素数判定部406との少なくとも一方を制御する。具体的には制御部403は、CPUコアに乱数を生成させるか、すなわち乱数生成部402として動作させるかを制御する。また制御部403は、GPUコアに素数判定を行わせるか、すなわち素数判定部406として動作させるかを制御する。このように制御部403は、CPUコア及びGPUコアの一部若しくは全部の動作制御を行う。
保存部404は、乱数生成時間、素数判定時間、情報処理システム100によって得られた素数、などのデータを保持することができる。本実施例において保存部404はCPU101内に位置するが、保存部404はCPU101の外に存在してもよい。例えば保存部404は、主メモリ105によって実現されてもよい。
判定時間取得部405は、素数判定部406が素数判定に要した処理時間を取得する。そして、取得した処理時間を保存部404に出力する。既出のように本明細書において、素数判定に要した処理時間を素数判定時間と称する。素数判定時間は、実際に計測された処理時間であってもよく、例えば素数判定部406によって計測されてもよい。本実施例において判定時間取得部405は、それぞれの素数判定部406が乱数生成部402から取得したそれぞれの乱数について素数判定を行うのに要した時間を取得する。また、素数判定時間は予め定められた値であってもよく、例えばGPUコア301,302のクロックをもとに算出されていてもよい。
素数判定部406は、上述のように乱数生成部402が出力した乱数が素数であるか否かを判定する。この判定のためには任意の公知の技術を用いることができ、例えばミラーラビン法を用いることができる(非特許文献2)。乱数が素数であれば、素数判定部406はこの素数を出力し、素数生成処理を終了する。素数判定部406は得られた素数を、例えば保存部404又は主メモリ105のような記憶部に出力する。
以下、図5を参照して本実施例における素数の生成処理の流れを説明する。図5は本実施例における処理フローを示すフローチャートである。以下の説明では、初期状態において、乱数生成を行うCPUコアはCPUコア201のみであり、素数判定を行うGPUコアはGPUコア301及び302であるものとする。
実施例1に係る情報処理システム100においては、第1の演算装置(CPU)が乱数を生成し、第2の演算装置(GPU)が素数判定を行った。そして、CPUコアが乱数を生成するのにかかる時間と、GPUコアが素数を判定するのにかかる時間を近づけることにより、各コアで発生する待ち時間を減らすことができた。こうして、並列に素数を生成する場合の処理が効率化される。
処理時間取得部701は、乱数生成部402が乱数を生成するのに要した乱数生成時間、及び素数判定部406が素数判定を行うのに要した素数判定時間を取得する。そして処理時間取得部701は、取得した時間を保存部404に出力する。乱数生成時間の取得及び素数判定時間の取得は、実施例1と同様に行われうる。
制御部702は、処理時間取得部701が取得した時間に応じて、乱数生成部402と素数判定部406とを制御する。具体的には制御部702は、乱数生成時間と素数判定時間との比に応じて、乱数生成部402と素数判定部406とを制御する。例えば制御部702は、乱数を生成するように、すなわち乱数生成部402として動作させるように、CPUコアを制御できる。また制御部702は、素数判定を行うように、すなわち素数判定部406として動作させるように、CPUコアを制御できる。このように制御部403は、CPUコアの一部若しくは全部の動作制御を行う。
以下、図8を参照して本実施例における素数の生成処理のフローを説明する。図8は本実施例における処理フローを示すフローチャートである。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
Claims (9)
- 複数の処理ユニットと、該処理ユニットを生成ユニット又は判定ユニットとして動作させる制御手段と、を備える情報処理システムであって、
前記生成ユニットとして動作する処理ユニットは、乱数を生成し、かつ前記生成した乱数のビット列の少なくとも一部を、少なくとも1つの前記判定ユニットとして動作する処理ユニットに送信し、
前記判定ユニットとして動作する処理ユニットは、少なくとも1つの前記生成ユニットから送信されたビット列を組み合わせて所定ビット数の数値を生成し、前記生成した数値が素数であるか否かを判定し、かつ素数であると判定された前記数値を出力し、
前記制御手段は、前記生成ユニットとして動作する処理ユニットが前記乱数を生成するのに要する時間と、前記判定ユニットとして動作する処理ユニットが前記数値について素数であるか否かを判定するのに要する時間とが近くなるように、前記複数の処理ユニットの一部若しくは全部のそれぞれを前記生成ユニット又は前記判定ユニットとして動作させる制御を行う
ことを特徴とする、情報処理システム。 - 前記制御手段は、
前記生成ユニットとして動作する処理ユニットが前記乱数を生成するのに要した時間が、前記判定ユニットとして動作する処理ユニットが前記数値について素数であるか否かを判定するのに要した時間よりも長い場合に、前記生成ユニットとして動作する処理ユニットの数が増えるように前記制御を行う第1の制御と、
前記生成ユニットとして動作する処理ユニットが前記乱数を生成するのに要した時間が、前記判定ユニットとして動作する処理ユニットが前記数値について素数であるか否かを判定するのに要した時間よりも長い場合に、前記判定ユニットとして動作する処理ユニットの数が減るように前記制御を行う第2の制御と、
前記生成ユニットとして動作する処理ユニットが前記乱数を生成するのに要した時間が、前記判定ユニットとして動作する処理ユニットが前記数値について素数であるか否かを判定するのに要した時間よりも短い場合に、前記生成ユニットとして動作する処理ユニットの数が減るように前記制御を行う第3の制御と、
前記生成ユニットとして動作する処理ユニットが前記乱数を生成するのに要した時間が、前記判定ユニットとして動作する処理ユニットが前記数値について素数であるか否かを判定するのに要した時間よりも短い場合に、前記判定ユニットとして動作する処理ユニットの数が増えるように前記制御を行う第4の制御と、
のうちの少なくとも1つを行うことを特徴とする、請求項1に記載の情報処理システム。 - 前記生成ユニットとして動作する処理ユニットが前記乱数を生成するのに要する前記時間は、前記生成ユニットとして動作する処理ユニットのそれぞれが前記乱数を生成するのに要する時間の最大値、中央値、最頻値、又は平均値であり、
前記判定ユニットとして動作する処理ユニットが前記数値について素数であるか否かを判定するのに要する前記時間は、前記判定ユニットとして動作する処理ユニットのそれぞれが前記数値について素数であるか否かを判定するのに要する時間の最大値、中央値、最頻値、又は平均値である
ことを特徴とする、請求項1又は2に記載の情報処理システム。 - 前記処理ユニットはCPUコアであることを特徴とする、請求項1乃至3の何れか1項に記載の情報処理システム。
- 前記生成ユニットとして動作する処理ユニットが生成する乱数のビット数は、前記判定ユニットとして動作する処理ユニットの数を、前記生成ユニットとして動作する処理ユニットの数で割り、得られた値に前記所定ビット数をかけることによって得られる値よりも大きくなるように制御されることを特徴とする、請求項1乃至4の何れか1項に記載の情報処理システム。
- 複数の生成ユニットと、複数の判定ユニットと、該複数の生成ユニット及び該複数の判定ユニットの動作制御を行う制御手段と、を備える情報処理システムであって、
前記複数の生成ユニットのそれぞれは、乱数を生成し、かつ前記生成した乱数のビット列の少なくとも一部を、少なくとも1つの前記判定ユニットに送信し、
前記複数の判定ユニットのそれぞれは、少なくとも1つの前記生成ユニットから送信されたビット列を組み合わせて所定ビット数の数値を生成し、前記生成した数値が素数であるか否かを判定し、かつ素数であると判定された前記数値を出力し、
前記制御手段は、前記生成ユニットが前記乱数を生成するのに要する時間と、前記判定ユニットが前記数値について素数であるか否かを判定するのに要する時間とが近くなるように、前記生成ユニットと前記判定ユニットとの少なくとも一方について動作させるか否かを制御する
ことを特徴とする、情報処理システム。 - 前記生成ユニットはCPUコアであり、前記判定ユニットはGPUコアであることを特徴とする、請求項6に記載の情報処理システム。
- 複数の処理ユニットと、該処理ユニットを生成ユニット又は判定ユニットとして動作させる制御手段と、を備える情報処理システムが行う情報処理方法であって、
前記生成ユニットとして動作する処理ユニットは、乱数を生成し、かつ前記生成した乱数のビット列の少なくとも一部を、少なくとも1つの前記判定ユニットとして動作する処理ユニットに送信し、
前記判定ユニットとして動作する処理ユニットは、少なくとも1つの前記生成ユニットから送信されたビット列を組み合わせて所定ビット数の数値を生成し、前記生成した数値が素数であるか否かを判定し、かつ素数であると判定された前記数値を出力し、
前記情報処理方法は、前記情報処理システムの前記制御手段が、前記生成ユニットとして動作する処理ユニットが前記乱数を生成するのに要する時間と、前記判定ユニットとして動作する処理ユニットが前記数値について素数であるか否かを判定するのに要する時間とが近くなるように、前記複数の処理ユニットの一部若しくは全部のそれぞれを前記生成ユニット又は前記判定ユニットとして動作させる制御を行う制御工程を含むことを特徴とする、情報処理方法。 - コンピュータを、請求項1乃至7の何れか1項に記載の情報処理システムとして機能させるための、コンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011175290A JP5744673B2 (ja) | 2011-08-10 | 2011-08-10 | 情報処理システム、情報処理方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011175290A JP5744673B2 (ja) | 2011-08-10 | 2011-08-10 | 情報処理システム、情報処理方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013037290A true JP2013037290A (ja) | 2013-02-21 |
JP5744673B2 JP5744673B2 (ja) | 2015-07-08 |
Family
ID=47886923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011175290A Expired - Fee Related JP5744673B2 (ja) | 2011-08-10 | 2011-08-10 | 情報処理システム、情報処理方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5744673B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015188148A (ja) * | 2014-03-26 | 2015-10-29 | 大日本印刷株式会社 | 暗号鍵生成装置及びプログラム |
JP2016535310A (ja) * | 2013-08-30 | 2016-11-10 | クアルコム,インコーポレイテッド | 素数の生成および記憶のための方法および装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10143380A (ja) * | 1996-11-07 | 1998-05-29 | Hitachi Ltd | マルチプロセッサシステム |
JP2005531031A (ja) * | 2002-06-21 | 2005-10-13 | アトメル・コーポレイション | 暗号化適用のための推定素数の検査 |
JP2007188212A (ja) * | 2006-01-12 | 2007-07-26 | Seiko Epson Corp | マルチプロセッサ及びマルチプロセッサの制御方法をコンピュータに実行させるためのプログラム |
JP2008216411A (ja) * | 2007-03-01 | 2008-09-18 | Fujitsu Ltd | 素数生成プログラム、該プログラムを記録した記録媒体、素数生成装置および素数生成方法 |
JP2009296195A (ja) * | 2008-06-04 | 2009-12-17 | Mitsubishi Electric Corp | 複数のcpuコアを備えたfpgaを用いた暗号装置 |
JP2010079622A (ja) * | 2008-09-26 | 2010-04-08 | Hitachi Ltd | マルチコアプロセッサシステム、および、そのタスク制御方法 |
JP2011507085A (ja) * | 2007-12-14 | 2011-03-03 | コミシリア ア レネルジ アトミック エ オ エナジーズ オルタネティヴズ | 制御タイプの実行モードとデータフロータイプの実行モードとの組み合わせによりタスクを並列に実行可能な複数の処理ユニットを有するシステム |
-
2011
- 2011-08-10 JP JP2011175290A patent/JP5744673B2/ja not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10143380A (ja) * | 1996-11-07 | 1998-05-29 | Hitachi Ltd | マルチプロセッサシステム |
JP2005531031A (ja) * | 2002-06-21 | 2005-10-13 | アトメル・コーポレイション | 暗号化適用のための推定素数の検査 |
JP2007188212A (ja) * | 2006-01-12 | 2007-07-26 | Seiko Epson Corp | マルチプロセッサ及びマルチプロセッサの制御方法をコンピュータに実行させるためのプログラム |
JP2008216411A (ja) * | 2007-03-01 | 2008-09-18 | Fujitsu Ltd | 素数生成プログラム、該プログラムを記録した記録媒体、素数生成装置および素数生成方法 |
JP2011507085A (ja) * | 2007-12-14 | 2011-03-03 | コミシリア ア レネルジ アトミック エ オ エナジーズ オルタネティヴズ | 制御タイプの実行モードとデータフロータイプの実行モードとの組み合わせによりタスクを並列に実行可能な複数の処理ユニットを有するシステム |
JP2009296195A (ja) * | 2008-06-04 | 2009-12-17 | Mitsubishi Electric Corp | 複数のcpuコアを備えたfpgaを用いた暗号装置 |
JP2010079622A (ja) * | 2008-09-26 | 2010-04-08 | Hitachi Ltd | マルチコアプロセッサシステム、および、そのタスク制御方法 |
Non-Patent Citations (1)
Title |
---|
後藤 弘茂: ""Sandy Bridge登場で見えてきたIntelのグラフィックス戦略"", 日経WIN PC, vol. 第17巻、第5号, JPN6015003702, 28 February 2011 (2011-02-28), JP, pages 56 - 59, ISSN: 0002998139 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016535310A (ja) * | 2013-08-30 | 2016-11-10 | クアルコム,インコーポレイテッド | 素数の生成および記憶のための方法および装置 |
JP2015188148A (ja) * | 2014-03-26 | 2015-10-29 | 大日本印刷株式会社 | 暗号鍵生成装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP5744673B2 (ja) | 2015-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2021200062B2 (en) | Systems and computer-implemented methods for generating pseudo random numbers | |
US20220108039A1 (en) | Post quantum public key signature operation for reconfigurable circuit devices | |
JP5017439B2 (ja) | 暗号演算装置及びメモリシステム | |
Andrade et al. | Lyra2: Efficient password hashing with high security against time-memory trade-offs | |
JP2010257112A (ja) | メモリ制御装置、半導体メモリ装置、メモリシステム及びメモリ制御方法 | |
US20180241544A1 (en) | Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium | |
JP2016535310A (ja) | 素数の生成および記憶のための方法および装置 | |
CN111008407A (zh) | 用于执行虚拟加密操作的加密电路 | |
JP2014216005A (ja) | 2進乱数列を整数乱数に変換する装置および方法 | |
JP2013138409A (ja) | 情報処理装置およびその方法 | |
JP6834771B2 (ja) | 通信装置および通信方法 | |
JP5744673B2 (ja) | 情報処理システム、情報処理方法、及びプログラム | |
CN110213050A (zh) | 密钥生成方法、装置及存储介质 | |
CN116204911B (zh) | 加解密系统、加解密控制方法、计算机设备及存储介质 | |
JP5427117B2 (ja) | メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、およびプログラム | |
JP2010107947A (ja) | Shaアルゴリズム基盤のメッセージスケジュール演算方法、メッセージ圧縮演算方法及びこれを行う暗号装置 | |
US20130108038A1 (en) | System and method for a collatz based hash function | |
JP4857230B2 (ja) | 疑似乱数生成装置及びそれを用いた暗号化処理装置 | |
Fournaris et al. | Running Longer To Slim Down: Post-Quantum Cryptography on Memory-Constrained Devices | |
CN112054889B (zh) | 消息认证码的生成方法及生成装置、计算机可读存储介质 | |
Kim et al. | Gpu-accelerated password cracking of pdf files | |
JP5713828B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
CN109687954A (zh) | 用于算法加速的方法和装置 | |
KR102498133B1 (ko) | 모듈러 곱셈 연산을 수행하는 연산 장치 및 방법 | |
US20240163077A1 (en) | Apparatus for Cryptographic Operations on Information and Associated Methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140403 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150319 |
|
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: 20150406 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150430 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5744673 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |