JP2013141137A - 複合システム - Google Patents

複合システム Download PDF

Info

Publication number
JP2013141137A
JP2013141137A JP2012000482A JP2012000482A JP2013141137A JP 2013141137 A JP2013141137 A JP 2013141137A JP 2012000482 A JP2012000482 A JP 2012000482A JP 2012000482 A JP2012000482 A JP 2012000482A JP 2013141137 A JP2013141137 A JP 2013141137A
Authority
JP
Japan
Prior art keywords
data
subsystem
main system
cryptographic
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
JP2012000482A
Other languages
English (en)
Inventor
Eiichiro Yoshida
英一郎 吉田
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012000482A priority Critical patent/JP2013141137A/ja
Priority to US13/693,409 priority patent/US9401809B2/en
Priority to CN201310002574.8A priority patent/CN103198258B/zh
Publication of JP2013141137A publication Critical patent/JP2013141137A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]

Abstract

【課題】メインシステムの暗号処理対象データのサイズがサブシステムのメモリ容量よりも大きい場合であっても、暗号処理対象データサイズ、サブシステムの搭載メモリ量、メインシステムとサブシステム間のデータ転送能力によらず暗号処理を実現することができる。
【解決手段】メインプログラムで動作するメインシステム11と、サブプログラムで動作するとともに該メインシステム11の制御下で動作する複数のサブシステム12が所定のバスによって離接可能に接続されている複合システムにおいて、メインシステム11は、暗号処理の対象となるデータを分割したデータ断片ごとにサブシステム12に転送し、サブシステム12は、メインシステム11から受信したデータ断片を一時的に書き込み/読み出し可能な受信バッファ12fを有する。
【選択図】図1

Description

