[go: up one dir, main page]

JP2018092174A - Random number generator, storage device, and information processing system - Google Patents

Random number generator, storage device, and information processing system Download PDF

Info

Publication number
JP2018092174A
JP2018092174A JP2017246427A JP2017246427A JP2018092174A JP 2018092174 A JP2018092174 A JP 2018092174A JP 2017246427 A JP2017246427 A JP 2017246427A JP 2017246427 A JP2017246427 A JP 2017246427A JP 2018092174 A JP2018092174 A JP 2018092174A
Authority
JP
Japan
Prior art keywords
random number
data
key
cryptographic
host
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.)
Pending
Application number
JP2017246427A
Other languages
Japanese (ja)
Inventor
崇彦 菅原
Takahiko Sugawara
崇彦 菅原
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.)
MegaChips Corp
Original Assignee
MegaChips 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 MegaChips Corp filed Critical MegaChips Corp
Priority to JP2017246427A priority Critical patent/JP2018092174A/en
Publication of JP2018092174A publication Critical patent/JP2018092174A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a random number generator capable of performing processing with a simple configuration, that is, at low cost.SOLUTION: A random number generator 1 includes: an uncertainty circuit 10 that outputs uncertain data 100; and an encryption processing device 11. The encryption processing device 11 encrypts input data 300 by using its own encryption function; obtains data after encryption as encrypted data 310; and generates and outputs a random number 200 having more uniformity than the data 100 by using its own encryption function and the data 100 which is output from the uncertainty circuit 10.SELECTED DRAWING: Figure 1

Description

本発明は、暗号処理に関する。   The present invention relates to cryptographic processing.

特許文献1に記載されているように、従来から暗号処理に関して様々な技術が提案されている。また特許文献2には、乱数生成技術が開示されている。   As described in Patent Document 1, various techniques have been proposed for cryptographic processing. Patent Document 2 discloses a random number generation technique.

特開2004−234153号公報JP 2004-234153 A 特開2003−173254号公報JP 2003-173254 A

特許文献1に記載されているように、乱数生成と暗号処理とが同じ装置で行われることがある。このような装置や他の装置等においては、簡単な構成で、つまり低コストで処理が行えることが望まれる。   As described in Patent Document 1, random number generation and cryptographic processing may be performed by the same device. In such devices and other devices, it is desired that processing can be performed with a simple configuration, that is, at low cost.

そこで、本発明は上述の点に鑑みて成されたものであり、簡単な構成で、つまり低コストで処理を行うことが可能な技術を提供することを目的とする。   Therefore, the present invention has been made in view of the above points, and an object thereof is to provide a technique capable of performing processing with a simple configuration, that is, at low cost.

乱数生成装置の一態様は、不確定なデータを出力する不確定回路と、暗号処理装置とを備え、前記暗号処理装置は、非線形性を有する自身の暗号アルゴリズムを使用して、前記暗号処理装置の外部からの、前記不確定なデータとは別の入力データを暗号化するとともに、当該暗号アルゴリズムと前記不確定回路から出力される前記不確定なデータとを使用して、当該不確定なデータよりも一様性の高い乱数を生成する。   One aspect of the random number generation device includes an uncertain circuit that outputs uncertain data and an encryption processing device, and the encryption processing device uses its own encryption algorithm having nonlinearity, and the encryption processing device And encrypting the input data different from the uncertain data, and using the encryption algorithm and the uncertain data output from the uncertain circuit, the uncertain data Generate a more uniform random number.

また、記憶装置の一態様は、上記の乱数生成装置と、記憶部とを備え、前記暗号処理装置は、前記記憶部から読み出されたデータを暗号化する。   One aspect of the storage device includes the random number generation device described above and a storage unit, and the encryption processing device encrypts data read from the storage unit.

また、情報処理システムの一態様は、上記の記憶装置と、前記記憶装置を制御するホスト装置とを備える。   One embodiment of the information processing system includes the above-described storage device and a host device that controls the storage device.

簡単な構成で、つまり低コストで処理を行うことができる。   Processing can be performed with a simple configuration, that is, at low cost.

乱数生成装置の構成を示す図である。It is a figure which shows the structure of a random number generator. メモリシステムの構成を示す図である。It is a figure which shows the structure of a memory system. 半導体メモリの動作を示すフローチャートである。It is a flowchart which shows operation | movement of a semiconductor memory.

図1は実施の形態に係る乱数生成装置1の構成を示す図である。本実施の形態に係る乱数生成装置1は、一様性の高い乱数を生成して出力するとともに、入力データを暗号化する暗号機能を有している。図2に示されるように、乱数生成装置1は、不確定回路10と暗号処理装置11とを備えている。   FIG. 1 is a diagram illustrating a configuration of a random number generation device 1 according to an embodiment. The random number generation device 1 according to the present embodiment generates and outputs a highly uniform random number and has an encryption function for encrypting input data. As shown in FIG. 2, the random number generation device 1 includes an uncertain circuit 10 and a cryptographic processing device 11.

不確定回路10は、不確定なデータ100を生成して出力する。データ100はデジタルデータである。不確定回路10は、例えば、抵抗あるいはダイオードの熱雑音を利用して不確定なデータ100を生成することができる。また不確定回路10は、例えば、水晶発振器の揺らぎを利用して不確定なデータ100を生成することができる。また不確定回路10は、特許文献2に記載されているように、例えば、RSフリップフロップ等の論理回路を利用して不確定なデータ100を生成することができる。論理回路を利用して不確定なデータを生成する不確定回路10は「不確定論路回路」とも呼ばれる。不確定回路10から出力されるデータ100は、再現不可能性を有する、一様性の低い乱数であると見ることができる。一様性の低い乱数については、そのエントロピー(乱雑性)は低くく、エントロピーの低い乱数は真性度が低いことから、データ100は真性度の低い乱数と言える。   The uncertain circuit 10 generates and outputs uncertain data 100. Data 100 is digital data. The uncertain circuit 10 can generate the uncertain data 100 using, for example, resistance or thermal noise of a diode. Further, the uncertain circuit 10 can generate the uncertain data 100 using, for example, fluctuation of a crystal oscillator. Further, as described in Patent Document 2, the uncertain circuit 10 can generate the uncertain data 100 using a logic circuit such as an RS flip-flop, for example. The uncertain circuit 10 that generates uncertain data using a logic circuit is also called an “indeterminate logic circuit”. The data 100 output from the uncertain circuit 10 can be regarded as random numbers with non-reproducibility and low uniformity. For random numbers with low uniformity, the entropy (randomness) is low, and since random numbers with low entropy have low authenticity, the data 100 can be said to be random numbers with low authenticity.

