JP2018092174A - Random number generator, storage device, and information processing system - Google Patents
Random number generator, storage device, and information processing system Download PDFInfo
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 4
- 239000004065 semiconductor Substances 0.000 description 47
- 230000006870 function Effects 0.000 description 21
- 238000000034 method Methods 0.000 description 12
- 238000013478 data encryption standard Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013078 crystal Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
Images
Abstract
Description
本発明は、暗号処理に関する。 The present invention relates to cryptographic processing.
特許文献1に記載されているように、従来から暗号処理に関して様々な技術が提案されている。また特許文献2には、乱数生成技術が開示されている。
As described in
特許文献1に記載されているように、乱数生成と暗号処理とが同じ装置で行われることがある。このような装置や他の装置等においては、簡単な構成で、つまり低コストで処理が行えることが望まれる。
As described in
そこで、本発明は上述の点に鑑みて成されたものであり、簡単な構成で、つまり低コストで処理を行うことが可能な技術を提供することを目的とする。 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.
図1は実施の形態に係る乱数生成装置1の構成を示す図である。本実施の形態に係る乱数生成装置1は、一様性の高い乱数を生成して出力するとともに、入力データを暗号化する暗号機能を有している。図2に示されるように、乱数生成装置1は、不確定回路10と暗号処理装置11とを備えている。
FIG. 1 is a diagram illustrating a configuration of a random
不確定回路10は、不確定なデータ100を生成して出力する。データ100はデジタルデータである。不確定回路10は、例えば、抵抗あるいはダイオードの熱雑音を利用して不確定なデータ100を生成することができる。また不確定回路10は、例えば、水晶発振器の揺らぎを利用して不確定なデータ100を生成することができる。また不確定回路10は、特許文献2に記載されているように、例えば、RSフリップフロップ等の論理回路を利用して不確定なデータ100を生成することができる。論理回路を利用して不確定なデータを生成する不確定回路10は「不確定論路回路」とも呼ばれる。不確定回路10から出力されるデータ100は、再現不可能性を有する、一様性の低い乱数であると見ることができる。一様性の低い乱数については、そのエントロピー(乱雑性)は低くく、エントロピーの低い乱数は真性度が低いことから、データ100は真性度の低い乱数と言える。
The
暗号処理装置11は、暗号機能を有しており、当該暗号機能を使用して、入力データ300を暗号化し、暗号化後の入力データ300を暗号データ310として出力する。さらに、暗号処理装置11は、自身の暗号機能と不確定回路10から出力されるデータ100とを使用して、当該データ100よりも一様性の高い乱数200を生成して出力する。つまり、暗号処理装置11は、自身の暗号機能とデータ100とを使用して、当該データ100よりも“1”と“0”の出現頻度(出現確率)の差が小さい乱数200(当該データ100よりも値の偏りが少ない乱数200)を生成して出力する。暗号処理装置11は、データの一様性を高める一様化回路の機能を有していると言える。暗号処理装置11で生成される乱数200は、再現不可能性を有する、一様性の高いデジタルデータである。一様性の高い乱数については、そのエントロピーは高く、エントロピーの高い乱数は真性度が高いことから、乱数200は、真性度の高い乱数と言える。なお、暗号処理装置11は、自身の暗号機能を使用して、暗号化されたデータを復号化しても良い。
The
このような乱数生成装置1で生成される真性度の高い乱数200は、例えば、機密性の高い情報として使用することができる。機密性の高い情報としては、例えば、暗号で用いられる鍵や、認証で用いられる認証コードがある。乱数200は、DES(Data Encryption Standard)あるいはAES(Advanced Encryption Standard)等の暗号アルゴリズムで使用される鍵として使用することができる。また、乱数200は、例えば、複数の装置間での相互認証において当該複数の装置間で使用される認証コードとして使用することができる。
The
以上のように、本実施の形態に係る乱数生成装置1では、暗号処理装置11の暗号機能と不確定回路10から出力されるデータ100とが使用されて一様性の高い乱数200が生成されることから、不確定回路10から出力されるデータ100のエントロピーを高めるために当該データ100を一様化する一様化回路を暗号処理装置11とは別に設ける必要がなくなる。よって、暗号処理と、真性度の高い乱数の生成とを簡単な構成で実現することができる。その結果、暗号処理と乱数生成とを行う装置の低コスト化が可能となる。なお、一様化回路は、特許文献1に記載されているように「平滑回路」とも呼ばれる。また、本実施の形態のように、乱数200の一様性を暗号処理装置11の一部を使って担保することによって、回路規模のオーバーヘッドを最小限に抑えることができる。
As described above, in the random
<乱数生成装置の使用例>
次に乱数生成装置1の使用例と暗号処理装置11の構成例について説明する。図2は、乱数生成装置1を搭載した半導体メモリ20を備えるメモリシステム50を示すブロック図である。
<Usage example of random number generator>
Next, a usage example of the random
図2に示されるように、情報処理システムの一種であるメモリシステム50は、乱数生成装置1を有する半導体メモリ20と、当該半導体メモリ20を制御するホスト装置30とを備えている。記憶装置の一種である半導体メモリ20とホスト装置30とは互いに暗号化通信を行う。
As shown in FIG. 2, a
メモリシステム50は、例えば、ゲーム装置に実装されるコンピュータシステムである。当該ゲーム装置は、ゲーム装置本体と、それに着脱可能なゲームカートリッジとを備えている。半導体メモリ20はゲームカートリッジに内蔵され、ホスト装置30はゲーム装置本体に内蔵される。ホスト装置30は、一種のコンピュータである。ユーザは、ゲーム装置本体に装着するゲームカードリッジを交換することによって、様々な種類のゲームを楽しむことができる。メモリシステム50では、ホスト装置30と半導体メモリ20との間において、暗号で使用される鍵の交換が行われる。
The
半導体メモリ20は、例えばマスクROM(Read Only Memory)である。半導体メモリ20は、乱数生成装置1を構成する不確定回路10及び暗号処理装置11と、コマンドデコーダ12と、記憶部であるメモリアレイ13とを備えている。本例では、暗号処理装置11が使用されて半導体メモリ20のセキュリティが実現されている。また、乱数生成装置1で生成された乱数200は、暗号処理装置11に対して鍵として入力される。
The
図2に示される暗号処理装置11は、例えば、共通鍵暗号方式の一種であるストリーム暗号方式を使用して、データを暗号化及び復号化する。なお、暗号処理装置11は、共通鍵暗号方式の一種であるブロック暗号方式を使用してデータを暗号化及び復号化しても良い。また暗号処理装置11は、公開鍵暗号方式を使用してデータを暗号化及び復号化しても良い。
The
暗号処理装置11は、複数の暗号処理部110,111と、演算回路112と、第1選択回路113と、第2選択回路114と、第3選択回路115とを備えている。暗号処理部110,111のそれぞれは暗号機能を有している。暗号処理部110,111では、使用される暗号アルゴリズムは互いに同じであっても良いし、互いに異なっても良い。暗号処理部110,111で使用される暗号アルゴリズムとしては、例えば、DESあるいはAESなどが考えられる。本例に係る暗号処理装置11では、暗号処理部110が、自身の暗号機能(自身の暗号アルゴリズム)と不確定回路10から出力されるデータ100とを使用して、一様性の高い乱数200を生成する。
The
第1選択回路113は、入力される第1制御信号に基づいて、入力される3つのデータのうちのいずれか一つのデータを選択し、選択したデータをデータ550aとして暗号処理部110に出力する。また第2選択回路114は、入力される第2制御信号に基づいて、入力される3つのデータのうちのいずれか一つのデータを選択し、選択したデータをデータ550bとして暗号処理部110に出力する。
The
本実施の形態では、第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
第1選択回路113には、暗号処理装置11に予め記憶された固定鍵500の一部である第1固定鍵500aと、不確定回路10から出力されるデータ100の一部である第1データ100aと、暗号処理装置11で生成される乱数200との3つのデータが入力される。第1選択回路113において、例えば第1固定鍵500aが選択される際には、第1固定鍵500aが第1共通鍵550aとして暗号処理部110に入力される。
The
第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
第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
暗号処理部111は、暗号処理部110から出力される後述のセッション鍵SKに基づいて自身の初期化(自身の暗号アルゴリズムの初期化)を行う。初期化後の暗号処理部111は、自身の暗号機能(自身の暗号アルゴリズム)を使用してキーストリームKSを生成して出力する。言い換えれば、初期化後の暗号処理部111は、暗号処理を行ってキーストリームKSを生成して出力する。
The
演算回路112は、暗号処理部111から出力されるキーストリームKSと、ホスト装置30から出力される、暗号化されたコマンド350(以後、「暗号コマンド350」と呼ぶことがある)との排他的論路和を演算して出力する。これにより、ホスト装置30からの暗号コマンド350が復号化される。復号化された暗号コマンド350は、平文コマンド360としてコマンドデコーダ12に入力される。
The
また、演算回路112は、暗号処理部111から出力されるキーストリームKSと、第3選択回路115からの出力データ560との排他的論理和を演算して出力する。これにより、出力データ560が暗号化される。暗号化された出力データ560は、暗号データ570としてホスト装置30に出力される。
The
このように、演算回路112は、暗号処理部111から出力されるデータをキーストリームKSとして使用して、入力されるデータを暗号化あるいは復号化する。
As described above, the
コマンドデコーダ12は、入力される平文コマンド360をデコードして、当該平文コマンド360を解析する。コマンドデコーダ12は、入力される平文コマンド360を解析した結果、当該平文コマンド360がメモリアレイ13からデータを読み出すことを指示する読み出しコマンドである場合には、アドレス信号及びリード信号等の制御信号をメモリアレイ13に出力する。これにより、メモリアレイ13からメモリデータ400が出力される。メモリアレイ13には、例えば、複数のゲームプログラムや、各ゲームプログラムで使用される各種データなどが記憶されている。第3選択回路115からメモリデータ400が出力されると、演算回路112においてメモリデータ400が暗号化され、暗号化後のメモリデータ400がホスト装置30に入力される。ホスト装置30は、入力されるメモリデータ400にゲームプログラムが含まれている場合には、当該ゲームプログラムを実行する。
The
またコマンドデコーダ12は、入力される平文コマンド360をデコードして、当該平文コマンド360に含まれる、ホスト装置30が生成したホスト乱数600を抽出する。コマンドデコーダ12は、抽出したホスト乱数600を第2選択回路114に出力する。
In addition, the
ホスト装置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
またホスト側乱数生成装置では、乱数生成装置1と同様にして、ホスト側暗号処理装置が、自身の暗号機能とホスト側不確定回路から出力されるデータとを使用して一様性の高いホスト乱数600を生成する。ホスト装置30は、生成したホスト乱数600を含む所定のコマンドを半導体メモリ20に出力する。なお、ホスト側乱数生成装置は、半導体メモリ20の乱数生成装置1とは異なる方法でホスト乱数600を生成しても良い。
Further, in the host-side random number generation device, in the same manner as the random-
本実施の形態に係るメモリシステム50では、ホスト乱数600及びメモリ乱数200が鍵として使用される。ホスト装置30と半導体メモリ20との間で、ホスト乱数600及びメモリ乱数200の交換が行われることによって、鍵交換が行われる。
In the
<メモリシステムでの鍵交換について>
次に、ホスト装置30と半導体メモリ20との間で鍵交換が行われる際のメモリシステム50の動作について説明する。図3は、ホスト装置30と半導体メモリ20との間で鍵交換が行われる際の当該半導体メモリ20の動作を示すフローチャートである。
<About key exchange in the memory system>
Next, an operation of the
図3に示されるように、ステップs1において、半導体メモリ20では固定鍵500が使用されて暗号処理装置11についての初期化処理が行われる。この初期化処理は、ホスト装置30と半導体メモリ20との間で鍵交換を行うために必要な処理である。
As shown in FIG. 3, in step s <b> 1, the
ステップ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
またステップs1では、暗号処理部111が、入力されたセッション鍵SKに基づいて、自身の初期化(自身の暗号アルゴリズムを初期化)を行う。そして、初期化後の暗号処理部111は、自身の暗号機能を使用してキーストリームKSを生成して演算回路112に出力する。ステップs1では、暗号処理部111における、セッション鍵SKで初期化された暗号アルゴリズムの出力がキーストリームKSとなる。以後、このキーストリームKSを特に「鍵交換用キーストリームKS」と呼ぶ。
In step s1, the
ホスト装置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
ステップs2において、半導体メモリ20が暗号化された乱数生成コマンドを受信すると、ステップs3において、演算回路112は、鍵交換用キーストリームKSを使用して当該乱数生成コマンドを復号化する。復号化された乱数生成コマンドはコマンドデコーダ12に入力される。
In step s2, when the
コマンドデコーダ12において乱数生成コマンドが解析されると、ステップs4において、第1選択回路113が第1データ100aを選択して出力し、第2選択回路114が第2データ100bを選択して出力する。これにより、不確定回路10から出力されるデータ100が乱数生成用の共通鍵550(暫定の共通鍵550)として暗号処理部110に入力される。
When the
次にステップs5において、鍵を生成する鍵生成部として機能する暗号処理部110は、自身の暗号機能(自身の暗号アルゴリズム)と、入力されたデータ100(乱数生成用の共通鍵550)とを使用して、当該データ100よりも一様性の高いメモリ乱数200を生成して出力する。具体的には、暗号処理部110は、データ100に基づいて自身の初期化を行う。そして、初期化後の暗号処理部110は、自身の暗号機能を使用してメモリ乱数200を生成して出力する。ステップs5では、暗号処理部110における、データ100(一様性の低い乱数)に基づいて初期化された暗号アルゴリズムの出力が、一様性の高いメモリ乱数200となる。暗号アルゴリズムの出力については、暗号アルゴリズムの本質から予測不可能性を有することから、暗号アルゴリズムの出力では、“0”と“1”の出現確率の差が小さい。したがって、暗号処理部110において一様性の高いメモリ乱数200を生成することができる。
Next, in step s5, the
暗号処理部110でメモリ乱数200が生成されると、ステップs6において、第1選択回路113がメモリ乱数200を選択して出力する。これにより、メモリ乱数200が、鍵交換後に使用される正式な第1共通鍵550aとして暗号処理部110に入力される。
When the memory
次にステップ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
ホスト装置30に対して暗号化されたメモリ乱数200が入力されると、ホスト側暗号処理装置は、ホスト側鍵交換用キーストリームを使用して、当該メモリ乱数200を復号化する。また、ホスト装置30では、半導体メモリ20と同様にして、鍵として扱われるホスト乱数600が生成される。そして、ホスト装置30は、生成したホスト乱数600を含むホスト乱数コマンドを生成する。このホスト乱数コマンドは、ホスト側暗号処理装置において、ホスト側鍵交換用キーストリームに基づいて暗号化される。暗号化されたホスト乱数コマンドは半導体メモリ20に入力される。
When the encrypted memory
ステップs8において、半導体メモリ20が暗号化されたホスト乱数コマンドを受信すると、ステップs9において、暗号処理装置11は、鍵交換用キーストリームKSを使用して当該ホスト乱数コマンドを復号化する。復号化されたホスト乱数コマンドはコマンドデコーダ12に入力される。
In step s8, when the
次にステップs10において、コマンドデコーダ12は、ホスト乱数コマンドをデコードして、当該ホスト乱数コマンドからホスト乱数600を抽出する。ホスト乱数600が取得されると、ステップs11において、第2選択回路114は当該ホスト乱数600を選択して出力する。これにより、ホスト乱数600が、鍵交換後に使用される正式な第2共通鍵550bとして暗号処理部110に入力される。暗号処理部110には、メモリ乱数200及びホスト乱数600から成る正式な共通鍵550が入力される。
Next, in step s10, the
ホスト装置30においても、半導体メモリ20と同様に、ホスト側暗号処理装置における、暗号処理部110に相当する暗号処理部に対して、半導体メモリ20からのメモリ乱数200とホスト乱数600から成る正式な共通鍵が入力される。
Also in the host device 30, as in the
ホスト装置30は、半導体メモリ20に対して、正式な共通鍵550を使用して暗号処理装置11についての初期化処理を行うことを命令する初期化コマンドを生成する。そして、ホスト装置30では、ホスト側暗号処理装置が、ホスト側鍵交換用キーストリームを使用して初期化コマンドを暗号化する。暗号化された初期化コマンドは半導体メモリ20に入力される。
The host device 30 generates an initialization command that instructs the
ステップs12において、半導体メモリ20が暗号化された初期化コマンドを受信すると、ステップs13において、演算回路112は、鍵交換用キーストリームKSを使用して当該初期化コマンドを復号化する。復号化された初期化コマンドは、コマンドデコーダ12に入力される。
In step s12, when the
コマンドデコーダ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
ホスト装置30では、半導体メモリ20と同様にして、ホスト乱数600とメモリ乱数200とから成る正式な共通鍵が使用されてホスト側暗号処理装置についての初期化処理が行われる。初期化処理後のホスト側暗号処理装置では、半導体メモリ20に送信されるコマンドがキーストリームで暗号化されるとともに、半導体メモリ20からの暗号データ570(暗号化されたメモリデータ400)がキーストリームで復号化される。
In the host device 30, in the same manner as in the
このように、ホスト装置30と半導体メモリ20との間で鍵交換(本例では乱数の交換)を行うことによって、ホスト装置30と半導体メモリ20との間での相互認証を実現することができる。
In this manner, mutual authentication between the host device 30 and the
また、本例のように、暗号処理装置11の一部(暗号処理部110)を使って生成された一様性の高い乱数200をセキュリティおける機密性の高い情報として使用することによって、セキュリティにおける機密性の高い情報を低コストで生成することができる。
Further, as in this example, by using a highly uniform
また、本例のように、暗号処理装置11の一部を使って生成された一様性の高い乱数200を鍵として使用することによって、生成される鍵や交換される鍵のセキュリティを確保でき、その結果、暗号通信のセキュリティの確保を低コストで実現できる。
Further, as in this example, by using a highly uniform
また、鍵生成部として機能する暗号処理部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
なお、上記の例では、暗号処理部装置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
以上のように、乱数生成装置1、半導体メモリ20及びメモリシステム50は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
As described above, the random
1 乱数生成装置
10 不確定回路
11 暗号処理装置
20 半導体メモリ
30 ホスト装置
50 メモリシステム
DESCRIPTION OF
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.
前記暗号処理装置は、前記乱数の生成で使用する前記暗号アルゴリズムを前記不確定なデータに基づいて初期化し、初期化後の当該暗号アルゴリズムに基づいて前記乱数を生成する、乱数生成装置。 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.
前記乱数は、暗号で用いられる鍵として、あるいは認証で用いられる認証コードとして使用される、乱数生成装置。 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.
前記乱数は鍵として前記暗号処理装置に入力される、乱数生成装置。 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.
記憶部と
を備え、
前記暗号処理装置は、前記記憶部から読み出されたデータを暗号化する、記憶装置。 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.
前記記憶装置を制御するホスト装置と
を備える、情報処理システム。 A storage device according to claim 5;
An information processing system comprising: a host device that controls the storage device.
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)
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)
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 |
-
2017
- 2017-12-22 JP JP2017246427A patent/JP2018092174A/en active Pending
Patent Citations (6)
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)
Title |
---|
岡本 栄司, 暗号理論入門, vol. 初版3刷, JPN6019003657, 1 October 1996 (1996-10-01), JP, pages 33 - 48, ISSN: 0003973428 * |
Cited By (2)
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 |