JP2014192793A - Cryptographic device - Google Patents

Cryptographic device Download PDF

Info

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
Application number
JP2013068075A
Other languages
Japanese (ja)
Other versions
JP2014192793A5 (en
Inventor
Masayuki Imagawa
雅之 今川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MegaChips Corp
Original Assignee
MegaChips Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MegaChips Corp filed Critical MegaChips Corp
Priority to JP2013068075A priority Critical patent/JP2014192793A/en
Publication of JP2014192793A publication Critical patent/JP2014192793A/en
Publication of JP2014192793A5 publication Critical patent/JP2014192793A5/ja
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To obtain a tamper-proof cryptographic device in which the cryptographic time is shortened by a relatively simple configuration.SOLUTION: A CPU 31 and a cryptographic calculator 32 are single packaged in a cryptographic module. During a cryptographic processing period T10 when cryptographic processing for partial encryption target data PD1-PD5 is performed by the cryptographic calculator 32, the CPU 31 performs read-ahead processing for reading the partial encryption target data PD2-PD6 from a memory, and power consumption processing other than the read-ahead processing (read processing (preliminary processing) performed during an access ID reading period T31 and dummy processing performed during dummy processing periods DT31-DT33).

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 Patent Document 1 for countermeasures such as side channel attacks. This cryptographic processing apparatus performs dummy processing during encryption / decryption.

サイドチャネル攻撃等の他の対策用に特許文献2に開示されたデータ処理装置がある。このデータ処理装置は、消費電力を均一化させるために、暗号化/復号化の実行開始時間に遅延を生じさせている。   There is a data processing device disclosed in Patent Document 2 for other countermeasures such as a side channel attack. This data processing apparatus delays the execution start time of encryption / decryption in order to make power consumption uniform.

サイドチャネル攻撃等の他の対策用に特許文献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.

特開2004−212828号公報Japanese Patent Laid-Open No. 2004-212828 特開2010−277327号公報JP 2010-277327 A 特開2006−279868号公報JP 2006-279868 A

しかしながら、特許文献1に開示の暗号処理装置及び特許文献2に開示のデータ処理装置は、暗号化処理中にダミー処理を実行したり、実行開始時間を遅延させたりしているため、暗号処理速度が犠牲となっている問題点があった。   However, since the encryption processing device disclosed in Patent Literature 1 and the data processing device disclosed in Patent Literature 2 execute dummy processing during the encryption processing or delay the execution start time, the encryption processing speed There was a problem that was sacrificed.

また、特許文献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 claim 4 is the encryption apparatus according to claim 3, wherein the memory unit further stores a plurality of read access information defining a read procedure in the preceding read process, and the power consumption process An access information read process that is executed before the read process and reads one piece of information from the plurality of read access information as the selected read access information from the memory unit, wherein the preceding read process indicates the selected read access information According to the reading procedure, the processing includes reading the (i + 1) th partial encryption target data.

請求項5の発明は、請求項3記載の暗号装置であって、前記メモリ部は、前記暗号制御部における前記先行読み出し処理用の読み出しプログラムを規定する複数の命令コード情報をさらに格納し、前記電力消費処理は、前記先行読み出し処理の前に実行され、前記複数の命令コード情報のうち一の情報を選択読み出し命令コード情報として読み出す、命令コード読み出し処理を含み、前記先行読み出し処理は、前記選択命令コード情報で規定された読み出しプログラムを実行する処理を含む。   The invention according to claim 5 is the encryption device according to claim 3, wherein 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 selected read instruction code information. It includes processing for executing a read program defined by the instruction code information.

請求項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である暗号モジュールを含むシステム構成を示すブロック図である。It is a block diagram which shows the system configuration | structure containing the encryption module which is Embodiment 1 of this invention. 実施の形態1の暗号モジュールにおけるデータ読み出し処理内容を表形式で示す説明図である。FIG. 4 is an explanatory diagram showing, in a table format, data read processing contents in the cryptographic module according to the first embodiment. 暗号演算期間中における実施の形態1の暗号モジュールの処理内容を模式的に示す説明図(その1)である。It is explanatory drawing (the 1) which shows typically the processing content of the encryption module of Embodiment 1 in the encryption calculation period. 暗号演算期間中における実施の形態1の暗号モジュールの処理内容を模式的に示す説明図(その2)である。It is explanatory drawing (the 2) which shows typically the processing content of the encryption module of Embodiment 1 in the encryption calculation period. 暗号処理期間におけるCPUの処理動作に伴う消費電力変化を模式的に示す説明図である。It is explanatory drawing which shows typically the power consumption change accompanying the processing operation of CPU in an encryption processing period. この発明の実施の形態2である暗号モジュールを含むシステム構成を示すブロック図である。It is a block diagram which shows the system configuration | structure containing the encryption module which is Embodiment 2 of this invention. 暗号演算期間中における実施の形態2の暗号モジュールの処理内容を模式的に示す説明図(その1)である。It is explanatory drawing (the 1) which shows typically the processing content of the encryption module of Embodiment 2 in the encryption calculation period. 暗号演算期間中における実施の形態2の暗号モジュールの処理内容を模式的に示す説明図(その2)である。It is explanatory drawing (the 2) which shows typically the processing content of the encryption module of Embodiment 2 in the encryption calculation period.

<実施の形態1>
(構成)
図1はこの発明の実施の形態1である暗号モジュール30(暗号装置)を含むシステム構成を示すブロック図である。同図に示すように、データ処理システム51は、ホスト部1、メモリコントローラ部2及びメモリコア部4から構成される。
<Embodiment 1>
(Constitution)
FIG. 1 is a block diagram showing a system configuration including an encryption module 30 (encryption device) according to Embodiment 1 of the present invention. As shown in the figure, the data processing system 51 includes a host unit 1, a memory controller unit 2, and a memory core unit 4.

ホスト部1は内部にSoC(System-on-a-Chip)11を有し、メモリコントローラ部2は内部にホストI/F21、制御部22、暗号モジュール30、セレクタ24及びメモリI/F25を有している。メモリコア部4は内部にメモリ41を有している。   The host unit 1 has a SoC (System-on-a-Chip) 11 inside, and the memory controller unit 2 has a host I / F 21, a control unit 22, a cryptographic module 30, a selector 24, and a memory I / F 25 inside. doing. The memory core unit 4 has a memory 41 inside.

ホスト部1からホストI/F21を介して制御部22に対し、暗号対象データの読み出しを要求するメモリリード要求を与えることができる。   A memory read request for requesting reading of encryption target data can be given from the host unit 1 to the control unit 22 via the host I / F 21.

一方、メモリコア部4内のメモリ41は不揮発性メモリであり、暗号対象データとなるコンテンツデータD41及び後述するアクセスIDデータAI1〜AIn(読み出しアクセス情報)を格納している。   On the other hand, the memory 41 in the memory core unit 4 is a non-volatile memory, and stores content data D41 to be encrypted data and access ID data AI1 to AIn (read access information) described later.

以下、メモリコントローラ部2の各構成について述べる。制御部22は、メモリコントローラ部2に関する全体制御を行う。   Hereinafter, each configuration of the memory controller unit 2 will be described. The control unit 22 performs overall control related to the memory controller unit 2.

暗号モジュール30はCPU31及び暗号演算器32から構成される。暗号演算器32はCPU31によって送信される暗号対象データに対する暗号演算処理を行い暗号化データを得る回路ブロック(IP(Intellectual Property))である。なお、暗号演算処理内容については特に制限は無い。   The cryptographic module 30 includes a CPU 31 and a cryptographic calculator 32. The cryptographic calculator 32 is a circuit block (IP (Intellectual Property)) that performs cryptographic calculation processing on the encryption target data transmitted by the CPU 31 and obtains encrypted data. In addition, there is no restriction | limiting in particular about the content of a cryptographic calculation process.

また、暗号演算器32は、暗号対象データ(暗号化/復号化したデータ)を格納可能なレジスタを備えている。なお、レジスタ分だけRAM等の記憶部を配置する構成も考えられる。レジスタ及びRAMのいずれを配置するかは例えばコストとのトレードオフにより決定される。   Further, the cryptographic operation unit 32 includes a register capable of storing encryption target data (encrypted / decrypted data). A configuration in which a storage unit such as a RAM is arranged for the registers is also conceivable. Which of the register and the RAM is arranged is determined by, for example, a trade-off with cost.

CPU31はセレクタ24を制御して、メモリコア部4内のメモリ41からメモリI/F25を介してコンテンツデータD41を暗号対象データとして読み出すデータ読み出し処理を行う。さらに、CPU31は、読み出した暗号対象データを暗号演算器32に送信し、暗号演算器32より得た暗号化データを受信する処理を行う。   The CPU 31 controls the selector 24 to perform a data read process for reading the content data D41 from the memory 41 in the memory core unit 4 via the memory I / F 25 as encryption target data. Further, the CPU 31 performs a process of transmitting the read encryption target data to the cryptographic calculator 32 and receiving the encrypted data obtained from the cryptographic calculator 32.

暗号モジュール30は、CPU31及び暗号演算器32が1パッケージ化(1チップ化)されて構成される。したがって、CPU31と暗号演算器32との間の信号(データ)授受用の配線を外部から隠蔽することができる。   The cryptographic module 30 includes a CPU 31 and a cryptographic calculator 32 that are packaged (one chip). Therefore, the signal (data) exchange wiring between the CPU 31 and the cryptographic calculator 32 can be concealed from the outside.

セレクタ24は、メモリ41のアクセス対象としてCPU31を選択してメモリ41〜CPU31間の第1のデータ読み出しルートを設けるか、メモリ41のアクセス対象として制御部22を選択してメモリ41〜制御部22間の第2のデータ読み出しルートを設けるかを切り替える切り替え操作を行う。   The selector 24 selects the CPU 31 as the access target of the memory 41 and provides a first data read route between the memories 41 to 31, or selects the control unit 22 as the access target of the memory 41 and selects the memory 41 to the control unit 22. A switching operation is performed for switching whether to provide a second data read route.

セレクタ24による切り替え操作は、暗号演算器32による暗号演算処理を実行させる期間はCPU31の制御下で行われ、それ以外の一般的なメモリアクセス期間は制御部22の制御下で行われる。   The switching operation by the selector 24 is performed under the control of the CPU 31 during the period for executing the cryptographic operation processing by the cryptographic calculator 32, and the other general memory access period is performed under the control of the control unit 22.

(原理)
本発明は、暗号演算器32による暗号演算処理時におけるサイドチャネル攻撃に対する耐タンパー性を向上させると共に、暗号処理のパフォーマンスを向上させるための暗号モジュール30におけるCPU31の処理に関するソフトウェア実装方法の提案である。
(principle)
The present invention is a proposal of a software implementation method related to the processing of the CPU 31 in the cryptographic module 30 for improving the tamper resistance against side channel attacks during the cryptographic calculation processing by the cryptographic calculator 32 and improving the performance of the cryptographic processing. .

具体的には、暗号演算器32とCPU31とを1パッケージ化して暗号モジュール30として、暗号モジュール30内のCPU31による制御(ソフトウェア制御)によって、暗号モジュール30における消費電力値の均等化(バラつき)及び暗号処理の高速化を実現している。   Specifically, the cryptographic operation unit 32 and the CPU 31 are packaged as one cryptographic module 30, and the power consumption values in the cryptographic module 30 are equalized (varied) and controlled by the CPU 31 in the cryptographic module 30 (software control). High speed cryptographic processing is realized.

(データ読み出し処理と暗号演算処理)
図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 memory 41 existing in the memory core unit 4 outside the memory controller unit 2 (encryption module 30).

まず、ステップSTEP0において、CPU31によってメモリ41からアドレス4000〜41FFhのメモリ41である部分暗号対象データPD1を読み出す。このとき、暗号演算器32は暗号演算処理を実行していない。   First, in step STEP0, the CPU 31 reads from the memory 41 the partial encryption target data PD1 that is the memory 41 at addresses 4000 to 41FFh. At this time, the cryptographic calculator 32 is not executing cryptographic calculation processing.

ステップ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 host unit 1 to the CPU 31 via the control unit 22 {SA (Start Address) = 4000h (encryption processing size = 200h), RS (Read Size). ; Read size) = C00h} is stored in an internal memory such as a register (not shown) in the CPU 31, and the content data D41 is read from the memory 41 in accordance with the above-described SA and RS.

