アプリケーションノート 2034

DS5250をDS5002のドロップインアップグレードとして使用する


要約: 80ピン、クワッドフラットパック(QFP)パッケージの高速セキュアマイクロコントローラDS5250はDS5002FPとピンコンパチブルの高性能アップグレードです。DS5002FPからDS5250にアップグレードすることによって、既存のハードウェア設計に変化を加える必要なく、より高性能かつ厳しいセキュリティ、そしてより拡張された機能セットが提供されます。

アップグレードの利点には、高速実行(DS5250では最大25MHz)、プログラムメモリのトリプルDES暗号の改善、RSAなどの公開かぎ暗号化アルゴリズムに対応する4096ビットモジュラーアクセラレータがあります。内部SRAMの拡張、クロックモードの追加、そしてデュアルデータポインタによって、アプリケーションコードの書き込み時の柔軟性が増します。DS5002FP用に開発されたソフトウェアは、最小限の変更だけで、DS5250に直接移植できます。

80ピン、クワッドフラットパック(QFP)パッケージの高速セキュアマイクロコントローラDS5250はDS5002FPとピンコンパチブルの高性能アップグレードです。DS5250は、DS5002と同じ機能セットをサポートするため、既存設計においてDS5002FPのドロップイン置換品として使用できます。DS5002FP用に書かれたソフトウェアは、ほとんどあるいは全く変更しないでDS5250に移植されるので、DS5250で機能を利用できるようにすると同時にシステム性能とセキュリティを容易に改善できます(表1)。

性能

DS5250は、DS5002FPよりも高い最大クロック周波数を備え、マシン当りのクロックサイクル数は少なくて済みます。そのストリームライン化されたコアは、DS5002FPが12クロックサイクルを必要とするのに比べ、わずか4クロックサイクルでシングルバイト命令を実行します。

1kBの命令キャッシュは、実行スピードにおいてプログラムメモリ暗号の影響を減らします。したがって、3DES暗号が有効の場合でもDS5250は、同じクロック周波数で動作するDS5002FPよりも性能が平均2.5倍改善されます。

表1. DS5002FPとDS5250の機能
DS5002FP
DS5250
FEATURES
PERFORMANCE
16MHz
25MHz
Maximum clock frequency
12
4
Clocks-per-machine cycle
25.2
8.4*
Average clocks per instruction
0.63
3.9*
Average MIPS
SECURITY
80-bit proprietary algorithm (single byte)
Single DES or 3DES (8-byte block)
Encryption of data in program memory (decrypted in parallel with program execution)
No
Yes
Separate encryption for program and MOVX memory
None
4096-bit MAA engine (1024-bit public key modular exponentiation in under 650ms)
Public key cryptography support
SDI pin
SDI pin: no battery/battery attach; low temperature (< 60°C)**
Destructive reset (DRS) triggers
No
Yes (optional)
Timed access on port write
48 bytes
1024 bytes
Vector RAM
No
Yes
Unique laser ID
No
Yes
Secure loader
FLEXIBILITY
1x, idle, stop
1x, idle, stop; 2x/4x (crystal multiplier); divide by 1024 (PMM); internal ring oscillator
Oscillator clock modes
1
2
Serial ports
2
3
Timers
2
6
External interrupts
No
Hardware and loader ROM
Flash memory support
No
Yes**
Real-time clock

*ゼロストレッチサイクル、16ビット標準アドレスモード。
**100ピンQFPのみ。

セキュリティ

DS5250の外部プログラムメモリは、シングルDESまたは3DES暗号を使って自動的にセキュア化されます。データメモリはオプションですが暗号化できます。DS5002FPについては、暗号化キーは、オンボードの乱数発生器から自動的に生成されロードされます。DS5250は、プログラムとデータメモリの暗号化に別キーを使うことで、また、バイト毎に暗号化するのではなくプログラムメモリを8バイトブロックで暗号化することで安全性を増します。

DS5250は、プログラムメモリ、データメモリ、またはその両方として使用可能な4kBの内部SRAMを提供します。オプションとして、1kBのSRAMは拡張スタックとして使うことも可能です。

DS5250は、DESと3DESに加え、4096ビットのMAAエンジンも備え、RSAのような公開かぎ暗号化アルゴリズムに対応します。オンチップのベクトルRAMの拡張(DS5002FPの48バイトに対し1024バイト)によって、割込みやリセットハンドラのような重要データとコードの保存のためのスペースも提供されます。

内部および外部メモリを保護するために、DS5250はいくつかの条件に基づき破壊リセット(DRS)を引き起こします。DS5002FPのように、SDIピンの信号はメモリ暗号化キー、ベクトルRAM、そしてあらゆる外部バッテリバックアップメモリを消去します。さらに、DS5250は、バッテリの不在または新たに取り付けられたバッテリに従いDRSを引き起こします。

