JP6203532B2 - Semiconductor memory device and data processing system - Google Patents
Semiconductor memory device and data processing system Download PDFInfo
- Publication number
- JP6203532B2 JP6203532B2 JP2013101704A JP2013101704A JP6203532B2 JP 6203532 B2 JP6203532 B2 JP 6203532B2 JP 2013101704 A JP2013101704 A JP 2013101704A JP 2013101704 A JP2013101704 A JP 2013101704A JP 6203532 B2 JP6203532 B2 JP 6203532B2
- Authority
- JP
- Japan
- Prior art keywords
- random number
- key
- data
- number generation
- generation data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
本発明は、半導体記憶装置及びデータ処理システムに関する。 The present invention relates to a semiconductor memory device and a data processing system.
乱数は、暗号アルゴリズムにおける鍵の生成等に用いられる。真性乱数に近い乱数を得るための手法の一つとして、抵抗又はダイオードにおいて発生する雑音を利用して乱数を生成する方式が実用化されている。しかしながら、この方式では、低レベルの雑音をアナログ増幅回路によって増幅する必要があるため、アナログ増幅回路の回路規模が大きくなり、結果として乱数生成回路の回路規模が全体として増大する。また、アナログ回路を用いて乱数生成回路を構成する場合には、回路設計の難易度が高くなる。従って、回路規模の増大及び回路設計の複雑化を回避するためには、計算によって生成可能なディジタル乱数の使用が望まれる。 The random number is used for generating a key in an encryption algorithm. As one of the methods for obtaining a random number close to a true random number, a method of generating a random number using noise generated in a resistor or a diode has been put into practical use. However, in this method, since it is necessary to amplify low-level noise by the analog amplifier circuit, the circuit scale of the analog amplifier circuit increases, and as a result, the circuit scale of the random number generation circuit increases as a whole. Further, when the random number generation circuit is configured using an analog circuit, the difficulty of circuit design increases. Therefore, in order to avoid an increase in circuit scale and complexity in circuit design, it is desirable to use digital random numbers that can be generated by calculation.
ディジタル乱数としては、擬似乱数が広く用いられている。擬似乱数は、乱数生成回路において、シードを用いた所定のアルゴリズムによって生成される。 Pseudorandom numbers are widely used as digital random numbers. The pseudo-random number is generated by a predetermined algorithm using a seed in a random number generation circuit.
なお、下記特許文献1には、不確定論理回路と、不確定論理回路から出力されるディジタル値における「0」及び「1」の出現頻度を均等にするための一様化回路とを備える乱数生成回路が開示されている。
The following
擬似乱数は計算によって生成されるため、シード及びアルゴリズムが同一であれば、生成される擬似乱数の値も同一となる。そのため、同一のシード及びアルゴリズムを用いて生成した擬似乱数を相互認証等の認証コードとして使用する場合には、第三者にシード及びアルゴリズムを見破られることにより、セキュリティを破られる可能性がある。従って、セキュリティの堅牢性を向上するためには、再現不可能性を有する乱数を簡易に生成することが望まれる。 Since the pseudo random number is generated by calculation, if the seed and the algorithm are the same, the value of the generated pseudo random number is also the same. Therefore, when using pseudorandom numbers generated using the same seed and algorithm as an authentication code for mutual authentication or the like, there is a possibility that the security may be broken by seeing the seed and algorithm by a third party. Therefore, in order to improve the robustness of security, it is desired to easily generate a random number having non-reproducibility.
また、共通鍵暗号方式等を用いた暗号化通信では、第三者による鍵の解読を困難にすべく、通信毎に更新されるセッション鍵が共通鍵(又はその一部)として使用される。そして、セッション鍵としては、擬似乱数生成器によって生成した擬似乱数が使用されることが一般的である。擬似乱数生成器において同一のシード及びアルゴリズムを用いて擬似乱数を生成すると、生成される擬似乱数は周期性を持つことになる。従って、その周期性が利用されて第三者にセッション鍵が解読されることを回避するためには、再現不可能性を有する乱数を用いたセッション鍵を簡易に生成することが望まれる。 In encrypted communication using a common key cryptosystem or the like, a session key updated for each communication is used as a common key (or a part thereof) in order to make it difficult for a third party to decrypt the key. In general, a pseudo-random number generated by a pseudo-random number generator is used as the session key. When the pseudo random number is generated using the same seed and algorithm in the pseudo random number generator, the generated pseudo random number has periodicity. Therefore, in order to avoid that the session key is decrypted by a third party using the periodicity, it is desirable to easily generate a session key using a random number that cannot be reproduced.
本発明はかかる事情に鑑みて成されたものであり、再現不可能性を有する乱数を簡易に生成することが可能な半導体記憶装置を得ることを目的とする。また、ホスト装置と半導体記憶装置との間で鍵を交換するセキュリティ方式において、再現不可能性を有する乱数を用いたセッション鍵を簡易に生成することが可能で、かつセキュリティ強度が向上されたデータ処理システム及び半導体記憶装置を得ることを目的とする。 The present invention has been made in view of such circumstances, and an object thereof is to obtain a semiconductor memory device capable of easily generating a random number having non-reproducibility. In addition, in a security method in which a key is exchanged between a host device and a semiconductor storage device, it is possible to easily generate a session key using a random number having non-reproducibility and data with improved security strength An object is to obtain a processing system and a semiconductor memory device.
本発明の第1の態様に係る半導体記憶装置は、乱数の生成に用いる乱数生成用データが記憶されたメモリアレイと、前記メモリアレイから読み出した乱数生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成する乱数生成部と、乱数生成用データを更新するデータ更新部と、制御部と、を備える半導体記憶装置であって、前記データ更新部は、前記メモリアレイから読み出した第1の乱数生成用データを、前記乱数生成アルゴリズムとは異なるアルゴリズムによって更新することにより、当該第1の乱数生成用データに基づいて生成される第1の乱数より後に使用される第2の乱数を生成するための第2の乱数生成用データを生成し、前記制御部は、前記第2の乱数生成用データを前記メモリアレイに書き込み、前記乱数生成部による乱数の生成処理と、前記データ更新部による乱数生成用データの更新処理及び前記制御部による乱数生成用データの書き込み処理とは、並行して実行され、前記半導体記憶装置の電源遮断が要求されると、前記データ更新部による乱数生成用データの更新処理と前記制御部による乱数生成用データの書き込み処理とが自動的に実行されることを特徴とするものである。
A semiconductor memory device according to a first aspect of the present invention uses a memory array in which random number generation data used for generating random numbers is stored, and random number generation data read from the memory array as a seed. a random number generator for generating random numbers by generating algorithm, a data updating unit for updating the random number generation data, and a control unit, a semiconductor memory device Ru wherein the data updating unit, read from the memory array A second random number used after the first random number generated based on the first random number generation data by updating the first random number generation data with an algorithm different from the random number generation algorithm Generating second random number generation data for generating the second random number generation data, and writing the second random number generation data to the memory array A generation process of a random number by the random number generating unit, and the data updating unit updating process and the control unit random write processing for generating data by the random number generation data by is performed in parallel, the semiconductor memory device When power-off is requested, update processing of random number generation data by the data update unit and write processing of random number generation data by the control unit are automatically executed .
第1の態様に係る半導体記憶装置によれば、データ更新部は、メモリアレイから読み出した第1の乱数生成用データを更新することにより、第1の乱数より後に使用される第2の乱数を生成するための第2の乱数生成用データを生成し、制御部は、第2の乱数生成用データをメモリアレイに書き込む。従って、メモリアレイに記憶されている乱数生成用データが新たな乱数生成用データに更新されるため、更新される乱数生成用データに基づいて乱数を生成することができる。その結果、再現不可能性を有する乱数を簡易に生成することが可能となる。
また、第1の態様に係る半導体記憶装置によれば、乱数生成部は、メモリアレイから読み出した乱数生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成する。このように、更新される乱数生成用データをシードとして用いた乱数生成アルゴリズムによって乱数を生成することにより、乱数の真性度を担保することが可能となる。しかも、メモリアレイから読み出した乱数生成用データをそのまま乱数として使用するのではなく、当該乱数生成用データを用いた乱数生成アルゴリズムによって乱数を生成するため、メモリアレイに記憶されている乱数生成用データの一部が破損又は欠損している場合等であっても、生成される乱数の真性度を担保することが可能となる。
また、第1の態様に係る半導体記憶装置によれば、乱数生成部による乱数の生成処理と、データ更新部による乱数生成用データの更新処理及び制御部による乱数生成用データの書き込み処理とは、並行して実行される。従って、乱数の生成処理が完了した後に乱数生成用データの更新処理を開始する場合や、乱数生成用データの書き込み処理が完了した後に乱数の生成処理を開始する場合と比較すると、処理全体の所要時間を短縮することが可能となる。
また、第1の態様に係る半導体記憶装置によれば、半導体記憶装置の電源遮断が要求されると、データ更新部による乱数生成用データの更新処理と制御部による乱数生成用データの書き込み処理とが自動的に実行される。従って、半導体記憶装置の電源が再投入された後の最初の乱数生成においては、電源遮断前の自動更新によって書き込まれた新たな乱数生成用データに基づいて乱数を生成することが可能となる。
According to the semiconductor memory device of the first aspect, the data update unit updates the first random number generation data read from the memory array, thereby obtaining the second random number used after the first random number. The second random number generation data to be generated is generated, and the control unit writes the second random number generation data to the memory array. Accordingly, since the random number generation data stored in the memory array is updated to new random number generation data, a random number can be generated based on the updated random number generation data. As a result, it becomes possible to easily generate a random number having non-reproducibility.
Further, according to the semiconductor memory device of the first aspect, the random number generation unit generates a random number by a predetermined random number generation algorithm using the random number generation data read from the memory array as a seed. As described above, by generating a random number by a random number generation algorithm using the updated random number generation data as a seed, the authenticity of the random number can be ensured. Moreover, since the random number generation data read from the memory array is not used as a random number as it is, the random number generation data stored in the memory array is generated by a random number generation algorithm using the random number generation data. Even if a part of the random number is damaged or missing, it is possible to ensure the authenticity of the generated random number.
According to the semiconductor memory device of the first aspect, the random number generation process by the random number generation unit, the random number generation data update process by the data update unit, and the random number generation data write process by the control unit are: Run in parallel. Therefore, compared with the case where update processing of random number generation data is started after completion of random number generation processing or the case where random number generation processing is started after completion of writing processing of random number generation data, Time can be shortened.
In addition, according to the semiconductor memory device of the first aspect, when power-off of the semiconductor memory device is requested, update processing of random number generation data by the data update unit and write processing of random number generation data by the control unit Is automatically executed. Therefore, in the first random number generation after the power of the semiconductor memory device is turned on again, it is possible to generate a random number based on the new random number generation data written by the automatic update before power-off.
本発明の第2の態様に係る半導体記憶装置は、第1の態様に係る半導体記憶装置において特に、前記データ更新部は、前記第1の乱数生成用データとは異なる前記第2の乱数生成用データを生成することを特徴とするものである。 The semiconductor memory device according to the second aspect of the present invention is the semiconductor memory device according to the first aspect, in which the data update unit is different from the first random number generation data. It is characterized by generating data.
第2の態様に係る半導体記憶装置によれば、データ更新部は、第1の乱数生成用データとは異なる第2の乱数生成用データを生成する。従って、第1の乱数生成用データに基づいて生成される第1の乱数と、第2の乱数生成用データに基づいて生成される第2の乱数とを、互いに異ならせることができるため、再現不可能性を有する乱数を生成することが可能となる。 According to the semiconductor memory device of the second aspect, the data update unit generates second random number generation data different from the first random number generation data. Therefore, since the first random number generated based on the first random number generation data and the second random number generated based on the second random number generation data can be made different from each other, the reproduction is performed. It becomes possible to generate a random number having the impossibility.
本発明の第3の態様に係る半導体記憶装置は、第1又は第2の態様に係る半導体記憶装置において特に、前記制御部は、前記第2の乱数生成用データが前記メモリアレイに正しく書き込まれるまで、乱数生成用データの書き込み処理を繰り返し実行することを特徴とするものである。
In the semiconductor memory device according to the third aspect of the present invention, in particular, in the semiconductor memory device according to the first or second aspect, the control unit correctly writes the second random number generation data into the memory array. Up to this point, the random number generation data writing process is repeatedly executed.
第3の態様に係る半導体記憶装置によれば、制御部は、第2の乱数生成用データがメモリアレイに正しく書き込まれるまで、乱数生成用データの書き込み処理を繰り返し実行する。従って、意図しない電源断によって乱数生成用データの書き込み処理が未完了のまま中断した場合等であっても、電源の再投入後に乱数生成用データの書き込み処理を再開することにより、第2の乱数生成用データをメモリアレイに正しく書き込むことができる。その結果、次に乱数を生成する場合には乱数生成部は第2の乱数生成用データに基づいて乱数を生成することができるため、乱数の再現不可能性を担保することが可能となる。
According to the semiconductor memory device of the third aspect, the control unit repeatedly executes the random number generation data writing process until the second random number generation data is correctly written in the memory array. Accordingly, even if the random number generation data writing process is interrupted without being completed due to an unintended power cut, the second random number generation data writing process is resumed after the power is turned on again. The generation data can be correctly written in the memory array. As a result, when generating a random number next time, the random number generation unit can generate a random number based on the second random number generation data, and thus it is possible to ensure the non-reproducibility of the random number.
本発明の第4の態様に係る半導体記憶装置は、第1〜第3のいずれか一つの態様に係る半導体記憶装置において特に、前記メモリアレイには、乱数生成用データの初期値として、半導体記憶装置毎に異なる固有値が記憶されていることを特徴とするものである。
The semiconductor memory device according to the fourth aspect of the present invention is the semiconductor memory device according to any one of the first to third aspects, and in particular, the memory array includes a semiconductor memory as an initial value of random number generation data. A characteristic value that is different for each device is stored.
第4の態様に係る半導体記憶装置によれば、メモリアレイには、乱数生成用データの初期値として、半導体記憶装置毎に異なる固有値が記憶されている。従って、初回の乱数生成においても、半導体記憶装置毎に異なる乱数を乱数生成部によって生成することが可能となる。
According to the semiconductor memory device of the fourth aspect, the memory array stores different eigenvalues for each semiconductor memory device as the initial value of the random number generation data. Therefore, even in the initial random number generation, a random number different for each semiconductor memory device can be generated by the random number generation unit.
本発明の第5の態様に係る半導体記憶装置は、第1〜第4のいずれか一つの態様に係る半導体記憶装置において特に、乱数生成用データは、前記メモリアレイの記憶領域のうち、ホスト装置からのアクセスが禁止されている領域に記憶されることを特徴とするものである。
The semiconductor memory device according to the fifth aspect of the present invention is the semiconductor memory device according to any one of the first to fourth aspects, in particular, the random number generation data is a host device in the memory area of the memory array. It is stored in an area where access from is prohibited.
第5の態様に係る半導体記憶装置によれば、乱数生成用データは、メモリアレイの記憶領域のうち、ホスト装置からのアクセスが禁止されている領域に記憶される。従って、攻撃者がホスト装置を介してメモリアレイから乱数生成用データを読み出すことや、メモリアレイに記憶されている乱数生成用データを無効なデータによって上書きすることはできないため、セキュリティ性を向上することが可能となる。
According to the semiconductor memory device of the fifth aspect, the random number generation data is stored in an area where access from the host device is prohibited in the memory area of the memory array. Therefore, an attacker cannot read random number generation data from the memory array via the host device or overwrite the random number generation data stored in the memory array with invalid data, thus improving security. It becomes possible.
本発明の第6の態様に係る半導体記憶装置は、第1〜第5のいずれか一つの態様に係る半導体記憶装置において特に、前記半導体記憶装置の電源が投入されると、前記データ更新部による乱数生成用データの更新処理と前記制御部による乱数生成用データの書き込み処理とが自動的に実行されることを特徴とするものである。
The semiconductor memory device according to the sixth aspect of the present invention is the semiconductor memory device according to any one of the first to fifth aspects, particularly when the power of the semiconductor memory device is turned on. Random number generation data update processing and random number generation data write processing by the control unit are automatically executed.
第6の態様に係る半導体記憶装置によれば、半導体記憶装置の電源が投入されると、データ更新部による乱数生成用データの更新処理と制御部による乱数生成用データの書き込み処理とが自動的に実行される。従って、電源投入後の最初の乱数生成においては、自動更新によって書き込まれた新たな乱数生成用データに基づいて乱数を生成することが可能となる。
According to the semiconductor memory device of the sixth aspect, when the power of the semiconductor memory device is turned on, the update process of the random number generation data by the data update unit and the write process of the random number generation data by the control unit are automatically performed. To be executed. Therefore, in the first random number generation after the power is turned on, it is possible to generate a random number based on the new random number generation data written by the automatic update.
本発明の第7の態様に係るデータ処理システムは、ホスト装置と、前記ホスト装置との間で鍵を交換することにより、前記ホスト装置から受信したコマンドを当該鍵を用いて復号し、前記ホスト装置に送信するデータを当該鍵を用いて暗号化する半導体記憶装置と、を備え、前記半導体記憶装置は、前記ホスト装置との間で送受信するデータと、鍵の生成に用いる鍵生成用データとが記憶されたメモリアレイと、前記メモリアレイから読み出した鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、今回の鍵要求に対応して前記ホスト装置に送信する鍵を生成する鍵生成部と、鍵生成用データを更新するデータ更新部と、制御部と、を有し、前記半導体記憶装置が前記ホスト装置から鍵要求を受けた場合、前記鍵生成部は、その時点で前記メモリアレイに記憶されている第1の鍵生成用データに基づいて、今回の鍵要求に対応して前記ホスト装置に送信する鍵を生成し、前記制御部は、前記鍵生成部によって生成された鍵を暗号化して前記ホスト装置に送信し、前記データ更新部は、前記第1の鍵生成用データを、前記乱数生成アルゴリズムとは異なるアルゴリズムによって更新することにより、今回より後の鍵要求に対応して前記ホスト装置に送信する鍵を生成するための第2の鍵生成用データを生成し、前記制御部は、前記第2の鍵生成用データを前記メモリアレイに書き込み、前記鍵生成部による鍵の生成処理及び前記制御部による鍵の送信処理と、前記データ更新部による鍵生成用データの更新処理及び前記制御部による鍵生成用データの書き込み処理とは、並行して実行されることを特徴とするものである。
According to a seventh aspect of the present invention, there is provided a data processing system, comprising: exchanging a key between a host device and the host device, decrypting a command received from the host device using the key; A semiconductor storage device that encrypts data to be transmitted to the device using the key, the semiconductor storage device transmitting / receiving data to / from the host device, key generation data used for key generation, Is transmitted to the host device in response to the current key request by generating a random number by a predetermined random number generation algorithm using the memory array in which is stored and the key generation data read from the memory array as a seed. A key generation unit that generates a key to be generated, a data update unit that updates data for key generation, and a control unit. The key generation unit generates a key to be transmitted to the host device in response to the current key request based on the first key generation data stored in the memory array at that time The control unit encrypts the key generated by the key generation unit and transmits the encrypted key to the host device, and the data update unit differs from the random number generation algorithm in the first key generation data. Updating by the algorithm generates second key generation data for generating a key to be transmitted to the host device in response to a key request after this time, and the control unit generates the second key The generation data is written into the memory array, the key generation process by the key generation unit and the key transmission process by the control unit, the key generation data update process by the data update unit, and the control unit. The writing process of the key generation data, is characterized in that are executed in parallel.
第7の態様に係るデータ処理システムによれば、半導体記憶装置がホスト装置から鍵要求を受けた場合、データ更新部は、第1の鍵生成用データを更新することにより、今回より後の鍵要求に対応してホスト装置に送信する鍵を生成するための第2の鍵生成用データを生成し、制御部は、データ更新部によって生成された第2の鍵生成用データをメモリアレイに書き込む。従って、半導体記憶装置がホスト装置から鍵要求を受ける度に、メモリアレイに記憶されている鍵生成用データが新たな鍵生成用データに更新され、鍵生成部は、毎回更新される鍵生成用データに基づいて鍵を生成する。その結果、ホスト装置と半導体記憶装置との間で共通鍵を交換するセキュリティ方式において、再現不可能性を有する乱数を用いた共通鍵を簡易に生成でき、しかもセキュリティ強度を向上することが可能となる。
また、第8の態様に係るデータ処理システムによれば、乱数生成器は、メモリアレイから読み出した鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、今回の鍵要求に対応してホスト装置に送信する鍵を生成する。このように、毎回更新される鍵生成用データをシードとして用いた乱数生成アルゴリズムによって生成した乱数を共通鍵として使用することにより、共通鍵の真性度を担保することが可能となる。しかも、メモリアレイから読み出した鍵生成用データをそのまま共通鍵として使用するのではなく、当該鍵生成用データを用いた乱数生成アルゴリズムによって生成した乱数を共通鍵として使用するため、メモリアレイに記憶されている鍵生成用データの一部が破損又は欠損している場合等であっても、生成される共通鍵の真性度を担保することが可能となる。
また、第7の態様に係るデータ処理システムによれば、鍵生成部による鍵の生成処理及び制御部による鍵の送信処理と、データ更新部による鍵生成用データの更新処理及び制御部による鍵生成用データの書き込み処理とは、並行して実行される。従って、鍵の送信処理が完了した後に鍵生成用データの更新処理を開始する場合や、鍵生成用データの書き込み処理が完了した後に鍵の生成処理を開始する場合と比較すると、処理全体の所要時間を短縮することが可能となる。
According to the data processing system of the seventh aspect, when the semiconductor storage device receives a key request from the host device, the data update unit updates the first key generation data to thereby update the key after this time. The controller generates second key generation data for generating a key to be transmitted to the host device in response to the request, and the control unit writes the second key generation data generated by the data update unit to the memory array. . Therefore, each time the semiconductor memory device receives a key request from the host device, the key generation data stored in the memory array is updated to new key generation data, and the key generation unit is updated each time. Generate a key based on the data. As a result, in a security method in which a common key is exchanged between a host device and a semiconductor storage device, a common key using a non-reproducible random number can be easily generated, and security strength can be improved. Become.
According to the data processing system of the eighth aspect, the random number generator generates a random number by a predetermined random number generation algorithm using the key generation data read from the memory array as a seed. A key to be transmitted to the host device is generated in response to the key request. As described above, by using the random number generated by the random number generation algorithm using the key generation data updated every time as a seed, it is possible to ensure the authenticity of the common key. Moreover, since the key generation data read from the memory array is not used as it is as a common key, but a random number generated by a random number generation algorithm using the key generation data is used as a common key, it is stored in the memory array. Even if a part of the generated key generation data is damaged or missing, it is possible to ensure the authenticity of the generated common key.
According to the data processing system of the seventh aspect, the key generation process by the key generation unit and the key transmission process by the control unit, the key generation data update process by the data update unit, and the key generation by the control unit The data writing process is executed in parallel. Therefore, when the key generation data update process is started after the key transmission process is completed, or when the key generation process is started after the key generation data write process is completed, the entire process is required. Time can be shortened.
本発明の第8の態様に係るデータ処理システムは、第7の態様に係るデータ処理システムにおいて特に、前記データ更新部は、前記第1の鍵生成用データとは異なる前記第2の鍵生成用データを生成することを特徴とするものである。
The data processing system according to an eighth aspect of the present invention is the data processing system according to the seventh aspect, in particular, wherein the data update unit is different from the first key generation data. It is characterized by generating data.
第8の態様に係るデータ処理システムによれば、データ更新部は、第1の鍵生成用データとは異なる第2の鍵生成用データを生成する。従って、第1の鍵生成用データに基づいて生成される第1の鍵と、第2の鍵生成用データに基づいて生成される第2の鍵とを、互いに異ならせることができるため、再現不可能性を有する乱数を用いた共通鍵を生成することが可能となる。
According to the data processing system of the eighth aspect, the data update unit generates second key generation data different from the first key generation data. Accordingly, the first key generated based on the first key generation data and the second key generated based on the second key generation data can be made different from each other, and thus reproduced. It becomes possible to generate a common key using a random number having impossibility.
本発明の第9の態様に係るデータ処理システムは、第7又は第8の態様に係るデータ処理システムにおいて特に、前記制御部は、前記第2の鍵生成用データが前記メモリアレイに正しく書き込まれるまで、鍵生成用データの書き込み処理を繰り返し実行することを特徴とするものである。
In the data processing system according to the ninth aspect of the present invention, in particular, in the data processing system according to the seventh or eighth aspect, the control unit correctly writes the second key generation data to the memory array. Up to this point, the key generation data writing process is repeatedly executed.
第9の態様に係るデータ処理システムによれば、制御部は、第2の鍵生成用データがメモリアレイに正しく書き込まれるまで、鍵生成用データの書き込み処理を繰り返し実行する。従って、意図しない電源断によって鍵生成用データの書き込み処理が未完了のまま中断した場合等であっても、電源の再投入後に鍵生成用データの書き込み処理を再開することにより、第2の鍵生成用データをメモリアレイに正しく書き込むことができる。その結果、ホスト装置からの次回の鍵要求に対して鍵生成部は第2の鍵生成用データに基づいて鍵を生成することができるため、鍵の再現不可能性を担保することが可能となる。
According to the data processing system of the ninth aspect, the control unit repeatedly executes the key generation data writing process until the second key generation data is correctly written to the memory array. Accordingly, even if the key generation data writing process is interrupted without being completed due to an unintended power interruption, the second key can be recovered by restarting the key generation data writing process after the power is turned on again. The generation data can be correctly written in the memory array. As a result, the key generation unit can generate a key based on the second key generation data in response to the next key request from the host device, so that it is possible to ensure the non-reproducibility of the key. Become.
本発明の第10の態様に係るデータ処理システムは、第7〜第9のいずれか一つの態様に係るデータ処理システムにおいて特に、前記メモリアレイには、鍵生成用データの初期値として、半導体記憶装置毎に異なる固有値が記憶されていることを特徴とするものである。
A data processing system according to a tenth aspect of the present invention is the data processing system according to any one of the seventh to ninth aspects, in particular, the semiconductor array includes a semiconductor memory as an initial value of key generation data. A characteristic value that is different for each device is stored.
第10の態様に係るデータ処理システムによれば、メモリアレイには、鍵生成用データの初期値として、半導体記憶装置毎に異なる固有値が記憶されている。従って、ホスト装置からの初回の鍵要求に対しても、半導体記憶装置毎に異なる鍵を鍵生成部によって生成することが可能となる。
According to the data processing system of the tenth aspect, the memory array stores different eigenvalues for each semiconductor memory device as the initial value of the key generation data. Therefore, even for the first key request from the host device, a key different for each semiconductor memory device can be generated by the key generation unit.
本発明の第11の態様に係るデータ処理システムは、第7〜第10のいずれか一つの態様に係るデータ処理システムにおいて特に、鍵生成用データは、前記メモリアレイの記憶領域のうち、前記ホスト装置からのアクセスが禁止されている領域に記憶されることを特徴とするものである。
The data processing system according to an eleventh aspect of the present invention is the data processing system according to any one of the seventh to tenth aspects, in particular, the key generation data is the host in the storage area of the memory array. It is stored in an area where access from the apparatus is prohibited.
第11の態様に係るデータ処理システムによれば、鍵生成用データは、メモリアレイの記憶領域のうち、ホスト装置からのアクセスが禁止されている領域に記憶される。従って、攻撃者がホスト装置を介してメモリアレイから鍵生成用データを読み出すことや、メモリアレイに記憶されている鍵生成用データを無効なデータによって上書きすることはできないため、セキュリティ性を向上することが可能となる。
According to the data processing system of the eleventh aspect, the key generation data is stored in an area where access from the host device is prohibited in the storage area of the memory array. Therefore, the attacker cannot read out the key generation data from the memory array via the host device or overwrite the key generation data stored in the memory array with invalid data, thus improving security. It becomes possible.
本発明の第12の態様に係るデータ処理システムは、第7〜第11のいずれか一つの態様に係るデータ処理システムにおいて特に、前記半導体記憶装置の電源が投入されると、前記データ更新部による鍵生成用データの更新処理と前記制御部による鍵生成用データの書き込み処理とが自動的に実行されることを特徴とするものである。
A data processing system according to a twelfth aspect of the present invention is the data processing system according to any one of the seventh to eleventh aspects, particularly when the power of the semiconductor memory device is turned on. The key generation data update process and the key generation data write process by the control unit are automatically executed.
第12の態様に係るデータ処理システムによれば、半導体記憶装置の電源が投入されると、データ更新部による鍵生成用データの更新処理と制御部による鍵生成用データの書き込み処理とが自動的に実行される。従って、電源投入後の最初の鍵要求に対しては、自動更新によって書き込まれた新たな鍵生成用データに基づいて生成された鍵を、ホスト装置に送信することが可能となる。
According to the data processing system of the twelfth aspect, when the power of the semiconductor memory device is turned on, the key generation data update process by the data update unit and the key generation data write process by the control unit are automatically performed. To be executed. Therefore, for the first key request after the power is turned on, a key generated based on the new key generation data written by the automatic update can be transmitted to the host device.
本発明の第13の態様に係るデータ処理システムは、第7〜第12のいずれか一つの態様に係るデータ処理システムにおいて特に、前記半導体記憶装置の電源遮断が要求されると、前記データ更新部による鍵生成用データの更新処理と前記制御部による鍵生成用データの書き込み処理とが自動的に実行されることを特徴とするものである。
A data processing system according to a thirteenth aspect of the present invention is the data processing system according to any one of the seventh to twelfth aspects, particularly when the power to the semiconductor memory device is requested to be cut off. The key generation data update process by the control unit and the key generation data write process by the control unit are automatically executed.
第13の態様に係るデータ処理システムによれば、半導体記憶装置の電源遮断が要求されると、データ更新部による鍵生成用データの更新処理と制御部による鍵生成用データの書き込み処理とが自動的に実行される。従って、半導体記憶装置の電源が再投入された後の最初の鍵要求に対しては、電源遮断前の自動更新によって書き込まれた新たな鍵生成用データに基づいて生成された鍵を、ホスト装置に送信することが可能となる。
According to the data processing system of the thirteenth aspect, when the semiconductor memory device is requested to be turned off, the key generation data update process by the data update unit and the key generation data write process by the control unit are automatically performed. Is executed automatically. Therefore, for the first key request after the power of the semiconductor memory device is turned on again, a key generated based on the new key generation data written by the automatic update before the power is turned off is stored in the host device. Can be sent to.
本発明の第14の態様に係る半導体記憶装置は、鍵の生成に用いる鍵生成用データが記憶されたメモリアレイと、前記メモリアレイから読み出した鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、鍵を生成する鍵生成部と、鍵生成用データを更新するデータ更新部と、制御部と、を備え、前記鍵生成部は、前記メモリアレイに記憶されている第1の鍵生成用データに基づいて第1の鍵を生成し、前記データ更新部は、前記乱数生成アルゴリズムとは異なるアルゴリズムによって前記第1の鍵生成用データを更新することにより、前記第1の鍵より後に使用される第2の鍵を生成するための第2の鍵生成用データを生成し、前記制御部は、前記第2の鍵生成用データを前記メモリアレイに書き込み、前記鍵生成部による鍵の生成処理と、前記データ更新部による鍵生成用データの更新処理及び前記制御部による鍵生成用データの書き込み処理とは、並行して実行されることを特徴とするものである。
A semiconductor memory device according to a fourteenth aspect of the present invention uses a memory array storing key generation data used for key generation, and a predetermined random number using the key generation data read from the memory array as a seed. A key generation unit that generates a key by generating a random number using a generation algorithm, a data update unit that updates key generation data, and a control unit, wherein the key generation unit is stored in the memory array. A first key is generated based on the first key generation data, and the data update unit updates the first key generation data by an algorithm different from the random number generation algorithm. Generating second key generation data for generating a second key to be used after the first key, and the control unit stores the second key generation data in the memory array The key generation processing by the key generation unit, the key generation data update processing by the data update unit, and the key generation data write processing by the control unit are executed in parallel. To do.
第14の態様に係る半導体記憶装置によれば、データ更新部は、第1の鍵生成用データを更新することにより、第1の鍵より後に使用される第2の鍵を生成するための第2の鍵生成用データを生成し、制御部は、データ更新部によって生成された第2の鍵生成用データをメモリアレイに書き込む。従って、メモリアレイに記憶されている鍵生成用データが新たな鍵生成用データに更新され、次回の鍵生成において鍵生成部は、更新された鍵生成用データに基づいて鍵を生成する。その結果、再現不可能性を有する乱数を用いた鍵を簡易に生成でき、しかもセキュリティ強度を向上することが可能となる。
また、第14の態様に係る半導体記憶装置によれば、乱数生成器は、メモリアレイから読み出した鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、鍵を生成する。このように、更新された鍵生成用データをシードとして用いた乱数生成アルゴリズムによって生成した乱数を鍵として使用することにより、鍵の真性度を担保することが可能となる。しかも、メモリアレイから読み出した鍵生成用データをそのまま鍵として使用するのではなく、当該鍵生成用データを用いた乱数生成アルゴリズムによって生成した乱数を鍵として使用するため、メモリアレイに記憶されている鍵生成用データの一部が破損又は欠損している場合等であっても、生成される鍵の真性度を担保することが可能となる。
また、第14の態様に係る半導体記憶装置によれば、鍵生成部による鍵の生成処理と、データ更新部による鍵生成用データの更新処理及び制御部による鍵生成用データの書き込み処理とは、並行して実行される。従って、鍵の送信処理が完了した後に鍵生成用データの更新処理を開始する場合や、鍵生成用データの書き込み処理が完了した後に鍵の生成処理を開始する場合と比較すると、処理全体の所要時間を短縮することが可能となる。
According to the semiconductor memory device in the fourteenth aspect, the data updating unit updates the first key generation data, thereby generating the second key used after the first key. The second key generation data is generated, and the control unit writes the second key generation data generated by the data update unit to the memory array. Therefore, the key generation data stored in the memory array is updated to new key generation data, and in the next key generation, the key generation unit generates a key based on the updated key generation data. As a result, it is possible to easily generate a key using a random number that cannot be reproduced, and to improve the security strength.
According to the semiconductor memory device of the fourteenth aspect, the random number generator generates a random number by using a predetermined random number generation algorithm using the key generation data read from the memory array as a seed. Generate. In this way, it is possible to ensure the authenticity of the key by using the random number generated by the random number generation algorithm using the updated key generation data as a seed. Moreover, since the key generation data read from the memory array is not used as a key as it is, but a random number generated by a random number generation algorithm using the key generation data is used as a key, it is stored in the memory array. Even when a part of the key generation data is damaged or missing, it is possible to ensure the authenticity of the generated key.
According to the semiconductor storage device of the fourteenth aspect, the key generation process by the key generation unit, the key generation data update process by the data update unit, and the key generation data write process by the control unit are: Run in parallel. Therefore, when the key generation data update process is started after the key transmission process is completed, or when the key generation process is started after the key generation data write process is completed, the entire process is required. Time can be shortened.
本発明の第15の態様に係る半導体記憶装置は、第14の態様に係る半導体記憶装置において特に、前記データ更新部は、前記第1の鍵生成用データとは異なる前記第2の鍵生成用データを生成することを特徴とするものである。
The semiconductor memory device according to a fifteenth aspect of the present invention is the semiconductor memory device according to the fourteenth aspect, in which the data updating unit is different from the first key generation data. It is characterized by generating data.
第15の態様に係る半導体記憶装置によれば、データ更新部は、第1の鍵生成用データとは異なる第2の鍵生成用データを生成する。従って、第1の鍵生成用データに基づいて生成される第1の鍵と、第2の鍵生成用データに基づいて生成される第2の鍵とを、互いに異ならせることができるため、再現不可能性を有する乱数を用いた鍵を生成することが可能となる。
According to the semiconductor memory device in the fifteenth aspect, the data update unit generates second key generation data different from the first key generation data. Accordingly, the first key generated based on the first key generation data and the second key generated based on the second key generation data can be made different from each other, and thus reproduced. It becomes possible to generate a key using a random number having an impossibility.
本発明によれば、再現不可能性を有する乱数を簡易に生成することが可能な半導体記憶装置を得ることができる。また、ホスト装置と半導体記憶装置との間で鍵を交換するセキュリティ方式において、再現不可能性を有する乱数を用いた鍵を簡易に生成することが可能で、かつセキュリティ強度が向上されたデータ処理システム及び半導体記憶装置を得ることができる。 According to the present invention, it is possible to obtain a semiconductor memory device that can easily generate a random number having non-reproducibility. Further, in a security method in which a key is exchanged between a host device and a semiconductor storage device, it is possible to easily generate a key using a non-reproducible random number and to improve data security A system and a semiconductor memory device can be obtained.
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In addition, the element which attached | subjected the same code | symbol in different drawing shall show the same or corresponding element.
図1は、本発明の実施の形態に係るデータ処理システム100の構成を概略的に示す図である。データ処理システム100は、ホスト装置1と半導体記憶装置2とを備えて構成されている。半導体記憶装置2は、例えば、ホスト装置1に着脱自在に接続可能なメモリカードである。データ処理システム100は、ホスト装置1と半導体記憶装置2との間でセッション鍵としての共通鍵を交換することにより、両者間で送受信されるコマンドやデータの暗号化及び復号を行うセキュリティ方式(共通鍵暗号方式)を採用する。
FIG. 1 is a diagram schematically showing a configuration of a
<実施の形態1>
図2は、本発明の実施の形態1に係る半導体記憶装置2Aの構成を示す図である。図2の接続関係で示すように、半導体記憶装置2Aは、ホストインタフェース11、暗号化・復号部12、制御部13、乱数生成部14A、データ更新部15A、メモリインタフェース16、及びメモリアレイ17を備えて構成されている。本実施の形態1では、乱数生成部14Aが鍵生成部として機能する。メモリアレイ17は、例えばNAND型フラッシュメモリを用いて構成されている。但し、この例に限定されるものではなく、メモリアレイ17はNOR型フラッシュメモリ等を用いて構成されていても良い。
<
FIG. 2 is a diagram showing a configuration of the
メモリアレイ17は、全記憶領域の一部に、ホスト装置1からのアクセスが禁止されている禁止領域20を含んでいる。つまり、ホスト装置1は、メモリアレイ17に対するデータの読み出し及び書き込みを行う際に、データの読み出し先及び書き込み先として禁止領域20のアドレスを指定することができない。禁止領域20には、乱数生成用データX(本実施の形態1ではシード)が記憶されている。メモリアレイ17の全記憶領域のうち、禁止領域20以外の領域には、ホスト装置1と半導体記憶装置2Aとの間で送受信される任意のデータ(画像、音声、テキスト、コード、管理情報等)が記憶されている。
The
図3は、乱数生成部14Aの構成を示す図である。図3に示すように、乱数生成部14Aは乱数生成器21を有している。乱数生成器21は、禁止領域20から読み出された乱数生成用データをシードとして用いて、擬似乱数生成アルゴリズム、ハッシュ関数、共通鍵方式の暗号化アルゴリズム、又は公開鍵方式の暗号化アルゴリズム等の任意の乱数生成アルゴリズム(又はその組合せ)によって、ディジタル乱数であるセッション鍵(共通鍵)を生成する。
FIG. 3 is a diagram illustrating a configuration of the random
図4は、データ更新部15Aの構成を示す図である。図4に示すように、データ更新部15Aはカウンタ22を有している。カウンタ22は、禁止領域20から読み出された乱数生成用データをインクリメント又はデクリメントすることにより、更新後の乱数生成用データを生成する。図4に示した構成によると、カウンタ22を用いた簡易な構成によって、乱数生成用データの更新処理を実現することが可能となる。なお、乱数生成部14Aと同様の乱数生成器を用いてデータ更新部15Aを構成しても良い。またこの場合には、乱数生成部14Aとデータ更新部15Aとで同一の乱数生成器を共用しても良い。
FIG. 4 is a diagram illustrating a configuration of the
以下、図2〜4を参照して、本実施の形態1に係る半導体記憶装置2Aの動作について説明する。
The operation of the
システムの電源が投入されると、まず制御部13は、予め実装されている鍵K0を暗号化・復号部12に設定(初期化)する。また、ホスト装置1においても、半導体記憶装置2Aと共通の鍵K0が設定される。禁止領域20には、システムの電源が前回遮断された際に禁止領域20に記憶されていた最新の乱数生成用データX1が記憶されている。なお、半導体記憶装置2Aの工場出荷時点では、乱数生成用データXの初期値として、半導体記憶装置2A毎に異なる固有値が禁止領域20に記憶されている。
When the system is turned on, the
例えばメモリアレイ17に記憶されているデータをホスト装置1が読み出す前に、ホスト装置1は、共通鍵を更新するために半導体記憶装置2Aに対して鍵要求を送信する。具体的にホスト装置1は、鍵の更新を要求するための乱数生成コマンドC0Aを生成した後、当該乱数生成コマンドC0Aを鍵K0を用いて暗号化することにより、暗号化乱数生成コマンドC0Aを生成する。そして、当該暗号化乱数生成コマンドC0Aを、半導体記憶装置2Aに送信する。
For example, before the
暗号化乱数生成コマンドC0Aは、ホストインタフェース11を介して暗号化・復号部12に入力される。次に暗号化・復号部12は、暗号化乱数生成コマンドC0Aを鍵K0を用いて復号し、復号後の乱数生成コマンドC0Aを制御部13に入力する。
The encrypted random number generation command C0A is input to the encryption /
次に制御部13は、乱数生成コマンドC0Aに基づいて、禁止領域20から乱数生成用データX1を読み出すための読み出し要求R1を生成する。
Next, the
読み出し要求R1はメモリインタフェース16を介してメモリアレイ17に入力され、その時点で禁止領域20に記憶されている乱数生成用データX1がメモリアレイ17から読み出される。
The read request R1 is input to the
乱数生成用データX1は、メモリインタフェース16を介して乱数生成部14A及びデータ更新部15Aに入力される。
The random number generation data X1 is input to the random
次に乱数生成部14Aは、乱数生成用データX1に基づいて、今回の鍵要求に対応してホスト装置1に送信するセッション鍵K1を生成する。具体的に、乱数生成器21は、乱数生成用データX1をシードとして用いて、上記擬似乱数生成アルゴリズム等の乱数生成アルゴリズムによって乱数を生成することにより、セッション鍵K1を生成する。乱数生成部14Aは、乱数生成用データX1に基づいて生成したセッション鍵K1を、制御部13に入力する。次に制御部13は、セッション鍵K1を暗号化・復号部12に入力する。次に暗号化・復号部12は、セッション鍵K1を鍵K0を用いて暗号化する。次に制御部13は、暗号化・復号部12によって生成された暗号化セッション鍵K1を、ホストインタフェース11を介してホスト装置1に送信する。
Next, the random
また、データ更新部15Aは、乱数生成用データX1を更新することにより、次回(又はそれ以降。以下同様)の鍵要求に対応してホスト装置1に送信するセッション鍵K2を生成するための乱数生成用データX2を生成する。具体的に、カウンタ22は、乱数生成用データX1をインクリメント又はデクリメントすることにより、乱数生成用データX1とは異なる乱数生成用データX2を生成する。データ更新部15Aは、更新後の乱数生成用データX2を、制御部13に入力する。次に制御部13は、禁止領域20に乱数生成用データX2を書き込むための書き込み要求W2を生成する。書き込み要求W2はメモリインタフェース16を介してメモリアレイ17に入力され、禁止領域20に記憶されている乱数生成用データX1が、更新後の乱数生成用データX2によって上書きされる。ここで制御部13は、禁止領域20に記憶されている乱数生成用データX1が乱数生成用データX2によって正しく上書きされるまで、乱数生成用データX2の上書き処理を繰り返し実行する。具体的に制御部13は、上書き処理の完了後に乱数生成用データX2を禁止領域20から読み出し、当該乱数生成用データX2の内容が、データ更新部15Aから入力された乱数生成用データX2の内容と同一であるか否かを判定(ベリファイ)する。そして、両データの内容が同一となるまで乱数生成用データX2の上書き処理を繰り返し実行する。なお、データ更新部15Aによって更新される乱数生成用データの値としては、過去に使用された値を回避して常に未使用の値を採用するのが望ましいが、カウンタ値に上限がある場合等には過去に使用された値を採用しても良い。また、メモリアレイ17の同一領域に対するアクセス集中に起因する不良発生を回避すべく、更新後の乱数生成用データを書き込むための領域を禁止領域20内に複数箇所設けても良い。
Further, the
なお、乱数生成部14Aによるセッション鍵K1の生成処理及び制御部13によるホスト装置1へのセッション鍵K1の送信処理と、データ更新部15Aによる乱数生成用データX2の更新処理及び制御部13による乱数生成用データX2の上書き処理とは、並行して実行される。つまり、セッション鍵K1の生成処理及び乱数生成用データX2の更新処理は、同時に実行が開始される。従って、例えば乱数生成用データX2の上書き処理に伴う書き込みレイテンシ期間が長い場合には、セッション鍵K1の生成処理及びセッション鍵K1の送信処理は当該書き込みレイテンシ期間内に実行されることとなる。
Note that the generation process of the session key K1 by the random
次にホスト装置1は、暗号化セッション鍵K1を鍵K0を用いて復号することにより、更新後のセッション鍵K1を取得する。
Next, the
次にホスト装置1は、セッション鍵K1の設定(初期化)を要求するための初期化コマンドC0Bを生成した後、当該初期化コマンドC0Bを鍵K0を用いて暗号化することにより、暗号化初期化コマンドC0Bを生成する。そして、当該暗号化初期化コマンドC0Bを、半導体記憶装置2Aに送信する。
Next, the
暗号化初期化コマンドC0Bは、ホストインタフェース11を介して暗号化・復号部12に入力される。次に暗号化・復号部12は、暗号化初期化コマンドC0Bを鍵K0を用いて復号し、復号後の初期化コマンドC0Bを制御部13に入力する。
The encryption initialization command C0B is input to the encryption /
次に制御部13は、初期化コマンドC0Bに基づく設定信号D1によって、暗号化・復号部12にセッション鍵K1を設定する。また、ホスト装置1においても、半導体記憶装置2Aと共通のセッション鍵K1が設定される。以上の処理により、ホスト装置1及び半導体記憶装置2Aの共通鍵が鍵K0からセッション鍵K1に更新される。その後、セッション鍵K1を用いて、ホスト装置1と半導体記憶装置2Aとの間でコマンド及びデータの暗号化通信が実行される。
Next, the
その後、セッション鍵を再更新して暗号化通信を行う場合には、ホスト装置1は、共通鍵を更新するために半導体記憶装置2Aに対して鍵要求を送信する。具体的にホスト装置1は、暗号化乱数生成コマンドC1Aを半導体記憶装置2Aに送信する。
Thereafter, when performing encrypted communication by re-updating the session key, the
暗号化乱数生成コマンドC1Aは、ホストインタフェース11を介して暗号化・復号部12に入力される。次に暗号化・復号部12は、暗号化乱数生成コマンドC1Aをセッション鍵K1を用いて復号し、復号後の乱数生成コマンドC1Aを制御部13に入力する。
The encrypted random number generation command C1A is input to the encryption /
次に制御部13は、乱数生成コマンドC1Aに基づいて、禁止領域20から乱数生成用データX2を読み出すための読み出し要求R2を生成する。
Next, the
読み出し要求R2はメモリインタフェース16を介してメモリアレイ17に入力され、その時点で禁止領域20に記憶されている乱数生成用データX2がメモリアレイ17から読み出される。
The read request R2 is input to the
乱数生成用データX2は、メモリインタフェース16を介して乱数生成部14A及びデータ更新部15Aに入力される。
The random number generation data X2 is input to the random
次に乱数生成部14Aは、乱数生成用データX2に基づいて、今回の鍵要求に対応してホスト装置1に送信するセッション鍵K2を生成する。乱数生成部14Aは、乱数生成用データX2に基づいて生成したセッション鍵K2を、制御部13に入力する。次に制御部13は、セッション鍵K2を暗号化・復号部12に入力する。次に暗号化・復号部12は、セッション鍵K2をセッション鍵K1を用いて暗号化する。次に制御部13は、暗号化・復号部12によって生成された暗号化セッション鍵K2を、ホストインタフェース11を介してホスト装置1に送信する。
Next, the random
また、データ更新部15Aは、乱数生成用データX2を更新することにより、次回の鍵要求に対応してホスト装置1に送信するセッション鍵K3を生成するための乱数生成用データX3を生成する。データ更新部15Aは、更新後の乱数生成用データX3を、制御部13に入力する。次に制御部13は、禁止領域20に乱数生成用データX3を書き込むための書き込み要求W3を生成する。書き込み要求W3はメモリインタフェース16を介してメモリアレイ17に入力され、禁止領域20に記憶されている乱数生成用データX2が、更新後の乱数生成用データX3によって上書きされる。ここで制御部13は、禁止領域20に記憶されている乱数生成用データX2が乱数生成用データX3によって正しく上書きされるまで、乱数生成用データX3の上書き処理を繰り返し実行する。
In addition, the
次にホスト装置1は、暗号化セッション鍵K2をセッション鍵K1を用いて復号することにより、更新後のセッション鍵K2を取得する。
Next, the
次にホスト装置1は、セッション鍵K2の設定(初期化)を要求するための初期化コマンドC1Bを生成した後、当該初期化コマンドC1Bをセッション鍵K1を用いて暗号化することにより、暗号化初期化コマンドC1Bを生成する。そして、当該暗号化初期化コマンドC1Bを、半導体記憶装置2Aに送信する。
Next, the
暗号化初期化コマンドC1Bは、ホストインタフェース11を介して暗号化・復号部12に入力される。次に暗号化・復号部12は、暗号化初期化コマンドC1Bをセッション鍵K1を用いて復号し、復号後の初期化コマンドC1Bを制御部13に入力する。
The encryption initialization command C1B is input to the encryption /
次に制御部13は、初期化コマンドC1Bに基づく設定信号D2によって、暗号化・復号部12にセッション鍵K2を設定する。また、ホスト装置1においても、半導体記憶装置2Aと共通のセッション鍵K2が設定される。以上の処理により、ホスト装置1及び半導体記憶装置2Aの共通鍵がセッション鍵K1からセッション鍵K2に更新される。その後、セッション鍵K2を用いて、ホスト装置1と半導体記憶装置2Aとの間でコマンド及びデータの暗号化通信が実行される。
Next, the
以降は同様に、ホスト装置1から半導体記憶装置2Aに鍵要求が送信される度に、ホスト装置1及び半導体記憶装置2Aにおいて共通鍵が更新される。
Thereafter, similarly, each time a key request is transmitted from the
<実施の形態2>
図5は、本発明の実施の形態2に係る半導体記憶装置2Bの構成を示す図である。図5の接続関係で示すように、半導体記憶装置2Bは、ホストインタフェース11、暗号化・復号部12、制御部13、データ更新部15B、メモリインタフェース16、及びメモリアレイ17を備えて構成されている。本実施の形態2では、データ更新部15Bが鍵生成部として機能する。メモリアレイ17の禁止領域20には、乱数生成用データY(本実施の形態2では乱数)が記憶されている。
<
FIG. 5 is a diagram showing a configuration of the
図6は、データ更新部15Bの構成を示す図である。図6に示すように、データ更新部15Bは乱数生成器23を有している。乱数生成器23は、禁止領域20から読み出された乱数生成用データをシードとして用いて、擬似乱数生成アルゴリズム、ハッシュ関数、共通鍵方式の暗号化アルゴリズム、又は公開鍵方式の暗号化アルゴリズム等の任意の乱数生成アルゴリズム(又はその組合せ)によって、ディジタル乱数である新たな乱数生成用データを生成する。また、データ更新部15Bは、禁止領域20から読み出された乱数生成用データを、そのままセッション鍵として出力する。
FIG. 6 is a diagram illustrating a configuration of the
以下、図5,6を参照して、本実施の形態2に係る半導体記憶装置2Bの動作について説明する。
Hereinafter, the operation of the
システムの電源が投入されると、まず制御部13は、予め実装されている鍵K0を暗号化・復号部12に設定(初期化)する。また、ホスト装置1においても、半導体記憶装置2Bと共通の鍵K0が設定される。禁止領域20には、システムの電源が前回遮断された際に禁止領域20に記憶されていた最新の乱数生成用データY1が記憶されている。なお、半導体記憶装置2Bの工場出荷時点では、乱数生成用データYの初期値として、半導体記憶装置2B毎に異なる固有値が禁止領域20に記憶されている。
When the system is turned on, the
例えばメモリアレイ17に記憶されているデータをホスト装置1が読み出す前に、ホスト装置1は、共通鍵を更新するために半導体記憶装置2Bに対して鍵要求を送信する。具体的にホスト装置1は、鍵の更新を要求するための乱数生成コマンドC0Aを生成した後、当該乱数生成コマンドC0Aを鍵K0を用いて暗号化することにより、暗号化乱数生成コマンドC0Aを生成する。そして、当該暗号化乱数生成コマンドC0Aを、半導体記憶装置2Bに送信する。
For example, before the
暗号化乱数生成コマンドC0Aは、ホストインタフェース11を介して暗号化・復号部12に入力される。次に暗号化・復号部12は、暗号化乱数生成コマンドC0Aを鍵K0を用いて復号し、復号後の乱数生成コマンドC0Aを制御部13に入力する。
The encrypted random number generation command C0A is input to the encryption /
次に制御部13は、乱数生成コマンドC0Aに基づいて、禁止領域20から乱数生成用データY1を読み出すための読み出し要求R1を生成する。
Next, the
読み出し要求R1はメモリインタフェース16を介してメモリアレイ17に入力され、その時点で禁止領域20に記憶されている乱数生成用データY1がメモリアレイ17から読み出される。
The read request R1 is input to the
乱数生成用データY1は、メモリインタフェース16を介してデータ更新部15Bに入力される。
The random number generation data Y1 is input to the
次にデータ更新部15Bは、乱数生成用データY1に基づいて、今回の鍵要求に対応してホスト装置1に送信するセッション鍵K1を生成する。本実施の形態2では乱数生成用データY1自身が乱数であるため、データ更新部15Bは、メモリアレイ17から読み出した乱数生成用データY1をそのまま、今回の鍵要求に対応してホスト装置1に送信するセッション鍵K1として出力する。データ更新部15Bは、乱数生成用データY1をセッション鍵K1として、制御部13に入力する。次に制御部13は、セッション鍵K1を暗号化・復号部12に入力する。次に暗号化・復号部12は、セッション鍵K1を鍵K0を用いて暗号化する。次に制御部13は、暗号化・復号部12によって生成された暗号化セッション鍵K1を、ホストインタフェース11を介してホスト装置1に送信する。
Next, the
また、データ更新部15Bは、乱数生成用データY1を更新することにより、次回の鍵要求に対応してホスト装置1に送信するセッション鍵K2を生成するための乱数生成用データY2を生成する。具体的に、乱数生成器23は、乱数生成用データY1をシードとして用いて、上記擬似乱数生成アルゴリズム等の乱数生成アルゴリズムによって新たな乱数生成用データY2を生成する。データ更新部15Bは、更新後の乱数生成用データY2を、制御部13に入力する。次に制御部13は、禁止領域20に乱数生成用データY2を書き込むための書き込み要求W2を生成する。書き込み要求W2はメモリインタフェース16を介してメモリアレイ17に入力され、禁止領域20に記憶されている乱数生成用データY1が、更新後の乱数生成用データY2によって上書きされる。ここで制御部13は、禁止領域20に記憶されている乱数生成用データY1が乱数生成用データY2によって正しく上書きされるまで、乱数生成用データY2の上書き処理を繰り返し実行する。
In addition, the
次にホスト装置1は、暗号化セッション鍵K1を鍵K0を用いて復号することにより、更新後のセッション鍵K1を取得する。
Next, the
次にホスト装置1は、セッション鍵K1の設定(初期化)を要求するための初期化コマンドC0Bを生成した後、当該初期化コマンドC0Bを鍵K0を用いて暗号化することにより、暗号化初期化コマンドC0Bを生成する。そして、当該暗号化初期化コマンドC0Bを、半導体記憶装置2Bに送信する。
Next, the
暗号化初期化コマンドC0Bは、ホストインタフェース11を介して暗号化・復号部12に入力される。次に暗号化・復号部12は、暗号化初期化コマンドC0Bを鍵K0を用いて復号し、復号後の初期化コマンドC0Bを制御部13に入力する。
The encryption initialization command C0B is input to the encryption /
次に制御部13は、初期化コマンドC0Bに基づく設定信号D1によって、暗号化・復号部12にセッション鍵K1を設定する。また、ホスト装置1においても、半導体記憶装置2Bと共通のセッション鍵K1が設定される。以上の処理により、ホスト装置1及び半導体記憶装置2Bの共通鍵が鍵K0からセッション鍵K1に更新される。その後、セッション鍵K1を用いて、ホスト装置1と半導体記憶装置2Bとの間でコマンド及びデータの暗号化通信が実行される。
Next, the
その後、セッション鍵を再更新して暗号化通信を行う場合には、ホスト装置1は、共通鍵を更新するために半導体記憶装置2Bに対して鍵要求を送信する。具体的にホスト装置1は、暗号化乱数生成コマンドC1Aを半導体記憶装置2Bに送信する。
Thereafter, when performing encrypted communication by re-updating the session key, the
暗号化乱数生成コマンドC1Aは、ホストインタフェース11を介して暗号化・復号部12に入力される。次に暗号化・復号部12は、暗号化乱数生成コマンドC1Aをセッション鍵K1を用いて復号し、復号後の乱数生成コマンドC1Aを制御部13に入力する。
The encrypted random number generation command C1A is input to the encryption /
次に制御部13は、乱数生成コマンドC1Aに基づいて、禁止領域20から乱数生成用データY2を読み出すための読み出し要求R2を生成する。
Next, the
読み出し要求R2はメモリインタフェース16を介してメモリアレイ17に入力され、その時点で禁止領域20に記憶されている乱数生成用データY2がメモリアレイ17から読み出される。
The read request R2 is input to the
乱数生成用データY2は、メモリインタフェース16を介してデータ更新部15Bに入力される。
The random number generation data Y2 is input to the
次にデータ更新部15Bは、乱数生成用データY2に基づいて、今回の鍵要求に対応してホスト装置1に送信するセッション鍵K2を生成する。データ更新部15Bは、乱数生成用データY2に基づいて生成したセッション鍵K2を、制御部13に入力する。次に制御部13は、セッション鍵K2を暗号化・復号部12に入力する。次に暗号化・復号部12は、セッション鍵K2をセッション鍵K1を用いて暗号化する。次に制御部13は、暗号化・復号部12によって生成された暗号化セッション鍵K2を、ホストインタフェース11を介してホスト装置1に送信する。
Next, the
また、データ更新部15Bは、乱数生成用データY2を更新することにより、次回の鍵要求に対応してホスト装置1に送信するセッション鍵K3を生成するための乱数生成用データY3を生成する。データ更新部15Bは、更新後の乱数生成用データY3を、制御部13に入力する。次に制御部13は、禁止領域20に乱数生成用データY3を書き込むための書き込み要求W3を生成する。書き込み要求W3はメモリインタフェース16を介してメモリアレイ17に入力され、禁止領域20に記憶されている乱数生成用データY2が、更新後の乱数生成用データY3によって上書きされる。ここで制御部13は、禁止領域20に記憶されている乱数生成用データY2が乱数生成用データY3によって正しく上書きされるまで、乱数生成用データY3の上書き処理を繰り返し実行する。
Further, the
次にホスト装置1は、暗号化セッション鍵K2をセッション鍵K1を用いて復号することにより、更新後のセッション鍵K2を取得する。
Next, the
次にホスト装置1は、セッション鍵K2の設定(初期化)を要求するための初期化コマンドC1Bを生成した後、当該初期化コマンドC1Bをセッション鍵K1を用いて暗号化することにより、暗号化初期化コマンドC1Bを生成する。そして、当該暗号化初期化コマンドC1Bを、半導体記憶装置2Bに送信する。
Next, the
暗号化初期化コマンドC1Bは、ホストインタフェース11を介して暗号化・復号部12に入力される。次に暗号化・復号部12は、暗号化初期化コマンドC1Bをセッション鍵K1を用いて復号し、復号後の初期化コマンドC1Bを制御部13に入力する。
The encryption initialization command C1B is input to the encryption /
次に制御部13は、初期化コマンドC1Bに基づく設定信号D2によって、暗号化・復号部12にセッション鍵K2を設定する。また、ホスト装置1においても、半導体記憶装置2Bと共通のセッション鍵K2が設定される。以上の処理により、ホスト装置1及び半導体記憶装置2Bの共通鍵がセッション鍵K1からセッション鍵K2に更新される。その後、セッション鍵K2を用いて、ホスト装置1と半導体記憶装置2Bとの間でコマンド及びデータの暗号化通信が実行される。
Next, the
以降は同様に、ホスト装置1から半導体記憶装置2Bに鍵要求が送信される度に、ホスト装置1及び半導体記憶装置2Bにおいて共通鍵が更新される。
Thereafter, similarly, every time a key request is transmitted from the
<変形例>
上記実施の形態1,2では、半導体記憶装置2A,2Bは、ホスト装置1から鍵要求を受けた時に、データ更新部15A,15Bによる乱数生成用データの更新処理と制御部13による乱数生成用データの上書き処理とを実行した。
<Modification>
In the first and second embodiments, when the
これに加えて、システムの電源が投入されると、電源投入の直後に乱数生成用データの更新処理及び上書き処理を自動的に(つまりホスト装置1からの乱数生成コマンドの受信を待つことなく)実行しても良い。 In addition, when the system is turned on, immediately after the power is turned on, the random number generation data is updated and overwritten automatically (that is, without waiting for reception of a random number generation command from the host device 1). May be executed.
また、これに加えて、システムの電源遮断が要求されると、電源遮断の直前に乱数生成用データの更新処理及び上書き処理を自動的に実行しても良い。 In addition to this, when the power-off of the system is requested, the random number generation data update process and the overwrite process may be automatically executed immediately before the power-off.
<まとめ>
上記実施の形態1,2に係る半導体記憶装置2A,2Bによれば、データ更新部15A,15Bは、メモリアレイ17から読み出した第1の乱数生成用データX1,Y1を更新することにより、第1の乱数(セッション鍵K1)より後に使用される第2の乱数(セッション鍵K2)を生成するための第2の乱数生成用データX2,Y2を生成する。また、制御部13は、メモリアレイ17に記憶されている第1の乱数生成用データX1,Y1を、第2の乱数生成用データX2,Y2によって上書きする。従って、メモリアレイ17に記憶されている乱数生成用データX1,Y1が新たな乱数生成用データX2,Y2に更新されるため、更新される乱数生成用データに基づいて乱数を生成することができる。その結果、再現不可能性を有する乱数を簡易に生成することが可能となる。
<Summary>
According to the
同様に上記実施の形態1,2に係るデータ処理システム100によれば、半導体記憶装置2A,2Bがホスト装置1から鍵要求を受けた場合、データ更新部15A,15Bは、第1の乱数生成用データ(鍵生成用データ)X1,Y1を更新することにより、今回より後の鍵要求に対応してホスト装置1に送信するセッション鍵K2を生成するための第2の乱数生成用データX2,Y2を生成する。また、制御部13は、メモリアレイ17に記憶されている第1の乱数生成用データX1,Y1を、データ更新部15A,15Bによって生成された第2の乱数生成用データX2,Y2によって上書きする。従って、半導体記憶装置2A,2Bがホスト装置1から鍵要求を受ける度に、メモリアレイ17に記憶されている乱数生成用データが新たな乱数生成用データに更新され、乱数生成部(鍵生成部)14A,14Bは、毎回更新される乱数生成用データに基づいてセッション鍵を生成する。その結果、ホスト装置1と半導体記憶装置2A,2Bとの間で共通鍵を交換するセキュリティ方式において、再現不可能性を有する乱数を用いた共通鍵を簡易に生成でき、しかもセキュリティ強度を向上することが可能となる。
Similarly, according to the
また、上記実施の形態1,2に係る半導体記憶装置2A,2B及びデータ処理システム100によれば、データ更新部15A,15Bは、第1の乱数生成用データX1,Y1とは異なる第2の乱数生成用データX2,Y2を生成する。従って、第1の乱数生成用データX1,Y1に基づいて生成される第1の乱数と、第2の乱数生成用データX2,Y2に基づいて生成される第2の乱数とを、互いに異ならせることができるため、再現不可能性を有する乱数を生成することが可能となる。
In addition, according to the
また、上記実施の形態1に係る半導体記憶装置2Aによれば、乱数生成器21は、メモリアレイ17から読み出した乱数生成用データX1,X2をシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成する。このように、更新される乱数生成用データX1,X2をシードとして用いた乱数生成アルゴリズムによって乱数を生成することにより、乱数の真性度を担保することが可能となる。しかも、メモリアレイ17から読み出した乱数生成用データX1,X2をそのまま乱数として使用するのではなく、当該乱数生成用データX1,X2を用いた乱数生成アルゴリズムによって乱数を生成するため、メモリアレイ17に記憶されている乱数生成用データX1,X2の一部が破損又は欠損している場合等であっても、生成される乱数の真性度を担保することが可能となる。
Further, according to the
同様に上記実施の形態1に係るデータ処理システム100によれば、乱数生成器21は、メモリアレイ17から読み出した乱数生成用データX1,X2をシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、今回の鍵要求に対応してホスト装置1に送信するセッション鍵K1,K2を生成する。このように、毎回更新される乱数生成用データX1,X2をシードとして用いた乱数生成アルゴリズムによって生成した乱数を共通鍵として使用することにより、共通鍵の真性度を担保することが可能となる。しかも、メモリアレイ17から読み出した乱数生成用データX1,X2をそのまま共通鍵として使用するのではなく、当該乱数生成用データX1,X2を用いた乱数生成アルゴリズムによって生成した乱数を共通鍵として使用するため、メモリアレイ17に記憶されている乱数生成用データX1,X2の一部が破損又は欠損している場合等であっても、生成される共通鍵の真性度を担保することが可能となる。
Similarly, according to the
また、上記実施の形態1,2に係る半導体記憶装置2A,2Bによれば、乱数生成部14A,14Bによる乱数の生成処理と、データ更新部15A,15Bによる乱数生成用データの更新処理及び制御部13による乱数生成用データの上書き処理とは、並行して実行される。従って、乱数の生成処理が完了した後に乱数生成用データの更新処理を開始する場合や、乱数生成用データの上書き処理が完了した後に乱数の生成処理を開始する場合と比較すると、処理全体の所要時間を短縮することが可能となる。
Also, according to the
同様に上記実施の形態1,2に係るデータ処理システム100によれば、乱数生成部14A,14Bによるセッション鍵の生成処理及び制御部13によるセッション鍵の送信処理と、データ更新部15A,15Bによる乱数生成用データの更新処理及び制御部13による乱数生成用データの上書き処理とは、並行して実行される。従って、セッション鍵の送信処理が完了した後に乱数生成用データの更新処理を開始する場合や、乱数生成用データの上書き処理が完了した後にセッション鍵の生成処理を開始する場合と比較すると、処理全体の所要時間を短縮することが可能となる。
Similarly, according to the
また、上記実施の形態2に係る半導体記憶装置2Bによれば、メモリアレイ17には、乱数生成用データY1,Y2として乱数が記憶されている。従って、更新される乱数生成用データY1,Y2を乱数として使用することにより、乱数の真性度を担保することが可能となる。しかも、メモリアレイ17から読み出した乱数生成用データY1,Y2をそのまま乱数として使用することができ、当該乱数生成用データY1,Y2をシードとして用いた乱数生成処理が不要であるため、乱数を生成するための所要時間を短縮することが可能となる。
Further, according to the
同様に上記実施の形態2に係るデータ処理システム100によれば、データ更新部15B(鍵生成部)は、メモリアレイ17から読み出した鍵生成用データY1,Y2を、今回の鍵要求に対応してホスト装置1に送信するセッション鍵K1,K2として生成する。このように、毎回更新される乱数生成用データY1,Y2を共通鍵として使用することにより、共通鍵の真性度を担保することが可能となる。しかも、メモリアレイ17から読み出した乱数生成用データY1,Y2をそのまま共通鍵として使用することができ、当該乱数生成用データY1,Y2をシードとして用いた乱数生成処理が不要であるため、ホスト装置1から鍵要求を受けてからホスト装置1に共通鍵を送信するまでの所要時間を短縮することが可能となる。
Similarly, according to the
また、上記実施の形態2に係る半導体記憶装置2B及びデータ処理システム100によれば、乱数生成器23は、メモリアレイ17から読み出した第1の乱数生成用データY1,Y2をシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、第2の乱数生成用データY2,Y3を生成する。このように、第1の乱数生成用データY1,Y2をシードとして用いた乱数生成アルゴリズムによって第2の乱数生成用データY2,Y3を生成することにより、乱数及び共通鍵として使用される乱数生成用データの真性度を担保することが可能となる。
Further, according to the
また、上記実施の形態1,2に係る半導体記憶装置2A,2Bによれば、制御部13は、メモリアレイ17に記憶されている第1の乱数生成用データX1,Y1が第2の乱数生成用データX2,Y2によって正しく上書きされるまで、乱数生成用データの上書き処理を繰り返し実行する。従って、意図しない電源断によって乱数生成用データの上書き処理が未完了のまま中断した場合等であっても、電源の再投入後に乱数生成用データの上書き処理を再開することにより、メモリアレイ17に記憶されている第1の乱数生成用データX1,Y1を第2の乱数生成用データX2,Y2によって正しく上書きすることができる。その結果、次に乱数を生成する場合には乱数生成部14A,14Bは第2の乱数生成用データX2,Y2に基づいて乱数を生成することができるため、乱数の再現不可能性を担保することが可能となる。
Also, according to the
同様に上記実施の形態1,2に係るデータ処理システム100によれば、制御部13は、メモリアレイ17に記憶されている第1の乱数生成用データX1,Y1が第2の乱数生成用データX2,Y2によって正しく上書きされるまで、乱数生成用データの上書き処理を繰り返し実行する。従って、意図しない電源断によって乱数生成用データの上書き処理が未完了のまま中断した場合等であっても、電源の再投入後に乱数生成用データの上書き処理を再開することにより、メモリアレイ17に記憶されている第1の乱数生成用データX1,Y1を第2の乱数生成用データX2,Y2によって正しく上書きすることができる。その結果、ホスト装置1からの次回の鍵要求に対して乱数生成部14A,14Bは第2の乱数生成用データX2,Y2に基づいてセッション鍵K2を生成することができるため、鍵の再現不可能性を担保することが可能となる。
Similarly, according to the
また、上記実施の形態1,2に係る半導体記憶装置2A,2Bによれば、メモリアレイ17には、乱数生成用データの初期値として、半導体記憶装置2A,2B毎に異なる固有値が記憶されている。従って、初回の乱数生成においても、半導体記憶装置2A,2B毎に異なる乱数を乱数生成部14A,14Bによって生成することが可能となる。
Further, according to the
同様に上記実施の形態1,2に係るデータ処理システム100によれば、メモリアレイ17には、乱数生成用データの初期値として、半導体記憶装置2A,2B毎に異なる固有値が記憶されている。従って、ホスト装置1からの初回の鍵要求に対しても、半導体記憶装置2A,2B毎に異なるセッション鍵を乱数生成部14A,14Bによって生成することが可能となる。
Similarly, according to the
また、上記実施の形態1,2に係る半導体記憶装置2A,2B及びデータ処理システム100によれば、乱数生成用データは、メモリアレイ17の記憶領域のうち、ホスト装置1からのアクセスが禁止されている禁止領域20に記憶される。従って、攻撃者がホスト装置1を介してメモリアレイ17から乱数生成用データを読み出すことや、メモリアレイ17に記憶されている乱数生成用データを無効なデータによって上書きすることはできないため、セキュリティ性を向上することが可能となる。
Further, according to the
また、上記変形例に係る半導体記憶装置2A,2Bによれば、半導体記憶装置2A,2Bの電源が投入されると、データ更新部15A,15Bによる乱数生成用データの更新処理と制御部13による乱数生成用データの上書き処理とが自動的に実行される。従って、電源投入後の最初の乱数生成においては、自動更新によって上書きされた新たな乱数生成用データに基づいて乱数を生成することが可能となる。
Further, according to the
同様に上記変形例に係るデータ処理システム100によれば、半導体記憶装置2A,2Bの電源が投入されると、データ更新部15A,15Bによる乱数生成用データの更新処理と制御部13による乱数生成用データの上書き処理とが自動的に実行される。従って、電源投入後の最初の鍵要求に対しては、自動更新によって上書きされた新たな乱数生成用データに基づいて生成されたセッション鍵を、ホスト装置1に送信することが可能となる。
Similarly, according to the
また、上記変形例に係る半導体記憶装置2A,2Bによれば、半導体記憶装置2A,2Bの電源遮断が要求されると、データ更新部15A,15Bによる乱数生成用データの更新処理と制御部13による乱数生成用データの上書き処理とが自動的に実行される。従って、半導体記憶装置2A,2Bの電源が再投入された後の最初の乱数生成においては、電源遮断前の自動更新によって上書きされた新たな乱数生成用データに基づいて乱数を生成することが可能となる。
In addition, according to the
同様に上記変形例に係るデータ処理システム100によれば、半導体記憶装置2A,2Bの電源遮断が要求されると、データ更新部15A,15Bによる乱数生成用データの更新処理と制御部13による乱数生成用データの上書き処理とが自動的に実行される。従って、半導体記憶装置2A,2Bの電源が再投入された後の最初の鍵要求に対しては、電源遮断前の自動更新によって上書きされた新たな乱数生成用データに基づいて生成されたセッション鍵を、ホスト装置1に送信することが可能となる。
Similarly, according to the
2,2A,2B 半導体記憶装置
13 制御部
14A 乱数生成部
15A,15B データ更新部
17 メモリアレイ
20 禁止領域
21,23 乱数生成器
22 カウンタ
100 データ処理システム
2, 2A, 2B
Claims (15)
前記メモリアレイから読み出した乱数生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成する乱数生成部と、
乱数生成用データを更新するデータ更新部と、
制御部と、
を備える半導体記憶装置であって、
前記データ更新部は、前記メモリアレイから読み出した第1の乱数生成用データを、前記乱数生成アルゴリズムとは異なるアルゴリズムによって更新することにより、当該第1の乱数生成用データに基づいて生成される第1の乱数より後に使用される第2の乱数を生成するための第2の乱数生成用データを生成し、
前記制御部は、前記第2の乱数生成用データを前記メモリアレイに書き込み、
前記乱数生成部による乱数の生成処理と、前記データ更新部による乱数生成用データの更新処理及び前記制御部による乱数生成用データの書き込み処理とは、並行して実行され、
前記半導体記憶装置の電源遮断が要求されると、前記データ更新部による乱数生成用データの更新処理と前記制御部による乱数生成用データの書き込み処理とが自動的に実行される、半導体記憶装置。 A memory array in which random number generation data used for random number generation is stored;
A random number generation unit that generates random numbers by a predetermined random number generation algorithm using the random number generation data read from the memory array as a seed,
A data update unit for updating the random number generation data;
A control unit;
A semiconductor memory device Ru provided with,
The data updating unit updates the first random number generation data read from the memory array with an algorithm different from the random number generation algorithm, thereby generating the first random number generation data based on the first random number generation data. Generating second random number generation data for generating a second random number used after the random number of 1,
The control unit writes the second random number generation data to the memory array,
The random number generation process by the random number generation unit, the random number generation data update process by the data update unit and the random number generation data write process by the control unit are executed in parallel ,
When the semiconductor memory device is requested to be powered off, the random number generation data update process by the data update unit and the random number generation data write process by the control unit are automatically executed .
前記ホスト装置との間で鍵を交換することにより、前記ホスト装置から受信したコマンドを当該鍵を用いて復号し、前記ホスト装置に送信するデータを当該鍵を用いて暗号化する半導体記憶装置と、 A semiconductor memory device that decrypts a command received from the host device by exchanging a key with the host device, and encrypts data to be transmitted to the host device by using the key ,
を備え、With
前記半導体記憶装置は、 The semiconductor memory device
前記ホスト装置との間で送受信するデータと、鍵の生成に用いる鍵生成用データとが記憶されたメモリアレイと、 A memory array that stores data to be transmitted to and received from the host device, and key generation data used to generate a key;
前記メモリアレイから読み出した鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、今回の鍵要求に対応して前記ホスト装置に送信する鍵を生成する鍵生成部と、 A key generation unit that generates a key to be transmitted to the host device in response to the current key request by generating a random number by a predetermined random number generation algorithm using the key generation data read from the memory array as a seed When,
鍵生成用データを更新するデータ更新部と、 A data update unit for updating key generation data;
制御部と、 A control unit;
を有し、Have
前記半導体記憶装置が前記ホスト装置から鍵要求を受けた場合、 When the semiconductor storage device receives a key request from the host device,
前記鍵生成部は、その時点で前記メモリアレイに記憶されている第1の鍵生成用データに基づいて、今回の鍵要求に対応して前記ホスト装置に送信する鍵を生成し、 The key generation unit generates a key to be transmitted to the host device in response to the current key request based on the first key generation data stored in the memory array at that time,
前記制御部は、前記鍵生成部によって生成された鍵を暗号化して前記ホスト装置に送信し、 The control unit encrypts the key generated by the key generation unit and transmits the encrypted key to the host device,
前記データ更新部は、前記第1の鍵生成用データを、前記乱数生成アルゴリズムとは異なるアルゴリズムによって更新することにより、今回より後の鍵要求に対応して前記ホスト装置に送信する鍵を生成するための第2の鍵生成用データを生成し、 The data updating unit updates the first key generation data with an algorithm different from the random number generation algorithm, thereby generating a key to be transmitted to the host device in response to a key request after this time. Generating second key generation data for
前記制御部は、前記第2の鍵生成用データを前記メモリアレイに書き込み、 The control unit writes the second key generation data to the memory array,
前記鍵生成部による鍵の生成処理及び前記制御部による鍵の送信処理と、前記データ更新部による鍵生成用データの更新処理及び前記制御部による鍵生成用データの書き込み処理とは、並行して実行される、データ処理システム。 The key generation process by the key generation unit and the key transmission process by the control unit, the key generation data update process by the data update unit, and the key generation data write process by the control unit are performed in parallel. A data processing system to be executed.
前記メモリアレイから読み出した鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、鍵を生成する鍵生成部と、 A key generation unit that generates a key by generating random numbers by a predetermined random number generation algorithm using the key generation data read from the memory array as a seed; and
鍵生成用データを更新するデータ更新部と、 A data update unit for updating key generation data;
制御部と、 A control unit;
を備え、With
前記鍵生成部は、前記メモリアレイに記憶されている第1の鍵生成用データに基づいて第1の鍵を生成し、 The key generation unit generates a first key based on first key generation data stored in the memory array,
前記データ更新部は、前記乱数生成アルゴリズムとは異なるアルゴリズムによって前記第1の鍵生成用データを更新することにより、前記第1の鍵より後に使用される第2の鍵を生成するための第2の鍵生成用データを生成し、 The data update unit updates the first key generation data by an algorithm different from the random number generation algorithm, thereby generating a second key for generating a second key used after the first key. Generate key generation data for
前記制御部は、前記第2の鍵生成用データを前記メモリアレイに書き込み、 The control unit writes the second key generation data to the memory array,
前記鍵生成部による鍵の生成処理と、前記データ更新部による鍵生成用データの更新処理及び前記制御部による鍵生成用データの書き込み処理とは、並行して実行される、半導体記憶装置。 The semiconductor memory device, wherein the key generation process by the key generation unit, the key generation data update process by the data update unit, and the key generation data write process by the control unit are executed in parallel.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013101704A JP6203532B2 (en) | 2013-05-13 | 2013-05-13 | Semiconductor memory device and data processing system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013101704A JP6203532B2 (en) | 2013-05-13 | 2013-05-13 | Semiconductor memory device and data processing system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2014222420A JP2014222420A (en) | 2014-11-27 |
| JP6203532B2 true JP6203532B2 (en) | 2017-09-27 |
Family
ID=52121919
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2013101704A Active JP6203532B2 (en) | 2013-05-13 | 2013-05-13 | Semiconductor memory device and data processing system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6203532B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018042203A (en) * | 2016-09-09 | 2018-03-15 | 株式会社東芝 | Information processing device, server device, information processing system, mobile body, and information processing method |
| WO2021038769A1 (en) * | 2019-08-28 | 2021-03-04 | ウルトラメモリ株式会社 | Communication device, memory module, and program |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7209561B1 (en) * | 2002-07-19 | 2007-04-24 | Cybersource Corporation | System and method for generating encryption seed values |
| JP3732188B2 (en) * | 2003-03-31 | 2006-01-05 | Necマイクロシステム株式会社 | Pseudo random number generator |
| JP4465610B2 (en) * | 2005-02-24 | 2010-05-19 | ソニー株式会社 | Signal processing device |
| WO2007148244A1 (en) * | 2006-06-20 | 2007-12-27 | Nxp B.V. | Random number generator system, method for generating random numbers |
| JP2008165008A (en) * | 2006-12-28 | 2008-07-17 | Megachips Lsi Solutions Inc | Data processor and data processing method |
| JP2010039838A (en) * | 2008-08-06 | 2010-02-18 | Mega Chips Corp | Random number generation circuit and computer system |
| JP2010140419A (en) * | 2008-12-15 | 2010-06-24 | Toshiba Corp | Random number generator and pseudo random number generator |
| JP4950325B2 (en) * | 2010-07-02 | 2012-06-13 | みずほ第一フィナンシャルテクノロジー株式会社 | Efficient parallel processing method of Monte Carlo method |
| JP5670849B2 (en) * | 2011-09-19 | 2015-02-18 | Necエンジニアリング株式会社 | Pseudorandom number generation device and pseudorandom number generation method |
-
2013
- 2013-05-13 JP JP2013101704A patent/JP6203532B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2014222420A (en) | 2014-11-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5275432B2 (en) | Storage medium, host device, memory device, and system | |
| JP6902584B2 (en) | Boot programs, information processing devices, information processing systems, information processing methods, semiconductor devices, and programs | |
| JP5275482B2 (en) | Storage medium, host device, memory device, and system | |
| US20190384938A1 (en) | Storage apparatus and method for address scrambling | |
| CN103577768A (en) | Method of managing key for secure storage of data and apparatus therefor | |
| EP2528004A1 (en) | Secure removable media and method for managing the same | |
| JP6026630B2 (en) | Memory system | |
| WO2023274011A1 (en) | Method and apparatus for protecting data in otp memory, and device and storage medium | |
| JP5848685B2 (en) | Storage system | |
| CN114785503B (en) | Cipher card, root key protection method thereof and computer readable storage medium | |
| ES3024956T3 (en) | Semiconductor device, update data-providing method, update data-receiving method, and program | |
| JP2015170952A (en) | Encryption / decryption system, control method therefor, and program | |
| CN113890728A (en) | Key processing method, system, equipment and medium based on FPGA encryption card | |
| CN114024711A (en) | Data transmission method and device and computer readable storage medium | |
| US20100241870A1 (en) | Control device, storage device, data leakage preventing method | |
| JP6203532B2 (en) | Semiconductor memory device and data processing system | |
| JP2014041582A (en) | Storage system | |
| JP2014041583A (en) | Storage system | |
| US20150310230A1 (en) | Cryptographic processing apparatus, cryptographic processing system, and cryptographic processing method | |
| JP2019121955A (en) | Semiconductor device and generating method of encryption key | |
| JP2016103217A (en) | Information processing terminal and control program of information processing terminal | |
| JP2014041581A (en) | Storage system | |
| JP5539024B2 (en) | Data encryption apparatus and control method thereof | |
| JP2017108293A (en) | Semiconductor integrated circuit device and data processing device | |
| CN109542340A (en) | Storage method, device and device at host machine end with hidden partition |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160329 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161226 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170215 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170314 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170531 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20170606 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170724 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170725 |
|
| 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: 20170802 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170830 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6203532 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |