JP2007251783A - 半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置 - Google Patents

半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置 Download PDF

Info

Publication number
JP2007251783A
JP2007251783A JP2006074875A JP2006074875A JP2007251783A JP 2007251783 A JP2007251783 A JP 2007251783A JP 2006074875 A JP2006074875 A JP 2006074875A JP 2006074875 A JP2006074875 A JP 2006074875A JP 2007251783 A JP2007251783 A JP 2007251783A
Authority
JP
Japan
Prior art keywords
data
semiconductor device
scramble
key
key data
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
JP2006074875A
Other languages
English (en)
Inventor
Shinya Shimazaki
真也 嶋崎
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics 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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2006074875A priority Critical patent/JP2007251783A/ja
Priority to US11/723,206 priority patent/US20070217608A1/en
Publication of JP2007251783A publication Critical patent/JP2007251783A/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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】バスプロービング耐性に優れる半導体装置の被処理データの暗号化方法、及びその半導体装置等を提供する。
【解決手段】本発明の半導体装置の被処理データの暗号化方法は、暗号化の鍵となる鍵データの初期値は、CPUの外部の記憶部に置き、鍵データの生成及び鍵データを用いた被処理データのスクランブル/デクスクランブル処理をCPU内部の汎用レジスタを用いて、またはハードウエアとしてのスクランブル/デスクランブル回路で行うことを特徴とする。このため、周辺バスに鍵データが流出しないのでバスプロービング耐性に優れる。
【選択図】図1

Description

本発明は、半導体装置内部のデータ保護回路及びその方法に関し、特に暗号回路で使用する秘密鍵や秘密鍵を生成する乱数の保護方法、保護プログラム、保護回路、及びそれらを備える半導体装置に関する。
半導体装置は、認証処理、暗号処理など秘密保持が重要となる分野に今日幅広く用いられている。このため、暗号回路で使用する秘密鍵や秘密鍵などを生成するのに使用する乱数のように半導体装置の外へ漏洩すると半導体装置のセキュリティ低下につながるデータ(以下セキュリティ関連データともいう)の保護は非常に重要である。
一方、これらセキュリティ関連データを窃取しようとする種々の試みが知られている。例えば、その一例はICカードなどに外部端子からロジック・アナライザなどの機器を用いて認証動作過程などでの信号などをモニタする方法である。これらの方法のなかでも、半導体のモールド樹脂などの外装をはがし、半導体チップを露出させ、実際に内部バスにオシロスコープをあててデータを窃取する、いわゆるバスプローピングという手段は秘密データそのものを直接読み取ることが可能であるため注意が必要である。
従来から、バスプロービングに対しては、これが行われても元のデータ、つまり被処理データが分からないようにすべく、元のデータに対して、スクランブル用の鍵(以下、本明細書では鍵データともいう)を用いてスクランブル処理を行い、元のデータを得たい場合には、その鍵データを用いてデスクランブル処理を行うことが良く知られている。この技術は例えば特許文献1や2などに開示されている。
特許文献1には、4つの線形フィードバックレジスタ(Linear Feedback Shift Register、以下LFSRと略称する)とLFSRの出力を非線形変換する非線形変換部を用いて、スクランブル/デスクランブル用に使用する乱数性の高い鍵データを生成する技術などが開示されている。また、特許文献2には、鍵データを生成する回路の構成に関して更に乱数性を向上させる技術が開示されている。なお、特許文献1も2も共に生成された鍵データとスクランブル/デスクランブル対象となるデータとをXOR(排他的論理和)演算することでデータのスクランブル/デクスランブルを行っている。
一方、特許文献3は、スクランブル用のキーデータ(鍵データ)のセキュリティを向上させるべく、暗号化用鍵データ読み出しステップを用いて、鍵データをメモリへ格納する技術などを開示している。このメモリに格納された鍵データを用いてスクランブル/デスクランブル対象のデータをXOR演算する技術が開示されている。
特開平6−342257号公報 特開平8−307411号公報 特開平7−28406号公報
従って、スクランブル/デスクランブル処理を非常に複雑なものとし、バスプロービングが行われ鍵データが漏洩しても、元のデータ、つまり被処理データの解読を困難にすることが好ましいが、こうしようとすると演算資源などの負荷が膨大になり、小型化、携帯化が要請されているICカードや携帯電話、携帯端末などのニーズに対応できなくなる。一方、演算資源などを考慮してスクランブル/デスクランブル処理をXOR演算など比較的簡単な演算処理で行うこととすると、鍵データが漏洩すると容易に元のデータがデスクランブルされる、つまり、解読されてしまう恐れがあった。
本発明は、これらの課題を解決する簡便なスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置などを提供しようとするものである。
本発明は半導体装置の被処理データのスクランブル/デスクランブル方法であって、スクランブル/デスクランブルの鍵となる鍵データの初期値は前記半導体装置のCPUの外部の記憶部に置き、前記初期値を用いた鍵データの生成及び前記鍵データを用いた前記被処理データのスクランブル処理及びデスクランブル処理を前記半導体装置内のCPU内部で行うこと、又は前記CPUと接続しているバスを介したスクランブル/デスクランブル回路内部で行うことを特徴とする。従って、バスプロービングの対象となる周辺バスに鍵データが流出することはないので、バスプロービング耐性に優れる。本発明の他の態様の記載は割愛する。
本発明を要説すると、本発明の第一の観点は、鍵データをCPUの内部、特に汎用レジスタへ保持すると共に、この鍵データを使い汎用レジスタを用いて被処理データ、つまり保護対象データのスクランブル/デスクランブル処理を行おうとするものである。また、第二の観点はこの考え方を活かしつつ、汎用レジスタを用いることに代えて鍵データが周辺バスなどへ流出せず、バスプロービング耐性には同様の効果を有するスクランブル/デスクランブル回路を用いようとするものである。
本発明によれば、バスプロービング対策に優れるスクランブル/デスクランブル方法などが得られる。
図1から図3を用いて本発明の第1の実施形態の概要を説明する。図1は、本発明の第1の実施形態の半導体装置のブロック図である。本発明の半導体装置1は、CPU10、RAM31、ROM1(第1ROM)32、入力インターフェイス(入力I/F)33、出力インターフェイス(出力I/F)34、CPU10と、RAM31、ROM1(第1ROM)32、入力I/F33、出力I/F34などとのデータ、アドレスなどのやり取りをする周辺バス21を一つの半導体チップに備える。また、入力I/F33、出力I/F34は、図示しない外部端子を介して外部とデータ等のやりとりを行う。なお、周辺バス21は、詳しくは図示しないアドレスバス、データバスなどを含めたバスの総称である。
CPU10は、その内部にCPUバス11、BCU(バス・コントロール・ユニット)12、PC(プログラム・カウンタ)13、レベルシフタ14、システムレジスタ15、汎用レジスタ16、ALU(演算装置)17、乗算器18、ROM2(第2ROM)19などを備える。なお、BCU12は、CPU内部と外部のRAM31、ROM1(第1ROM)32等と周辺バス21を介してのデータのやり取りや、CPUバス11を介してのデータのやり取りなどを制御している。システムレジスタ15とは、例えば、入出力レジスタや、累算用レジスタなど特定の機能を果たすためのレジスタの総称であり、換言すれば専用レジスタとも言える。汎用レジスタ16は、システムレジスタと異なり、機能が限定されていないレジスタをいう。また、ROM2(第2ROM)19は、汎用レジスタなどを用いて後述するスクランブル/デスクランブル動作を行わせるプログラムなどをCPU10内に格納しておくROMである。
次に図2のフローチャートを用いて第1の実施形態の半導体装置のスクランブル動作についてより詳しく説明する。以下の動作は主としてCPU10で行われる。汎用レジスタ16以外にもCPUの累算用レジスタなどのシステムレジスタ15やALU17、PC13などCPU10の種々の構成要素を用いて行われるが、これら他の要素の利用については、公知の手段であるので、詳しい記載は省略する。従って、以下の記載は主として汎用レジスタ16をどう使用するか、という点に着目して述べる。
まず、CPU10のスクランブル開始命令を受けて、図2に示すようにS1(ステップ1)でスクランブル開始動作が始まると、S2(ステップ2)に示すように鍵データの初期値(SEED)をRAM31に格納する。RAM31に格納する具体的な方法としては、外部からSEEDを入力I/F33を介して入力しRAM31に格納する方法と、あらかじめROM1(第1ROM)32にSEEDを格納しておき、これをRAM31に展開する方法などがある。次にS3(ステップ3)でCPU10のBCU12を介してRAM31に格納されているSEEDをCPU10の汎用レジスタ16にセットする。具体的には、汎用レジスタ16の一部であり、鍵データ生成用に用いる汎用レジスタAにセットする。以下、この鍵データ生成用の汎用レジスタAを汎用レジスタの鍵データ生成領域ともいう。なお、後述するようにスクランブル/デスクランブル対象データを格納する他の汎用レジスタ、以下汎用レジスタBという、も本発明では用いる。
次にS4(ステップ4)では、CPU10が汎用レジスタAなどを用いて、スクランブル用の鍵を生成する。この具体的な一例は後述する。なお、1回目のスクランブル用の鍵は汎用レジスタAにセットしたSEEDを用いて生成するが、2回目のスクランブル鍵は1回目のスクランブル鍵から生成し、3回目は2回目のスクランブル鍵から生成される、というように以下同様な生成方法となる。引き続くS5(ステップ5)では、CPU10は、鍵データとスクランブル対象データとのスクランブルを行う。この具体例も後述する。なお、ここで、スクランブル対象データ、つまりスクランブルの対象となるデータは、例えばCPU10の演算結果などであり、CPU10の汎用レジスタBに格納されている。
次のS6(ステップ6)では、スクランブル対象データはまだあるかを調べ、あればS4(ステップ4)に戻り、スクランブル処理を行う。スクランブル処理の対象データがなくなったら、S7(ステップ7)でスクランブル処理を終了する。終了後のデータは、汎用レジスタBに格納される。次にS8(ステップ8)で汎用レジスタBに格納されているスクランブルデータ(スクランブル済みのデータ)を周辺バス21を介してRAM31などのCPU10外部のメモリへ格納する。これで一連のスクランブル動作が終わる。
図3は、スクランブルデータをデスクランブルする時の動作フローチャートを示す図である。全体的にスクランブル動作の場合とほぼ同様であるので、順を追った細かい説明は割愛する。なお、実施形態1では、後述するように、スクランブルとデスクランブルに用いる鍵データは同一である。また、S25でいうデスクランブル対象データは、デスクランブルの対象となるスクランブルデータ、つまりスクランブル済みのデータであり、汎用レジスタBへ格納されているものである。
S26(ステップ26)でデスクランブル対象データはまだあるか、を判断する。まだある場合は、S24(ステップ24)へ戻る。デスクランブル対象データがない場合はS27(ステップ27)でデスクランブル処理を終了する。そして、S28(ステップ28)でデスクランブルデータ、つまり、スクランブルの対象となったデータを汎用レジスタ16、具体的には汎用レジスタBに格納することで一連のデスクランブル動作が終了する。
次に図2のフローチャートで示したスクランブル動作について、1具体例をあげて図4から図7を用いて説明する。図4は、本発明の第1の実施形態に用いる鍵データ生成の説明用のイメージ図である。この鍵データ生成は具体的には、前述のようにCPU10のALU17などCPUの各構成要素と前述の汎用レジスタAなどを用いて行われる。ここでは、図に示すようにSEEDは2つある。鍵データ生成に際しては、生成する鍵データの推測が困難になるように、レジスタの値がそのまま鍵データとなるLFSR1と、LFSR1のシフトクロック数を制御するLFSR2とで構成することができる。LFSR1は初期値SEED1、LFSR2は初期値SEED2を使用する。なお、この例では、2つのSEEDを設けているが、3つ以上のSEEDとそれぞれに対応するLFSRを設けても良いのはいうまでもないことである。
なお、適宜、図2のフローチャートとも関連づけて説明する。以下の説明では理解の容易さのため、SEED2の具体的なデータを0x2、SEED1の具体的なデータを0x2ECAとして説明する。なお、0x2、0x2ECAの冒頭の0xは、引き続く2や2ECAが16進数であることを示す。
前述のように図2のステップ3で鍵データの初期値(SEED)を汎用レジスタ16、具体的には汎用レジスタAにセットする。汎用レジスタAは、更にLFSR1の領域と、LFSR2の領域とを有する。これらの領域に各SEEDを保持する。つまり、これにより、(0x2ECA)と、(0x2)をセットする。この様子を図5に示す。なお、図5で二重線で囲んだ部分はデータが汎用レジスタ16にあることを示す(後述する図6,7も同様である)。また、汎用レジスタ16、具体的には汎用レジスタAはこの例では、LFSR2が4ビット、LFSR1が16ビットであるので、16ビット又は16ビットよりも大きいビット数を有して構成されている。なお、LFSR1とLFSR2とは1つの汎用レジスタAで構成すること以外に汎用レジスタAと汎用レジスタCなど2つの汎用レジスタを用いて構成することも勿論可能である。
次に具体的なデータのスクランブル経過を図6、図7を用いて示す。まず、LFSR2を右へ1ビットシフトする(シフト結果は、0x1)。次にLFSR2の値だけ、つまり1回だけLFSR1をシフトし、そのときのLFSR1の値(0x1767)を鍵データとする。最後に鍵データとスクランブル対象データとをXOR演算によりスクランブルを行う。結果は、0x400Cとなる(図7)。このスクランブルデータは、CPUの汎用レジスタBからCPUバス11、周辺バス21を介して、RAM31などメモリへ格納される。なお、このスクランブルデータは、その後、必要に応じて出力I/F34を介して外部へ出力することができる。勿論、RAM31に格納したスクランブルデータを半導体チップ1内部に留めて、つまり、外部へ出さずに使用することも可能である。なお、図7に示すスクランブル対象データは、図2のS5(ステップ5)の説明の際に述べたように汎用レジスタ16の一部である汎用レジスタBに保持されており、これはCPU10の演算結果である。なお、以上のXOR演算などを含めたスクランブル/デスクランブル処理を行うプログラムなどは、前述したように、予めCPU10内のROM2(第2ROM)19に格納されている。
以上のように第1の実施形態では、CPUの汎用レジスタ16を用いて鍵データの作成及び前記鍵データを用いた前記被処理データのスクランブル処理及びデスクランブル処理を行った。なお、説明が遅れたが、第1の実施形態の半導体装置は、最近の半導体装置の一般的な設計方法であるレイアウトの自動生成を行っている。つまり、CPU10全体が自動レイアウトされているので、CPUバス11は外部からの検出は困難である。さらに鍵データを生成・保持している汎用レジスタ16は、物理的な場所の特定などが極めて困難であるので、バスプロービングされる恐れは事実上無いに等しい。このため、特別な暗号化処理や専用回路等を用いなくても秘匿性は大変高まる。
なお、第1の実施形態で述べたXOR演算はスクランブル/デスクランブル処理の一例であるが、周知のようにXOR演算は2回演算処理を行うことで元のデータに戻るという性質を有しており、この特性を用いてデータ・スクランブル/デスクランブルを行っているものである。しかし、他のスクランブル/デスクランブル手法をとってもよいことはいうまでもない。また、前述の説明でスクランブルデータは半導体装置1の外部へ出力されない場合もあると述べたが、例えば、RNG(ソフトウエア)で生成した乱数表をスクランブルしてRAM31上へ展開し、DSA(ソフトウエア)でRAM31上に展開されたスクランブルデータをデスクランブルして使用したりすることもできる。このような場合にはスクランブルデータは、出力I/F34から半導体装置の外部へ出力されることはない。また、スクランブル/デスクランブル処理のプログラムなどは、CPU10の内部に備えるROM2(第2ROM)19へ保存しておくと述べた。これは、プログラムの保護上、こうした方が好ましいという観点から選択した実施形態であるが、必ずしもROM2におくことに限定されず、ROM2を設けることをやめて、ROM1(第1ROM)32からスクランブル/デスクランブル処理のプログラムなどをCPU10に取り入れてそれを用いることもできる。
次に第2の実施形態について図8を用いて説明する。半導体装置では、CPUの汎用レジスタで処理できる規模はおのずから制約がある。そこで第2の実施形態では、第1の実施形態の思想を活かしつつ、対象データのスクランブル/デスランブル処理を行うハードウエア、つまり、スクランブル/デスランブル回路を用いることでCPUの汎用レジスタの使用負荷を更に軽減しようとするものである。
第2の実施形態の半導体装置2は、1チップの半導体装置、つまり半導体チップ2に特徴的な回路であるスクランブル/デスランブル回路40を備える。すなわち、鍵データを生成・保持するとともにデータのスクランブル、デスクランブルを行う回路を設けているのが特徴である。通常、半導体装置2は、1チップで構成する。また、図1とハードウエアとして同じ構成要素は同じ番号を付し、その説明を省略する。CPU20もCPU10と殆ど同じであるが、CPU10とは異なり汎用レジスタ16で鍵データの生成等をさせる訳ではなく、またこのためのプログラムを格納しておくROM2(第2ROM)19を有するわけでもないので、別の構成要素として別の番号としている。スクランブル/デスランブル回路40は、内部にレジスタ41、鍵データ生成部42、データ・スクランブル/デスクランブルを行うスクランブル部44とスクランブル/デスクランブルデータを保持するデータ保持部43とを有する。さらに、半導体装置2は、スクランブル対象データとなる、つまり、データの保護を行いたいマクロ回路46(いわゆるハード・マクロ回路であり、特定の演算処理を行う)を有し、マクロ回路46の演算結果が、スクランブル/デスクランブル回路40のデータ保持部43に入出力される構成となっている。
次に第2の実施形態の動作について第1の実施形態との比較も交え、簡単に説明する。前述のように第1の実施形態は、CPU10とその内部の汎用レジスタ16などでいわばソフトウエア的に処理していたものであるが、第2の実施形態はこれをスクランブル/デスクランブル回路40というハードウエアで構成した回路を用いて行うものである。CPU20の命令によりRAM31から周辺バス21を介して受け取った鍵データのSEEDを用いて、鍵データ生成部42で鍵データとして生成し、レジスタ41に保持する。このレジスタ41に保持された鍵データを用いて、スクランブル対象データ、デスクランブル対象データをスクランブル部44でスクランブル、デスクランブルなどの処理を行う。また、スクランブル対象データは、前述のようにマクロ回路46の演算結果をデータ保持部43に受け、それを保持する。これらはハードウエアとしての電子回路を用いて公知の手段により回路的に構成しておくことができる。
データ保持部43は具体的にはレジスタなどからなる。そういう点では単にレジスタと書いたほうが良いかもしれないが、スクランブル/デスクランブル処理の対象データを保持するということを分かりやすく説明するという観点からデータ保持部43と示した。また、鍵データ生成部42、スクランブル部44は、第1の実施形態の具体例図4から図7を実現するような回路構成、つまり、2つのLFSRからなる回路であって、第1のLFSRはレジスタの値が鍵データとなり、第2のLFSRは、その第1のLFSRのシフト数を制御する回路構成をとっている。この回路構成の具体的な手段、つまり、回路素子、トランジスタレベルにおける回路図は周知のLFSRの構成と同じなのでその説明は割愛する。また、LFSRは3つ以上を備えても良いのは勿論である。
以上述べたようにスクランブル/デスクランブル回路40を用いることにより、汎用レジスタの負荷を減らすことや高速処理が可能になるなどの特徴もあるので、こういった要求が高い場合には、スクランブル/デスクランブル回路40を用いるとより効果的である。なお、本実施例において、マクロ回路46は、ハードウエアで構成すると述べたが、ソフトウエアで構成しても良いのは勿論である。
以上、本発明を種々、説明したが、本発明は、以上の実施形態のほか、その技術思想の範囲内で種々の変形が可能であることは言うまでもないことである。例えば、実施形態1、実施形態2ともRAM31、ROM1(第1ROM)32などがCPU10又はCPU20と同一の半導体チップ内に備えられていることを説明したが、必ずしもこれらが同一のチップに備えられなくても良いのは勿論である。これは鍵データがCPUの外部の周辺バスを行き来するということがないからである。このように、本発明は開示した範囲に限定されるものでなく、本発明の趣旨の範囲で種々の変更が可能である。
本発明の第1の実施形態の半導体装置のブロック図である。 本発明の第1の実施形態のスクランブル時のフローチャート図である。 本発明の第1の実施形態のデスクランブル時のフローチャート図である。 本発明の第1の実施形態の1具体例の鍵データ生成のイメージ図である。 本発明の第1の実施形態の1具体例の鍵データ生成の途中図である。 本発明の第1の実施形態の1具体例の鍵データ生成の完成図である。 本発明の第1の実施形態の鍵データと対象データのスクランブルの1具体例である。 本発明の第2の実施形態の半導体装置のブロック図である。
符号の説明
1,2 半導体装置
10,20 CPU
11 CPUバス
12 BUP(バス・コントロール・ユニット)
13 PC(プログラム・カウンタ)
14 レベルシフタ
15 システムレジスタ
16 汎用レジスタ
17 ALU(算術論理ユニット)
18 乗算器
19 ROM2(第2ROM)
31 RAM
32 ROM1(第1ROM)
33 入力I/F
34 出力I/F
40 スクランブル/デスクランブル回路
41 レジスタ
42 鍵データ生成部
43 データ保持部
44 スクランブル部
46 マクロ回路

