JP2006039206A - 暗号化装置および復号化装置 - Google Patents

暗号化装置および復号化装置 Download PDF

Info

Publication number
JP2006039206A
JP2006039206A JP2004218842A JP2004218842A JP2006039206A JP 2006039206 A JP2006039206 A JP 2006039206A JP 2004218842 A JP2004218842 A JP 2004218842A JP 2004218842 A JP2004218842 A JP 2004218842A JP 2006039206 A JP2006039206 A JP 2006039206A
Authority
JP
Japan
Prior art keywords
data
ciphertext
data block
nonvolatile memory
input
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
JP2004218842A
Other languages
English (en)
Inventor
Hirotaka Itsutougi
浩孝 一藤木
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 JP2004218842A priority Critical patent/JP2006039206A/ja
Priority to US11/175,146 priority patent/US7650499B2/en
Publication of JP2006039206A publication Critical patent/JP2006039206A/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/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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract


【課題】 RAMの使用量の低減、改ざん等の不具合検出時間の短縮、ならびに復号および認証の済んだデータブロックを一度に不揮発性メモリに書き込めるようにする。
【解決手段】 復号化装置側の書き換え可能な不揮発性メモリに書き込まれることになる平文データを暗号化する暗号化装置であって、入力された平文データを、不揮発性メモリのバンクサイズの整数倍となる1以上のデータブロックへと分割し、このデータブロックから認証データを作成する。そして、データブロックに認証データを結合してから暗号文データを生成する。一方、復号化装置では、この逆の処理を行なって平文データを復号し、不揮発性のメモリに平文データを書き込む。
【選択図】 図9

Description