暗号処理装置11は、暗号機能を有しており、当該暗号機能を使用して、入力データ300を暗号化し、暗号化後の入力データ300を暗号データ310として出力する。さらに、暗号処理装置11は、自身の暗号機能と不確定回路10から出力されるデータ100とを使用して、当該データ100よりも一様性の高い乱数200を生成して出力する。つまり、暗号処理装置11は、自身の暗号機能とデータ100とを使用して、当該データ100よりも“1”と“0”の出現頻度(出現確率)の差が小さい乱数200(当該データ100よりも値の偏りが少ない乱数200)を生成して出力する。暗号処理装置11は、データの一様性を高める一様化回路の機能を有していると言える。暗号処理装置11で生成される乱数200は、再現不可能性を有する、一様性の高いデジタルデータである。一様性の高い乱数については、そのエントロピーは高く、エントロピーの高い乱数は真性度が高いことから、乱数200は、真性度の高い乱数と言える。なお、暗号処理装置11は、自身の暗号機能を使用して、暗号化されたデータを復号化しても良い。   The cryptographic processing device 11 has a cryptographic function, encrypts the input data 300 using the cryptographic function, and outputs the encrypted input data 300 as the encrypted data 310. Further, the cryptographic processing device 11 generates and outputs a random number 200 having higher uniformity than the data 100 using its own cryptographic function and the data 100 output from the uncertain circuit 10. In other words, the cryptographic processing device 11 uses its own cryptographic function and the data 100, and the random number 200 (the data 100) having a smaller difference in appearance frequency (appearance probability) between “1” and “0” than the data 100. And generates and outputs a random number 200) having a smaller value bias. It can be said that the cryptographic processing apparatus 11 has a function of a uniformizing circuit that improves the uniformity of data. The random number 200 generated by the cryptographic processing device 11 is highly uniform digital data having non-reproducibility. A random number with high uniformity has high entropy, and a random number with high entropy has high authenticity. Therefore, the random number 200 can be said to be a highly random number. Note that the cryptographic processing device 11 may decrypt the encrypted data using its own cryptographic function.

このような乱数生成装置1で生成される真性度の高い乱数200は、例えば、機密性の高い情報として使用することができる。機密性の高い情報としては、例えば、暗号で用いられる鍵や、認証で用いられる認証コードがある。乱数200は、DES(Data Encryption Standard)あるいはAES(Advanced Encryption Standard)等の暗号アルゴリズムで使用される鍵として使用することができる。また、乱数200は、例えば、複数の装置間での相互認証において当該複数の装置間で使用される認証コードとして使用することができる。   The random number 200 with high authenticity generated by the random number generation device 1 can be used as highly confidential information, for example. Examples of highly confidential information include a key used for encryption and an authentication code used for authentication. The random number 200 can be used as a key used in an encryption algorithm such as DES (Data Encryption Standard) or AES (Advanced Encryption Standard). Further, the random number 200 can be used as an authentication code used between a plurality of devices in the mutual authentication between the plurality of devices, for example.

以上のように、本実施の形態に係る乱数生成装置1では、暗号処理装置11の暗号機能と不確定回路10から出力されるデータ100とが使用されて一様性の高い乱数200が生成されることから、不確定回路10から出力されるデータ100のエントロピーを高めるために当該データ100を一様化する一様化回路を暗号処理装置11とは別に設ける必要がなくなる。よって、暗号処理と、真性度の高い乱数の生成とを簡単な構成で実現することができる。その結果、暗号処理と乱数生成とを行う装置の低コスト化が可能となる。なお、一様化回路は、特許文献1に記載されているように「平滑回路」とも呼ばれる。また、本実施の形態のように、乱数200の一様性を暗号処理装置11の一部を使って担保することによって、回路規模のオーバーヘッドを最小限に抑えることができる。   As described above, in the random number generation device 1 according to the present embodiment, the cryptographic function of the cryptographic processing device 11 and the data 100 output from the uncertain circuit 10 are used to generate the random number 200 with high uniformity. Therefore, it is not necessary to provide a uniformizing circuit for uniformizing the data 100 separately from the cryptographic processor 11 in order to increase the entropy of the data 100 output from the uncertain circuit 10. Therefore, cryptographic processing and generation of a highly authentic random number can be realized with a simple configuration. As a result, it is possible to reduce the cost of an apparatus that performs cryptographic processing and random number generation. Note that the uniformizing circuit is also referred to as a “smoothing circuit” as described in Patent Document 1. Further, as in the present embodiment, by ensuring the uniformity of the random number 200 by using a part of the cryptographic processing device 11, the overhead of the circuit scale can be minimized.

<乱数生成装置の使用例>
次に乱数生成装置1の使用例と暗号処理装置11の構成例について説明する。図2は、乱数生成装置1を搭載した半導体メモリ20を備えるメモリシステム50を示すブロック図である。
<Usage example of random number generator>
Next, a usage example of the random number generation device 1 and a configuration example of the cryptographic processing device 11 will be described. FIG. 2 is a block diagram showing a memory system 50 including the semiconductor memory 20 on which the random number generation device 1 is mounted.

図2に示されるように、情報処理システムの一種であるメモリシステム50は、乱数生成装置1を有する半導体メモリ20と、当該半導体メモリ20を制御するホスト装置30とを備えている。記憶装置の一種である半導体メモリ20とホスト装置30とは互いに暗号化通信を行う。   As shown in FIG. 2, a memory system 50 that is a type of information processing system includes a semiconductor memory 20 having a random number generation device 1 and a host device 30 that controls the semiconductor memory 20. The semiconductor memory 20 which is a kind of storage device and the host device 30 perform encrypted communication with each other.

メモリシステム50は、例えば、ゲーム装置に実装されるコンピュータシステムである。当該ゲーム装置は、ゲーム装置本体と、それに着脱可能なゲームカートリッジとを備えている。半導体メモリ20はゲームカートリッジに内蔵され、ホスト装置30はゲーム装置本体に内蔵される。ホスト装置30は、一種のコンピュータである。ユーザは、ゲーム装置本体に装着するゲームカードリッジを交換することによって、様々な種類のゲームを楽しむことができる。メモリシステム50では、ホスト装置30と半導体メモリ20との間において、暗号で使用される鍵の交換が行われる。   The memory system 50 is, for example, a computer system mounted on a game device. The game device includes a game device body and a game cartridge that can be attached to and detached from the game device body. The semiconductor memory 20 is built in the game cartridge, and the host device 30 is built in the game apparatus main body. The host device 30 is a kind of computer. The user can enjoy various types of games by exchanging the game card ridge attached to the game apparatus main body. In the memory system 50, a key used for encryption is exchanged between the host device 30 and the semiconductor memory 20.

半導体メモリ20は、例えばマスクROM(Read Only Memory)である。半導体メモリ20は、乱数生成装置1を構成する不確定回路10及び暗号処理装置11と、コマンドデコーダ12と、記憶部であるメモリアレイ13とを備えている。本例では、暗号処理装置11が使用されて半導体メモリ20のセキュリティが実現されている。また、乱数生成装置1で生成された乱数200は、暗号処理装置11に対して鍵として入力される。   The semiconductor memory 20 is, for example, a mask ROM (Read Only Memory). The semiconductor memory 20 includes an uncertain circuit 10 and a cryptographic processing device 11 that constitute the random number generation device 1, a command decoder 12, and a memory array 13 that is a storage unit. In this example, the encryption processing device 11 is used to realize the security of the semiconductor memory 20. In addition, the random number 200 generated by the random number generation device 1 is input to the cryptographic processing device 11 as a key.