DS5250のプログラマブルな回避機能により、短時間における異常なリセット数(ユーザ選択)をともなう試行錯誤の攻撃から保護されます。このセキュリティモードは、イネーブルされると、ユーザ選択した時間に従い遅延を増やしながら、繰り返されるリセット攻撃に対応します。受けたリセット数により、実行が再開される前の遅延時間は秒から時間、そして週に増やすことができます。最高のセキュリティレベルではDS5250は、ROM内の実行を永久的にロックすることでブルートフォース攻撃に対応し、製品が完全に消去されるまで使用できなくします。

攻撃に対するもう一つの対策は、オプションの、全出力ポート書込みへの時間アクセス制限です。これにより攻撃者がI/Oポートに識別可能なパターンを書き込むために正しく暗号化を行うのに必要な命令バイトが増えます。

柔軟性

DS5250は、DS5002FPよりも拡張されたオンチップリソースセットを提供し、このため、アプリケーションとシステム設計における柔軟性が増します。増えた1kBのベクトルRAMに加え、DS5250はプログラムメモリ、データメモリ、またはその両方として使用可能な4kBの内部SRAMを提供します。この内部SRAMの中でも、1kBはオプションとして拡張スタックとして使用することができます。

クロック制御およびパワーマネージメントのために、DS5250は、DS5002FPでサポートされている標準ストップおよびアイドルモードに加え、多くの機能を提供します。クロック乗算器によって、外部水晶周波数は内部で2倍または4倍になり、一定クロックレートを生成するために使用される水晶の範囲を拡げ、外部EMIを減らすことができます。パワーマネージメントモード(PMM)は外部水晶周波数を1024で割り、フルスピード動作が必要ない間の消費電力を低減します。PMM時にシリアル入力または割込みへの高速な応答が必要な場合、これらの入力に応答してフルスピード動作に自動的に戻るようにスイッチバック機能を使うことができます。外部水晶入力の代わりに、約12MHzで動作する内部リング発振器によって、水晶発振器の準備を待つことなくストップモードからすぐに出ることができます。

設計をDS5250にアップグレードするための要件

以下を除いて、DS5250はDS5002FPのほとんどの機能をサポートしています。
  • DS5250は、専用データバス(BA14–BA0およびBD7–BD0)を使って、すべての外部メモリ(またはメモリマップされたI/O)にアクセスします。多重化されたアドレス/データバスを使ってのポート0および2でのメモリへのアクセスは、サポートされていません。

  • プログラムメモリキャッシュによって可能な限り高速のプログラム実行が可能です。したがってキャッシュ動作に関連する出来不出来はI/Oタイミングまたはビットバン動作に影響を与えるかもしれません。

  • DS5250のプログラムメモリスペースへのセキュリティの向上は、バンク切替えやメモリオーバーレイ方式を複雑にするかもしれません。特に、Program Encryption Key Modifier Registerのような機能、プログラムおよびデータメモリに異なる暗号化方式を使用することでDS5002FPのメモリマップ処理方式の再評価が必要となるかもしれません。

  • DS5250は、再プログラム可能なペリフェラルコントローラ(RPC)モードに対応していません。
もし設計がこれらの機能の1つに依存している場合、DS5250を使うために何らかの小さな変更が必要となる可能性があります。

さらに、専用データバスを通してアクセスされる外部RAMのタイミング要件はDS5002FPからDS5250へではわずかに変更されました。ACタイミング分析では、特にDS5250が、DS5002FPの16MHz (max)を超えて動作する場合、RAMとDS5250がコンパチブルであることが立証されます。

DS5002FPからDS5250へのソフトウェアの移植

DS5002FPとDS5250は同じ命令セットを共有しており、DS5002Fにある特別機能レジスタ(SFR)のほとんどはDS5250で同じ位置と機能を備えています。しかし、既存のDS5002FPソフトウェアをDS5250に移植する際にはいくつかの変更が必要な場合があります。

メモリ構成

DS5002FPとDS5250 (80ピンQFPのみ)は、専用アドレスバスを通じてメモリにアクセスする際に2タイプの外部メモリ構成をサポートしています。