本発明は、転送されるデータのセキュリティを確保する暗号化および復号化技術に関する。
近年、ネットワークを介してデータやアップグレードソフトウェアなどをユーザに提供するシステムが提案されている。これらのデータやソフトウエアには重要な情報が含まれていることがあるので、漏洩、不正コピー、または改ざんなどから保護する必要がある。
保護技術の一つとして、MAC(メッセージ認証コード)認証技術が知られている。MACは慣用暗号によって生成される短い固定長の認証データのことであり、通常はメッセージに付加されて送信される。この認証技術では、通信に関与する2つのエンティティAとBとが、共有鍵Kを共有していることを前提としている。AがBにメッセージを送信する際には、メッセージと鍵の関数であるMAC=Ck(M)が計算され、算出されたMACとともにメッセージが受信エンティティへと送信される。受信エンティティは受信したメッセージに対して、送信エンティティが使用した鍵および関数と同一の鍵および関数を使用して演算を行い、比較用のMACを算出する。そして、受信したMACと算出したMACとが一致すれば、そのメッセージは送信中に改ざん等がなされなかったと判定できる。
特許文献1に記載の技術によれば、ファームウエアなどの平文データの全体にMACを付加してから暗号化を行い、得られた暗号文データを受信端末に送信し、受信端末においてこの暗号文データを復号し、復号されたMACを用いて認証してから不揮発性ROMに書き込みを行っていた。
特開2002−152458号公報。
しかしながら、上記従来技術では、大量の暗号文データのすべてを受信しなければ、認証が行なえないといった課題があった。加えて、次の課題が存在する。
(1)全ての暗号文データと、復号した全てのデータとを格納できるだけのRAM領域が必要となってしまう。
(2)認証処理を実行するには、暗号文データの全てを使用してMACを算出しなければならず、改ざん等の発見に時間がかかってしまう。
(3)平文データのサイズが、不揮発性ROMのバンクサイズよりも大きい場合には、一度に書き込みが行なえず、しかも書き込みプログラムが複雑になってしまう。
一方、上記従来技術で、上述の暗号文データを随時不揮発性ROMに書き込みを行なうようにした場合には、以下のような課題に直面する。
(1)全ての暗号文データを格納できるだけのRAM領域が必要となる。
(2)認証処理を実行するには、暗号文データの全てを使用してMACを算出しなければならないので、改ざん等の発見に時間がかかってしまう。
(3)随時不揮発性ROMに書き込みを行ってしまうことから、データに改ざんが存在した場合に、リカバリーに時間がかかってしまう。
(4)平文データが不揮発性ROMのバンクサイズより大きい場合には、一度に書き込みが行なえず、かつ、書き込みのプログラムが複雑になってしまう。
そこで、本発明は、このような課題および他の課題を解決することを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
上記課題を解決すべく、本発明は、書き換え可能な不揮発性メモリに書き込まれることになる平文データを暗号化する暗号化装置であって、入力された平文データを、前記書き換え可能な不揮発性メモリのバンクサイズの整数倍となるサイズを有する1以上のデータブロックに分割する。そして、データブロックに対して第1の暗号化キーを用いて認証データを作成する。データブロックに認証データを結合する。認証データの結合された前記データブロックに対して第2の暗号化キーを用いて暗号文データを生成する。一方、復号化装置では、この逆の処理を行なって平文データを復号し、不揮発性のメモリに平文データを書き込む。
以上説明したように、本発明では、不揮発性メモリのバンクサイズにあわせて、複数に分離された平文データごとに認証と暗号を実行するようにしたので、RAMの使用量を従来よりも低減させることができる。また、伝送路で改ざん等が発生した場合には、従来よりも短時間で問題を発見できる。さらに、復号および認証の済んだデータブロックを一度に不揮発性ROMに対して書き込むことができる。それゆえ、書き込みに必要となるプログラムも従来よりも簡素なものとすることができる。
以下に本発明の上位概念、中位概念および下位概念の理解に役立つ一実施形態を示す。なお、以下の実施形態に含まれる概念について、そのすべてが特許請求の範囲に記載されているとは限らない。ただし、これは特許発明の技術的範囲から意識的に除外したのではなく、特許発明と均等の関係にあるため特許請求の範囲には記載していない場合があることを理解していただきたい。
[第1の実施形態]
図1は、実施形態に係るデータ転送システムの構成例を示す図である。図1に示すシステムには、ファームウエアプログラムなどのデータを要求するプリンタ装置101と、このプリンタ装置101からの要求を受信し、ネットワーク115を介してサーバ120と要求されたデータの送受信を行なうPC110とが含まれている。
プリンタ装置101には、プリンタ装置101の各部を統括的に制御する制御ユニット102が含まれている。制御ユニット102には、ワンチップCPU103が搭載されている。
図2は、実施形態に係るワンチップCPU103の構成例を示す図である。ワンチップCPU103には、入力されたデータの演算処理を行なうCPU201と、CPU201が実行するプログラムやデータを記憶するフラッシュROM202と、CPU201の作業領域として使用されるRAM203と、データの送受信を行なうI/Oポート204とがワンチップ化されている。
図3は、プリンタ装置のROMに記憶されているプログラムやデータの一例を示す図である。プリンタ装置101の電源が投入されると起動するブートプログラム301と、プリンタ装置101のプログラムを書き換えるための書き込みプログラム302と、プリンタ装置101における画像形成などの制御を行なうための制御プログラム303と、ワンチップCPU201に送られてきたデータを復号する復号プログラム304と、ワンチップCPU201に送られてきたデータについて認証処理を実行する認証プログラム305と、復号処理や認証処理に使用されるデータであるS−box306と、復号処理に使用されるデータである鍵a307と、認証処理に使用されるデータである鍵b308とを格納している。S−box306は、入力されたデータを非線形なデータに変換して出力するための行列である。
図4は、実施形態に係るPCの例示的なブロック図である。CPU401は、PC110を統括的に制御する中央演算処理装置である。RAM402は、ワークエリアとして機能する読み書き可能な揮発性のメモリである。ROM403は、ブートプログラムなどを記憶する不揮発性のメモリである。通信インタフェース404は、ネットワーク115を介してサーバ120と通信する通信回路である。ハードディスクドライブ405は、大容量の記憶装置であり、中継プログラム410などを記憶している。中継プログラム410は、プリンタ装置101とサーバ120との間で暗号文データを送受信する際の中継処理を担当するソフトウエアである。I/Oポート406は、I/Oポート204と対を成しデータを送受信するポートである。具体的には、PC110とプリンタ装置101との間は、USB、IEEE1394、イーサネット(登録商標)、無線LAN、またはブルートゥースなどインタフェースを介して接続する。
図5は、実施形態に係るサーバの例示的なブロック図である。CPU501は、サーバ120を統括的に制御する中央演算処理装置である。RAM502は、ワークエリアとして機能する読み書き可能な揮発性のメモリである。ROM503は、ブートプログラムなどを記憶する不揮発性のメモリである。通信インタフェース504は、ネットワーク115を介してPC110と通信する通信回路である。ハードディスクドライブ505は、大容量の記憶装置であり、暗号処理プログラム510、サーバプログラム511および暗号文データ512などを記憶している。暗号処理プログラム510は、後述する手順に従って、ファームウエアなどの平文データを暗号化したり、認証用の処理を行なったりするソフトウエアである。サーバプログラム511は、PC110を経由してプリンタ装置101から送信されてきた暗号文データの送信要求を受信して、暗号文データ512を送信するための制御ソフトウエアである。暗号文データ512は、認証処理と暗号処理とが施された暗号文である。
(暗号化処理)
図6は、実施形態に係る暗号化処理の例示的なフローチャートである。本フローチャートは、サーバ120の暗号処理プログラム510に相当する。
図7は、実施形態に係る暗号化処理の概要を説明するための図である。この例では、フラッシュROM202のバンクサイズが128ビットであり、転送データブロックを256ビット長としている。すなわち、プリンタ装置101のファームウエアを平文データとし、当該平文データを複数のデータブロックに分割する際に、データブロックのサイズが、ROM202のバンクサイズの整数倍となるようにしている。図7において、Dは、バンクサイズの2倍である256ビットの平文データブロックを示している。
また、この例において、一回のMAC処理に対して入力されるデータの入力ビット長は64ビットとする。key1(上述の鍵b308に相当する。)は、MAC処理に使用される鍵データであり、key2(上述の鍵a307に相当する。)は、暗号化処理に使用される鍵データである。MACkey1(D)は、平文データブロックDにkey1を適用して得たMACデータである。MDは、平文データブロックDにMACkey1(D)を付加したデータである。CODEkey2(MD)は、MDとkey2を使用して得られた暗号文データ512である。
ステップS601において、CPU501は、ファームウエアなどの平文データをハードディスクドライブ505などから入力する。
ステップS602において、CPU501は、入力された平文データを所定のサイズごとに分離して、データブロックDを生成する。所定のサイズは、フラッシュROM202のバンクサイズの整数倍である。図7の例では、所定のサイズは256ビットとなる。
ステップS603において、CPU501は、MAC処理にて取り扱える所定のサイズとなるようにデータブロックDを分割する。この例における所定のサイズは64ビットである。
ステップS604において、CPU501は、処理単位となるデータごとに第1の暗号化キー(key1)を使用してMAC処理を行なう。
図8は、実施形態に係る例示的なMAC処理を示す図である。この例では、256ビット長のデータブロックDを64ビット長の平文ブロックに分割しているので、平文1ないしn(n=4)についてMAC処理を行なう。
MAC1は、平文ブロック1に対して第1の暗号化キー(key1)を適用してMAC処理を行って得られたMACデータである。他のMAC2〜MACnは、それぞれ平文ブロック2〜平文ブロックnに対して、一つ前のMACデータn−1と排他的論理和の演算を実行した上で、第1の暗号化キーによりMAC処理を行って得られたMACデータである。また、この例では、MACnがMACkey1(D)となる。
ステップS605において、CPU501は、MAC処理により得られたMACデータMACkey1(D)を、転送データDに結合し、結合データMDを生成する。
ステップS606において、CPU501は、結合データMDに対して第2の暗号化キーである鍵key2を適用して暗号化処理を実行し、暗号文データCODEkey2(MD)をハードディスクドライブ505または通信インタフェース504へと出力する。
(復号処理)
図9は、実施形態に係るプリンタ装置のROMとRAMとの間で授受されるプログラムとデータとを例示する図である。プリンタ装置101の電源が投入され、ブートプログラム301が起動すると、CPU201は、通常モードに設定されているか、プログラム書き換えモードに設定されているかを確認する。通常モードになっていれば制御プログラム303を実行する。一方、特定のスイッチが押されたまま電源投入スイッチが押された場合などは、プログラム書き換えモードに設定されているとCPU201は判定する。書き換えモードになっていれば、CPU501は、書き込みプログラム302をRAM203に転送するとともに、復号プログラム304、認証プログラム305、S−box306、鍵a307、鍵b308をRAM202へと転送する。これらは図9の(1)および(2)に相当する。
図10は、実施形態に係る復号プログラム、認証プログラムおよび書き込みプログラムに関連する例示的なフローチャートである。図11は、実施形態に係る復号処理と認証処理の概要を示す図である。予め、CPU201は、I/Oポートから暗号文データの送信要求を送信する。PC110のCPU401は、I/Oポート406を介して、プリンタ装置101からの暗号文データの送信要求を受信すると、通信インタフェース404を介して、サーバ120に対して当該要求を転送する。サーバ120は、当該要求を受信すると、上述の暗号処理を実行して暗号文データ512を送信する。PC110のCPU401は、通信インタフェース404を介して暗号文データ512を受信すると、I/Oポート406へと出力する。
ステップS1001において、CPU201は、I/Oポート204から暗号文データブロックTDを入力し、RAM202に書き込む。この書き込み処理は図9の(3)に相当する。
ステップS1002において、CPU201は、復号プログラム304に従って、S−box、第2の暗号化キー鍵aを暗号文データブロックに適用し、復号データブロックTDnと復号MACデータTDmとを含むデータDEkey2を生成する。これは、図9の(4)ないし(7)に相当する。
ステップS1003において、CPU201は、データDEkey2から復号データブロックTDnと復号MACデータTDmとを分離する。
ステップS1004において、CPU201は、認証プログラムに従って、復号データTDnに含まれる各復号文ブロックに対して第1の暗号化キー鍵bとS−boxを適用して比較用のMACデータを生成する。この処理は、図9の(8)ないし(11)に相当する。具体的なMAC処理は、図8で示したとおりである。すなわち、サーバ120で実行されたMAC処理と同一となる。
ステップS1105において、CPU201は、制御プログラムに従って、復号されたMACデータTDmと、比較用のMACデータMACkey1(TDn)とを比較する。一致した場合は、ステップS1006に進む。一方、不一致であれば、受信された暗号文データブロックTDが、送信した暗号文データブロックCODEkey2(MD)と一致しないことになる。すなわち、改ざんなどのダメージが伝送路上で発生したことになるので、ステップS1007においてエラー処理を実行する。エラー処理とは、たとえば、サーバ120に対して再送要求を送信するが如くである。なお、この比較処理は、図9の(12)に相当する。このようにダメージを受けた暗号データブロックTDのみを再送させるので、従来のように暗号化されたファームウエア等の全体を再送させる場合よりも、処理の効率がよい。
ステップS1006において、CPU201は、書き込みプログラム302を使用して、復号されたデータブロックTDnをフラッシュROM202へと書き込む。また、RAM203から、暗号文データブロック、復号文データブロック、および2つのMACデータを削除し、RAM203の空き領域を確保する。
まだ、サーバ120側に残りの暗号文データブロックが存在する場合は、CPU201は、PC110を経由して、次の暗号文データブロックに関する送信要求を送信する。最終的にすべての暗号文データブロックを復号し、フラッシュROM202への書き込みが終了すれば、CPU201は、本フローチャートに関する処理を終了し、プリンタ装置101をリセットする。
本実施形態によれば、もしCODEkey2(MD)が転送されている時にノイズがのり、データの一部もしくは全てに変化が生じたり、故意にデータが書き換えられたりした場合には、暗号文データブロックごとに認証エラーとして検出できる。すなわち、暗号文全体がないと認証を行なえなかった従来技術に比較し、より短時間で認証エラーを検出できる利点がある。
また、MAC処理をフラッシュROM202のバンクサイズの整数倍を単位として実行するようにしたので、復号されたデータをただちにフラッシュROM202へと書き込むことができる。すなわち、従来技術のように復号されたデータのサイズが、バンクサイズの整数倍になっていないと、復号されたデータを一度に書き込むことができず、余りのデータをRAM203に残したまま新たなデータの処理を行なわなければならなくなる課題があった。それに対して本実施形態では、復号されたデータを一度にROMに書き込め、RAMの領域を開放できるので、新たに受信した暗号データをRAM領域で処理することができるようになる。このように、復号文データブロックのサイズが揮発性メモリのバンクサイズの整数倍となっているので、復号文データブロックを一度の書き込み処理で不揮発性のメモリに書き込めるので、書き込みプログラムを従来よりも簡素にできる。
さらに、所定のサイズの暗号文データブロックごとに転送、認証および復号を実行するようにしたので、少ないRAMしか有していない電子装置に対しても、効率よく暗号文データを転送できるといったメリットがある。上述の例では、一つのMACデータを付加するデータ単位を256ビットとしたので、RAMには256ビットのデータを格納するだけで、復号処理と認証処理とを実行できることになる。すなわち、ファームウエアが巨大である場合には、256ビットの暗号文データブロックを受信するだけで認証できるため、暗号化されたファームウエアのすべてを受信するのを待たずに、認証処理や復号化処理を実行できる。従って、従来よりも、受信された暗号文データの不具合を早期に発見しやすくなる。なお、RAMには、暗号文データブロックを記憶する領域に加え、それと同じ大きさの復号データを格納する領域と、復号や認証を行なうためのデータやプログラムを格納できる領域とが存在すればよい。
本実施形態に係る発明の優れた効果を説明するための一例を紹介する。送信すべきファームウエア等の平文が全体で5120ビットであるとする。また、一回に行なえる復号化のビット数は64ビット、MACの入力ビットを64ビット、ROMのバンクサイズを128ビットとする。このような前提の下に、復号処理、認証処理およびMAC処理の回数を検討してみる。プリンタ装置101内で実行される処理は、復号処理と認証処理の二つであるから、ここではサーバ120における暗号処理の回数はカウントしないこととする。
図11に示した一連の復号処理と認証処理では、復号化処理が5回(復号文1〜4とMACデータを復号するので5回となる。)であり、MAC処理が4回(MAC処理は、復号文1〜4に対して実行されるので4回となる。)である。一連の復号化処理および認証処理において処理可能な平文のビット数は256ビットなので、5120ビット全てに対しては、一連の復号化処理および認証処理を20回(5120/256=20回)実行することになる。よって、復号処理の実行回数は100回となり、MAC処理の実行回数は80回となる。なお、認証処理は256ビットごとに行なうことができる。
次にMACデータを付加する単位を64ビットごとと仮定して処理回数を検討してみる。一連の復号処理および認証処理では、復号処理が2回となり、MAC処理が1回となる。一連の復号処理および認証処理において処理可能な平文のビット数は64ビットなので、5120ビット全てに対して当該処理は80回実行されることになる。よって、復号処理の実行回数は160回となり、MAC処理の実行回数は80回となる。なお、この場合は、認証は64ビットごとに行なうことができる。
以上の検討結果から明らかなように、MACデータを付加するデータブロックの単位を変更することにより、復号処理と認証処理を実行するためのスピードをトレードオフすることができる。
[第2の実施形態]
第2の実施形態は、第1の実施形態の一部を変形したものである。第1の実施形態では、平文ブロック1〜nについてMAC処理を行なってから暗号化処理を実行していたが、第2の実施形態では、平文ブロック1〜nについて暗号化し、その後でMAC処理を行なうようにしている。そのため、復号化時には、復号する前に認証処理を実行できるようになるため、受信した暗号文データのエラーを第1の実施形態よりも早期に発見できる利点がある。
(暗号化処理)
図12は、第2の実施形態に係る暗号化処理の例示的なフローチャートである。図13は、暗号化処理の概要を説明するための図である。なお、既に説明した部分には同一の参照符号を付すことで、説明を簡略化している。上述したステップS601とS602とを実行した後で、ステップS1203へと進む。
ステップS1203において、サーバ120のCPU501は、データブロックDに対して、第2の暗号化キーkey2を適用して、暗号文データブロックCDを生成する。
ステップS1204において、CPU501は、暗号文データブロックCDを、MAC処理可能な処理単位に分割する。この例では、上述したように256ビットの暗号文データブロックを64ビットごとに分割し、暗号文ブロック1ないし4を生成する。
ステップS1205において、CPU501は、各処理単位ごとの暗号文ブロックに、第1の暗号化キーkey1を適用して、MACデータMACkey1(CD)を生成する。具体的なMAC処理の一例は、図8で説明したとおりである。
ステップS1206において、CPU501は、暗号文データブロックCDに対してMACデータMACkey1(CD)を結合し、結合データMCDを生成する。
ステップS1207において、CPU501は、結合データMCDを、暗号文データ512として、ハードディスクドライブ505に出力する(書き込む)か、または通信インタフェース504からPC110もしくはプリンタ装置101に向けて出力(送信)する。
(復号化処理)
図14は、第2の実施形態に係る復号化処理の例示的なフローチャートである。また、図15は、第2の実施形態に係る復号化処理の概要を説明するための図である。なお、既に説明した個所には同一の参照符号を付すことにより説明を簡潔にする。ステップS1001において、サーバ120から、PC110を経由して暗号文データを受信済みであるものとする。
ステップS1402において、CPU201は、I/Oポート204から入力されRAM203に記憶された暗号文データTDを、暗号文データブロックTDnとMACデータTDmとに分離する。すなわち、暗号文データTDからMACデータTDmが抽出される。
ステップS1403において、CPU201は、暗号文データブロックTDnに含まれる各暗号文ブロック対して、第1の暗号化キーkey1を用いてMAC処理(図8)を実行し、比較用のMACデータMACkey1(TDn)を生成する。
ステップS1404において、CPU201は、復号されたMACデータTDmと、比較用のMACデータMACkey1(TDn)とを比較する。一致した場合は、ステップS1405に進む。一方、不一致であれば、受信された暗号文データTDが、送信した暗号文データMCDと一致しないことになり、すなわち、改ざんなどのダメージが伝送路上で発生したことになる。よって、ステップS1007においてエラー処理を実行する。エラー処理とは、たとえば、サーバ120に対して再送要求を送信するが如くである。
ステップS1405において、CPU201は、暗号文データブロックTDnに対して、第2の暗号化キーkey2を適用して復号し、復号文1〜4を含む復号文データDEkey2(TDn)を生成する。
ステップS1006において、CPU201は、書き込みプログラム302を使用して、復号文データDEkey2(TDn)をフラッシュROM202へと書き込む。なお、まだ、サーバ120側に残りの暗号文データが存在する場合は、それについての送信要求を送信する。最終的にすべての暗号文データを復号し、フラッシュROM202への書き込みが終了すれば、CPU201は、本フローチャートに関する処理を終了し、プリンタ装置101をリセットする。
本実施形態によれば、第1の実施形態おける効果に加え、暗号文データを復号する前に認証処理を実行できるので、第1の実施形態よりも早く暗号文データの改ざん等を検出できるといった効果がある。また、認証に失敗すれば復号処理を実行しないように制御するので、無駄な処理を省略できる利点がある。
[他の実施形態]
上述の実施形態では、制御部をワンチップ化したワンチップCPU103を使用して説明したが、本発明はこの構成に限定されるわけではない。たとえば、CPU、ROM、RAMおよびI/Oポートのすべてまたは一部を独立した構成としてもよい。
また、上述の実施形態では、プリンタ装置101を一例として説明したが、ネットワークを介して暗号化されたファームウエアやデータなどを受信する電子装置であれば、本発明を好適に適用できることはいうまでもない。
また、上述の実施形態によれば、プリンタ装置101は、PC110を介してサーバ120に接続していたが、プリンタ装置101に通信インタフェースとクラインアントプログラムが搭載されていれば、プリンタ装置101を直接ネットワーク115に接続してもよい。
上述の実施形態では、データの分割や分離との用語を用いたが、データを物理的に分割や分離する場合だけでなく、論理的に分割または分離する場合も含まれる。すなわち、実態としては一つのデータであるが、処理の都合上、当該データの一部を特定して抽出することも、分割または分離として説明する。
なお、本発明は、前述した実施形態の各機能を実現するソフトウェアプログラム(本実施形態では図6、10、12または14に示すフローチャートに対応したプログラム)を、システム若しくは装置に対して直接または遠隔から供給し、そのシステム若しくは装置に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明の構成要件となる場合がある。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
図1は、実施形態に係るデータ転送システムの構成例を示す図である。 図2は、実施形態に係るワンチップCPU103の構成例を示す図である。 図3は、プリンタ装置のROMに記憶されているプログラムやデータの一例を示す図である。 図4は、実施形態に係るPCの例示的なブロック図である。 図5は、実施形態に係るサーバの例示的なブロック図である。 図6は、実施形態に係る暗号化処理の例示的なフローチャートである。 図7は、実施形態に係る暗号化処理の概要を説明するための図である。 図8は、実施形態に係る例示的なMAC処理を示す図である。 図9は、実施形態に係るプリンタ装置のROMとRAMとの間で授受されるプログラムとデータとを例示する図である。 図10は、実施形態に係る復号プログラム、認証プログラムおよび書き込みプログラムに関連する例示的なフローチャートである。 図11は、実施形態に係る復号処理と認証処理の概要を示す図である。 図12は、第2の実施形態に係る暗号化処理の例示的なフローチャートである。 図13は、暗号化処理の概要を説明するための図である。 図14は、第2の実施形態に係る復号化処理の例示的なフローチャートである。 図15は、第2の実施形態に係る復号化処理の概要を説明するための図である。

