ハイ
LPC55Sxx シリーズの PRINCE 機能に関していくつか質問があります。
1.マニュアルには、暗号化されたメモリすべてを一度に書き込む必要があると記載されています。しかし、ファームウェアのアップグレードを行う場合、ファームウェア全体をまず RAM に配置してからフラッシュにコピーする必要があるため、これは不可能ですよね?暗号化を使用するとページごとに消去したり書き込んだりすることはできないのでしょうか?
2. ROM API を使用する場合、暗号化されたメモリの読み取りは機能しないようです。FLASH_Read() 関数はゴミを返しますが、単純な memcpy() を実行すると正しく復号化されたデータが取得されます...
こんにちは@keepcoding
以下のThreadをご覧ください。
UM11126(49.16.1 機能詳細)によれば、各暗号領域には独自の SKEY と IV コードがあります。SKEY と IV は、暗号領域のサブ領域内のデータを暗号化または復号化するときに、PRINCE によって一緒に使用されます。
たとえば、PRINCE リージョン 1 の場合、消去操作を実行するたびに新しい Skey1 と IV1 が生成されるため、別のサブリージョンに対して消去/読み取り/書き込み操作を実行すると、古い IV1 と新しい IV1 が一致せず、PRINCE が正しく復号化できません。
BR
アリス
通常の消去および書き込み機能を使用して暗号化された領域を埋める(データをチャンクごとに書き込む)簡単なテストを実行しました。これは問題なく動作しているようです。
SO、私は疑問に思います。なぜドキュメントには一度に書き込む必要があると記載されているのでしょうか?何か見ていないのでしょうか?これについてもう少し詳しく説明していただけますか?
こんにちは@keepcoding
ご返信ありがとうございます。
当社の SDK デモも確認しましたが、確かにこれが制限事項です。
暗号化されたサブ領域全体が一度に書き込まれることを確認します。そうでない場合はエラーを返します。
BR
アリス
わかりました。しかし、すべてのデータを一度に書き込むにはどうすればよいですか?書き込みたいデータの量はチップ上の使用可能な SRAM よりも大きいSO、「一度にフラッシュに書き込む」前にデータをどこに配置すればよいですか?
こんにちは@keepcoding
BR
アリス