図2に示される暗号処理装置11は、例えば、共通鍵暗号方式の一種であるストリーム暗号方式を使用して、データを暗号化及び復号化する。なお、暗号処理装置11は、共通鍵暗号方式の一種であるブロック暗号方式を使用してデータを暗号化及び復号化しても良い。また暗号処理装置11は、公開鍵暗号方式を使用してデータを暗号化及び復号化しても良い。   The encryption processing device 11 shown in FIG. 2 encrypts and decrypts data using, for example, a stream encryption method which is a kind of common key encryption method. Note that the cryptographic processing apparatus 11 may encrypt and decrypt data using a block encryption method which is a kind of common key encryption method. The cryptographic processing device 11 may encrypt and decrypt data using a public key cryptosystem.

暗号処理装置11は、複数の暗号処理部110,111と、演算回路112と、第1選択回路113と、第2選択回路114と、第3選択回路115とを備えている。暗号処理部110,111のそれぞれは暗号機能を有している。暗号処理部110,111では、使用される暗号アルゴリズムは互いに同じであっても良いし、互いに異なっても良い。暗号処理部110,111で使用される暗号アルゴリズムとしては、例えば、DESあるいはAESなどが考えられる。本例に係る暗号処理装置11では、暗号処理部110が、自身の暗号機能(自身の暗号アルゴリズム)と不確定回路10から出力されるデータ100とを使用して、一様性の高い乱数200を生成する。   The cryptographic processing apparatus 11 includes a plurality of cryptographic processing units 110 and 111, an arithmetic circuit 112, a first selection circuit 113, a second selection circuit 114, and a third selection circuit 115. Each of the cryptographic processing units 110 and 111 has a cryptographic function. In the cryptographic processing units 110 and 111, the cryptographic algorithms used may be the same or different from each other. As an encryption algorithm used by the encryption processing units 110 and 111, for example, DES or AES is conceivable. In the cryptographic processing apparatus 11 according to the present example, the cryptographic processing unit 110 uses the cryptographic function (own cryptographic algorithm) of itself and the data 100 output from the indeterminate circuit 10 to generate a highly uniform random number 200. Is generated.

第1選択回路113は、入力される第1制御信号に基づいて、入力される3つのデータのうちのいずれか一つのデータを選択し、選択したデータをデータ550aとして暗号処理部110に出力する。また第2選択回路114は、入力される第2制御信号に基づいて、入力される3つのデータのうちのいずれか一つのデータを選択し、選択したデータをデータ550bとして暗号処理部110に出力する。   The first selection circuit 113 selects any one of the three input data based on the input first control signal, and outputs the selected data to the encryption processing unit 110 as data 550a. . Further, the second selection circuit 114 selects any one of the three input data based on the input second control signal, and outputs the selected data as data 550b to the encryption processing unit 110. To do.

本実施の形態では、第1選択回路113から出力されるデータ550aと、第2選択回路114から出力されるデータ550bとで、暗号処理部110で使用される共通鍵550が構成される。暗号処理部110は、この共通鍵550に基づいて、自身の初期化(自身の暗号アルゴリズムの初期化)を行う。以後、共通鍵550を構成するデータ550a,550bを、それぞれ「第1共通鍵550a」及び「第2共通鍵550b」と呼ぶ。第1共通鍵550aは、例えば、共通鍵550の上位データであって、第2共通鍵550bは、例えば、共通鍵550の下位データである。なお、第1共通鍵550aは、共通鍵550の一部であれば良く、共通鍵550の上位データでなくても良い。また、第2共通鍵550bは、共通鍵550における、第1共通鍵550a以外の部分であれば良く、共通鍵550の下位データでなくても良い。   In the present embodiment, the data 550 a output from the first selection circuit 113 and the data 550 b output from the second selection circuit 114 constitute a common key 550 used in the encryption processing unit 110. Based on the common key 550, the cryptographic processing unit 110 initializes itself (initializes its own cryptographic algorithm). Hereinafter, the data 550a and 550b constituting the common key 550 are referred to as “first common key 550a” and “second common key 550b”, respectively. The first common key 550a is, for example, upper data of the common key 550, and the second common key 550b is, for example, lower data of the common key 550. The first common key 550a may be a part of the common key 550, and may not be higher-order data of the common key 550. The second common key 550b may be a portion other than the first common key 550a in the common key 550, and may not be lower data of the common key 550.

第1選択回路113には、暗号処理装置11に予め記憶された固定鍵500の一部である第1固定鍵500aと、不確定回路10から出力されるデータ100の一部である第1データ100aと、暗号処理装置11で生成される乱数200との3つのデータが入力される。第1選択回路113において、例えば第1固定鍵500aが選択される際には、第1固定鍵500aが第1共通鍵550aとして暗号処理部110に入力される。   The first selection circuit 113 includes a first fixed key 500 a that is part of the fixed key 500 stored in advance in the cryptographic processing device 11 and first data that is part of the data 100 output from the indeterminate circuit 10. Three pieces of data, that is, 100a and a random number 200 generated by the cryptographic processing apparatus 11 are input. For example, when the first selection circuit 113 selects the first fixed key 500a, the first fixed key 500a is input to the encryption processing unit 110 as the first common key 550a.

第2選択回路114には、固定鍵500における、第1固定鍵500a以外の部分である第2固定鍵500bと、不確定回路10から出力されるデータ100における、第1データ100a以外の部分である第2データ100bと、ホスト装置30から送られてくる乱数600との3つのデータが入力される。第2選択回路114において、例えば乱数600が選択される際には、乱数600が第2共通鍵550bとして暗号処理部110に入力される。乱数600は、後述するように、コマンドデコーダ12から出力される。以後、乱数200を「メモリ乱数200」と呼び、乱数600を「ホスト乱数600」と呼ぶことがある。   The second selection circuit 114 includes a second fixed key 500b that is a part other than the first fixed key 500a in the fixed key 500 and a part other than the first data 100a in the data 100 output from the indeterminate circuit 10. Three pieces of data, that is, a certain second data 100 b and a random number 600 sent from the host device 30 are input. For example, when the second selection circuit 114 selects the random number 600, the random number 600 is input to the cryptographic processing unit 110 as the second common key 550b. The random number 600 is output from the command decoder 12 as will be described later. Hereinafter, the random number 200 may be referred to as “memory random number 200” and the random number 600 may be referred to as “host random number 600”.

第3選択回路115は、入力される第3制御信号に基づいて、入力される2つのデータのうちのいずれか一つのデータを選択し、選択したデータを出力データ560として演算回路112に出力する。第3選択回路115には、メモリ乱数200と、メモリアレイ13から出力されるデータ400(以後、「メモリデータ400」と呼ぶ)との2つのデータが入力される。第3選択回路115が、例えばメモリデータ400を選択する場合には、メモリデータ400が出力データ560となる。なお、第1選択回路113〜第3選択回路115を制御するための第1〜第3制御信号は、例えば、半導体メモリ20内で生成される。   The third selection circuit 115 selects one of the two input data based on the input third control signal, and outputs the selected data to the arithmetic circuit 112 as output data 560. . Two data of the memory random number 200 and data 400 output from the memory array 13 (hereinafter referred to as “memory data 400”) are input to the third selection circuit 115. For example, when the third selection circuit 115 selects the memory data 400, the memory data 400 becomes the output data 560. The first to third control signals for controlling the first selection circuit 113 to the third selection circuit 115 are generated in the semiconductor memory 20, for example.