本発明は、メインシステムから暗号処理の対象となるデータをサブシステムに転送する複合システムに関する。
従来、複数のシステムを複合した複合システムが構築されるようになってきており、サブシステムそれぞれがCPU(Central Processing Unit )を搭載して当該サブシステムを制御するとともに、メインシステムのCPUの制御下で全体の動作制御を行うようになってきている。
そして、このような複合システムにおいては、サブシステムの接続と切り離しが容易であることから、複合システム内に蓄積されているユーザの個人的な情報を保護することが重要な問題となってきている。このような複合システムにおいては、サブシステムになりすましたソフトウエアの不正改ざんや情報の漏洩が問題となっている。
また、従来、省エネ高速暗号通信を実現するため、暗号処理ハードウエアを搭載したサブボードが提案されている。
この技術は、メインシステムには暗号処理機能を搭載せず、サブシステムの暗号機能を利用する構成にした。
このため、ファームウエアデータ(例えば、30MB程度)の正当性を確認する暗号処理をサブシステムで行う必要があった。
しかし、サブシステムのコストダウンのためメモリ量を極小(数百KB程度)にしたため、サブシステムのメモリ上にデータを全て載せられなかった。
特許文献1では、サブシステムになりすました攻撃からセキュリティを確実に確保するメインシステムとサブシステムからなる複合システム、セキュリティ方法、セキュリティプログラム及び記録媒体を提供するという技術が開示されている。
特許文献2では、ファームウエアデータを制御装置を介して記憶装置に書き込む際の通信時間をできるだけ短縮させることができるファームウエアデータの書込み方法を提供するという技術が開示されている。
しかしながら、特許文献1では、暗号処理の対象となる大きなデータに対して、暗号処理を他のシステムに委譲する構成ではなかった。また、特許文献2では、ファームウエアの書き込み時の分割高速化を行うため、書き込み前の正当性検証時点での分割とは異なっていた。
このため、特許文献1、2では、暗号機能を備えたサブシステム(機種共通)を利用した暗号処理(ファームウエア正当性検証など)において、メインシステムの暗号処理対象データ(ファームウエア)のサイズがサブシステムのメモリ量より大きいため処理ができないといった問題があった。
以上のように、暗号処理対象のデータサイズ、サブシステムの搭載メモリ量、メインシステムとサブシステム間のデータ転送能力に暗号処理が依存しているため、メインシステムの暗号処理対象データ(ファームウエア)のサイズがサブシステムのメモリ容量よりも大きい場合には、暗号処理ができないといった問題があった。
本発明は上記事情に鑑みなされたものであって、メインシステムの暗号処理対象データのサイズがサブシステムのメモリ容量よりも大きい場合であっても、暗号処理対象データサイズ、サブシステムの搭載メモリ量、メインシステムとサブシステム間のデータ転送能力によらず暗号処理を実現することができる複合システムを提供することを目的とする。
上記課題を解決するたに、請求項1記載の発明は、メインプログラムで動作するメインシステムと、サブプログラムで動作するとともに該メインシステムの制御下で動作する複数のサブシステムが所定のバスによって離接可能に接続されている複合システムにおいて、前記メインシステムは、暗号処理の対象となるデータを分割したデータ断片ごとにサブシステムに転送する転送手段を有し、前記サブシステムは、前記メインシステムから受信したデータ断片を一時的に書き込み/読み出し可能な受信バッファを有し、前記メインシステムの暗号処理の対象となるデータのサイズが、前記サブシステムの受信バッファの容量よりも大きい場合であっても、前記メインシステムと前記サブシステムとの間で暗号処理を行う、ことを特徴とする複合システムである。
本発明によれば、メインシステムは、暗号処理の対象となるデータを分割したデータ断片ごとにサブシステムに転送し、サブシステムは、メインシステムから受信したデータ断片を一時的に書き込み/読み出し可能な受信バッファを有し、前記メインシステムの暗号処理の対象となるデータのサイズが、前記サブシステムの受信バッファの容量よりも大きい場合であっても、前記メインシステムと前記サブシステムとの間で暗号処理を行うことで、暗号処理対象データサイズ、サブシステムの搭載メモリ量、メインシステムとサブシステム間のデータ転送能力によらず暗号処理を実現することができる。
本発明の第1実施形態に係る複合システムについて説明するためのブロック図、フローチャートである。 図1に示すメインシステム11とサブシステム12との間における転送シーケンス図である。 本発明の第1実施形態に係る複合システムに用いるデジタル著名および公開鍵に関するデータ構造について説明するための図である。 本発明の第2実施形態に係る複合システムについて説明するためのブロック図である。 図4に示すメインシステム11とサブシステム12との間における転送シーケンス図である。 本発明の第3実施形態に係る複合システムに用いる転送シーケンス図である。 本発明の第4実施形態に係る複合システムに用いる転送シーケンス図である。 本発明の第5実施形態に係る複合システムに用いる転送シーケンス図である。 本発明の第6実施形態に係る複合システムに用いる転送シーケンス図である。 本発明の第7実施形態に係る複合システムについて説明するためのブロック図、フローチャートである。 本発明の第7実施形態に係る複合システムに用いる転送シーケンス図である。 本発明の第8実施形態に係る複合システムについて説明するためのブロック図である。 本発明の第8実施形態に係る複合システムに用いる転送シーケンス図である。 本発明の第9実施形態に係る複合システムについて説明するためのフローチャートである。 本発明の第9実施形態に係る複合システムに用いるファームウエア正当性検証の対象となるファームウエアデータのデータ構造を示す図である。 本発明の第9実施形態に係る複合システムに用いる転送シーケンス図である。
以下、本発明を実施するための最良の形態について、図に示す実施形態を参照して説明する。
<第1実施形態>
まず、本発明の第1実施形態に係る複合システムについて説明する。
図1は、本発明の第1実施形態に係る複合システムについて説明するためのブロック図である。
図1(a)において、複合システム1は、メインシステム11、サブシステム12を備えている。ネットワークに接続するネットワーク通信部(図示しない)を備えており、メインシステム11とサブシステム12とは、USB(Universal Serial Bus)でそれぞれ接続されており、USBは通信手段として機能している。
メインシステム11は、CPU11a、メモリ11b、ストレージ11c、外部接続端子11dを備えており、それぞれ内部バスにより接続されている。
ストレージ11cには、ファームウエア(F/W)を更新可能なアプリケーションソフトウエアとして暗号利用アプリケーションソフトウエアが記憶されている。メインシステム11の起動時には、CPU11aがストレージ11cから暗号利用アプリを順次に読み出して各ステップを実行する。
サブシステム12は、CPU12a、メモリ12b、暗号処理器12c、接続端子12d、受信バッファ12fを備えており、それぞれ内部バスにより接続されている。
メモリ12bには、CPU12aにより暗号アプリサーバ14aとして実行されるアプリケーションソフトウエアが記憶されている。
サブシステム12の起動時には、CPU12aがメモリ12bからアプリケーションソフトウエアを順次に読み出して各ステップを実行することで、暗号アプリサーバ14aが実行される。
暗号処理器12cは、暗号処理エンジン14bとして動作する。
受信バッファ12fは、メインシステム11から受信したデータ断片を一時的に書き込み/読み出しを可能とする。
本実施形態では、サブシステム12に関する製造コストを削減するため、メモリ12bの容量を極小(数百KB程度)にしたため、サブシステム12のメモリ12b上にメインシステムから受信する暗号処理の対象となるデータを全て載せられなかった。
また、本実施形態では、従来技術のように、メモリ12bを用いて暗号処理の対象となるデータ全体を1回だけhashし、後にverify処理を行うという通常の方法では正当性検証ができなくなった。
そこで、本実施形態では、メインシステム11からサブシステム12の受信バッファ12fにデータを分割して転送し、データ断片単位でN回hashし、後にverify処理を行うという、データ断片単位で暗号処理する方法をとった。
次に、図1(b)に示すフローチャートを参照して、メインシステム11における暗号利用アプリ13aによる処理動作を説明する。
まず、ステップS10では、CPU11aは、暗号利用の初期処理を行う。
次いで、ステップS20では、CPU11aは、データ分割が必要であるか否かを判断する。
すなわち、CPU11aは、サブシステム12側の受信バッファ12fのサイズ(16KB)とファームウエア(F/W)のデータのサイズ(30MB)が既知であるので、ファームウエアのデータ容量をデータ断片に分割し、分割後のデータ断片のサイズも固定とする。
ここで、データ分割が必要な場合にはステップS30に進む。一方、データ分割が必要ではない場合にはステップS50に進む。
次いで、ステップS30では、CPU11aは、分割データの転送と、暗号処理を行う。
次いで、ステップS40では、CPU11aは、残分割データがあるか否かを判断する。
ここで、残分割データがある場合にはステップS30に戻り、上記処理を繰り返す。一方、残分割データがない場合にはステップS50に進む。
次いで、ステップS50では、CPU11aは、暗号利用の最終処理を行う。
次に、図2を参照して、メインシステム11とサブシステム12との間における転送シーケンスについて説明する。
まず、手順Se1では、CPU11aにより実行される暗号利用アプリ13aは、F/W正当性確認のためにデジタル署名と公開鍵を、外部接続端子11d、接続端子12dを介してサブシステム12に設けられたCPU12aにより実行される暗号アプリサーバ14aに送信する。
次いで、CPU12aにより実行される暗号アプリサーバ14aは、デジタル署名と公開鍵をメモリ12bに記憶しておく。
次いで、手順Se2では、暗号アプリサーバ14aは、暗号処理器12cの利用権獲得に関する指示を暗号処理エンジン14bに出力する。
次いで、手順Se3では、暗号利用アプリ13aは、F/W正当性確認のためにデータ断片を暗号アプリサーバ14aに送信する。
次いで、手順Se4では、暗号アプリサーバ14aは、暗号処理器12cにhash処理を行わせるために利用権とデータ断片を暗号処理エンジン14bに出力する。
なお、図2に示すように、手順Se3、手順Se4については残データが無くなり、最終データ断片となるまで繰り返して行う。
ここで、図2を参照して、最終データ断片の場合の手順について説明する。
手順Se5では、暗号利用アプリ13aは、F/W正当性確認のために最終データ断片を暗号アプリサーバ14aに出力する。
次いで、手順Se6では、暗号アプリサーバ14aは、暗号処理器12cにhash処理を行わせるために利用権と最終のデータ断片とを暗号処理エンジン14bに出力する。
次いで、手順Se7では、暗号アプリサーバ14aは、暗号処理器12cにverify処理を行わせるために利用権と公開鍵およびデジタル署名、データhash結果を暗号処理エンジン14bに出力する。
次いで、手順Se8では、暗号処理エンジン14bは、暗号処理器12cで行ったverify処理結果()となる真/偽値を暗号アプリサーバ14aに出力する。
次いで、手順Se8では、暗号アプリサーバ14aは、暗号処理エンジン14bから受け取ったF/W正当性確認の結果応答()となる真/偽値を暗号利用アプリ13aに出力する。
ここで、ファームウエア正当性検証の対象となるファームウエアデータのデータ構造の概要について説明する。
署名は、HeaderとしてSignatureBとデータ、CertificateとしてSignatureAとpublic-keyB、イメージデータを含む。
ファームウエアデータは、例えば3つのファームウエアをひとまとめにした構成に対して1つの署名を付加するように構成してもよい。
次に、デジタル署名検証における各データの役割について説明する。
例えば、デジタル署名検証は2段階で行われる。
第1段階のVerify処理では、正当性を確認する範囲となるpublic-keyBを対象として、public-keyAを用いVerify処理を行う。
第2段階のVerify処理では、正当性を確認する範囲となるデータとイメージデータとを連結したデータを対象として、public-keyBを用いVerify処理を行う。
詳しくは、「検証したいバイト列」に対し、「public-keyA(公開鍵)とSignature(デジタル署名)のペア」を用いて検証する。
2段階目にあたるイメージデータの検証の際は、Headerのデータとバイナリ結合したデータを、「検証したいバイト列」と見なす。
この処理のアルゴリズムは、例えばECDSA(楕円曲線暗号アルゴリズムによるDSA署名)を用いる。
ここで、暗号処理エンジン14bによる任意長データ断片の処理について説明する。署名検証のコンテキストを表す構造体(SingedObjContext)のフィールド定義としては、例えば、コンテキスト、署名用公開鍵、hashコンテキスト、署名用バッファ、署名、検証用公開鍵、端数データ一次格納領域などを用いるのが好ましい。
サブシステム12において、検証対象のデータは、メインシステム11の外部接続端子11dであるUSBバス、接続端子12dを通して受信バッファ12fに一部の断片(任意長)ずつ格納(上書き)される。
一方で、暗号処理エンジン14bでは、hash操作は複数回のhash関数呼び出しで最終的なhash値を求めることができるが、最後のhash関数呼び出し以外では、64Bの倍数分ずつしかhash処理ができない。
そこで、ACCLでは署名検証時に64B長の受信バッファ12fを用意し、署名検証途中で出る64B以下の端数のデータをここにバッファする。
この受信バッファ12fにより、断片データが入力されたときのサブシステム12の暗号処理エンジン14bによる動作は、以下の3つのステップ(Sb1〜Sb3)となる。
Sb1:受信バッファ12fが空でないときは、受信バッファ12fをフルにして64B分だけhash処理を行う。
Sb2:断片データの残余のうち64の倍数分を一括してhash処理を行う。
Sb3:1,2の残余データ(64B以下)を再び受信バッファ12fに格納する。
ここで、ステップSb1,Sb2で2回hash実行している点については、「機器」モジュールが受信バッファ12fの処理サイズの最適化を図ることにより、ステップSb1を省略することができる。
なお、上記の最適化は効果が不明なため、実際に行うかはSoC上での実測結果を待つ必要がある。
ここで、図3を参照して、デジタル著名および公開鍵に関するデータ構造について説明する。
正当性検証アルゴリズムに必要なデータは、主に、デジタル著名、公開鍵、検証の対象となるデータプログラムである。
APIでは、デジタル署名およびデジタル署名検証の対象データは、例えば1組にして作成する。
公開鍵は、1つの構造体であり、メインシステム11側のストレージ11c(マスクROM)に記憶されているプログラムに内蔵されている。
署名オブジェクトは、[HeaderSection]、[CertificateList]、[ImageSection]で構成される。
[HeaderSection]は、定義されたフォーマットであり、バージョンや署名などが格納されている。
[CertificateList]は、署名検証チェーンを利用する場合に必要なCertificateを格納する領域であり、領域サイズは可変であるが、本実施形態ではCertificateは1つだけ使用する。
[ImageSection]は、実行するプログラムを格納する領域、サイズは未定であるが、プログラムサイズが16Byteの倍数でない場合、Oによるパディングが実施されている。
このように、暗号処理対象データを分割したデータ断片ごとに1回の転送手順により順次にサブシステム12の受信バッファ12fに転送し、hash処理させることで、メインシステムの暗号処理対象データのサイズがサブシステムのメモリ量よりも大きい場合であっても、暗号処理対象データサイズ、サブシステム12の搭載メモリ量、メインシステムとサブシステム間のデータ転送能力等によらず暗号処理を実現することができる。
将来の様々なメインシステム11との接続性を確保しつつ、サブシステム12のメモリ12bのメモリ量を低減することができ、コスト低減を実現することができる。
<第2実施形態>
図4、図5を参照して、本発明の第2実施形態に係る複合システムについて説明する。
第2実施形態に用いる図4、図5は、第1実施形態において用いたブロック図(図1)シーケンス図(図2)の一部を変更したものであり、同様の部分については同一符号を付加して、その説明を省略する。
第2実施形態では、図4に示すように、サブシステム12にストレージ(セキュア)12e、セキュアDB14cを備え、図5に示すように、手順Se21を有することを特徴とする。
図4に示すように、サブシステム12にはストレージ(セキュア)12eを備えており、ストレージ(セキュア)12eにはセキュアDB14cとして公開鍵が格納されている。
図5に示すように、手順Se21では、暗号利用アプリ13aは、公開鍵に関する参照()指示をセキュアDB14cに送信する。この参照()指示を受けたセキュアDB14cは、公開鍵を暗号利用アプリ13aに返信する。
このように、サブシステム12にセキュアDB14cを追加することで、メインシステム11側でセキュリティ用データ(公開鍵)の安全な管理を必要とせずに、重要データ(F/W)のセキュリティを確保できる。同時に、メインシステムの開発コストを低減することができる。
<第3実施形態>
図4、図6を参照して、本発明の第3実施形態に係る複合システムについて説明する。
第3実施形態に用いる図4、図6は、第1実施形態において用いたシステム図(図1)、シーケンス図(図2)の一部を変更したものであり、同様の部分については同一符号を付加して、その説明を省略する。
第2実施形態では、図6に示すように、手順Se1−1を有することを特徴とする。
図4に示すように、サブシステム12にはストレージ(セキュア)12eを備えており、ストレージ(セキュア)12eにはセキュアDB14cとして公開鍵が格納されている。
手順Se1−1では、CPU11aにより実行される暗号利用アプリ13aは、F/W正当性確認のためにデジタル署名を、外部接続端子11d、接続端子12dを介してサブシステム12に設けられたCPU12aにより実行される暗号アプリサーバ14aに送信する。
暗号アプリサーバ14aは、セキュアDB14cから公開鍵を読み出すことで、手順Se7において公開鍵に用いることができる。
このように、サブシステム12に設けられた暗号アプリサーバ14aのみがセキュアDB14cにアクセス可能にすることで、効率の良い、すなわち、暗号利用アプリの手順減少や、わずかに高速化した暗号処理を実行することができる。
<第4実施形態>
図7を参照して、本発明の第4実施形態に係る複合システムについて説明する。
第4実施形態に用いる図7は、第1実施形態において用いたシーケンス図(図2)の一部を変更したものであり、同様の部分については同一符号を付加して、その説明を省略する。
暗号アプリサーバ14aには、データ整列ルール(例えば、hashはデータサイズが64の倍数であること)を保持していることとする。
第4実施形態では、図7に示すように、手順Se4−1に加えて手順Se4−2、手順Se6−1に加えて手順Se6−2を有していることを特徴とする。
手順Se3に用いる断片データは、整列不要、すなわち、整列の例として、例えばデータサイズが64バイトの倍数であることである。
手順Se4−1でのhash処理では、前回のhash処理で整列した余りと、今回のhash処理の冒頭データを結合してhash処理させる。
手順Se4−2でのhash処理では、今回の冒頭を除いたデータの整列可能な最大サイズまでhash処理させる。
なお、整列した余り(例: datasize % 64)を一時的にメモリ12bに格納する。
このように、暗号アプリサーバ14aがデータ整列に関するルール情報を持つことで、暗号利用アプリ13aがサブシステム12の暗号処理エンジン14bの制約(例えばhash処理は64の倍数で入力など)を考慮せず、任意サイズでデータ転送できるようになり、サブシステム12の暗号処理エンジン14bに対する改訂の影響、すなわち、暗号利用アプリ13aの改訂コストを低減することができる。
<第5実施形態>
図8を参照して、本発明の第5実施形態に係る複合システムについて説明する。
第5実施形態に用いる図8は、第4実施形態において用いたシーケンス図(図7)の一部を変更したものであり、同様の部分については同一符号を付加して、その説明を省略する。
第5実施形態では、セキュアDB14cに公開鍵を予め保持していることを特徴とする。
図4に示すように、サブシステム12にはストレージ(セキュア)12eを備えており、ストレージ(セキュア)12eにはセキュアDB14cとして公開鍵が格納されている。
手順Se1−2では、CPU11aにより実行される暗号利用アプリ13aは、F/W正当性確認のためにデジタル署名を、外部接続端子11d、接続端子12dを介してサブシステム12に設けられたCPU12aにより実行される暗号アプリサーバ14aに送信する。
暗号アプリサーバ14aは、セキュアDB14cから公開鍵を読み出すことで、手順Se7において公開鍵に用いることができる。
手順Se3−2に用いる断片データは、整列不要、すなわち、整列の例としてデータサイズが64バイトの倍数である必要はない。
このように、サブシステム12にセキュアDB14cを追加することで、メインシステム11側でセキュリティ用データ(公開鍵)の安全な管理を必要とせずに、重要データ(F/W)のセキュリティを確保できる。同時に、メインシステムの開発コストを低減することができ、さらに、暗号アプリサーバ14aがデータ整列に関するルール情報を持つことで、暗号利用アプリ13aがサブシステム12の暗号処理エンジン14bの制約(例えばhash処理は64の倍数で入力など)を考慮せず、任意サイズでデータ転送できるようになり、サブシステム12の暗号処理エンジン14bに対する改訂の影響、すなわち、暗号利用アプリ13aの改訂コストを低減することができる。
これに加えて、暗号利用アプリ13aが暗号仕様をほとんど意識しなくて良いように構成することができる。
<第6実施形態>
図9を参照して、本発明の第6実施形態に係る複合システムについて説明する。
第6実施形態に用いる図9は、第2実施形態において用いたシーケンス図(図2)の一部を変更したものであり、同様の部分については同一符号を付加して、その説明を省略する。
第6実施形態では、手順Se11において、暗号アプリサーバ14aが整列サイズ仕様を暗号利用アプリ13aへ送信することを特徴とする。ここで、整列サイズ仕様は、
仕様={整列サイズ基数、最小値、最大値}
と定義し、例えば、{例:64B, 64B, 128KB}と設定するのが好ましい。
また、手順Se3−3、4−3、5−3、6−3において転送されるデータ断片は、上記仕様により整列済みのデータ断片であることを特徴とする。
ここで、例えば、手順Se4−3では、hash処理の回数が減少するので、整列のコスト(メモリ11bと受信バッファ12fとの間、受信バッファ12fとメモリ12bとの間のメモリコピー)も減少する。
このように、転送に先立って、暗号利用アプリ13aが暗号アプリサーバ14aからデータ整列ルールを取得することで、暗号利用アプリ13aはサブシステム12におけるデータ整列のコスト(hash回数増)を回避しつつ、サブシステム12の仕様変更(例えばhashは64の倍数から16の倍数で入力への変更など)の影響(暗号利用アプリの改訂コスト)を低減することができる。
<第7実施形態>
図10を参照して、本発明の第7実施形態に係る複合システムについて説明する。
第7実施形態に用いる図10は、第1実施形態において用いたシステム図およびフローチャート(図2)の一部を変更したものであり、同様の部分については同一符号を付加して、その説明を省略する。
第7実施形態では、図10(a)に示すように、メインシステム11が分割判定部13bをソフトウエアとして有することを特徴とする。
分割判定部13bでは、バスの種別から分割転送の必要性を判定する。なお、外部接続端子11dとしては、例えばPCIe(Peripheral Component Interconnect Express)バス、USBバスを備えていることとする。
図10(b)に示すフローチャートにおいて、ステップS110では、メモリ共有が可能か否かを判断する。すなわち、バス種別(例えば、PCIeバス?/USBバス?)に基づいてメモリ共有が可能か否かを判定する。ここで、バス種別がPCIバスの場合にはデータ共有が可能なのでステップS120に進む。一方、バス種別がUSBバスの場合にはデータ共有が不可能なのでステップS20に進む。
次いで、バス種別がPCIeバスの場合には、メインシステム11とサブシステム12との間でデータ共有が可能なので、ステップS120では、大データに対する一括の中間の暗号処理を行う。
一方、バス種別がUSBバスの場合にはデータ共有が不可能であるので、ステップS20では、データ分割が必要か否かを判断する。すなわち、データの大きさに基づく判定を行う。
次に、図11を参照して、メインシステム11とサブシステム12との間における転送シーケンスについて説明する。
まず、手順Se21では、CPU11aにより実行される暗号利用アプリ13aは、F/W正当性確認のためにデジタル署名と公開鍵を、分割判定部13bに出力する。
次いで、手順Se22では、分割判定部13bは、F/W正当性確認のためにデジタル署名と公開鍵を、外部接続端子11d、接続端子12dを介してサブシステム12に設けられたCPU12aにより実行される暗号アプリサーバ14aに送信する。
次いで、CPU12aにより実行される暗号アプリサーバ14aは、デジタル署名と公開鍵をメモリ12bに記憶しておく。
次いで、手順Se23では、暗号アプリサーバ14aは、暗号処理器12cの利用権獲得に関する指示を暗号処理エンジン14bに出力する。
次いで、手順Se24では、暗号利用アプリ13aは、分割が必要か否かを問い合わせる分割必要?()指示を分割判定部13bに出力する。分割判定部13bでの処理は、図13(b)に示す通りである。
以下、分割が不要な場合の処理について説明する。
次いで、手順Se25では、暗号利用アプリ13aは、F/W正当性確認のためにデータ全体を分割判定部13bに出力する。
次いで、手順Se26では、分割判定部13bは、F/W正当性確認のためにデータ全体を暗号アプリサーバ14aに送信する。
次いで、手順Se27では、暗号アプリサーバ14aは、暗号処理器12cにhash処理を行わせるために利用権とデータ断片を暗号処理エンジン14bに出力する。
次いで、手順Se28では、暗号アプリサーバ14aは、暗号処理器12cにverify処理を行わせるために利用権と公開鍵およびデジタル署名、データhash結果を暗号処理エンジン14bに出力する。
次いで、手順Se29では、暗号処理エンジン14bは、暗号処理器12cで行ったverify処理結果()となる真/偽値を暗号アプリサーバ14aに出力する。
次いで、手順Se30では、暗号アプリサーバ14aは、暗号処理エンジン14bから受け取ったF/W正当性確認の結果応答()となる真/偽値を分割判定部13bに出力する。
次いで、手順Se31では、分割判定部13bは、暗号アプリサーバ14aから受け取ったF/W正当性確認の結果応答()となる真/偽値を暗号利用アプリ13aに出力する。
このように、バス種類を判定する分割判定部13bを有することで、システム間の接続形態となるバス種類によって、例えばPCIeバスの場合、高速化が可能になる。すなわち、PCIeバスではメインシステム11とサブシステム12との間でメモリ共有が可能であり、そもそも分割転送が不要となるため、高速化が可能になる。
<第8実施形態>
図12を参照して、本発明の第8実施形態に係る複合システムについて説明する。
第8実施形態に用いる図12は、第7実施形態において用いたシステム図(図10)の一部を変更したものであり、同様の部分については同一符号を付加して、その説明を省略する。
第8実施形態では、図12に示すように、メインシステム11が暗号プロキシ13c(分割判定部13bを含む)をソフトウエアとして有することを特徴とする。
暗号プロキシ13cは、メインシステムに設けておくことで、分割処理を暗号利用アプリから隠蔽するように動作する。
次に、図13を参照して、メインシステム11とサブシステム12との間における転送シーケンスについて説明する。
まず、手順Se31では、CPU11aにより実行される暗号利用アプリ13aは、F/W正当性確認のためにデジタル署名と公開鍵を、暗号プロキシ13cに出力する。
次いで、手順Se32では、暗号プロキシ13cは、F/W正当性確認のためにデジタル署名と公開鍵を、外部接続端子11d、接続端子12dを介してサブシステム12に設けられたCPU12aにより実行される暗号アプリサーバ14aに送信する。
次いで、CPU12aにより実行される暗号アプリサーバ14aは、デジタル署名と公開鍵をメモリ12bに記憶しておく。
次いで、手順Se33では、暗号アプリサーバ14aは、暗号処理器12cの利用権獲得に関する指示を暗号処理エンジン14bに出力する。
次いで、手順Se34では、暗号利用アプリ13aは、F/W正当性確認のためにデータ全体を、暗号プロキシ13cに出力する。
以下、分割が必要な場合の処理について説明する。
次いで、手順Se35では、暗号プロキシ13cは、F/W正当性確認のためにデータ断片を暗号アプリサーバ14aに送信する。
次いで、手順Se36では、暗号アプリサーバ14aは、暗号処理器12cにhash処理を行わせるために利用権と整列済みデータ断片を暗号処理エンジン14bに出力する。
次いで、手順Se37では、暗号アプリサーバ14aは、暗号処理器12cにhash処理を行わせるために利用権と整列済みデータ断片を暗号処理エンジン14bに出力する。
なお、手順Se37での処理は残データがなくなるまで繰り返す。
最終データ断片の場合、手順Se38では、暗号プロキシ13cは、F/W正当性確認のためにデータ断片を暗号アプリサーバ14aに送信する。
次いで、手順Se39では、暗号アプリサーバ14aは、暗号処理器12cにhash処理を行わせるために利用権と整列済みデータ断片を暗号処理エンジン14bに出力する。
次いで、手順Se40では、暗号アプリサーバ14aは、暗号処理器12cにhash処理を行わせるために利用権と整列済みデータ断片を暗号処理エンジン14bに出力する。
次いで、手順Se41では、暗号アプリサーバ14aは、暗号処理器12cにverify処理を行わせるために利用権と公開鍵およびデジタル署名、データhash結果を暗号処理エンジン14bに出力する。
次いで、手順Se42では、暗号処理エンジン14bは、暗号処理器12cで行ったverify処理結果()となる真/偽値を暗号アプリサーバ14aに出力する。
次いで、手順Se43では、暗号アプリサーバ14aは、暗号処理エンジン14bから受け取ったF/W正当性確認の結果応答()となる真/偽値を暗号プロキシ13cに出力する。
次いで、手順Se44では、暗号プロキシ13cは、暗号アプリサーバ14aから受け取ったF/W正当性確認の結果応答()となる真/偽値を暗号利用アプリ13aに出力する。
このように、メインシステム12に暗号プロキシ13cを設けることで、分割処理を暗号利用アプリから隠蔽することができる。暗号利用アプリ13aは、バス仕様による分割を考慮が不要になるため、サブシステム12の暗号処理エンジン14bの改訂の影響(暗号利用アプリの改訂コスト)を低減することができる。
<第9実施形態>
図14を参照して、本発明の第9実施形態に係る複合システムについて説明する。
第8実施形態に用いる図14は、第1実施形態において用いたシステム図(図1)および第7実施形態において用いたフローチャート(図10(b))の一部を変更したものであり、同様の部分については同一符号を付加して、その説明を省略する。
図14に示すフローチャートにおいて、ステップS210では、暗号利用アプリ13aは、転送方式の選択処理と、改変データ生成処理とを行う。
本実施形態は、図15に示すデータ定義のように、転送方式IDに応じてデジタル著名および公開鍵を用意する。正当性検証時に、転送方式IDに応じて、動的にF/Wデータ改変版をオリジナルとは別に生成することを特徴とする。
本実施形態は、図16に示すシーケンス図のように、暗号利用アプリ13aにおいて、ステップS210−1では、転送方式IDに応じて転送方式の選択処理を行う。
また、ステップS210−2では、転送方式IDに応じて改変データ生成処理を行う。なお、転送方式IDに応じて、新たに改変データ(ビット反転したファームウエアデータ)を生成する能力があるとする。例えば、転送方式IDがXORの場合、転送方式(XOR)に応じたデジタル署名を暗号利用アプリ13aが暗号アプリサーバ14aに送付する。
このように、メインシステム11において、対象データを変換した結果に対するデジタル署名をストレージ11cに複数保持することで、データ転送経路上で盗聴されても、簡単には元データに復元できなくなるため、セキュリティ性能を向上することができる。
11 メインシステム
11a CPU
11b メモリ
11c ストレージ
11d 外部接続端子
12 サブシステム
12a CPU
12b メモリ
12c 暗号処理器
12d 接続端子
12f 受信バッファ
特開2011−164810号公報 特開2000−148502号公報

