アーキテクチャをfpga icに永久に適切に保存する方法


8

特定のことを行うためのアーキテクチャを作成したことを考慮して、たとえばvhdlで記述しました。

いつまでもfpgaチップで「焼く」ことができますか?または、シリアルフラッシュメモリから読み取ることができるという事実を知っている知的財産を保護する方法を教えてください。

回答:


12

ザイリンクスSpartan 3AN FPGAには内部フラッシュがあり、不揮発性です。あなたの質問は実際には複数の質問です。

1)FPGAは揮発性ですか、それとも不揮発性ですか?ほとんどは揮発性であり、電源を入れるたびに外部の不揮発性ストレージデバイスからFPGAにコンフィギュレーションビットストリームを読み込む必要があります。いくつかの不揮発性があります。ザイリンクスS3ANのように、私は言及します。

2)構成ビットストリームをどのように保護しますか?この質問には複数の回答があります。

ビットストリームを暗号化できます。つまり、上記の不揮発性ストレージデバイスに格納されるビットストリームは、適切なキーを使用して単一のfpgaによってのみ復号化できる一意の暗号文であることを意味します。これにより、ビットストリームの機能がリバースエンジニアリングによって検出されるのを防ぎます。つまり、暗号化されたビットストリームが不揮発性記憶装置からその場でまたはより破壊的な方法で抽出できたとしても、暗号化されているため、抽出されたファイルから意味をなすことはできません。

また、ビットストリームをリードバックを禁止するように設定することもできます。デバッグ時にFPGAをプログラムするために使用するJTAGインターフェイスは、通常、FPGAからコンフィギュレーションビットストリームを読み取るために使用できます。NO_READBACKオプションを設定すると、これが禁止されます。


1
暗号化できない場合、FPGA自体はどのように暗号化されたビットストリームを読み取ることができますか?答えはもちろん、ビットストリームを復号化すること可能であるということです。難読化されているため、少し難しいです。
ntoskrnl 2014

えっ?平文ビットストリーム(Bptと呼ぶ)は、平文と秘密鍵(Keyと呼ぶ)を受け取って暗号文ビットストリーム(Bctと呼ぶ)を作成する暗号化関数Ek()によって暗号化されるため、Bct = Ek(Bpt、Key) 。これは保存され、ブート時にFPGAにストリーミングされます。FPGAは秘密鍵を知っているため、それを復号化できます、Bpt ​​= Ek(Bct、Key)。キーがないと、第三者が復号化操作を実行できません。処理時間とその他の暗号分析ツールを考えると、サードパーティはプレーンテキストを理解できる可能性がありますが、意図された復号化プロセスでは理解できません。
Jotorious、

攻撃者は単純にキーも見つけて、平文の復号化を進めることができます。キーをハードウェア(スマートカードなど)から復元するのはかなり困難になると思いますが、それが何らかの通常のメモリに格納されている場合、暗号文を復元するよりも難しくありません。
ntoskrnl 2014

1
暗号化は、キーが安全であるのと同じくらい安全です。ザイリンクス以外のFPGAと話すことはできませんが、ザイリンクスFPGAでは、非侵襲的/非破壊的な方法ではキーを回復できません。
Jotorious、2014

この議論の多くは、このリンクカバー: xilinx.com/support/documentation/application_notes/...
Jotorious

7

統合された不揮発性プログラムメモリを備えたFPGAを見つけることができます。たとえば、Microsemi(旧Actel)はこのタイプのデバイスを専門としています。

他のベンダーは、FPGAをマスクプログラムするオプションを提供しています。たとえば、ザイリンクスは、マスクプログラムされたデバイスを「EasyPath」FPGAと呼んでいます。私の知る限り、これにはNREの支払いが必要なので、設計を更新する必要があるかもしれない状況には適していません。(修正のためのalex.forencichへのヒント)


2
EasyPath FPGAはマスクプログラムされていません。ビットストリームに対してのみカスタムテストが行​​われるため、テストコストが削減され、歩留まりが向上します(デザインで使用されていないコンポーネントの欠陥を許容できます)。FPGAが機能するには、デザインを読み込んだコンフィギュレーションフラッシュが必要です。実際にマスクプログラムされた場合、NREは巨大になります。
alex.forencich 2014

6

私は少なくともアルテラについて話すことができます、私はザイリンクスが同様の何かを持っていると思います。外部フラッシュまたはEEPROMに置くファイルを暗号化するオプションがあります。次に、非揮発性またはバッテリーバックアップのキーストレージを使用して、アルテラパーツに復号化キーをロードします。

キーを読み取ることができないため、IPを保護します。彼らは人々のIPを保護することができなかったので、これはかなり一般的な機能であり、アシックスにとってデザインの勝利を失っていました。

http://www.altera.com/devices/fpga/stratix-fpgas/about/security/stx-design-security.html


0

これを達成できる唯一の方法は、個別のフラッシュモジュールを購入して(まだPGAにない場合)、コードをRAMにロードすることですが、これはすべての面倒にはお勧めできません。CPLDのようなものを購入するだけです。後で再プログラミングするつもりがない場合は、後で再プログラミングするか、ASICを計画します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.