暗号処理部111は、暗号処理部110から出力される後述のセッション鍵SKに基づいて自身の初期化(自身の暗号アルゴリズムの初期化)を行う。初期化後の暗号処理部111は、自身の暗号機能(自身の暗号アルゴリズム)を使用してキーストリームKSを生成して出力する。言い換えれば、初期化後の暗号処理部111は、暗号処理を行ってキーストリームKSを生成して出力する。   The cryptographic processing unit 111 initializes itself (initializes its own cryptographic algorithm) based on a session key SK described later output from the cryptographic processing unit 110. The initialized cryptographic processing unit 111 generates and outputs a key stream KS using its own cryptographic function (its own cryptographic algorithm). In other words, the encrypted cryptographic processing unit 111 performs cryptographic processing to generate and output a key stream KS.

演算回路112は、暗号処理部111から出力されるキーストリームKSと、ホスト装置30から出力される、暗号化されたコマンド350(以後、「暗号コマンド350」と呼ぶことがある)との排他的論路和を演算して出力する。これにより、ホスト装置30からの暗号コマンド350が復号化される。復号化された暗号コマンド350は、平文コマンド360としてコマンドデコーダ12に入力される。   The arithmetic circuit 112 is exclusive of the key stream KS output from the encryption processing unit 111 and the encrypted command 350 (hereinafter also referred to as “encryption command 350”) output from the host device 30. Calculate and output the logical sum. As a result, the encryption command 350 from the host device 30 is decrypted. The decrypted encrypted command 350 is input to the command decoder 12 as a plaintext command 360.

また、演算回路112は、暗号処理部111から出力されるキーストリームKSと、第3選択回路115からの出力データ560との排他的論理和を演算して出力する。これにより、出力データ560が暗号化される。暗号化された出力データ560は、暗号データ570としてホスト装置30に出力される。   The arithmetic circuit 112 calculates and outputs an exclusive OR of the key stream KS output from the encryption processing unit 111 and the output data 560 from the third selection circuit 115. As a result, the output data 560 is encrypted. The encrypted output data 560 is output to the host device 30 as encrypted data 570.

このように、演算回路112は、暗号処理部111から出力されるデータをキーストリームKSとして使用して、入力されるデータを暗号化あるいは復号化する。   As described above, the arithmetic circuit 112 uses the data output from the encryption processing unit 111 as the key stream KS, and encrypts or decrypts the input data.

コマンドデコーダ12は、入力される平文コマンド360をデコードして、当該平文コマンド360を解析する。コマンドデコーダ12は、入力される平文コマンド360を解析した結果、当該平文コマンド360がメモリアレイ13からデータを読み出すことを指示する読み出しコマンドである場合には、アドレス信号及びリード信号等の制御信号をメモリアレイ13に出力する。これにより、メモリアレイ13からメモリデータ400が出力される。メモリアレイ13には、例えば、複数のゲームプログラムや、各ゲームプログラムで使用される各種データなどが記憶されている。第3選択回路115からメモリデータ400が出力されると、演算回路112においてメモリデータ400が暗号化され、暗号化後のメモリデータ400がホスト装置30に入力される。ホスト装置30は、入力されるメモリデータ400にゲームプログラムが含まれている場合には、当該ゲームプログラムを実行する。   The command decoder 12 decodes the input plaintext command 360 and analyzes the plaintext command 360. When the command decoder 12 analyzes the input plaintext command 360, and the plaintext command 360 is a read command for instructing to read data from the memory array 13, the command decoder 12 outputs control signals such as an address signal and a read signal. Output to the memory array 13. As a result, the memory data 400 is output from the memory array 13. The memory array 13 stores, for example, a plurality of game programs and various data used in each game program. When the memory data 400 is output from the third selection circuit 115, the memory data 400 is encrypted in the arithmetic circuit 112, and the encrypted memory data 400 is input to the host device 30. When the input memory data 400 includes a game program, the host device 30 executes the game program.

またコマンドデコーダ12は、入力される平文コマンド360をデコードして、当該平文コマンド360に含まれる、ホスト装置30が生成したホスト乱数600を抽出する。コマンドデコーダ12は、抽出したホスト乱数600を第2選択回路114に出力する。   In addition, the command decoder 12 decodes the input plaintext command 360 and extracts the host random number 600 generated by the host device 30 included in the plaintext command 360. The command decoder 12 outputs the extracted host random number 600 to the second selection circuit 114.

ホスト装置30には、半導体メモリ20の乱数生成装置1と同様の乱数生成装置が(以後、「ホスト側乱数生成装置」と呼ぶ)が設けられている。ホスト側乱数生成装置は、不確定回路10と同様の不確定回路(以後、「ホスト側不確定回路」と呼ぶ)と、暗号処理装置11と同様の暗号処理装置(「以後、ホスト側暗号処理装置」と呼ぶ)とを有している。ホスト装置30は、ホスト側暗号処理装置を使用してコマンドを暗号化し、暗号化後のコマンド(暗号コマンド350)を半導体メモリ20に出力する。また、ホスト装置30は、ホスト側暗号処理装置を使用して、半導体メモリ20からの暗号データ570を復号化する。   The host device 30 is provided with a random number generation device similar to the random number generation device 1 of the semiconductor memory 20 (hereinafter referred to as “host-side random number generation device”). The host-side random number generator includes an uncertain circuit similar to the uncertain circuit 10 (hereinafter referred to as “host-side uncertain circuit”) and an encryption processor similar to the cryptographic processor 11 (hereinafter referred to as “host-side encryption process” Device). The host device 30 encrypts the command using the host-side cryptographic processing device, and outputs the encrypted command (encrypted command 350) to the semiconductor memory 20. In addition, the host device 30 decrypts the encrypted data 570 from the semiconductor memory 20 using the host-side cryptographic processing device.

またホスト側乱数生成装置では、乱数生成装置1と同様にして、ホスト側暗号処理装置が、自身の暗号機能とホスト側不確定回路から出力されるデータとを使用して一様性の高いホスト乱数600を生成する。ホスト装置30は、生成したホスト乱数600を含む所定のコマンドを半導体メモリ20に出力する。なお、ホスト側乱数生成装置は、半導体メモリ20の乱数生成装置1とは異なる方法でホスト乱数600を生成しても良い。   Further, in the host-side random number generation device, in the same manner as the random-number generation device 1, the host-side cryptographic processing device uses a host with high uniformity using its own cryptographic function and data output from the host-side uncertain circuit. A random number 600 is generated. The host device 30 outputs a predetermined command including the generated host random number 600 to the semiconductor memory 20. Note that the host-side random number generation device may generate the host random number 600 by a method different from that of the random number generation device 1 of the semiconductor memory 20.

本実施の形態に係るメモリシステム50では、ホスト乱数600及びメモリ乱数200が鍵として使用される。ホスト装置30と半導体メモリ20との間で、ホスト乱数600及びメモリ乱数200の交換が行われることによって、鍵交換が行われる。   In the memory system 50 according to the present embodiment, the host random number 600 and the memory random number 200 are used as keys. Key exchange is performed by exchanging the host random number 600 and the memory random number 200 between the host device 30 and the semiconductor memory 20.