Claims (9)

  1. メインプログラムで動作するメインシステムと、サブプログラムで動作するとともに該メインシステムの制御下で動作する複数のサブシステムが所定のバスによって離接可能に接続されている複合システムにおいて、
    前記メインシステムは、
    暗号処理の対象となるデータを分割したデータ断片ごとにサブシステムに転送する転送手段を有し、
    前記サブシステムは、
    前記メインシステムから受信したデータ断片を一時的に書き込み/読み出し可能な受信バッファを有し、
    前記メインシステムの暗号処理の対象となるデータのサイズが、前記サブシステムの受信バッファの容量よりも大きい場合であっても、前記メインシステムと前記サブシステムとの間で暗号処理を行う、ことを特徴とする複合システム。
  2. 前記サブシステムは、公開鍵を保存するためのセキュアデータベースを有することを特徴とする請求項1記載の複合システム。
  3. 前記サブシステムは、セキュアデータベースにアクセス可能な暗号アプリサーバを有することを特徴とする請求項2記載の複合システム。
  4. 前記暗号アプリサーバが、データ整列ルールを示す情報を保存することを特徴とする請求項3記載の複合システム。
  5. 前記サブシステムは、データ整列ルールを示す情報を保存し、セキュアデータベースにアクセス可能な暗号アプリサーバを実行することを特徴とする請求項2記載の複合システム。
  6. 前記メインシステムは、暗号アプリサーバからデータ整列ルールを取得する前記暗号利用アプリを実行することを特徴とする請求項5記載の複合システム。
  7. 前記メインシステムは、前記メインシステムと前記サブシステムとを接続するバスの種類を判定する分割判定部を有することを特徴とする請求項1乃至6の何れか1項に記載の複合システム。
  8. 前記メインシステムは、前記分割処理を前記暗号利用アプリから隠蔽することが可能な暗号処理プロキシを有することを特徴とする請求項1乃至7の何れか1項に記載の複合システム。
  9. 前記メインシステムは、前記対象データを変換した結果に対するデジタル署名を複数保持することを特徴とする請求項1乃至8の何れか1項に記載の複合システム。