Claims (9)

  1. 半導体装置の被処理データのスクランブル/デスクランブル方法であって、スクランブル/デスクランブルの鍵となる鍵データの初期値は前記半導体装置のCPUの外部の記憶部に置き、前記初期値を用いた鍵データの生成及び前記鍵データを用いた前記被処理データのスクランブル処理及びデスクランブル処理を前記半導体装置内のCPU内部で行うこと、又は前記CPUと接続しているバスを介したスクランブル/デスクランブル回路内部で行うことを特徴とする半導体装置の被処理データのスクランブル/デスクランブル方法。
  2. 請求項1において、前記鍵データの生成及び保持は、前記CPU内部の汎用レジスタを用いて行うことを特徴とする半導体装置の被処理データのスクランブル/デスクランブル方法。
  3. 請求項1において、前記鍵データを用いた前記被処理データのスクランブル処理及びデスクランブル処理は、前記CPU内部の汎用レジスタを用いて行うことを特徴とする半導体装置の被処理データのスクランブル/デスクランブル方法。
  4. 半導体装置の被処理データをスクランブル/デスクランブルするプログラムであって、スクランブル/デスクランブルの鍵となる鍵データをCPU内部の汎用レジスタを用いて生成すると共に、前記鍵データを用いた前記被処理データのスクランブル処理及びデスクランブル処理を前記半導体装置内のCPU内部の汎用レジスタを用いて行うことを特徴とするプログラム。
  5. 半導体装置の被処理データのスクランブル/デスクランブル回路であって、
    スクランブル/デスクランブルの鍵となる鍵データの初期値を受け取り、前記初期値をもとにして鍵データの生成、保存を行う鍵データ生成部と、
    スクランブル対象データを受け取り、前記鍵データを用いてスクランブルを行うと共に、デスクランブル対象データを受け取り、前記鍵データを用いてデスクランブルを行うスクランブル部と、
    前記スクランブル対象データ及び前記デスクランブル対象データの一時保存部と、
    を有することを特徴とする半導体装置の被処理データのスクランブル/デスクランブル回路。
  6. 請求項5において、前記鍵データ生成部は、レジスタの値が鍵データとなる一のLFSRと、前記LFSRのシフト数を制御する他のLFSRとからなる鍵データ生成部であることを特徴とする半導体装置の被処理データのスクランブル/デスクランブル回路。
  7. 被処理データのスクランブル/デスクランブルを行う半導体装置であって、
    スクランブル/デスクランブルの鍵となる鍵データの初期値は、CPU外部の記憶部に置き、前記初期値を用いた鍵データの作成及び前記鍵データを用いた前記被処理データのスクランブル処理及びデスクランブル処理を前記半導体装置内のCPU内部の汎用レジスタを用いて行うことを特徴とする半導体装置。
  8. 請求項7において、前記鍵データを用いた前記被処理データのスクランブル処理及びデスクランブル処理のプログラムを前記CPU内部に備えたROMに格納していることを特徴とする半導体装置。
  9. 被処理データのスクランブル/デスクランブル回路を備える半導体装置であって、
    前記スクランブル/デスクランブル回路は、
    スクランブル/デスクランブルの鍵となる鍵データの初期値を受け取り、前記初期値をもとにして鍵データの生成、保存を行う鍵データ生成部と、
    スクランブル対象データを受け取り、前記鍵データを用いてスクランブルを行うと共に、デスクランブル対象データを受け取り、前記鍵データを用いてデスクランブルを行うスクランブル部と、
    前記スクランブル対象データ及び前記デスクランブル対象データの一時保存部と、
    を有することを特徴とする半導体装置。
