(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-05-15
(54)【発明の名称】セキュアエレメント内のデジタル情報を安全に処理する方法
(51)【国際特許分類】
H04L 9/10 20060101AFI20230508BHJP
G06F 11/10 20060101ALI20230508BHJP
【FI】
H04L9/10 A
G06F11/10 648
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022558340
(86)(22)【出願日】2021-03-25
(85)【翻訳文提出日】2022-09-26
(86)【国際出願番号】 EP2021057819
(87)【国際公開番号】W WO2021198035
(87)【国際公開日】2021-10-07
(32)【優先日】2020-03-31
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】522305092
【氏名又は名称】ナグラビジョン エス アー エール エル
【氏名又は名称原語表記】NAGRAVISION SARL
【住所又は居所原語表記】22-24 route de Geneve 1033 Cheseaux-sur-Lausanne Switzerland
(74)【代理人】
【識別番号】100196449
【氏名又は名称】湯澤 亮
(72)【発明者】
【氏名】ハウティエ, ロウン
(72)【発明者】
【氏名】ヴィレガス, カリーヌ
(57)【要約】
【解決手段】 デジタル情報を安全に処理するための方法は、セキュアプロセッサ(102)を有するセキュアエレメント(100)によって実施される、
-デジタル情報(Si’’)を外部メモリ(200)からセキュアエレメント(100)にロードするステップ(S10)と、
-デジタル情報(Si)をデジタル情報のワード(Wij,k)にセグメント化し、デジタル情報のワードからエラー検出コード(EDCj,k)又はエラー補正コード(ECC
j,k)を生成し、エラー検出コードを対応するワードに関連付けるステップ(S13)と、
-デジタル情報のワード(Wij,k)及び関連付けられたエラー検出コード(EDCj,k)又はエラー補正コード(ECC
j,k)をセキュアプロセッサ(102)に転送するステップ(S15)と、
-セキュアプロセッサ(102)において、ワード(Wij,k)に含まれたデジタル情報を処理する前に、関連付けられたエラー検出コード(EDCj,k)又はエラー補正コード(ECC
j,k)に基づいてデジタル情報のワード(Wi
j,k)を確認するステップ(S16)と、を有する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
デジタル情報を安全に処理するための方法であって、セキュアプロセッサ(102)と、両方とも前記セキュアプロセッサ(102)の外部にある少なくとも1つの内部メモリ(107)及びコード関連付けユニット(106)とを含むセキュアエレメント(100)によって実施される、
-デジタル情報(Si’’)を、外部メモリ(200)から、前記セキュアエレメント(100)の前記少なくとも1つの内部メモリ(107)にロードするステップ(S10)と、
-前記コード関連付けユニット(103)において、前記デジタル情報(Si)をデジタル情報のワード(Wi
j,k)にセグメント化し、エラー検出コード(EDC
j,k)又はエラー補正コード(ECC
j,k)を前記デジタル情報のワードから生成し、前記エラー検出コード又はエラー補正コードを前記少なくとも1つの内部メモリ(107)内の対応するワードと関連付けるステップ(S13)と、
-前記デジタル情報のワード(Wi
j,k)及び関連付けられた前記エラー検出コード(EDC
j,k)又はエラー補正コード(ECC
j,k)を前記少なくとも1つの内部メモリ(107)から前記セキュアプロセッサ(102)に転送するステップ(S15)と、
-前記セキュアプロセッサ(102)において、前記ワード(Wi
j,k)に含まれる前記デジタル情報を処理する前に、関連付けられた前記エラー検出コード(EDC
j,k)又はエラー補正コード(ECC
j,k)に基づいて、前記デジタル情報のワード(Wi
j,k)を確認するステップ(S16)と、を含む、方法。
【請求項2】
前記エラー検出コード又はエラー補正コードを前記対応するワードと関連付ける前記ステップ(S13)の後、かつ前記デジタル情報のワード及び関連付けられた前記エラー検出コード(EDC
j,k)又はエラー補正コード(ECC
j,k)を前記セキュアプロセッサ(102)に転送すること(S15)の前に実施される、前記デジタル情報の完全性を確認するステップ(S14)を更に含む、請求項1に記載の方法。
【請求項3】
前記外部メモリ(200)からロードされた前記デジタル情報を復号化して、平文の前記デジタル情報を取得するステップ(S12)を更に含み、ワードにセグメント化する前記ステップ(S13)が、平文の前記デジタル情報に対して実施される、請求項1又は2に記載の方法。
【請求項4】
暗号化された形態の前記デジタル情報の前記完全性を確認するステップ(S11)を更に含む、請求項3に記載の方法。
【請求項5】
前記デジタル情報のワード(Wi
j,k)が、前記エラー検出コード(EDC
j,k)又はエラー補正コード(ECC
j,k)に関連して前記セキュアエレメント(100)の内部メモリ(106)に記憶され、前記デジタル情報のワードを前記エラー検出コード又はエラー補正コードと関連付ける前記ステップの後に実施される、前記デジタル情報の前記完全性を確認する前記ステップ(S14)において、前記完全性の確認を実施するために前記デジタル情報のワード(Wi
j,k)が前記内部メモリ(106)から読み出されることを特徴とする、請求項2~4のいずれか一項に記載の方法。
【請求項6】
前記デジタル情報のワード(Wi
j,k)及び関連付けられた前記エラー検出コード(EDC
j,k)又はエラー補正コード(ECC
j,k)が、前記関連付けるエラー検出又はエラー補正コードを前記対応するワードと関連付ける前記ステップ(S13)の後に前記デジタル情報の前記完全性が問題なく確認された場合にのみ、前記セキュアプロセッサ(102)に転送されることを特徴とする、請求項2~5のいずれか一項に記載の方法。
【請求項7】
前記デジタル情報が、前記セキュアプロセッサ(102)の作業フォーマット又は前記セキュアプロセッサ(102)のレジスタの容量に依存する所定のサイズのワード(Wi
j,k)にセグメント化されることを特徴とする、請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記デジタル情報が、前記外部メモリ(200)にセグメント(Si’’)の状態で記憶されており、前記デジタル情報をロードする前記ステップ(S10)及び前記デジタル情報をワードにセグメント化する前記ステップ(S13)が、前記セグメントの各々に対して繰り返し実施されることを特徴とする、請求項1~7のいずれか一項に記載の方法。
【請求項9】
-前記外部メモリ(200)から各セグメントをロードする前記ステップ(S10)において、前記セキュアエレメント(100)が、暗号化された形態のデジタル情報及び完全性要素(MACi
2)をロードし、
-前記暗号化された形態のデジタル情報の前記完全性を確認する前記ステップ(S11)において、前記セキュアエレメント(100)が、暗号化された形態の所定バイト数(Ci
0,...,Ci
L)のL+1個のブロック(Ci
0,...,Ci
L)における連鎖計算によって完全性要素を計算し、計算された前記完全性要素をロードされた前記完全性要素(MACi
2)と比較することを特徴とする、請求項4に従属するときの請求項8に記載の方法。
【請求項10】
-復号化する前記ステップ(S12)において、暗号化された形態のN+1個のブロック(Ci
0,...,Ci
N)が、平文のデジタル情報のN個のブロック(Pi
0,...,Pi
N-1)及び別の完全性要素(MACi
1)に復号化され、
-セグメント化する前記ステップ(S13)において、平文のデジタル情報の前記N個のブロックの各々(Pi
0,...,Pi
N-1)がデジタル情報のワード(Wi
j,k)に分割されることを特徴とする、請求項3及び9に記載の方法。
【請求項11】
-前記エラー検出コード(EDC
j,k)又はエラー補正コード(ECC
j,k)を前記対応するワード(Wi
j,k)に関連付ける前記ステップ(S13)の後に実施される前記デジタル情報の前記完全性を確認する前記ステップ(S14)において、前記セキュアエレメント(100)が、平文のデジタル情報のL個のブロック(Pi0,...,Pi
L-1)における連鎖計算によって完全性要素を計算し、計算された前記完全性要素を、復号化する前記ステップ(S12)から得られる前記他の完全性要素(MACi
1)と比較することを特徴とする、請求項10及び2に記載の方法。
【請求項12】
デジタル情報プロバイダによって実施される、
-前記平文のデジタル情報をセグメント(Si)にセグメント化するステップと、
-デジタル情報の各セグメント(Si)について、
・前記平文のデジタル情報のための第1の完全性要素(MACi
1)を計算し、
・前記デジタル情報及び前記第1の完全性要素(MACi
1)を暗号化し、
・前記暗号化の結果の第2の完全性要素(MACi
2)を計算し、前記暗号化の結果及び前記第2の完全性要素(MACi
2)を連結し、
・第2の完全性と連結された前記暗号化の結果を前記外部メモリ(200)に記憶するステップと、を更に含む、請求項1~11のいずれか一項に記載の方法。
【請求項13】
前記セキュアエレメント(100)によってデジタル情報のセグメント(Si
C)が修正されたときに、前記セキュアエレメント(100)が、
・前記平文のデジタル情報のための第1の完全性要素(MACi
C_1)を計算するステップと、
・前記デジタル情報及び前記第1の完全性要素([Si
C’]]=[Si
C]|[MACi
C_1]を暗号化するステップと、
・前記暗号化の結果の第2の完全性要素(MACi
C_2)を計算し、前記暗号化の結果及び前記第2の完全性要素(MACi
2)を連結するステップと、
・前記第2の完全性要素(Si
C’’)と連結された前記暗号化の結果によって、前記外部メモリ(200)に現在記憶されている前記セグメントを更新するステップと、を実行することによって、前記外部メモリ(200)におけるデジタル情報の前記セグメントを更新することを特徴とする、請求項12に記載の方法。
【請求項14】
前記デジタル情報のワード(Wi
j,k)においてエラーが検出されない場合にのみ、前記デジタル情報のワードが、前記セキュアプロセッサ(102)によって処理されることを特徴とする、請求項1~13のいずれか一項に記載の方法。
【請求項15】
関連付けられた前記エラー検出コード(EDC
j,k)又はエラー補正コード(ECC
j,k)に基づいて、前記セキュアプロセッサ(102)によってデジタル情報のワード(Wi
j,k)を確認する前記ステップ(S16)が失敗した場合、前記デジタル情報の前記ワード(Wi
j、k)が関連しないとして取り扱われるか、又は前記デジタル情報を安全に処理するための前記方法が中止されることを特徴とする、請求項1~14のいずれか一項に記載の方法。
【請求項16】
デジタル情報を安全に処理するためのセキュアエレメント(100)であって、
-セキュアプロセッサ(102)と、
-少なくとも1つの内部メモリ(107)と、
-前記デジタル情報を外部メモリ(200)から前記セキュアエレメント(100)の前記少なくとも1つの内部メモリにロードするための通信インターフェース(101)と、
-前記デジタル情報をデジタル情報のワード(Wi
j,k)にセグメント化し、前記デジタル情報のワードからエラー検出コード(EDCj,k)又はエラー補正コード(ECC
j,k)を生成し、前記エラー検出コード(EDC
j,k)又はエラー補正コード(ECC
j,k)を前記少なくとも1つの内部メモリ(107)における対応するワード(Wi
j,k)に関連付けるためのコード関連付けユニット(106)と、を含み、
前記セキュアプロセッサ(102)が、前記少なくとも1つの内部メモリ(107)から前記デジタル情報のワード(Wi
j,k)及び関連付けられた前記エラー検出コード(EDC
j,k)又はエラー補正コード(ECC
j,k)をロードし、前記ワードに含まれた前記デジタル情報を処理する前に、関連付けられた前記エラー検出コード又はエラー補正コードに基づいて前記デジタル情報のワードを確認するように構成されている、セキュアエレメント(100)。
【請求項17】
前記少なくとも1つの内部メモリ(107)から読み出された前記デジタル情報のワードに基づいて、前記デジタル情報の完全性を確認するように構成された完全性確認ユニット(105)を更に含む、請求項16に記載のセキュアエレメント。
【請求項18】
暗号化された形態の前記デジタル情報の完全性を確認するための完全性確認ユニット(103)と、ロードされた前記デジタル情報を復号化して、平文の前記デジタル情報を取得するための復号化ユニット(104)と、を更に含む、請求項16又は17に記載のセキュアエレメント。
【請求項19】
請求項16~18のいずれかに記載のセキュアエレメントを含む、システムオンチップ。
【請求項20】
前記セキュアエレメント(100)の外側に位置する外部メモリ(200)を更に含む、請求項19に記載のシステムオンチップ。
【請求項21】
請求項20に記載のシステムオンチップを含む、モジュール。
【請求項22】
前記セキュアエレメント(100)の外側に位置する前記外部メモリ(200)が、前記システムオンチップの内側又は前記システムオンチップの外側のいずれかに位置する、請求項21に記載のモジュール。
【請求項23】
非一時的コンピュータ可読媒体であって、前記非一時的コンピュータ可読媒体が、デジタル情報を安全に処理するためのセキュアエレメントに、請求項1に記載の方法のステップを実施させるためのプログラム命令を含み、前記セキュアエレメントが、セキュアプロセッサを有する、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータセキュリティの分野に関し、より正確には、コード及び/又はデータなどのデジタル情報をセキュアエレメント、例えば、スマートカードで安全に処理することに関する。
【背景技術】
【0002】
一般に、スマートカードなどのセキュアエレメントは、セキュア処理ユニット(secure processing unit、SCPU)、揮発性メモリ、及び不揮発性メモリなどのハードウェアリソースを含む。不揮発性メモリは、1つ以上のコード(アプリケーション)及びデータを記憶し、実行又は処理される必要がある場合、コード及び/又はデータが揮発性メモリにロードされ得る。セキュアエレメントは、いくつかの処理ユニット、いくつかのメモリ、及びいくつかの機能を有するSoC(System on the Chip)に埋め込まれ得る。SoCは、より大きなモジュールに統合され得る。
【0003】
IoTシステム(すなわち、Internet of Thingsシステム)のような制約環境では、セキュアエレメントは、限定された量の情報、例えば、カウンタ及び/又は鍵を記憶するために使用される、OTP(one time programmable)メモリなどの小さな不揮発性メモリのみを有し得る。セキュアエレメントは、コード及びデータを記憶するために使用されない。セキュアエレメントのコストを低く保つために、コード及びデータは、外部の不揮発性メモリに記憶され、これは、セキュアエレメントの外側、例えば、SoC又はSoCの外側のモジュール内にある。コード及び/又はデータは、実行又は処理される必要がある場合、セキュアエレメントの揮発性メモリにロードされる。
【0004】
そのような制約コンテキストでは、外部メモリからセキュアエレメントの内部メモリにロードされ、セキュアエレメントによって処理又は実行されるときに、外部メモリに記憶されたときにデジタル情報(コード及び/又はデータ)を安全にすることが重要である。特に、デジタル情報は、物理的攻撃から保護されなければならない。
【0005】
そのような物理的攻撃は、スマートカード及びSoCのような離散要素に関与する。それらは、遠隔で実施することができる。今日、既知の物理的攻撃には2つの主要な種類がある。
【0006】
第1の種類の物理的攻撃は、「サイドチャネル攻撃」と命名されている。サイドチャネル攻撃は、コンピュータシステム、例えば、セキュアエレメントの実装から得られた情報に基づく任意の攻撃である。タイミング情報、電力消費、電磁漏れ、音は、利用することができる追加の情報源を提供することができる。セキュアエレメントの動作中、例えば、CPUによる暗号化アルゴリズムの実行又は1つのメモリから別のメモリへのデータの転送の間に、攻撃者は、セキュアエレメントの物理的挙動を捕捉するために電磁発散又は電力消費をリスニングし得る。そのようなリスニングは、鍵のような秘密情報を取得することを可能にする。例えば、処理ユニットが秘密情報を使用して暗号化アルゴリズムを実行する場合、秘密情報を取得するためにオシロスコープによって捕捉することができる特定の電力消費を有する。
【0007】
第2の種類の物理的攻撃は、「フォールト攻撃」と呼ばれる。フォールト攻撃は、暗号化システム又は任意の敏感なシステムでエラーを意図的に生成することを伴う技術のファミリーである。これらの攻撃は、暗号プロセッサ、又はソフトウェアコンポーネントのようなハードウェアに関連することができる。それらは、暗号化鍵などの秘密情報を抽出するために、暗号化又は敏感な動作の異常な挙動を引き起こすことを意図している。セキュアエレメントによって実行される動作中に、例えば、電源を変更し、クロックを変更し、又はレーザパルスを注入することによって、フォールトを注入することができる。注入されたフォールトは、セキュアエレメントのいくつかの電子ハードウェアの挙動を変更することをもたらし得る。例えば、暗号化動作中、攻撃者は、暗号化を遮断するフォールトを注入することができる。これは、出力が平文であり、暗号化されていないことを意味する。それは簡単な攻撃である。フォールトはPIN確認中に注入することもでき、それが間違った値であっても、PINを有効と見なすことができる。別の例では、データを出力するコマンド中に、フォールトは、出力バッファのポインタを変更し、秘密に維持するべき内部値をダンプすることを可能にすることができる。
【0008】
フォールト攻撃及び物理的攻撃を、組み合わせることもできる。
【発明の概要】
【発明が解決しようとする課題】
【0009】
状況を改善する必要がある。より正確には、外部の不揮発性メモリに記憶されたとき、外部メモリからセキュアエレメントにロードされるとき、及びセキュアエレメントによって処理されるときに、デジタル情報を任意の時点で安全にする必要がある。
【0010】
本開示は、デジタル情報を安全に処理するための方法であって、セキュアプロセッサと、両方ともセキュアプロセッサの外部にある少なくとも1つの内部メモリ及びコード関連付けユニットとを含むセキュアエレメントによって実施される、
-デジタル情報を、外部メモリから、セキュアエレメントの少なくとも1つの内部メモリにロードするステップと、
-コード関連付けユニットにおいて、デジタル情報をデジタル情報のワードにセグメント化し、エラー検出コード又はエラー補正コードのいずれかであるコードをデジタル情報のワードから生成し、コードを少なくとも1つの内部メモリ内の対応するワードと関連付けるステップと、
-少なくとも1つの内部メモリからセキュアプロセッサにデジタル情報のワード及び関連付けられたコードを転送するステップと、
-セキュアプロセッサにおいて、ワードに含まれるデジタル情報を処理する前に、関連付けられたエラー検出コード又はエラー補正コードに基づいて、デジタル情報のワードを確認するステップと、を含む、方法に関する。
【0011】
デジタル情報の小さなワードへのエラー検出コード(error-detection code、EDC)又はエラー補正コード(error-correction code、ECC)の追加は、セキュアプロセッサにワードを転送する前に、セキュアエレメント内の攻撃によってデジタル情報が修正されていないことを確実にすることを可能にする。実際、所与のワードと関連付けられたEDC又はECCは、このワードにおける1つ以上のエラーを検出することを可能にする。
【0012】
エラー補正コードが生成される場合、所与のワードに関連付けられたECCを使用して、ワードのエラーを検出するだけでなく、ワードの1つ以上のビットを補正することもできる。
【0013】
有利には、方法は、エラー検出コード又はエラー補正コードを対応するワードと関連付けるステップの後、かつデジタル情報のワード及び関連付けられたエラー検出コード又はエラー補正コードをセキュアプロセッサに転送する前に実施される、デジタル情報の完全性を確認するステップを更に含む。
【0014】
完全性の確認は、デジタル情報をワードにセグメント化した後に実行され、デジタル情報自体のワードを使用することができる。これにより、関連付けられたエラー検出コード又はエラー補正コードでセキュアプロセッサに転送されるワードが破損しないことを確実にする。
【0015】
有利には、方法は、外部メモリからロードされたデジタル情報を復号化して、平文のデジタル情報を取得するステップを更に含み、ワードにセグメント化するステップが、平文のデジタル情報に対して実施される。
【0016】
暗号化は、外部メモリに記憶されたとき、及び外部メモリからセキュアエレメントに転送されるときにデジタル情報を保護することを可能にする。
【0017】
有利には、方法は、暗号化された形態のデジタル情報の完全性を確認するステップを更に含む。これにより、攻撃者が暗号化を変更しないことを確実にする。
【0018】
したがって、いくつかの実施形態では、デジタル情報の保護は、周知の「Encrypt-then-MAC」(EtM)アプローチに基づくものであり、タイプ「MAC-then-Encrypt-then-MAC」であることができる。EtMアプローチは、認証された暗号化の最も堅牢なアプローチと見なされるが、データを特定のレベルまで保護するのみである。本開示では、平文のデジタル情報も認証することができる。その場合、デジタル情報は、鍵K0で平文値の第1のMACを計算し、次いで、鍵K1で第1のMACで認証されたデジタル情報を暗号化し、次いで、認証及び暗号化されたデジタル情報についてK2で第2のMACを計算することによって保護される。このようにして、デジタル情報は、平文の形態の第1のMACと、暗号化された形態の第2のMACとによって認証される。これにより、デジタル情報は、保管中、及び外部メモリからセキュアエレメントへの転送中に変更又は破損されていないことを確実にする。
【0019】
有利には、デジタル情報のワードが、エラー検出コード又はエラー補正コードに関連してセキュアエレメントの内部メモリに記憶され、デジタル情報のワードをエラー検出コード又はエラー補正コードと関連付けるステップの後に実施されるデジタル情報の完全性を確認するステップにおいて、完全性の確認を実施するためにデジタル情報のワードが内部メモリから読み出される。
【0020】
これにより、セキュアプロセッサに転送されるセキュアエレメントの内部メモリに記憶されているデジタル情報のワードの完全性を確認することが可能になる。これにより、セキュアプロセッサに転送される準備が整ったワードが変更されていないことが確実になる。それは、セキュアエレメント内のセキュアプロセッサによって処理するために、外部メモリ内のストレージからエンドツーエンドのセキュリティを提供する。
【0021】
有利には、デジタル情報のワード及び関連付けられたエラー検出コード又はエラー補正コードが、エラー検出又はエラー補正コードを対応するワードと関連付けるステップの後にデジタル情報の完全性が問題なく確認された場合にのみ、セキュアプロセッサに転送される。
【0022】
デジタル情報は、セキュアプロセッサの作業フォーマット、又はセキュアプロセッサのレジスタの容量に依存する所定のサイズのワードにセグメント化することができる。
【0023】
エラー検出コード又はエラー補正コードが追加されるワードのサイズは、セキュアプロセッサのアーキテクチャに適合される。典型的には、それは、セキュアプロセッサによって使用されるフォーマット(すなわち、セキュアプロセッサによって取り扱われるデジタルブロックのサイズ)に対応する。ワードのサイズは、セキュアプロセッサのレジスタのサイズに対応し得る。例えば、セキュアプロセッサは、8ビット又は16ビット又は32ビット又は64ビットプロセッサ(そのレジスタのサイズに対応する示されたビット値)であることができる。その場合、ワードのサイズは、プロセッサレジスタのサイズ(すなわち、それぞれ8ビット又は16ビット又は32ビット又は64ビット)に設定することができる。しかしながら、いくつかの計算では、セキュアプロセッサの作業フォーマット(すなわち、計算の実行中にセキュアプロセッサによって操作又は処理されるデジタルブロックのサイズ又はフォーマット)は、プロセッサレジスタのサイズよりも小さくてもよい。例えば、セキュアプロセッサの作業フォーマットは8ビットであることができ、セキュアプロセッサのレジスタは32ビットである。ワードのサイズが適合される。
【0024】
いくつかの実施形態では、デジタル情報が、外部メモリにセグメントの状態で記憶されており、デジタル情報をロードするステップ及びデジタル情報をワードにセグメント化するステップが、セグメントの各々に対して繰り返し実施される。
【0025】
特定の実施形態では、
-外部メモリから各セグメントをロードするステップにおいて、セキュアエレメントが、暗号化された形態のデジタル情報及び完全性要素をロードし、
-暗号化された形態のデジタル情報の完全性を確認するステップにおいて、セキュアエレメントが、暗号化された形態の所定バイト数のL+1個のブロックにおける連鎖計算によって完全性要素を計算し、計算された完全性要素をロードされた完全性要素と比較する。
【0026】
有利には、
-復号化のステップにおいて、暗号化された形態のN+1個のブロックが、平文のデジタル情報のN個のブロック及び別の完全性要素に復号化され、
-セグメント化するステップにおいて、平文のデジタル情報のN個のブロックの各々がデジタル情報のワードに分割される。
【0027】
有利には、エラー検出コード又はエラー補正コードを対応するワードに関連付けるステップの後に実施されるデジタル情報の完全性を確認するステップにおいて、セキュアエレメントが、平文のデジタル情報のL個のブロックにおける連鎖計算によって完全性要素を計算し、計算された完全性要素を、復号化のステップから得られる他の完全性要素と比較する。
【0028】
この方法は、デジタル情報プロバイダによって実施される以下のステップであって、
-平文のデジタル情報をセグメントにセグメント化するステップと、
-デジタル情報の各セグメントについて、
・平文のデジタル情報のための第1の完全性要素計算するステップと、
・デジタル情報及び第1の完全性要素を暗号化するステップと、
・暗号化の結果の第2の完全性要素を計算し、暗号化の結果及び第2の完全性要素を連結するステップと、
・第2の完全性と連結された暗号化の結果を外部メモリに記憶するステップと、を更に含むことができる。
【0029】
更に、セキュアエレメントによってデジタル情報のセグメントが修正されたときに、セキュアエレメントが、以下のステップであって、
・平文のデジタル情報のための第1の完全性要素を計算するステップと、
・デジタル情報及び第1の完全性要素を暗号化するステップと、
・暗号化の結果の第2の完全性要素を計算し、暗号化の結果及び第2の完全性要素を連結するステップと、
・第2の完全性要素と連結された暗号化の結果によって、外部メモリに現在記憶されているセグメントを更新するステップと、を実行することによって、外部メモリにおけるデジタル情報のセグメントを更新することができる。
【0030】
任意選択的に、各ブロックの各ワードは、セキュアエレメントに記憶されたそれ自体のエラー検出コード又はエラー補正コードを有することができ、これは、第1の完全性要素を計算した後、かつデジタル情報のN個のブロックを暗号化する前に確認することができる。そのため、暗号化経路は、フォールト攻撃に対してより耐性がある。
【0031】
有利には、デジタル情報のワードは、デジタル情報のワードにおいてエラーが検出されない場合にのみ、セキュアプロセッサによって処理される。
【0032】
関連付けられたエラー検出又はエラー補正コードに基づいてセキュアプロセッサによってデジタル情報のワードを確認するステップが失敗すると、デジタル情報のワードは、セキュアプロセッサによって関連しないものとして取り扱うことができ、又はデジタル情報を安全に処理するための方法は、セキュアエレメントによって中止することができる。
【0033】
本開示の第2の態様は、デジタル情報を安全に処理するためのセキュアエレメントであって、
-セキュアプロセッサと、
-少なくとも1つの内部メモリと、
-デジタル情報を外部メモリからセキュアエレメントの少なくとも1つの内部メモリにロードするための通信インターフェースと、
-デジタル情報をデジタル情報のワードにセグメント化し、デジタル情報のワードからエラー検出コード又はエラー補正コードを生成し、生成されたコードを少なくとも1つの内部メモリにおける対応するワードに関連付けるためのコード関連付けユニットと、を含み、
セキュアプロセッサが、少なくとも1つの内部メモリからデジタル情報のワード及び関連付けられたエラー検出コード又はエラー補正コードをロードし、ワードに含まれたデジタル情報を処理する前に、関連付けられたエラー検出コード又はエラー補正コードに基づいてデジタル情報のワードを確認するように構成されている、デジタル情報を安全に処理するためのセキュアエレメントに関する。
【0034】
有利には、少なくとも1つの内部メモリから読み出されたデジタル情報のワードに基づいて、デジタル情報の完全性を確認するように構成された完全性確認ユニットを更に含む。
【0035】
セキュアエレメントは、暗号化された形態のデジタル情報の完全性を確認するための完全性確認ユニットと、ロードされたデジタル情報を復号化して、平文のデジタル情報を取得するための復号化ユニットと、を更に含むことができる。
【0036】
本開示の第3の態様は、以前に定義されたセキュアエレメントを含むシステムオンチップに関する。
【0037】
システムオンチップは、セキュアエレメントの外側に位置する外部メモリを有することができる。
【0038】
本開示の第4の実施形態は、システムオンチップを含むモジュールに関する。
【0039】
有利には、モジュールにおいて、セキュアエレメントの外側に位置する外部メモリは、システムオンチップの内側又はシステムオンチップの外側のいずれかに位置する。
【0040】
本開示の第5の態様は、デジタル情報を安全に処理するためのセキュアエレメントであって、セキュアエレメントがセキュアプロセッサを含む、セキュアエレメントに、以前に定義された方法のステップを実施させるためのプログラム命令を含む、非一時的コンピュータ可読媒体に関する。
【図面の簡単な説明】
【0041】
本開示の他の特徴、目的、及び利点は、添付の図面を参照してなされた非限定的な実施形態の詳細な記述を読むことによってより明確になるであろう。
【
図1】
図1は、例示的な実施形態による、セキュアエレメントを有するSoC(システムオンチップ)を埋め込むモジュールを示す。
【
図2】
図2は、例示的な実施形態による、外部メモリ(すなわち、セキュアエレメントの外部にある)に記憶され、セキュアエレメントにロードされやすいデジタル情報を準備するオペレーションを示す。
【
図3】
図3は、例示的な実施形態による、外部メモリからセキュアエレメントにロードされた後、セキュアエレメントによってデジタル情報を処理するオペレーションを示す。
【
図4】
図4は、例示的な実施形態による、セキュアエレメントを表す。
【
図5】
図5は、例示的な実施形態による、外部メモリに記憶されるデジタル情報を準備する方法のフローチャートを表す。
【
図6】
図6は、例示的な実施形態による、セキュアエレメントによって実行される、外部メモリに記憶されたデジタル情報を安全に処理する方法のフローチャートを表す。
【発明を実施するための形態】
【0042】
図1は、セキュアエレメント100及び外部メモリ200(すなわち、セキュアエレメントの外部にある)を含むシステムを示す。セキュアエレメントは、例えば、スマートカード又はチップである。それは、いくつかの処理ユニット、いくつかのメモリ及びいくつかの機能(図示せず)を有するSoC(システムオンチップ)110に埋め込むことができる。SoC110は、より大きなモジュール120に統合され得る。例えば、このより大きなモジュール120は、IoTデバイス(典型的には、独特の識別子及びネットワークを介してデータを転送する能力)、遠隔通信装置、位置システム、自動車又は航空機のような車両などであることができる。
【0043】
セキュアエレメント100は、セキュア処理ユニット102、例えば、統合されたハードウェア知的財産コア(IPコア)を有する。
【0044】
セキュアエレメント100の異なる典型的かつ例示的な使用事例(限定的ではない)を以下に示す。
【0045】
第1の典型的な使用事例では、セキュアエレメント100は、電気通信システム又は装置のモデムに統合することができる。そのような場合、セキュアエレメント100は、ネットワーク認証を取り扱い、セキュアアプリケーションをダウンロードすることができる。
【0046】
第2の典型的な使用事例では、セキュアエレメント100は、タコグラフに統合され、位置データを安全に取り扱うことができる。
【0047】
第3の典型的な使用事例では、セキュアエレメント100は、車両、例えば、自動車又は航空機に統合され、安全データ輸送を確保及び管理することができる。
【0048】
外部メモリ200は、デジタル情報を記憶する。「デジタル情報」という用語は、実行可能コード、又は実行可能コードによって生成されるか若しくは実行可能コードによって使用される情報、又はセキュアエレメント100によって使用若しくは処理される任意の他のデータなどの、セキュアエレメント100にロードされやすいデータを指す。
【0049】
セキュアエレメント100は、外部メモリ200に記憶されたデジタル情報をロード及び処理(又は使用)することが意図されている。
【0050】
典型的な実施形態では、メモリのセグメント化が、外部メモリ200において使用される。デジタル情報はセグメント化され、セグメントの状態で記憶される。
【0051】
セグメントは、所定のバイト数のいくつかのブロックで構成される。例えば、ブロックは、16バイトの長さ(16B又は128ビット)であることができる。デジタル情報のセグメントは、例えば、16バイトの64ブロックを含むことができ、これは、1キロバイト長(1KB)のセグメントにほぼ対応する。各セグメントは、それと関連付けられた一連の属性(セグメントに含まれるデータのタイプ、セグメントの長さ、セグメントのアドレス、データのバージョンなど)を有する。これらの属性は、セグメントに取り付けられたヘッダに記録される。2つの主要な異なるタイプのセグメント、すなわち、実行可能なコードを含むコードセグメントと、コードセグメント又はアプリケーションによって使用することができる又はアプリケーションによって生成することができるデジタル情報を含むデータセグメントとがある。
【0052】
デジタル情報は、外部メモリ200に記憶されるように準備される。外部メモリ200に記憶されるデジタル情報を準備する方法は、最初にデジタル情報プロバイダ(すなわち、デジタル情報を提供するためのシステム)によって実行される。
【0053】
外部メモリ200に記憶されるデジタル情報を準備する方法の典型的な実施形態を、
図2及び
図5を参照して説明する。
【0054】
第1のステップS1では、平文のデジタル情報が、1≦i≦Mの「Si」として参照されるデジタル情報のMセグメントに分割される。
【0055】
平文のデジタル情報の各セグメントSiは、所定のバイト数の複数のブロックで構成することができる。例えば、ブロックは、それぞれ16バイトの長さ(128ビット)である。ブロックのサイズは、セグメント上で実行されるべきオペレーションに応じて変化し得る。例えば、MAC機能を適用するために(又は他の認証機能又はアルゴリズムのために)使用されるブロックのサイズは、暗号化又は復号化に使用されるブロックのサイズとは異なり得る。
【0056】
次いで、デジタル情報の機密性及び真正性を保証するために、デジタル情報のセグメントの各々は、ステップS2において認証された暗号化に供される。本実施形態では、認証された暗号化は、周知の認証された暗号化「Encrypt-then-MAC」(EtM)に基づくものであり、タイプ「MAC-then-Encrypt-then-MAC」のアプローチに従う。より正確には、平文のデジタル情報の各セグメントSiについて、第1の完全性要素が、ステップS20において平文のデジタル情報に基づいて生成され、次いで、ステップS21において、その第1の完全性要素に結合された平文のデジタル情報が暗号化され、次いで、ステップS22において、暗号化の結果に基づいて第2の完全性要素が生成される。
【0057】
第1及び第2の完全性要素の各々は、MAC(メッセージ認証コード)などのデジタル情報を認証するために使用される情報のショートピースである。本開示において、セグメントSiに関連する第1の完全性要素及び第2の完全性要素は、1≦i≦Mの「MACi1」及び「MACi2」として参照される。
【0058】
平文セグメントSi上でMACi
1を生成するステップS20において、第1のMACは、MAC機能(
図2のMAC
*として参照される)を使用して、平文のデジタル情報のLブロックPi
0,...,Pi
L-1のMAC計算を連鎖させることによって計算される。平文のデジタル情報のブロックは、Pi
0,...,Pi
L-1として参照され、文字「P」は「プレーンテキスト」という語を指し、「i」はセグメントのインデックスである。この例示的な実施形態では、各ブロックPi
0,...,Pi
L-1は、128ビットの長さであり、各セグメントSiは、平文のデジタル情報のLブロック(又は場合によっては不完全なセグメントのためのL未満のブロック)を有し、Lは、例えば、64に等しい(この値は、例示的な実施例でしかない)。
【0059】
MAC機能は、第1の秘密鍵K0、例えば256ビットの鍵を使用する。結果として得られたMACi1は、例えば、16バイトの長さ(128ビット)である。完全性要素MACi1は、平文のデジタル情報のセグメントSiと連結され(組み合わされ)、新しい認証セグメントSi’=Si|MACi1(「|」は連結を表す)を形成する。セグメントSi’は、完全性要素MACi1に連結された平文のデジタル情報のセグメントSiを含む。
【0060】
暗号化のステップS21では、ステップS20から生じる認証されたセグメントSi’は、暗号化アルゴリズムの実行によって暗号化される。暗号化アルゴリズムは、セグメントSi’を形成するN+1個のブロック上に適用され、[Si’](括弧は暗号化を表す)として参照される認証及び暗号化されたセグメントを形成する、Ci0,...,CiN(文字「C」は「暗号文」を指す)として参照されるN+1暗号化されたブロックを生成する。
【0061】
暗号化に関連するブロック数Nは、認証機能のタイプ及び使用される暗号化アルゴリズムのタイプに応じて、認証に関連する数Lと同一である又は異なることができる。
【0062】
図2及び
図3に示されるこの典型的な実施形態では、N及びLは、同一であり、64に等しい。暗号化されたブロックCi
0,...,Ci
Nは、それぞれ、ここでは16バイトの長さ(128ビット)である。
【0063】
暗号化は、第2の秘密鍵K1、例えば256ビットの鍵を使用する。本実施形態では、第2の鍵K1は、第1の鍵K0とは異なる(ただし、K0及びK1は、同じ鍵であることができる)。
【0064】
MACi
2を生成するステップS22において、第2のMACは、MAC機能(
図2の「MAC」として参照される)を使用して、L+1の暗号化されたブロックCi
0,...,Ci
LにおいてMAC計算を連鎖させることによって計算される。このMAC機能は、例えば256ビットの鍵である、第3の鍵K
2を使用する。本実施形態では、第3の鍵K
2は、第1の鍵K
0及び第2の鍵K
1とは異なる(ただし、K
2はK
0及び/又はK
1と同一であることができるが、これはよりセキュアでない)。結果として生じる完全性要素MACi
2は、例えば、16バイトの長さ(128ビット)である。MACi
2は、認証された暗号化されたセグメント[Si’]に連結され(組み合わされ)、記憶される新しい認証セグメントSi’’(Si’’=[Si’]MACi
2として参照される認証及び暗号化されたセグメント)を形成する。
【0065】
任意選択的に、完全性要素MACi2は、暗号化によって保護され得る。
【0066】
任意選択的に、完全性要素MACi2のビットの一部のみ、例えば、いくつかのビット「LSB」(最下位ビット)のみが、認証されかつ暗号化されたセグメント[Si’]に追加され得る。
【0067】
次に、ステップS3において、1≦i≦Mのデジタル情報のセグメントSi’’は、保護された形態(ここでは認証され、次いで暗号化され、次に認証された)で外部メモリ200に記憶される。
【0068】
また、ステップS2及びS3は、1≦i≦Mのデジタル情報の各セグメントSiについて繰り返される。
【0069】
外部メモリ200に記憶されると、デジタル情報は、セキュアエレメント100によってロード及び処理(又は使用)することができる。
【0070】
図4を参照すると、セキュアエレメント100は、通信インターフェース101、処理ユニット(CPU)102、第1の完全性確認ユニット103、復号化ユニット104、第2の完全性確認ユニット105、コード関連付けユニット106、及び少なくとも1つの内部メモリ107を有する。
【0071】
処理ユニット(CPU)102は、例えば、セキュアプロセッサ(すなわち、セキュリティ臨界用途のための高い保証レベル証明を有するセキュリティ特徴を有するプロセッサ)、例えば、タイプRISCV又はARMSC300のプロセッサである。
【0072】
少なくとも1つの内部メモリ107は、例えば、揮発性メモリである。それは、バスによって処理ユニット102に接続することができる。それは、ローカルスクランブル及びそれを保護するための暗号化を有することができる。
【0073】
外部メモリ200に記憶されたデジタル情報を使用するために、セキュアエレメント100は、デジタル情報を安全に処理するための方法を実行し、これは、第1の典型的な実施形態による
図3及び
図6を参照して説明される。
【0074】
第1のステップS10では、セキュアエレメント100は、通信インターフェース101を介して、外部メモリ200からセキュアエレメント100の内部メモリ107に、以前にSi’’として参照された、保護された形態のデジタル情報のセグメントをロードする。セグメントSi’’は、第2の完全性要素MACi2に連結された認証されかつ暗号化されたセグメント[Si’]、すなわち=[Si’]|MACi2を含む。
【0075】
第2のステップS11では、セキュアエレメント100は、暗号化された形態のデジタル情報のロードされたセグメントSi’’の完全性を確認する。この目的のために、第1のMACユニット103は、セグメントSi’’の暗号化された形態においてL個の第1のブロックCi
0,...,Ci
Lにおける連鎖計算によって、ロードされたセグメントS’’からMACを計算する。第1の完全性確認ユニット103は、MAC機能及び鍵K
2を使用する。次いで、それは、計算されたMACを、ロードされたセグメントSi’’に含まれた完全性要素MACi
2と比較する。計算されたMACがロードされたMACi
2と一致する場合、[Si’]の完全性は問題なくチェックされたこととなる。その場合、復号化及び復号化後の完全性確認が有効になる(
図3のステップS19)。計算されたMACがロードされたMACi
2と一致しない場合、[Si’]の完全性が拒否される。その場合、デジタル情報の処理の後に、デジタル情報の処理を中止するエラーステップS18が続く。あるいは、エラーステップS18は、関連しないものとしてセグメントSi’’を生じ、それを廃棄し得る(すなわち、処理又はそれを使用しない)。
【0076】
第3のステップS12では、[Si’]の完全性が問題なく確認された後、セキュアエレメント100は、N+1個のブロックCi0,...,CiNを復号化する。復号化は、復号化ユニット104によって実行され、鍵K1を使用する。復号化ステップS12の結果は、平文のデジタル情報及び完全性要素MACi1である。より正確には、復号化ユニット104は、平文のデジタル情報のN個のブロックPi0,...,PiN-1及び完全性要素MACi1を出力する。
【0077】
前述のように、完全性を確認する機能及び復号化アルゴリズムに応じて、完全性を確認するために使用される数Lは、復号化に使用されるNに等しいか、又はNとは異なることができる。
【0078】
第4のステップS13では、コード関連付けユニット106は、最初に、平文のデジタル情報(すなわち、復号化ステップS12から結果として生じるデジタル情報)をデジタル情報のワードにセグメント化する。例えば、コード関連付けユニット106は、デジタル情報のN個のブロックPi0,...,PiN-1を入力として取得し、各ブロックをより小さいサイズのワードにセグメント化する。0≦j≦N-1の各ブロックPijが、1≦k≦XのX個のワードWij,kに分割される。
【0079】
定義により、「ワード」は、所定のバイト数を有する。このワードのサイズは、セキュアプロセッサ102の作業フォーマットに依存し得るか、又はセキュアプロセッサ102のレジスタの容量に依存し得る。その作業フォーマットは、レジスタの容量よりも小さくてもよい。いくつかの実施形態では、ワードWij,kのサイズは、セキュアプロセッサの作業フォーマットに等しいか、又はプロセッサレジスタのサイズに等しい。ワードのサイズは、ブロックのバイト数以下であることができる。第1の例示的な例では、セキュアプロセッサ102は、32ビットのレジスタを有し、コード関連付けユニット106は、16バイトの長さ(128ビット)の各ブロックを32ビットの4つのワードにセグメント化する。第2の例示的な例では、セキュアプロセッサ102は、8ビットの作業フォーマットを有し、コード関連付けユニット106は、16バイトの長さの各ブロックを8ビット長の16ワードにセグメント化する。特定の実施形態では、ワードのサイズは、処理ユニット102のレジスタ及び作業フォーマットのサイズのうちの最小値に等しい。あるいは、ワードのサイズは、セキュアプロセッサの作業フォーマットよりも小さくてもよく、又はプロセッサレジスタのサイズよりも小さくてもよい。
【0080】
次いで、第1の実施形態では、ステップS13において、コード関連付けユニット106は、ワードWij,kのそれぞれについて、EDCj,kとして参照されるエラー検出コード(EDC)を生成し、当該エラー検出コードEDCj,kを対応するワードWij,kに追加する(又は組み合わせる)。言い換えれば、コードEDCj,kは、ワードのWij,kから生成され、次いで、当該ワードWij,kに添付される。
【0081】
エラー検出コードの計算は、数学関数に基づく。例えば、エラー検出コードは、パリティコード又はハミングコードである。有利には、それは暗号化関数ではない場合があり、これは、より少ないコンピューティングリソースを生じる。エラー検出コードEDCj,kは、データが転送されたときに受信されたデータ(すなわち、ワードWij,k)に存在するエラーを検出することを可能にする。コードEDCj,kは、元のデータ(すなわち、ワードWij,k)に添付されるいくつかのビットを含む。コードEDCj,kは、元のデータWij,kの送信中に発生する場合、エラーを検出することを可能にする。
【0082】
それらのそれぞれのエラー検出コードEDCj,kに関連付けられた(0≦j≦N-1及び1≦k≦Xを有する)平文のデジタル情報のワードWij,kは、セキュアエレメント100の内部メモリ107内に記憶される。
【0083】
エラー検出コードEDCj,kを(0≦j≦N-1及び1≦k≦Xを有する)デジタル情報のワードWij,kに関連付け、それらの関連付けられたエラー検出コードを有するワードを内部メモリ107に記憶するステップS13の後、セキュアエレメント100は、ステップS14において、平文のデジタル情報の完全性を確認する。平文のデジタル情報の完全性は、(関連付けられたエラー検出コードEDCj,kを有さない)内部メモリ107から読み出されたデジタル情報のワードWij,kについて確認される。より正確には、第2の完全性確認ユニット105は、内部メモリ107からワードWij,kを読み出し、平文のデジタル情報のセグメントSiを再構築し、MAC機能及び鍵K0を使用する平文のデジタル情報のL個のブロックPi0,...,PiL-1についての連鎖計算によって完全性要素(ここではMAC)を計算する。次いで、第2の完全性確認ユニット105は、計算されたMACを、復号化ステップS12から生じる完全性要素MACi1と比較する。
【0084】
計算されたMACがMACi
1と一致する場合、平文のデジタル情報の完全性が問題なく確認されたこととなる。その場合、内部メモリ107からセキュアプロセッサ106へのワードWi
j,kの転送が有効にされ(
図3のステップS18)、この方法は、
図6に示される次のステップS15~S17に進む。計算されたMACがMACi
1と一致しない場合、平文のデジタル情報の完全性が拒否され、デジタル情報の処理の後、エラーステップS2が続く。このエラーステップS18は、デジタル情報の処理を中止することをもたらすことができる。あるいは、エラーステップS18は、セグメントSiを関連しないと取り扱い、それを廃棄する(すなわち、処理しないか、又はそれを使用せずに消去する)ことを処理し得る。
【0085】
ここで、次のステップS15~S17は、内部メモリ107に記憶された(0≦j≦N-1及び1≦k≦Xを有する)ワードWij,kの各々について連続して実行される。
【0086】
このステップS15において、(0≦j≦N-1及び1≦k≦Xを有する)デジタル情報の各ワードWij,k及びその関連付けられたエラー検出コードが、セキュアプロセッサ102に転送される。デジタル情報のワードWij,k及びその関連付けられたエラー検出コードは、平文のデジタル情報の完全性がステップS14で問題なく確認されたときにのみ、セキュアプロセッサ102に転送される。
【0087】
次いで、ステップS16において、セキュアプロセッサ102は、関連付けられたエラー検出コードを使用することによって、受信されたワードWij,kを確認する。ステップS16でワードにおいてエラーが検出されない場合、このデジタル情報のワードWij,kは、ステップS17において、セキュアプロセッサ102によって処理(又は使用)される。ステップS16でエラーが検出された場合、この方法はエラーステップS18に進む。このエラーステップS18は、デジタル情報の処理を中止すること、又は誤ったワードを関連していないと考慮して廃棄することをもたらすことができる。
【0088】
ステップS10~S17又はS18は、外部メモリ200からロードされた保護形態のデジタル情報の複数のセグメントSi’’に対して繰り返し実行される。
【0089】
セキュアエレメントによるデジタル情報の処理又は使用中に、セグメントSiが修正され得る。修正されたセグメントは、Siと呼ばれる。そのような場合、セキュアエレメント100は、外部メモリ200にSiC’’と参照される修正されたセグメントを更新するために以下のステップであって、
-平文の修正されたデジタル情報SiCのための第1の完全性要素MACiC_1を計算するステップと、
-第1の完全性要素MACC_1と連結されたデジタル情報SiCを暗号化して、[SiC’]]=[SiC]|[MACiC_1]を計算するステップと、
-暗号化[SiC’]=[SiC]|[MACiC_1]の結果の第2の完全性要素MACiC_2を計算し、暗号化の結果及び第2の完全性要素を連結して、SiC’’=[SiC]|[MACiC-1]|MACiC_2を形成するステップと、
-第2の完全性要素と連結された暗号化の結果SiC’’の結果によって、外部メモリ(200)に現在記憶されているセグメントを更新するステップと、を実施することができる。
【0090】
任意選択的に、インデックスjの各ブロック(Pi0,...,PiN-1)の各ワードWij,kは、セキュアエレメント100の内部メモリ107に記憶された自己のエラー検出コードを有することができる。各ワードのエラー検出コードは、第1の完全性要素MACiC_1の計算後、かつ暗号化ステップを実行する前に確認することができる。そのため、暗号化経路は、フォールト攻撃に対してより耐性がある。
【0091】
次いで、更新されたセグメントは、セキュアエレメント100から外部メモリ200にダウンロードされ、現在記憶されているセグメントは、更新されたセグメントによって置き換えられる。
【0092】
ステップS10~S17又はS18に記載されているように、デジタル情報の処理は、プログラム命令の制御下でセキュアエレメントによって実施される。プログラム命令は、揮発性メモリ、例えば、RAMなどの1つ以上の記憶モジュール、及び/又はセキュアエレメントに恒久的又は取り外し可能に統合された、不揮発性メモリ、例えば、ROM、Flash、NANDなどに記憶される。したがって、本開示は、デジタル情報を安全に処理するためのセキュアエレメントであって、セキュアエレメントがセキュアプロセッサを有する、セキュアエレメントに、前に記載されたステップ、特に、
-デジタル情報を外部メモリからセキュアエレメントにロードするステップと、
-デジタル情報のワードにデジタル情報をセグメント化し、デジタル情報のワードからエラー検出コードを生成し、当該エラー検出コードを対応するワードと関連付けるステップと、
-デジタル情報のワード及び関連付けられたエラー検出コードを、セキュアプロセッサに転送するステップと、
-セキュアプロセッサにおいて、ワードに含まれるデジタル情報を処理する前に、関連付けられたエラー検出コードに基づいてデジタル情報のワードを確認するステップと、を実施させるためのプログラム命令を含む非一時的コンピュータ可読媒体にも関する。
【0093】
セキュアエレメント100によって実行されるデジタル情報を処理する方法の第2の典型的な実施形態は、第1の典型的な実施形態に基づいており、コード関連付けユニット106によってステップS13で生成されたコードが、ワードWij,kの各々について、ECCj,kとして参照されるエラー補正コード(ECC)であるという点で異なる。次いで、このコードECCj,kは、対応するワードWij,kと組み合わされる。エラー補正コードECCj,kは、元のデータWij,kの送信中に発生した場合、対応するワードWij,k内の1つ以上のビットエラーを検出及び補正することを可能にする。第2の典型的な実施形態では、ワードWij,kのエラーの検出の場合、このワードWij,kの1つ以上のビットの補正は、ワードWij,kをセキュアプロセッサ102に転送する前に、セキュアエレメント100、例えば補正ユニットによって実行することができる。
【0094】
本開示において、外部メモリ200に記憶され、セキュアエレメント100内のセキュアプロセッサ102によって処理(使用)されることが意図されたデジタル情報は、タイプ「MAC-then-Encrypt-then-MAC」のアプローチに従う認証された暗号化によって保護される。これは、第1のMACが平文のデジタル情報で計算され、次いでデジタル情報及び第1のMACに暗号化が適用され、その後、第2のMACが暗号化の結果で計算されることを意味する。このように保護されたデジタル情報は、外部メモリからセキュアエレメントにロードされる。セキュアエレメントでは、保護された形態のデジタル情報の完全性が、復号化前に確認される。復号化後、平文のデジタル情報が、セキュアプロセッサに適合されたサイズを有するワードにセグメント化され(分割され)、エラー検出コード又はエラー補正コードがこれらのワードに追加される。平文のデジタル情報の単語及び関連付けられたエラー検出コード(EDC)又はエラー補正コード(ECC)は、セキュアエレメントの内部メモリに記憶され、セキュアプロセッサに転送される準備が整う。ワード及びそれらの関連付けられたコード(EDC又はECC)をセキュアプロセッサに転送する前に、平文のデジタル情報の完全性が確認される。この確認は、内部メモリに記憶されたワードを読み出し、セキュア環境で計算された参照MACと計算されたMACを比較することによって得られた、平文のデジタル情報のMAC(又は完全性要素)を計算することによって行われる。
【0095】
そのような構成は、セキュアエレメント内のセキュアプロセッサを処理するために、外部メモリ内のストレージからデジタル情報の処理におけるエンドツーエンドセキュリティを提供する。これは、デジタル情報が、外部メモリにおける記憶の間、外部メモリからセキュアエレメントへの転送の間、及びセキュアエレメントにおいてデジタル情報をセキュアプロセッサに転送する時点まで、変更されていないことを保証する。
【0096】
デジタル情報の完全性の要素を生成し、デジタル情報の完全性を確認するための異なるタイプのMAC機能を使用することができる。例えば、ブロック暗号ベースのメッセージ認証コードアルゴリズムであるCMAC機能(暗号ベースのメッセージ認証コード)、又は暗号化ハッシュ関数及び秘密暗号鍵を含む特定のタイプのメッセージ認証コード(MAC)であるHMACアルゴリズム(ハッシュベースのメッセージ認証コード)を使用することができる。その場合、ブロックサイズは、暗号化に使用されるものと同じバイト数を有しない場合がある。MAC機能の代わりに、任意の他の認証機能を使用することができる。
【国際調査報告】