<メモリシステムでの鍵交換について>
次に、ホスト装置30と半導体メモリ20との間で鍵交換が行われる際のメモリシステム50の動作について説明する。図3は、ホスト装置30と半導体メモリ20との間で鍵交換が行われる際の当該半導体メモリ20の動作を示すフローチャートである。
<About key exchange in the memory system>
Next, an operation of the memory system 50 when a key exchange is performed between the host device 30 and the semiconductor memory 20 will be described. FIG. 3 is a flowchart showing the operation of the semiconductor memory 20 when key exchange is performed between the host device 30 and the semiconductor memory 20.

図3に示されるように、ステップs1において、半導体メモリ20では固定鍵500が使用されて暗号処理装置11についての初期化処理が行われる。この初期化処理は、ホスト装置30と半導体メモリ20との間で鍵交換を行うために必要な処理である。   As shown in FIG. 3, in step s <b> 1, the semiconductor memory 20 uses the fixed key 500 to perform initialization processing for the cryptographic processing device 11. This initialization process is a process necessary for exchanging keys between the host device 30 and the semiconductor memory 20.

ステップs1においては、第1選択回路113が第1固定鍵500aを選択して出力し、第2選択回路114が第2固定鍵500bを選択して出力する。これにより、暗号処理部110には、固定鍵500が共通鍵550として入力される。暗号処理部110は、入力された固定鍵500(共通鍵550)に基づいて、自身の初期化(自身の暗号アルゴリズムを初期化)を行う。そして、初期化後の暗号処理部110は、自身の暗号機能を使用してセッション鍵SKを生成して暗号処理部111に出力する。言い換えれば、初期化後の暗号処理部110は、暗号処理を行ってセッション鍵SKを生成して出力する。ステップs1では、暗号処理部110における、固定鍵500に基づいて初期化された暗号アルゴリズムの出力がセッション鍵SKとなる。   In step s1, the first selection circuit 113 selects and outputs the first fixed key 500a, and the second selection circuit 114 selects and outputs the second fixed key 500b. As a result, the fixed key 500 is input to the cryptographic processing unit 110 as the common key 550. The cryptographic processor 110 initializes itself (initializes its cryptographic algorithm) based on the input fixed key 500 (common key 550). Then, the encrypted cryptographic processing unit 110 generates a session key SK using its own cryptographic function and outputs it to the cryptographic processing unit 111. In other words, the cryptographic processing unit 110 after initialization performs cryptographic processing to generate and output a session key SK. In step s1, the output of the encryption algorithm initialized based on the fixed key 500 in the encryption processing unit 110 becomes the session key SK.

またステップs1では、暗号処理部111が、入力されたセッション鍵SKに基づいて、自身の初期化(自身の暗号アルゴリズムを初期化)を行う。そして、初期化後の暗号処理部111は、自身の暗号機能を使用してキーストリームKSを生成して演算回路112に出力する。ステップs1では、暗号処理部111における、セッション鍵SKで初期化された暗号アルゴリズムの出力がキーストリームKSとなる。以後、このキーストリームKSを特に「鍵交換用キーストリームKS」と呼ぶ。   In step s1, the encryption processing unit 111 initializes itself (initializes its encryption algorithm) based on the input session key SK. Then, the initialized cryptographic processing unit 111 generates a key stream KS using its own cryptographic function and outputs the key stream KS to the arithmetic circuit 112. In step s1, the output of the encryption algorithm initialized with the session key SK in the encryption processing unit 111 becomes the key stream KS. Hereinafter, this key stream KS is particularly referred to as “key exchange key stream KS”.

ホスト装置30でも、同様にして、固定鍵500と同じ固定鍵が使用されてホスト側暗号処理装置についての初期化処理が行われる。これにより、ホスト側暗号処理装置においても、鍵交換用キーストリームKSと同じキーストリーム(以後、「ホスト側鍵交換用キーストリーム」と呼ぶ)が生成される。   Similarly, the host device 30 uses the same fixed key as the fixed key 500 to perform initialization processing for the host-side cryptographic processing device. As a result, the same key stream as the key exchange key stream KS (hereinafter referred to as “host side key exchange key stream”) is also generated in the host side cryptographic processing apparatus.

ホスト装置30は、ホスト側鍵交換用キーストリームを生成すると、当該ホスト側鍵交換用キーストリームを使用して乱数生成コマンドを暗号化する。乱数生成コマンドは、半導体メモリ20に対してメモリ乱数200を生成することを命令するコマンドである。ホスト装置30は、暗号化された乱数生成コマンドを半導体メモリ20に出力する。   When the host device 30 generates the host side key exchange key stream, the host device 30 encrypts the random number generation command using the host side key exchange key stream. The random number generation command is a command for instructing the semiconductor memory 20 to generate the memory random number 200. The host device 30 outputs the encrypted random number generation command to the semiconductor memory 20.

ステップs2において、半導体メモリ20が暗号化された乱数生成コマンドを受信すると、ステップs3において、演算回路112は、鍵交換用キーストリームKSを使用して当該乱数生成コマンドを復号化する。復号化された乱数生成コマンドはコマンドデコーダ12に入力される。   In step s2, when the semiconductor memory 20 receives the encrypted random number generation command, in step s3, the arithmetic circuit 112 uses the key exchange key stream KS to decrypt the random number generation command. The decrypted random number generation command is input to the command decoder 12.

コマンドデコーダ12において乱数生成コマンドが解析されると、ステップs4において、第1選択回路113が第1データ100aを選択して出力し、第2選択回路114が第2データ100bを選択して出力する。これにより、不確定回路10から出力されるデータ100が乱数生成用の共通鍵550(暫定の共通鍵550)として暗号処理部110に入力される。   When the command decoder 12 analyzes the random number generation command, in step s4, the first selection circuit 113 selects and outputs the first data 100a, and the second selection circuit 114 selects and outputs the second data 100b. . As a result, the data 100 output from the indeterminate circuit 10 is input to the cryptographic processing unit 110 as the common key 550 for generating random numbers (provisional common key 550).

次にステップs5において、鍵を生成する鍵生成部として機能する暗号処理部110は、自身の暗号機能(自身の暗号アルゴリズム)と、入力されたデータ100(乱数生成用の共通鍵550)とを使用して、当該データ100よりも一様性の高いメモリ乱数200を生成して出力する。具体的には、暗号処理部110は、データ100に基づいて自身の初期化を行う。そして、初期化後の暗号処理部110は、自身の暗号機能を使用してメモリ乱数200を生成して出力する。ステップs5では、暗号処理部110における、データ100(一様性の低い乱数)に基づいて初期化された暗号アルゴリズムの出力が、一様性の高いメモリ乱数200となる。暗号アルゴリズムの出力については、暗号アルゴリズムの本質から予測不可能性を有することから、暗号アルゴリズムの出力では、“0”と“1”の出現確率の差が小さい。したがって、暗号処理部110において一様性の高いメモリ乱数200を生成することができる。   Next, in step s5, the cryptographic processing unit 110 functioning as a key generating unit for generating a key uses its own cryptographic function (own cryptographic algorithm) and the input data 100 (common key 550 for random number generation). The memory random number 200 having higher uniformity than the data 100 is generated and output. Specifically, the cryptographic processing unit 110 initializes itself based on the data 100. Then, the encrypted cryptographic processing unit 110 generates and outputs the memory random number 200 using its own cryptographic function. In step s5, the output of the cryptographic algorithm initialized based on the data 100 (random number with low uniformity) in the cryptographic processing unit 110 becomes the memory random number 200 with high uniformity. Since the output of the cryptographic algorithm has unpredictability due to the essence of the cryptographic algorithm, the difference between the appearance probabilities of “0” and “1” is small in the output of the cryptographic algorithm. Therefore, the memory random number 200 with high uniformity can be generated in the cryptographic processing unit 110.