JP2006074875A 2006-03-17 2006-03-17 半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置 Pending JP2007251783A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006074875A JP2007251783A (ja) 2006-03-17 2006-03-17 半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置
US11/723,206 US20070217608A1 (en) 2006-03-17 2007-03-16 Data scramble/descramble technique for improving data security within semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006074875A JP2007251783A (ja) 2006-03-17 2006-03-17 半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置

Publications (1)

Publication Number Publication Date
JP2007251783A true JP2007251783A (ja) 2007-09-27

Family

ID=38517847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006074875A Pending JP2007251783A (ja) 2006-03-17 2006-03-17 半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置

Country Status (2)

Country Link
US (1) US20070217608A1 (ja)
JP (1) JP2007251783A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301912B2 (en) * 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
US8059455B2 (en) * 2008-05-09 2011-11-15 Sandisk Il Ltd. Partial scrambling to reduce correlation
US8230158B2 (en) * 2008-08-12 2012-07-24 Micron Technology, Inc. Memory devices and methods of storing data on a memory device
KR20130060795A (ko) * 2011-11-30 2013-06-10 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 동작 방법
WO2016178728A1 (en) * 2015-05-01 2016-11-10 Marvell World Trade Ltd. Systems and methods for secured data transfer via inter-chip hopping buses
CN108073818B (zh) 2016-11-14 2021-07-09 华为技术有限公司 芯片的数据保护电路、芯片和电子设备
US10824737B1 (en) * 2017-02-22 2020-11-03 Assa Abloy Ab Protecting data from brute force attack
US10742237B2 (en) * 2018-06-21 2020-08-11 Western Digital Technologies, Inc. Memory device with adaptive descrambling

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1188859A (ja) * 1997-06-24 1999-03-30 Internatl Business Mach Corp <Ibm> コンピュータ・システムにおけるコピーライト・データの保護方法及び装置
WO2000057278A1 (en) * 1999-03-19 2000-09-28 Hitachi, Ltd. Information processing device
JP2001005731A (ja) * 1999-06-24 2001-01-12 Hitachi Ltd 情報処理装置、カード部材および情報処理システム
JP2001326631A (ja) * 2000-05-17 2001-11-22 Yazaki Corp カオス暗号通信方法、及びカオス暗号通信システム
JP2003152702A (ja) * 2001-11-16 2003-05-23 Hitachi Ltd 情報処理装置
JP2003521053A (ja) * 2000-01-18 2003-07-08 インフィネオン テクノロジーズ アクチェンゲゼルシャフト 暗号化を含むマイクロプロセッサシステム
JP2004361986A (ja) * 2003-04-08 2004-12-24 Sharp Corp スクランブル回路

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7269736B2 (en) * 2001-02-28 2007-09-11 Microsoft Corporation Distributed cryptographic methods and arrangements
JP4551802B2 (ja) * 2005-03-29 2010-09-29 株式会社東芝 プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1188859A (ja) * 1997-06-24 1999-03-30 Internatl Business Mach Corp <Ibm> コンピュータ・システムにおけるコピーライト・データの保護方法及び装置
WO2000057278A1 (en) * 1999-03-19 2000-09-28 Hitachi, Ltd. Information processing device
WO2000057290A1 (fr) * 1999-03-19 2000-09-28 Hitachi, Ltd. Processeur d'informations
JP2001005731A (ja) * 1999-06-24 2001-01-12 Hitachi Ltd 情報処理装置、カード部材および情報処理システム
JP2003521053A (ja) * 2000-01-18 2003-07-08 インフィネオン テクノロジーズ アクチェンゲゼルシャフト 暗号化を含むマイクロプロセッサシステム
JP2001326631A (ja) * 2000-05-17 2001-11-22 Yazaki Corp カオス暗号通信方法、及びカオス暗号通信システム
JP2003152702A (ja) * 2001-11-16 2003-05-23 Hitachi Ltd 情報処理装置
JP2004361986A (ja) * 2003-04-08 2004-12-24 Sharp Corp スクランブル回路