図1の複数チップ構成は、VCCに接続されたMSELピンと、専用バスに接続された4つの32kB x 8 SRAM デバイスを示しています。2つのデバイス(アクティブローCE2およびアクティブローCE1によってイネーブル)は64kBのプログラムメモリとしてマップされ、ほかの2つ(アクティブローCE4およびアクティブローCE3によってイネーブル)は64kBのデータメモリとしてマップされます。この構成を選択するには、次のSFR設定を使用してください。
  • (既存ソフトウェアとの互換性をはかるため) 16ビットアドレスモードを選択するためには、ACON.1 (AM1)とACON.0 (AM0)を0に設定する必要があります。

  • 32kBのチップサイズを選ぶためにはMSIZEを00hに設定する必要があります。このレジスタは、ROMローダモードまたはユーザローダモードでのみ設定することができます。

  • 非パーティションモードを選ぶにはMCON.1 (PM)を1に設定する必要があります。

  • プログラムメモリは自動的に暗号化されます。PBCC.0 (TDESE)ビットは、 DES (TDESE = 0)または3DES (TDESE = 1)暗号がプログラムメモリに使われるかどうかを選択します。このビットはROMローダモードまたはユーザローダモードでのみ設定することができます。

  • データメモリ暗号を希望でしたら、DMOS.1 (C3EE)とDMOS.2 (C4EE)を1に設定する必要があります。これらのビットはそれぞれ1メモリデバイスの暗号を制御します。
図1. 複数のチップメモリ構成では、外部プログラムおよびデータメモリは4つの32kB x 8 SRAMデバイス上で分割されます。
図1. 複数のチップメモリ構成では、外部プログラムおよびデータメモリは4つの32kB x 8 SRAMデバイス上で分割されます。

シングルチップ構成(図2)では、MSELピンはグランドに接続され、シングル128kB x 8 SRAMデバイスは専用バスに接続されます。このデバイス(アクティブローCE1によってイネーブル)は、プログラムおよびデータメモリに使用され、アクティブローCE2とアクティブローCE3は2つの追加アドレスラインに変換されます。この構成を選択するには、以下のSFR設定を使用する必要があります。
  • (既存ソフトウェアとの互換性をはかるため) 16ビットアドレスモードを選択するためには、ACON.1 (AM1)とACON.0 (AM0)を0に設定する必要があります。

  • 128kBのチップサイズを選ぶためにはMSIZEをXX001001bに設定する必要があります。このレジスタは、ROMローダモードまたはユーザローダモードでのみ設定することができるという点にご注意ください。

  • プログラムメモリは自動的に暗号化されます。PBCC.0 (TDESE)ビットは、 シングルDES (TDESE = 0)または3DES (TDESE = 1)暗号がプログラムメモリに使われるかどうかを選択します。このビットはROMローダモードまたはユーザローダモードでのみ設定することができます。

  • データメモリは自動的に暗号化されます。
図2. シングルチップメモリ構成では、1つの128kB x 8 SRAMデバイスが、外部プログラムおよびデータメモリを保持します。
図2. シングルチップメモリ構成では、1つの128kB x 8 SRAMデバイスが、外部プログラムおよびデータメモリを保持します。

割込みへの対処

DS5002FPによってサポートされる6つの割込みソースの内5つがDS5250によって同様にサポートされています。DS5250ではパワーフェイル割込みもサポートされていますが、次のような違いがあります。
  • パワーフェイルの割込みベクトルは2Bhではなく33hにあります。その優先レベル(最高の0)には変更がありません。

  • この割込みのイネーブルビットはWDCON.5 (EPFI)にあります。

  • パワーフェイルイベントが発生したことを示すフラグはWDCON.4 (PFI)にあります。

リセットソースの決定

パワーオンリセットが生じると、DS5002FPではアクティブローPORビット(PCON.6)がクリアされ、このビットはソフトウェアによるチェックが行われリセットの原因を調べることができます。DS5250では、PORビット(WDCON.6)がこの機能を行いますが、このビットはパワーオンリセットが生じると設定されます(クリアされない)。両ビットは、ソフトウェアによってリセットされるためには時間アクセス書込みが必要です。

DS5250のストリームライン化されたコアは、DS5002FPの12クロックサイクルに対し4クロックサイクルのみでシングルバイト命令を実行します。

ウォッチドッグ制御

ウォッチドッグは全製品で同じ動作を行いますが、DS5250のウォッチドッグを制御する際には、次の変更と追加を行ってください。
  • ウォッチドッグイネーブルビットはWDCON.1 (EWT)にあります。

  • ウォッチドッグリセットビットはWDCON.2 (RWT)にあります。

  • ウォッチドッグタイマリセットが生じたことを示すフラグはWDCON.2 (WTRF)にあります。DS5002FP のWTRビットと異なり、このビットはクリアされるために0にはっきりと書き込まれる必要があります。

  • ウォッチドッグ割込み(ベクトル63h)はDS5250で利用できます。この割込みは、EWDI (EIE.4)ビットによってイネーブルされると、ウォッチドッグリセットが生じる前に引き起こされ、希望であればウォッチドッグタイムアウトをソフトウェアによって制御することができます。DS5250のWD1–WD0 (CKCON.7-6)ビットは、ウォッチドッグ割込みとリセットの時間を制御しますが、リセット時間はDS5002FPとおおよそ同じ値のデフォルト設定となります。

