JP2014192793A - Cryptographic device - Google Patents
Cryptographic device Download PDFInfo
- Publication number
- JP2014192793A JP2014192793A JP2013068075A JP2013068075A JP2014192793A JP 2014192793 A JP2014192793 A JP 2014192793A JP 2013068075 A JP2013068075 A JP 2013068075A JP 2013068075 A JP2013068075 A JP 2013068075A JP 2014192793 A JP2014192793 A JP 2014192793A
- Authority
- JP
- Japan
- Prior art keywords
- read
- cryptographic
- processing
- target data
- encryption
- 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
Images
Abstract
Description
この発明は、暗号処理時における耐タンパー性を有し、高速に実行する暗号装置に関する。 The present invention relates to a cryptographic device having tamper resistance during cryptographic processing and executing at high speed.
暗号装置を有するシステム製品において、消費電力の消費削減、高パフォーマンスの要求が高く、できるだけ無駄な処理を取り除くように設計されている。その結果、非接触で暗号解読を所望する攻撃者は、消費電力が異常に高いときや、処理時間が長いときに、システム上で特別な処理が行われていることを容易に判断できる。 In a system product having a cryptographic device, there is a high demand for reduction in power consumption and high performance, and it is designed to eliminate unnecessary processing as much as possible. As a result, an attacker who desires decryption without contact can easily determine that special processing is being performed on the system when the power consumption is abnormally high or the processing time is long.
上述した攻撃者による弊害は、暗号化/復号化処理を行っている際などに、攻撃者によって処理時間に注目したタイミング攻撃や、消費電力に注目した電力解析攻撃等のサイドチャネル攻撃により、機密情報(秘密鍵など)が解析されてしまうことである。 The above-mentioned adverse effects caused by the attackers include confidentiality due to timing attacks focused on the processing time by attackers and side-channel attacks such as power analysis attacks focused on power consumption when performing encryption / decryption processing. Information (such as a secret key) is analyzed.
また、サイドチャネル攻撃に対し、ハードウェアで対策を行うことが一般的ではあるが、その対策を行うことにより回路規模が大きくなりコストがかかってしまう。 Moreover, although it is common to take countermeasures against hardware in response to side channel attacks, the countermeasures increase the circuit scale and cost.
サイドチャネル攻撃等の対策用に特許文献1に開示された暗号処理装置がある。この暗号処理装置は、暗号化/復号化中にダミー処理を実行している。
There is a cryptographic processing device disclosed in
サイドチャネル攻撃等の他の対策用に特許文献2に開示されたデータ処理装置がある。このデータ処理装置は、消費電力を均一化させるために、暗号化/復号化の実行開始時間に遅延を生じさせている。
There is a data processing device disclosed in
サイドチャネル攻撃等の他の対策用に特許文献3に開示された半導体装置がある。この半導体装置は、出力側となる回路ブロックに、伝送しようとするデータを、データの変化の量が、より一様になるように、予め定められた符号化方法で符号化している。 There is a semiconductor device disclosed in Patent Document 3 for other countermeasures such as a side channel attack. In this semiconductor device, data to be transmitted is encoded in a circuit block on the output side by a predetermined encoding method so that the amount of change in data becomes more uniform.
しかしながら、特許文献1に開示の暗号処理装置及び特許文献2に開示のデータ処理装置は、暗号化処理中にダミー処理を実行したり、実行開始時間を遅延させたりしているため、暗号処理速度が犠牲となっている問題点があった。
However, since the encryption processing device disclosed in
また、特許文献3に開示の半導体装置は、高速化には暗号化/復号化後のデータ格納用の大容量の記憶部(メモリブロック14)が必要となるため、コスト高を招くという問題点があった。 In addition, the semiconductor device disclosed in Patent Document 3 requires a high-capacity storage unit (memory block 14) for storing data after encryption / decryption for speeding up, leading to high costs. was there.
この発明は上記問題点を解決するためになされたもので、暗号処理時間の高速化を図り、かつ耐タンパー性を有する暗号装置を比較的簡単な構成で得ることを目的とする。 The present invention has been made to solve the above-mentioned problems, and has as its object to increase the cryptographic processing time and to obtain a cryptographic device having tamper resistance with a relatively simple configuration.
この発明に係る請求項1記載の暗号装置は、暗号対象データに対して暗号処理を施し暗号化データを得る暗号演算器と、前記暗号対象データを記憶した外部のメモリ部から前記暗号対象データを読み出すデータ読み出し処理を行うとともに、読み出した前記暗号対象データを前記暗号演算器に出力する暗号制御部とを備え、前記暗号対象データは前記データ読み出し処理により、前記メモリ部から第1,第2,第m(≧2)の順より順次読み出される第1〜第mの部分暗号対象データを含み、前記暗号制御部は、前記暗号演算器による第i(i=1〜(m−1))の部分暗号対象データに対する暗号処理が実行される暗号処理期間中において、前記メモリ部からの第(i+1)の部分暗号対象データを読み出す前記データ読み出し処理における先行読み出し処理を実行することを特徴とする。 According to a first aspect of the present invention, there is provided a cryptographic apparatus comprising: a cryptographic operator that performs cryptographic processing on cryptographic target data to obtain encrypted data; and the cryptographic target data from an external memory unit that stores the cryptographic target data. And a cipher control unit that performs read data read processing and outputs the read encryption target data to the cryptographic operation unit, and the encryption target data is first, second, and second from the memory unit by the data read processing. Including the 1st to m-th partial encryption target data sequentially read out in the order of m-th (≧ 2), and the encryption control unit performs the i-th (i = 1 to (m−1)) In the data reading process of reading out the (i + 1) th partial encryption target data from the memory unit during the encryption processing period in which the encryption processing is performed on the partial encryption target data. And executes the read-ahead processing.
請求項2の発明は、請求項1記載の暗号装置であって、前記暗号制御部と前記暗号演算器との間に設けられる配線を外部から隠蔽したことを特徴とする。 A second aspect of the present invention is the encryption apparatus according to the first aspect, wherein a wiring provided between the cryptographic control unit and the cryptographic computing unit is concealed from the outside.
請求項3の発明は、請求項1または請求項2記載の暗号装置であって、前記暗号制御部は、前記先行読み出し処理以外の電力消費処理をさらに実行することを特徴とする。 A third aspect of the present invention is the encryption apparatus according to the first or second aspect, wherein the cryptographic control unit further executes power consumption processing other than the preceding read processing.
請求項4の発明は、請求項3記載の暗号装置であって、前記メモリ部は前記先行読み出し処理における読み出し手順を規定する複数の読み出しアクセス情報をさらに格納し、前記電力消費処理は、前記先行読み出し処理の前に実行され、前記複数の読み出しアクセス情報から一の情報を選択読み出しアクセス情報として前記メモリ部から読み出すアクセス情報読み出し処理を含み、前記先行読み出し処理は、前記選択読み出しアクセス情報の指示する読み出し手順に従い、前記第(i+1)の部分暗号対象データを読み出す処理を含む。
The invention according to
請求項5の発明は、請求項3記載の暗号装置であって、前記メモリ部は、前記暗号制御部における前記先行読み出し処理用の読み出しプログラムを規定する複数の命令コード情報をさらに格納し、前記電力消費処理は、前記先行読み出し処理の前に実行され、前記複数の命令コード情報のうち一の情報を選択読み出し命令コード情報として読み出す、命令コード読み出し処理を含み、前記先行読み出し処理は、前記選択命令コード情報で規定された読み出しプログラムを実行する処理を含む。
The invention according to
請求項6の発明は、請求項3〜請求項5のうち、いずれか1項に記載の暗号装置であって、前記電力消費処理は前記先行読み出し処理と関連性のない少なくとも一つのダミー処理を含み、前記少なくとも一つのダミー処理は前記部分暗号対象データ毎にその内容を変化させることが可能であることを特徴とする。 A sixth aspect of the present invention is the encryption device according to any one of the third to fifth aspects, wherein the power consumption process includes at least one dummy process unrelated to the preceding read process. And the at least one dummy process can change the contents of each partial encryption target data.
請求項7の発明は、請求項6記載の暗号装置であって、前記少なくとも一つのダミー処理は前記先行読み出し処理の後に行われるダミー処理を含む。 A seventh aspect of the present invention is the encryption apparatus according to the sixth aspect, wherein the at least one dummy process includes a dummy process performed after the preceding read process.
請求項8の発明は、請求項3〜請求項7のうち、いずれか1項に記載の暗号装置であって、前記暗号制御部は、前記暗号処理期間の全時間帯において、前記データ読み出し処理及び前記電力消費処理のうち一方を実行することを特徴とする。 The invention according to claim 8 is the encryption apparatus according to any one of claims 3 to 7, wherein the encryption control unit performs the data read processing in all time zones of the encryption processing period. One of the power consumption processes is executed.
この発明における請求項1記載の暗号装置は、暗号演算器による第iの部分暗号対象データに対する暗号処理期間中において、暗号制御部による電力を消費する先行読み出し処理が行われる。このため、暗号演算器による暗号処理による消費電力に加え、暗号制御部の処理動作による消費電力が加味される時間帯を暗号処理期間内に設けることにより、暗号演算器による暗号処理時におけるサイドチャネル攻撃に対する耐タンパー性の向上を図ることができる。 In the cryptographic apparatus according to the first aspect of the present invention, during the cryptographic processing period for the i-th partial encryption target data by the cryptographic computing unit, the preceding read processing that consumes power by the cryptographic control unit is performed. For this reason, in addition to the power consumption due to the cryptographic processing by the cryptographic calculator, the time channel in which the power consumption due to the processing operation of the cryptographic control unit is taken into account during the cryptographic processing period, the side channel during the cryptographic processing by the cryptographic calculator Tamper resistance against attacks can be improved.
加えて、暗号演算器による第iの部分暗号対象データに対する暗号処理の実行時間中に暗号制御部は第(i+1)の部分暗号対象データを読み出す先行読み出し処理を実行している。このため、暗号演算器は第1〜第mの部分暗号対象データに対する暗号処理を連続的に実行することができる分、暗号処理の高速化を図ることができる。 In addition, during the execution time of the encryption process for the i-th partial encryption target data by the cryptographic operation unit, the encryption control unit executes a pre-read process for reading out the (i + 1) th partial encryption target data. For this reason, since the cryptographic operation unit can continuously execute the cryptographic processing on the first to mth partial encryption target data, the cryptographic processing can be speeded up.
さらに、暗号演算器以外に必要な構成は、先行読出し処理が実行可能な暗号制御部であるため、比較的簡単な構成で暗号装置を実現できる。 Furthermore, since the necessary configuration other than the cryptographic operation unit is a cryptographic control unit capable of executing the preceding read process, the cryptographic device can be realized with a relatively simple configuration.
<実施の形態1>
(構成)
図1はこの発明の実施の形態1である暗号モジュール30(暗号装置)を含むシステム構成を示すブロック図である。同図に示すように、データ処理システム51は、ホスト部1、メモリコントローラ部2及びメモリコア部4から構成される。
<
(Constitution)
FIG. 1 is a block diagram showing a system configuration including an encryption module 30 (encryption device) according to
ホスト部1は内部にSoC(System-on-a-Chip)11を有し、メモリコントローラ部2は内部にホストI/F21、制御部22、暗号モジュール30、セレクタ24及びメモリI/F25を有している。メモリコア部4は内部にメモリ41を有している。
The
ホスト部1からホストI/F21を介して制御部22に対し、暗号対象データの読み出しを要求するメモリリード要求を与えることができる。
A memory read request for requesting reading of encryption target data can be given from the
一方、メモリコア部4内のメモリ41は不揮発性メモリであり、暗号対象データとなるコンテンツデータD41及び後述するアクセスIDデータAI1〜AIn(読み出しアクセス情報)を格納している。
On the other hand, the
以下、メモリコントローラ部2の各構成について述べる。制御部22は、メモリコントローラ部2に関する全体制御を行う。
Hereinafter, each configuration of the
暗号モジュール30はCPU31及び暗号演算器32から構成される。暗号演算器32はCPU31によって送信される暗号対象データに対する暗号演算処理を行い暗号化データを得る回路ブロック(IP(Intellectual Property))である。なお、暗号演算処理内容については特に制限は無い。
The
また、暗号演算器32は、暗号対象データ(暗号化/復号化したデータ)を格納可能なレジスタを備えている。なお、レジスタ分だけRAM等の記憶部を配置する構成も考えられる。レジスタ及びRAMのいずれを配置するかは例えばコストとのトレードオフにより決定される。
Further, the
CPU31はセレクタ24を制御して、メモリコア部4内のメモリ41からメモリI/F25を介してコンテンツデータD41を暗号対象データとして読み出すデータ読み出し処理を行う。さらに、CPU31は、読み出した暗号対象データを暗号演算器32に送信し、暗号演算器32より得た暗号化データを受信する処理を行う。
The
暗号モジュール30は、CPU31及び暗号演算器32が1パッケージ化(1チップ化)されて構成される。したがって、CPU31と暗号演算器32との間の信号(データ)授受用の配線を外部から隠蔽することができる。
The
セレクタ24は、メモリ41のアクセス対象としてCPU31を選択してメモリ41〜CPU31間の第1のデータ読み出しルートを設けるか、メモリ41のアクセス対象として制御部22を選択してメモリ41〜制御部22間の第2のデータ読み出しルートを設けるかを切り替える切り替え操作を行う。
The
セレクタ24による切り替え操作は、暗号演算器32による暗号演算処理を実行させる期間はCPU31の制御下で行われ、それ以外の一般的なメモリアクセス期間は制御部22の制御下で行われる。
The switching operation by the
(原理)
本発明は、暗号演算器32による暗号演算処理時におけるサイドチャネル攻撃に対する耐タンパー性を向上させると共に、暗号処理のパフォーマンスを向上させるための暗号モジュール30におけるCPU31の処理に関するソフトウェア実装方法の提案である。
(principle)
The present invention is a proposal of a software implementation method related to the processing of the
具体的には、暗号演算器32とCPU31とを1パッケージ化して暗号モジュール30として、暗号モジュール30内のCPU31による制御(ソフトウェア制御)によって、暗号モジュール30における消費電力値の均等化(バラつき)及び暗号処理の高速化を実現している。
Specifically, the
(データ読み出し処理と暗号演算処理)
図2はメモリコントローラ部2(暗号モジュール30)の外部のメモリコア部4内に存在するメモリ41に格納されたコンテンツデータD41を読み出すデータ読み出し処理内容を表形式で示す説明図である。
(Data read processing and cryptographic operation processing)
FIG. 2 is an explanatory diagram showing, in a tabular form, data read processing contents for reading the content data D41 stored in the
まず、ステップSTEP0において、CPU31によってメモリ41からアドレス4000〜41FFhのメモリ41である部分暗号対象データPD1を読み出す。このとき、暗号演算器32は暗号演算処理を実行していない。
First, in step STEP0, the
ステップSTEP0では、ホスト部1から制御部22を経由してCPU31に付与されるメモリリード要求で指示される{SA(Start Address;開始アドレス)=4000h (暗号処理サイズ = 200h)、RS(Read Size;読出しサイズ)=C00h}を、CPU31内の図示しないレジスタ等の内部メモリに格納し、上述したSA,RSに従ってメモリ41からコンテンツデータD41を読み出す。
In step STEP0, it is instructed by a memory read request given from the
したがって、上記メモリリード要求に従い、メモリ41のアドレス4000〜41FFh,4200〜43FFh,4400〜45FFh,4600〜47FFh,4800〜49FFh,及び4A00〜4BFFに格納されたコンテンツデータD41が各々の暗号処理サイズ200hの部分暗号対象データPD1〜PD6(第1〜第6の部分暗号対象データ)として順次CPU31により読み出され、暗号演算器32に送信後に部分暗号対象データPD1〜PD6に対する暗号演算処理がなされることになる。
Therefore, in accordance with the above memory read request, the content data D41 stored in the addresses 4000 to 41FFh, 4200 to 43FFh, 4400 to 45FFh, 4600 to 47FFh, 4800 to 49FFh, and 4A00 to 4BFF of the
なお、ステップSTEP0では、部分暗号対象データPD1は暗号演算器32に入力する段階までの範囲となるため、暗号演算器32には部分暗号対象データPD1が入力されているが暗号演算器32は暗号演算処理を開始していないため、図2では「−」と記述している。
In step STEP0, since the partial encryption target data PD1 is in the range up to the stage of input to the
次に、ステップSTEP1において、暗号演算器32はステップSTEP0でCPU31によって読み出された部分暗号対象データPD1(アドレス4000〜41FFhのコンテンツデータD41)に対する暗号演算処理を行い、CPU31は部分暗号対象データPD2(アドレス4200〜43FFhのコンテンツデータD41)の先行読み出し処理を行う。
Next, in step STEP1, the
以下、同様に、ステップSTEP2〜STEP5において、暗号演算器32はステップSTEP1〜STEP4でCPU31によって読み出された部分暗号対象データPD2〜PD4に対する暗号演算処理を行い、CPU31は部分暗号対象データPD3〜PD5の先行読み出し処理を行う。
Thereafter, similarly, in steps STEP2 to STEP5, the
そして、ステップSTEP6において、暗号演算器32は部分暗号対象データPD6に対する暗号演算処理を行い、部分暗号対象データPD1〜PD6に対する暗号化処理は完了する。なお、ステップSTEP6においては先行読み出し処理が実行されないため、図2に示すように、意図的に消費電力バラツキ処理を行うことが望ましい。
In step STEP6, the
このように、暗号制御部であるCPU31は、暗号演算器による部分暗号対象データPDi(i=1〜5のいずれか)に対する暗号演算処理の実行時間中において、メモリ41からの部分暗号対象データPD(i+1)を読み出す先行読み出し処理(データ読み出し処理)を並行して実行している。
As described above, the
したがって、通常の暗号化処理に比べ、部分暗号対象データPDiの暗号演算処理の終了時点で次の部分暗号対象データPD(i+1)の準備(読み出し)が完了している分、暗号演算処理が終了してから次の部分暗号対象データを読み出す時間を設ける必要はない。 Therefore, compared with the normal encryption process, the encryption operation process is completed as the preparation (reading) of the next partial encryption object data PD (i + 1) is completed at the end of the encryption operation process of the partial encryption object data PDi. Then, it is not necessary to provide time for reading the next partial encryption target data.
したがって、暗号モジュール30による部分暗号対象データPD1〜PD6に対する暗号化処理に関し、(部分暗号対象データPDの読み出し時間)×(先行読み出し処理回数分)(=5回)の時間短縮を図り、暗号化処理の高速化を図ることができる。
Therefore, with respect to the encryption processing for the partial encryption target data PD1 to PD6 by the
(CPU31の処理内容)
図3及び図4は実施の形態1の暗号モジュール30(CPU31及び暗号演算器32)の処理内容を模式的に示す説明図である。
(Processing content of CPU 31)
3 and 4 are explanatory diagrams schematically showing the processing contents of the cryptographic module 30 (the
以下、同図を参照して、図2で示したように、暗号演算器32が部分暗号対象データPD1〜PD6それぞれに対し暗号演算処理を実行して、部分暗号化データCD1〜CD6を得る場合を例に挙げて、どのように消費電力を均等化またはバラつかせているかを説明する。なお、説明の都合上、暗号演算器32は部分暗号対象データPD1〜PD6それぞれに対して一括した</U>暗号演算処理が可能とする。すなわち、暗号演算器32に部分暗号対象データPDのデータサイズ(サイズは鍵長等に依存)分のレジスタ等の内部記憶部を有している。
In the following, referring to FIG. 2, as shown in FIG. 2, the
まず、制御部22からの暗号処理開始ST0がなされる。暗号処理開始ST0に際して、制御部22は例えば{SA(Start Address)=4000h (暗号処理サイズ = 200h)、RS(Read Size)=C00h}を指示する読み出し要求を行う。この読み出し要求はホスト部1からの前述したメモリリード要求に基づいてなされる。
First, encryption processing start ST0 from the
上記読み出し要求に沿って、図2で示した部分暗号対象データPD1〜PD6を部分暗号対象データPDi(i=1〜6)単位に読み出し、暗号演算処理を行うことがCPU31に伝達される。
In accordance with the read request, the partial encryption target data PD1 to PD6 shown in FIG. 2 are read in units of partial encryption target data PDi (i = 1 to 6), and the cryptographic calculation processing is transmitted to the
すると、CPU31は、セレクタ24を変更する切り替え処理PR21を実行することにより、メモリI/F25を介したメモリ41〜CPU31間の第1の読み出しルートを設ける。
Then, the
その後、CPU31はメモリI/F25を介してメモリ41に対し、部分暗号対象データPD1の読み出し処理R41を実行して、部分暗号対象データPD1を得る。CPU31によってメモリ41から部分暗号対象データPD1を読み出す期間が暗号対象データ読出期間T21となる。
Thereafter, the
そして、CPU31は部分暗号対象データPD1を暗号演算器32に送信することにより、部分暗号対象データPD1が暗号演算器32のレジスタ等に入力される。
Then, the
上述した暗号処理開始ST0、処理PR21、及び先行読み出し処理R41が、図2で示したステップSTEP0の処理に相当する。 The above-described encryption process start ST0, process PR21, and preceding read process R41 correspond to the process of step STEP0 shown in FIG.
その後、ループ処理LP1に入る。暗号演算器32は部分暗号対象データPD1の受信後に速やかに部分暗号対象データPD1に対する暗号演算処理を実行するため、ループ処理LP1の開始当初から、暗号処理期間T10となる。
Thereafter, the loop processing LP1 is entered. Since the
この暗号処理期間T10において、CPU31は暗号モジュール30の消費電力の均等化を図るべく、後に詳述するが、部分暗号対象データPD2の先行読み出し処理RD42以外に様々な電力消費処理(PR22〜PR28,RD51)を実行する。
In this cryptographic processing period T10, the
CPU31は、ループ処理LP1の開始直後において、メモリ41に格納されたアクセスIDデータAI1〜AInのうち、読み出し対象として選択されるアクセスIDデータAIj(j=1〜nのいずれか)を乱数で決定する処理PR22を実行する。
The
その後、CPU31は、読み出しWait時間を乱数で決定し、Wait期間中にWait処理(後述するダミー処理)を行う処理PR23を実行する。
Thereafter, the
処理PR23が終了すると、CPU31は、メモリ41に格納された選択読み出しアクセス情報であるアクセスIDデータAIj(処理PR22にて決定)の読み出し処理RD51(アクセス情報読み出し処理)を行い、メモリ41からアクセスIDデータAIjを読み出す。読み出し処理RD51の実行期間がアクセスIDデータ読出期間T31となる。
When the process PR23 is completed, the
その後、CPU31は、アクセスIDデータAIjの内容をデコードする処理PR24を実行し、続けて、アクセスIDデータAIjで指示されたメモリアクセス方法を決定する処理PR25を行う。ここで処理PR25により決定されたメモリアクセス方法を「アクセス方法j」とする。
Thereafter, the
そして、CPU31は、読み出しまでのWait時間を乱数で決定し、Wait時間分、Wait処理(ダミー処理)を行う、処理PR26を実行する。
Then, the
処理PR26が終了すると、CPU31は、アクセス方法jに従った読み出し手順で部分暗号対象データPD2の先行読み出し処理R42を実行して、部分暗号対象データPD2を得る。CPU31によってメモリ41から部分暗号対象データPD2を読み出す期間が暗号対象データ読出期間T22となる。ここで、アクセス方法jによる読み出し手順で読み出された部分暗号対象データPD2を部分暗号対象データPD2xとする。部分暗号対象データPD2xはアクセス方法jに従った読み出し手順で読み出された結果のデータ列であるため、通常は部分暗号対象データPD2と異なる内容となる。
When the process PR26 is finished, the
その後、CPU31は、暗号演算器32に入力する部分暗号対象データのフォーマット変更する処理PR27を実行する。すなわち、部分暗号対象データPD2xを本来の部分暗号対象データPD2に整形する処理を行う。
Thereafter, the
例えば、先行読み出し処理RD42時に部分暗号対象データPD2が逆アドレス順(例:43FF〜4200hの順)にシーケンシャルに読み出された場合、処理PR27においてアドレス順(例:4200〜43FFhの順)になるようにフォーマット変更を行う必要がある。 For example, when the partial encryption target data PD2 is read sequentially in the reverse address order (example: 43FF to 4200h) during the preceding read process RD42, the address order (example: 4200 to 43FFh) is used in the process PR27. It is necessary to change the format.
さらに、CPU31は、暗号処理期間T10中であり、暗号演算器32から暗号演算処理の処理終了信号RE1を受信していない場合、処理終了信号RE1を受信するまでのWait期間において、消費電力をバラつかせるダミー処理(Wait処理)を処理PR28として行う。
Furthermore, when the
そして、CPU31は、暗号演算器32からの処理終了信号RE1を受信後、処理PR28を終了して、暗号化データ取得要求RQ24を暗号演算器32に対して行う。
Then, after receiving the processing end signal RE1 from the
暗号化データ取得要求RQ24を受けた暗号演算器32は部分暗号対象データPD1に対して暗号演算処理を行って得られる部分暗号化データCD1をCPU31に送信する。
The
一方、CPU31は、1page size(200h)分の部分暗号化データCD1の受信の完了を確認し、部分暗号化データCD1を制御部22に送信する部分暗号対象データの受信完了処理PR29を行う。処理PR29が終了すると、先行読み出し処理RD42で読み出し、処理PR27でフォーマット変更された次の部分暗号対象データPDである部分暗号対象データPD2を暗号演算器32に送信し、1回目のループ処理LP1を終了する。
On the other hand, the
2回目のループ処理LP1は、暗号演算器32による部分暗号対象データPD2に対する暗号演算処理と、CPU31による部分暗号対象データPD3の先行読出し処理RD43とを並行して行うことを主とした処理となり、1回目と同様に行われる。
The second loop process LP1 is a process mainly performed in parallel with the cryptographic calculation process for the partial encryption target data PD2 by the
3〜5回目のループ処理LP1は、暗号演算器32による部分暗号対象データPD3〜PD5に対する暗号演算処理と、CPU31による部分暗号対象データPD4〜PD6の先行読出し処理RD44〜RD46とを並行して行うことを主とした処理となり、それぞれ1回目と同様に行われる。
In the third to fifth loop processing LP1, the cipher operation processing on the partial encryption target data PD3 to PD5 by the
5回目のループ処理LP1が終了すると、ループ処理LP1を外れ、暗号演算器32は部分暗号対象データPD6に対する暗号演算処理(図示省略)を行った後、暗号化データCD6をCPU31に送信する。
When the fifth loop processing LP1 is completed, the loop processing LP1 is terminated, and the
その後、CPU31は、セレクタ24を変更(切り替え制御)する処理PR30を実行することにより、メモリI/F25を介したメモリ41〜制御部22間の第2の読み出しルートに変更する。
Thereafter, the
CPU31が暗号演算器32に対し、部分暗号対象データPD1〜PD6に対する部分暗号化データCD1〜CD6の取得を完了したことを暗号演算器32に通知する暗号処理終了信号RE2を通知する処理PR31を行って終了する。
The
(アクセスIDデータ)
読み出しアクセス情報であるアクセスIDデータAIjは、CPU31がどのような読み出し手順でコンテンツデータD41(部分暗号対象データPD)を読み出すかを指示するアクセス方法jを示すビット列である。
(Access ID data)
The access ID data AIj that is read access information is a bit string that indicates an access method j that instructs the
アクセス方法jとして例えば、アドレス順にシーケンシャルに読み出す(例:4000〜41FFhの順)、逆アドレス順にシーケンシャルに読み出す(例:41FF〜4000hの順)、1アドレス置きにアドレス順にシーケンシャルに読み出す(例:4000,4002,4004,…41FE,4001,4003,…41FFhの順)、1アドレス置きに逆アドレス順にシーケンシャルに読み出す(例:41FF,41FD,41FB,…0001,41FE,41FC,…4000hの順)等が考えられる。 As the access method j, for example, sequential reading is performed in the order of addresses (example: 4000 to 41FFh), sequential reading is performed in the reverse address (example: 41FF to 4000h), and sequential reading is performed in order of addresses every other address (example: 4000). , 4002, 4004, ... 41FE, 4001, 4003, ... 41FFh) Read sequentially every other address in reverse address order (example: 41FF, 41FD, 41FB, ... 0001, 41FE, 41FC, ... 4000h), etc. Can be considered.
また、アクセスIDデータAIjとなるビット列として、メモリコントローラ部2としての消費電力を消費させるために、"101010…"といった隣接するビット間で電位が変化するビット列に設定すると、メモリ41〜メモリI/F25間の消費電力を大きくすることができる効果がある。例えば、アクセスIDデータAIjが"AAh"(="10101010")の場合は、アドレス順にシーケンシャルに読み出すアクセス方法jと設定することができる。
In addition, if the bit string that becomes the access ID data AIj is set to a bit string that changes in potential between adjacent bits such as “101010...” In order to consume power consumption as the
なお、説明の都合上、アクセスIDデータAIjを1単位データとして示したが、アクセスIDデータAIjを複数のデータからなるデータ群で構成し、複数のデータの組合せ内容あるいは複数のデータのうち特定される少数のデータの内容に基づきアクセス方法jを決定するようにしても良い。 For convenience of explanation, the access ID data AIj is shown as one unit data. However, the access ID data AIj is composed of a data group composed of a plurality of data, and is specified from a combination of a plurality of data or a plurality of data. The access method j may be determined based on the contents of a small number of data.
(CPU31の動作)
制御部22から得られる暗号処理開始ST0よってCPU31は動作を開始する(図2参照)。このタイミングでCPU31、SA(Start Address)、RS(Read Size)を保持する。
(Operation of CPU 31)
The
そして、CPU31は、最初の部分暗号対象データである部分暗号対象データPD1の暗号演算器32への送信を終えると、ループ処理LP1内おいて次の部分暗号対象データPD2〜PD5の先行読み出し処理とそれ以外の電力消費処理を行う。
When the
電力消費処理は多く分けて以下の2つに分類される。1つは先行読み出し処理に関連がある予備的処理(アクセスIDデータAIの読み出し処理RD51及びそれに関連した処理PR22,PR24,PR25,PR27)である。もう1つは先行読み出し処理に関連性が無いダミー処理(処理PR23,PR26,PR28)である。 Power consumption processing is divided into the following two types. One is preliminary processing (access ID data AI read processing RD51 and related processing PR22, PR24, PR25, PR27) related to the preceding read processing. The other is a dummy process (process PR23, PR26, PR28) that is not related to the preceding read process.
予備的処理は行うべき内容が既に決まっているが、ダミー処理の行うべき内容は任意である。例えば、処理PR23のWait期間中、処理PR26のWait期間中、処理PR28の消費電力バラツキ処理が実行されるWait期間中それぞれにおいて、任意の内容のダミー処理が実行可能である。 The contents to be preliminarily processed are already determined, but the contents to be dummy processed are arbitrary. For example, a dummy process having an arbitrary content can be executed during the Wait period of the process PR23, during the Wait period of the process PR26, and during the Wait period during which the power consumption variation process of the process PR28 is executed.
(ダミー処理)
以下、CPU31が行うダミー処理について詳述する。暗号モジュール30による消費電力をバラつかせるために、Wait期間中におけるダミー処理(Wait処理)を以下の3パターン準備(消費電力が大きい順に列挙)し、暗号処理期間T10に行うCPU31の先行読み出し処理及び電力消費処理のトータル時間等を任意に変更することができる。
(Dummy processing)
Hereinafter, the dummy process performed by the
(1) CPU31によるメモリ41へのダミー読み出し処理、
(2) CPU31をアクティブ(Active)状態にしたダミー演算処理の実行、
(3) CPU31を省電力モードにしてスリープ状態にする。
(1) Dummy read processing to the
(2) Execution of dummy calculation processing with the
(3) The
なお、(1)のダミー読み出し処理でメモリ41から読み出したデータはCPU31側で保存することなく廃棄される。また、(2)のダミー演算処理として単純なループ処理を繰り返し実行するシンプルループ処理が含まれる。これらのパターン(1)〜(3)をCPU31側で乱数を発生させ、ランダムに実行することによりダミー処理が実行される。
The data read from the
この際、暗号演算器32による暗号演算処理の最短時間を予め算出しておく。なぜなら、ダミー処理期間(Wait期間)が長すぎて、新たな部分暗号対象データPDに対する暗号演算処理開始時間や、新たな部分暗号対象データPDの読み出し完了時間が遅くなってしまっては、本実施の形態の目的とする暗号モジュール30による暗号演算処理の高速化を果たすことができないからである。
At this time, the shortest time for the cryptographic calculation processing by the
上述した3パターンのダミー処理を上述した3つのWait期間中に適宜実行させることにより、暗号演算器32による暗号演算処理が終了するとほぼ同時に、CPU31によるメモリ41からの先行読み出し処理を完了させ、新たな部分暗号対象データPDの暗号演算器32への送信が直ちに行えるようにすることができる。逆に、意図的にWait期間を短くすることにより、同じSA(Start Address(暗号処理サイズも同じ))となる同一データ量の部分暗号対象データPDを先行読み出し処理する場合でも、暗号モジュール30の消費電力にバラツキをもたせることができる。
By appropriately executing the above-described three patterns of dummy processing during the above-described three wait periods, almost immediately after the cryptographic operation processing by the
図5は暗号処理期間T10におけるCPU31の処理動作に伴う消費電力変化を模式的に示す説明図である。同図において、図3及び図4で示したループ処理LP1期間中における暗号モジュール30の消費電力変化を示している。なお、消費電圧CVは変化の概略を示している。
FIG. 5 is an explanatory diagram schematically showing a change in power consumption accompanying the processing operation of the
暗号演算器32の暗号処理期間T10に対し、CPU31はダミー処理期間DT31〜DT33,アクセスIDデータ読出期間T22、及び暗号対象データ読出期間T23を設定することにより、CPU31は暗号処理期間T10の全時間帯に何らかの電力消費処理を実行する。
The
なお、暗号処理期間T10前のタイミングTM1ではCPU31及び暗号演算器32共にスタンバイ(standby)状態であるため、タイミングTM1では消費電圧CVは十分低く抑えることができる。
Note that, at the timing TM1 before the cryptographic processing period T10, both the
最初に設定されたダミー処理期間DT31は、主として処理PR23(図3参照)のWait期間に相当する。図5では、ダミー処理期間DT31に実行するダミー処理として、上記パターン(1)であるダミー読み出し処理(Dummy Read)を実行している。したがって、ダミー処理期間DT31におけるタイミングTM2において、暗号演算器32は暗号演算処理の実行中であり、CPU31はダミー処理を実行中(処理負荷:大)であるため、消費電圧CVを十分高くすることができる。
The dummy processing period DT31 set first corresponds mainly to the Wait period of the process PR23 (see FIG. 3). In FIG. 5, a dummy read process (Dummy Read) as the pattern (1) is executed as a dummy process executed in the dummy process period DT31. Therefore, at the timing TM2 in the dummy processing period DT31, the
また、ダミー処理期間DT31から次のアクセスID読み出し期間T31に切り替わるタイミングTM3では、CPU31はダミー処理を終えることにより処理負荷が小となり、消費電圧CVが低下し、その後、アクセスIDデータAIの読み出し処理RD51(図3参照)が始まると消費電圧CVが再び上昇する。
Further, at the timing TM3 when the dummy processing period DT31 switches to the next access ID reading period T31, the
アクセスID読み出し期間T31が終了すると、ダミー処理期間DT32に移行する。ダミー処理期間DT32は主として処理PR26(図3参照)のWait期間に相当する。図5ででは、ダミー処理期間DT32に実行するダミー処理として、上記パターン(3)であるCPU省電力モード(処理負荷:実質“0”)で動作させている。したがって、ダミー処理期間DT32におけるタイミングTM4において、CPU31の消費電圧は“0”に近くなるため、消費電圧CVは大きく低下する。
When the access ID read period T31 ends, the process proceeds to a dummy process period DT32. The dummy processing period DT32 mainly corresponds to the Wait period of the process PR26 (see FIG. 3). In FIG. 5, the dummy process executed in the dummy process period DT32 is operated in the CPU power saving mode (processing load: substantially “0”) as the pattern (3). Therefore, at the timing TM4 in the dummy processing period DT32, the consumption voltage of the
ダミー処理期間DT32が終わると暗号対象データ読出期間T22に移行する。暗号対象データ読出期間T22ではCPU31による先行読み出し処理(処理負荷:大)が実行されることにより、暗号対象データ読出期間T22のタイミングTM5において消費電圧CVは再び上昇する。その後、暗号対象データ読出期間T22から次のダミー処理期間DT33に切り替わるタイミングTM6では、CPU31は先行読み出し処理を終えることにより処理負荷が小さくなり、消費電圧CVが低下する。
When the dummy processing period DT32 ends, the process proceeds to the encryption target data reading period T22. In the encryption target data reading period T22, the preceding reading process (processing load: large) by the
暗号対象データ読出期間T22が終了すると、ダミー処理期間DT33に移行する。ダミー処理期間DT33は主として処理PR28(図4参照)の消費電力バラツキ処理を実行するWait期間に相当する。ダミー処理期間DT33に実行するダミー処理として、CPU31は、上記パターン(2)であるダミー演算処理(シンプルループ処理;処理負荷:中)を実行する。したがって、ダミー処理期間DT33におけるタイミングTM7において、CPU31の消費電圧は少し上昇する。
When the encryption target data reading period T22 ends, the process proceeds to a dummy processing period DT33. The dummy processing period DT33 mainly corresponds to a Wait period for executing the power consumption variation process of the process PR28 (see FIG. 4). As a dummy process executed during the dummy process period DT33, the
ダミー処理期間DT33が終了すると、暗号化データ受信期間T24に移行する。この暗号化データ受信期間T24では、CPU31から暗号演算器32への暗号化データ取得要求RQ24の送信、暗号演算器32からCPU31への部分暗号化データCD1(〜CD5)の送信、CPU31から暗号演算器32への次の部分暗号対象データPD2(〜PD5)の送信が行われる。この期間は、暗号演算器32による暗号演算処理は実行されないため、消費電圧CVは低下するが、CPU31が動作しているため“0”にはならない。
When the dummy processing period DT33 ends, the process proceeds to an encrypted data reception period T24. In this encrypted data reception period T24, the
(電力消費処理について)
暗号演算器32が暗号演算処理を行っている暗号処理期間T10に対し、先行読み出し処理以外に電力消費処理(予備的処理及びダミー処理)を積極的に行う。暗号処理期間T10以外のタイミングで電力消費処理を行ったとしても、暗号演算器32による暗号演算処理中の消費電力に比べれば微量に消費電力が高くなるだけの効果しかないためである。
(About power consumption processing)
In addition to the preceding read process, the power consumption process (preliminary process and dummy process) is actively performed for the cryptographic process period T10 during which the
前述したように、ダミー処理期間DT31〜DT33にそれぞれ行われるダミー処理として、上記(1)〜(3)からなる3パターンから選択して実行させている。 As described above, the dummy processes performed in the dummy process periods DT31 to DT33 are selected from the three patterns (1) to (3) and executed.
上記3パターンの組み合わせ方法に工夫を施すことで、より攻撃者を混乱させることが可能となる。すなわち、ダミー処理期間DT31〜DT33に行うべきダミー処理のパターンを乱数等を用いて適宜変化させることが望ましい。ダミー処理のパターンの選択順序等をテーブルなどで予めCPU31内のROM,RAM等の内部メモリ(図示せず)に持たせておく方法も、実装面では比較的簡単な処理となる。以下に、ダミー処理の組み合わせパターン例を列挙する。
By contriving the combination method of the above three patterns, it becomes possible to further confuse the attacker. That is, it is desirable to appropriately change the pattern of dummy processing to be performed in the dummy processing periods DT31 to DT33 using random numbers or the like. A method in which a dummy processing pattern selection order or the like is provided in advance in an internal memory (not shown) such as a ROM or RAM in the
1.前回の部分暗号対象データのダミー処理期間DT31〜DT33における3パターン(1)〜(3)の組合せと同じにしない。すなわち、前回の3パターン(1)〜(3)の組合せを記憶しておき、同じになれば変更することにより、耐タンパー性の向上を図ることができる。 1. It is not the same as the combination of the three patterns (1) to (3) in the dummy processing periods DT31 to DT33 of the previous partial encryption target data. That is, the combination of the previous three patterns (1) to (3) is stored, and if it becomes the same, the tamper resistance can be improved by changing the combination.
2.同じパターンのみによる組み合わせを使わない。すなわち、上記パターン(1)〜(3)のうち一のパターンのみを連続して採用する組み合わせを不採用とすることにより、耐タンパー性の向上を図ることができる。 2. Don't use combinations with only the same pattern. That is, tamper resistance can be improved by not adopting a combination in which only one of the patterns (1) to (3) is continuously adopted.
3.パターン(3)のCPU省電力モードはできるだけ短い期間使用する。すなわち、CPU省電力モードは実質的に暗号演算器32による暗号演算処理による電力しか消費されないため、なるべく短くなるよう設定して、耐タンパー性の向上を図ることができる。したがって、パターン(1)のダミー読み出し処理あるいはパターン(2)のダミー演算処理が実行される時間帯が多くなるようにパターンを決定することが重要である。
3. The CPU power saving mode of pattern (3) is used for as short a period as possible. That is, since the CPU power saving mode substantially consumes only the power of the cryptographic operation processing by the
4.組み合わせパターンを予めテーブルで持つ。理想的なパターン(時間内に終わる上記2,3.が実現されるパターン)をCPU31のROM等の内部メモリ内に予め格納しておき、どのパターンを使うか乱数で決定することにより、ダミー処理の組合せパターンの決定するCPU31の実装面の負担を軽減する。なお、乱数で決定する代わりに、上記1.の条件を満たすようテーブルを設定する対応も考えられる。
4). A combination pattern is previously stored in a table. An ideal pattern (a pattern that realizes
上述した、1.〜4.で述べたダミー処理の組合せ決定方式は、CPU31のROM等の内部メモリを用いたファームウェアで対応が可能であるため、実装者は、これらを意識してダミー処理期間DT31〜DT33に行うべきダミー処理内容を検討することが望ましい。
As described above, ~ 4. The dummy process combination determination method described in the above section can be handled by firmware using an internal memory such as the ROM of the
図3及び図4に示すように、CPU31がアクティブ状態となるのは、主としてホスト部1からの制御部22を経由して得られる暗号処理開始ST0の要求後から、暗号演算器32による暗号演算処理の動作間であり、攻撃者がサイドチャネル攻撃を実施の形態1の暗号モジュール30に対して実施したとしても、CPU31及び暗号演算器32が並列に動作しているため、解析が困難となる。また、上述したように、Wait期間におけるダミー処理内容を毎回変更することにより、同一内容の部分暗号対象データPDに対する暗号演算処理実行時においても消費電力を変化させることができる。
As shown in FIG. 3 and FIG. 4, the
(効果等)
実施の形態1の暗号装置となる暗号モジュール30におけるCPU31(暗号制御部)は、暗号演算器32による部分暗号対象データPDi(i=1〜(m−1),m=6)に対する暗号処理が実行される暗号処理期間T10中において、メモリ41からの部分暗号対象データPD(i+1)を読み出す先行読み出し処理と、先行読み出し処理以外の電力消費処理(予備的処理及びダミー処理)とを実行している。
(Effects etc.)
The CPU 31 (encryption control unit) in the
すなわち、このような実施の形態1の暗号モジュール30は、暗号演算器32による部分暗号対象データPDiに対する暗号処理期間T10中において、CPU31による先行読み出し処理及び電力消費処理が並列に行われている。このため、暗号演算器32による暗号演算処理による消費電力に加え、CPU31の先行読み出し処理及び電力消費処理による消費電力が加味される時間帯を暗号処理期間T10内に設けることにより、暗号モジュール30は暗号演算処理時におけるサイドチャネル攻撃に対する耐タンパー性の向上を図ることができる。
In other words, in the
なお、上述した電力消費処理を省略して、先行読み出し処理のみ実行しても、先行読み出し処理による消費電力が加味される時間帯を暗号処理期間T10内に設けることができるため、上述したタンパー性の向上を発揮することができる。 Even if only the preceding read process is executed with the above-described power consumption process omitted, a time zone in which the power consumed by the preceding read process is taken into account can be provided in the encryption processing period T10. Can be improved.
さらに、CPU31は暗号モジュール30内に暗号演算器32と1パッケージ化されており、CPU31,暗号演算器32間の信号授受用の配線を外部から隠蔽することができる分、暗号モジュール30は暗号演算処理時におけるサイドチャネル攻撃に対する耐タンパー性のさらなる向上を図ることができる。なお、CPU31,暗号演算器32間の配線を外部から隠蔽する例として、上述した1パッケージ化に加え、モールド処理による一体化等が考えられる。また、CPU31及び暗号演算器32の位置を物理的に遠くに配置することにより、配線を外部から隠蔽する場合と同様の効果(耐タンパー性)を発揮することができる。
Further, the
加えて、暗号演算器32による暗号処理期間T10中にCPU31は部分暗号対象データPD(i+1)を読み出す先行読み出し処理を実行している。このため、暗号演算器32は部分暗号対象データPD1〜PD6に対する暗号演算処理を連続的に実行することができる分、暗号化処理の高速化を図ることができる。
In addition, during the cryptographic processing period T10 by the
さらに、暗号演算器32以外に必要な構成は、上述した先行読出し処理及び電力消費処理が実行可能なCPU31のみであり、CPU31により実行される様々な電力消費処理は、プログラムを実行する等のソフトウェア処理により実現可能であるため、比較的簡単な構成で暗号モジュール30を実現することができる。
In addition to the
例えば、暗号モジュール30は、外部のメモリ41が利用できれば十分であり、高速化のために大容量のメモリを内部に設ける必要がないため、コスト削減が見込める。
For example, it is sufficient for the
さらに、選択読み出しアクセス情報であるアクセスIDデータAIjによって、部分暗号対象データPDi毎に先行読み出し処理における読み出し手順を変化させることにより、部分暗号対象データPDi毎に消費電力の発生状態を変化させることができるため、暗号演算処理時における耐タンパー性の向上を図ることができる。 Furthermore, by changing the read procedure in the preceding read process for each partial encryption target data PDi by the access ID data AIj that is the selective read access information, the state of power consumption can be changed for each partial encryption target data PDi. Therefore, tamper resistance can be improved at the time of cryptographic calculation processing.
さらに、ダミー処理期間DT31〜DT33に実行されるダミー処理は、部分暗号対象データPDi毎にその処理内容が変化可能であるため、より耐タンパー性を向上させることができる。 Furthermore, since the processing contents of the dummy processing executed during the dummy processing periods DT31 to DT33 can be changed for each partial encryption target data PDi, the tamper resistance can be further improved.
加えて、先行読み出し処理の後のダミー処理期間DT33にダミー処理を実行して、暗号処理期間T10の終了までに電力消費処理(ダミー処理)の実行を可能とすることにより、暗号演算処理時における耐タンパー性の向上を図ることができる。 In addition, the dummy process is executed in the dummy process period DT33 after the preceding read process, and the power consumption process (dummy process) can be executed by the end of the encryption process period T10. Tamper resistance can be improved.
CPU31は、図5に示すように、暗号処理期間T10の全時間帯において、先行読み出し処理及び電力消費処理を実行する期間(T22,DT31〜DT33,T31)を設けている。
As shown in FIG. 5, the
この際、ダミー処理期間DT32においても上記(1),(2)のパターンのダミー処理を実行することにより、CPU31は、暗号処理期間T10の全時間帯において先行読み出し処理及び電力消費処理(上記(3)のスリーブ状態を除く電力消費処理)を実行することができる。その結果、暗号処理期間T10中に暗号演算器32のみによる暗号演算処理が行われることを確実に回避することにより、暗号演算処理時における耐タンパー性のさらなる向上を図ることができる。
At this time, by executing the dummy processing of the patterns (1) and (2) also in the dummy processing period DT32, the
なお、最後の部分暗号対象データPD6に対する暗号演算器32による暗号演算処理時において、CPU31は先行読み出し処理を実行しないため、これらの期間において全てダミー処理を行うことが望ましい。
Note that, during the cryptographic calculation process by the
<実施の形態2>
(構成)
図6はこの発明の実施の形態2である暗号モジュール30B(暗号装置)を含むシステム構成を示すブロック図である。同図に示すように、データ処理システム52は、実施の形態1のデータ処理システム51と同様、ホスト部1、メモリコントローラ部2及びメモリコア部4から構成される。
<
(Constitution)
FIG. 6 is a block diagram showing a system configuration including an
ただし、メモリ41はアクセスIDデータAI1〜AInに代えて命令コード群MC1〜MCnを格納しており、メモリコントローラ部2内の暗号モジュール30B内のCPU31Bが命令コード群MC1〜MCnに対応する処理が可能とされた点が実施の形態1と異なる。
However, the
なお、命令コード群MCi(i=1〜nのいずれか)とはCPU31に実行させる命令コードを命令実行順に格納した集合体である。すなわち、CPU31は命令コード群MCi内の命令コードを順次実行することにより、命令コード群MCiの指示する読み出しプログラムを実行することができる。すなわち、命令コード群MCiは先行読み出し処理用の読み出しプログラムを規定する命令コード情報である。
The instruction code group MCi (i = 1 to n) is an aggregate in which instruction codes to be executed by the
他の構成は、図1で示した実施の形態1の暗号装置と同様であるため、同一の符号を付して説明を適宜省略する。 Other configurations are the same as those of the encryption apparatus according to the first embodiment shown in FIG. 1, and thus the same reference numerals are given and description thereof is omitted as appropriate.
(CPU31の処理内容)
図7及び図8は実施の形態2の暗号モジュール30BにおけるCPU31の処理内容を模式的に示す説明図である。
(Processing content of CPU 31)
7 and 8 are explanatory diagrams schematically showing the processing contents of the
以下、同図を参照して、図2で示したように、暗号演算器32が部分暗号対象データPD1〜PD6に対し暗号演算処理を実行して部分暗号化データCD1〜CD6を得る場合を例に挙げて、どのように消費電力を均等化またはバラつかせているかを説明する。
Hereinafter, referring to FIG. 2, as shown in FIG. 2, an example is shown in which the
なお、図3及び図4で示した実施の形態1の処理内容と同様な箇所は同一符号等を付して説明を適宜省略し、以下、実施の形態1と異なる箇所を中心に説明する。 Note that the same parts as the processing contents of the first embodiment shown in FIG. 3 and FIG. 4 are denoted by the same reference numerals and the description thereof will be omitted as appropriate, and the following description will focus on the parts different from the first embodiment.
部分暗号対象データPD1の暗号演算器32への出力後に実行されるループ処理LP2の暗号処理期間T10内において、CPU31Bは暗号モジュール30Bの消費電力の均等化を図るべく、部分暗号対象データPD2の先行読み出し処理RD42以外に様々な電力消費処理(PR42〜PR48,RD52)を実行する。
In the cryptographic processing period T10 of the loop process LP2 executed after the partial cryptographic target data PD1 is output to the
実施の形態2において、電力消費処理における予備的処理として、命令コード群MCの読み出し処理RD52及びそれに関連した処理PR42,PR44,PR45,PR47が実行され、ダミー処理として、処理PR43,PR46,PR48が実行される。 In the second embodiment, instruction code group MC read process RD52 and related processes PR42, PR44, PR45, and PR47 are executed as preliminary processes in the power consumption process, and processes PR43, PR46, and PR48 are executed as dummy processes. Executed.
CPU31Bは、ループ処理LP2の開始直後において、メモリ41に格納された命令コード群MC1〜MCnのうち、読み出し対象の命令コード群MCj(j=1〜nのいずれか;選択読み出し命令コード情報)を乱数で決定する処理PR42を実行する。
The
その後、CPU31Bは、読み出しWait期間を乱数で決定し、Wait期間中は実施の形態1と同様のダミー処理(Wait処理)を行う処理PR43を実行する。
Thereafter, the
処理PR43が終了すると、CPU31Bは、メモリ41に格納された命令コード群MCj(処理PR42にて決定)の読み出し処理RD52を行い、メモリ41から命令コード群MCjを読み出す。読み出し処理RD52の実行期間が命令コード群読出期間T32となる。
When the process PR43 ends, the
その後、CPU31Bは、命令コード群MCjのプログラム内容をデコードする処理PR44を実行し、続けて、命令コード群MCjで指示されたメモリ読み出しプログラムを決定する処理PR45を行う。ここで処理PR45により決定されたメモリ読み出しプログラムを「読み出しプログラムj」とする。
Thereafter, the
そして、CPU31Bは、読み出しまでのWait期間を乱数で決定し、Wait期間においてダミー処理(Wait処理)を行う処理PR46を実行する。
Then, the
処理PR46が終了すると、CPU31Bは、読み出しプログラムjに従った読み出し内容(読み出し手順を含む)で部分暗号対象データPD2の先行読み出し処理R43を実行して、部分暗号対象データPD2を得る。CPU31Bによってメモリ41から部分暗号対象データPD2を読み出す期間が暗号対象データ読出期間T22となる。ここで、読み出しプログラムjによって読み出された部分暗号対象データPD2を部分暗号対象データPD2xとする。部分暗号対象データPD2xは読み出しプログラムjに従った読み出し内容(読み出し手順)で読み出された結果のデータ列であるため、通常は部分暗号対象データPD2と異なる内容となる。
When the process PR46 is completed, the
その後、CPU31Bは、暗号演算器32に入力する部分暗号対象データのフォーマット変更する処理PR47を実行する。すなわち、部分暗号対象データPD2xを本来の部分暗号対象データPD2に整形する処理を行う。
Thereafter, the
さらに、CPU31Bは、暗号処理期間T10中であり、暗号演算器32から暗号演算処理の処理終了信号RE1を受信していない場合、処理終了信号RE1を受信するまでのWait期間において消費電力をバラつかせるためのダミー処理を処理PR48として実行する。
Furthermore, when the
そして、CPU31Bは、暗号演算器32からの処理終了信号RE1を受信後、処理PR48を終了して、暗号化データ取得要求RQ24を暗号演算器32に対して行う。
Then, after receiving the processing end signal RE1 from the
暗号化データ取得要求RQ24を受けた暗号演算器32は部分暗号対象データPD1に対して暗号演算処理を行って得られる部分暗号化データCD1をCPU31Bに送信する。
In response to the encrypted data acquisition request RQ24, the
一方、CPU31Bは、1page size(200h)分の部分暗号化データCD1の受信の完了を確認し、部分暗号化データCD1を制御部22に送信する部分暗号対象データの受信完了処理PR49を行う。処理PR49が終了すると、先行読み出し処理RD43で読み出し、処理PR47でフォーマット変更された次の部分暗号対象データPDである部分暗号対象データPD2を暗号演算器32に送信し、1回目のループ処理LP2を終了する。
On the other hand, the
2回目のループ処理LP2は、暗号演算器32による部分暗号対象データPD2に対する暗号演算処理と、CPU31Bによる部分暗号対象データPD3の先行読出し処理RD43を並行して行うことを主とした処理となり、1回目と同様に行われる。
The second loop process LP2 is mainly a process in which the cryptographic operation process on the partial encryption target data PD2 by the
3〜5回目のループ処理LP2は、暗号演算器32による部分暗号対象データPD3〜PD5に対する暗号演算処理と、CPU31Bによる部分暗号対象データPD4〜PD6の先行読出し処理RD44〜RD46を並行して行うことを主とした処理となり、それぞれ1回目と同様に行われる。
In the third to fifth loop processing LP2, the cipher operation processing on the partial encryption target data PD3 to PD5 by the
5回目のループ処理LP2が終了後の処理は図3及び図4で示した実施の形態1と同様に終了する。 The processing after the end of the fifth loop processing LP2 ends in the same manner as in the first embodiment shown in FIGS.
(命令コード群)
前述したように、命令コード情報である各命令コード群MCiは、命令コードの集合体で構成され、新たな部分暗号対象データPDを先行読み出し処理を実現するためのアルゴリズムとなる読み出しプログラムを規定している。
(Instruction code group)
As described above, each instruction code group MCi, which is instruction code information, is composed of a set of instruction codes, and defines a read program that is an algorithm for realizing a preceding read process for new partial encryption target data PD. ing.
したがって、命令コード群MC1〜MCnそれぞれにおいて、異なる読み出し内容(読み出し手順を含む)からなる読み出しプログラムを規定することにより、部分暗号対象データPD毎に読み出し内容を変化させ、消費電力の発生内容を変化させることができる。 Therefore, in each of the instruction code groups MC1 to MCn, by defining a read program having different read contents (including a read procedure), the read contents are changed for each partial encryption target data PD, and the generation contents of power consumption are changed. Can be made.
なお、命令コード群MCiを構成する複数の命令コードを独自にカスタマイズし、隣接するビット間で“1”と“0”とが配置されるようにして、命令コード群MCiの読み出し時における消費電力を大きくすることができる。例えば、命令コード群MCiの読み出し時の消費電力を大きくしたい場合、命令コードとして使用頻度が高いLD命令やNOP命令コードを"10101010"や"01010101"に設定するなどが考えられる。 Note that the plurality of instruction codes constituting the instruction code group MCi are uniquely customized so that “1” and “0” are arranged between adjacent bits so that the power consumption when reading the instruction code group MCi is read. Can be increased. For example, when it is desired to increase the power consumption at the time of reading the instruction code group MCi, an LD instruction or a NOP instruction code that is frequently used as the instruction code may be set to “10101010” or “01010101”.
このように、命令コードをカスタマイズできるように作成すれば、メモリ41の命令コード群MCiとして格納する命令コードを変更するだけで、命令コード群MCiの読み出し時における消費電力を均等化及びバラツキ制御が可能となる。
In this way, if the instruction code can be customized, the instruction code stored in the
また、処理45(図7参照)において、暗号演算器32は選択された命令コード群MCj内の各命令コードをデコードし、デコード結果に従って読み出しプログラムを実行している。
In process 45 (see FIG. 7), the
命令コード群MCjの選択方法について、メモリ41に格納された命令コード群MC1〜MCnの選択順序を予め定めておき、命令コード群MC1〜MCn間で予め決定した選択順序に沿って命令コード群MC1〜MCnのいずれかを命令コード群MCjとして読み出す方法を採用しても良い。
Regarding the method of selecting the instruction code group MCj, the selection order of the instruction code groups MC1 to MCn stored in the
なお、命令コード群MCiで指示される読み出しプログラム内容は予め設定でき、例えば、命令コード群MC1はシーケンシャルに行う読み出し処理、命令コード群MC2はデクリメントに行う読み出し処理をそれぞれ実行するプログラムを規定する等、様々な対応が考えられる。 Note that the contents of the read program instructed by the instruction code group MCi can be set in advance. For example, the instruction code group MC1 defines a program for executing a sequential read process, the instruction code group MC2 defines a program for executing a read process for decrementing, etc. Various correspondences can be considered.
(効果等)
実施の形態2の暗号モジュール30Bは、メモリ41に格納した命令コード群MC1〜MCnで規定された読み出しプログラムを実行するように構成した点を除き、実施の形態1の暗号モジュール30と同様な構成を呈しているため、実施の形態1と同様の効果を奏する。以下、実施の形態1と異なる効果について述べる。
(Effects etc.)
The
実施の形態2の暗号モジュール30Bは、選択読み出し命令コード情報である命令コード群MCjによって、部分暗号対象データPDi毎に先行読み出し処理内容を変化させることにより、部分暗号対象データPDi毎に消費電力の発生状態を変化させることができるため、暗号演算処理時における耐タンパー性の向上を図ることができる。
The
このように、実施の形態2では、命令コード群MCiをメモリ41に格納しておくことで、CPU31Bは先行読み出し処理を実行するためのプログラムをROM等の内部メモリに格納する必要がなくなるため、CPU31Bの内部メモリの容量の低減化を図ることができる。
As described above, in the second embodiment, by storing the instruction code group MCi in the
一方、実施の形態1では、アクセスIDデータAIjの指示する読み出し手順で先行読み出し処理を実行するための読み出しプログラムをCPU31のROM等の内部メモリに格納する必要があるため、CPU31の内部メモリの容量を実施の形態2のCPU31Bに対して大きくする必要がある。
On the other hand, in the first embodiment, it is necessary to store a read program for executing the preceding read process in the read procedure indicated by the access ID data AIj in the internal memory such as the ROM of the
さらに、実施の形態2の暗号モジュール30Bでは、比較的大容量のメモリコア部4のメモリ41に命令コード群MCiを格納することにより、多様な読み出し内容(読み出し手順)を実行する読み出しプログラムを命令コード群MC1〜MCnとして格納することができる効果を奏する。
Further, in the
なお、上述した実施の形態では、暗号モジュール30を暗号装置として説明したが、コンテンツデータD41(部分暗号対象データPD1〜PD6)、及びアクセスIDデータAI1〜AIn(命令コード群MC1〜MCn)を格納するメモリ41と暗号モジュール30とからなる構成を本発明の暗号処理システムとして考えることもできる。
In the above-described embodiment, the
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。 It should be noted that the present invention can be freely combined with each other within the scope of the invention, and each embodiment can be appropriately modified or omitted.
1 ホスト部
2 メモリコントローラ部
4 メモリコア部
22 制御部
30,30B 暗号モジュール
31,31B CPU
32 暗号演算器
24 セレクタ
25 メモリI/F
41 メモリ
DESCRIPTION OF
32
41 memory
Claims (8)
前記暗号対象データを記憶した外部のメモリ部から前記暗号対象データを読み出すデータ読み出し処理を行うとともに、読み出した前記暗号対象データを前記暗号演算器に出力する暗号制御部とを備え、
前記暗号対象データは前記データ読み出し処理により、前記メモリ部から第1,第2,第m(≧2)の順より順次読み出される第1〜第mの部分暗号対象データを含み、
前記暗号制御部は
前記暗号演算器による第i(i=1〜(m−1))の部分暗号対象データに対する暗号処理が実行される暗号処理期間中において、
前記メモリ部からの第(i+1)の部分暗号対象データを読み出す前記データ読み出し処理における先行読み出し処理を実行することを特徴とする、
暗号装置。 A cryptographic operation unit that performs cryptographic processing on the data to be encrypted and obtains encrypted data;
A data reading process for reading out the encryption target data from an external memory unit that stores the encryption target data, and a cipher control unit that outputs the read encryption target data to the encryption calculator,
The encryption target data includes first to mth partial encryption target data sequentially read from the memory unit in the order of the first, second, and mth (≧ 2) by the data reading process,
In the cryptographic processing period in which the cryptographic processing is performed on the i-th (i = 1 to (m−1)) partial encryption target data by the cryptographic computing unit,
The preceding read process in the data read process for reading the (i + 1) th partial encryption target data from the memory unit is performed.
Crypto device.
前記暗号制御部と前記暗号演算器との間に設けられる配線を外部から隠蔽したことを特徴とする、
暗号装置。 The encryption device according to claim 1,
The wiring provided between the cryptographic control unit and the cryptographic calculator is concealed from the outside,
Crypto device.
前記暗号制御部は
前記先行読み出し処理以外の電力消費処理をさらに実行することを特徴とする、
暗号装置。 The encryption device according to claim 1 or 2, wherein
The encryption control unit further executes power consumption processing other than the preceding read processing,
Crypto device.
前記メモリ部は前記先行読み出し処理における読み出し手順を規定する複数の読み出しアクセス情報をさらに格納し、
前記電力消費処理は、前記先行読み出し処理の前に実行され、前記複数の読み出しアクセス情報から一の情報を選択読み出しアクセス情報として前記メモリ部から読み出すアクセス情報読み出し処理を含み、
前記先行読み出し処理は、前記選択読み出しアクセス情報の指示する読み出し手順に従い、前記第(i+1)の部分暗号対象データを読み出す処理を含む、
暗号装置。 The encryption device according to claim 3,
The memory unit further stores a plurality of read access information defining a read procedure in the preceding read process,
The power consumption process includes an access information read process that is executed before the preceding read process and reads one information from the plurality of read access information as the selected read access information from the memory unit,
The preceding read process includes a process of reading the (i + 1) th partial encryption target data according to a read procedure instructed by the selective read access information.
Crypto device.
前記メモリ部は、前記暗号制御部における前記先行読み出し処理用の読み出しプログラムを規定する複数の命令コード情報をさらに格納し、
前記電力消費処理は、前記先行読み出し処理の前に実行され、前記複数の命令コード情報のうち一の情報を選択読み出し命令コード情報として読み出す、命令コード読み出し処理を含み、
前記先行読み出し処理は、前記選択命令コード情報で規定された読み出しプログラムを実行する処理を含む、
暗号装置。 The encryption device according to claim 3,
The memory unit further stores a plurality of instruction code information defining a read program for the preceding read process in the encryption control unit,
The power consumption process includes an instruction code read process that is executed before the preceding read process and reads one information out of the plurality of instruction code information as a selective read instruction code information,
The preceding read process includes a process of executing a read program defined by the selected instruction code information.
Crypto device.
前記電力消費処理は前記先行読み出し処理と関連性のない少なくとも一つのダミー処理を含み、前記少なくとも一つのダミー処理は前記部分暗号対象データ毎にその内容を変化させることが可能であることを特徴とする、
暗号装置。 The encryption device according to any one of claims 3 to 5,
The power consumption process includes at least one dummy process unrelated to the preceding read process, and the at least one dummy process can change the contents of each partial encryption target data. To
Crypto device.
前記少なくとも一つのダミー処理は前記先行読み出し処理の後に行われるダミー処理を含む、
暗号装置。 The encryption device according to claim 6,
The at least one dummy process includes a dummy process performed after the preceding read process;
Crypto device.
前記暗号制御部は、前記暗号処理期間の全時間帯において、前記データ読み出し処理及び前記電力消費処理のうち一方を実行することを特徴とする、
暗号装置。 The encryption device according to any one of claims 3 to 7,
The encryption control unit executes one of the data reading process and the power consumption process in the entire time period of the encryption processing period.
Crypto device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013068075A JP2014192793A (en) | 2013-03-28 | 2013-03-28 | Cryptographic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013068075A JP2014192793A (en) | 2013-03-28 | 2013-03-28 | Cryptographic device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014192793A true JP2014192793A (en) | 2014-10-06 |
JP2014192793A5 JP2014192793A5 (en) | 2016-04-07 |
Family
ID=51838672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013068075A Pending JP2014192793A (en) | 2013-03-28 | 2013-03-28 | Cryptographic device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014192793A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018060159A (en) * | 2016-10-05 | 2018-04-12 | 株式会社メガチップス | Encryption device, memory device, host device, and memory system |
WO2020121527A1 (en) | 2018-12-14 | 2020-06-18 | 三菱電機株式会社 | Learning identification device, learning identification method, and learning identification program |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07245604A (en) * | 1994-03-04 | 1995-09-19 | Fujitsu Ltd | Ciphering processing circuit |
JP2005328198A (en) * | 2004-05-12 | 2005-11-24 | Sony Corp | Program, computer, and data processing method |
JP2007195132A (en) * | 2005-12-20 | 2007-08-02 | Sony Corp | Encryption processing apparatus |
JP2008512909A (en) * | 2004-09-10 | 2008-04-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Integrated circuit chip for encryption and decryption with secure mechanism for programming on-chip hardware |
JP2012088991A (en) * | 2010-10-21 | 2012-05-10 | Mega Chips Corp | Semiconductor memory and computer system |
-
2013
- 2013-03-28 JP JP2013068075A patent/JP2014192793A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07245604A (en) * | 1994-03-04 | 1995-09-19 | Fujitsu Ltd | Ciphering processing circuit |
JP2005328198A (en) * | 2004-05-12 | 2005-11-24 | Sony Corp | Program, computer, and data processing method |
JP2008512909A (en) * | 2004-09-10 | 2008-04-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Integrated circuit chip for encryption and decryption with secure mechanism for programming on-chip hardware |
JP2007195132A (en) * | 2005-12-20 | 2007-08-02 | Sony Corp | Encryption processing apparatus |
JP2012088991A (en) * | 2010-10-21 | 2012-05-10 | Mega Chips Corp | Semiconductor memory and computer system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018060159A (en) * | 2016-10-05 | 2018-04-12 | 株式会社メガチップス | Encryption device, memory device, host device, and memory system |
WO2020121527A1 (en) | 2018-12-14 | 2020-06-18 | 三菱電機株式会社 | Learning identification device, learning identification method, and learning identification program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190042765A1 (en) | Security devices, electronic devices and methods of operating electronic devices | |
US9003202B2 (en) | Memory control device, semiconductor memory device, memory system, and memory control method | |
US8879727B2 (en) | Method and apparatus for hardware-accelerated encryption/decryption | |
JP4991223B2 (en) | Data processing device | |
JP4843531B2 (en) | Encryption conversion apparatus, encryption conversion method, and encryption conversion program | |
TW200830327A (en) | System and method for encrypting data | |
US8429426B2 (en) | Secure pipeline manager | |
CN109388953B (en) | Security device, electronic device, and method of operating electronic device | |
JP2004226969A (en) | Cryptographic system and method for supporting multiple modes | |
US20190158299A1 (en) | Efficient delay-based puf implementation using optimal racing strategy | |
JP2011254440A (en) | Information processing apparatus | |
EP2434682A1 (en) | Cryptographic apparatus and memory system | |
CN103365625A (en) | Random value production methods and systems | |
US8635463B2 (en) | Information storage apparatus, information storage method, and electronic device | |
JP2014192793A (en) | Cryptographic device | |
Homsirikamol et al. | A universal hardware API for authenticated ciphers | |
JP2005122745A (en) | Data encryption in electronic apparatus with symmetric multiprocessor | |
JP2008199572A (en) | Confidential information processing apparatus, confidential information processing device, and confidential information processing method | |
JP4960456B2 (en) | Dual mode AES implementation supporting single and multiple AES operations | |
US20120321079A1 (en) | System and method for generating round keys | |
JP2004078053A (en) | Ciphering device | |
WO2016140596A1 (en) | Data encryption device (variants) and system-on-chip using same (variants) | |
JP5744673B2 (en) | Information processing system, information processing method, and program | |
US20130061292A1 (en) | Methods and systems for providing network security in a parallel processing environment | |
JP2008181375A (en) | Semiconductor storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160218 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161101 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170509 |