Also Published As

Publication number Publication date
US20070217608A1 (en) 2007-09-20

Similar Documents

Publication Publication Date Title
US20200034519A1 (en) Securing microprocessors against information leakage and physical tampering
JP5984625B2 (ja) 半導体装置及び暗号鍵書き込み方法
CN103210396B (zh) 包括用于保护敏感代码和数据的架构的方法和装置
JP2007251783A (ja) 半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置
US9235712B1 (en) Securing external memory data
EP3518128B1 (en) Enabling a software application to be executed on a hardware device
US10678707B2 (en) Data processing device and method for cryptographic processing of data
US20080025506A1 (en) Memory access control apparatus and method, and communication apparatus
JP2021505995A (ja) アドレススクランブルのための記憶機器及び方法
US10565381B2 (en) Method and apparatus for performing firmware programming on microcontroller chip, and associated microcontroller chip
US20170046280A1 (en) Data processing device and method for protecting a data processing device against attacks
US20200110906A1 (en) Encryption circuit for performing virtual encryption operations
CN108959129B (zh) 一种基于硬件的嵌入式系统机密性保护方法
JP2007328789A (ja) 入力データに関するアドレスを使用して入力データを符号化するための暗号システム、エラー検出回路、及びそれの動作方法
TWI517655B (zh) 密碼裝置以及密鑰保護方法
KR20180059217A (ko) 메모리 데이터 보안 처리 장치 및 방법
JP6293648B2 (ja) メモリデバイス
US20130198528A1 (en) Modifying a Length of an Element to Form an Encryption Key
JP2019121955A (ja) 半導体装置及び暗号鍵の生成方法
Konstantinou et al. Privacy-preserving functional IP verification utilizing fully homomorphic encryption
EP3907633B1 (en) System and method for obfuscating opcode commands in a semiconductor device
CN114254335A (zh) 基于gpu的加密方法、装置、加密设备及存储介质
EP3046095A1 (en) A method of protecting diverse applications stored on an integrated circuit using pufs
KR102218715B1 (ko) 채널별로 데이터를 보호할 수 있는 반도체 장치
CN113536331B (zh) 存储器和计算系统的数据安全

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070705

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090210

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100426

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110725

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111118