暗号処理部110でメモリ乱数200が生成されると、ステップs6において、第1選択回路113がメモリ乱数200を選択して出力する。これにより、メモリ乱数200が、鍵交換後に使用される正式な第1共通鍵550aとして暗号処理部110に入力される。   When the memory random number 200 is generated by the cryptographic processing unit 110, the first selection circuit 113 selects and outputs the memory random number 200 in step s6. As a result, the memory random number 200 is input to the cryptographic processing unit 110 as the formal first common key 550a used after the key exchange.

次にステップs7において、半導体メモリ20は、ステップs5で生成された、鍵としてのメモリ乱数200をホスト装置30に出力する。ステップs7では、第3選択回路115がメモリ乱数200を選択して出力する。これにより、演算回路112には、出力データ560としてメモリ乱数200が入力される。演算回路112は、入力されたメモリ乱数200と鍵交換用キーストリームKSとの排他的論理和を演算して出力する。これにより、鍵交換用キーストリームKSで暗号化されたメモリ乱数200が暗号データ570としてホスト装置30に入力される。   Next, in step s 7, the semiconductor memory 20 outputs the memory random number 200 generated as the key in step s 5 to the host device 30. In step s7, the third selection circuit 115 selects and outputs the memory random number 200. As a result, the memory random number 200 is input to the arithmetic circuit 112 as the output data 560. The arithmetic circuit 112 calculates and outputs an exclusive OR of the input memory random number 200 and the key exchange key stream KS. As a result, the memory random number 200 encrypted with the key exchange key stream KS is input to the host device 30 as the encrypted data 570.

ホスト装置30に対して暗号化されたメモリ乱数200が入力されると、ホスト側暗号処理装置は、ホスト側鍵交換用キーストリームを使用して、当該メモリ乱数200を復号化する。また、ホスト装置30では、半導体メモリ20と同様にして、鍵として扱われるホスト乱数600が生成される。そして、ホスト装置30は、生成したホスト乱数600を含むホスト乱数コマンドを生成する。このホスト乱数コマンドは、ホスト側暗号処理装置において、ホスト側鍵交換用キーストリームに基づいて暗号化される。暗号化されたホスト乱数コマンドは半導体メモリ20に入力される。   When the encrypted memory random number 200 is input to the host device 30, the host-side cryptographic processing device decrypts the memory random number 200 using the host-side key exchange key stream. In the host device 30, a host random number 600 that is treated as a key is generated in the same manner as the semiconductor memory 20. Then, the host device 30 generates a host random number command including the generated host random number 600. The host random number command is encrypted based on the host side key exchange key stream in the host side cryptographic processing device. The encrypted host random number command is input to the semiconductor memory 20.

ステップs8において、半導体メモリ20が暗号化されたホスト乱数コマンドを受信すると、ステップs9において、暗号処理装置11は、鍵交換用キーストリームKSを使用して当該ホスト乱数コマンドを復号化する。復号化されたホスト乱数コマンドはコマンドデコーダ12に入力される。   In step s8, when the semiconductor memory 20 receives the encrypted host random number command, in step s9, the cryptographic processing device 11 decrypts the host random number command using the key exchange key stream KS. The decrypted host random number command is input to the command decoder 12.

次にステップs10において、コマンドデコーダ12は、ホスト乱数コマンドをデコードして、当該ホスト乱数コマンドからホスト乱数600を抽出する。ホスト乱数600が取得されると、ステップs11において、第2選択回路114は当該ホスト乱数600を選択して出力する。これにより、ホスト乱数600が、鍵交換後に使用される正式な第2共通鍵550bとして暗号処理部110に入力される。暗号処理部110には、メモリ乱数200及びホスト乱数600から成る正式な共通鍵550が入力される。   Next, in step s10, the command decoder 12 decodes the host random number command and extracts the host random number 600 from the host random number command. When the host random number 600 is acquired, in step s11, the second selection circuit 114 selects and outputs the host random number 600. As a result, the host random number 600 is input to the cryptographic processing unit 110 as the formal second common key 550b used after the key exchange. A formal common key 550 including a memory random number 200 and a host random number 600 is input to the cryptographic processing unit 110.

ホスト装置30においても、半導体メモリ20と同様に、ホスト側暗号処理装置における、暗号処理部110に相当する暗号処理部に対して、半導体メモリ20からのメモリ乱数200とホスト乱数600から成る正式な共通鍵が入力される。   Also in the host device 30, as in the semiconductor memory 20, the formal processing composed of the memory random number 200 from the semiconductor memory 20 and the host random number 600 is made to the encryption processing unit corresponding to the encryption processing unit 110 in the host side encryption processing device. A common key is entered.

ホスト装置30は、半導体メモリ20に対して、正式な共通鍵550を使用して暗号処理装置11についての初期化処理を行うことを命令する初期化コマンドを生成する。そして、ホスト装置30では、ホスト側暗号処理装置が、ホスト側鍵交換用キーストリームを使用して初期化コマンドを暗号化する。暗号化された初期化コマンドは半導体メモリ20に入力される。   The host device 30 generates an initialization command that instructs the semiconductor memory 20 to perform initialization processing for the cryptographic processing device 11 using the formal common key 550. In the host device 30, the host-side cryptographic processing device encrypts the initialization command using the host-side key exchange key stream. The encrypted initialization command is input to the semiconductor memory 20.

ステップs12において、半導体メモリ20が暗号化された初期化コマンドを受信すると、ステップs13において、演算回路112は、鍵交換用キーストリームKSを使用して当該初期化コマンドを復号化する。復号化された初期化コマンドは、コマンドデコーダ12に入力される。   In step s12, when the semiconductor memory 20 receives the encrypted initialization command, in step s13, the arithmetic circuit 112 uses the key exchange key stream KS to decrypt the initialization command. The decoded initialization command is input to the command decoder 12.

コマンドデコーダ12において初期化コマンドが解析されると、ステップs14において、正式な共通鍵550(メモリ乱数200及びホスト乱数600)が使用されて暗号処理装置11についての初期化処理が行われる。具体的には、暗号処理部110は、入力された正式な共通鍵550に基づいて、つまりホスト乱数600及びメモリ乱数200に基づいて、自身の初期化を行う。そして、初期化後の暗号処理部110は、自身の暗号機能を使用してセッション鍵SKを生成して出力する。暗号処理部111は、暗号処理部110で生成されたセッション鍵SKに基づいて、自身の初期化を行う。そして、初期化後の暗号処理部111は、自身の暗号機能を使用してキーストリームKSを生成して出力する。以後、暗号処理装置11では、ホスト装置30からのコマンドが、暗号処理部111から出力されるキーストリームKSで復号化される。また、メモリアレイ13からのメモリデータ400が暗号処理部111から出力されるキーストリームKSで暗号化される。   When the command decoder 12 analyzes the initialization command, in step s14, the formal common key 550 (memory random number 200 and host random number 600) is used to perform initialization processing on the cryptographic processing device 11. Specifically, the cryptographic processing unit 110 initializes itself based on the inputted formal common key 550, that is, based on the host random number 600 and the memory random number 200. Then, the initialized cryptographic processing unit 110 generates and outputs a session key SK using its own cryptographic function. The encryption processing unit 111 initializes itself based on the session key SK generated by the encryption processing unit 110. Then, the encrypted cryptographic processing unit 111 generates and outputs the key stream KS using its own cryptographic function. Thereafter, in the cryptographic processing device 11, the command from the host device 30 is decrypted with the key stream KS output from the cryptographic processing unit 111. Further, the memory data 400 from the memory array 13 is encrypted with the key stream KS output from the encryption processing unit 111.