JP2012000482A 2012-01-05 2012-01-05 複合システム Pending JP2013141137A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012000482A JP2013141137A (ja) 2012-01-05 2012-01-05 複合システム
US13/693,409 US9401809B2 (en) 2012-01-05 2012-12-04 Composite system, method, and storage medium
CN201310002574.8A CN103198258B (zh) 2012-01-05 2013-01-04 复合系统以及传输数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012000482A JP2013141137A (ja) 2012-01-05 2012-01-05 複合システム

Publications (1)

Publication Number Publication Date
JP2013141137A true JP2013141137A (ja) 2013-07-18

Family

ID=48720805

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012000482A Pending JP2013141137A (ja) 2012-01-05 2012-01-05 複合システム

Country Status (3)

Country Link
US (1) US9401809B2 (ja)
JP (1) JP2013141137A (ja)
CN (1) CN103198258B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11271763B2 (en) 2018-06-19 2022-03-08 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method
US10887551B2 (en) 2018-11-29 2021-01-05 Ricoh Company, Ltd. Information processing apparatus, information processing system and information processing method

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02184954A (ja) * 1989-01-11 1990-07-19 Nec Corp 入出力インターフェース自動認識方式
US5689565A (en) * 1995-06-29 1997-11-18 Microsoft Corporation Cryptography system and method for providing cryptographic services for a computer application
JPH11225138A (ja) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 暗号処理装置、暗号処理方法及びその方法を記録した記録媒体
JP2003514464A (ja) * 1999-11-12 2003-04-15 ジェネラル・インスツルメント・コーポレーション オブジェクトセキュリティのインプレメンテーション
JP2004064665A (ja) * 2002-07-31 2004-02-26 Canon Inc データ転送装置及び送信装置及び受信装置及びそれらの制御方法
JP2010016526A (ja) * 2008-07-02 2010-01-21 Mitsubishi Electric Corp 通信装置及び暗号通信システム及び通信方法及び通信プログラム
JP2011164810A (ja) * 2010-02-08 2011-08-25 Ricoh Co Ltd 複合システム、セキュリティ方法、セキュリティプログラム及び記録媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3305667B2 (ja) 1998-11-11 2002-07-24 日本電気株式会社 ファームウェアデータの書込み方法
US20050152350A1 (en) * 2003-12-22 2005-07-14 Nak-Woon Sung System and method for transmitting/receiving automatic repeat request
JP4802123B2 (ja) * 2007-03-07 2011-10-26 富士通株式会社 情報送信装置、情報送信方法、情報送信プログラムおよび該プログラムを記録した記録媒体
CN101110982A (zh) 2007-06-19 2008-01-23 李儒耕 一种利用无线终端和服务器获取证据的方法
CN101304569A (zh) 2008-04-24 2008-11-12 中山大学 一种基于智能手机的移动认证系统
CN101770386B (zh) 2010-03-08 2013-06-19 飞天诚信科技股份有限公司 一种Linux嵌入式系统的安全启动方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02184954A (ja) * 1989-01-11 1990-07-19 Nec Corp 入出力インターフェース自動認識方式
US5689565A (en) * 1995-06-29 1997-11-18 Microsoft Corporation Cryptography system and method for providing cryptographic services for a computer application
JPH11225138A (ja) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 暗号処理装置、暗号処理方法及びその方法を記録した記録媒体
JP2003514464A (ja) * 1999-11-12 2003-04-15 ジェネラル・インスツルメント・コーポレーション オブジェクトセキュリティのインプレメンテーション
JP2004064665A (ja) * 2002-07-31 2004-02-26 Canon Inc データ転送装置及び送信装置及び受信装置及びそれらの制御方法
JP2010016526A (ja) * 2008-07-02 2010-01-21 Mitsubishi Electric Corp 通信装置及び暗号通信システム及び通信方法及び通信プログラム
JP2011164810A (ja) * 2010-02-08 2011-08-25 Ricoh Co Ltd 複合システム、セキュリティ方法、セキュリティプログラム及び記録媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6015032299; 青木克彦,松本博幸: '暗号認証ハードウェアアクセラレータ' NTT技術ジャーナル 第11巻 第3号, 19990301, p.17-22 *
JPN7015002199; Keromytis, A. D. et al,: 'Cryptography As An Operating System Service:A Case Study' ACM Transactions on Computer Systems olume 24 Issue 1, 200602, p.1-38 *

