JP2004023351A - マイクロコンピュータのプログラム保護方法 - Google Patents
マイクロコンピュータのプログラム保護方法 Download PDFInfo
- Publication number
- JP2004023351A JP2004023351A JP2002174114A JP2002174114A JP2004023351A JP 2004023351 A JP2004023351 A JP 2004023351A JP 2002174114 A JP2002174114 A JP 2002174114A JP 2002174114 A JP2002174114 A JP 2002174114A JP 2004023351 A JP2004023351 A JP 2004023351A
- Authority
- JP
- Japan
- Prior art keywords
- program
- key
- data
- area
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Microcomputers (AREA)
Abstract
【解決手段】メモリ2に格納されたプログラムの少なくとも一つの領域を暗号化し、その復号化に必要なキーと共にメモリ2に格納し、暗号化された領域がアクセスされた際には、前記キーを用いて復号化回路5で復号化し、復号化されたプログラムデータをCPU1に出力するようにする。
【選択図】 図1
Description
【発明の属する技術分野】
この発明は、マイクロコンピュータシステムにおいて、メモリに格納されたプログラムの物理的な解析を困難にすることにより、保護する方法に関する。
【0002】
【従来の技術】
従来のマイクロコンピュータシステムにおいては、暗号化されていないプログラムの内容を第三者が解析できないようにするために、プログラムの内容がチップの端子を介して出力されないようにしていたが、探針法(顕微鏡下で微細な電極を配線に当てて信号を観測する操作)等の物理的な解析手段に対する考慮が欠けていたため、データ出力端子に電極を取り付け、何らかの方法でメモリにアドレスを与えることができれば、プログラムの内容を抽出される危険性があった。
【0003】
しかしながら、ICカードなどの金銭や個人のプライバシーに関する情報が蓄積されるセキュリティ向けのマイクロコンピュータシステムにおいては、第三者によりプログラムの解析が行われると、データの改ざんなどの不正行為が行われる可能性があり、プログラムの保護は不可欠のものとなる。
【0004】
この発明は、上記従来の課題を解決して、第三者によるプログラムの解析を困難とするマイクロコンピュータのプログラム保護方法を提供することを目的とする。
【0005】
【課題を解決するための手段】
その為に、この発明のマイクロコンピュータのプログラム保護方法においては、プログラムの少なくとも一つの領域を暗号化し、その復号化に必要なキーと共にメモリに格納し、前記暗号化された領域がアクセスされた際には、前記キーを用いて復号化するようにしている。
【0006】
【発明の実施の形態】
以下、この発明の実施の形態について図面を参照しながら説明する。尚、図中、各構成成分の大きさ、形状及び配置関係は、この発明が理解出来る程度に概略的に示してあるにすぎず、また、以下に説明する数値的条件は、単なる例示にすぎない。
【0007】
[第1の実施の形態]
図1は、この発明の第1の実施の形態を示すマイクロコンピュータシステムのブロック図であり、このシステムは、プログラムを実行する主体であるCPU1、キー(復号鍵)となるデータと、そのキーによって復号可能となる暗号化されたプログラムを保持するメモリ2、システムリセット後などの適切なタイミングでメモリ2からキーデータを読み出す制御を行う制御回路3、メモリ2から読み出されたキーデータを保持するレジスタ4、レジスタ4に格納されたキーデータを用いてメモリ2から出力されるデータを復号化処理して復号化データをCPU1に出力する復号化回路5、及びデータバス6を含んでいる。
【0008】
メモリ2は、CPU1から出力されるアドレス信号及び制御信号に基づいて、キーデータ或いはアドレス値で示されるプログラムデータをデータバス6に出力する。
【0009】
暗号化及び復号化方法としては、様々なものが適用できる。回路として実現が容易な一例としては、プログラムデータとキーデータとのビット毎の排他的論理和をとることにより暗号化する方法があり、復号化も同様に実現できる。
【0010】
このほかにも、例えば、(a)プログラムデータの特定のビットと他のビットを入れ替える方法、(b)プログラムデータの特定のビットを反転する方法、(c)プログラムデータのビットパタンを右方向或いは左方向に回転させる方法(最上位ビットは最下位ビットと隣接しているものと見なす)、(d)上述の方法を複数組み合わせる方法、等が考えられる。
【0011】
以下、このマイクロコンピュータシステムのシステムリセット後の動作を説明する。
【0012】
(1)制御回路3は、メモリ2に対してキーデータ読み出しを要求し、この間CPU1はウエイト状態(プログラムの実行待ち状態)となる。
(2)メモリ2からデータバス6にキーデータが出力され、レジスタ4は、データバス6上のデータを保持する。
(3)制御回路3は、CPU1のウエイト状態を解除し、CPU1はプログラムの実行可能状態となる。
(4)CPU1が命令をフェッチするたびに復号化回路5は、レジスタ4に格納されたキーデータとデータバス6上のデータの間で復号化演算を行い、復号化されたデータをCPU1に出力する。
【0013】
このように、第1の実施の形態によれば、メモリ2のデータ出力端子に現れるのは暗号化されたプログラムデータであり、たとえ第三者が探針によりメモリの出力端子からデータを抽出しようとしても、プログラムの内容を知ることは出来ないので、従来のシステムと比較してプログラムの機密性を向上させることが出来る。
【0014】
[第2の実施の形態]
図2は、この発明の第2の実施の形態を示すマイクロコンピュータシステムのブロック図であり、第1の実施の形態と構成上の異なる点は、メモリ2に格納する暗号化領域を1〜Nの複数の領域に分割し、各領域に対応したキーデータ1〜Nを備えている点、及び暗号化された各領域からデータを読み出す際に、それぞれに対応したキーデータ1〜Nを格納する為のレジスタ4−1〜4−Nを設け、更にアドレスデコーダ7を用いてアドレスを解読することにより読み出された領域に対応するレジスタ4を選択することが出来るようにマルチプレクサ8を含んだ構成となっている点である。
【0015】
暗号化・復号化処理の方法については、第1の実施の形態と同様の方法を用いることが出来る。
【0016】
以下、このマイクロコンピュータシステムのシステムリセット後の動作を説明する。
【0017】
(1)制御回路3は、メモリ2に対してキーデータ読み出しを要求し、この間CPU1はウエイト状態(プログラムの実行待ち状態)となる。
(2)メモリ2からデータバス6にキーデータが出力され、レジスタ4は、暗号化されたプログラムの各領域に対応したデータバス6上のキーデータをそれぞれのレジスタに保持する。
(3)制御回路3は、CPU1のウエイト状態を解除し、CPU1はプログラムの実行可能状態となる。
(4)CPU1が命令をフェッチするたびに、アドレスデコーダ7とマルチプレクサ8によって、レジスタ4−1〜4−Nのうち、アドレス値により指定されたプログラム領域に対応するレジスタが選択され復号化回路にキーデータが出力される。
(5)復号化回路5は、キーデータとデータバス6上のデータの間で復号化演算を行い、復号化されたデータをCPU1に出力する。
【0018】
このように、第2の実施の形態によれば、プログラム領域を複数の領域に分割し、それぞれの領域を別々のキーで暗号化・復号化処理することで、各プログラム領域に関する知識が無い限り、全プログラム領域の復元は困難となる。何故なら、キーデータは、各領域毎に異なっているため、たとえ1ヶ所の領域のプログラムが解読されたとしても、その解読キーを用いて他の領域を解読することができないからである。これにより、プログラムの機密性をより高めることが可能となる。
【0019】
尚、本発明は前述の各実施の形態に限定されるものではなく、本発明の趣旨に基づいて種々変形させることが可能である。
【0020】
(1)キーデータ自体を保護するために、キーデータを暗号化してメモリに保存する。この場合、キーデータを復号化するキー及び復号化方法は組み合わせ回路として構成することで実現する。通常、第三者がLSI上の組み合わせ回路中の復号回路を特定し、さらに復号化方法を解析するのは、メモリブロックの探針よりも困難であると考えられる。この結果、プログラムの機密性は更に向上する。尚、キーデータの暗号化・復号化には、プログラム本体のものと同じアルゴリズムを用いることもできる。
【0021】
(2)第1の実施の形態では、プログラム領域の全領域を暗号化の対象としたが、一部の領域をあえて暗号化しない方法も可能である。例えば、割り込みベクトル領域や、システムリセットの直後にCPUが実行するごく小さなプログラム領域等は、通常分岐命令や制御命令が置かれることが多く、これらの領域に格納されたプログラムは、仮に解読されたとしても、プログラムの本体が暗号化されていれば、本質的な影響は小さいと考えられるからである。逆に、このようにすることで、推測されやすい、或いは推測されてもかまわないと考えられる領域はあえて暗号化の対象から除外することで、プログラムが暗号化されているか否かの判断自体を困難なものとすることが出来、プログラムの機密性を更に向上させる効果がある。
【0022】
【発明の効果】
以上詳細に説明したように、本発明によれば、プログラムの少なくとも一つの領域を暗号化し、その復号化に必要なキーと共にメモリに格納し、暗号化された領域がアクセスされた際には、前記キーを用いて復号化するようにしたので、従来のシステムと比較してプログラムの機密性を向上させることが出来る。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態を示すマイクロコンピュータシステムのブロック図である。
【図2】本発明の第2の実施の形態を示すマイクロコンピュータシステムのブロック図である。
【符号の説明】
1 CPU
2 メモリ
3 制御回路
4、4−1〜4−N レジスタ
5 復号化回路
6 データバス
7 アドレスデコーダ
8 マルチプレクサ
Claims (3)
- プログラムの少なくとも一つの領域を暗号化し、その復号化に必要なキーと共にメモリに格納し、前記暗号化された領域がアクセスされた際には、前記キーを用いて復号化することを特徴とするマイクロコンピュータのプログラム保護方法。
- 前記キーは、暗号化されたキーであることを特徴とする請求項1に記載のマイクロコンピュータのプログラム保護方法。
- プログラム領域を、マイクロコンピュータシステムの初期化に必要な第一のプログラム領域とそれ以外の第二のプログラム領域に分割し、該第二のプログラム領域のみを暗号化し、初期化処理が終了して前記第二のプログラム領域に制御が移行するまでの間に復号化キーを取得することを特徴とする請求項1又は2のいずれか1項に記載のマイクロコンピュータのプログラム保護方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002174114A JP2004023351A (ja) | 2002-06-14 | 2002-06-14 | マイクロコンピュータのプログラム保護方法 |
US10/365,460 US20030233560A1 (en) | 2002-06-14 | 2003-02-13 | Method for protecting program in microcomputer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002174114A JP2004023351A (ja) | 2002-06-14 | 2002-06-14 | マイクロコンピュータのプログラム保護方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004023351A true JP2004023351A (ja) | 2004-01-22 |
Family
ID=29727951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002174114A Pending JP2004023351A (ja) | 2002-06-14 | 2002-06-14 | マイクロコンピュータのプログラム保護方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20030233560A1 (ja) |
JP (1) | JP2004023351A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009020871A (ja) * | 2007-05-31 | 2009-01-29 | Ntt Docomo Inc | 外部記憶装置 |
JP2011008733A (ja) * | 2009-06-29 | 2011-01-13 | Toshiba Storage Device Corp | 磁気ディスク装置 |
JP2014120947A (ja) * | 2012-12-17 | 2014-06-30 | Fuji Xerox Co Ltd | 情報処理装置および情報処理プログラム |
JP2016508629A (ja) * | 2013-01-18 | 2016-03-22 | アバブ セミコンダクタ カンパニー リミテッド | 不揮発性メモリのバイナリデータの保護方法及びその装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4344127A (en) * | 1980-08-28 | 1982-08-10 | The Bendix Corporation | Microprocessor based process control system |
US5553095A (en) * | 1993-04-28 | 1996-09-03 | Allen-Bradley Company, Inc. | Method and apparatus for exchanging different classes of data during different time intervals |
DE19634341A1 (de) * | 1996-08-24 | 1998-02-26 | Bosch Gmbh Robert | Verfahren zum Schutz von speicherprogrammierten Steuerungen vor einem Überschreiben |
DE19701939C2 (de) * | 1997-01-21 | 1998-11-12 | Fraunhofer Ges Forschung | Verfahren zum Erfassen einer an einer digitalen, bearbeiteten Information ausgeübten Manipulation |
US6018712A (en) * | 1997-12-19 | 2000-01-25 | Pactong; Alberto | Method and apparatus for remote program execution to use in computer software protection without the use of encryption |
US7005733B2 (en) * | 1999-12-30 | 2006-02-28 | Koemmerling Oliver | Anti tamper encapsulation for an integrated circuit |
US20010056541A1 (en) * | 2000-05-11 | 2001-12-27 | Natsume Matsuzaki | File management apparatus |
JP4153653B2 (ja) * | 2000-10-31 | 2008-09-24 | 株式会社東芝 | マイクロプロセッサおよびデータ保護方法 |
-
2002
- 2002-06-14 JP JP2002174114A patent/JP2004023351A/ja active Pending
-
2003
- 2003-02-13 US US10/365,460 patent/US20030233560A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009020871A (ja) * | 2007-05-31 | 2009-01-29 | Ntt Docomo Inc | 外部記憶装置 |
JP2011008733A (ja) * | 2009-06-29 | 2011-01-13 | Toshiba Storage Device Corp | 磁気ディスク装置 |
JP2014120947A (ja) * | 2012-12-17 | 2014-06-30 | Fuji Xerox Co Ltd | 情報処理装置および情報処理プログラム |
JP2016508629A (ja) * | 2013-01-18 | 2016-03-22 | アバブ セミコンダクタ カンパニー リミテッド | 不揮発性メモリのバイナリデータの保護方法及びその装置 |
Also Published As
Publication number | Publication date |
---|---|
US20030233560A1 (en) | 2003-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10095890B2 (en) | Secure processor and a program for a secure processor | |
US8473754B2 (en) | Hardware-facilitated secure software execution environment | |
Kuhn | Cipher instruction search attack on the bus-encryption security microcontroller DS5002FP | |
US8191155B2 (en) | Microprocessor | |
US8799673B2 (en) | Seamlessly encrypting memory regions to protect against hardware-based attacks | |
US10019603B2 (en) | Secured memory system and method therefor | |
US9559848B2 (en) | Method, apparatus, and instructions for safely storing secrets in system memory | |
US8745407B2 (en) | Virtual machine or hardware processor for IC-card portable electronic devices | |
US10389530B2 (en) | Secure method for processing content stored within a component, and corresponding component | |
JP4591163B2 (ja) | バスアクセス制御装置 | |
JP2007251783A (ja) | 半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置 | |
Khan et al. | Utilizing and extending trusted execution environment in heterogeneous SoCs for a pay-per-device IP licensing scheme | |
JP4062604B2 (ja) | データ処理デバイス | |
JP2004054834A (ja) | プログラム開発方法、プログラム開発支援装置およびプログラム実装方法 | |
JP2003263617A (ja) | 無許可アクセスに対する回路の安全性を向上させる方法及び装置 | |
JP2002244989A (ja) | デバイスドライバ作動方法 | |
JPH08185361A (ja) | 半導体集積回路装置 | |
JP2004023351A (ja) | マイクロコンピュータのプログラム保護方法 | |
KR101475821B1 (ko) | 시스템 온 칩에서 암호화 방법 및 장치 | |
JP4847827B2 (ja) | アクセス制御装置 | |
JP2002244757A (ja) | 半導体回路 | |
WO2015157842A1 (en) | Secured memory system and method therefor | |
JP2008217579A (ja) | マイクロコントローラ | |
JP2004280678A (ja) | データ処理装置、およびデータ処理方法 | |
JP2004334281A (ja) | Icカード及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050516 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060923 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20060929 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20061013 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080311 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080617 |