乱数の生成

乱数レジスタ(RNR)は3つのすべての製品で同じ動作を行います。しかし、DS5250では、新しい乱数が用意されたことを示すビットがRAMST.0 (RNRF)に位置します。DS5250で新しい乱数を生成するために必要な時間は約30msです。

CRC動作

DS5250は新しいCRC-32計算機能をサポートし、CRC-16値を計算する過程は異なります。
  • DS5250には、CRC (C1h)、CRCLow (C2h)、およびCRCHigh (C3h)レジスタがありません。

  • CRC-16の計算を行うには、まずCRCNT (RAMST.1)ビットを0にクリアしてCRC-16モードを選択してください。次に、CRCデータ値をCRC1 (B1h)レジスタに書込み、少なくとも5マシンサイクル(または書込み間に3つのNOP)がCRCレジスタに整定時間を与えます。最後の値が書き込まれると、CRC-16値はCRC2:CRC1から読み込むことができます。

  • CRCレジスタをクリアするために、エンジンに2度CRC LSB バイトを書き戻す必要はありません。DS5240では、CRC2 に任意の値を書き込むことで自動的にCRC1、CRC2、CRC3、およびCRC4を0にクリアします。
表2. DS5250の新機能のまとめ(80ピンQFPのみ)
FEATURE
SFRS
Timer2 CKCON.5 (T2M): Clock Mode Select
P1.1 (T2EX), P1.0 (T2): External Inputs
T2CON: Flags and Mode Control
T2MOD: Mode Control
TH2, TL2: Timer Count MSB/LSB
RCAP2H, RCAP2L: Timer Capture MSB/LSB
Data Pointers DPH1, DPL1: Data Pointer 1 MSB/LSB
DPS: Data Pointer Select
CRC: 32 RAMST.1 (CRCNT): CRC 16/32 Select
CRC1, CRC2, CRC3, CRC4: I/O Registers
DES Engine UDESC: DES Engine Control
UDESD: DES Engine Data Input/Output
Modular Accelerator Engine MAS0, MAS1: Operation Size Select
MACT: Accelerator Control Register
User Loader Mode ACON.6 (ULME): User-Loader Mode Enable
PEK1, PEK2, DEK, ROMST, PBCD,
PBCC: Encryption/Loading Control
Laser ID BP: Bootloader Password Register
Crystal Multiplier and Power Management PMR: Power Management Register
Extended 1kB Stack ESP: Extended Stack Pointer
RAMST.5, RAMST.4: RAMST1 Mode Select
Output Port Timed: Access Protection RAR.3 (TAP): Timed: Access Port Enable

結論

DS5250の多くの新しい機能は、ハードウェアの変更一切なしで利用することができます。表2はこれらの新機能とそれを制御するSFRの要約です。

DS5250の機能セットは、DS5002FPに比べてセキュリティ、性能、および柔軟性を向上します。ソフトウェアをDS5250に移植するために必要ないくつかの変更を行うだけで、DS5002FP設計を容易にアップグレードできます。

100ピンQFPへの設計アップグレード

100ピンQFPパッケージのDS5250は、DS5002FPとのピン互換性を除くとすべての80ピンパッケージ機能を提供し、メモリインタフェースのDS5002FPモードをサポートします。次の機能も提供します。
  • 最大4MBのプログラムおよびデータメモリと4MBのメモリマップされたI/Oの拡張メモリインタフェースオプション。

  • タイムスタンプと自己終了期限に有用な内蔵RTC (外部32.768kHz水晶により駆動)

  • 低温攻撃に対応してDRSを引き起こすことが可能な温度センサ

  • 割込みに配線して、ソフトウェア制御のタンパー応答を可能にする追加SDI入力ピン

  • 外部フラッシュメモリ用のハードウェアサポート(DS5250に含まれるローダROMサポート)

その他の情報

高速セキュアマイクロコントローラDS5250の概要はオンラインjapan.maximintegrated.comでご覧いただけます。機密データシートおよびユーザガイドはご覧いただく前に機密保持契約(NDA)が必要です。詳細についてはマキシムのカスタマーサービスにお問い合わせください。

次のステップ
EE-Mail EE-Mail配信の登録申し込みをして、興味のある分野の最新ドキュメントに関する自動通知を受け取る。
© , Maxim Integrated Products, Inc.
このウェブサイトのコンテンツは米国および各国の著作権法によって保護されています。コンテンツの複製を希望される場合は お問い合わせください。.
APP 2034:
アプリケーションノート 2034,AN2034, AN 2034, APP2034, Appnote2034, Appnote 2034