したがって、上記メモリリード要求に従い、メモリ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 memory 41 is each encrypted processing size 200h. The partial encryption target data PD1 to PD6 (first to sixth partial encryption target data) are sequentially read out by the CPU 31 and transmitted to the cryptographic computing unit 32, and then the cryptographic operation processing is performed on the partial encryption target data PD1 to PD6. become.

なお、ステップ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 cryptographic calculator 32, the partial cryptographic target data PD1 is input to the cryptographic calculator 32, but the cryptographic calculator 32 is encrypted. Since arithmetic processing is not started, “−” is described in FIG.

次に、ステップSTEP1において、暗号演算器32はステップSTEP0でCPU31によって読み出された部分暗号対象データPD1(アドレス4000〜41FFhのコンテンツデータD41)に対する暗号演算処理を行い、CPU31は部分暗号対象データPD2(アドレス4200〜43FFhのコンテンツデータD41)の先行読み出し処理を行う。   Next, in step STEP1, the cryptographic calculator 32 performs cryptographic calculation processing on the partial encryption target data PD1 (content data D41 of addresses 4000 to 41FFh) read by the CPU 31 in step STEP0, and the CPU 31 performs partial encryption target data PD2. Pre-reading processing of (content data D41 at addresses 4200 to 43FFh) is performed.