ホスト装置30では、半導体メモリ20と同様にして、ホスト乱数600とメモリ乱数200とから成る正式な共通鍵が使用されてホスト側暗号処理装置についての初期化処理が行われる。初期化処理後のホスト側暗号処理装置では、半導体メモリ20に送信されるコマンドがキーストリームで暗号化されるとともに、半導体メモリ20からの暗号データ570(暗号化されたメモリデータ400)がキーストリームで復号化される。   In the host device 30, in the same manner as in the semiconductor memory 20, initialization processing for the host-side cryptographic processing device is performed using a formal common key composed of the host random number 600 and the memory random number 200. In the host side cryptographic processing apparatus after the initialization process, the command transmitted to the semiconductor memory 20 is encrypted with the key stream, and the encrypted data 570 (encrypted memory data 400) from the semiconductor memory 20 is the key stream. Decrypted with

このように、ホスト装置30と半導体メモリ20との間で鍵交換(本例では乱数の交換)を行うことによって、ホスト装置30と半導体メモリ20との間での相互認証を実現することができる。   In this manner, mutual authentication between the host device 30 and the semiconductor memory 20 can be realized by performing key exchange (exchange of random numbers in this example) between the host device 30 and the semiconductor memory 20. .

また、本例のように、暗号処理装置11の一部(暗号処理部110)を使って生成された一様性の高い乱数200をセキュリティおける機密性の高い情報として使用することによって、セキュリティにおける機密性の高い情報を低コストで生成することができる。   Further, as in this example, by using a highly uniform random number 200 generated using a part of the cryptographic processing device 11 (the cryptographic processing unit 110) as highly confidential information in security, security can be improved. Highly confidential information can be generated at low cost.

また、本例のように、暗号処理装置11の一部を使って生成された一様性の高い乱数200を鍵として使用することによって、生成される鍵や交換される鍵のセキュリティを確保でき、その結果、暗号通信のセキュリティの確保を低コストで実現できる。   Further, as in this example, by using a highly uniform random number 200 generated by using a part of the cryptographic processing device 11 as a key, security of a generated key or a key to be exchanged can be ensured. As a result, it is possible to ensure the security of encryption communication at a low cost.

また、鍵生成部として機能する暗号処理部110は、ステップs5において、データ100と自身の暗号機能とを使用して第1の鍵であるメモリ乱数200を生成している。そして、暗号処理部110は、ステップs14において、第1の鍵と自身の暗号機能とを使用して、第2の鍵であるセッション鍵SKを生成している。このように、暗号処理部110が自分で生成した第1の鍵を使用して第2の鍵を生成することによって、簡単な構成でセキュリティの高い鍵を生成することができる。つまり、低コストでセキュリティの高い鍵を生成することができる。また、暗号処理部110では、不確定回路10から出力されるデータ100が使用されて第1の鍵が生成されているため、当該第1の鍵のセキュリティを高めることができる。上記の例では、第1の鍵(メモリ乱数200)は、暗号処理部111では使用されていなかったが、メモリシステム50で鍵交換が行われない場合等においては、暗号処理部111は、自身の鍵として第1の鍵を使用しても良い。   In step s5, the cryptographic processing unit 110 that functions as a key generation unit generates the memory random number 200, which is the first key, using the data 100 and its own cryptographic function. In step s14, the cryptographic processing unit 110 uses the first key and its own cryptographic function to generate a session key SK that is a second key. As described above, the cryptographic processing unit 110 generates the second key using the first key generated by itself, thereby generating a high-security key with a simple configuration. That is, a high-security key can be generated at low cost. In addition, since the first key is generated in the cryptographic processing unit 110 using the data 100 output from the uncertain circuit 10, the security of the first key can be enhanced. In the above example, the first key (memory random number 200) is not used in the cryptographic processing unit 111. However, in the case where key exchange is not performed in the memory system 50, the cryptographic processing unit 111 itself The first key may be used as the key.

なお、上記の例では、暗号処理部装置11で生成されたメモリ乱数200が当該暗号処理装置11で使用されているが、他の装置で使用されても良い。また、上記の例では、暗号処理装置11に複数の暗号処理部を設けていたが、1つの暗号処理部だけを設けても良い。また、上記の例では、ホスト装置30と半導体メモリ20との間で鍵交換が行われているが、鍵交換を行わなくても良い。この場合には、半導体メモリ20では、暗号処理装置11で生成されたメモリ乱数200だけで正式な共通鍵550が構成されることになる。また、ホスト装置30においても、半導体メモリ20から送られてくるメモリ乱数200だけで、ホスト側暗号処理装置での正式な共通鍵が構成されることになる。また、本例のように記憶領域(記憶素子)に半導体素子が使用された半導体メモリ20に不確定回路10及び暗号処理装置11等を設ける代わりに、記憶領域に半導体素子が使用されない記憶装置に不確定回路10及び暗号処理装置11等を設けても良い。   In the above example, the memory random number 200 generated by the cryptographic processing unit device 11 is used by the cryptographic processing device 11, but may be used by another device. In the above example, the cryptographic processing apparatus 11 is provided with a plurality of cryptographic processing units. However, only one cryptographic processing unit may be provided. In the above example, the key exchange is performed between the host device 30 and the semiconductor memory 20, but the key exchange may not be performed. In this case, in the semiconductor memory 20, the formal common key 550 is configured only by the memory random number 200 generated by the cryptographic processing device 11. Also in the host device 30, only the memory random number 200 sent from the semiconductor memory 20 constitutes a formal common key in the host side cryptographic processing device. Further, instead of providing the indeterminate circuit 10 and the cryptographic processing device 11 in the semiconductor memory 20 in which the semiconductor element is used in the storage area (storage element) as in this example, the storage device in which the semiconductor element is not used in the storage area An indeterminacy circuit 10 and a cryptographic processing device 11 may be provided.

以上のように、乱数生成装置1、半導体メモリ20及びメモリシステム50は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。   As described above, the random number generation device 1, the semiconductor memory 20, and the memory system 50 have been described in detail. However, the above description is an example in all aspects, and the present invention is not limited thereto. The various modifications described above can be applied in combination as long as they do not contradict each other. And it is understood that the countless modification which is not illustrated can be assumed without deviating from the scope of the present invention.

1 乱数生成装置
10 不確定回路
11 暗号処理装置
20 半導体メモリ
30 ホスト装置
50 メモリシステム
DESCRIPTION OF SYMBOLS 1 Random number generator 10 Uncertain circuit 11 Cryptographic processing device 20 Semiconductor memory 30 Host device 50 Memory system