Also Published As

Publication number Publication date
US20130179675A1 (en) 2013-07-11
CN103198258B (zh) 2016-01-20
US9401809B2 (en) 2016-07-26
CN103198258A (zh) 2013-07-10

Similar Documents

Publication Publication Date Title
JP7372434B2 (ja) スクリプトに基づくブロックチェーン相互作用
US10778441B2 (en) Redactable document signatures
JP6877448B2 (ja) 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム
CN109074433B (zh) 使用分布式散列表和点对点分布式分类账验证数字资产完整性的方法和系统
US11347876B2 (en) Access control
US10956614B2 (en) Expendable access control
TW202405713A (zh) 去信任確定性狀態機之電腦實施方法
KR20210096178A (ko) 블록체인 상에 저장된 데이터에 접근할 수 있도록 하는 컴퓨터 구현 시스템 및 방법
EP3739538A1 (en) System and method of supporting reflection of transactions between blockchain networks
US20230066955A1 (en) Efficient post-quantum secure software updates tailored to resource-constrained devices
US11575515B2 (en) Post-quantum secure remote attestation for autonomous systems
CN111295650A (zh) 在基于区块链的系统中执行映射迭代
TW202025665A (zh) 用以移轉數位資源存取權之電腦實施系統及方法
CN110880143A (zh) 用于处理去中心化应用中的交易验证操作的系统和方法
WO2023107776A1 (en) Efficient hybridization of classical and post-quantum signatures
CN103761487B (zh) 文件的隐藏方法及装置
JP2013141137A (ja) 複合システム
CN109324997B (zh) 一种基于区块链的数字权利保护方法及装置
US20220247570A1 (en) Content use system, permission terminal, browsing terminal, distribution terminal, and content use program
CN112970227A (zh) 包括公钥组合验证的计算机实现的系统和方法
JP6939313B2 (ja) 分散認証システム
US20220109558A1 (en) Xmss management to address randomized hashing and federal information processing standards
WO2022170973A1 (zh) 密钥灌装方法、系统、装置、设备以及存储介质
CN111857883B (zh) 页面数据校验方法、装置、电子设备及存储介质
TWI837227B (zh) 用於透過點對點網路儲存、提取及傳遞資料之電腦實施系統及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150818

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151215