以下、同様に、ステップSTEP2〜STEP5において、暗号演算器32はステップSTEP1〜STEP4でCPU31によって読み出された部分暗号対象データPD2〜PD4に対する暗号演算処理を行い、CPU31は部分暗号対象データPD3〜PD5の先行読み出し処理を行う。   Thereafter, similarly, in steps STEP2 to STEP5, the cryptographic calculator 32 performs cryptographic calculation processing on the partial encryption target data PD2 to PD4 read by the CPU 31 in steps STEP1 to STEP4, and the CPU 31 performs the partial encryption target data PD3 to PD5. The preceding read process is performed.

そして、ステップSTEP6において、暗号演算器32は部分暗号対象データPD6に対する暗号演算処理を行い、部分暗号対象データPD1〜PD6に対する暗号化処理は完了する。なお、ステップSTEP6においては先行読み出し処理が実行されないため、図2に示すように、意図的に消費電力バラツキ処理を行うことが望ましい。   In step STEP6, the cryptographic calculator 32 performs cryptographic calculation processing on the partial encryption target data PD6, and the encryption processing on the partial encryption target data PD1 to PD6 is completed. In step STEP6, since the preceding read process is not executed, it is desirable to intentionally perform the power consumption variation process as shown in FIG.

このように、暗号制御部であるCPU31は、暗号演算器による部分暗号対象データPDi(i=1〜5のいずれか)に対する暗号演算処理の実行時間中において、メモリ41からの部分暗号対象データPD(i+1)を読み出す先行読み出し処理(データ読み出し処理)を並行して実行している。   As described above, the CPU 31 serving as the encryption control unit performs the partial encryption target data PD from the memory 41 during the execution time of the cryptographic operation processing on the partial encryption target data PDi (any of i = 1 to 5) by the encryption calculator. A preceding read process (data read process) for reading (i + 1) is performed in parallel.

したがって、通常の暗号化処理に比べ、部分暗号対象データ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 encryption module 30, the time is shortened by (time for reading the partial encryption target data PD) × (for the number of preceding read processing times) (= 5 times). Processing speed can be increased.

(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 CPU 31 and the cryptographic calculator 32) according to the first embodiment.

以下、同図を参照して、図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 cipher operation unit 32 executes the cipher operation processing on each of the partial encryption target data PD1 to PD6 to obtain the partial encrypted data CD1 to CD6. Is used as an example to explain how power consumption is equalized or distributed. For convenience of explanation, the cryptographic operation unit 32 is capable of performing a collective cryptographic computation process on each of the partial encryption target data PD1 to PD6. That is, the cryptographic operation unit 32 has an internal storage unit such as a register for the data size of the partial encryption target data PD (the size depends on the key length or the like).

まず、制御部22からの暗号処理開始ST0がなされる。暗号処理開始ST0に際して、制御部22は例えば{SA(Start Address)=4000h (暗号処理サイズ = 200h)、RS(Read Size)=C00h}を指示する読み出し要求を行う。この読み出し要求はホスト部1からの前述したメモリリード要求に基づいてなされる。   First, encryption processing start ST0 from the control unit 22 is performed. At the start of encryption processing ST0, the control unit 22 makes a read request instructing, for example, {SA (Start Address) = 4000h (encryption processing size = 200h), RS (Read Size) = C00h}. This read request is made based on the above-described memory read request from the host unit 1.

上記読み出し要求に沿って、図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 CPU 31.

すると、CPU31は、セレクタ24を変更する切り替え処理PR21を実行することにより、メモリI/F25を介したメモリ41〜CPU31間の第1の読み出しルートを設ける。   Then, the CPU 31 executes a switching process PR21 for changing the selector 24, thereby providing a first read route between the memory 41 and the CPU 31 via the memory I / F 25.

その後、CPU31はメモリI/F25を介してメモリ41に対し、部分暗号対象データPD1の読み出し処理R41を実行して、部分暗号対象データPD1を得る。CPU31によってメモリ41から部分暗号対象データPD1を読み出す期間が暗号対象データ読出期間T21となる。   Thereafter, the CPU 31 executes a read process R41 of the partial encryption target data PD1 with respect to the memory 41 via the memory I / F 25 to obtain partial encryption target data PD1. A period during which the CPU 31 reads the partial encryption target data PD1 from the memory 41 is an encryption target data reading period T21.

そして、CPU31は部分暗号対象データPD1を暗号演算器32に送信することにより、部分暗号対象データPD1が暗号演算器32のレジスタ等に入力される。   Then, the CPU 31 transmits the partial encryption target data PD1 to the encryption calculator 32, whereby the partial encryption target data PD1 is input to the register of the encryption calculator 32 and the like.

上述した暗号処理開始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 cryptographic calculator 32 executes cryptographic calculation processing on the partial encryption target data PD1 immediately after receiving the partial encryption target data PD1, the encryption processing period T10 starts from the beginning of the loop processing LP1.

この暗号処理期間T10において、CPU31は暗号モジュール30の消費電力の均等化を図るべく、後に詳述するが、部分暗号対象データPD2の先行読み出し処理RD42以外に様々な電力消費処理(PR22〜PR28,RD51)を実行する。   In this cryptographic processing period T10, the CPU 31 will be described in detail later in order to equalize the power consumption of the cryptographic module 30, but various power consumption processes (PR22 to PR28, PR22 to PR28, in addition to the preceding read process RD42 of the partial encryption target data PD2). RD51) is executed.

CPU31は、ループ処理LP1の開始直後において、メモリ41に格納されたアクセスIDデータAI1〜AInのうち、読み出し対象として選択されるアクセスIDデータAIj(j=1〜nのいずれか)を乱数で決定する処理PR22を実行する。   The CPU 31 immediately determines the access ID data AIj (j = 1 to n) selected as a read target from among the access ID data AI1 to AIn stored in the memory 41 immediately after the start of the loop process LP1. The process PR22 to be executed is executed.

その後、CPU31は、読み出しWait時間を乱数で決定し、Wait期間中にWait処理(後述するダミー処理)を行う処理PR23を実行する。   Thereafter, the CPU 31 determines a read wait time with a random number, and executes a process PR23 for performing a wait process (a dummy process described later) during the wait period.

処理PR23が終了すると、CPU31は、メモリ41に格納された選択読み出しアクセス情報であるアクセスIDデータAIj(処理PR22にて決定)の読み出し処理RD51(アクセス情報読み出し処理)を行い、メモリ41からアクセスIDデータAIjを読み出す。読み出し処理RD51の実行期間がアクセスIDデータ読出期間T31となる。   When the process PR23 is completed, the CPU 31 performs a read process RD51 (access information read process) of the access ID data AIj (determined by the process PR22), which is the selected read access information stored in the memory 41, and accesses the access ID from the memory 41. Read data AIj. The execution period of the read process RD51 is the access ID data read period T31.

その後、CPU31は、アクセスIDデータAIjの内容をデコードする処理PR24を実行し、続けて、アクセスIDデータAIjで指示されたメモリアクセス方法を決定する処理PR25を行う。ここで処理PR25により決定されたメモリアクセス方法を「アクセス方法j」とする。   Thereafter, the CPU 31 executes a process PR24 for decoding the contents of the access ID data AIj, and subsequently performs a process PR25 for determining a memory access method designated by the access ID data AIj. Here, the memory access method determined by the process PR25 is referred to as “access method j”.

