JP2023525896A - デジタル情報をセキュアに処理するためのセキュアエレメント - Google Patents

デジタル情報をセキュアに処理するためのセキュアエレメント Download PDF

Info

Publication number
JP2023525896A
JP2023525896A JP2022570416A JP2022570416A JP2023525896A JP 2023525896 A JP2023525896 A JP 2023525896A JP 2022570416 A JP2022570416 A JP 2022570416A JP 2022570416 A JP2022570416 A JP 2022570416A JP 2023525896 A JP2023525896 A JP 2023525896A
Authority
JP
Japan
Prior art keywords
digital information
secure element
segment
ctrlobj
version
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
JP2022570416A
Other languages
English (en)
Other versions
JPWO2021233649A5 (ja
Inventor
カリーヌ ヴィレガス,
ローン アティエ,
ファビアン グレモー,
パスカル フックス,
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.)
Nagravision SARL
Original Assignee
Nagravision SARL
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 Nagravision SARL filed Critical Nagravision SARL
Publication of JP2023525896A publication Critical patent/JP2023525896A/ja
Publication of JPWO2021233649A5 publication Critical patent/JPWO2021233649A5/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

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

Abstract

【解決手段】 セキュアエレメント(100)は、セキュアエレメントの外部のメモリ(200)に記憶されたデジタル情報をセキュアに処理するためのセキュアプロセッサ(110)と、デジタル情報を外部メモリ(200)からセキュアエレメント(100)にロードするように、かつセキュアプロセッサ(110)によって当該デジタル情報を処理する前に暗号化アルゴリズムを実行することによって当該デジタル情報を前処理するように構成されたロード及び前処理システムと、を有する。システムは、セキュアエレメント(100)の内部メモリ(122)からロードされたデジタル情報のバージョン番号を読み出し、暗号化アルゴリズムを実行する際に当該バージョン番号を使用する。【選択図】図2

Description

本開示は、コンピュータセキュリティの分野に関し、より正確には、コード(アプリケーション)及び/又はデータなどのデジタル情報をセキュアに処理することに関する。
一般に、セキュアエレメントとしても既知である、デジタル情報をセキュアに処理することができる処理デバイス、例えば、スマートカード又はチップは、1つ以上のプロセッサ(例えば、ホストプロセッサ及びセキュアプロセッサ)、並びに1つ以上のメモリ(揮発性メモリ、キャッシュメモリ、及び不揮発性メモリ)などのハードウェアリソースを含む。処理デバイスは、通常、オペレーティングシステムの制御下で動作し、1つ以上のソフトウェアコンポーネント又はアプリケーションを使用することによって、プログラム命令を実行する。アプリケーションが実行されるとき、アプリケーションに必要とされるデジタル情報(コード及びデータ)及びアプリケーションによって作り出されたデータは、不揮発性メモリに記憶することができ、実行又は処理される必要があるとき、デジタル情報は、揮発性メモリ又はキャッシュメモリにロードされ得る。
セキュアエレメントは、いくつかの処理モジュール、いくつかのメモリ、及びいくつかの機能を有するSoC(System on the Chip、システムオンチップ)に埋め込まれ得る。SoCは、より大きいモジュール、例えば、IoTデバイス(モノのインターネットデバイス)に統合され得る。
IoTシステムのような制約環境では、セキュアエレメントは、限定された量の情報、典型的にはカウンタ及び/又は鍵を記憶するために使用される、OTP(one time programmable、ワンタイムプログラマブル)メモリなどの小さい不揮発性メモリのみを有し得る。セキュアエレメントは、デジタル情報(例えば、コード及び/又はデータ)を記憶するために使用されない。セキュアエレメントのコストを低く保つために、デジタル情報は、セキュアエレメントの外側に位置する外部不揮発性メモリ(例えば、SoC内又はSoCの外側のモジュール内のフラッシュメモリ)に記憶される。この外部メモリは、セキュアエレメントの内部記憶容量よりも大きい、例えば、数メガバイトの大きい記憶容量を有する。外部メモリに記憶されたデジタル情報は、セキュアプロセッサのセキュリティレベルと同等の高いセキュリティレベルで保護されるべきである。より正確には、プライバシー、完全性、認証性、及び鮮度において保証されるべきである。鮮度に関して、デジタル情報は、有効なデータ送信が悪意を持って又は不正に繰り返され又は遅延されるネットワーク攻撃の一形態であるリプレイ攻撃(プレイバック攻撃としても既知である)から保護されるべきであることを意味する。
セキュアエレメントは、悪意のある攻撃から、特にリプレイ攻撃から保護される必要がある。リプレイ攻撃(プレイバック攻撃としても既知である)は、ハッカーが有効なデータ送信を盗聴し、それを傍受し、次いで、それを不正に遅延させるか又は繰り返して、ハッカーが望むことを行うように受信器(この場合、セキュアエレメント)を操る悪意のある攻撃である。
セキュアエレメントは、外部デジタル情報をRAM(Random-Access Memory、ランダムアクセスメモリ)などの内部メモリにセキュアにインポートするローダを有する。デジタル情報断片がインポートされると、もはや有効ではない当該デジタル情報断片の以前のバージョンによって置き換えられたかどうかが検証される。
欧州特許第2 860 660号は、ホストプロセッサ(host processor、HCPU)及び関連するホストメモリと、セキュアプロセッサ(secure processor、SCPU)及び関連するセキュアメモリと、複数のキャッシュラインを記憶するセキュアキャッシュメモリと、キャッシュラインをホストプロセッサからセキュアプロセッサにロードするのを制御するキャッシュコントローラと、を有する、SoCを含む、データ処理システムを開示している。キャッシュメモリは、ハッシュ関数を使用して計算された各キャッシュラインのフィンガープリントを含む完全性テーブルを記憶する。キャッシュラインがセキュアプロセッサにロードされるとき、その完全性は、セキュアプロセッサによって計算されたキャッシュラインのフィンガープリントと完全性テーブルから抽出された対応するフィンガープリントとの比較に成功することによって検証される。
そのような解決策は、完全性テーブルをセキュアエレメントの内部メモリ(例えば、RAM)にロードすることを必要とする。例えば、外部メモリが1MBのデジタル情報を記憶し、デジタル情報が、各々32Bのフィンガープリント又はTAGを有する1KBの断片にセグメント化される場合、セキュアエレメントの内部メモリRAMに記憶される完全性テーブルは、32KBの記憶容量を有するべきである。IoTデバイスのような記憶容量がほとんどない処理デバイスの場合、そのような解決策は、セキュアエレメント内にあまりにも多くの記憶容量を必要とするため、適切ではない場合がある。
本開示は、この状況を改善することを意図している。
本開示は、デジタル情報をセキュアに処理するためのセキュアエレメントに関し、当該デジタル情報はセグメント化され、セキュアエレメントの外部のメモリ内の複数のM個のセグメントに記憶され、セキュアエレメントは、
-複数のM個のデジタル情報セグメントをセキュアに処理するためのセキュアプロセッサと、
-外部メモリからのデジタル情報セグメントをセキュアエレメントにロードし、セキュアプロセッサによって当該デジタル情報セグメントを処理する前に、暗号化アルゴリズムを実行することによって当該デジタル情報セグメントを前処理するように構成されたシステムと、を含み、
本システムは、ロードされたデジタル情報セグメントの識別情報を判定することであって、当該識別情報の判定は、当該デジタル情報セグメントのバージョン番号を取得することを含む、判定することと、当該識別情報を使用することによって暗号化アルゴリズムを実行することと、を行うように構成されていて、
本システムは、複数のM個のデジタル情報セグメントのそれぞれのバージョン番号を含むバージョンテーブルを外部メモリからセキュアエレメントの内部メモリにロードするように、かつ内部メモリに記憶されたバージョンテーブルにロードされている各デジタル情報セグメントのバージョン番号を読み出すように構成されていることを特徴とする。
これにより、暗号化アルゴリズムは、外部メモリに記憶されたデジタル情報のバージョン番号(又は外部メモリに記憶されたデジタル情報断片)を入力として使用する。デジタル情報のバージョン番号は、当該デジタル情報(又はデジタル情報断片)を前処理するために暗号化して使用される。これは、外部メモリ内のデジタル情報と(又はデジタル情報断片と)関連付けられ、セキュアエレメントにロードされる。バージョン番号は、初期値(例えば、ゼロ)を有することができ、例えば、セキュアエレメントによる処理中に、デジタル情報(又はデジタル情報断片)が修正されるたびにインクリメントさせることができる。デジタル情報(又はデジタル情報断片)は、そのバージョン番号に暗号化して結合される。セキュアエレメントは、このバージョン番号を内部に記憶し、これは少ないメモリ容量しか必要としない。これにより、セキュアエレメントは、大容量記憶を必要とすることなく、悪意のあるリプレイ攻撃から保護される。そのため、本開示は、良好なセキュリティレベルを必要とするローエンドデバイスに適用することができる。
有利には、本システムは、デジタル情報セグメントの識別情報を判定することであって、当該識別情報の判定は当該デジタル情報セグメントのセグメント識別子を取得することを更に含む、判定することと、当該識別情報を使用することによって暗号化アルゴリズムを実行することと、を行うように構成され、当該セグメント識別子は、外部メモリ内の対応するデジタル情報セグメントに割り当てられたインデックス又は対応するデジタル情報セグメントのヘッダ内に存在する識別子のいずれかである。
デジタル情報(又はデジタル情報断片)の識別子は、そのバージョン番号に加えて、デジタル情報を前処理するために暗号化して使用することができる。
識別子は、短い情報断片、例えば、外部メモリ内のデジタル情報断片のインデックスである。典型的には、デジタル情報は、デジタル情報断片に分割され、デジタル情報断片はインデックス付けされ、外部メモリに記憶される。デジタル情報断片は、外部メモリ内の所与の位置にスタックされるか、又はより一般的には配置され得る。デジタル情報断片に割り当てられたインデックスは、外部メモリ内のこれらのデジタル情報断片の位置に依存し得る。
有利には、当該セキュアエレメントは、暗号化アルゴリズムを実行する際に本システムによって使用される、セキュアエレメントに一意に生成された、少なくとも1つの一意の暗号鍵を記憶する。
バージョン番号の使用により、デジタル情報の以前のバージョンによるデジタル情報(又はデジタル情報断片)の置換を防止する。デジタル情報(又はデジタル情報断片)の識別子の使用により、セキュアエレメントにロードされた別の有効なデジタル情報によるデジタル情報の置換を防止する。一意の鍵の使用により、別のセキュアエレメント又はデバイスからのデジタル情報によるデジタル情報の置換を防止する。バージョン番号、識別子、及び一意の鍵を組み合わせて使用することにより、多くの異なる攻撃から暗黙的に保護するが、大きい記憶容量を必要としない、先行技術のTAG解決策と同等の解決策を有することが可能になる。
本システムは、少なくとも1つの一意の暗号鍵及びデジタル情報の識別情報を入力として使用することによって、暗号化アルゴリズムによって使用される少なくとも1つの暗号鍵を生成する鍵導出関数を含むことができる。
暗号化アルゴリズムは、ロードされたデジタル情報セグメントを認証する認証アルゴリズムを含むことができる。代替的に、又は追加的に、暗号化アルゴリズムは、ロードされたデジタル情報を暗号解除するための暗号解除アルゴリズムを含むことができる。これにより、デジタル情報(又はデジタル情報断片)のバージョン番号及び/又は識別子は、認証のためだけでなく、デジタル情報の暗号解除のためにも使用することができ、セキュリティを向上させる。
例えば、本システムは、デジタル情報セグメントの識別情報を入力として使用することによって、暗号解除アルゴリズムによって使用される、初期化ベクトルを生成するように構成されている。
外部メモリに記憶されたデジタル情報は、例えば、「暗号化-次いで-MAC」アプローチに基づく、認証された暗号化メカニズムによって保護することができる。その場合、セキュアエレメント内のデジタル情報をセキュアに処理する前に、デジタル情報を認証し、次いで暗号解除することが必要とされる。そのような構成では、デジタル情報のバージョン番号及び識別子をその認証のための入力として使用することにより、最高レベルのセキュリティが提供される。実際、この認証が失敗した場合、デジタル情報は、暗号解除されない。
有利には、本システムは、当該バージョンテーブルの鮮度情報を、セキュアエレメントの内部不揮発性メモリに記憶された鮮度カウンタと比較することによって、当該バージョンテーブルの鮮度情報を検証するように更に構成されている。
全てのデジタル情報断片の鮮度又は一貫性は、バージョンテーブルによって認証される。それらのTAG(フィンガープリント)の代わりに、デジタル情報断片のバージョン番号を使用することにより、セキュアエレメント内の内部記憶リソースを節約することが可能になる。例えば、1KBの断片又はフラグメントに記憶された1MBのデジタル情報を記憶する外部メモリが各々32BのMACのようなTAGを有する場合、全てのデジタル情報断片のTAGを含む完全性テーブルのサイズは32KBになる。本開示では、バージョン番号が数バイト、例えば、3Bのサイズを有すると仮定すると、セキュアエレメントに記憶される必要があるバージョンテーブルのサイズはわずか3KBである。そのため、本開示により、29KBの内部記憶容量を節約することが可能になる。
バージョンテーブルの鮮度情報の検証により、鮮度に対する信頼の連鎖(アンチリプレイ)を構築することによってセキュリティが保証される。
内部不揮発性メモリは、OTP(ワンタイムプログラマブル)メモリとすることができる。
本システムは、バージョンテーブルをセキュアエレメントの起動手順でロードするように構成することができる。
有利には、本システムは、ロードされたバージョンテーブルを認証及び暗号解除するように構成されている。
本システムは、バージョンテーブルのヘッダから鮮度情報を読み出すように構成することができる。
有利には、セキュアエレメントは、デジタル情報(又はデジタル情報断片)のセグメントがセキュアプロセッサによって処理されるときに修正される場合に、修正されたデジタル情報セグメント及び更新されたバージョンテーブルを外部メモリに書き込み、内部不揮発性メモリ内の鮮度カウンタをインクリメントする動作を制御するように構成された更新モジュールを備える。
本開示の第2の態様は、先に定義されたセキュアエレメントと、デジタル情報を記憶するための外部メモリと、を含む、システムに関する。
本開示の第3の態様は、セキュアエレメントによってデジタル情報をセキュアに処理するための方法に関し、当該デジタル情報は、セグメント化され、セキュアエレメントの外部のメモリ内の複数のM個のセグメントに記憶され、本方法は、セキュアエレメントによって実行される以下の工程:
-外部メモリからのデジタル情報をセキュアエレメントにロードする工程と、
-当該デジタル情報セグメントのバージョン番号を取得することによって、ロードされたデジタル情報セグメントの識別情報を判定する工程と、
-セキュアエレメントのセキュアプロセッサによって当該デジタル情報セグメントを処理する前に、当該識別情報を使用して暗号化アルゴリズムを実行することによって当該デジタル情報セグメントを前処理する工程と、
セキュアプロセッサによってデジタル情報セグメントをセキュアに処理する工程と、を含み、
本方法は、
外部メモリからの複数のM個のデジタル情報セグメントのそれぞれのバージョン番号を含むバージョンテーブルをセキュアエレメントの内部メモリにロードする工程と、内部メモリに記憶されたバージョンテーブルにロードされている各デジタル情報セグメントのバージョン番号を読み出す工程と、を更に含む、ことを特徴とする。
本方法は、バージョンテーブルの当該鮮度情報を、セキュアエレメントの内部不揮発性メモリに記憶された鮮度カウンタと比較することによって、当該バージョンテーブルの鮮度情報を検証する工程を更に含むことができる。
本開示の他の特徴、目的、及び利点は、添付の図面を参照してなされた非限定的な実施形態の詳細な記述を読むことによってより明確になるであろう。
図1は、第1の実施形態による、SoC(システムオンチップ)に埋め込まれたセキュアエレメントを示す。
図2は、第1の実施形態による、起動手順中に動作するセキュアエレメント及び外部メモリを簡略化して示す。
図3は、第1の実施形態による、外部メモリからのデジタル情報をロード及び前処理(又は読み出す)の手順中に動作するセキュアエレメント及び外部メモリを簡略化して示す。
図4は、第1の実施形態による、修正されたデジタル情報断片及び更新されたバージョンテーブルを外部メモリに書き込む手順中に動作するセキュアエレメント及び外部メモリを簡略化して示す。
図5は、第1の実施形態による、セキュアエレメントによって実行される、デジタル情報をセキュアに処理する方法のフローチャートを示し、デジタル情報は、外部メモリに記憶されている。
図6は、第1の実施形態による、セキュアエレメントによってデジタル情報断片が修正されたときに実行される更新手順のフローチャートを示す。
図7は、第1の実施形態による、セキュアエレメントを概略的に表す。
図1は、第1の実施形態による、セキュアエレメント100及び外部メモリ200(すなわち、セキュアエレメント100の外部のメモリ)を含むシステムを示している。セキュアエレメント100は、例えば、スマートカード又はチップである。これは、いくつかの処理ユニット、いくつかのメモリ及びいくつかの機能(図示せず)を有するSoC(システムオンチップ)300に埋め込むことができる。SoC300は、より大きいモジュール400に統合され得る。外部メモリ200は、セキュアエレメント100の外部にある。これは、セキュアエレメント100のセキュアプロセッサの異なるシリコン基板上に構築することができる。例えば、外部メモリは、SoC300の外側のモジュール400内に配置される。しかしながら、外部メモリ200は、SoC300に配設され得る。例えば、このより大きいモジュール400は、IoTデバイス(典型的には、一意の識別子と、ネットワークを介してデータを転送する能力と、が提供される)、電気通信装置、位置特定システム、自動車又は航空機のような車両などであり得る。IoTデバイスの例には、スマートメータ、スマートカメラ、センサ、トラッカ、タグ、検出器、モニタ、ウェアラブルアイテム及び衣類、スマートホームデバイス、医療及びヘルスケアデバイス、ライフサイエンスデバイス、セットトップボックス、並びに5Gネットワークなどの電気通信ネットワークにおけるエッジデバイスが含まれる。
セキュアエレメント100の異なる例示的な使用事例(限定的なものではない)を以下に示す。
第1の使用事例では、セキュアエレメント100は、電気通信システム又は装置のモデムに統合することができる。そのような場合、セキュアエレメント100は、ネットワーク認証を処理し、セキュアアプリケーションをダウンロードすることができる。
第2の使用事例では、セキュアエレメント100は、タコグラフに統合し、位置データをセキュアに処理することができる。
第3の使用事例では、セキュアエレメント100は、セキュアデータ輸送を確保及び管理するために、車両、例えば、自動車又は航空機に統合することができる。
外部メモリ200は、デジタル情報を記憶する。「デジタル情報」という用語は、実行可能コード、又は実行可能コードによって生成されるか若しくは実行可能コードによって使用される情報、又はセキュアエレメント100によって使用若しくは処理される任意の他のデータなどの、セキュアエレメント100にロードされやすいデータを指す。
セキュアエレメント100は、明細書において後で説明するように、外部メモリ200に記憶されたデジタル情報をロードし、前処理し(又は読み出し)、セキュアに処理することを意図している。
外部メモリ200は、不揮発性メモリであり得る。
本実施形態では、メモリのセグメント化が、外部メモリ200において使用される。これは、デジタル情報がセグメント化され、セグメント(「フラグメント」とも呼ばれる)に記憶されることを意味する。デジタル情報セグメントは、セグメント化から生じるデジタル情報断片である。セグメント化は、デジタル情報を記憶し、転送し、前処理するために使用される。
例えば、外部メモリ200は、「Si」と称されるM個のデジタル情報セグメントを記憶し、1≦i≦Mである。M個のセグメントSiは、M1個のコードセグメント及びM2個のデータセグメントを含むことができ、M1≧0及びM2≧0である。デジタル情報セグメントは、実装態様に応じて、同じサイズを有するか、又は異なる場合があるそれぞれのサイズを有することができる。いくつかの実施形態では、セキュアエレメント100は、キャッシュ実装を有する。その場合、セキュアエレメント100は、所定のサイズのキャッシュライン(デジタル情報セグメントに対応する)をロード及び記憶するように構成されたキャッシュコントローラ(典型的には、キャッシュハードウェアコンポーネント)を有することができる。他の実施形態では、デジタル情報セグメントは、ソフトウェアコンポーネント又はアプリケーションを実行するときに、セキュアプロセッサによって要求されるデジタル情報断片であり得る。そのような場合、セグメントは、異なるそれぞれのサイズを有し得る。
デジタル情報セグメントSiは、外部メモリ200内の記憶中、及び外部メモリ200からセキュアエレメント100への転送中のセキュリティを保証するために、認証された暗号化アルゴリズムによって保護されている。第1の実施形態では、デジタル情報を保護するために使用される認証された暗号化は、周知の「暗号化-次いで-MAC」(Encrypt-then-MAC、EtM)アプローチに基づく。EtMアプローチは、認証された暗号化のための非常に堅牢なアプローチと考えられている。各デジタル情報セグメントSiに対して、外部メモリ200は、エレメント[Si]|MAC[Si]を記憶し、暗号化鍵(後述する)で暗号化され、認証鍵(これも後述する)で計算された暗号化されたセグメント[Si]の認証エレメントMAC[Si]と連結されたセグメントSiを含む。認証エレメントMAC[Si]は、MAC機能によって計算することができる。
本開示では、括弧「[]」は、エレメントの暗号化された形態を表し、記号「|」は、2つのエレメントの連結を表す。
バージョン番号Viは、各デジタル情報セグメントSiに帰属し、このデジタル情報セグメントSiがセキュアエレメント100によって修正されたときに、インクリメントされる。1つのデジタル情報セグメントSiのバージョン番号Viのサイズは、小さく、一般に数バイト、例えば3バイトであり得る。最初に、デジタル情報が外部メモリ200に記憶されるとき、1≦i≦Mである全てのデジタル情報セグメントSiのバージョン番号Viは、初期値、例えば、ゼロ(しかし、1つ又は任意の他の値とし得る)に設定することができる。次いで、M個のセグメントSiのうちの1つの特定のセグメント(ここでは「Sj」と称される)が修正されるたびに、そのバージョン番号Vjは、例えば、1だけ(すなわち、Vj=Vj+1)インクリメントされる。
加えて、第1の実施形態では、デジタル情報の各セグメントは、IDSiと称される関連付けられたセグメント識別子を有する。このセグメント識別子IDSiは、セグメントを識別する短い情報断片である。セグメント識別子IDSiは、外部メモリ200内のセグメントSiのインデックスとすることができる。典型的には、インデックスは、例えば、外部メモリ200に記憶されたセグメントSiのそれぞれの位置に応じて、外部メモリ200内のデジタル情報Siのセグメントに割り当てられる。これらのインデックスは、セキュアエレメント100によって、セグメント識別子IDSiとして使用することができる。それらはまた、バージョンテーブルにおけるセグメントSiのバージョン番号Viをインデックス付けするために使用することができる。セキュアエレメント100内のキャッシュ実装の場合、キャッシュブロックアドレスは、コードをフェッチするか又はデータをロードするためにアドレスによって与えられ、セグメント(又はブロック)識別子IDSiとして使用することができる。これらのキャッシュブロックアドレスは、外部メモリ200内のブロック(セグメント)のインデックスに対応する。同じキャッシュブロックアドレスが、バージョンテーブルにバージョン番号をインデックス付けするために使用することができる。
本実施形態では、外部メモリ200に記憶された各デジタル情報セグメントSiのバージョン番号Vi及び識別子IDSiが、認証された暗号化アルゴリズムにおいて入力として使用される。例えば、セグメントSiを認証するために使用されるMACアルゴリズムなどの認証アルゴリズムは、以下に表されるように、バージョン番号Vi及びセグメントSiの識別子IDSiを入力として取る鍵導出関数(key derivation function、KDF)によってマスタ鍵k1(又はソース鍵k1)から導出される認証鍵k1_Siを使用する。
k1_Si=KDF(k1、Vi、IDSi
加えて、セキュリティを向上させるために、セグメントSiのバージョン番号Vi及び識別子IDSiを使用して、デジタル情報セグメントSiを暗号化することもできる。例えば、暗号化アルゴリズムは、セグメントSiのバージョン番号Vi及び識別子IDSiを入力として取る鍵導出関数(KDF)によってマスタ鍵k2(又はソース鍵k2)から導出される暗号化鍵k2_Siを使用する。
k2_Si=KDF(k2、Vi、IDSi
鍵k1及びk2は、秘密鍵とすることができる。有利には、これらの鍵k1及びk2は、セキュアエレメント100に対して一意に生成される。それらは、セキュアエレメント100自体によって生成することができる。鍵k1及びk2は、第1の実施形態では、異なる。しかしながら、それらは、他の実施形態では、同じ鍵とすることができる。
全ての暗号化され認証されたセグメント[Si]|MAC[Si](1≦i≦Mである)は、外部メモリ200に記憶される。それらは、外部メモリ200のメモリ領域内でスタック(及び順序付け)することができる。
外部メモリ200は、図2~図4において「CtrlObj」と称されるバージョンテーブルを更に記憶する。バージョンテーブルCtrlObjは、外部メモリ200に記憶された全てのデジタル情報セグメントSi(1≦i≦Mである)のそれぞれの現在の(有効な)バージョン番号Viを含む。バージョンテーブルCtrlObjに含まれるバージョン番号Viは、セグメントSiが外部メモリ200に配置されるものと同じ順序で配置することができる。より一般的には、バージョンテーブルCtrlOb内のバージョン番号Viは、対応するセグメントSiを外部メモリ200内でインデックス付けすることと同じ方法でインデックス付けすることができる。これにより、セグメントSiをそれらの順序番号又はインデックスによって識別することが可能になる。代替的に、デジタル情報セグメントは、セグメント内にセグメント識別子を有することができる。セグメントのヘッダ内に存在するこれらのセグメント識別子は、バージョンテーブルCtrlObj内のバージョン番号Viに関連付けられ得る。
更に、バージョンテーブルCtrlObjは、鮮度情報に帰属する。典型的には、この鮮度情報は、「CtrlObj_Version」と称されるバージョンテーブルのバージョン番号である。この鮮度情報は、デジタル情報が外部メモリ200内のセグメントに最初に記憶されるときのバージョンテーブルCtrlObjに帰属する、初期値、例えば、ゼロを有する。これは、後で説明するように、バージョンテーブルCtrlObjの内容が修正されるたびにインクリメントすることができる。バージョンテーブルCtrlObjの鮮度情報CtrlObj_Versionは、外部メモリ200、例えば、バージョンテーブルCtrlObjのヘッダに記憶される。
バージョンテーブルCtrlObjはまた、例えば、認証された暗号化アルゴリズムを使用することによって、外部メモリ200内のその記憶、及びセキュアエレメント100と外部メモリ200との間のその転送のために保護することができる。例えば、バージョンテーブルCtrlObjは、鍵k1で暗号化され、次いで、バージョンテーブルCtrlObj(ここでは暗号化された形式の)の認証エレメントが、鍵k2を使用して、MACアルゴリズムなどの認証アルゴリズムで計算される。外部メモリ200は、暗号化されたバージョンテーブル[CtrlObj]k1及びその認証エレメントMAC[CtrlObj]を記憶する。任意の他の認証された暗号化アルゴリズムが使用され得る。
セキュアエレメント100は、セキュア中央処理装置CPU(又はセキュアプロセッサ)110と、複数の内部メモリ121、122、130と、ロード及び前処理システム140とを備える。
セキュアプロセッサとしても既知であるセキュアCPU110は、セキュリティクリティカルなアプリケーションのための高い保証レベルの証明を有するセキュリティ特徴を有する。これは、統合ハードウェア知的財産コア(intellectual property core、IPコア)とすることができる。
第1の内部メモリ121は、中央処理装置110による処理の前にデジタル情報セグメントSiを記憶するためのものである。これは、例えば、キャッシュメモリである。
第2の内部メモリ122は、セキュアCPU110によって要求されたデジタル情報セグメントのバージョンテーブルCtrlObjを記憶するためのものである。これは、RAMなどの揮発性メモリとすることができる。
第1の内部メモリ121及び第2の内部メモリ122は、内部揮発性メモリシステム120の一部である。それらは、別個のメモリ又は1つのメモリの異なる領域とすることができる。
第3の内部メモリ130は、鍵及びカウンタのようなデータを記憶するための永続的(不揮発性)メモリである。より正確には、内部メモリ130は、ロード及び前処理システム140によって又はセキュアプロセッサ110によって実行される暗号化アルゴリズムで使用される、マスタ鍵k1及びk2のような鍵と、バージョンテーブルCtrlObjに関連する鮮度カウンタ「FC」を記憶することができる。永続的内部メモリ130は、OTP(ワンタイムプログラマブル)不揮発性メモリとすることができる。
ロード及び前処理システム140は、
-バージョンテーブルCtrlObjを外部メモリ200からセキュアエレメント100にロードする機能、
-デジタル情報断片(セグメント)を外部メモリ200からセキュアエレメント100にロードする機能、
-第2の内部メモリ122(RAM)に記憶されるバージョンテーブルCtrlObjを前処理する機能、
-第1の内部メモリ121(キャッシュメモリ)に記憶され、セキュアプロセッサ110によって処理されるデジタル情報断片(セグメント)を前処理する機能、及び
-ロードされたバージョンテーブルCtrlObjの鮮度をチェックする機能、を含むいくつかの機能を有する。
ロード及び前処理システム140のこれらの機能は、以下に記載されるコンポーネント141~145によって実装される。それらは、ハードウェアコンポーネント、又はソフトウェアコンポーネント、又はハードウェアコンポーネントとソフトウェアコンポーネントとの組み合わせとすることができる。セキュアプロセッサ110は、ソフトウェアコンポーネントを実行するように配置されている。図7では、コンポーネント141~145は、セキュアプロセッサ110の外側に表されているが、それらは、少なくとも部分的にセキュアプロセッサ110(特にソフトウェアコンポーネント)の内部に配置され得る。
ロード及び前処理システム140は、第1のローダ141、第2のローダ142、認証検証モジュール143、暗号解除モジュール144、及び鮮度チェックモジュール145(又はアンチリプレイチェックモジュール)を有する。
第1のローダ141は、バージョンテーブルCtrlObjを外部メモリ200からロードするためのものである。第2のローダ142は、デジタル情報セグメントSiを外部メモリ200からロードするためのものである。
認証検証モジュール143は、バージョンテーブルCtrlObj及びデジタル情報セグメントSiなどのロードされたデータを認証するように構成されている。本実施形態では、これらのセグメントのバージョン番号及び識別子を入力として使用して、デジタル情報セグメントを認証するために認証鍵として使用される鍵をマスタ鍵k1から導出するMAC機能及び鍵導出関数KDFを実装する。
暗号解除モジュール144は、バージョンテーブルCtrlObj及びデジタル情報セグメントSiなどのロードされたデータを暗号解除するように構成されている。本実施形態では、これらのセグメントのバージョン番号及び識別子を入力として使用して、デジタル情報セグメントを暗号解除するために暗号解除鍵として使用される鍵をマスタ鍵k2から導出する暗号解除アルゴリズム及び鍵導出関数KDFを実装する。
代替的に、鍵導出関数は、認証検証モジュール143及び暗号解除モジュール144の両方によって使用される、1つの別個のコンポーネント146(図7において破線ブロックによって表される)において実装され得る。
鮮度チェックモジュール145は、デジタル情報をセキュアに処理する方法の記載において後述するように、このバージョンテーブルCtrlObjが外部メモリ200からロードされると、OTPメモリ130内の内部鮮度カウンタFCに対するバージョンテーブルCtrlObjの鮮度をチェックするように構成されている。
セキュアエレメント100は、本明細書において後で説明するように、セキュアプロセッサ110がデジタル情報の1つ以上のセグメントを修正したときに、外部メモリ200を更新するための更新モジュール150を更に含むことができる。
ホストプロセッサ又はCPU(図示せず)は、セキュアエレメント100の制御下でいくつかの動作を実行するために、例えば、バージョンテーブル又はセグメントをロードするために、セキュアエレメント100の外側、例えば、SoC300内に提供され得る。これにより、ロードは、セキュアエレメント100の要求に応じて、システムバス又はホストCPUを通して実行され得る。
セキュアエレメント100は、後で説明するように、暗号学的暗号化の機能を含む他の暗号機能及びMAC機能のような認証機能を有し、これは、セキュアCPU110がデータ(典型的には、デジタル情報セグメント及びバージョンテーブルCtrlObj)を暗号化及び認証することを可能にする。暗号学的暗号化の機能及び認証機能は、コンポーネント148、149によって実装される。後者は、ソフトウェアコンポーネント、又はハードウェアコンポーネント、又はハードウェアとソフトウェアコンポーネントの組み合わせのいずれかである。
セキュアプロセッサ、又はセキュア中央処理装置(CPU)、110は、内部(キャッシュ)メモリ121にロードされたデジタル情報断片をセキュアに処理又は使用するように構成されている。これは、セキュリティクリティカルなアプリケーションを実行することを意図している。セキュアプロセッサ110はまた、認証された暗号解除及び認証された暗号化などのセキュアエレメントの動作を制御するように構成されている。加えて、デジタル情報セグメントが処理中に修正されたとき、セキュアCPU110は、内部メモリ122内のバージョンテーブルCtrlObjの更新、及びアトミックトランザクションによって実行されなければならない永続的メモリ200及び130の更新(すなわち、外部メモリ200における修正されたセグメント及びバージョンテーブルCtrlObjの更新、並びに内部メモリ130内の鮮度カウンタFCの更新)も制御することができる。
更新モジュール150は、後で説明されるように、セキュアプロセッサ110の制御下で、デジタル情報セグメントが処理中に修正されたときに、OTPメモリ130内の鮮度カウンタをインクリメントし、外部メモリ200を更新する機能を有する。これは、主にソフトウェアに基づくことができる。内部OTPメモリ130内の鮮度カウンタをインクリメントするアクション、並びに修正されたデジタル情報セグメント及び更新されたバージョンテーブルを外部メモリ200に書き込むことによって外部メモリ200を更新するアクションは、有利には、機能的な理由から単一のアトミックトランザクションによって共に実行される。
セキュアエレメント100はまた、外部不揮発性メモリ200に直接アクセスするハードウェアインターフェース160を有する。
セキュアエレメント100のコンポーネントは、有利には、信頼されており、これは、それらが障害を誘発するように操作され得ないことを意味する。
ここで、セキュアエレメント100によって外部メモリ200に記憶されたデジタル情報をセキュアに処理する方法を、図2~図6を参照して記載する。本方法は、以下の3つの手順、すなわち、
-セキュアエレメント100(図2及び図5)をスイッチオンした後に実行される起動手順、
-起動手順に続き、セキュアプロセッサ110(図3及び図5)によってデジタル情報をセキュアに処理する前に実行される、読み出し又は前処理手順、及び
-セキュアプロセッサによる処理中にデジタル情報断片が修正されたときに実行される更新手順(図4及び図6)、に分けることができる。
起動手順(図2及び図5)
最初に、セキュアエレメント100がスイッチオンされる。続いて、ブート又は起動手順が、セキュアエレメント100によって実行される。この起動手順中に、セキュアエレメント100は、ブートプロセスをセキュアにすることができるセキュリティプロトコル(例えば、セキュアブート)を実行することができる。起動手順において、第1のローダ141は、工程S50において、外部メモリ200から読み出されたバージョンテーブルCtrlObjをロードする。より正確には、暗号化された形式で、そのMACと連結されたバージョンテーブルCtrlObj、[CtrlObj]k1|MAC[CtrlObj]が、外部メモリ200からセキュアエレメント100にロードされる。次いで、認証検証モジュール143は、工程S51において、バージョンテーブルCtrlObjを認証する。この目的のために、認証検証モジュール143は、鍵k2を使用して、ロードされた暗号化されたバージョンテーブル、[CtrlObj]k1のMACを計算し、計算されたMACを、バージョンテーブルMAC[CtrlObj]でロードされたMACと比較する。認証が成功した場合、暗号化されたバージョンテーブル[CtrlObj]k1は、工程S52において、鍵k1を使用して、暗号解除モジュール144によって暗号解除される。認証が失敗した場合、工程S51の後にエラー工程S70が続く。例えば、エラー工程S70において、デジタル情報を処理するための方法が中止される(中断される)。
鍵k2による認証及びバージョンテーブルCtrlObjの鍵k1による暗号解除の後、工程S53において、バージョンテーブルCtrlObjの鮮度が、鮮度検証モジュール145によってチェックされる。この目的のために、バージョンテーブルCtrlObjのヘッダに含まれる鮮度情報CtrlObj_Versionが、OTPメモリ130に記憶された鮮度カウンタFCと比較される。
バージョンテーブルCtrlObjの鮮度情報CtrlObj_Versionが、OTPメモリ130に記憶された鮮度カウンタFCと一致する場合、バージョンテーブルCtrlObjの鮮度が正常にチェックされ、本方法は、デジタル情報セグメントSiをロードして前処理する工程S54~S59に進む。ロードされたバージョンテーブルの鮮度のチェックが失敗した場合、本方法はエラー工程S71に進む。例えば、エラー工程S71において、デジタル情報を処理するための方法が中止される(中断される)。
読み出し又は前処理手順(図3及び図5)
起動手順の後に、外部メモリ200からデジタル情報セグメントを読み出す又は前処理するために、セキュアエレメント100によって実行される読み出し又は前処理手順が続く。
ロード及び前処理手順は、1≦iである複数のデジタル情報セグメントSiの各々に対して反復的に繰り返される工程S54~S59(以下に記載)を含む。ロード及び前処理手順の間、インデックス「i」は、いくつかのデジタル情報セグメントが外部メモリ200内で連続的にフェッチされ、次いで、セキュアエレメント100によって経時的に前処理される順序を表す。このフェッチの順序(又はロードの順序)は、デジタル情報セグメントが外部メモリ200にスタックされる順序に必ずしも対応しない。言い換えれば、Siが、セキュアエレメント100によって現在ロードされ、前処理されているデジタル情報セグメントであると仮定されるとき、Si+1は、ロードされ、前処理されるべき次のデジタル情報セグメントである。しかし、Si及びSi+1は、外部メモリにおいて連続的にスタックされたセグメントではない場合がある。
工程S54において、保護された形態のデジタル情報セグメントSiがロードされる。より正確には、第2のローダ142は、鍵k1_Siで暗号化され、鍵k2_Siで計算された暗号化されたセグメント[Si]の認証エレメントMAC[Si]と連結されたデジタル情報セグメントSiを含むエレメント[Si]|MAC[si]をロードする。
工程S55において、認証検証モジュール143は、内部メモリ122に記憶されたバージョンテーブルCrtlObjからバージョン番号Viを取得する。これは、バージョンテーブルCtrlObjからセグメント識別子IDSiも取得するが、これは、このIDSiがバージョンテーブルCtrlObj内のバージョン番号Viのインデックスに対応しているからである。次いで、工程S56において、認証検証モジュール143は、[Si]のMACを計算し、それを[Si]がロードされたMAC[Si]と比較することによって、暗号化されたセグメント[Si]を認証する。このMACを計算するために、モジュール143は、メモリ130内で読み出されたマスタ鍵k2から鍵k2_Siを導出し、セグメントSi(工程S55において読み出された)のバージョン番号Vi及び識別子IDSiを鍵導出関数の入力として使用する。認証が成功した(すなわち、計算されたMACがロードされたMACに一致する)場合、暗号化されたセグメント[Si]は、次いで、工程S58において、暗号解除モジュール143によって暗号解除される。暗号解除は、マスタ鍵k1(メモリ130から読み出された)から計算された鍵k1_Siを使用し、鍵導出関数(KDF)の入力として、工程S57において、メモリ122に記憶されたバージョンテーブルCtrlObjから取得されたバージョン番号Vi及びセグメントSiの識別子IDSiを使用する。認証が失敗した場合、工程S56の後にエラー工程S72が続く。例えば、エラー工程S72において、デジタル情報を処理するための方法が中止される(中断される)。代わりに、デジタル情報セグメントSiが削除され得る。
前処理手順中、工程S55及びS57において、ロード及び前処理システム140は、内部メモリ122(例えば、RAM)からデジタル情報セグメントSiのバージョン番号Vi及び識別子IDSiを取得し、セグメントSiを前処理するために使用される認証及び暗号解除の暗号化アルゴリズムを実行する際の入力としてセグメントSiのこの識別情報を提供する。代替的に、内部メモリ122に記憶されたバージョンテーブルCtrlObjからのセグメントSiの識別情報は、2つの暗号化アルゴリズムのうちの1つのみによって、好ましくは、認証アルゴリズムによって使用され得る。しかしながら、セグメントSiの識別情報を使用して暗号解除を行えば、セキュリティが向上する。
暗号解除鍵を生成するために入力としてセグメントバージョン番号及びセグメント識別子を使用する代わりに、バージョン番号Vi及びセグメント識別子IDSiを使用して、デジタル情報セグメント[Si]を暗号解除するために暗号解除モジュール144によって使用される初期化ベクトルIVを生成し得る。
デジタル情報セグメントSiの認証及び暗号解除の後、セグメントSiは、工程S59において、セキュアプロセッサ110のキャッシュメモリ121にロードされる。
次いで、工程S60において、デジタル情報セグメントSiは、セキュアプロセッサ110によってアクセス可能であり、セキュアプロセッサ110によってセキュアに処理され得る。例えば、セキュアプロセッサは、デジタル情報セグメントSiを処理することによって、セキュアな(又はセキュリティクリティカルな)アプリケーションを実行する。
工程S54~工程S59は、プロセスがエラーのために事前に中止されない限り、外部メモリ200からセキュアエレメント100に連続的にロードされるデジタル情報セグメントSiに対して反復的に繰り返される。
更新手順(図4及び図6)
デジタル情報セグメント(ここでは、「Sj」と称し、1≦j≦Mである)がセキュアプロセッサ110によって処理されるとき、工程S80において、その処理中に修正される可能性がある。デジタル情報セグメントSjの修正されたバージョンは、Sj’と称される。そのような場合、更新手順が達成され、ここで図4及び図6を参照して記載する。
初期セグメントSjが修正されたセグメントSj’に変化すると、セキュアプロセッサ110は、工程S81において、内部メモリ122に記憶されたバージョンテーブルCtrlObj内の修正されたセグメントSj’のバージョン番号をインクリメントすることによって、内部メモリ122に記憶されたバージョンテーブルCtrlObjを更新する。初期セグメントSjのバージョン番号がVjであると仮定する場合、修正されたセグメントSj’の新しいバージョン番号はVj+1である。内部メモリ122内のバージョンテーブルCtrlObjを更新する工程S81において、セキュアプロセッサ110はまた、ここでは内部メモリ122に記憶されたバージョンテーブルCtrlObjのヘッダ内の、バージョンテーブルCtrlObjのバージョン番号CtrlObj_Versionを更新する。バージョンテーブルCtrlObjのバージョン番号CtrlObj_Versionは、1だけインクリメントされる(CtrlObj_Version=CtrlObj_Version+1)。更新されたバージョンテーブル(内部メモリ122に記憶された)は、CtrlObj’と称される。
セキュアエレメント100はまた、外部メモリ200を更新する必要がある。より正確には、修正されたデジタル情報断片Sj’及び更新されたバージョンテーブルCtrlObj’を外部メモリ200に書き込む必要がある。この目的のために、セキュアプロセッサ110は、修正されたセグメントSj’及び更新されたバージョンテーブルCtrlObj’の外部メモリ200への転送を制御する前に、工程S82において、更新されたバージョンテーブルCtrlObj’及び修正されたセグメントSj’を認証された暗号化アルゴリズムに差し出す。外部メモリに記憶されたデータを準備するために使用されるものと同じ認証された暗号化アルゴリズムが使用される。本実施形態では、認証された暗号化アルゴリズムは、暗号化-次いで-Macアプローチに従う。バージョンテーブルCtrlObj’の暗号化は、鍵k1を使用し、[CtrlObj’]k1に適用されるMAC関数は、鍵k2を使用する。修正されたデジタル情報セグメントSj’の暗号化は、導出された鍵k1_Vj+1を使用し、式中、k1_Vj+1=KDF(k1、Vj+1、IDSj)である。修正されたセグメントSj’のセグメント識別子は、対応するセグメントSjのセグメント識別子(修正前の)と同じであることに留意されたい。暗号化された形式のデジタル情報の修正されたセグメント[Sj’]の認証は、導出された鍵k2_Vj+1を使用し、式中、k2_Vj+1=KDF(k2、Vj+1、IDSj’)である。
次いで、工程S83において、セキュアプロセッサ110の制御下で、更新モジュール150は、OTPメモリ130内のバージョンテーブルの鮮度カウンタFCをインクリメントし、新しいバージョンテーブルCtrlObj’及び改定されたデジタル情報セグメントSj’を外部メモリ200に書き込む。鮮度カウンタFCが、ここでは1だけインクリメントされる。これらの全てのアクション(内部メモリ130内のFCをインクリメントすること、並びに外部メモリ200内にCtrlObj’及びSj’を書き込むこと)は、単一のアトミックトランザクションによって共に実行される。そのような動作は、修正がない元の状態と修正のある最終状態の、2つの永続的状態のみを有する。動作は、迅速であるか又は長時間を要することがある。
上記の更新手順に類似した手順は、セキュアエレメント100によって最初に実行されて、デジタル情報セグメントを暗号化され認証された形式で外部メモリ200に記憶することができる。セキュアエレメント100は、外部メモリに記憶されるべきデジタル情報をデジタル情報プロバイダから、例えば、通信ネットワークを通して又はローカル接続を通して、別のマシンにセキュアにロードするように構成されたファームウェアセキュアローダを有することができる。セキュアエレメントは、
-ロードされたデジタル情報をデジタル情報セグメントにセグメント化し、これらのセグメントを認証して暗号化し(修正されたセグメントSj’の更新手順において記載したものと同じ様式で)、それらを外部メモリに書き込むことと、
-バージョンテーブルCtrlObjを生成し、このバージョンテーブルを認証して暗号化し(更新手順において記載したものと同じ様式で)、それを外部メモリに書き込むことと、を行うように構成することができる。
第2の実施形態は、第1の実施形態に基づいており、認証された暗号化アルゴリズムのみが、第1の実施形態とは異なる。第2の例示的な実施形態では、認証された暗号化は、「MAC-次いで-暗号化-次いで-MAC」タイプのアプローチに従う。このアプローチは、各デジタル情報セグメントSiに対して、第1の鍵k0_Vi(マスタ鍵k0から導出され、バージョン番号Viを入力として使用する)を使用して、セグメントSiの第1のMAC「MACi」を平文で計算し、次いで、第2の鍵k1_Si(マスタ鍵k1から導出され、バージョン番号Viを入力として使用する)を使用して、セグメントSiと第1のMACとを連結したもの(すなわち、Si|MACi))を暗号化し、次いで、第3の鍵k2_Si(マスタ鍵k2から導出され、バージョン番号Viを入力として使用する)を使用して、暗号化の結果(すなわち、[Si]|[MACi]])の第2のMAC「MACi」を計算して、保護されたセグメント[Si]|[MACi]|MACiを得ることである。
第3の実施形態は、第1の実施形態又は第2の実施形態に基づいており、認証動作及び/又は暗号解除動作において入力として使用されるデジタル情報セグメントの識別情報が、デジタル情報セグメントのバージョン番号のみを含むという点でのみ第1の実施形態又は第2の実施形態とは異なる。そのような実施形態は、例えば、セキュアエレメントが1つのデジタル情報セグメント又はデジタル情報断片のみをロードする場合に適切である。
異なるタイプのMAC機能が使用され得る。例えば、ブロック暗号ベースのメッセージ認証コードアルゴリズムであるCMAC(Cipher-based Message Authentication Code、暗号ベースのメッセージ認証コード)機能、又は暗号化ハッシュ関数及び秘密暗号鍵を含む特定のタイプのメッセージ認証コード(message authentication code、MAC)であるHMACアルゴリズム(hash-based message authentication code、ハッシュベースのメッセージ認証コード)を使用することができる。MAC機能の代わりに、任意の他の認証機能を使用することができる。

