JP2004023351A - マイクロコンピュータのプログラム保護方法 - Google Patents

マイクロコンピュータのプログラム保護方法 Download PDF

Info

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
Application number
JP2002174114A
Other languages
English (en)
Inventor
Mitsuhiro Watanabe
渡辺 充博
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2002174114A priority Critical patent/JP2004023351A/ja
Priority to US10/365,460 priority patent/US20030233560A1/en
Publication of JP2004023351A publication Critical patent/JP2004023351A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection 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

【0001】
【発明の属する技術分野】
この発明は、マイクロコンピュータシステムにおいて、メモリに格納されたプログラムの物理的な解析を困難にすることにより、保護する方法に関する。
【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. プログラムの少なくとも一つの領域を暗号化し、その復号化に必要なキーと共にメモリに格納し、前記暗号化された領域がアクセスされた際には、前記キーを用いて復号化することを特徴とするマイクロコンピュータのプログラム保護方法。
  2. 前記キーは、暗号化されたキーであることを特徴とする請求項1に記載のマイクロコンピュータのプログラム保護方法。
  3. プログラム領域を、マイクロコンピュータシステムの初期化に必要な第一のプログラム領域とそれ以外の第二のプログラム領域に分割し、該第二のプログラム領域のみを暗号化し、初期化処理が終了して前記第二のプログラム領域に制御が移行するまでの間に復号化キーを取得することを特徴とする請求項1又は2のいずれか1項に記載のマイクロコンピュータのプログラム保護方法。
JP2002174114A 2002-06-14 2002-06-14 マイクロコンピュータのプログラム保護方法 Pending JP2004023351A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 株式会社東芝 マイクロプロセッサおよびデータ保護方法

Cited By (4)

* Cited by examiner, † Cited by third party
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