そして、CPU31は、読み出しまでのWait時間を乱数で決定し、Wait時間分、Wait処理(ダミー処理)を行う、処理PR26を実行する。   Then, the CPU 31 determines a wait time until reading with a random number, and executes a process PR26 for performing a wait process (dummy process) for the wait time.

処理PR26が終了すると、CPU31は、アクセス方法jに従った読み出し手順で部分暗号対象データPD2の先行読み出し処理R42を実行して、部分暗号対象データPD2を得る。CPU31によってメモリ41から部分暗号対象データPD2を読み出す期間が暗号対象データ読出期間T22となる。ここで、アクセス方法jによる読み出し手順で読み出された部分暗号対象データPD2を部分暗号対象データPD2xとする。部分暗号対象データPD2xはアクセス方法jに従った読み出し手順で読み出された結果のデータ列であるため、通常は部分暗号対象データPD2と異なる内容となる。   When the process PR26 is finished, the CPU 31 executes the pre-read process R42 for the partial encryption target data PD2 by the read procedure according to the access method j to obtain the partial encryption target data PD2. A period during which the CPU 31 reads the partial encryption target data PD2 from the memory 41 is an encryption target data read period T22. Here, the partial encryption target data PD2 read in the read procedure by the access method j is set as partial encryption target data PD2x. Since the partial encryption target data PD2x is a data string obtained as a result of being read by the read procedure according to the access method j, it usually has different contents from the partial encryption target data PD2.

その後、CPU31は、暗号演算器32に入力する部分暗号対象データのフォーマット変更する処理PR27を実行する。すなわち、部分暗号対象データPD2xを本来の部分暗号対象データPD2に整形する処理を行う。   Thereafter, the CPU 31 executes a process PR27 for changing the format of the partial encryption target data input to the cryptographic calculator 32. That is, a process of shaping the partial encryption target data PD2x into the original partial encryption target data PD2 is performed.

例えば、先行読み出し処理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 CPU 31 is in the cryptographic processing period T10 and has not received the cryptographic operation processing end signal RE1 from the cryptographic computing unit 32, the power consumption is varied during the Wait period until the processing end signal RE1 is received. A dummy process (Wait process) is performed as process PR28.

そして、CPU31は、暗号演算器32からの処理終了信号RE1を受信後、処理PR28を終了して、暗号化データ取得要求RQ24を暗号演算器32に対して行う。   Then, after receiving the processing end signal RE1 from the cryptographic operation unit 32, the CPU 31 ends the process PR28 and makes an encrypted data acquisition request RQ24 to the cryptographic operation unit 32.

暗号化データ取得要求RQ24を受けた暗号演算器32は部分暗号対象データPD1に対して暗号演算処理を行って得られる部分暗号化データCD1をCPU31に送信する。   The cryptographic calculator 32 that has received the encrypted data acquisition request RQ24 transmits to the CPU 31 the partially encrypted data CD1 obtained by performing the cryptographic calculation process on the partial encryption target data PD1.

一方、CPU31は、1page size(200h)分の部分暗号化データCD1の受信の完了を確認し、部分暗号化データCD1を制御部22に送信する部分暗号対象データの受信完了処理PR29を行う。処理PR29が終了すると、先行読み出し処理RD42で読み出し、処理PR27でフォーマット変更された次の部分暗号対象データPDである部分暗号対象データPD2を暗号演算器32に送信し、1回目のループ処理LP1を終了する。   On the other hand, the CPU 31 confirms the completion of reception of the partial encrypted data CD1 for one page size (200h), and performs a partial encryption target data reception completion process PR29 for transmitting the partial encrypted data CD1 to the control unit 22. When the process PR29 is completed, the partial encryption target data PD2, which is the next partial encryption target data PD read in the preceding read process RD42 and reformatted in the process PR27, is transmitted to the cryptographic computing unit 32, and the first loop process LP1 is performed. finish.

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 cryptographic calculator 32 and the preceding read process RD43 for the partial encryption target data PD3 by the CPU 31. The same as the first time.

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 cryptographic operation unit 32 and the preceding read processing RD44 to RD46 of the partial encryption target data PD4 to PD6 by the CPU 31 are performed in parallel. This processing is mainly performed, and each is performed in the same manner as the first time.

5回目のループ処理LP1が終了すると、ループ処理LP1を外れ、暗号演算器32は部分暗号対象データPD6に対する暗号演算処理(図示省略)を行った後、暗号化データCD6をCPU31に送信する。   When the fifth loop processing LP1 is completed, the loop processing LP1 is terminated, and the cryptographic calculator 32 performs cryptographic calculation processing (not shown) on the partial encryption target data PD6, and then transmits the encrypted data CD6 to the CPU 31.

その後、CPU31は、セレクタ24を変更(切り替え制御)する処理PR30を実行することにより、メモリI/F25を介したメモリ41〜制御部22間の第2の読み出しルートに変更する。   Thereafter, the CPU 31 changes to a second read route between the memory 41 and the control unit 22 via the memory I / F 25 by executing a process PR30 for changing (switching control) the selector 24.

CPU31が暗号演算器32に対し、部分暗号対象データPD1〜PD6に対する部分暗号化データCD1〜CD6の取得を完了したことを暗号演算器32に通知する暗号処理終了信号RE2を通知する処理PR31を行って終了する。   The CPU 31 performs processing PR31 for notifying the cryptographic operation unit 32 of the cryptographic processing end signal RE2 for notifying the cryptographic operation unit 32 that the acquisition of the partial encrypted data CD1 to CD6 for the partial encryption target data PD1 to PD6 has been completed. To finish.