Claims (14)

  1. デジタル情報をセキュアに処理するためのセキュアエレメント(100)であって、前記デジタル情報が、セグメント化され、前記セキュアエレメント(100)の外部のメモリ(200)内の複数のM個のセグメントに記憶され、
    -前記複数のM個のデジタル情報セグメントをセキュアに処理するためのセキュアプロセッサ(110)と、
    -前記外部メモリ(200)からのデジタル情報(Si)セグメントを前記セキュアエレメント(100)にロードするように、かつ前記セキュアプロセッサ(110)によって前記デジタル情報セグメントを処理する前に、暗号化アルゴリズムを実行することによって前記デジタル情報セグメントを前処理するように構成されたシステム(140)と、を含み、
    前記システム(140)が、ロードされた前記デジタル情報セグメントの識別情報を判定することであって、前記識別情報の前記判定が、前記デジタル情報セグメントのバージョン番号を取得することを含む、判定することと、前記識別情報を使用することによって前記暗号化アルゴリズムを実行することと、を行うように構成されており、
    前記システム(140)が、前記複数のM個のデジタル情報セグメントの前記それぞれのバージョン番号を含むバージョンテーブル(CtrlObj)を前記外部メモリ(200)から前記セキュアエレメント(100)の内部メモリ(122)にロードし、前記内部メモリ(122)に記憶された前記バージョンテーブル(CtrlObj)にロードされている各デジタル情報セグメントの前記バージョン番号(Vi)を読み出すように構成されていることを特徴とする、セキュアエレメント(100)。
  2. 前記システム(140)が、前記デジタル情報セグメントの前記識別情報を判定することであって、前記識別情報の前記判定は前記デジタル情報セグメントのセグメント識別子を取得することを更に含む、判定することと、前記識別情報を使用することによって前記暗号化アルゴリズムを実行することと、を行うように構成され、前記セグメント識別子は、前記外部メモリ内の前記対応するデジタル情報セグメントに割り当てられたインデックス又は前記対応するデジタル情報セグメントのヘッダ内に存在する識別子のいずれかである、請求項1に記載のセキュアエレメント。
  3. 前記セキュアエレメントが、前記暗号化アルゴリズムを実行する際に前記システムによって使用される、前記セキュアエレメントに対して一意に生成された、少なくとも1つの一意の暗号鍵を記憶する、請求項1又は2に記載のセキュアエレメント。
  4. 前記システム(140)が、前記少なくとも1つの一意の暗号鍵及び前記デジタル情報(Si)の前記識別情報を入力として使用することによって、前記暗号化アルゴリズムによって使用される少なくとも1つの暗号鍵を生成する鍵導出関数を含む、請求項3に記載のセキュアエレメント。
  5. 前記暗号化アルゴリズムが、ロードされた前記デジタル情報セグメント(Si)を認証する認証アルゴリズム(MAC)を含む、請求項1~4のいずれか一項に記載のセキュアエレメント。
  6. 前記暗号化アルゴリズムが、ロードされた前記デジタル情報セグメント(Si)を暗号解除する暗号解除アルゴリズムを含む、請求項1~5のいずれか一項に記載のセキュアエレメント。
  7. 前記システム(140)が、前記デジタル情報セグメント(Si)の前記識別情報を入力として使用することによって、前記暗号解除アルゴリズム(144)によって使用される初期化ベクトル(IV)を生成するように構成されている、請求項6に記載のセキュアエレメント。
  8. 前記システム(140)が、前記バージョンテーブル(CtrlObj)の鮮度情報(CtrlObj_Version)を、前記セキュアエレメント(100)の内部不揮発性メモリ(130)に記憶された鮮度カウンタ(FC)と比較することによって、前記バージョンテーブル(CtrlObj)の前記鮮度情報(CtrlObj_Version)を検証するように更に構成されている、請求項1~7のいずれか一項に記載のセキュアエレメント。
  9. 前記システム(140)が、前記セキュアエレメント(100)の起動手順において、前記バージョンテーブル(CtrlObj)をロードするように構成されている、請求項1~8のいずれか一項に記載のセキュアエレメント。
  10. 前記システム(140)が、ロードされた前記バージョンテーブル(CtrlObj)を認証及び暗号解除するように構成されている、請求項1~9のいずれか一項に記載のセキュアエレメント。
  11. 前記デジタル情報(Sj)のセグメントが、前記セキュアプロセッサ(110)によって処理されるときに修正される場合に、前記修正されたデジタル情報(Sj’)セグメント及び更新されたバージョンテーブル(CtrlObj)を前記外部メモリ(200)に書き込み、前記内部不揮発性メモリ(130)内の前記鮮度カウンタをインクリメントする動作を制御するように構成された更新モジュール(150)を更に備える、請求項1~10のいずれか一項に記載のセキュアエレメント。
  12. 請求項1~12のいずれか一項に記載のセキュアエレメント(100)と、デジタル情報を記憶するための外部メモリ(200)と、を含む、システム。
  13. セキュアエレメント(100)によってデジタル情報をセキュアに処理するための方法であって、前記デジタル情報は、セグメント化され、前記セキュアエレメント(100)の外部のメモリ(200)内の複数のM個のセグメントに記憶され、前記セキュアエレメント(100)によって実行される以下の工程:
    -前記外部メモリ(200)からのデジタル情報セグメント([Si]k1|MAC[Si])を前記セキュアエレメント(100)にロードする工程(S54)と、
    -前記デジタル情報セグメントのバージョン番号(Vi)を取得することによって、ロードされた前記デジタル情報セグメントの識別情報を判定する工程と、
    -前記セキュアエレメント(100)のセキュアプロセッサ(110)によって前記デジタル情報セグメント(Si)を処理する前に、前記識別情報を使用して暗号化アルゴリズムを実行することよって前記デジタル情報セグメント([Si]k_1|MAC)を前処理する工程(S56~S58)と、
    -前記セキュアプロセッサ(110)によって前記デジタル情報セグメント(Si)をセキュアに処理する工程(S59)と、を含み、
    前記方法が、
    前記複数のM個のデジタル情報セグメントのそれぞれのバージョン番号を含むバージョンテーブル(CtrlObj)を、前記外部メモリ(200)から前記セキュアエレメント(100)の内部メモリ(122)にロードする工程と、前記内部メモリ(122)に記憶された前記バージョンテーブル(CtrlObj)にロードされている各デジタル情報セグメントの前記バージョン番号(Vi)を読み出す工程と、を更に含むことを特徴とする、方法。
  14. 前記バージョンテーブル(CtrlObj)の鮮度情報(CtrlObj_Version)を、前記セキュアエレメント(100)の内部不揮発性メモリ(130)に記憶された鮮度カウンタ(FC)と比較することによって、前記バージョンテーブル(CtrlObj)の前記鮮度情報(CtrlObj_Version)を検証する工程を更に含む、請求項13に記載の方法。
