JP2015130580A - データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法 - Google Patents
データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法 Download PDFInfo
- Publication number
- JP2015130580A JP2015130580A JP2014000908A JP2014000908A JP2015130580A JP 2015130580 A JP2015130580 A JP 2015130580A JP 2014000908 A JP2014000908 A JP 2014000908A JP 2014000908 A JP2014000908 A JP 2014000908A JP 2015130580 A JP2015130580 A JP 2015130580A
- Authority
- JP
- Japan
- Prior art keywords
- key
- data
- unit
- intermediate key
- generation unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/76—Proxy, i.e. using intermediary entity to perform cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
【課題】スクランブルで用いる拡大鍵の一部が漏えいされた場合でも、ホスト装置と暗号アクセラレータとの間で送受信されるデータが容易に盗難されないデータスクランブル装置を提供する。【解決手段】ホスト装置10のスクランブルデータ生成部12は、乱数から中間鍵を生成する中間鍵生成部121と、中間鍵生成部121が生成した中間鍵から拡大鍵を生成する拡大鍵生成部122とを有する。また、スクランブルデータ生成部12は、対象データと、拡大鍵生成部122が生成した拡大鍵とをスクランブル演算してスクランブルデータを生成するスクランブル演算部123を更に有する。【選択図】図2
Description
本発明は、データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法に関する。
組込み機器のストレージ(外部記憶装置)等に格納されたデータ等の盗難による情報漏洩に対する対策のため、組み込み機器にデータ暗号化機能を追加することが知られている。また、データを暗号化することにより組込み機器のCPU(Central Processing Unit、以下ホスト装置とも称する)の負荷が増大することを防止するために、暗号化機能を有する暗号アクセラレータを配置することが知られている。組み込み機器に暗号アクセラレータを追加することにより、ホスト装置の負荷が増大することなく、データを暗号化することができる。
また、ホスト装置と暗号アクセラレータとの間の配線を介して送受信されるデータの盗難による情報漏洩を防止するために、ホスト装置と暗号アクセラレータとの間を介して送受信されるデータを暗号化することが知られている。しかしながら、ホスト装置と暗号アクセラレータとの間を介して送受信されるデータを暗号化すると、ホスト装置の負荷が増大するおそれがある。ここでいう負荷とはホスト側で行う暗号化処理の負荷のことである。つまり、暗号化を高速で行うために暗号アクセラレータにデータを転送する際に、ホスト側にて暗号化を実施する必要があるのでは、アクセラレータとしての意味がなく、上記配線上のデータを暗号化するというのは実用的ではない。ホスト装置の負荷を最小限とし且つホスト装置と暗号アクセラレータとの間を介して送受信されるデータの盗難に対応するために、ホスト装置と暗号アクセラレータとの間のデータを認証コードを使用してスクランブル演算することが知られている。ここでいうスクランブル演算とは排他的論理和演算のことである。ホスト装置と暗号アクセラレータとの間を介して送受信されるデータをスクランブル演算することにより、ホスト装置の負荷を最小限とし且つホスト装置と暗号アクセラレータとの間のデータの盗難に対応することが可能になる。
しかしながら、先行技術におけるスクランブルでは、ホストと暗号アクセラレータとで固定長の認証コードを共有する。認証コードよりも長いサイズのデータをスクランブルする場合には、同一の認証コードを繰り返し使用してスクランブル演算を行う方法が考えられる。このようなデータをホスト装置と暗号アクセラレータとの間の配線を介して送受信する場合、固定長の認証コードが知られると、スクランブルされた長いデータ全てが盗難されるおそれがある。認証コードは通常、16バイト程度のため、16バイトが漏えいすると全データが盗難されるおそれがある。
1つの側面では、本発明は、ホスト装置と暗号アクセラレータとの間を介して送受信されるデータが容易に盗難されないデータスクランブル装置を提供することを目的とする。
1つの態様では、データスクランブル装置は、乱数から中間鍵を生成する中間鍵生成部と、中間鍵生成部が生成した中間鍵から拡大鍵を生成する拡大鍵生成部とを有する。また、データスクランブル装置は、対象データと、拡大鍵生成部が生成した拡大鍵とをスクランブル演算してスクランブルデータを生成するスクランブル演算部を更に有する。
認証コードが盗難された場合でも、ホスト装置と暗号アクセラレータとの間を介して送受信されるデータが容易に盗難されないデータスクランブル装置を提供することができる。
以下図面を参照して、本発明に係るデータスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明との均等物に及ぶ点に留意されたい。
図1は、実施形態例に係る組み込み機器のブロック図である。
組み込み機器1は、ホスト装置10と、暗号アクセラレータ20と、ROM30(Read Only Memory)と、RAM31(Random Access Memory)と、インタフェース32とを有する。ホスト装置10、ROM30、RAM31及びインタフェース32との間は、バス線33を介して接続される。ホスト装置10と暗号アクセラレータ20との間は、シリアル線34を介して接続される。
図2(a)はホスト装置10の機能ブロック図であり、図2(b)は暗号アクセラレータ20の機能ブロック図である。
ホスト装置10は、乱数生成部11と、第1スクランブルデータ生成部12と、第1記憶部13と、ホスト側インタフェース部14と、制御部15を有する。第1記憶部13は、16バイトの認証コード130と、第1中間鍵選択テーブル131と、第2中間鍵選択テーブル132とを格納する。
暗号アクセラレータ20は、暗号化部21と、第2スクランブルデータ生成部22と、第2記憶部23と、暗号化側インタフェース部24とを有する。第2記憶部23は、第1記憶部13に格納される認証コードと同一の認証コード130を格納する。また、第2記憶部23は、第1記憶部13に格納される第1中間鍵選択テーブル131及び第2中間鍵選択テーブル132と同一の第1中間鍵選択テーブル131及び第2中間鍵選択テーブル132を格納する。
乱数生成部11は、制御部15の指示に基づいて、16バイトの擬似乱数を生成し、生成した乱数を第1スクランブルデータ生成部12及び第1記憶部13に出力する。
第1スクランブルデータ生成部12は、第1中間鍵生成部121と、第1拡大鍵生成部122と、第1スクランブル演算部123とを有する。
図3は、第1中間鍵生成部121の内部回路ブロック図である。
第1中間鍵生成部121は、乱数格納バッファ1210と、第1乱数セレクタ1211と、第2乱数セレクタ1212と、第1定数セレクタ1213と、第2定数セレクタ1214とを有する。第1中間鍵生成部121は、加算器1215と、乗算器1216と、排他的論理和器1217と、中間鍵格納バッファ1218とを更に有する。
乱数格納バッファ1210は、乱数生成部11が生成した16バイトの乱数を格納する。第1乱数セレクタ1211及び第2乱数セレクタ1212は、乱数格納バッファ1210に格納された16バイトの乱数を4バイトずつ順次選択する。まず、第1乱数セレクタ1211及び第2乱数セレクタ1212は、最初の4バイトの乱数である第1乱数R1を選択する。次いで、第1乱数セレクタ1211及び第2乱数セレクタ1212は、次の4バイトの乱数である第2乱数を選択する。次いで、第1乱数セレクタ1211及び第2乱数セレクタ1212は、次の4バイトの乱数である第3乱数R3を選択する。そして、第1乱数セレクタ1211及び第2乱数セレクタ1212は、最後の4バイトの乱数である第4乱数R4を選択する。第4乱数R4を選択した後は、第1乱数セレクタ1211及び第2乱数セレクタ1212は、第1乱数R1を選択する。以降、第1乱数セレクタ1211及び第2乱数セレクタ1212は、第1乱数R1〜第4乱数R4を順次選択する。
第1定数セレクタ1213は、第1−1定数から第1−24定数までの互いに相違する24個の定数を順次選択する。第1定数セレクタ1213は、第1−24定数まで選択すると選択処理を終了する。第1定数セレクタ1213は、第2定数セレクタ1214は、第2−1定数から第2−24定数までの互いに相違する24個の定数を順次選択する。第2定数セレクタ1214は、第2−24定数まで選択すると選択処理を終了する。
加算器1215は、第1乱数セレクタ1211が選択した4バイトの乱数と、第1定数セレクタ1213が選択した定数とを加算して、4バイトの第1演算データを生成する。まず、加算器1215は、第1乱数セレクタ1211が選択した第1乱数R1と第1定数セレクタ1213が選択した第1−1定数とを加算して、第1−1演算データを生成する。次いで、加算器1215は、第1乱数セレクタ1211が選択した第2乱数と第1定数セレクタ1213が選択した第1−2定数とを加算して、第1−2演算データを生成する。以降、加算器1215は、第1乱数セレクタ1211が選択した乱数と、第1定数セレクタ1213が選択した定数とを加算する処理を繰り返す。第1乱数セレクタ1211が選択した第4乱数R4と第1定数セレクタ1213が選択した第1−24定数とを加算して、第1−24演算データを生成すると、加算器1215は、加算処理を終了する。
乗算器1216は、第2乱数セレクタ1212が選択した4バイトの乱数と、第2定数セレクタ1214が選択した定数とを乗算して、4バイトの第2演算データを生成する。まず、乗算器1216は、第2乱数セレクタ1212が選択した第1乱数R1と第2定数セレクタ1214が選択した第2−1定数とを乗算して、第2−1演算データを生成する。次いで、乗算器1216は、第2乱数セレクタ1212が選択した第2乱数R2と第2定数セレクタ1214が選択した第2−2定数とを乗算して、第2−2演算データを生成する。以降、乗算器1216は、第2乱数セレクタ1212が選択した乱数と、第2定数セレクタ1214が選択した定数とを乗算する処理を繰り返す。第2乱数セレクタ1212が選択した第4乱数R4と第2定数セレクタ1214が選択した第2−24定数とを乗算して、第2−24演算データを生成すると、乗算器1216は、乗算処理を終了する。
排他的論理和器1217は、加算器1215が演算した第1演算データと、乗算器1216が演算した第1演算データとを排他的論理和(以下、XORとも称する)演算して、4バイトの中間鍵を生成する。排他的論理和器1217は、生成した中間鍵を中間鍵格納バッファ1218に格納する。まず、排他的論理和器1217は、加算器1215が演算した第1−1演算データと、乗算器1216が演算した第2−1演算データとをXOR演算して第1中間鍵A0を生成して、中間鍵格納バッファ1218に格納する。次いで、排他的論理和器1217は、加算器1215が演算した第1−2演算データと、乗算器1216が演算した第2−2演算データとをXOR演算して第2中間鍵A1を生成して、中間鍵格納バッファ1218に格納する。以降、排他的論理和器1217は、加算器1215が演算した第1演算データと、乗算器1216が演算した第1演算データとをXOR演算する処理を繰り返す。生成された中間鍵は、第1〜第4中間鍵A0〜A3、第5〜第8中間鍵B0〜B3、第9〜第12中間鍵C0〜C3、第13〜第16中間鍵D0〜D3、第17〜第20中間鍵E0〜E3及び第20〜第24中間鍵F0〜F3として格納される。加算器1215が演算した第1−24演算データと、乗算器1216が演算した第2−24演算データとをXOR演算して第24中間鍵F3を生成すると、排他的論理和器1217は、乗算処理を終了する。
中間鍵格納バッファ1218は、第1〜第4中間鍵A0〜A3、第5〜第8中間鍵B0〜B3、第9〜第12中間鍵C0〜C3、第13〜第16中間鍵D0〜D3、第17〜第20中間鍵E0〜E3及び第20〜第24中間鍵F0〜F3を順次格納する。
図4は、第1拡大鍵生成部122の回路ブロック図である。
第1拡大鍵生成部122は、中間鍵セレクタ1220と、第1ビットローテーション部1221と、第2ビットローテーション部1222と、第1加算部1223と、減算部1224と、第3ビットローテーション部1225と、第2加算部1226とを有する。第1拡大鍵生成部122は、単位拡大鍵格納部1227と、拡大鍵合成部1228とを更に有する。
中間鍵セレクタ1220は、所定のアルゴリズムに基づいて、中間鍵格納バッファ1218に格納される24個の中間鍵から第1選択鍵Xx、第2選択鍵Yy、第3選択鍵Zz及び第4選択鍵Wwの4つの中間鍵を選択する。中間鍵セレクタ1220は、第1記憶部13に格納される第1中間鍵選択テーブル131及び第2中間鍵選択テーブル132を使用して、中間鍵格納バッファ1218に格納される24個の中間鍵から4つの中間鍵を選択する処理を512回繰り返す。
図5(a)は中間鍵セレクタ1220の選択アルゴリズムを示す図であり、図5(b)は第1中間鍵選択テーブル131を示す図であり、図5(c)は第2中間鍵選択テーブル132を示す図である。
第1中間鍵選択テーブル131は、第0行から第21行までの22行と、第0列から第3列までの4列とにA〜Fのアルファベットが配置されるテーブルである。例えば、第1中間鍵選択テーブル131の第0行第0列には「A」が配置され、第4行第3列には「F」が配置され、第21行第3列には「E」が配置される。
第2中間鍵選択テーブル132は、第0行から第23行までの24行と、第0列から第3列までの4列とに0〜3の数値が配置されるテーブルである。例えば、第2中間鍵選択テーブル132の第0行第0列には「0」が配置され、第4行第3列には「1」が配置され、第23行第3列には「0」が配置される。
中間鍵セレクタ1220は、図5(a)に示すアルゴリズムに基づいて、第1中間鍵選択テーブル131及び第2中間鍵選択テーブル132を使用して、中間鍵格納バッファ1218に格納される24個の中間鍵から4つの中間鍵を順次選択する。図5(a)において、Xは第1選択鍵のアルファベット部であり、xは第1選択鍵の数字部であり、Yは第2選択鍵のアルファベット部であり、yは第2選択鍵の数字部であり、Zは第3選択鍵のアルファベット部であり、zは第3選択鍵の数字部である。また、Wは第4選択鍵のアルファベット部であり、wは第4選択鍵の数字部である。
また、図5(a)において、「t」は第1中間鍵選択テーブル131の行を示し、「s」は第2中間鍵選択テーブル132の行を示す。「Order[t][0]」は第1中間鍵選択テーブル131の第t行0列のアルファベットを示し、「Index[s][0]」は第2中間鍵選択テーブル132の第s行0列のアルファベットを示す。「Order[t][1]」は第1中間鍵選択テーブル131の第t行1列のアルファベットを示し、「Index[s][1]」は第2中間鍵選択テーブル132の第s行1列のアルファベットを示す。「Order[t][2]」は第1中間鍵選択テーブル131の第t行2列のアルファベットを示し、「Index[s][2]」は第2中間鍵選択テーブル132の第s行2列のアルファベットを示す。「Order[t][3]」は第1中間鍵選択テーブル131の第t行3列のアルファベットを示し、「Index[s][3]」は第2中間鍵選択テーブル132の第s行3列のアルファベットを示す。
第1回目の選択処理では、中間鍵セレクタ1220は、第1選択鍵Xxとして第1中間鍵A0を選択し、第2選択鍵Yyとして第5中間鍵B0を選択し、第3選択鍵Zzとして第9中間鍵C0を選択し、第4選択鍵Wwとして第13中間鍵D0を選択する。
第2回目の選択処理では、中間鍵セレクタ1220は、第1選択鍵Xxとして第6中間鍵B1を選択し、第2選択鍵Yyとして第2中間鍵A1を選択し、第3選択鍵Zzとして第14中間鍵D1を選択し、第4選択鍵Wwとして第10中間鍵C1を選択する。以下、第264回目の選択処理まで、第1中間鍵選択テーブル131及び第2中間鍵選択テーブル132の選択する行を1つずつ増やすことにより、4つの選択鍵を順次選択する。
第265回目の選択処理では、第264回目の選択処理で選択していた第1中間鍵選択テーブル131の行、すなわち第23行から2つ増やした行である第1行を選択する。以降、第512回目の選択処理まで、第1中間鍵選択テーブル131及び第2中間鍵選択テーブル132の選択する行を1つずつ増やすことにより、4つの選択鍵を順次選択する。
第1中間鍵選択テーブル131の第0行から第21行のそれぞれの行に配置されるA〜Fまでのアルファベットの順列は互いに異なる。また、第2中間鍵選択テーブル132の第0行から第23行のそれぞれの行に配置される0〜3までの数値の順列は互いに異なる。図5(a)に示すアルゴリズムは、第1中間鍵選択テーブル131の行数である22と、第2中間鍵選択テーブル132の行数である24との最小公倍数である264よりも多い512回の処理において処理ごとに異なる4つの中間鍵を選択する。
第1ビットローテーション部1221は、第1選択鍵Xxを1ビット左ローテーションさせて第1ビットローテーションデータを生成する。第2ビットローテーション部1222は、第3選択鍵Zzを1ビット左ローテーションさせて第2ビットローテーションデータを生成する。第1加算部1223は、第1ビットローテーション部1221が生成した第1ビットローテーションデータと、第2選択鍵Yyとを加算して第1加算データを生成する。減算部1224は、第2ビットローテーション部1222が生成した第2ビットローテーションデータと、第4選択鍵Wwとを加算して減算データを生成する。第3ビットローテーション部1225は、減算部1224が生成した減算データを1ビット左ローテーションさせて第3ビットローテーションデータを生成する。第2加算部1226は、第1加算部1223が生成した第1加算データと、第3ビットローテーション部1225が生成した第3ビットローテーションデータとを加算して4バイトの単位拡大鍵を生成する。
第1ビットローテーション部1221、第2ビットローテーション部1222、第1加算部1223、減算部1224、第3ビットローテーション部1225及び第2加算部1226は、中間鍵セレクタ1220が4つの中間鍵を選択するごとに、単位拡大鍵を生成する。中間鍵セレクタ1220は、4つの中間鍵を512回選択するので、第1単位拡大鍵から第512単位拡大鍵までの512個の単位拡大鍵が生成される。第1単位拡大鍵〜第512単位拡大鍵は、処理ごとに異なる4つの中間鍵を使用して演算されるため、互いに異なる。
単位拡大鍵格納部1227は、第2加算部1226が生成した第1単位拡大鍵から第512単位拡大鍵までの512個の単位拡大鍵を順次格納する。拡大鍵合成部1228は、単位拡大鍵格納部1227が格納したそれぞれが4バイトの第1単位拡大鍵〜第512単位拡大鍵を合成することにより、2048バイトのデータ長を有する拡大鍵を合成する。
第1スクランブル演算部123は、キーデータと、対象データとをXOR演算して、対象データをスクランブル化する。例えば、第1スクランブル演算部123は、キーデータXと、対象データAとをXOR演算してスクランブル化することにより、スクランブルデータBを生成する。反対に、第1スクランブル演算部123は、スクランブルデータBと、キーデータXとをXOR演算して、対象データAを復元する。
第1スクランブル演算部123は、乱数生成部11が生成した16バイトの乱数と、第1記憶部13に格納される16バイトの認証コード130とをXOR演算して、16バイトの第1スクランブルデータを生成する。また、第1スクランブル演算部123は、2048バイトの対象データと、2048バイトの拡大鍵とをXOR演算して2048バイトの第2スクランブルデータを生成する。
ホスト側インタフェース部14は、第1スクランブルデータ生成部12が生成したデータを示す信号をシリアル線34を介して暗号化側インタフェース部24に送信する。また、ホスト側インタフェース部14は、暗号化側インタフェース部24からシリアル線34を介して送信された信号を受信する。
ホスト側インタフェース部14は、第1スクランブル演算部123が生成した第1スクランブルデータ及び第2スクランブルデータを示す信号を暗号化側インタフェース部24に送信する。また、ホスト側インタフェース部14は、暗号化部21が暗号化した暗号化対象データを示す信号を暗号化側インタフェース部24から受信する。
制御部15は、ROMに格納されたコンピュータプログラムに従い、ホスト装置10及び暗号アクセレータ20等組み込み機器1に搭載される装置の動作を制御する。
暗号化部21は、DES及びAES等の共通鍵暗号方式やRSAなどの公開鍵暗号方式使用して暗号化処理及び復号化処理を実行する。
第2スクランブルデータ生成部22は、第2中間鍵生成部221と、第2拡大鍵生成部222と、第2スクランブル演算部223とを有する。第2中間鍵生成部221、第2拡大鍵生成部222及び第2スクランブル演算部223はそれぞれ、第1中間鍵生成部121、第1拡大鍵生成部122及び第1スクランブル演算部123と同一の構成及び機能を有する。また、第2スクランブルデータ生成部22は、ホスト装置10から第2スクランブルデータを示す信号を受信したか否かを判定する。ホスト装置10から第2スクランブルデータを示す信号を受信したと判定したとき、第2スクランブルデータ生成部22は、中間鍵生成処理を開始する。
図6は、第2中間鍵生成部221の内部回路ブロック図である。
第2中間鍵生成部221は、乱数格納バッファ2210と、第1乱数セレクタ2211と、第2乱数セレクタ2212と、第1定数セレクタ2213と、第2定数セレクタ2214とを有する。第2中間鍵生成部221は、加算器2215と、乗算器2216と、排他的論理和器2217と、中間鍵格納バッファ2218とを更に有する。
乱数格納バッファ2210は、16バイトの乱数を格納する。第1乱数セレクタ2211及び第2乱数セレクタ2212は、乱数格納バッファ2210に格納された16バイトの乱数を4バイトずつ順次選択する。
第1定数セレクタ2213は、第1−1定数から第1−24定数までの互いに相違する24個の定数を順次選択し、第2定数セレクタ2214は、第2−1定数から第2−24定数までの互いに相違する24個の定数を順次選択する。加算器2215、乗算器2216及び排他的論理和器2217のそれぞれは選択された4バイトの乱数と定数とを演算する。
中間鍵格納バッファ2218は、第1〜第4中間鍵A0〜A3、第5〜第8中間鍵B0〜B3、第9〜第12中間鍵C0〜C3、第13〜第16中間鍵D0〜D3、第17〜第20中間鍵E0〜E3及び第20〜第24中間鍵F0〜F3を順次格納する。
図7は、第2拡大鍵生成部222の回路ブロック図である。
第2拡大鍵生成部222は、中間鍵セレクタ2220と、第1ビットシフト部2221と、第2ビットシフト部2222と、第1加算部2223と、減算部2224と、第3ビットシフト部2225と、第2加算部2226とを有する。第2拡大鍵生成部222は、単位拡大鍵格納部2227と、拡大鍵合成部2228とを更に有する。
中間鍵セレクタ2220は、第1中間鍵選択テーブル131及び第2中間鍵選択テーブル132を使用して、図5(a)のアルゴリズムに基づいて、4つの選択鍵を512回選択する。
第1ビットローテーション部2221、第2ビットローテーション部2222、第1加算部2223、減算部2224、第3ビットローテーション部2225及び第2加算部2226は、中間鍵セレクタ2220が4つの中間鍵を選択するごとに、単位拡大鍵を生成する。中間鍵セレクタ2220は、4つの中間鍵を512回選択するので、第1単位拡大鍵から第512単位拡大鍵までの512個の単位拡大鍵が生成される。
単位拡大鍵格納部2227は、第2加算部2226が生成した第1単位拡大鍵から第512単位拡大鍵までの512個の単位拡大鍵を順次格納する。拡大鍵合成部2228は、単位拡大鍵格納部2227が格納したそれぞれが4バイトの第1単位拡大鍵〜第512単位拡大鍵を合成することにより、2048バイトのデータ長を有する拡大鍵を合成する。
第2スクランブル演算部223は、キーデータと、暗号化対象データとをXOR演算して、暗号化対象データをスクランブル化する。第1スクランブル演算部123は、ホスト側インタフェース部14から送信された16バイトの第1スクランブルデータと、第2記憶部23に格納される16バイト認証コードとをXOR演算して乱数を復元する。また、第2スクランブル演算部223は、ホスト側インタフェース部14から送信された2048バイトの第2スクランブルデータと、2048バイトの拡大鍵とをXOR演算して暗号化対象データを復元する。
暗号化側インタフェース部24は、暗号化部21が暗号化した暗号化対象データを示す信号をシリアル線34を介してホスト側インタフェース部14に送信する。また、暗号化側インタフェース部24は、ホスト側インタフェース部14からシリアル線34を介して送信された第1スクランブルデータ及び第2スクランブルデータを示す信号を受信する。
〔0040〕及び、〔0057〕においては、単位拡大鍵から2048バイトの拡大鍵を合成して格納する方法を示したが、拡大鍵格納部は必ずしも2048バイト必要ない。例えば、拡大鍵格納部を単位鍵と同サイズとし、単位拡大鍵が一つ生成されるごとに格納し、単位鍵と同サイズ分だけデータとスクランブル演算したのち、次の単位鍵を同一の領域に格納する方法を採用してもよい。
図8は、ホスト装置10が暗号アクセラレータ20を使用して、暗号化対象データを暗号化する処理を示すフローチャートである。
図8は、ホスト装置10が暗号アクセラレータ20を使用して、暗号化対象データを暗号化する処理を示すフローチャートである。
まず、ステップS101において、乱数生成部11は、乱数を生成する。
次いで、ステップS102において、第1スクランブル演算部123は、乱数生成部11が生成した乱数と第1記憶部13に格納される認証コードとをXOR演算して第1スクランブルデータを生成する。
次いで、ステップS103において、ホスト側インタフェース部14は、第1スクランブル演算部123が生成した第1スクランブルデータを暗号化側インタフェース部24に送信する。次いで、処理は、ステップS104及びS201に進む。
処理がステップS104に進むと、第1中間鍵生成部121は、乱数生成部11が生成した乱数から、24個の中間鍵を生成する。
次いで、ステップS105において、第1拡大鍵生成部122は、第1中間鍵生成部121が生成した24個の中間鍵から拡大鍵を生成する。
次いで、ステップS106において、第1スクランブル演算部123は、第1拡大鍵生成部122が生成した拡大鍵と暗号化対象データとをXOR演算して第2スクランブルデータを生成する。
次いで、ステップS107において、ホスト側インタフェース部14は、第1スクランブル演算部123が生成した第2スクランブルデータを暗号化側インタフェース部24に送信する。次いで、処理は、ステップS205に進む。
処理がステップS201に進むと、暗号化側インタフェース部24は、ホスト側インタフェース部14が送信した第1スクランブルデータを受信する。
次いで、ステップS202において、第2スクランブル演算部223は、暗号化側インタフェース部24が受信した第1スクランブルデータから、乱数を復元する。
次いで、ステップS203において、第2中間鍵生成部221は、第2スクランブル演算部223が復元した乱数から、24個の中間鍵を生成する。
次いで、ステップS204において、第2拡大鍵生成部222は、第2中間鍵生成部221が生成した24個の中間鍵から拡大鍵を生成する。
次いで、ステップS205において、第2スクランブルデータ生成部22は、ホスト装置10から第2スクランブルデータを示す信号を受信したか否かを判定する。ホスト装置10から第2スクランブルデータを受信していないと判定した場合、所定の待機時間が経過した後に、第2スクランブルデータ生成部22は、ホスト装置10から第2スクランブルデータを受信したか否かを再度判定する。ステップS107においてホスト側インタフェース部14が送信した第2スクランブルデータを示す信号を、暗号化側インタフェース部24が受信したことを第2スクランブルデータ生成部22が判定すると、処理はステップS206に進む。
処理がステップS206に進むと、第2スクランブル演算部223は、暗号化側インタフェース部24が受信した第2スクランブルデータと、第2拡大鍵生成部222が生成した拡大鍵とをXOR演算して暗号化対象データを復元する。
次いで、ステップS207において、暗号化部21は、スクランブル演算2123が復元した暗号化対象データを暗号化する。
次いで、ステップS208において、暗号化側インタフェース部24は、暗号化部2114によって暗号化された暗号化対象データをホスト側インタフェース部14に送信する。
次いで、ステップS108において、ホスト側インタフェース部14は、暗号化された暗号化対象データを暗号化側インタフェース部24から受信する。
組み込み機器1では、暗号化対象データは、乱数から生成される複数の中間鍵から生成される拡大鍵を使用してスクランブル化されているので、ホスト装置10から暗号アクセラレータ20に暗号化対象データの盗難は容易ではない。拡大鍵は2048バイト以内の周期のないデータであるため、この拡大鍵が16バイト程度漏えいしても全データが盗難されることはない。
また、組み込み機器1では、ホスト装置10から暗号アクセラレータ20に送信される暗号化対象データは、暗号化されずに、スクランブル化されているので、ホスト装置10での暗号化処理がなくホスト装置10の負荷を軽くできる。また、乱数生成部11が生成する擬似乱数は40バイト以下であれば、例えば16バイトであれば、擬似乱数の高速生成が可能である。
また、組み込み機器1では、中間鍵を生成する中間鍵生成部は、複数のセレクタ、並びに単一の加算器、乗算器及び排他的論理和器を有する簡単な構成であるので、中間鍵生成部の回路規模を小さくすることができる。
また、組み込み機器1では、拡大鍵を生成する拡大鍵生成部の演算処理は、ビットローテーション処理、加算処理及び減算処理であるので高速な演算処理が可能である。
組み込み機器1では、乱数生成部11は、16バイトの擬似乱数を生成するが、認証コード130とデータ長が同一であれば、データ長が16バイトよりも長い疑似乱数、又はデータ長が16バイトよりも短い疑似乱数を生成する乱数生成器を使用してもよい。また、物理乱数等の真の乱数を生成する乱数生成器を使用してもよい。
また、組み込み機器1では、4バイトの中間鍵が使用されるが、データ長が4バイトよりも長い中間鍵、又はデータ長が4バイトよりも短い中間鍵を使用してもよい。また、組み込み機器1では、単一の第1中間鍵生成部121を24回動作させて24個の中間鍵を生成しているが、複数の第1中間鍵生成部121を使用して24個の中間鍵を生成してもよい。例えば、4つの第1中間鍵生成部121を6回動作させて24個の中間鍵を生成してもよく、6つの第1中間鍵生成部121を4回動作させて24個の中間鍵を生成してもよい。また、組み込み機器1では、24個の中間鍵を使用して拡大鍵を生成しているが、24個より多い中間鍵を使用し、又は24個より少ない中間鍵を使用して拡大鍵を生成してもよい。
また、組み込み機器1では、第1スクランブル演算部123及び第2スクランブル演算部223のそれぞれは、XOR演算により対象データをスクランブル化しているが、四則演算等の他の演算によってスクランブル化する構成としてもよい。また、対象データをスクランブル化は、XOR演算や四則演算等の組合せによって実行されてもよい。
また、組み込み機器1では、第1中間鍵選択テーブル131及び第2中間鍵選択テーブル132を使用して、図5(a)に示すアルゴリズムに基づいて24個の中間鍵を選択しているが、他のアルゴリズムを使用してもよい。
図9(a)は選択アルゴリズムの他を示す図である。また、図9(b)は図9(a)に示す選択アルゴリズムで使用される第1中間鍵選択テーブルを示す図であり、図9(c)は図9(a)に示す選択アルゴリズムで使用される第2中間鍵選択テーブルを示す図である。
図9(b)に示す第1中間鍵選択テーブルの行数は12行であり、図9(c)に示す第2中間鍵選択テーブルの行数は9行であり、2つの行数の最小公倍数は108である。図9(a)に示す選択アルゴリズムでは、2つの行数の最小公倍数よりも多い512回の処理が可能である。
1 組み込み機器
10 ホスト装置(データスクランブル装置)
11 乱数生成部
12 第1スクランブルデータ生成部
13 第1記憶部
14 ホスト側インタフェース部
15 制御部
20 暗号アクセラレータ(セキュリティ装置)
21 暗号化部
22 第2スクランブルデータ生成部
23 第2記憶部
24 暗号化側インタフェース部
121 第1中間鍵生成部
122 第1拡大鍵生成部
123 第1スクランブル演算部
221 第2中間鍵生成部
222 第2拡大鍵生成部
223 第2スクランブル演算部
10 ホスト装置(データスクランブル装置)
11 乱数生成部
12 第1スクランブルデータ生成部
13 第1記憶部
14 ホスト側インタフェース部
15 制御部
20 暗号アクセラレータ(セキュリティ装置)
21 暗号化部
22 第2スクランブルデータ生成部
23 第2記憶部
24 暗号化側インタフェース部
121 第1中間鍵生成部
122 第1拡大鍵生成部
123 第1スクランブル演算部
221 第2中間鍵生成部
222 第2拡大鍵生成部
223 第2スクランブル演算部
Claims (9)
- 乱数から中間鍵を生成する中間鍵生成部と、
前記中間鍵生成部が生成した中間鍵から拡大鍵を生成する拡大鍵生成部と、
対象データと、前記拡大鍵生成部が生成した拡大鍵とをスクランブル演算してスクランブルデータを生成するスクランブル演算部と、
を有することを特徴とするデータスクランブル装置。 - 前記中間鍵生成部は、
前記乱数と第1定数とを演算して第1演算データを生成し、
前記乱数と第2定数とを演算して第2演算データを生成し、
前記第1演算データと前記第2演算データとをスクランブル演算して中間鍵を生成する処理を、前記第1定数及び第2定数を変更して複数回繰り返すことにより、複数の中間鍵を生成する、請求項1に記載のデータスクランブル装置。 - 前記拡大鍵生成部は、
中間鍵選択テーブルを使用して前記複数の中間鍵の何れかを選択し、
前記選択した中間鍵から複数の単位拡大鍵を生成し、
前記生成した複数の単位拡大鍵を合成して前記拡大鍵を生成する、請求項2に記載のデータスクランブル装置。 - 複数の行を有する第1中間鍵選択テーブルと、前記第1中間鍵選択テーブルの行数と行数が相違する行を有する第2中間鍵選択テーブルと、を有し、
前記第1中間鍵選択テーブル及び前記第2中間鍵選択テーブルの行を選択することにより選択可能な前記中間鍵の組合せの数は、前記拡大鍵を生成するときに使用される単位拡大鍵の数よりも多い、請求項3に記載のデータスクランブル装置。 - 前記第1中間鍵選択テーブルの行数と、前記第2中間鍵選択テーブルの行数との最小公倍数は、前記拡大鍵を生成するときに使用される単位拡大鍵の数よりも多い、請求項4に記載のデータスクランブル装置。
- 前記第1中間鍵選択テーブルの行数と、前記第2中間鍵選択テーブルの行数との最小公倍数は、前記拡大鍵を生成するときに使用される単位拡大鍵の数よりも少ない、請求項4に記載のデータスクランブル装置。
- 乱数から中間鍵を生成する中間鍵生成部と、
前記中間鍵生成部が生成した中間鍵から拡大鍵を生成する拡大鍵生成部と、
スクランブルデータと、前記拡大鍵生成部が生成した拡大鍵とをスクランブル演算して暗号化対象データを復元するスクランブル演算部と、
前記スクランブル演算部が復元した暗号化対象データを暗号化する暗号化部と、
を有することを特徴とするセキュリティ装置。 - ホスト装置と暗号化装置とを有するセキュリティシステムであって、
前記ホスト装置は、
乱数を生成する乱数生成部と、
前記乱数生成部が生成した乱数から中間鍵を生成する第1中間鍵生成部と、
前記第1中間鍵生成部が生成した中間鍵から拡大鍵を生成する第1拡大鍵生成部と、
暗号化対象データと、前記第1拡大鍵生成部が生成した拡大鍵とをスクランブル演算してスクランブルデータを生成する第1スクランブル演算部と、
前記乱数生成部が生成した乱数と、前記第1スクランブル演算部が生成したスクランブルデータとを送信する第1送信部と、を有し、
前記暗号化装置は、
前記第1送信部が送信した乱数とスクランブルデータとを受信する第2受信部と、
前記第2受信部が受信した乱数から中間鍵を生成する第2中間鍵生成部と、
前記第2中間鍵生成部が生成した中間鍵から拡大鍵を生成する第2拡大鍵生成部と、
前記第2受信部が受信したスクランブルデータと、前記第2拡大鍵生成部が生成した拡大鍵とをスクランブル演算して暗号化対象データを復元する第2スクランブル演算部と、
前記第2スクランブル演算部が復元した暗号化対象データを暗号化する暗号化部と、
前記暗号化部が暗号化した暗号化対象データを送信する第2送信部と、を有する、
ことを特徴とするセキュリティシステム。 - 乱数から中間鍵を生成し、
前記生成した中間鍵から拡大鍵を生成し、
対象データと、前記生成した拡大鍵とをスクランブル演算してスクランブルデータを生成する、
ことを有することを特徴とするデータスクランブル方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014000908A JP2015130580A (ja) | 2014-01-07 | 2014-01-07 | データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法 |
US14/587,466 US20150195089A1 (en) | 2014-01-07 | 2014-12-31 | Data scramble device, security device, security system, and data scramble method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014000908A JP2015130580A (ja) | 2014-01-07 | 2014-01-07 | データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015130580A true JP2015130580A (ja) | 2015-07-16 |
Family
ID=53496019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014000908A Pending JP2015130580A (ja) | 2014-01-07 | 2014-01-07 | データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20150195089A1 (ja) |
JP (1) | JP2015130580A (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10013363B2 (en) * | 2015-02-09 | 2018-07-03 | Honeywell International Inc. | Encryption using entropy-based key derivation |
EP3119031A1 (en) * | 2015-07-16 | 2017-01-18 | ABB Schweiz AG | Encryption scheme using multiple parties |
US10708073B2 (en) | 2016-11-08 | 2020-07-07 | Honeywell International Inc. | Configuration based cryptographic key generation |
US10171444B1 (en) * | 2017-06-12 | 2019-01-01 | Ironclad Encryption Corporation | Securitization of temporal digital communications via authentication and validation for wireless user and access devices |
US10154021B1 (en) * | 2017-06-12 | 2018-12-11 | Ironclad Encryption Corporation | Securitization of temporal digital communications with authentication and validation of user and access devices |
US10616192B2 (en) * | 2017-06-12 | 2020-04-07 | Daniel Maurice Lerner | Devices that utilize random tokens which direct dynamic random access |
US10171435B1 (en) * | 2017-06-12 | 2019-01-01 | Ironclad Encryption Corporation | Devices that utilize random tokens which direct dynamic random access |
US10154015B1 (en) * | 2017-06-12 | 2018-12-11 | Ironclad Encryption Corporation | Executable coded cipher keys |
US10645070B2 (en) * | 2017-06-12 | 2020-05-05 | Daniel Maurice Lerner | Securitization of temporal digital communications via authentication and validation for wireless user and access devices |
WO2019195691A1 (en) * | 2018-04-05 | 2019-10-10 | Daniel Maurice Lerner | Discrete blockchain and blockchain communications |
CN110071927B (zh) * | 2019-04-28 | 2021-09-14 | 苏州国芯科技股份有限公司 | 一种信息加密方法、系统及相关组件 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW556111B (en) * | 1999-08-31 | 2003-10-01 | Toshiba Corp | Extended key generator, encryption/decryption unit, extended key generation method, and storage medium |
US6956951B2 (en) * | 2000-07-13 | 2005-10-18 | Fujitsu Limited | Extended key preparing apparatus, extended key preparing method, recording medium and computer program |
JP4128395B2 (ja) * | 2002-05-23 | 2008-07-30 | 三菱電機株式会社 | データ変換装置 |
JP2008236380A (ja) * | 2007-03-20 | 2008-10-02 | Sony Corp | 鍵提供システム、端末装置、及び情報処理方法 |
JPWO2009087972A1 (ja) * | 2008-01-09 | 2011-05-26 | 日本電気株式会社 | データ送信装置、データ受信装置、これらの方法、コンピュータプログラム、そのデータ通信システム |
-
2014
- 2014-01-07 JP JP2014000908A patent/JP2015130580A/ja active Pending
- 2014-12-31 US US14/587,466 patent/US20150195089A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20150195089A1 (en) | 2015-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015130580A (ja) | データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法 | |
JP6058245B2 (ja) | 乱数拡大装置、乱数拡大方法及び乱数拡大プログラム | |
JP5822970B2 (ja) | 擬似ランダム生成、データ暗号化、およびメッセージ暗号化ハッシングのための暗号化デバイス | |
US8724804B2 (en) | Encryption processing apparatus | |
CN101378314B (zh) | 一种密钥序列的生成方法和密钥产生装置 | |
JP2000066585A (ja) | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 | |
JP6329534B2 (ja) | 疑似ランダム系列の生成方法およびデータストリームのコーディングまたはデコーディング方法 | |
WO2005073842A1 (ja) | 擬似乱数生成装置および擬似乱数生成プログラム | |
EP3531613B1 (en) | Method and circuit for implementing a substitution table | |
CN112422272A (zh) | 一种防功耗攻击的aes加密方法及电路 | |
KR20120038104A (ko) | 랜덤 데이터 생성 장치 및 그 방법 | |
US20160170711A1 (en) | Input-dependent random number generation using memory arrays | |
Kaur et al. | 3D—Playfair cipher using LFSR based unique random number generator | |
JP6194136B2 (ja) | 疑似乱数生成装置及び疑似乱数生成プログラム | |
US20140289295A1 (en) | Method for generating a random output bit sequence | |
JP2008165008A (ja) | データ処理装置及びデータ処理方法 | |
RU2503135C1 (ru) | Способ криптографического преобразования информации и устройство для его реализации | |
US20100128870A1 (en) | Pseudo-random number generation device, program, and method for stream encoding | |
Chugunkov et al. | Issues of increasing the efficiency of replacement blocks for cryptoalgorithms round functions | |
JP2011128655A (ja) | 擬似乱数発生システム | |
CN110785960B (zh) | 码生成装置、码生成方法和计算机能读取的存储介质 | |
Elganzoury et al. | Enhanced stream cipher algorithm using consecutive Nonlinear functions | |
US10708043B2 (en) | One pad communications | |
CN114915480B (zh) | 一种射频数据流的加密方法及星载加密机 | |
JPS5843743B2 (ja) | 暗号化方式 |