Claims (12)

  1. 書き換え可能な不揮発性メモリに書き込まれることになる平文データを暗号化する暗号化装置であって、
    前記平文データを入力する入力手段と、
    入力された前記平文データを、前記書き換え可能な不揮発性メモリのバンクサイズを整数倍したサイズの1以上のデータブロックへと分割する分割手段と、
    前記データブロックに対して第1の暗号化キーを用いて認証データを作成する認証データ作成手段と、
    前記データブロックに前記認証データを結合する結合手段と、
    前記認証データの結合された前記データブロックに対して第2の暗号化キーを用いて暗号文データを生成する暗号化手段と、
    前記暗号文データを出力する出力手段と
    を有する暗号化装置。
  2. 入力された暗号文データを復号して書き換え可能な不揮発性メモリに書き込む復号化装置であって、
    前記暗号文データを入力する入力手段と、
    入力された前記暗号文データに第1の暗号化キーを用いて復号文データに復号する復号化手段と、
    前記復号文データを、前記書き換え可能な不揮発性メモリのバンクサイズの整数倍となる復号文データブロックと、認証データとに分割する分割手段と、
    前記復号文データブロックに第2の暗号化キーを用いて比較データを生成する比較データ生成手段と、
    前記比較データと前記認証データとを比較することで、前記復号文データブロックの正常性を判定する判定手段と、
    正常と判定された前記前記復号文データブロックを前記書き換え可能な不揮発性メモリに書き込む書き込み手段と
    を有する復号化装置。
  3. 前記復号文データブロックが正常ではないと判定された場合に、前記暗号文データの再送要求を送信する再送要求手段をさらに含む請求項2に記載の復号化装置。
  4. 前記復号文データブロックの前記不揮発性メモリへの書き込みが完了すると、該復号文データブロックを作業用の揮発性メモリから削除し、次の暗号文データを前記入力手段から入力し、該揮発性メモリに記憶して復号処理を継続するよう制御する制御手段をさらに含む請求項2または3に記載の復号化装置。
  5. 書き換え可能な不揮発性メモリに書き込まれることになる平文データを暗号化する暗号化装置であって、
    前記平文データを入力する入力手段と、
    入力された前記平文データを、該平文データが書き込まれることになる書き換え可能な不揮発性メモリのバンクサイズの整数倍となる1以上のデータブロックに分割する分割手段と、
    前記データブロックに第1の暗号化キーを用いて暗号文データブロックを生成する暗号化手段と、
    前記暗号文データブロックに対して第2の暗号化キーを用いて認証データを作成する認証データ作成手段と、
    前記暗号文データブロックに前記認証データを結合して暗号文データを生成する結合手段と、
    前記暗号文データを出力する出力手段と
    を有する暗号化装置。
  6. 入力された暗号文データを復号して書き換え可能な不揮発性メモリに書き込む復号化装置であって、
    前記暗号文データを入力する入力手段と、
    入力された前記暗号文データを、前記書き換え可能な不揮発性メモリのバンクサイズの整数倍となる1以上の暗号化データブロックと、認証データとに分割する分割手段と、
    前記暗号文データブロックに第1の暗号化キーを用いて比較データを生成する比較データ生成手段と、
    前記比較データと前記認証データとを比較することで、前記暗号文データブロックの正常性を判定する判定手段と、
    正常と判定された前記暗復号文データブロックに第2の暗号化キーを用いて復号文データブロックを生成する復号化手段と、
    前記復号文データブロックを前記書き換え可能な不揮発性メモリに書き込む書き込み手段と
    を有する復号化装置。
  7. 前記暗号文データブロックが正常ではないと判定された場合に、前記暗号文データの再送要求を送信する再送要求手段をさらに含む請求項6に記載の復号化装置。
  8. 前記復号文データブロックの前記不揮発性メモリへの書き込みが完了すると、該復号文データブロックを作業用の揮発性メモリから削除し、次の暗号文データを前記入力手段から入力し、該揮発性メモリに記憶して復号処理を継続するよう制御する制御手段をさらに含む、請求項6または7に記載の復号化装置。
  9. 書き換え可能な不揮発性メモリに書き込まれることになる平文データを暗号化する暗号化方法であって、
    前記平文データを入力する入力工程と、
    前記書き換え可能な不揮発性メモリのバンクサイズの整数倍となる1以上のデータブロックへと、入力された前記平文データを分割する分割工程と、
    前記データブロックに対して第1の暗号化キーを用いて認証データを作成する認証データ作成工程と、
    前記データブロックに前記認証データを結合する結合工程と、
    前記認証データの結合された前記データブロックに対して第2の暗号化キーを用いて暗号文データを生成する暗号化工程と、
    前記暗号文データを出力する出力工程と
    を有する暗号化方法。
  10. 入力された暗号文データを復号して書き換え可能な不揮発性メモリに書き込む復号化方法であって、
    前記暗号文データを入力する入力工程と、
    入力された前記暗号文データに第1の暗号化キーを用いて復号文データに復号する復号化工程と、
    前記復号文データを、前記書き換え可能な不揮発性メモリのバンクサイズの整数倍となる復号文データブロックと、認証データとに分割する分割工程と、
    前記復号文データブロックに第2の暗号化キーを用いて比較データを生成する比較データ生成工程と、
    前記比較データと前記認証データとを比較することで、前記復号文データブロックの正常性を判定する判定工程と、
    正常と判定された前記前記復号文データブロックを前記書き換え可能な不揮発性メモリに書き込む書き込み工程と
    を有する復号化方法。
  11. 書き換え可能な不揮発性メモリに書き込まれることになる平文データを暗号化する暗号化方法であって、
    前記平文データを入力する入力工程と、
    入力された前記平文データを、該平文データが書き込まれることになる書き換え可能な不揮発性メモリのバンクサイズの整数倍となる1以上のデータブロックへと分割する分割工程と、
    前記データブロックに第1の暗号化キーを用いて暗号文データブロックを生成する暗号化工程と、
    前記暗号文データブロックに対して第2の暗号化キーを用いて認証データを作成する認証データ作成工程と、
    暗号文データを生成するために前記暗号文データブロックに前記認証データを結合する結合工程と、
    前記暗号文データを出力する出力工程と
    を有する暗号化方法。
  12. 入力された暗号文データを復号して書き換え可能な不揮発性メモリに書き込む復号化方法であって、
    前記暗号文データを入力する入力工程と、
    入力された前記暗号文データを、前記書き換え可能な不揮発性メモリのバンクサイズの整数倍となる1以上の暗号化データブロックと認証データとに分割する分割工程と、
    前記暗号文データブロックに第1の暗号化キーを用いて比較データを生成する比較データ生成工程と、
    前記比較データと前記認証データとを比較することで、前記暗号文データブロックの正常性を判定する判定工程と、
    正常と判定された前記暗号文データブロックに第2の暗号化キーを用いて復号文データブロックを生成する復号化工程と、
    前記復号文データブロックを前記書き換え可能な不揮発性メモリに書き込む書き込み工程と
    を有する復号化方法。
JP2004218842A 2004-07-27 2004-07-27 暗号化装置および復号化装置 Pending JP2006039206A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004218842A JP2006039206A (ja) 2004-07-27 2004-07-27 暗号化装置および復号化装置
US11/175,146 US7650499B2 (en) 2004-07-27 2005-07-07 Encryption apparatus and decryption apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004218842A JP2006039206A (ja) 2004-07-27 2004-07-27 暗号化装置および復号化装置

Publications (1)

Publication Number Publication Date
JP2006039206A true JP2006039206A (ja) 2006-02-09

Family

ID=35733776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004218842A Pending JP2006039206A (ja) 2004-07-27 2004-07-27 暗号化装置および復号化装置

Country Status (2)

Country Link
US (1) US7650499B2 (ja)
JP (1) JP2006039206A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010508719A (ja) * 2006-10-27 2010-03-18 クゥアルコム・インコーポレイテッド 合成メッセージ認証コード
JP2012113723A (ja) * 2006-04-11 2012-06-14 Qualcomm Inc 複数の認証(multipleauthentications)を結び付けるための方法および装置
US8453206B2 (en) 2006-11-09 2013-05-28 Panasonic Corporation Detecting unauthorized tampering of a program
JP2013103410A (ja) * 2011-11-14 2013-05-30 Seiko Epson Corp 画像形成装置
KR101922955B1 (ko) 2018-02-14 2018-11-28 (주)케이사인 데이터 블록 기반의 근 실시간 데이터 암호화 시스템 및 방법
US11438137B2 (en) 2017-09-01 2022-09-06 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, and computer readable medium

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8087092B2 (en) * 2005-09-02 2011-12-27 Uniloc Usa, Inc. Method and apparatus for detection of tampering attacks
US7814538B2 (en) * 2005-12-13 2010-10-12 Microsoft Corporation Two-way authentication using a combined code
JP4778361B2 (ja) * 2006-05-19 2011-09-21 日立オムロンターミナルソリューションズ株式会社 認証装置及び認証システム及び認証装置の装置確認方法
US8284929B2 (en) * 2006-09-14 2012-10-09 Uniloc Luxembourg S.A. System of dependant keys across multiple pieces of related scrambled information
US8356178B2 (en) * 2006-11-13 2013-01-15 Seagate Technology Llc Method and apparatus for authenticated data storage
EP2203815B1 (en) 2007-09-20 2015-08-12 Uniloc Luxembourg S.A. Installing protected software product using unprotected installation image
WO2009076232A1 (en) * 2007-12-05 2009-06-18 Uniloc Corporation System and method for device bound public key infrastructure
US8812701B2 (en) * 2008-05-21 2014-08-19 Uniloc Luxembourg, S.A. Device and method for secured communication
US8745411B2 (en) * 2008-11-07 2014-06-03 Broadcom Corporation Protecting external volatile memories using low latency encryption/decryption
US9141489B2 (en) * 2009-07-09 2015-09-22 Uniloc Luxembourg S.A. Failover procedure for server system
KR101802521B1 (ko) * 2011-05-30 2017-11-30 삼성전자주식회사 휴대단말기에서 데이터의 암호화 및 복호화 수행 장치 및 방법
EP2725554A1 (en) * 2012-10-23 2014-04-30 Thomson Licensing Methods and devices for optimising rendering of an encrypted 3d graphical object
JP2014143568A (ja) 2013-01-24 2014-08-07 Canon Inc 認証システム及び認証子変換器
JP6552184B2 (ja) * 2014-01-14 2019-07-31 キヤノン株式会社 情報処理装置およびその方法
US10613777B2 (en) 2015-05-13 2020-04-07 Bank Of America Corporation Ensuring information security in data transfers by utilizing decoy data
US10326588B2 (en) 2015-05-13 2019-06-18 Bank Of America Corporation Ensuring information security in data transfers by dividing and encrypting data blocks
JP2017188830A (ja) 2016-04-07 2017-10-12 キヤノン株式会社 外部ユニットを装着して動作する装置及び当該外部ユニット
US10313315B2 (en) * 2017-08-25 2019-06-04 Bank Of America Corporation Ensuring information security in data transfers by utilizing proximity keys
US11646870B2 (en) 2019-01-23 2023-05-09 International Business Machines Corporation Securing mobile device by RAM-encryption
SG10201906806XA (en) * 2019-07-23 2021-02-25 Mastercard International Inc Methods and computing devices for auto-submission of user authentication credential
CN110851888A (zh) * 2019-10-12 2020-02-28 天津光电聚能专用通信设备有限公司 一种具有双路异构功能的高性能安全加密系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8704883D0 (en) * 1987-03-03 1987-04-08 Hewlett Packard Co Secure information storage
US5757913A (en) * 1993-04-23 1998-05-26 International Business Machines Corporation Method and apparatus for data authentication in a data communication environment
JPH08307413A (ja) 1995-05-09 1996-11-22 Nippon Telegr & Teleph Corp <Ntt> 認証方式
JP3540511B2 (ja) * 1996-06-18 2004-07-07 株式会社東芝 電子署名検証装置
JP3570114B2 (ja) * 1996-10-21 2004-09-29 富士ゼロックス株式会社 データ検証方法およびデータ検証システム
US6128737A (en) * 1998-04-20 2000-10-03 Microsoft Corporation Method and apparatus for producing a message authentication code in a cipher block chaining operation by using linear combinations of an encryption key
CA2267395C (en) * 1999-03-30 2002-07-09 Ibm Canada Limited-Ibm Canada Limitee Method and system for managing keys for encrypted data
JP4478298B2 (ja) 2000-06-22 2010-06-09 株式会社日立国際電気 データ転送システム
JP4136325B2 (ja) 2000-08-31 2008-08-20 株式会社リコー 画像形成システム、ソフトウエア取得方法、画像形成装置およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
TWI233040B (en) 2000-11-10 2005-05-21 Sanyo Electric Co Microcomputer and controlling method thereof
JP4793798B2 (ja) 2000-11-10 2011-10-12 オンセミコンダクター・トレーディング・リミテッド マイクロコンピュータ
JP2002157139A (ja) 2000-11-22 2002-05-31 Canon Inc 電子装置、画像読み取り装置、及び不揮発性メモリの書き換え方法
JP3805195B2 (ja) 2000-12-08 2006-08-02 シャープ株式会社 プログラム書き換え装置及びプログラム書き換え方法
JPWO2002057904A1 (ja) 2001-01-19 2004-05-27 富士通株式会社 ダウンロード機能を有する制御装置
JP2002358117A (ja) 2001-06-04 2002-12-13 Mitsubishi Chemicals Corp プラント運転制御装置
US6948067B2 (en) * 2002-07-24 2005-09-20 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
JP2004110610A (ja) 2002-09-20 2004-04-08 Hitachi Kokusai Electric Inc リモートメンテナンス方式
US7092524B1 (en) * 2002-11-15 2006-08-15 The United States Of America As Represented By The National Security Agency Device for and method of cryptographically wrapping information
KR100509489B1 (ko) * 2003-02-06 2005-08-22 삼성전자주식회사 가변 폭의 데이터 패킷을 암호화하는 장치 및 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012113723A (ja) * 2006-04-11 2012-06-14 Qualcomm Inc 複数の認証(multipleauthentications)を結び付けるための方法および装置
JP2010508719A (ja) * 2006-10-27 2010-03-18 クゥアルコム・インコーポレイテッド 合成メッセージ認証コード
US8949600B2 (en) 2006-10-27 2015-02-03 Qualcomm Incorporated Composed message authentication code
US8453206B2 (en) 2006-11-09 2013-05-28 Panasonic Corporation Detecting unauthorized tampering of a program
JP2013103410A (ja) * 2011-11-14 2013-05-30 Seiko Epson Corp 画像形成装置
US11438137B2 (en) 2017-09-01 2022-09-06 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, and computer readable medium
KR101922955B1 (ko) 2018-02-14 2018-11-28 (주)케이사인 데이터 블록 기반의 근 실시간 데이터 암호화 시스템 및 방법

Also Published As

Publication number Publication date
US20060026442A1 (en) 2006-02-02
US7650499B2 (en) 2010-01-19

Similar Documents

Publication Publication Date Title
JP2006039206A (ja) 暗号化装置および復号化装置
US7929692B2 (en) Firmware encrypting and decrypting method and an apparatus using the same
US20080104417A1 (en) System and method for file encryption and decryption
JP4829632B2 (ja) データ暗号化装置、データ暗号化方法、データ暗号化プログラム、および記録媒体
JP4327865B2 (ja) コンテンツ処理装置、暗号処理方法及びプログラム
KR100683342B1 (ko) 디지털 데이터 기록장치, 디지털 데이터 메모리장치, 및제한정보를 포함하는 관리정보를 각 관리정보 송신/수신세션 내의 상이한 키를 이용하여 변환하는 디지털 데이터이용장치
NO332239B1 (no) Informasjonsprosesseringssystem og fremgangsmate
JP2002215465A5 (ja)
JP2007096783A (ja) データ転送方法及びシステム
US7869595B2 (en) Content copying device and content copying method
KR101117588B1 (ko) 암호화 표시정보를 갖는 기록매체
JP5118494B2 (ja) イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
JP2008524969A5 (ja)
JP2008299683A (ja) 情報記録媒体のセキュリティ方法、情報処理装置及びプログラム
JP2003195758A (ja) データ処理装置、インタフェースボードおよびデータ秘匿方法
JP4843587B2 (ja) 情報記録媒体のセキュリティ方法、情報処理装置、プログラム及び記録媒体
JP2007282064A (ja) データ処理装置、データ処理方法、記憶媒体、プログラム
CN1954542A (zh) 加密设备、密钥分发设备和密钥分发系统
JP2008053767A (ja) データ記録装置およびデータ管理方法
CN111130788A (zh) 数据处理方法和系统、数据读取方法和iSCSI服务器
CA2563144C (en) System and method for file encryption and decryption
JP5539024B2 (ja) データ暗号化装置およびその制御方法
JP6992437B2 (ja) ログ記録装置、ログ記録方法、ログ復号装置、及びログ復号方法
JP4829864B2 (ja) 情報記録媒体のセキュリティ方法、プログラム及び記録媒体
JP4489044B2 (ja) 情報記録装置、情報記録方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060922

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070205