JP6636006B2 - 暗号化/復号化システム及びその制御方法、並びにプログラム - Google Patents

暗号化/復号化システム及びその制御方法、並びにプログラム Download PDF

Info

Publication number
JP6636006B2
JP6636006B2 JP2017240706A JP2017240706A JP6636006B2 JP 6636006 B2 JP6636006 B2 JP 6636006B2 JP 2017240706 A JP2017240706 A JP 2017240706A JP 2017240706 A JP2017240706 A JP 2017240706A JP 6636006 B2 JP6636006 B2 JP 6636006B2
Authority
JP
Japan
Prior art keywords
encryption
register
value
information
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017240706A
Other languages
English (en)
Other versions
JP2018078610A (ja
JP2018078610A5 (ja
Inventor
松本 昭浩
昭浩 松本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2017240706A priority Critical patent/JP6636006B2/ja
Publication of JP2018078610A publication Critical patent/JP2018078610A/ja
Publication of JP2018078610A5 publication Critical patent/JP2018078610A5/ja
Application granted granted Critical
Publication of JP6636006B2 publication Critical patent/JP6636006B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号化/復号化システム及びその制御方法、並びにプログラムに関する。
従来の印刷装置はセキュリティを強化するために暗号化機能及び復号化機能を備える。暗号化機能は印刷装置が備えるHDDのようなストレージデバイスに格納されているデータを暗号化し、復号化機能は暗号化されたデータを、いわゆる暗号鍵によって復号化する。
上記印刷装置は、日本やアメリカをはじめとする各国政府やセキュリティに対する意識が高い一般企業において、製品認証制度の1つとしての「暗号モジュール試験及び認証制度」に基づく第三者機関の認証を取得していることが求められ、具体的には、当該制度において定められているセキュリティレベルが2以上の認証を取得していることが求められる。
暗号化機能はICチップによって提供されるが、暗号鍵のような秘密情報及び暗号化プログラム等を格納する不揮発性メモリダイと暗号化ロジックダイを1つのパッケージに封止したSiP(System in a Package)で提供することがセキュリティ上の堅牢性をより強固にする観点から望ましい。
一般的に、ICチップはデータの入出力に使用される入出力IF、故障解析時に使用されるデバッグIF、及びICチップ内部の不揮発性メモリに暗号化プログラムを格納するときに使用されるメモリIFを有するが、ICチップ内部の解析がデバッグIFやメモリIFを介して行われる場合がある。
暗号化機能がICチップによって提供され、且つ「暗号モジュール試験及び認証制度」におけるセキュリティレベル2以上の認証を取得するためには、デバッグIFやメモリIFにアクセスされたとしてもICチップに含まれる情報が解析されるのを防止する必要がある。この対策として不揮発性メモリに格納される秘密情報や暗号化プログラムの一部又は全部に暗号化を施す方法がある。
不揮発性メモリに格納される秘密情報や暗号化プログラムの暗号化は、例えば、共通鍵暗号方式の1つであるAES(Advanced Encryption Standard)によって行われるが、第三者がデバッグIFやメモリIFを介して得られた情報から暗号化されている秘密情報や暗号化プログラムの暗号鍵が再現されることがある。そこで、秘密情報や暗号化プログラムの暗号鍵が第三者によって簡単に再現されることを防止するために、暗号化装置が有する暗号鍵生成部によって生成された暗号鍵とレジスタに平文で設定された初期入力値とを乱数生成回路に入力して得られる乱数を用いてデータに暗号化処理を行っている(例えば、特許文献1参照)。
特開平10−22994号公報
しかしながら、レジスタに設定される初期入力値は平文で設定されるため、当該初期入力値が盗まれると暗号鍵が再現されてデータの暗号化が簡単に解除されてしまう。
本発明の目的は、データの暗号化が簡単に解除されるのを防止することができる暗号化/復号化システム及びその制御方法、並びにプログラムを提供することにある。
上記目的を達成するために、本発明の暗号化/復号化システムは、ホスト装置との間でデータを送受信する暗号化/復号化システムであって、前記ホスト装置との間で送受信されるデータに対して暗号化処理又は復号化処理を行うためのプログラムを暗号化した状態で格納する格納手段と、少なくとも1つのレジスタ値によって構成される第1のレジスタと、少なくとも1つのレジスタ値によって構成される第2のレジスタと、前記第1のレジスタ内の少なくとも1つのレジスタ値から少なくとも1つの第1のレジスタ値を選択すると共に前記第2のレジスタ内の少なくとも1つのレジスタ値から少なくとも1つの第2のレジスタ値とを選択する選択手段と、前記選択された第1のレジスタ値と、前記選択された第2のレジスタ値との組み合わせに基づいて情報値を生成する情報値生成手段と、前記格納されたプログラムを復号化するための鍵を前記情報値生成手段によって生成された前記情報値に基づいて前記暗号化/復号化システムの起動に応じて生成する鍵生成手段と、前記鍵生成手段によって生成された鍵を用いて前記格納されたプログラムを復号化する復号化手段と、前記復号化されたプログラムを実行する実行手段とを備えることを特徴とする。
本発明によれば、データの暗号化が簡単に解除されるのを防止することができる。
本発明の実施の形態に係る暗号化処理装置を有する画像形成システムの構成を概略的に示すブロック図である。 図1における暗号化ICの接続状態を示すブロック図である。 図2における暗号化ICの内部構成を概略的に示すブロック図である。 図3のフラッシュメモリ及びRAMに格納される主要なデータを示す図である。 図4における秘密情報用暗号鍵を生成する際に必要となる情報aの生成方法について説明するのに用いられる図である。 図4における秘密情報用暗号鍵の生成に用いられるシード値を示す図である。 図6Aのシード値を用いて秘密情報用暗号鍵を生成する方法を説明するのに用いられる図である。 図6Bにおける時刻t1に生成される情報aとしてのX1のビット列である。 図4におけるデータ暗号化プログラム及び秘密情報を暗号化する暗号化処理の手順を示すフローチャートである。 図4における秘密情報暗号化プログラム及びデータ暗号化プログラムを実行するプログラム実行処理の手順を示すフローチャートである。
以下、本発明の実施の形態を図面を参照しながら詳述する。
図1は、本発明の実施の形態に係る暗号化処理装置を有する画像形成システムの構成を概略的に示すブロック図である。
図1の画像形成システムは、ホストコントローラ101及びホストコンピュータ907を備え、これらは、ネットワーク906を介して互いに接続されている。ホストコントローラ101は、CPU901、メモリ制御部902、LAN−IF部905、リーダIF部908、FAX−IF部910、画像処理部912、パネルIF部913、HDD−IF部915、及びビデオIF部916を備え、これらはバス918を介して互いに接続されている。
また、ホストコントローラ101は、ROM903及びRAM904を備え、これらはメモリ制御部902に接続されている。ホストコントローラ101のLAN−IF部905、リーダIF部908、FAX−IF部910、パネルIF部913、HDD−IF部915、及びビデオIF部916には夫々ネットワーク906、スキャナ装置909、FAX装置911、パネル装置914、暗号化IC102、及び印刷部917が接続され、FAX装置911は公衆電話回線に接続されている。また、暗号化IC102にはHDD103が接続されている。
ホストコントローラ101は、例えば、MFP(Multi-Function Printer)に備えられている。CPU901はシステム制御や演算処理を行い、メモリ制御部902は各種メモリデバイスへの入出力制御やDMA(Direct Memory Access)制御を行う。
ROM903は、起動プログラム、各種処理プログラム、及び制御パラメータ等を格納する。RAM904はDDR(Double Data Rate)メモリに代表される書き換え専用メモリである。
画像処理部912は、LAN−IF部905、リーダIF部908、FAX−IF部910を介して取得された画像データに対して各種画像処理を行う。スキャナ装置909は原稿を読み取って画像データに変換する。FAX装置911は公衆電話回線919を介して通信制御及びデータ送受信処理を行う。パネル装置914はユーザインターフェイスであると共に液晶表示されるボタン等が操作される。この操作によってホストコントローラ101に接続されているスキャナ装置909等の各種設定が行われる。印刷部917は、印刷装置本体、給紙部、及び排紙部を備えるプリンタであって、主にビデオIF部916からのコマンド情報に従って印刷データを紙面上に印刷する。
暗号化IC102は、暗号化IC102が有する後述のSATA−IF104等を介して送受信されるデータの暗号化処理又は復号化処理を行う。HDD103は、不揮発性の大容量記憶装置であり、画像データや各種プログラムが格納されると共に、一時作業領域として使用されるデータ領域(図示せず)とHDD103のバージョン情報等が格納されているシステム領域(図示せず)を有する。
図2は、図1における暗号化IC102の接続状態を示すブロック図である。
図2において、暗号化IC102は、外部記憶装置と接続するためのSATA(Serial Advanced Technology Attachment)規格に準拠したIFであるSATA−IF104,105を介してホストコントローラ101及びHDD103と夫々接続されている。また、暗号化IC102は、デバッグIF106及びフラッシュメモリIF108を介してデバッガ107、フラッシュ治具109と夫々接続されている(暗号化/復号化システム)。デバッガ107はソフト開発時や故障時の検証用に使用される。フラッシュ治具109は、例えば、後述のフラッシュメモリ111を接続するための治具である。なお、デバッガ107及びフラッシュ治具109は暗号化IC102の通常起動時には使用されない。
暗号化IC102は、暗号化チップ110とフラッシュメモリチップ111が1つのパッケージに封止されているSiPとして構成される。暗号化チップ110はHDD103に格納されるデータ等に暗号化処理を行う。フラッシュメモリチップ111は各種データを格納する。フラッシュメモリチップ111は暗号化IC102に内蔵されている必要はなく、外付けされていてもよい。
図3は、図2における暗号化IC102の内部構成を概略的に示すブロック図である。
図3の暗号化IC102は、CPU201、フラッシュメモリ202、RAM203、メモリ制御部204、暗号化/復号化処理部205、SATAデバイス−IF206、SATAホスト−IF207、フラッシュ−IF208、及びデバッグ−IF209を備え、これらは、バス210を介して互いに接続されている。暗号化IC102は、SATAデバイス−IF206、SATAホスト−IF207、フラッシュ−IF208、及びデバッグ−IF209を介してホストコントローラ101、HDD103、フラッシュ治具109、及びデバッガ107に夫々接続されている。
CPU201は、フラッシュメモリ202やRAM203に格納された暗号化プログラム、擬似乱数プログラム、及びSATA−IF制御プログラム等のプログラムを実行する。
フラッシュメモリ202は、不揮発性メモリであり、各種プログラム、各種制御パラメータ、及び暗号化のための秘密情報等が格納される。RAM203は、揮発性メモリであり、プログラムの実行領域、一時作業領域、及び生成された暗号鍵の保存領域等に使用される。メモリ制御部204はフラッシュメモリ202及びRAM203のデータへの入出力制御を行う。暗号化/復号化処理部205はデータの暗号化処理及び復号化処理を、例えば、共通鍵暗号方式としてのAESによって行う。
図4は、図3のフラッシュメモリ202及びRAM203に格納される主要なデータを示す図である。
図4において、フラッシュメモリ202は、秘密情報暗号化プログラム301、データ暗号化プログラム302、秘密情報303、及び情報b304を格納し、RAM203は、秘密情報用暗号鍵305及びデータ用暗号鍵306を格納する。
秘密情報暗号化プログラム301は、データ暗号化プログラム302や秘密情報303の一部又は全部の暗号化/復号化処理を、例えば、AESによって行うと共に、情報b304及び後述の情報a410を用いて秘密情報用暗号鍵305をRAM203上に生成する。データ暗号化プログラム302は、SATA−IF104,105を介してホストコントローラ101及びHDD103との間で送受信されるデータの暗号化/復号化処理を、例えば、AESによって行うと共に、秘密情報303を用いてデータ用暗号鍵306をRAM203上に生成する。
秘密情報303は、暗号化IC102を使用可能にするための認証情報やデータ用暗号鍵306を生成するための機密性の高い重要な情報であり、SATA−IF104を介して接続されているホストコントローラ101から受信される。
情報b304は、ビット値で構成され、後述の情報a410に組み合わせることができる。また、情報b304は、ホストコントローラ101から受信され、例えば、受信先のホストコントローラ101の個々に応じて、又はホストコントローラ101から受信するタイミングに応じて異なるビット値で構成される。秘密情報暗号化プログラム301及び情報b304は平文で、データ暗号化プログラム302及び秘密情報303は暗号文でフラッシュメモリ202に格納される。
図5は、図4における秘密情報用暗号鍵305を生成する際に必要となる情報a410の生成方法について説明するのに用いられる図である。
図5において、暗号化IC102はブロックA401、ブロックB402、及びブロックC403の複数の機能ブロックを備え、各機能ブロックは、制御レジスタ404及びステータスレジスタ405を備え、各レジスタはビット列からなるレジスタ値で構成される。
制御レジスタ404はハードモジュールを制御するためのレジスタであり、ステータスレジスタ405はCPU201の演算状態を示すレジスタである。すなわち、ステータスレジスタ405は、CPU201の演算状態によって構成するレジスタ値が変化し、例えば、暗号化ICの起動方法によって構成するレジスタ値が変化する。
情報a410は、例えば、或る時間において、制御レジスタ404のレジスタ値から選択されたレジスタ値Ac1,Ac2,及びCc1と、ステータスレジスタ405のレジスタ値から選択されたレジスタ値As2,Bs2,及びCs1とを組み合わせることによって生成される(情報値生成手段)。上述したように、ステータスレジスタ405のレジスタ値はCPU201の演算状態によって変化する。換言すれば、ステータスレジスタ405のレジスタ値は時間の経過に応じて変化するため、ステータスレジスタ405のレジスタ値を含む情報a410も生成される時間に応じて変化する。
図6Aは、図4における秘密情報用暗号鍵305の生成に用いられるシード値を示す図である。
図6Aにおいて、シード値501は、情報a410及び情報b304を結合して得られる。
図6Bは、図6Aのシード値501を用いて秘密情報用暗号鍵305を生成する方法を説明するのに用いられる図である。
図6Bにおいて、時間軸502は、暗号化IC102の電源をONにしたときを時刻t=0とした時間の経過を示す。例えば、時刻t1には、時刻t1に生成される情報a410としてのX1と情報b304を組み合わせてシード値503を得、該得られたシード値503を疑似乱数モジュール504に入力してビット列505を得る(疑似乱数化)。時刻t2には、時刻t2に生成される情報a410としてのX2と情報b304を組み合わせてシード値506を得、該得られたシード値506を疑似乱数モジュール504に入力してビット列507を得る。その後、ビット列505,507を用いて排他的論理和演算(ExOR)508を行うことによって秘密情報用暗号鍵305が生成される(暗号鍵生成手段)。
なお、シード値503,506には、必ずしも情報b304が組み合わされる必要はなく、情報a410単独でシード値503,506を構成してもよい。但し、市場に多数流通しているような暗号化ICチップ(以下、「量産型暗号化ICチップ」という)を用いた場合、情報b304を組み合わせずに秘密情報用暗号鍵305を生成すると、時刻t1及び時刻t2における情報a410としてのX1及びX2はいずれの量産型暗号化ICチップにおいても同一のレジスタ値から生成されるため、得られる秘密情報用暗号鍵305は同一となり、容易に秘密情報用暗号鍵305が再現されるおそれがある。
そこで、これに対応して、例えば、ホストコントローラ101の個々に応じて異なるビット値で構成される情報b304を組み合わすことによって暗号化ICチップ個別の秘密情報用暗号鍵305を生成し、秘密情報用暗号鍵305が同一となることを回避するのがよい。これにより、セキュリティレベルを向上させることができる。
また、情報a410と情報b304から秘密情報用暗号鍵305を生成した場合、情報b304のみを変更する秘密情報用暗号鍵305の無効化(ゼロ化)処理を行うことができる。情報b304を変更すると、情報b304の変更前に生成された秘密情報用暗号鍵305は使用できないので、例えば、秘密情報用暗号鍵305を用いて暗号化した秘密情報303を破棄しても、当該暗号化された秘密情報303は、情報b304の変更後に永久に復号化されることがなく、より一層セキュリティレベルを向上させることができる。
図7は、図6Bにおける時刻t1に生成される情報a410としてのX1のビット列である。図中、X1_normal601は暗号化IC102を通常起動した場合に生成される情報a410に対応し、X1_debug602は暗号化IC102をデバッガ107の使用によって起動した場合に生成される情報a410に対応する。
上述したように、ステータスレジスタ405は暗号化IC102の起動方法が2以上ある場合、起動方法によって構成するレジスタ値が変化するため、ステータスレジスタ405のレジスタ値を含む情報a410も暗号化IC102の起動方法に応じて当該情報a410を構成するビット値が異なる。例えば、図7に示すように、X1_normal601とX1_debug602には互いに異なるビット603〜606が存在する。
すなわち、暗号化IC102の起動方法を変更することによって情報a410を変更することができ、もって、当該情報a410を組み合わせて生成される秘密情報用暗号鍵305を変更することができる。これにより、秘密情報用暗号鍵305のセキュリティレベルを向上させることができる。
図8は、図4におけるデータ暗号化プログラム302及び秘密情報303を暗号化する暗号化処理の手順を示すフローチャートである。
図8の暗号化処理は暗号化IC102が備えるCPU201によって実行される。
図8において、時刻t1及びt2における情報a410としてのX1及びX2を、図5の生成方法によって夫々生成し(ステップS701)、暗号化IC102がホストコントローラ101と接続されているか否かを判別する(ステップS702)。
ステップS702の判別の結果、ホストコントローラ101と接続されている場合(ステップS702でYES)、ホストコントローラ101から秘密情報303及び情報b304を受信する(ステップS703)。
次いで、X1と情報b304を組み合わせて得られるシード値503を疑似乱数モジュール504に入力してビット列505を得ると共に、X2と情報b304を組み合わせて得られるシード値506を疑似乱数モジュール504に入力してビット列507を得、該得られたビット列505,507を用いて排他的論理和演算(ExOR)508を行い、秘密情報用暗号鍵305を生成する(ステップS704)。
次いで、生成された秘密情報用暗号鍵305を用いてデータ暗号化プログラム302及び秘密情報303の暗号化処理を行い(ステップS705)、暗号化処理が完了したか否かを判別する(ステップS706)。
ステップS706の判別の結果、暗号化処理が完了していない場合はステップS705に戻り(ステップS706でNO)、暗号化処理が完了している場合(ステップS706でYES)、暗号化したデータ暗号化プログラム302、秘密情報303、及び秘密情報用暗号鍵305を生成する際に用いた情報b304をフラッシュメモリ202に格納して(ステップS707)、本処理を終了する。
ステップS702の判別の結果、ホストコントローラ101と接続されていない場合、ホストコントローラ101から秘密情報303及び情報b304を受信することなく、直ちに本処理を終了する。
図8の暗号化処理によれば、時間の経過に応じて変化するステータスレジスタ405の複数のレジスタ値から選択されたレジスタ値を用いて生成された情報a410としてのX1やX2を用いて(ステップS701)秘密情報用暗号鍵305を生成する(ステップS704)ので、時刻t1やt2とは異なる時刻に暗号化IC102を起動する第三者が同じレジスタ値を用いて情報a410を生成するのは困難であり、これにより、秘密情報用暗号鍵305の再現性を困難にすることができる。その結果、第三者によってデータ暗号化プログラム302及び秘密情報303の暗号化が簡単に解除されるのを防止できる。
また、図8の暗号化処理によれば、情報a410に情報b304を組み合わせることによって秘密情報用暗号鍵305の生成を行うが(ステップS704)、当該情報b304を構成するビット値は、例えば、ホストコントローラ101の個々に応じて異なるので、暗号化ICチップ固有の秘密情報用暗号鍵305を生成することができ、その結果、秘密情報用暗号鍵305の再現性をより困難にすることができ、もってセキュリティレベルをより向上させることができる。
さらに、図8の暗号化処理によれば、情報a410に情報b304を組み合わせることによって秘密情報用暗号鍵305の生成を行う(ステップS704)ので、秘密情報用暗号鍵305の無効化(ゼロ化)処理をすることができ、より一層セキュリティレベルを向上させることができる。
図9は、図4における秘密情報暗号化プログラム301及びデータ暗号化プログラム302を実行するプログラム実行処理の手順を示すフローチャートである。
図9のプログラム実行処理は暗号化IC102が備えるCPU201によって実行される。
図9において、まず、時刻t1及びt2における情報a410としてのX1及びX2を、図5の生成方法によって夫々生成する(ステップS801)。
次いで、X1とフラッシュメモリ202に格納されている情報b304を組み合わせて得られるシード値503を疑似乱数モジュール504に入力してビット列505を得ると共に、X2とフラッシュメモリ202に格納されている情報b304を組み合わせて得られるシード値506を疑似乱数モジュール504に入力してビット列507を得、該得られたビット列505,507を用いて排他的論理和演算(ExOR)508を行い、秘密情報用暗号鍵305を生成する(ステップS802)。
ところで、同じ時刻においてステータスレジスタ405のレジスタ値は同じ値を示すため、時刻が共通するステップS701及びステップS801で生成されるX1、X2は互いに同じであり、ステップS704及びステップS802で生成される秘密情報用暗号鍵305も同じとなる。したがって、ステップS704で生成された秘密情報用暗号鍵305を用いて暗号化されたデータ暗号化プログラム302及び秘密情報303は、ステップS802で生成される秘密情報用暗号鍵305によって復号化することができる。
次いで、ステップS802で生成された秘密情報用暗号鍵305を用いてデータ暗号化プログラム302及び秘密情報303(いずれもステップS704で生成された秘密情報用暗号鍵305を用いて暗号化されている)の復号化処理を行ってRAM203に展開し(ステップS803)、復号化処理が完了したか否かを判別する(ステップS804)。
ステップS804の判別の結果、暗号化処理が完了していない場合はステップS803に戻り(ステップS804でNO)、復号化処理が完了している場合(ステップS804でYES)は、RAM203に復号化され、且つ展開された秘密情報303を用いてデータ用暗号鍵306の生成を行い(ステップS805)、ホストコントローラ101と接続するか否かを判別する(ステップS806)。
ステップS806の判別の結果、ホストコントローラ101と接続するとき(ステップS806でYES)は、ホストコントローラ101とHDD103の間での通信が確立されてホストコントローラ101からのコマンドの受付が可能となる。
ステップS806の判別の結果、ホストコントローラ101と接続しないときは(ステップS806でNO)、ホストコントローラ101からのコマンド要求の有無にかかわらず、直ちに本処理を終了する。
次いで、ホストコントローラ101からコマンドが要求されたか否かを判別し(ステップS807)、ホストコントローラ101からコマンドが要求された場合(ステップS807でYES)、要求されたコマンドが、HDD103のシステム領域からシステム情報を読み出し、又はHDD103のシステム領域にシステム情報を書き込むシステム系コマンドであるか否かを判別する(ステップS808)。
ステップS808判別の結果、システム系コマンドである場合(ステップS808でYES)は、システム情報は平文であり、暗号化する必要性が高くないことからシステム情報を暗号化することなく(非暗号化)平文のまま(ステップS809)、システム情報のホストコントローラ101又はHDD103への送信を(ステップS814)送信完了まで(ステップS817でYES)実行する。
一方、ステップS808の判別の結果、要求されたコマンドがシステム系コマンドではないときは(ステップS808でNO)、要求されたコマンドがHDD103のデータ領域からデータ情報を読み出すリード系コマンドかHDD103のデータ領域にデータ情報を書き込むライト系コマンドかを判別する(ステップS810)。
ステップS810の判別の結果、要求されたコマンドがリード系コマンドのときはHDD103から暗号文データを読み出して(ステップS811)当該暗号文データをデータ用暗号鍵306を用いて復号化し(ステップS812)、ホストコントローラ101への送信を(ステップS815)送信完了まで(ステップS818でYES)実行する。
ステップS810の判別の結果、要求されたコマンドがライト系コマンドのときは、ホストコントローラ101から受信したデータをデータ用暗号鍵306によって暗号化し(ステップS813)、HDD103への送信を(ステップS816)送信完了まで(ステップS819でYES)実行する。
データの送信が完了した(ステップS817でYES,S818でYES,S819でYES)後、暗号化IC102への電源供給を停止したとき(ステップS820でYES)は、本処理を終了し、暗号化IC102への電源供給を停止しない(ステップS820でNO)ときはステップS807以降の処理を繰り返す。
図9のプログラム実行処理によれば、図8の暗号化処理と同様に、時間の経過に応じて変化するステータスレジスタ405の複数のレジスタ値から選択されたレジスタ値を用いて生成された情報a410としてのX1やX2を用いて(ステップS801)秘密情報用暗号鍵305を生成し(ステップS802)、当該秘密情報用暗号鍵305によって暗号化プログラム302と秘密情報303の復号化処理を行う(ステップS803)。上述したように、時刻t1やt2とは異なる時刻に暗号化IC102を起動する第三者が同じレジスタ値を用いて情報a410を生成するのは困難であり、これにより、秘密情報用暗号鍵305の再現性を困難にすることができる。その結果、秘密情報303の暗号化が簡単に解除されるのを防止することができる。
また、図9のプログラム実行処理によれば、秘密情報303が復号化されない限り、データ用暗号鍵306は生成されない(ステップS805)ので、HDD103に格納されているデータ用暗号鍵306を用いて暗号化された暗号化データを第三者によって解析されることを防止できる。
なお、秘密情報用暗号鍵305は、暗号化IC102の起動時(t1=t2=0)に生成されてもよい。すなわち、データ暗号化プログラム302及び秘密情報303を復号化するための秘密情報用暗号鍵305を暗号化IC102の起動に応じて生成する(ステップS801〜S803)ので、データ暗号化プログラム302及び秘密情報303を暗号化して復号化するまでの間に第三者がデータ暗号化プログラム302及び秘密情報303を解読する可能性を排除できる。
本発明は、上述した実施形態の機能を実現するソフトウエア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理において、そのプログラム、及び該プログラムを格納するコンピュータ読み取り可能な記憶媒体によって構成されてもよい。
102 暗号化IC
202 フラッシュメモリ
302 データ暗号化プログラム
303 秘密情報
304 情報b
305 秘密情報用暗号鍵
404 制御レジスタ
405 ステータスレジスタ
410 情報a

Claims (10)

  1. ホスト装置との間でデータを送受信する暗号化/復号化システムであって、
    前記ホスト装置との間で送受信されるデータに対して暗号化処理又は復号化処理を行うためのプログラムを暗号化した状態で格納する格納手段と、
    少なくとも1つのレジスタ値によって構成される第1のレジスタと、
    少なくとも1つのレジスタ値によって構成される第2のレジスタと、
    前記第1のレジスタ内の少なくとも1つのレジスタ値から少なくとも1つの第1のレジスタ値を選択すると共に前記第2のレジスタ内の少なくとも1つのレジスタ値から少なくとも1つの第2のレジスタ値とを選択する選択手段と、
    前記選択された第1のレジスタ値と、前記選択された第2のレジスタ値との組み合わせに基づいて情報値を生成する情報値生成手段と、
    前記格納されたプログラムを復号化するための鍵を前記情報値生成手段によって生成された前記情報値に基づいて前記暗号化/復号化システムの起動に応じて生成する鍵生成手段と、
    前記鍵生成手段によって生成された鍵を用いて前記格納されたプログラムを復号化する復号化手段と、
    前記復号化されたプログラムを実行する実行手段とを備えることを特徴とする暗号化/復号化システム。
  2. 前記情報値に他の情報値を結合する結合手段を更に備えることを特徴とする請求項記載の暗号化/復号化システム。
  3. 前記他の情報値は平文で構成されていることを特徴とする請求項記載の暗号化/復号化システム。
  4. 前記情報値生成手段は、前記暗号化/復号化システムが起動してから第1の時間が経過した時及び第2の時間が経過した時に前記情報値を生成することを特徴とする請求項乃至のいずれか1項に記載の暗号化/復号化システム。
  5. 前記鍵生成手段は、前記情報値生成手段によって前記第1の時間が経過した時及び前記第2の時間が経過した時に生成された2つの情報値を夫々疑似乱数化して演算処理を施す演算処理手段を更に備えることを特徴とする請求項記載の暗号化/復号化システム。
  6. 前記演算処理手段は前記2つの情報値に排他的論理和演算を施すことを特徴とする請求項記載の暗号化/復号化システム。
  7. 前記暗号化/復号化システムは2以上の起動方法を有し、
    前記情報値は、前記暗号化/復号化システムの起動方法に応じて異なる値となることを特徴とする請求項乃至のいずれか1項に記載の暗号化/復号化システム。
  8. 前記第1のレジスタのレジスタ値及び前記第2のレジスタのレジスタ値の少なくとも一方は時刻に応じて変化することを特徴とする請求項乃至のいずれか1項に記載の暗号化/復号化システム。
  9. ホスト装置との間でデータを送受信し、少なくとも1つのレジスタ値によって構成される第1のレジスタと、少なくとも1つのレジスタ値によって構成される第2のレジスタと、を備える暗号化/復号化システムの制御方法であって、
    前記ホスト装置との間で送受信されるデータに対して暗号化処理又は復号化処理を行うためのプログラムを暗号化した状態で格納する格納ステップと、
    前記第1のレジスタ内の少なくとも1つのレジスタ値から少なくとも1つの第1のレジスタ値を選択すると共に前記第2のレジスタ内の少なくとも1つのレジスタ値から少なくとも1つの第2のレジスタ値とを選択する選択ステップと、
    前記選択された第1のレジスタ値と、前記選択された第2のレジスタ値との組み合わせに基づいて情報値を生成する情報値生成ステップと、
    前記格納されたプログラムを復号化するための鍵を前記情報値生成ステップで生成された前記情報値に基づいて前記暗号化/復号化システムの起動に応じて生成する鍵生成ステップと、
    前記鍵生成ステップで生成された鍵を用いて前記格納されたプログラムを復号化する復号化ステップと、
    前記復号化されたプログラムを実行する実行ステップと、を備えることを特徴とする暗号化/復号化システムの制御方法。
  10. ホスト装置との間でデータを送受信し、少なくとも1つのレジスタ値によって構成される第1のレジスタと、少なくとも1つのレジスタ値によって構成される第2のレジスタと、を備える暗号化/復号化システムの制御方法をコンピュータに実行させるためのコンピュータ読み取り可能なプログラムであって、
    前記コンピュータに、
    前記ホスト装置との間で送受信されるデータに対して暗号化処理又は復号化処理を行うためのプログラムを暗号化した状態で格納する格納ステップと、
    前記第1のレジスタ内の少なくとも1つのレジスタ値から少なくとも1つの第1のレジスタ値を選択すると共に前記第2のレジスタ内の少なくとも1つのレジスタ値から少なくとも1つの第2のレジスタ値とを選択する選択ステップと、
    前記選択された第1のレジスタ値と、前記選択された第2のレジスタ値との組み合わせに基づいて情報値を生成する情報値生成ステップと、
    前記格納されたプログラムを復号化するための鍵を前記情報値生成ステップで生成された前記情報値に基づいて前記暗号化/復号化システムの起動に応じて生成する鍵生成ステップと、
    前記鍵生成ステップで生成された鍵を用いて前記格納されたプログラムを復号化する復号化ステップと、
    前記復号化されたプログラムを実行する実行ステップとを実行させることを特徴とするプログラム。
JP2017240706A 2017-12-15 2017-12-15 暗号化/復号化システム及びその制御方法、並びにプログラム Active JP6636006B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017240706A JP6636006B2 (ja) 2017-12-15 2017-12-15 暗号化/復号化システム及びその制御方法、並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017240706A JP6636006B2 (ja) 2017-12-15 2017-12-15 暗号化/復号化システム及びその制御方法、並びにプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014043834A Division JP6265783B2 (ja) 2014-03-06 2014-03-06 暗号化/復号化システム及びその制御方法、並びにプログラム

Publications (3)

Publication Number Publication Date
JP2018078610A JP2018078610A (ja) 2018-05-17
JP2018078610A5 JP2018078610A5 (ja) 2018-06-28
JP6636006B2 true JP6636006B2 (ja) 2020-01-29

Family

ID=62150838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017240706A Active JP6636006B2 (ja) 2017-12-15 2017-12-15 暗号化/復号化システム及びその制御方法、並びにプログラム

Country Status (1)

Country Link
JP (1) JP6636006B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109697173B (zh) * 2018-12-11 2023-05-23 中国航空工业集团公司西安航空计算技术研究所 一种面向信息安全的嵌入式计算机SiP模块设计方法及电路

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228374A (ja) * 1997-02-13 1998-08-25 Nippon Telegr & Teleph Corp <Ntt> 複製防止を施した計算機カード
JP3801833B2 (ja) * 2000-02-14 2006-07-26 株式会社東芝 マイクロプロセッサ
JP2005276113A (ja) * 2004-03-26 2005-10-06 Denso Corp 擬似乱数生成方法、セキュリティチェック方法および制御装置
JP2008085986A (ja) * 2006-08-30 2008-04-10 Ricoh Co Ltd データ変換装置と電子装置とデータ変換方法
JP4847827B2 (ja) * 2006-09-15 2011-12-28 株式会社リコー アクセス制御装置
JP2010224644A (ja) * 2009-03-19 2010-10-07 Toshiba Storage Device Corp 制御装置、記憶装置、データ漏洩防止方法
US9282083B2 (en) * 2009-10-06 2016-03-08 Hewlett-Packard Development Company, L.P. Encryption system and method

Also Published As

Publication number Publication date
JP2018078610A (ja) 2018-05-17

Similar Documents

Publication Publication Date Title
JP6265783B2 (ja) 暗号化/復号化システム及びその制御方法、並びにプログラム
RU2651213C2 (ru) Система на кристалле для выполнения безопасной загрузки, устройство формирования изображений, использующее ее, и способ для него
KR102013841B1 (ko) 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US9251380B1 (en) Method and storage device for isolating and preventing access to processor and memory used in decryption of text
JP2021505995A (ja) アドレススクランブルのための記憶機器及び方法
WO2018090763A1 (zh) 一种终端主密钥的设置方法和装置
EP3059897B1 (en) Methods and devices for authentication and key exchange
CN114785503B (zh) 密码卡及其根密钥保护方法、计算机可读存储介质
US8826042B2 (en) Memory controller, memory control apparatus, memory device, memory information protection system, control method for memory control apparatus, and control method for memory device
CN113434853A (zh) 一种将固件烧录至存储设备的方法及控制器
US9444622B2 (en) Computing platform with system key
WO2020118583A1 (zh) 数据处理方法、电路、终端设备及存储介质
JP6751856B2 (ja) 情報処理装置および情報処理システム
TWI393006B (zh) 用於碼傾印保護之安全系統及安全方法
JP6636006B2 (ja) 暗号化/復号化システム及びその制御方法、並びにプログラム
CN109075974B (zh) 指纹算法库与指纹传感器的绑定认证方法及指纹识别系统
CN110932853B (zh) 一种基于可信模块的密钥管理装置和密钥管理方法
JP7057675B2 (ja) 半導体装置及び暗号鍵の生成方法
JP2004199689A (ja) 不安全なpciバスを介した安全なメディア・カードの運用
JP2010219883A (ja) 画像形成装置および画像形成方法
CN113158203A (zh) 一种soc芯片、电路和soc芯片的外部数据读写方法
CN112257092A (zh) 数据传输控制方法、密钥管理方法、配置方法及相关装置
CN112149167A (zh) 一种基于主从系统的数据存储加密方法及装置
US10019584B2 (en) Performance of image forming functions based on encrypted data stored in volatile memory
JP7170588B2 (ja) データ処理方法及びデータ処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190903

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191024

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191217

R151 Written notification of patent or utility model registration

Ref document number: 6636006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151