Claims (6)

不確定なデータを出力する不確定回路と、
暗号処理装置と
を備え、
前記暗号処理装置は、非線形性を有する自身の暗号アルゴリズムを使用して、前記暗号処理装置の外部からの、前記不確定なデータとは別の入力データを暗号化するとともに、当該暗号アルゴリズムと前記不確定回路から出力される前記不確定なデータとを使用して、当該不確定なデータよりも一様性の高い乱数を生成する、乱数生成装置。
An uncertain circuit that outputs uncertain data;
A cryptographic processing device,
The cryptographic processing device encrypts input data different from the uncertain data from the outside of the cryptographic processing device using its own cryptographic algorithm having non-linearity, and the cryptographic algorithm and the A random number generation device that generates random numbers with higher uniformity than the uncertain data using the uncertain data output from the uncertain circuit.
請求項1に記載の乱数生成装置であって、
前記暗号処理装置は、前記乱数の生成で使用する前記暗号アルゴリズムを前記不確定なデータに基づいて初期化し、初期化後の当該暗号アルゴリズムに基づいて前記乱数を生成する、乱数生成装置。
The random number generation device according to claim 1,
The random number generation device, wherein the cryptographic processing device initializes the cryptographic algorithm used in the generation of the random number based on the uncertain data, and generates the random number based on the cryptographic algorithm after initialization.
請求項1及び2のいずれか一つに記載の乱数生成装置であって、
前記乱数は、暗号で用いられる鍵として、あるいは認証で用いられる認証コードとして使用される、乱数生成装置。
The random number generation device according to any one of claims 1 and 2,
The random number generator is used as a key used for encryption or an authentication code used for authentication.
請求項3に記載の乱数生成装置であって、
前記乱数は鍵として前記暗号処理装置に入力される、乱数生成装置。
The random number generation device according to claim 3,
The random number generation device, wherein the random number is input as a key to the cryptographic processing device.
請求項1乃至請求項4のいずれかに一つに記載の乱数生成装置と、
記憶部と
を備え、
前記暗号処理装置は、前記記憶部から読み出されたデータを暗号化する、記憶装置。
The random number generation device according to any one of claims 1 to 4,
A storage unit,
The encryption processing device is a storage device that encrypts data read from the storage unit.
請求項5に記載の記憶装置と、
前記記憶装置を制御するホスト装置と
を備える、情報処理システム。
A storage device according to claim 5;
An information processing system comprising: a host device that controls the storage device.
JP2017246427A 2017-12-22 2017-12-22 Random number generator, storage device, and information processing system Pending JP2018092174A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017246427A JP2018092174A (en) 2017-12-22 2017-12-22 Random number generator, storage device, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017246427A JP2018092174A (en) 2017-12-22 2017-12-22 Random number generator, storage device, and information processing system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013103613A Division JP2014224879A (en) 2013-05-16 2013-05-16 Random number generator; encryption processing device, storage device, and information processing system

Publications (1)

Publication Number Publication Date
JP2018092174A true JP2018092174A (en) 2018-06-14

Family

ID=62565839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017246427A Pending JP2018092174A (en) 2017-12-22 2017-12-22 Random number generator, storage device, and information processing system

Country Status (1)

Country Link
JP (1) JP2018092174A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023546302A (en) * 2020-08-11 2023-11-02 クリプト,インコーポレイテッド Generating a unique cryptographic key from a pool of random elements

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6410750A (en) * 1987-07-02 1989-01-13 Mitsubishi Electric Corp Block encipherment device
JPH08335040A (en) * 1995-06-02 1996-12-17 Fujitsu Ltd Encryption processing method
JPH11506588A (en) * 1995-06-01 1999-06-08 キーバイト テクノロジーズ インコーポレイテッド Cryptographic access and labeling system
JP2000066592A (en) * 1998-08-19 2000-03-03 Syst Kogaku Kk Random number generator
JP2001505007A (en) * 1996-10-01 2001-04-10 ドイッチェ テレコム アーゲー Signal transmission method
JP2010039838A (en) * 2008-08-06 2010-02-18 Mega Chips Corp Random number generation circuit and computer system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6410750A (en) * 1987-07-02 1989-01-13 Mitsubishi Electric Corp Block encipherment device
JPH11506588A (en) * 1995-06-01 1999-06-08 キーバイト テクノロジーズ インコーポレイテッド Cryptographic access and labeling system
JPH08335040A (en) * 1995-06-02 1996-12-17 Fujitsu Ltd Encryption processing method
JP2001505007A (en) * 1996-10-01 2001-04-10 ドイッチェ テレコム アーゲー Signal transmission method
JP2000066592A (en) * 1998-08-19 2000-03-03 Syst Kogaku Kk Random number generator
JP2010039838A (en) * 2008-08-06 2010-02-18 Mega Chips Corp Random number generation circuit and computer system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
岡本 栄司, 暗号理論入門, vol. 初版3刷, JPN6019003657, 1 October 1996 (1996-10-01), JP, pages 33 - 48, ISSN: 0003973428 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023546302A (en) * 2020-08-11 2023-11-02 クリプト,インコーポレイテッド Generating a unique cryptographic key from a pool of random elements
JP7688582B2 (en) 2020-08-11 2025-06-04 クリプト,インコーポレイテッド Generating unique cryptographic keys from a pool of random elements

Similar Documents

Publication Publication Date Title
US20250132899A1 (en) Secret material exchange and authentication cryptography operations
KR20120079639A (en) Contents protection, encryption and decryption apparatus using white-box cryptography
KR102397579B1 (en) Method and apparatus for white-box cryptography for protecting against side channel analysis
US10148434B2 (en) Random number generating device, cipher processing device, storage device, and information processing system
CN114444140B (en) Non-copyable function application in memory
CN107438065A (en) Data encryption device and method, data decryption apparatus and method
KR20200027527A (en) Method and device for secure communication between devices
JP6930053B2 (en) Data encryption method and system using device authentication key
CN105207772A (en) Cryptographic method for securely exchanging messages and device and system for implementing this method
JP5171787B2 (en) Sign-encryption system and sign-encryption generation method
JPWO2021009860A5 (en)
JP5105408B2 (en) Quantum program concealment device and quantum program concealment method
US12143468B2 (en) Cryptographic computer machines with novel switching devices
CN107278357B (en) Cryptographic system and method
JP6348273B2 (en) Information processing system
JP2018092174A (en) Random number generator, storage device, and information processing system
JP2007173999A (en) Authentication system and device to be authenticated
CN105099693B (en) A kind of transmission method and transmitting device
JP5945525B2 (en) KEY EXCHANGE SYSTEM, KEY EXCHANGE DEVICE, ITS METHOD, AND PROGRAM
JP6246516B2 (en) Information processing system
US20240020383A1 (en) Method and circuit for protecting an electronic device from a side-channel attack
US12056549B1 (en) Method and apparatus for activating a remote device
JP7325689B2 (en) Ciphertext conversion system, conversion key generation method, and conversion key generation program
KR101428665B1 (en) Security system and method for using aes-otp
JP2005309148A (en) Data conversion apparatus and data conversion method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190212

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190806