(アクセス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 CPU 31 to read out the content data D41 (partial encryption target data PD).

アクセス方法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 memory controller unit 2, the memory 41 to the memory I / I There is an effect that power consumption between F25 can be increased. For example, when the access ID data AIj is “AAh” (= “10101010”), the access method j can be set to read sequentially in the order of addresses.

なお、説明の都合上、アクセス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 CPU 31 starts the operation by the encryption processing start ST0 obtained from the control unit 22 (see FIG. 2). At this timing, the CPU 31, SA (Start Address), and RS (Read Size) are held.

そして、CPU31は、最初の部分暗号対象データである部分暗号対象データPD1の暗号演算器32への送信を終えると、ループ処理LP1内おいて次の部分暗号対象データPD2〜PD5の先行読み出し処理とそれ以外の電力消費処理を行う。   When the CPU 31 finishes transmitting the partial encryption target data PD1, which is the first partial encryption target data, to the cryptographic operation unit 32, the CPU 31 performs the preceding read processing of the next partial encryption target data PD2 to PD5 in the loop process LP1. Other power consumption processing is performed.

電力消費処理は多く分けて以下の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 CPU 31 will be described in detail. In order to vary the power consumption by the cryptographic module 30, dummy processing (Wait processing) during the Wait period is prepared in the following three patterns (listed in descending order of power consumption), and the CPU 31 performs a pre-reading process performed during the cryptographic processing period T10. In addition, the total time of the power consumption processing and the like can be arbitrarily changed.

(1) CPU31によるメモリ41へのダミー読み出し処理、
(2) CPU31をアクティブ(Active)状態にしたダミー演算処理の実行、
(3) CPU31を省電力モードにしてスリープ状態にする。
(1) Dummy read processing to the memory 41 by the CPU 31;
(2) Execution of dummy calculation processing with the CPU 31 in an active state,
(3) The CPU 31 is set in the power saving mode and put in the sleep state.

なお、(1)のダミー読み出し処理でメモリ41から読み出したデータはCPU31側で保存することなく廃棄される。また、(2)のダミー演算処理として単純なループ処理を繰り返し実行するシンプルループ処理が含まれる。これらのパターン(1)〜(3)をCPU31側で乱数を発生させ、ランダムに実行することによりダミー処理が実行される。   The data read from the memory 41 in the dummy reading process (1) is discarded without being saved on the CPU 31 side. In addition, the dummy operation process (2) includes a simple loop process that repeatedly executes a simple loop process. A dummy process is performed by generating random numbers on the CPU 31 side and executing these patterns (1) to (3) at random.

この際、暗号演算器32による暗号演算処理の最短時間を予め算出しておく。なぜなら、ダミー処理期間(Wait期間)が長すぎて、新たな部分暗号対象データPDに対する暗号演算処理開始時間や、新たな部分暗号対象データPDの読み出し完了時間が遅くなってしまっては、本実施の形態の目的とする暗号モジュール30による暗号演算処理の高速化を果たすことができないからである。   At this time, the shortest time for the cryptographic calculation processing by the cryptographic calculator 32 is calculated in advance. This is because if the dummy processing period (Wait period) is too long, the start time of the cryptographic operation processing for the new partial encryption target data PD and the completion time for reading the new partial encryption target data PD are delayed. This is because the speed of the cryptographic operation processing by the cryptographic module 30 that is the object of the embodiment cannot be achieved.

上述した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 cryptographic operation unit 32 is completed, the preceding read processing from the memory 41 by the CPU 31 is completed, and a new It is possible to immediately transmit the partial encryption target data PD to the cryptographic operation unit 32. Conversely, by intentionally shortening the Wait period, even when the partial encryption target data PD having the same data amount and the same SA (Start Address (the same encryption processing size)) is subjected to the preceding read process, the encryption module 30 Variations in power consumption can be achieved.

図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 CPU 31 during the cryptographic processing period T10. In the figure, a change in power consumption of the cryptographic module 30 during the loop process LP1 shown in FIGS. 3 and 4 is shown. The consumption voltage CV shows an outline of the change.

暗号演算器32の暗号処理期間T10に対し、CPU31はダミー処理期間DT31〜DT33,アクセスIDデータ読出期間T22、及び暗号対象データ読出期間T23を設定することにより、CPU31は暗号処理期間T10の全時間帯に何らかの電力消費処理を実行する。   The CPU 31 sets the dummy processing periods DT31 to DT33, the access ID data reading period T22, and the encryption target data reading period T23 with respect to the cryptographic processing period T10 of the cryptographic calculator 32, so that the CPU 31 has the entire time of the cryptographic processing period T10. Some power consumption processing is executed for the band.

なお、暗号処理期間T10前のタイミングTM1ではCPU31及び暗号演算器32共にスタンバイ(standby)状態であるため、タイミングTM1では消費電圧CVは十分低く抑えることができる。   Note that, at the timing TM1 before the cryptographic processing period T10, both the CPU 31 and the cryptographic calculator 32 are in a standby state, so that the consumption voltage CV can be kept sufficiently low at the timing TM1.

最初に設定されたダミー処理期間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 cryptographic operation unit 32 is executing the cryptographic operation processing, and the CPU 31 is executing the dummy processing (processing load: large). Therefore, the consumption voltage CV should be sufficiently increased. Can do.

また、ダミー処理期間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 CPU 31 ends the dummy processing, the processing load is reduced, the consumption voltage CV is lowered, and then the access ID data AI is read. When RD51 (see FIG. 3) starts, the consumption voltage CV rises again.

アクセス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 CPU 31 is close to “0”, so that the consumption voltage CV greatly decreases.

ダミー処理期間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 CPU 31 is executed, so that the consumption voltage CV rises again at the timing TM5 of the encryption target data reading period T22. Thereafter, at timing TM6 when the encryption target data reading period T22 switches to the next dummy processing period DT33, the CPU 31 ends the preceding reading process, thereby reducing the processing load and reducing the consumption voltage CV.

暗号対象データ読出期間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 CPU 31 executes a dummy calculation process (simple loop process; process load: medium) which is the pattern (2). Therefore, the consumption voltage of the CPU 31 slightly increases at the timing TM7 in the dummy processing period DT33.

ダミー処理期間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 CPU 31 transmits the encrypted data acquisition request RQ24 to the cryptographic calculator 32, the partial cryptographic data CD1 (to CD5) from the cryptographic calculator 32 to the CPU 31, and the cryptographic calculation from the CPU 31. The next partial encryption target data PD2 (to PD5) is transmitted to the device 32. During this period, the cryptographic calculation process by the cryptographic calculator 32 is not executed, so the consumption voltage CV decreases, but it does not become “0” because the CPU 31 is operating.

(電力消費処理について)
暗号演算器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 cryptographic operation unit 32 performs the cryptographic operation process. This is because even if the power consumption processing is performed at a timing other than the cryptographic processing period T10, there is only an effect that the power consumption is increased by a small amount compared to the power consumption during the cryptographic calculation processing by the cryptographic calculator 32.

前述したように、ダミー処理期間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 CPU 31 using a table or the like is a relatively simple process in terms of mounting. Examples of combination patterns for dummy processing are listed below.

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 cryptographic operation unit 32, it can be set as short as possible to improve the tamper resistance. Therefore, it is important to determine the pattern so that the time period during which the dummy reading process of pattern (1) or the dummy calculation process of pattern (2) is executed increases.

4.組み合わせパターンを予めテーブルで持つ。理想的なパターン(時間内に終わる上記2,3.が実現されるパターン)をCPU31のROM等の内部メモリ内に予め格納しておき、どのパターンを使うか乱数で決定することにより、ダミー処理の組合せパターンの決定するCPU31の実装面の負担を軽減する。なお、乱数で決定する代わりに、上記1.の条件を満たすようテーブルを設定する対応も考えられる。   4). A combination pattern is previously stored in a table. An ideal pattern (a pattern that realizes steps 2 and 3 above in time) is stored in advance in an internal memory such as a ROM of the CPU 31, and a dummy process is performed by determining which pattern is used by a random number. This reduces the burden on the mounting surface of the CPU 31 for determining the combination pattern. Instead of determining with a random number, the above 1. It is conceivable to set the table to satisfy the above condition.

上述した、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 CPU 31, so that the implementer should be aware of these dummy processes to be performed in the dummy process periods DT31 to DT33. It is desirable to examine the contents.

図3及び図4に示すように、CPU31がアクティブ状態となるのは、主としてホスト部1からの制御部22を経由して得られる暗号処理開始ST0の要求後から、暗号演算器32による暗号演算処理の動作間であり、攻撃者がサイドチャネル攻撃を実施の形態1の暗号モジュール30に対して実施したとしても、CPU31及び暗号演算器32が並列に動作しているため、解析が困難となる。また、上述したように、Wait期間におけるダミー処理内容を毎回変更することにより、同一内容の部分暗号対象データPDに対する暗号演算処理実行時においても消費電力を変化させることができる。   As shown in FIG. 3 and FIG. 4, the CPU 31 is in the active state mainly after the cipher operation start ST0 request obtained from the host unit 1 via the control unit 22 after the cipher operation by the cipher operation unit 32. Even if the attacker performs a side channel attack on the cryptographic module 30 according to the first embodiment, the analysis is difficult because the CPU 31 and the cryptographic calculator 32 operate in parallel. . Further, as described above, by changing the dummy processing content in the Wait period every time, it is possible to change the power consumption even when executing the cryptographic operation processing on the partial encryption target data PD having the same content.

(効果等)
実施の形態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 encryption module 30 serving as the encryption apparatus according to the first embodiment performs encryption processing on the partial encryption target data PDi (i = 1 to (m−1), m = 6) by the encryption calculator 32. During the encryption processing period T10 to be executed, a preceding read process for reading the partial encryption target data PD (i + 1) from the memory 41 and a power consumption process (preliminary process and dummy process) other than the preceding read process are executed. Yes.

すなわち、このような実施の形態1の暗号モジュール30は、暗号演算器32による部分暗号対象データPDiに対する暗号処理期間T10中において、CPU31による先行読み出し処理及び電力消費処理が並列に行われている。このため、暗号演算器32による暗号演算処理による消費電力に加え、CPU31の先行読み出し処理及び電力消費処理による消費電力が加味される時間帯を暗号処理期間T10内に設けることにより、暗号モジュール30は暗号演算処理時におけるサイドチャネル攻撃に対する耐タンパー性の向上を図ることができる。   In other words, in the cryptographic module 30 according to the first embodiment, the advance reading process and the power consumption process by the CPU 31 are performed in parallel during the cryptographic processing period T10 for the partial encryption target data PDi by the cryptographic computing unit 32. For this reason, in addition to the power consumption by the cryptographic operation processing by the cryptographic operation unit 32, the cryptographic module 30 is provided with a time zone in the cryptographic processing period T10 that takes into account the power consumption by the preceding read processing and power consumption processing of the CPU 31. It is possible to improve the tamper resistance against side channel attacks at the time of cryptographic operation processing.

なお、上述した電力消費処理を省略して、先行読み出し処理のみ実行しても、先行読み出し処理による消費電力が加味される時間帯を暗号処理期間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 CPU 31 is packaged with the cryptographic calculator 32 in the cryptographic module 30, and the cryptographic module 30 can perform the cryptographic calculation because the wiring for signal exchange between the CPU 31 and the cryptographic calculator 32 can be concealed from the outside. Further improvement in tamper resistance against side channel attacks during processing can be achieved. As an example of concealing the wiring between the CPU 31 and the cryptographic calculator 32 from the outside, in addition to the above-described one package, integration by a molding process or the like can be considered. Further, by arranging the CPU 31 and the cryptographic calculator 32 physically far from each other, the same effect (tamper resistance) as when the wiring is concealed from the outside can be exhibited.

加えて、暗号演算器32による暗号処理期間T10中にCPU31は部分暗号対象データPD(i+1)を読み出す先行読み出し処理を実行している。このため、暗号演算器32は部分暗号対象データPD1〜PD6に対する暗号演算処理を連続的に実行することができる分、暗号化処理の高速化を図ることができる。   In addition, during the cryptographic processing period T10 by the cryptographic computing unit 32, the CPU 31 performs a pre-reading process for reading out the partial encryption target data PD (i + 1). For this reason, since the cryptographic operation unit 32 can continuously execute the cryptographic calculation processing on the partial encryption target data PD1 to PD6, the encryption processing can be speeded up.

さらに、暗号演算器32以外に必要な構成は、上述した先行読出し処理及び電力消費処理が実行可能なCPU31のみであり、CPU31により実行される様々な電力消費処理は、プログラムを実行する等のソフトウェア処理により実現可能であるため、比較的簡単な構成で暗号モジュール30を実現することができる。   In addition to the cryptographic operation unit 32, the only necessary configuration is the CPU 31 that can execute the above-described advance reading process and power consumption process. Various power consumption processes executed by the CPU 31 include software such as executing a program. Since it can be realized by processing, the cryptographic module 30 can be realized with a relatively simple configuration.

例えば、暗号モジュール30は、外部のメモリ41が利用できれば十分であり、高速化のために大容量のメモリを内部に設ける必要がないため、コスト削減が見込める。   For example, it is sufficient for the cryptographic module 30 to be able to use the external memory 41, and it is not necessary to provide a large-capacity memory inside for speeding up.

さらに、選択読み出しアクセス情報であるアクセス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 CPU 31 provides periods (T22, DT31 to DT33, T31) for executing the preceding read process and the power consumption process in the entire time period of the encryption process period T10.

この際、ダミー処理期間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 CPU 31 performs the preceding read processing and power consumption processing (above ( 3) Power consumption processing excluding the sleeve state) can be executed. As a result, the tamper resistance during the cryptographic operation process can be further improved by reliably avoiding the cryptographic operation process performed only by the cryptographic operation unit 32 during the cryptographic processing period T10.

なお、最後の部分暗号対象データPD6に対する暗号演算器32による暗号演算処理時において、CPU31は先行読み出し処理を実行しないため、これらの期間において全てダミー処理を行うことが望ましい。   Note that, during the cryptographic calculation process by the cryptographic calculator 32 for the last partial encryption target data PD6, since the CPU 31 does not execute the preceding read process, it is desirable to perform all dummy processes during these periods.

<実施の形態2>
(構成)
図6はこの発明の実施の形態2である暗号モジュール30B(暗号装置)を含むシステム構成を示すブロック図である。同図に示すように、データ処理システム52は、実施の形態1のデータ処理システム51と同様、ホスト部1、メモリコントローラ部2及びメモリコア部4から構成される。
<Embodiment 2>
(Constitution)
FIG. 6 is a block diagram showing a system configuration including an encryption module 30B (encryption device) according to Embodiment 2 of the present invention. As shown in the figure, the data processing system 52 includes a host unit 1, a memory controller unit 2, and a memory core unit 4 as in the data processing system 51 of the first embodiment.

ただし、メモリ41はアクセスIDデータAI1〜AInに代えて命令コード群MC1〜MCnを格納しており、メモリコントローラ部2内の暗号モジュール30B内のCPU31Bが命令コード群MC1〜MCnに対応する処理が可能とされた点が実施の形態1と異なる。   However, the memory 41 stores instruction code groups MC1 to MCn instead of the access ID data AI1 to AIn, and the CPU 31B in the cryptographic module 30B in the memory controller unit 2 performs processing corresponding to the instruction code groups MC1 to MCn. The possible point is different from the first embodiment.

なお、命令コード群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 CPU 31 are stored in the order of instruction execution. That is, the CPU 31 can execute the read program instructed by the instruction code group MCi by sequentially executing the instruction codes in the instruction code group MCi. That is, the instruction code group MCi is instruction code information that defines a read program for the preceding read process.

他の構成は、図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 CPU 31 in the cryptographic module 30B of the second embodiment.

以下、同図を参照して、図2で示したように、暗号演算器32が部分暗号対象データPD1〜PD6に対し暗号演算処理を実行して部分暗号化データCD1〜CD6を得る場合を例に挙げて、どのように消費電力を均等化またはバラつかせているかを説明する。   Hereinafter, referring to FIG. 2, as shown in FIG. 2, an example is shown in which the cryptographic calculator 32 executes the cryptographic calculation processing on the partial encryption target data PD1 to PD6 to obtain the partial encrypted data CD1 to CD6. To explain how power consumption is equalized or distributed.

なお、図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 cryptographic calculator 32, the CPU 31B precedes the partial cryptographic target data PD2 in order to equalize the power consumption of the cryptographic module 30B. In addition to the read process RD42, various power consumption processes (PR42 to PR48, RD52) are executed.

実施の形態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 CPU 31B selects the instruction code group MCj to be read (any of j = 1 to n; selected read instruction code information) among the instruction code groups MC1 to MCn stored in the memory 41 immediately after the start of the loop process LP2. Processing PR42 determined by random numbers is executed.

その後、CPU31Bは、読み出しWait期間を乱数で決定し、Wait期間中は実施の形態1と同様のダミー処理(Wait処理)を行う処理PR43を実行する。   Thereafter, the CPU 31B determines a read wait period with a random number, and executes a process PR43 for performing a dummy process (wait process) similar to that in the first embodiment during the wait period.

処理PR43が終了すると、CPU31Bは、メモリ41に格納された命令コード群MCj(処理PR42にて決定)の読み出し処理RD52を行い、メモリ41から命令コード群MCjを読み出す。読み出し処理RD52の実行期間が命令コード群読出期間T32となる。   When the process PR43 ends, the CPU 31B performs a read process RD52 of the instruction code group MCj (determined by the process PR42) stored in the memory 41, and reads the instruction code group MCj from the memory 41. The execution period of the read process RD52 is the instruction code group read period T32.

その後、CPU31Bは、命令コード群MCjのプログラム内容をデコードする処理PR44を実行し、続けて、命令コード群MCjで指示されたメモリ読み出しプログラムを決定する処理PR45を行う。ここで処理PR45により決定されたメモリ読み出しプログラムを「読み出しプログラムj」とする。   Thereafter, the CPU 31B executes a process PR44 for decoding the program contents of the instruction code group MCj, and subsequently performs a process PR45 for determining a memory read program designated by the instruction code group MCj. Here, the memory read program determined by the process PR45 is referred to as “read program j”.

そして、CPU31Bは、読み出しまでのWait期間を乱数で決定し、Wait期間においてダミー処理(Wait処理)を行う処理PR46を実行する。   Then, the CPU 31B determines a Wait period until reading with a random number, and executes a process PR46 for performing a dummy process (Wait process) in the Wait period.

処理PR46が終了すると、CPU31Bは、読み出しプログラムjに従った読み出し内容(読み出し手順を含む)で部分暗号対象データPD2の先行読み出し処理R43を実行して、部分暗号対象データPD2を得る。CPU31Bによってメモリ41から部分暗号対象データPD2を読み出す期間が暗号対象データ読出期間T22となる。ここで、読み出しプログラムjによって読み出された部分暗号対象データPD2を部分暗号対象データPD2xとする。部分暗号対象データPD2xは読み出しプログラムjに従った読み出し内容(読み出し手順)で読み出された結果のデータ列であるため、通常は部分暗号対象データPD2と異なる内容となる。   When the process PR46 is completed, the CPU 31B executes the pre-read process R43 of the partial encryption target data PD2 with the read contents (including the read procedure) according to the read program j, and obtains the partial encryption target data PD2. A period during which the partial encryption target data PD2 is read from the memory 41 by the CPU 31B is an encryption target data reading period T22. Here, the partial encryption target data PD2 read by the read program j is referred to as partial encryption target data PD2x. Since the partial encryption target data PD2x is a data string obtained as a result of reading with the read content (read procedure) according to the read program j, it usually has different content from the partial encryption target data PD2.

その後、CPU31Bは、暗号演算器32に入力する部分暗号対象データのフォーマット変更する処理PR47を実行する。すなわち、部分暗号対象データPD2xを本来の部分暗号対象データPD2に整形する処理を行う。   Thereafter, the CPU 31B executes a process PR47 for changing the format of the partial encryption target data input to the cryptographic calculator 32. That is, a process of shaping the partial encryption target data PD2x into the original partial encryption target data PD2 is performed.

さらに、CPU31Bは、暗号処理期間T10中であり、暗号演算器32から暗号演算処理の処理終了信号RE1を受信していない場合、処理終了信号RE1を受信するまでのWait期間において消費電力をバラつかせるためのダミー処理を処理PR48として実行する。   Furthermore, when the CPU 31B is in the cryptographic processing period T10 and has not received the cryptographic operation processing end signal RE1 from the cryptographic computing unit 32, the power consumption varies in the Wait period until the processing end signal RE1 is received. A dummy process for saving is executed as process PR48.

そして、CPU31Bは、暗号演算器32からの処理終了信号RE1を受信後、処理PR48を終了して、暗号化データ取得要求RQ24を暗号演算器32に対して行う。   Then, after receiving the processing end signal RE1 from the cryptographic calculator 32, the CPU 31B ends the processing PR48 and makes an encrypted data acquisition request RQ24 to the cryptographic calculator 32.

暗号化データ取得要求RQ24を受けた暗号演算器32は部分暗号対象データPD1に対して暗号演算処理を行って得られる部分暗号化データCD1をCPU31Bに送信する。   In response to the encrypted data acquisition request RQ24, the cryptographic calculator 32 transmits the partial encrypted data CD1 obtained by performing the cryptographic calculation process on the partial encryption target data PD1 to the CPU 31B.

