JP2021501902A - 乱数生成器 - Google Patents
乱数生成器 Download PDFInfo
- Publication number
- JP2021501902A JP2021501902A JP2019566283A JP2019566283A JP2021501902A JP 2021501902 A JP2021501902 A JP 2021501902A JP 2019566283 A JP2019566283 A JP 2019566283A JP 2019566283 A JP2019566283 A JP 2019566283A JP 2021501902 A JP2021501902 A JP 2021501902A
- Authority
- JP
- Japan
- Prior art keywords
- bits
- bit
- prng
- aes
- branch
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本開示は、乱数を生成することに関する。
ランダムアルゴリズムは、クライアントに属するデータを安全に保つために、大きなデータストリームからソート、シャッフル、および/またはサンプリングを行うときに、擬似乱数生成器(PRNG:pseudorandom number generator)に一般的に依存する。PRNGは、決定論的アルゴリズムを用いて、シードと呼ばれるランダム入力から非常に高速に擬似乱数を生成する。PRNGに依存するアルゴリズムは、敵がPRNGの動きを予測できるとき、その性能の保証を失い得る。強力なPRNGは、敵からの攻撃耐性を提供する一方で、一般に回避策に時間がかかる。一方、速いPRNGは、一般に簡単に予測可能であり、当該PRNGは、攻撃者/敵による予期しない相関または搾取に対して脆弱になる。したがって、開発者は、ランダム化されたアプリケーションに対してPRNGを選択するときに、適切なセキュリティ/速度のトレードオフを決定することが必要になる。しばしば、開発者は、ランダム化されたアプリケーションが敵に対して脆弱であり得ることに気づいておらず、それゆえ、セキュリティに対して速度を犠牲にすることに消極的である。セキュリティ/速度のトレードオフを確認するために数万回のランダム生成器の使用を監査するタスクは、それが費用がかかるのと同じくらい困難である。
本開示の一態様は、擬似乱数を生成するための方法を提供する。当該方法は、データ処理ハードウェアが、内側ビットと外側ビットとを含む2,048ビットの状態を有する擬似乱数生成器(PRNG)を初期化することを含む。内側ビットは、2,048ビットの第1の128ビットを含み、外側ビットは、2,048ビットの残りのビットを含む。当該方法は、データ処理ハードウェアが、先進暗号化標準(AES:Advanced Encryption Standard)ラウンドキーをキーソースから検索することによるPRNGの状態を並び替えることも含む。当該方法は、AESラウンドキーを用いてラウンド関数(Round Function)を実行することにより、PRNGの状態をしきい値回数にわたって並び替えることをさらに含む。ラウンド関数は、128ビットの16ブランチを有するファイステルネットワークの奇数番号のブランチを、ファイステルネットワークの、対応する偶数番号の隣接ブランチの関数とXORすることを含む。しきい値回数にわたって、当該方法は、128ビットの各ブランチを所定の順序にシャッフルすることによりPRNGの状態を並び替えることも含む。当該方法は、データ処理ハードウェアが、並べ替えられた状態の内側ビットの、以前の状態の内側ビットとのXORを実行することも含む。
詳細な説明
本明細書における実施形態は、より高い基準レベルのセキュリティを提供しながら、既存の汎用乱数生成器と互角の実行時間コストを達成する擬似乱数生成器(PRNG)に向けられる。例えば、「より高い基準レベルのセキュリティ」は、経験的ランダム性、予測不能性、およびバックトラッキング耐性の特性により特徴付けられるPRNGを指す。既存の汎用乱数生成器は、経験的ランダム性、予測不能性、およびバックトラッキング耐性のこれらの特性の1つまたは2つを示し得るが、速度を大幅に犠牲にすること(例えば、実行時間コストを増加すること)なく3つ全てを示すものは知られていない。
Claims (20)
- 乱数(202)を生成するための方法(300)であって、前記方法は、
データ処理ハードウェア(142)が、内側ビット(210i)と外側ビット(210o)とを含む2,048ビットの状態を有する擬似乱数生成器(PRNG:pseudo-random number generator)(200)を初期化することを備え、
前記内側ビット(210i)は、前記2,048ビットの第1の128ビットを含み、前記外側ビット(210o)は、前記2,048ビットの残りのビットを含み、
前記方法は、さらに、前記データ処理ハードウェア(142)が、前記PRNG(200)の前記状態を並べ替えることを備え、
前記並べ替えることは、
キーソース(190)から先進暗号化標準(AES:Advanced Encryption Standard)ラウンドキー(192)を検索することと、
しきい値回数にわたって、前記AESラウンドキー(192)を用いてラウンド関数を実行することとによって実行され、
前記ラウンド関数は、128ビットの16ブランチ(220)を有するファイステルネットワークの奇数番号のブランチ(220)を、前記ファイステルネットワークの、対応する偶数番号の隣接ブランチ(220)の関数とXORすることを含み、
前記並べ替えることは、さらに、
前記しきい値回数にわたって、128ビットの各ブランチ(220)を所定の順序にシャッフルすることによって実行され、
前記方法は、さらに、
前記データ処理ハードウェア(142)が、前記並べ替えられた状態の前記内側ビット(210i)の、以前の状態の前記内側ビット(210i)とのXORを実行することを備える、方法。 - 前記PRNG(200)を初期化することは、
前記PRNG(200)の前記状態をゼロに設定することと、
前記外側ビット(210o)を任意のシード値に設定することとを含む、請求項1に記載の方法(300)。 - 前記PRNG(200)を初期化することは、前記PRNG(200)の前記状態を以前の状態に設定することを含む、請求項1に記載の方法(300)。
- 前記しきい値回数は、少なくとも17回を含む、請求項1〜3のいずれか1項に記載の方法(300)。
- 前記ラウンド関数は、AESの少なくとも2ラウンドを含む、請求項1〜4のいずれか1項に記載の方法(300)。
- AESの前記少なくとも2ラウンドの各々は、AESの他のラウンドの前記AESラウンドキー(192)とは異なる、対応するAESラウンドキー(192)を用いる、請求項1〜5のいずれか1項に記載の方法(300)。
- 前記ファイステルネットワークの前記奇数番号のブランチ(220)を、前記ファイステルネットワークの、対応する偶数番号の隣接ブランチ(220)の前記関数とXORすることは、ランダムビット(210)という結果を生じ、前記外側ビット(210o)は、前記結果として生じるランダムビット(210)を含む、請求項1〜6のいずれか1項に記載の方法(300)。
- 128ビットの各ブランチ(220)を前記所定の順序にシャッフルすることは、8回、前記ラウンド関数を実行して各ブランチ(220)をシャッフルした後に、全サブブランチ拡散を達成する、請求項1〜7のいずれか1項に記載の方法(300)。
- 前記所定の順序は、{7,2,13,4,11,8,3,6,15,0,9,10,1,14,5,12}を含む、請求項1〜8のいずれか1項に記載の方法(300)。
- 前記内側ビット(210i)へのアクセスを防止し、前記外側ビット(210o)へのアクセスを許可することをさらに含む、請求項1〜9のいずれか1項に記載の方法(300)。
- システム(100)であって、前記システムは、
データ処理ハードウェア(142)と、
前記データ処理ハードウェア(142)に通信するメモリハードウェア(144)とを備え、前記メモリハードウェア(144)は、前記データ処理ハードウェア(142)上で実行されると前記データ処理ハードウェア(142)に以下の動作を行わせる命令を格納し、前記動作は、
内側ビット(210i)と外側ビット(210o)とを含む2,048ビットの状態を有する擬似乱数生成器(PRNG)(200)を初期化することを含み、
前記内側ビット(210i)は、前記2,048ビットの第1の128ビットを含み、前記外側ビット(210o)は、前記2,048ビットの残りのビットを含み、
前記動作は、さらに、前記PRNG(200)の前記状態を並べ替えることを含み、
前記並べ替えることは、
キーソース(190)から先進暗号化標準(AES)ラウンドキー(192)を検索することと、
しきい値回数にわたって、前記AESラウンドキー(192)を用いてラウンド関数を実行することとによって実行され、
前記ラウンド関数は、128ビットの16ブランチ(220)を有するファイステルネットワークの奇数番号のブランチ(220)を、前記ファイステルネットワークの、対応する偶数番号の隣接ブランチ(220)の関数とXORすることを含み、
前記並べ替えることは、さらに、
前記しきい値回数にわたって、128ビットの各ブランチ(220)を所定の順序にシャッフルすることによって実行され、
前記動作は、さらに、
前記並べ替えられた状態の前記内側ビット(210i)の、以前の状態の前記内側ビット(210i)とのXORを実行することを含む、システム。 - 前記PRNG(200)を初期化することは、
前記PRNG(200)の前記状態をゼロに設定することと、
前記外側ビット(210o)を任意のシード値に設定することとを含む、請求項11に記載のシステム(100)。 - 前記PRNG(200)を初期化することは、前記PRNG(200)の前記状態を以前の状態に設定することを含む、請求項11に記載のシステム(100)。
- 前記しきい値回数は、少なくとも17回を含む、請求項11〜13のいずれか一項に記載のシステム(100)。
- 前記ラウンド関数は、AESの少なくとも2ラウンドを含む、請求項11〜14のいずれか一項に記載のシステム(100)。
- AESの前記少なくとも2ラウンドの各々は、AESの他のラウンドの前記AESラウンドキー(192)とは異なる、対応するAESラウンドキー(192)を用いる、請求項11〜15のいずれか1項に記載のシステム(100)。
- 前記ファイステルネットワークの前記奇数番号のブランチ(220)を、前記ファイステルネットワークの、対応する偶数番号の隣接ブランチ(220)の前記関数とXORすることは、ランダムビット(202)という結果を生じ、前記外側ビット(210o)は、前記結果として生じるランダムビット(202)を含む、請求項11〜16のいずれか1項に記載のシステム(100)。
- 128ビットの各ブランチ(220)を前記所定の順序にシャッフルすることは、8回、前記ラウンド関数を実行して各ブランチ(220)をシャッフルした後に、全サブブランチ拡散を達成する、請求項11〜17のいずれか1項に記載のシステム(100)。
- 前記所定の順序は、{7,2,13,4,11,8,3,6,15,0,9,10,1,14,5,12}を含む、請求項11〜18のいずれか1項に記載のシステム(100)。
- 前記動作は、前記内側ビット(210i)へのアクセスを防止し、前記外側ビット(210o)へのアクセスを許可することをさらに含む、請求項11〜19のいずれか1項に記載のシステム(100)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2017/060275 WO2019093992A1 (en) | 2017-11-07 | 2017-11-07 | Random number generator |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6782863B1 JP6782863B1 (ja) | 2020-11-11 |
JP2021501902A true JP2021501902A (ja) | 2021-01-21 |
Family
ID=60409424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019566283A Active JP6782863B1 (ja) | 2017-11-07 | 2017-11-07 | 乱数生成器 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11449311B2 (ja) |
EP (1) | EP3616052B1 (ja) |
JP (1) | JP6782863B1 (ja) |
KR (1) | KR102217865B1 (ja) |
CN (1) | CN111279307B (ja) |
WO (1) | WO2019093992A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11907684B2 (en) | 2021-02-16 | 2024-02-20 | Cassy Holdings Llc | High clock-efficiency random number generation system and method |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100388059B1 (ko) * | 2000-12-23 | 2003-06-18 | 한국전자통신연구원 | 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법 |
US9361617B2 (en) * | 2008-06-17 | 2016-06-07 | Verifone, Inc. | Variable-length cipher system and method |
DE102009050493A1 (de) * | 2009-10-23 | 2011-04-28 | Röllgen, Bernd | Blockdatenverschlüsselungsverfahren |
KR101194403B1 (ko) * | 2010-12-06 | 2012-10-25 | 삼성에스디에스 주식회사 | 암호학적 안전성이 보장된 의사난수 생성 장치 및 그 방법 |
US20130168450A1 (en) * | 2011-12-30 | 2013-07-04 | Clay W. von Mueller | Format preserving cipher system and method |
US10142103B2 (en) * | 2015-12-07 | 2018-11-27 | The Boeing Company | Hardware assisted fast pseudorandom number generation |
CN105376055B (zh) * | 2015-12-09 | 2019-11-01 | 捷德(中国)信息科技有限公司 | 一种生成伪随机数的方法及伪随机数发生器 |
US10103873B2 (en) * | 2016-04-01 | 2018-10-16 | Intel Corporation | Power side-channel attack resistant advanced encryption standard accelerator processor |
-
2017
- 2017-11-07 US US16/613,516 patent/US11449311B2/en active Active
- 2017-11-07 JP JP2019566283A patent/JP6782863B1/ja active Active
- 2017-11-07 KR KR1020197035399A patent/KR102217865B1/ko active IP Right Grant
- 2017-11-07 WO PCT/US2017/060275 patent/WO2019093992A1/en unknown
- 2017-11-07 CN CN201780091668.3A patent/CN111279307B/zh active Active
- 2017-11-07 EP EP17801221.7A patent/EP3616052B1/en active Active
-
2022
- 2022-08-24 US US17/821,979 patent/US11755287B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN111279307A (zh) | 2020-06-12 |
WO2019093992A1 (en) | 2019-05-16 |
US20220405058A1 (en) | 2022-12-22 |
US11449311B2 (en) | 2022-09-20 |
JP6782863B1 (ja) | 2020-11-11 |
KR20200003111A (ko) | 2020-01-08 |
KR102217865B1 (ko) | 2021-02-18 |
US20200401375A1 (en) | 2020-12-24 |
EP3616052A1 (en) | 2020-03-04 |
EP3616052B1 (en) | 2021-08-25 |
CN111279307B (zh) | 2023-05-12 |
US11755287B2 (en) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ohrimenko et al. | The Melbourne shuffle: Improving oblivious storage in the cloud | |
JP6285536B2 (ja) | データを暗号化するシステムおよび方法 | |
CN107017981B (zh) | 硬件辅助快速伪随机数生成 | |
KR101143041B1 (ko) | 리볼빙 버퍼들을 이용한 스트림 암호 설계 방법 | |
US10078493B2 (en) | Secured pseudo-random number generator | |
JP2014178716A (ja) | 不確定性ランダム値発生器 | |
JP6911158B2 (ja) | 差分プライバシーを備える忘却型アクセス | |
Liu et al. | Efficient searchable symmetric encryption for storing multiple source dynamic social data on cloud | |
Teh et al. | GPUs and chaos: a new true random number generator | |
US11328097B2 (en) | Encryption circuit for performing virtual encryption operations | |
AL-khatib et al. | Acoustic lightweight pseudo random number generator based on cryptographically secure LFSR | |
US11755287B2 (en) | Random number generator | |
Chang et al. | Rig: A simple, secure and flexible design for password hashing | |
WO2019113844A1 (zh) | 生成随机数的方法、芯片和电子设备 | |
Karimovich et al. | Computer's source based (Pseudo) random number generation | |
Beckers et al. | Fault analysis of the chacha and salsa families of stream ciphers | |
Alzhrani et al. | Windows and linux random number generation process: A comparative analysis | |
Chen et al. | Distributed pseudo-random number generation and its application to cloud database | |
JP2007041199A (ja) | データ分割装置、データ分割方法およびコンピュータプログラム | |
Hussein | A proposed impregnable 256-bit hash producer | |
Maldonado et al. | A novel hybrid mechanism for generation of pseudo-random sequences for data protection purposes | |
US20220368514A1 (en) | Methods and Systems For Protecting Against Memory-Based Side-Channel Attacks | |
Tripathy et al. | Efficiency Comparison and Analysis of Pseudo-random Generators in Network Security | |
Jackson et al. | Quadrivium: A Trivium-Inspired Pseudorandom Number Generator. | |
Zhang et al. | The research of applying chaos theory to speech communicating encryption system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200722 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200722 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20200722 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20200909 |
|
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: 20200923 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201020 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6782863 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |