JP2009080515A - セキュアなロードシーケンスを提供する方法および装置 - Google Patents

セキュアなロードシーケンスを提供する方法および装置 Download PDF

Info

Publication number
JP2009080515A
JP2009080515A JP2007247041A JP2007247041A JP2009080515A JP 2009080515 A JP2009080515 A JP 2009080515A JP 2007247041 A JP2007247041 A JP 2007247041A JP 2007247041 A JP2007247041 A JP 2007247041A JP 2009080515 A JP2009080515 A JP 2009080515A
Authority
JP
Japan
Prior art keywords
data
secure
memory
processor
encrypted
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
JP2007247041A
Other languages
English (en)
Inventor
Daisaku Kitagawa
大作 北川
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.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2007247041A priority Critical patent/JP2009080515A/ja
Publication of JP2009080515A publication Critical patent/JP2009080515A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】不良アクセスが発生しやすい不揮発メモリからセキュアなロードシーケンスを行う場合、読み出したデータの管理を行わなければならず、メモリアクセス回数が増えてしまい、ロードする時間が長くなり、消費電力も増加してしまう。
【解決手段】不揮発メモリ(NAND型フラッシュROM)15のデータ領域に格納してある暗号化されたデータと不揮発メモリ15の冗長部に格納してある付加情報をNA不揮発メモリ15から読み出し、暗号処理ユニット16の暗号処理機能を用いてその暗号化されたデータを復号化と復号化したデータのハッシュ計算をするステップと、プロセッサ11に関連付けられたセキュアメモリ12内に復号化したデータを読み込むステップと、そのデータが真正であることを付加情報によって確認するステップと、を含む方法および当該方法を用いる装置を提供する。
【選択図】図1

Description

本発明は、プロセッサ内にセキュアなロードシーケンスを提供する方法および装置に関するものである。
プロセッサの起動コードなどのプログラムは、意図的なハッキングなどの外部要因にさらされやすい。ロードシーケンスとは、パワーオンリセットやプログラム分岐などのイベント発生により、起動コードなどのプログラムをフラッシュROMなどの不揮発メモリから読み出して、DRAMなどの作業メモリに展開することである。あいにく不揮発メモリ内はセキュアではなく、起動前にハッカーが容易にその内容を改竄できる。これは結果として、機密情報を処理するシステム内において、大きな被害をもたらしうる。不揮発メモリの内容が改竄された可能性があるという事実により、起動後に施された任意のセキュリティ対策の効力が低減してしまう。実際、セキュアなロードシーケンスがなされなければ、以降の任意のセキュリティ対策は、十分に信頼性の高いものにはなるとは限らない。
これに対し、プロセッサ内にセキュアなロードシーケンスを提供する技術としては、例えば特許文献1があった。図10は、前記特許文献1に記載された従来のプロセッサ内にセキュアなロードシーケンスを提供する装置を示すものである。
図10において従来のプロセッサ内にセキュアなロードシーケンスを提供する装置は、暗号化された起動コードを起動ROM110から読み出し、プロセッサ102に関連付けられたローカルメモリ104内に読み込むステップと、そのプロセッサ102の信頼性の高い復号化機能を用いてその暗号化された起動コードを復号化し、その起動コードが真正であることを確認するステップと、を含む装置で、暗号化した起動コードの真性を判断することで改竄を抑制していた。
特開2006−221632号公報(図10)
しかしながら、前記従来のプロセッサ内にセキュアなロードシーケンスを提供する装置では、暗号化されたデータを格納している不揮発メモリがNAND型フラッシュROMの場合、不良アクセスが発生するため、復号処理や真性の確認とは無関係に読み出したデータの管理を行わなければならず、メモリアクセス回数が増えるため、ロードする時間が長くなり、消費電力も増加するという課題を有していた。
本発明は、前記従来の課題を解決するもので、不良アクセスが発生しやすい不揮発メモリからセキュアなロードシーケンスを行う場合でも、メモリアクセス回数を削減し、ロードする時間の短縮と消費電力の削減を実現する装置および方法を提供することにある。
前記目的を達成するため、本発明は、セキュアなメモリと、前記セキュアなメモリへのアクセス手段を持つプロセッサであって、不揮発なメモリにアクセス可能な状態で接続されるとともに、前記セキュアなメモリ内での使用を目的として前記不揮発なメモリからデータを読み出すことが可能なプロセッサと、前記プロセッサに動作可能に接続されるとともに、前記不揮発なメモリから読み出されるデータに対する暗号処理が可能な暗号処理ユニットを有する。
好適には、前記不揮発なメモリは、読み取り可能なデータ領域と、前記データ領域の付属情報を格納する冗長部からなるページが複数も設けられた記憶媒体である。
好適には、前記不揮発なメモリはさらに、前記データ領域に暗号化されたデータを含む記憶媒体である。
好適には、前記プロセッサは、前記暗号化されたデータを前記不揮発なメモリから読み出して前記暗号処理ユニットを使って復号化し、その復号化したデータを前記セキュアなメモリ内に保存する機能を有する。
好適には、前記暗号処理ユニットは前記暗号化されたデータを復号化したデータが真正であることを確認する機能を有することを特徴とする。
好適には、前記暗号処理ユニットは、前記不揮発なメモリの前記データ領域に格納される前記暗号化されたデータだけでなく、前記不揮発なメモリの前記冗長部に格納される前記データ領域の付属情報も取り扱うことができることを特徴とする。
好適には、前記暗号処理ユニットはさらに、前記暗号化されたデータを復号化したデータのハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と前記記憶媒体の前記冗長部の内容とを比較することによって、前記データが真正であることを確認する機能を有することを特徴とする。
好適には、前記不揮発なメモリの前記冗長部は、前記暗号化されたデータが暗号化される前のデータのハッシュ値から生成されたデータが保存されることを特徴とする。
好適には、前記プロセッサはさらに、セキュアな動作モードに入る機能を有し、前記セキュアなメモリには前記セキュアな動作モードでのみアクセス可能であることを特徴とする。
本発明によれば、不良アクセスが発生しやすい不揮発メモリからセキュアなデータをロードする場合、メモリアクセス回数を削減することでき、ロード時間の短縮と消費電力の削減をすることができる。
以下本発明の実施形態について、図面を参照しながら説明する。
本実施形態に係るセキュアなロードシーケンスを提供する装置10は、図1に示すように、プロセッサ11、セキュアメモリ12、(DRAMなどの)システムメモリ13、を有し、バス14に対して、(NAND型フラッシュROMなどの)不揮発メモリ15、暗号処理ユニット16、が接続されている。
さらに暗号処理ユニット16は、図2に示すように、入力インターフェース21、復号化ユニット22、ハッシュ関数ユニット23、出力インターフェース24から構成される。
本実施形態のセキュアなロードシーケンスを提供する装置10は、以下の特徴を有している。
プロセッサ11は暗号処理ユニット16の復号化ユニット22に、不揮発メモリ15から読み出させる復号処理すべきデータの、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)といった復号処理のアルゴリズムと、ECB(Electronic Code Book)モードやCBC(Cipher Block Chaining)モードやカウンタモード(Counter Mode)といった復号処理のモードを指示する。
これにより、不揮発メモリ15から読み出される暗号化されたデータに対して、復号化処理の方法が確定する。
また、本実施形態のセキュアなロードシーケンスを提供する装置10は、以下の特徴も有する。
プロセッサ11は暗号処理ユニット16のハッシュ関数ユニット23に、復号化ユニット22で復号処理されたデータに対する、SHA-1(Secure Hash Algorithm)やMD5(Message Digest Algorithm 5)といったハッシュ関数のアルゴリズムと、ハッシュ計算で得られたハッシュ値の使い方を指示する。
これにより、不揮発メモリ15から読み出される暗号化されたデータに対して、真性の判定方法が確定する。
本実施形態のセキュアなロードシーケンスを提供する装置10においては、プロセッサ11からの指示により、バス13に接続された不揮発メモリ15から、暗号化されたデータが読み出され、暗号処理ユニット16に入力されるデータアクセスが発生する。
この時、データアクセスを容易にするメカニズムとして、例えばダイレクト・メモリ・アクセス(DMA)技術など、任意の既知の技術を用いてもよい。
また、不揮発メモリ15は、読み取り可能なデータ領域と、そのデータ領域の付属情報を格納する情報とからなるページが複数設けられている。不揮発メモリ15からのデータ読出しは、そのページ単位で行われる。暗号化されたデータは、データ領域に格納されている。
暗号化処理ユニット16の入力インターフェース21は、入力されたデータが不揮発メモリ15のデータ領域ならば復号化ユニット22へ、冗長部ならばハッシュ関数ユニット23へ入力する。
復号化ユニット22は、入力インターフェース21から入力されたデータをプロセッサ11から指示された内容に従って、復号処理してハッシュ関数ユニット23と出力インターフェース24に入力する。
ハッシュ関数ユニット23は、復号化ユニットから入力されたデータ(復号処理されたデータ)をプロセッサ11から指示された内容に従って、ハッシュ関数処理を行う。ハッシュ関数ユニット23が出力するデータは、ハッシュ関数ユニット23に入力されたデータのままであり、出力インターフェース24へ入力される。
また、ハッシュ関数ユニット23は、プロセッサ11から指示された内容に従って、入力インターフェース21から入力されたデータを、ハッシュ関数処理の結果と比較し、プロセッサ11に通知する。
出力インターフェース24は、復号処理だけを行う場合は、復号化ユニット22からの入力を、復号処理とハッシュ関数処理を行う場合は、ハッシュ関数ユニット23からの入力をそのまま出力し、暗号処理ユニット16の出力とする。本実施形態では、復号処理とハッシュ関数処理を行うのでハッシュ関数ユニット23からの入力を出力するケースに限定する。
プロセッサ11からの指示により、暗号処理ユニット16の出力は、セキュアメモリ12に格納されるデータアクセスが発生する。
この時、データアクセスを容易にするメカニズムとして、例えばダイレクト・メモリ・アクセス(DMA)技術など、任意の既知の技術を用いてもよい。
ただし、プロセッサ11からの指示はセキュアな動作モードの時に限定される。これは、セキュアメモリ12に格納されるデータが復号化しており機密性の高い情報となっているためである。
プロセッサ11は、暗号処理ユニット16のハッシュ関数ユニット23の結果を参照することで、セキュアメモリ12に格納したデータ(復号処理したデータ)が真性であるかどうかを判定する。
以下に、従来技術と比較しながらセキュアなロードシーケンス処理における各部の構成および機能について具体的に説明する。
図3は、一般的なセキュアなロードシーケンスの処理ステップを示す図である。
動作31では、プロセッサ11は、暗号化されたデータをハードウエアの保存場所から読み出し、復号化してセキュアなメモリ12内に保存する。動作32では、そのプロセッサ11は、データが改竄されていないことを証明する。例えば、そのプロセッサ11は、ハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と予め定められたハッシュ値とを比較することによって、起動コードが真正であることを確認(証明)できる。
動作33では、復号化したデータが変更されているか否か(例えば、ハッカーにより改竄されているか否か)についての決定がなされる。もし、その決定の結果が肯定的なものである(データが変更されている)場合、処理の流れは、適切な動作が行われる例外処理に進むのが好ましい。その適切な動作の例として、初期化処理へ強制的に移行することが挙げられる。もし、動作33での決定の結果が否定的なものである(データが変更されていない)場合、ロードシーケンスは完了し、プロセッサ11は処理の続行が可能になる。
図4は、本発明の実施形態による不揮発メモリ15の一例であるNAND型フラッシュROMのページ構造とブロック構造の具体例を示した図である。
図4に示すように、NAND型フラッシュROMは、複数の物理的なメモリブロックに分割されている(例えば、32M Byte CMOS NAND EEPROMの場合、2047個)。消去時の最小単位となっている。1ブロックはさらに複数のページに分割される(例えば、32M Byte CMOS NAND EEPROMの場合、Page0〜Page31の32ページ)。1ページは書き込みおよび読出しの基本的な単位となる。1ページは528バイト(または2112バイト)から構成され、うち512バイト(1ページが2112バイトならば2048バイト)はユーザーデータ領域(データ部)、残り16バイト(1ページが2112バイトならば64バイト)は通常、エラー訂正符号および管理情報等の付属情報の格納(冗長部)に使用される。
図5は、本発明の実施形態による不揮発メモリ15の一例であるNAND型フラッシュROMの一般的な冗長部の使われ方を示した図である。
図5に示すように、それぞれのページの冗長部(付属情報)は、予約領域(第512バイト〜第515バイト)、データ・ステータス領域(第516バイト)、ブロック・ステータス領域(第517バイト)、ブロックアドレス領域1(第518バイト〜第519バイト)、ECC領域1(第520バイト〜第522バイト)、ブロックアドレス領域2(第523バイト〜第524バイト)、ECC領域2(第525バイト〜第527バイト)からなっている。
データ・ステータス領域およびブロック・ステータス領域(第517バイト)は、データの正常性を示す。
ブロックアドレス領域1(第518バイト〜第519バイト)は、物理アドレスと論理アドレスの変換情報を格納する。ブロックアドレス領域2(第523バイト〜第524バイト)は、ブロックアドレス領域1のバックアップである。
ECC領域1(第520バイト〜第522バイト)は、データ領域の前半256バイト分の3バイトECCコードである。ECC領域2(第525バイト〜第527バイト)は、データ領域の後半256バイト分の3バイトECCコードである。ここでECC(Error Correction Code)とはエラー訂正のための符号をさす。システムはこのエラー訂正用の符号を利用し、読み出したデータにエラーがあるか否かを判定し、エラーが存在する場合、エラーを訂正することができる。
このように、それぞれのページの冗長部(付属情報)には、データ領域に暗号化されたデータを格納しても、暗号化された前のデータとは関係のない情報が格納されることが一般的である。
まず、従来技術のセキュアなロードシーケンス処理における各部の構成および機能を説明していく。最初に、暗号化されたデータを格納している不揮発メモリが、従来技術が想定しているNOR型フラッシュROMのような不良アクセスの管理を必要としない場合について説明する。
図6は、従来技術のセキュアなロードシーケンス処理において、暗号化されたデータを格納している不揮発メモリが、NOR型フラッシュROMのような不良アクセスの管理を必要としない場合のデータアクセスを示した図である。
図6に示すように、セキュアなロードシーケンス処理が開始すると、プロセッサ102からの指示によって、起動ROM110から暗号化されたデータが読みだされ、復号化ユニット112に入力される(61)。
復号化ユニット112は、入力されたデータをプロセッサ102の指示に従って復号処理を行う。例えば、復号処理のアルゴリズムとして、AES(Advanced Encryption Standard)が指示された場合、復号処理のデータ単位(ブロック演算の単位)が16バイトなので、復号化ユニット112は、暗号化されたデータが16バイト入力されるごとに復号化したデータを16バイト出力していく。
プロセッサ102は、復号化ユニット112が出力するデータをローカルメモリ104に格納していく(62)。ローカルメモリ104への格納とは並行してプロセッサ102は、復号化ユニット112が出力するデータに対してハッシュ関数処理を行う。例えば、ハッシュ関数のアルゴリズムがSHA-1(Secure Hash Algorithm)ならば、ロード対象のデータを全てローカルメモリ104に格納した時点で、64バイトのメッセージ長を持つハッシュ値が確定する。
ロード対象のデータを全てローカルメモリ104に格納すると、プロセッサ102からの指示によって、起動ROM110から暗号化されたハッシュ値が読み出される(63)。そのハッシュ値は、ロードされる対象となる暗号化されたデータの暗号化される前のものに対するハッシュ関数の結果である。例えば、ハッシュ関数のアルゴリズムがSHA-1(Secure Hash Algorithm)ならば、64バイトのメッセージ長を持つハッシュ値である。ハッシュ値の暗号化は、必須ではないが、ハッシュ値の信頼性を高いものとするために暗号化することが望ましい。
暗号化されたハッシュ値は、復号化ユニット102によって復号処理される。プロセッサ102は、復号化されたハッシュ値とハッシュ関数の結果と比較し、データが改竄されていないかを判断する。
次に、暗号化されたデータを格納している不揮発メモリが、NAND型フラッシュROMのような不良アクセスの管理を必要とする場合について説明する。
図7は、従来技術のセキュアなロードシーケンス処理において、暗号化されたデータを格納している不揮発メモリが、NAND型フラッシュROMのような不良アクセスの管理を必要とする場合のデータアクセスを示した図である。
図7に示すように、セキュアなロードシーケンス処理が開始すると、プロセッサ102からの指示によって、起動ROM110から暗号化されたデータが読み出される(71)。
プロセッサ102は、読み出されたデータを、システムメモリ106へ格納するが(72)、並行してあらかじめ決められた誤り訂正方式に従って、ECCコードを計算していく。起動ROM110から1ページ分のデータ領域を格納した時点で、ECCコードが確定する。
起動ROM110から1ページ分のデータ領域が読み出されると、続いて冗長部が読み出される。プロセッサ102は冗長部に含まれるECCコードを利用し、起動ROM110から読み出してシステムメモリ106へ格納したデータにエラーがあるかどうかを判定し、エラーが存在する場合、誤り訂正ができなければ1ページ分再度読み出しを行う。再度読み出しデータが再度エラー判定されることが特定回数続いたら、起動ROM110の内容が破壊されていると判断する。
システムメモリ106へ1ページ分のデータが格納されると、プロセッサ102からの指示によって、システムメモリ106から暗号化されたデータが読みだされ、復号化ユニット112に入力される(73)。
復号化ユニット112は、入力されたデータをプロセッサ102の指示に従って復号処理を行う。例えば、復号処理のアルゴリズムとして、AES(Advanced Encryption Standard)が指示された場合、復号処理のデータ単位(ブロック演算の単位)が16バイトなので、復号化ユニット112は、暗号化されたデータが16バイト入力されるごとに復号化したデータを16バイト出力していく。
プロセッサ102は、復号化ユニット112が出力するデータをローカルメモリ104に格納していく(74)。ローカルメモリ104への格納とは並行してプロセッサ102は、復号化ユニット112が出力するデータに対してハッシュ関数処理を行う。例えば、ハッシュ関数のアルゴリズムがSHA-1(Secure Hash Algorithm)ならば、ロード対象のデータを1ページ分ローカルメモリ104に格納した時点で、64バイトのメッセージ長を持つハッシュ値が確定する。
ロード対象のデータを1ページ分ローカルメモリ104に格納すると、プロセッサ102からの指示によって、起動ROM110から暗号化されたハッシュ値が読み出される(75)。そのハッシュ値は、ロードされる対象となる暗号化されたデータの暗号化される前のものに対するハッシュ関数の結果である。例えば、ハッシュ関数のアルゴリズムがSHA-1(Secure Hash Algorithm)ならば、64バイトのメッセージ長を持つハッシュ値である。ハッシュ値の暗号化は、必須ではないが、ハッシュ値の信頼性を高いものとするために暗号化することが望ましい。
プロセッサ102は、読み出されたデータを、システムメモリ106へ格納するが(76)、並行してあらかじめ決められた誤り訂正方式に従って、ECCコードを計算していく。起動ROM110から1ページ分のデータ領域を格納した時点で、ECCコードが確定する。
起動ROM110から1ページ分のデータ領域が読み出されると、続いて冗長部が読み出される。プロセッサ102は冗長部に含まれるECCコードを利用し、起動ROM110から読み出してシステムメモリ106へ格納したデータにエラーがあるかどうかを判定し、エラーが存在する場合、再度読み出しができなければ1ページ分再度読み出しを行う。再度読み出しデータが再度エラー判定されることが特定回数続いたら、起動ROM110の内容が破壊されていると判断する。
システムメモリ106へ1ページ分のデータが格納されると、プロセッサ102からの指示によって、システムメモリ106から暗号化されたハッシュが読み出される(77)。
暗号化されたハッシュ値は、復号化ユニット102によって復号処理される。プロセッサ102は、復号化されたハッシュ値とハッシュ関数の結果と比較し、データが改竄されていないかを判断する。
このように、従来技術では起動ROM110がNAND型フラッシュROMのように不良アクセスの管理が必要なものになると、読み出したデータにエラーがあるか否かを判定するために、一旦システムメモリ106へ書き出さなければならず、復号処理やハッシュ関数処理とは無関係にメモリアクセスが増加してしまう。
これに対して、本発明のセキュアなロードシーケンス処理における各部の構成および機能を説明していく。
図8は、本発明の実施形態による不揮発メモリ15の一例であるNAND型フラッシュROMの本発明での冗長部の使われ方を示した図である。
図8では、本発明での冗長部の使い方として3つのケースを示している。
ケース1は、一般的な冗長部の使われ方で予約領域(第512バイト〜第515バイト)だったところに、暗号情報格納領域(第0バイト〜第511バイト)に格納するデータの暗号化前のものに対して求めたハッシュ値の一部を暗号化して格納するものである。
ケース2は、冗長部に暗号化前のものに対して求めたハッシュ値の一部を暗号化して格納するものである。
例えば、データ領域が512バイト、冗長部が16バイト、ハッシュ関数のアルゴリズムがSHA-1(Secure Hash Algorithm)とします。ハッシュ値のメッセージ長は64バイトなので、512バイトのデータに対して求めたハッシュ値のうち確保したバイト数だけを格納するやり方や、複数ページ分のデータに対して求めたハッシュ値を分割して格納するやり方である。
ケース1、ケース2の場合、ハッシュ値を作成した順番どおりにページを読み出すことになる。
ケース3は、冗長部に暗号化前のものに対して求めたハッシュ値を暗号化して格納するものである(ケース3)。例えば、データ領域が2048バイト、冗長部が64バイト、ハッシュ関数のアルゴリズムがSHA-1(Secure Hash Algorithm)である場合である。
いずれのケースにせよ、従来技術では考慮しなかった、データ領域の暗号化前のデータに対して求めたハッシュ値が格納される。さらに、ハッシュ値の信頼性を高いものとするために暗号化することが望ましい。
ここでは、冗長部の使われ方がケース3として説明していく。
図9は、本発明のセキュアなロードシーケンス処理において、暗号化されたデータを格納している不揮発メモリが、NAND型フラッシュROMのような不良アクセスの管理を必要とする場合のデータアクセスを示した図である。
図9に示すように、セキュアなロードシーケンス処理が開始すると、プロセッサ11からの指示によって、不揮発メモリ15から暗号化されたデータ(データ領域)が読みだされ、暗号処理ユニット16に入力される(91)。
暗号処理ユニット16に入力された暗号化データは、データ領域なので入力インターフェース21によって復号化ユニット22に入力される。復号化ユニット22は、プロセッサ11の指示に従って復号処理を行う。例えば、復号処理のアルゴリズムとして、AES(Advanced Encryption Standard)が指示された場合、復号処理のデータ単位(ブロック演算の単位)が16バイトなので、復号化ユニット22は、暗号化されたデータが16バイト入力されるごとに復号化したデータを16バイト出力していく。
復号化ユニット22で復号化されたデータは、ハッシュ関数ユニット23に入力される。ハッシュ関数ユニット23は、入力されたデータに対してハッシュ関数処理を行う。例えば、ハッシュ関数のアルゴリズムがSHA-1(Secure Hash Algorithm)ならば、1ページ分のデータを全てローカルメモリ104に格納した時点で、64バイトのメッセージ長を持つハッシュ値が確定する。ハッシュ関数ユニット23は入力されるデータをそのまま出力し、出力インターフェース24に入力する。
出力インターフェース24は、ハッシュ関数ユニット23からの入力を出力とし、これが、暗号処理ユニット16の出力となる。
プロセッサ11は、暗号処理ユニット16が出力するデータをセキュアメモリ12に格納していく(92)。
この時、プロセッサ11はセキュアな動作モードでなければならない。これは、セキュアメモリ12に格納するデータは復号化したものであり、機密性が高くなっているからである。
暗号処理ユニット16に1ページ分(2048バイト)の暗号化データが入力された後(すなわちセキュアメモリ12に1ページ分の復号化データが格納された後)、続いて不揮発メモリ15から暗号化されたハッシュ値を格納した冗長部(64)が読み出されはじめる。この時点で暗号処理ユニット16のハッシュ関数ユニット23では、入力されたデータに対するハッシュ値(64バイト)が確定している。
不揮発メモリ15から読み出された暗号化ハッシュ値は、冗長部なので暗号処理ユニット16の入力インターフェース21によってハッシュ関数ユニット23で復号処理される。ハッシュ関数ユニット23は、復号化されたハッシュ値とハッシュ関数の結果と比較し、その結果をプロセッサ11にハードウエア割込みなどの方法で通知する。
比較結果が一致しなかった場合、プロセッサ11は、1ページ分再度読み出しを行う。再度読み出しデータの比較結果が再度一致しないことが特定回数続いたら、不揮発メモリ15の内容が破壊または改竄されていると判断する。
以上説明したように、本実施形態によれば、不良アクセスの管理が必要である不揮発メモリからセキュアなデータロードを行う場合、不揮発メモリのアクセス単位の一部である冗長部にデータ領域の暗号化前のデータに対して求めたハッシュ値を格納することで、暗号処理に必要なデータアクセスだけで、不良アクセスと改竄の判断をかねること可能とした。
従来技術では不良アクセス管理のため一旦作業メモリに展開するという、暗号処理とは無関係なデータアクセスが発生していたが、本発明では、暗号処理に必要なデータアクセスだけに抑えることができ、データロード時間の短縮と消費電力の削減をすることができる。
本発明は、不良アクセス管理が必要である不揮発メモリからセキュアなデータロードを行う場合、暗号処理に必要なデータアクセスだけに抑えることで、データロード時間の短縮と消費電力の削減をすることができ、実施例で説明したように、データロードを行う不揮発メモリがNANDフラッシュROMの場合、従来手法に対する優位性がでてくる。
例えば近年、携帯電話に代表される携帯端末機器では、コンテンツ保護されたデータ(例えば配信音楽やIPパケット)やセキュアなプログラム(例えばDRM制御)など暗号化されたデータのロード処理が増加傾向にある。
高機能化・他機能化によってデータとプログラムを格納する不揮発メモリに要求される容量も年々増加しており、現在主流であるNOR型フラッシュROMは、信頼性は高いが小容量で高価であるためコストアップが大きな問題となっている。コストアップを回避するために、信頼性は低いが大容量で安価であるNAND型フラッシュROMに移行していくことが将来予想される。
このような背景を踏まえると、本発明のセキュアなデータロードを提供する装置は、携帯電話に代表される携帯端末への搭載が有用である。
また、デジタルTVやDVDレコーダでもスクランブルされたデータだけでなく、外部メディア(例えばSDカード)に格納されたコンテンツ保護されたデータを取り扱うようになって暗号化されたデータは増加傾向にあるので、これらへの搭載も有用である。
本発明のセキュアなロードシーケンスを提供する装置の一例を示す図 セキュアなロードシーケンスを提供する装置10の暗号処理ユニット16の構成例を示すブロック図 一般的なセキュアなロードシーケンスの処理ステップを示す図 本発明の実施形態による不揮発メモリ15の一例であるNAND型フラッシュROMのページ構造とブロック構造の具体例を示した図 本発明の実施形態による不揮発メモリ15の一例であるNAND型フラッシュROMの一般的な冗長部の使われ方を示した図 従来技術のセキュアなロードシーケンス処理において、暗号化されたデータを格納している不揮発メモリが、NOR型フラッシュROMのような不良アクセスの管理を必要としない場合のデータアクセスを示した図 従来技術のセキュアなロードシーケンス処理において、暗号化されたデータを格納している不揮発メモリが、NAND型フラッシュROMのような不良アクセスの管理を必要とする場合のデータアクセスを示した図 本発明の実施形態による不揮発メモリ15の一例であるNAND型フラッシュROMの本発明での冗長部の使われ方を示した図 本発明における転送終了付近以外で中断指示が発生した時の暗号処理するデータの切り替わりを示す図 従来のセキュアなデータロードを提供する装置を示すブロック図
符号の説明
10 セキュアなデータロードを提供する装置
11 プロセッサ
12 セキュアメモリ
13 システムメモリ
14 バス
15 不揮発メモリ
16 暗号処理ユニット
21 入力インターフェース
22 復号化ユニット
23 ハッシュ関数ユニット
24 出力インターフェース

Claims (10)

  1. セキュアなメモリと、
    前記セキュアなメモリへのアクセス手段を持つプロセッサであって、不揮発なメモリにアクセス可能な状態で接続されるとともに、前記セキュアなメモリ内での使用を目的として前記不揮発なメモリからデータを読み出すことが可能なプロセッサと、
    前記プロセッサに動作可能に接続されるとともに、前記不揮発なメモリから読み出されるデータに対する暗号処理が可能な暗号処理ユニットと、
    を含み、
    前記不揮発なメモリは、読み取り可能なデータ領域と、前記データ領域の付属情報を格納する冗長部からなるページが複数も設けられた記憶媒体であって、
    前記不揮発なメモリはさらに、前記データ領域に暗号化されたデータを含む記憶媒体であって、
    前記プロセッサは、前記暗号化されたデータを前記不揮発なメモリから読み出して前記暗号処理ユニットを使って復号化し、その復号化したデータを前記セキュアなメモリ内に保存する機能を有し、
    前記暗号処理ユニットは前記暗号化されたデータを復号化したデータが真正であることを確認する機能を有することを特徴とする、セキュアなロードシーケンスを提供する装置。
  2. 前記暗号処理ユニットは、前記不揮発なメモリの前記データ領域に格納される前記暗号化されたデータだけでなく、前記不揮発なメモリの前記冗長部に格納される前記データ領域の付属情報も取り扱うことができることを特徴とする請求項1に記載の、セキュアなロードシーケンスを提供する装置。
  3. 前記暗号処理ユニットはさらに、前記暗号化されたデータを復号化したデータのハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と前記記憶媒体の前記冗長部の内容とを比較することによって、前記データが真正であることを確認する機能を有することを特徴とする請求項1に記載の、セキュアなロードシーケンスを提供する装置。
  4. 前記不揮発なメモリの前記冗長部は、前記暗号化されたデータが暗号化される前のデータのハッシュ値から生成されたデータが保存されることを特徴とする請求項1に記載の、セキュアなロードシーケンスを提供する装置。
  5. 前記プロセッサはさらに、セキュアな動作モードに入る機能を有し、前記セキュアなメモリには前記セキュアな動作モードでのみアクセス可能であることを特徴とする請求項1に記載の、セキュアなロードシーケンスを提供する装置。
  6. 暗号化されたデータを記憶媒体から読み出すステップと、
    プロセッサの暗号処理機能を用いて前記暗号化されたデータを復号化し、復号化したデータの真性を確認するための計算をするステップと、
    前記復号化したデータを前記プロセッサに関連付けられたセキュアな記憶領域内に保存するステップと、
    前記記憶媒体から読み出したデータに含まれる真性を確認する情報と、前記暗号処理機能が計算した真性を確認する情報を使って、前記復号化したデータが真正であることを確認するステップと、
    を含むことを特徴とする、セキュアなロードシーケンスを提供する方法。
  7. 前記記憶媒体は、読み取り可能なデータ領域と、前記データ領域の付属情報を格納する冗長部からなるページが複数設けられ、前記データ領域に前記暗号化されたデータを格納することを特徴とする請求項6に記載の、セキュアなロードシーケンスを提供する方法。
  8. 前記復号化したデータが真正であることを確認するステップは、ハッシュ関数を実行することでハッシュ結果を生成し、さらにそのハッシュ結果と前記記憶媒体の前記冗長部の内容とを比較することを特徴とする請求項6に記載の、セキュアなロードシーケンスを提供する方法。
  9. 前記記憶媒体の前記冗長部は、前記暗号されたデータが暗号化される前のハッシュ値が保存されることを特徴とする請求項6に記載の、セキュアなロードシーケンスを提供する方法。
  10. 前記プロセッサはさらに、セキュアな動作モードに入るステップを含むことを特徴とする請求項6に記載の、セキュアなロードシーケンスを提供する方法。