一方、CPU31Bは、1page size(200h)分の部分暗号化データCD1の受信の完了を確認し、部分暗号化データCD1を制御部22に送信する部分暗号対象データの受信完了処理PR49を行う。処理PR49が終了すると、先行読み出し処理RD43で読み出し、処理PR47でフォーマット変更された次の部分暗号対象データPDである部分暗号対象データPD2を暗号演算器32に送信し、1回目のループ処理LP2を終了する。   On the other hand, the CPU 31B confirms the completion of reception of the partial encrypted data CD1 for one page size (200h), and performs a partial encryption target data reception completion process PR49 for transmitting the partial encrypted data CD1 to the control unit 22. When the process PR49 is completed, the partial encryption target data PD2, which is the next partial encryption target data PD read in the preceding read process RD43 and reformatted in the process PR47, is transmitted to the cryptographic operation unit 32, and the first loop process LP2 is performed. finish.

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 cryptographic operation unit 32 and the preceding read process RD43 of the partial encryption target data PD3 by the CPU 31B are performed in parallel. The same as the second time.

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 cryptographic operation unit 32 and the preceding read processing RD44 to RD46 of the partial encryption target data PD4 to PD6 by the CPU 31B are performed in parallel. The processing is mainly performed in the same manner as the first time.

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 memory 41 as the instruction code group MCi can be changed, and the power consumption at the time of reading the instruction code group MCi can be equalized and the variation control can be performed. It becomes possible.

また、処理45(図7参照)において、暗号演算器32は選択された命令コード群MCj内の各命令コードをデコードし、デコード結果に従って読み出しプログラムを実行している。   In process 45 (see FIG. 7), the cryptographic calculator 32 decodes each instruction code in the selected instruction code group MCj, and executes a read program according to the decoding result.

命令コード群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 memory 41 is determined in advance, and the instruction code group MC1 according to the selection order determined in advance among the instruction code groups MC1 to MCn. A method of reading any one of -MCn as the instruction code group MCj may be adopted.

なお、命令コード群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 cryptographic module 30B according to the second embodiment has the same configuration as the cryptographic module 30 according to the first embodiment except that the cryptographic module 30B is configured to execute a read program defined by the instruction code groups MC1 to MCn stored in the memory 41. Therefore, the same effects as those of the first embodiment are obtained. Hereinafter, effects different from those of the first embodiment will be described.

実施の形態2の暗号モジュール30Bは、選択読み出し命令コード情報である命令コード群MCjによって、部分暗号対象データPDi毎に先行読み出し処理内容を変化させることにより、部分暗号対象データPDi毎に消費電力の発生状態を変化させることができるため、暗号演算処理時における耐タンパー性の向上を図ることができる。   The cryptographic module 30B according to the second embodiment uses the instruction code group MCj, which is the selective read instruction code information, to change the prior read processing contents for each partial encryption target data PDi, thereby reducing the power consumption for each partial encryption target data PDi. Since the generation state can be changed, it is possible to improve the tamper resistance during the cryptographic calculation process.

このように、実施の形態2では、命令コード群MCiをメモリ41に格納しておくことで、CPU31Bは先行読み出し処理を実行するためのプログラムをROM等の内部メモリに格納する必要がなくなるため、CPU31Bの内部メモリの容量の低減化を図ることができる。   As described above, in the second embodiment, by storing the instruction code group MCi in the memory 41, the CPU 31B does not need to store a program for executing the preceding read process in an internal memory such as a ROM. The capacity of the internal memory of the CPU 31B can be reduced.

一方、実施の形態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 CPU 31, so that the capacity of the internal memory of the CPU 31 is increased. Needs to be larger than the CPU 31B of the second embodiment.

さらに、実施の形態2の暗号モジュール30Bでは、比較的大容量のメモリコア部4のメモリ41に命令コード群MCiを格納することにより、多様な読み出し内容(読み出し手順)を実行する読み出しプログラムを命令コード群MC1〜MCnとして格納することができる効果を奏する。   Further, in the cryptographic module 30B according to the second embodiment, the instruction code group MCi is stored in the memory 41 of the relatively large-capacity memory core unit 4 so that a read program for executing various read contents (read procedures) is executed. There is an effect that the code groups MC1 to MCn can be stored.

なお、上述した実施の形態では、暗号モジュール30を暗号装置として説明したが、コンテンツデータD41(部分暗号対象データPD1〜PD6)、及びアクセスIDデータAI1〜AIn(命令コード群MC1〜MCn)を格納するメモリ41と暗号モジュール30とからなる構成を本発明の暗号処理システムとして考えることもできる。   In the above-described embodiment, the cryptographic module 30 has been described as a cryptographic device, but content data D41 (partial encryption target data PD1 to PD6) and access ID data AI1 to AIn (instruction code groups MC1 to MCn) are stored. A configuration including the memory 41 and the cryptographic module 30 can be considered as the cryptographic processing system of the present invention.

なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。   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 SYMBOLS 1 Host part 2 Memory controller part 4 Memory core part 22 Control part 30, 30B Cryptographic module 31, 31B CPU
32 Cryptographic operator 24 Selector 25 Memory I / F
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.
請求項1記載の暗号装置であって、
前記暗号制御部と前記暗号演算器との間に設けられる配線を外部から隠蔽したことを特徴とする、
暗号装置。
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.
請求項1または請求項2記載の暗号装置であって、
前記暗号制御部は
前記先行読み出し処理以外の電力消費処理をさらに実行することを特徴とする、
暗号装置。
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.
請求項3記載の暗号装置であって、
前記メモリ部は前記先行読み出し処理における読み出し手順を規定する複数の読み出しアクセス情報をさらに格納し、
前記電力消費処理は、前記先行読み出し処理の前に実行され、前記複数の読み出しアクセス情報から一の情報を選択読み出しアクセス情報として前記メモリ部から読み出すアクセス情報読み出し処理を含み、
前記先行読み出し処理は、前記選択読み出しアクセス情報の指示する読み出し手順に従い、前記第(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.
請求項3記載の暗号装置であって、
前記メモリ部は、前記暗号制御部における前記先行読み出し処理用の読み出しプログラムを規定する複数の命令コード情報をさらに格納し、
前記電力消費処理は、前記先行読み出し処理の前に実行され、前記複数の命令コード情報のうち一の情報を選択読み出し命令コード情報として読み出す、命令コード読み出し処理を含み、
前記先行読み出し処理は、前記選択命令コード情報で規定された読み出しプログラムを実行する処理を含む、
暗号装置。
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.
請求項3〜請求項5のうち、いずれか1項に記載の暗号装置であって、
前記電力消費処理は前記先行読み出し処理と関連性のない少なくとも一つのダミー処理を含み、前記少なくとも一つのダミー処理は前記部分暗号対象データ毎にその内容を変化させることが可能であることを特徴とする、
暗号装置。
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.
請求項6記載の暗号装置であって、
前記少なくとも一つのダミー処理は前記先行読み出し処理の後に行われるダミー処理を含む、
暗号装置。
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.
請求項3〜請求項7のうち、いずれか1項に記載の暗号装置であって、
前記暗号制御部は、前記暗号処理期間の全時間帯において、前記データ読み出し処理及び前記電力消費処理のうち一方を実行することを特徴とする、
暗号装置。
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.
JP2013068075A 2013-03-28 2013-03-28 Cryptographic device Pending JP2014192793A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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