JP2022570416A 2020-05-20 2021-04-27 デジタル情報をセキュアに処理するためのセキュアエレメント Pending JP2023525896A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20175606.1 2020-05-20
EP20175606.1A EP3913517B1 (en) 2020-05-20 2020-05-20 Secure element for securely processing digital information
PCT/EP2021/060973 WO2021233649A1 (en) 2020-05-20 2021-04-27 Secure element for securely processing digital information

Publications (2)

Publication Number Publication Date
JP2023525896A true JP2023525896A (ja) 2023-06-19
JPWO2021233649A5 JPWO2021233649A5 (ja) 2024-04-16

Family

ID=70779594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022570416A Pending JP2023525896A (ja) 2020-05-20 2021-04-27 デジタル情報をセキュアに処理するためのセキュアエレメント

Country Status (7)

Country Link
US (1) US20230205934A1 (ja)
EP (1) EP3913517B1 (ja)
JP (1) JP2023525896A (ja)
KR (1) KR20230012488A (ja)
CN (1) CN115699005A (ja)
ES (1) ES2958182T3 (ja)
WO (1) WO2021233649A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4246353A1 (en) * 2022-03-14 2023-09-20 Nagravision Sarl Method to prevent anti-replay attack

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7657756B2 (en) * 2004-10-08 2010-02-02 International Business Machines Corporaiton Secure memory caching structures for data, integrity and version values
EP2860660A1 (fr) 2013-10-11 2015-04-15 Nagravision S.A. Système et méthode de chargement sécurisé de données dans une mémoire cache associée à un processeur sécurisé
US9904805B2 (en) * 2015-09-23 2018-02-27 Intel Corporation Cryptographic cache lines for a trusted execution environment

Also Published As

Publication number Publication date
CN115699005A (zh) 2023-02-03
EP3913517A1 (en) 2021-11-24
ES2958182T3 (es) 2024-02-05
KR20230012488A (ko) 2023-01-26
EP3913517C0 (en) 2023-09-06
EP3913517B1 (en) 2023-09-06
US20230205934A1 (en) 2023-06-29
WO2021233649A1 (en) 2021-11-25

Similar Documents

Publication Publication Date Title
TWI676116B (zh) 安全儲存系統以及用於安全儲存的方法
US11218299B2 (en) Software encryption
US9563769B2 (en) System and method for secure loading data in a cache memory
US10735190B1 (en) Persistent TPM-based identifier and key pair
US20130227281A1 (en) Managing data
US10691619B1 (en) Combined integrity protection, encryption and authentication
US20200195447A1 (en) Communication method of client device, issuing device and server
US11126567B1 (en) Combined integrity protection, encryption and authentication
CN109635593A (zh) 电力***中基于电力缴费终端的数据完整性存储保护方法
US20160335453A1 (en) Managing Data
US20230205934A1 (en) Secure element for securely processing digital information
US8499357B1 (en) Signing a library file to verify a callback function
US11947676B2 (en) Processor system with a communication interface
US10461926B2 (en) Cryptographic evidence of persisted capabilities
EP3836478A1 (en) Method and system of data encryption using cryptographic keys
CN115203708B (zh) 一种应用数据部署至协处理器的方法及***
CN116886357A (zh) 一种移动平台分布式数字身份认证方法、装置及介质
CN117353920B (zh) 一种密钥派生方法、处理器和相关设备
US20230153470A1 (en) Method for processing digital information
CN116566744B (zh) 数据处理方法和安全校验***
US20240064130A1 (en) Authenticating key-value data pairs for protecting node related data
Kösemen et al. Tamper resistance functions on Internet of Things devices
US20240249002A1 (en) Storage system including storage device and host provisioning certificate into the storage device, system including the storage system, and method of operating the system
US20230319048A1 (en) Secured data access in virtual data processing
WO2024097428A1 (en) Owner revocation emulation container

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20230904

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20230912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240403

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240403