JP2007247041A 2007-09-25 2007-09-25 セキュアなロードシーケンスを提供する方法および装置 Pending JP2009080515A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007247041A JP2009080515A (ja) 2007-09-25 2007-09-25 セキュアなロードシーケンスを提供する方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007247041A JP2009080515A (ja) 2007-09-25 2007-09-25 セキュアなロードシーケンスを提供する方法および装置

Publications (1)

Publication Number Publication Date
JP2009080515A true JP2009080515A (ja) 2009-04-16

Family

ID=40655244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007247041A Pending JP2009080515A (ja) 2007-09-25 2007-09-25 セキュアなロードシーケンスを提供する方法および装置

Country Status (1)

Country Link
JP (1) JP2009080515A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015508527A (ja) * 2011-12-21 2015-03-19 インテル・コーポレーション 安全なダイレクトメモリアクセス

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015508527A (ja) * 2011-12-21 2015-03-19 インテル・コーポレーション 安全なダイレクトメモリアクセス

Similar Documents

Publication Publication Date Title
US8966284B2 (en) Hardware driver integrity check of memory card controller firmware
US8332652B2 (en) Computing device that securely runs authorized software
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
JP4157595B2 (ja) セキュア処理装置、方法、プログラム
KR101014179B1 (ko) 플래시 대용량 저장 메모리를 가진 보안 장치를 위한 보안 및 적응형 시스템 구조
US8127144B2 (en) Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit
US10797857B2 (en) Data interleaving scheme for an external memory of a secure microcontroller
JP2010509690A (ja) 記憶装置のセキュリティを確保する方法とシステム
KR100973733B1 (ko) 메모리 카드 제어기 펌웨어의 하드웨어 드라이버 무결성체크
CN109445705B (zh) 固件认证方法及固态硬盘
WO2009156302A1 (en) Electronic device and method of software or firmware updating of an electronic device
JP2006164273A (ja) 保安ブート装置及び方法
EP2343662B1 (en) Method of and apparatus for storing data
EP2270706B1 (en) Loading secure code into a memory
US11232194B2 (en) Method for executing a binary code of a secure function with a microprocessor
US9935768B2 (en) Processors including key management circuits and methods of operating key management circuits
US20090193261A1 (en) Apparatus and method for authenticating a flash program
EP2270707B1 (en) Loading secure code into a memory
US8898807B2 (en) Data protecting method, mobile communication device, and memory storage device
JP4791250B2 (ja) マイクロコンピュータおよびそのソフトウェア改竄防止方法
JP2008541251A (ja) データの安全な処理
KR20090014828A (ko) 에러 정정 코드를 암호화하는 플래시 메모리 시스템 및플래시 메모리 시스템의 암호화 방법
CN113177201A (zh) 程序校验、签名方法及装置、soc芯片
US20100194609A1 (en) Method and Device For Coding Data Words
CN107861892B (zh) 一种实现数据处理的方法及终端