JP7333704B2 - 秘密鍵の暗号関数を実装するための方法 - Google Patents

秘密鍵の暗号関数を実装するための方法 Download PDF

Info

Publication number
JP7333704B2
JP7333704B2 JP2019062858A JP2019062858A JP7333704B2 JP 7333704 B2 JP7333704 B2 JP 7333704B2 JP 2019062858 A JP2019062858 A JP 2019062858A JP 2019062858 A JP2019062858 A JP 2019062858A JP 7333704 B2 JP7333704 B2 JP 7333704B2
Authority
JP
Japan
Prior art keywords
cryptographic
private key
virtual machine
instructions
generic
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.)
Active
Application number
JP2019062858A
Other languages
English (en)
Other versions
JP2019175461A (ja
Inventor
シリル・ポルテレ
クリストフ・スマ
Original Assignee
アイデミア・アイデンティティ・アンド・セキュリティー・フランス
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 アイデミア・アイデンティティ・アンド・セキュリティー・フランス filed Critical アイデミア・アイデンティティ・アンド・セキュリティー・フランス
Publication of JP2019175461A publication Critical patent/JP2019175461A/ja
Application granted granted Critical
Publication of JP7333704B2 publication Critical patent/JP7333704B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)

Description

本発明は、暗号法の分野に関し、詳しくは、「ホワイトボックス」タイプの暗号方法に関する。
関数は、その内部機能にアクセスすることができないとき、すなわち、その入力および出力は知ることができるが、その秘密パラメータ(鍵)またはその中間状態は知ることができないとき、「ブラックボックス」とみなされる。
したがって、暗号アルゴリズム(例えば、暗号化またはシグネチャの)は、それらの信頼性(耐攻撃性)が評価されたとき、ブラックボックスであると従来仮定される。
この仮定は、これらのパラメータの記憶および操作に対して強い制約を課す。しかし、補助チャネルまたはフォールト攻撃と呼ばれる、ハードウェア実装に対する攻撃の自動化を可能にするツールが最近公開されている。
今日、モバイル決済を含む多くの使用の場合に、ターゲットハードウェアのセキュリティに関する最小限の仮定を有する暗号アルゴリズムを配備することが必要である。次いで、秘密パラメータの安全な記憶および操作を適用レベルで確実にしなければならない。
ホワイトボックス暗号法と呼ばれる暗号法は、攻撃者がアルゴリズムのソフトウェア実装に完全にアクセスすることができる攻撃の場合でも、秘密の抽出を不可能にすると考えられる暗号アルゴリズムの実装を提案することによってこの課題に対応することを目的とする。より正確には、関数は、その機構が可視であり、その機能を理解することを可能にするとき、「ホワイトボックス」とみなされる。言い換えれば、攻撃者は自分の欲するすべてのものにアクセスすることができる(バイナリは、そのとき実行プラットフォームを完全に制御する攻撃者によって完全に可視であり、変更可能である)ことが直接仮定される。したがって、実装自体が唯一の防衛線である。
したがって、暗号アルゴリズムの実装を保護するために、解決策は、表による計算を表すことによって、鍵を関数と、それらを使用して統合することに存する。これは鍵を可視にすることを回避し、それらは「ホワイトボックス化」されると言われる。
しかし、この解決策は、いくつかのオペレーティングシステム(OS)とは互換性がないことが判明しており、特に、コードの検証後、「ストア」(例えば、iOSのアプリストア)と呼ばれる公式アプリケーションンプラットフォームからだけのコードローディングを可能にし、中間ユーザ(例えば、セキュリティソフトウェア提供者)または最終ユーザ(電話の所有者)によるローディングまたはその後のコード変更を可能にしないモバイルのものとは互換性がないことが判明している。
実際、鍵をホワイトボックス化することは、アルゴリズムを実装するコードが鍵ごとに、すなわち、ユーザごとに異なることを含意する。
すると、OSのアプリケーションンプラットフォームがアプリケーションの各個別バージョンを個別に許可することが必要とされるが、それは不可能である。
あるいは、アプリケーションの共通バージョンの公式プラットフォームを介したローディングをアプリケーションンプラットフォームが許可することが必要とされ、その場合、認定組織が個別コードブロックを挿入するが、ローディング時に提案される一連のコードがOS提供者による検証および許可を事前に受けていることを条件とする現在のプロセスにおいてそのような「違反」をOS提供者が承諾しそうにない。
したがって、アプリケーションを公式、特にモバイルのOSプラットフォーム上で利用可能にするプロセスと引き続き互換性がある新たな「ホワイトボックス」解決策を有することが望ましい。
第1の態様によれば、本発明は、秘密鍵の暗号関数を実装するための方法に関し、方法は、装置のデータ処理手段によって:
(b) 前記秘密鍵の前記暗号関数を表す、暗号マクロ命令の一意のシーケンスを:
- 所与の仮想マシンによって実行可能な暗号マクロ命令のジェネリックリスト;および
- 前記シーケンスを記述したデータの個別ファイル;
に基づいて構築することと、
(c) 前記仮想マシンによって、暗号マクロ命令の前記一意のシーケンスを実行することと
に存するステップの実装を含むことを特徴とする。
他の有利なおよび非限定的な特徴によれば:
・ 前記個別ファイルは、暗号マクロ命令の前記一意のシーケンスを暗号マクロ命令の前記ジェネリックリストの要素のシーケンスとして定義し;
・ 前記シーケンスを記述した前記データは、暗号マクロ命令の前記ジェネリックリストにおける前記シーケンスのマクロ命令のそれぞれを連続して識別し;
・ 個別ファイルは、秘密鍵と一意に関連付けられ;
・ ジェネリックアプリケーションを得る事前ステップ(a)は、前記仮想マシンを実装することができ、仮想マシンによって実行可能な暗号マクロ命令の、および前記個別ファイルの前記ジェネリックリストを含み;
・ 前記個別ファイルを得ることは、前記アプリケーションによるファイルのその後のローディングを含み;
・ ジェネリックアプリケーションは、装置によって、第1のアプリケーションンプラットフォームサーバからロードされ、個別ファイルは、アプリケーションによって、秘密鍵を保持する第2のサーバからロードされ、
・ 個別ファイルのローディングは、あらかじめの第2のサーバへの要求の送出と、第2のサーバによる秘密鍵からの個別ファイルの生成と、装置による個別ファイルの受領とを含む。
第2の態様によれば:
- 装置のユーザの秘密鍵の暗号関数を表す、暗号マクロ命令の一意のシーケンスを:
○ 所与の仮想マシンによって実行可能な暗号マクロ命令のジェネリックリスト;および
○ 前記シーケンスを記述したデータの個別ファイル;
に基づいて構築し;
- 前記仮想マシンによって、ユーザの秘密鍵の前記暗号関数を実装するように、暗号マクロ命令の前記一意のシーケンスを実行する:
ように構成されたデータ処理手段を備えることを特徴とする装置が提案される。
第3および第4の態様によれば、本発明は、秘密鍵の暗号関数の実装の第1の態様による方法を実行するためのコード命令を備えるコンピュータプログラム製品、およびコンピュータプログラム製品が秘密鍵の暗号関数の実装の第1の態様による方法を実行するためのコード命令を備えるコンピュータ装置可読記憶手段を提案する。
本発明の他の特徴および利点は、好ましい実施形態の以下の説明を読むことにより、明らかとなるであろう。この説明は、添付の図面を参照して行われる。
本発明による方法を実装するためのアーキテクチャの図である。 本発明による方法の実施形態のステップ(a)の例示的な実装を示す図である。
アーキテクチャ
図1を参照すると、モバイル端末(スマートフォン、タッチパッドなど)などの装置1、すなわち、安全なハードウェアを特に有さず、ハードウェアの実装に対する攻撃の対象となり得、ホワイトボックス方式が有用となる装置内に実装される「ホワイトボックス」暗号関数を実装するための方法が提案される。
装置1は、データ処理手段11(プロセッサなどの処理ユニット)と、データ記憶手段12(メモリ、例えば、フラッシュメモリ)とを備える。
装置1は、例えば、インターネットネットワーク2を介して第1のサーバ2および/または第2のサーバ3に接続することができる。各サーバ2、3は、データ処理手段21、31を備えることができる。第1のサーバは、アプリケーションンプラットフォーム、特に、装置1のオペレーティングシステムに関付けられた公式アプリケーションンプラットフォームのもの(例えば、装置1がiOSモバイル端末である場合アプリストアのもの)であることができ、第2のサーバは、セキュリティソリューション提供者のものであることができる。
わかるように、好ましい実施形態において、装置1は、本方法の実装に対して、第1のサーバ2からアプリケーションおよび第2のサーバ3からデータファイルを得ることが必要とされることになる。
装置1は、それ自体、他の第三者のサーバに接続することができ、例えば、本方法の手段によって得られたメッセージをそれと交換することができる。
暗号関数
本方法は、個別の秘密鍵(または秘密鍵の個別の組合せ)、特に、装置1のユーザの鍵の暗号関数を実装するための方法である。第2のサーバ3は、秘密鍵(および一般に複数のユーザの鍵)を保持できることに留意されたい。
暗号関数は、「暗号化または暗号化解除」であることができ、それは、必要に応じて、データを暗号化または暗号化解除することを可能にすることを意味する。あるいは、暗号関数は、シグネチャであることができ、すなわち、ユーザが文書に変更不可に署名することを可能にする。
当業者は、装置1の外では知られるべきではない秘密を伴う、任意の対称または非対称暗号関数に本方法を適用することができるであろう。
本方法は知られているアルゴリズムの新たな実装であることが理解されよう。より具体的には、本方法は、新たな暗号戦略を提案するのではなく、「ホワイトボックス」においてすべてのハードウェア攻撃に対して耐性がある、アルゴリズム内のデータを操作する新たなやり方を提案するだけである。したがって、ユーザの秘密鍵は、装置1のメモリ12にアクセスすることができる第三者がクリア鍵を読むことができないように、暗号関数で「難読化」され、すなわち、入力パラメータである代わりに後者と統合される(したがって、暗号関数は個別化される)。
言い換えると、本明細書では「難読化」という用語は、ホワイトボックス暗号法の文脈内で意味され、すなわち、具体的には、環境にアクセスできるであろう第三者による抽出を防止するような秘密鍵の埋設に関し、任意の暗号問題にかかわらず、一般的なやり方でリバースエンジニアリングを防止するために、あるコンピュータコードを「判読不能または理解不能」にするという事実であるコード難読化と混同されるべきではないことが理解されよう。
したがって、目的は、現在、秘密鍵の前記暗号関数の白色化された実装、すなわち、秘密鍵を難読化する実施である。
本方法は、装置1のデータ処理手段11によって実装される。本方法は、公式アプリケーションンプラットフォームを使用し続けながら暗号関数を個別化する技巧を実現する。
図2を参照すると、この目的のための本方法は2つの要素を組み合わせる:
- 所与の仮想マシンによって実行可能な、特に、やはりジェネリックであるアプリケーション(Aと記載)によって含まれる暗号マクロ命令のジェネリックリスト(Lと記載);および
- 個別データファイル(Fと記載)。
「ジェネリック」とは、ユーザに特有の個別ファイルに対して、すべてのユーザに共通であることを意味する。
わかるように、仮想マシンによるこれらの2つの要素の組合せにより、前記秘密鍵の前記暗号関数、すなわち、個別化した関数を表す、暗号マクロ命令の一意のシーケンスの構築が可能になる。言い換えれば、暗号マクロ命令の一意のシーケンスは、前記秘密鍵の前記暗号関数の白色化された実装を構成する、すなわち、秘密鍵を難読化する。
任意選択のステップ(a)において、2つの要素は、装置1によって得られる。図2を参照すると、ジェネリックリストを得るステップは、(a1)と記載され、個別ファイルを得るステップは、(a2)と記載される。
このステップ(a)は、1回だけ実装される必要があり、次いで、方法の残りは、暗号関数を実装することが所望されるときはいつでも実装することができることが理解されよう。
説明したように、リストは、好ましくは、仮想マシンを実装することができるジェネリックアプリケーションに含まれる(すなわち、装置1の処理手段11の仮想マシンの実行に必要なコードを含む)。このアプリケーションは、すべてのユーザに共通であり、したがって、プラットフォームを実装するサーバ2からジェネリックにダウンロード可能であるように(すなわち、ユーザの秘密鍵にかかわらず、すべてのユーザによって)アプリケーションンプラットフォームに提案することができる(それは認証プロセスを経ることができる)。
仮想マシンは、暗号マクロ命令を「カプセル化」することを可能にする。より具体的には、これらは、仮想マシンによって実行可能であるが、装置のデータ処理手段11によって実行可能ではない言語で書かれる(すなわち、OSによって認識される言語ではない)。したがって、仮想化により、OSから孤立して多様なコードの実行が可能になり、これは「サンドボックス化」と呼ばれる。仮想マシンによって実行可能なこの言語は、好ましくは、あらゆるマクロ命令を実施するコードおよびデータを含む低レベルのバイトコードである。
一方、仮想マシンは、有利には、性能を改善するのに可能な限り単純であり、特に、純粋なアルゴリズムの仮想マシンである。
これは、それが任意の外部機能を可能にしない、すなわち、入力/出力なし、ドライバなし、ネットワークアクセスなし、ファイルアクセスなし、および絶対的にオペレーティングシステムとの相互作用なしであることを意味する。しかし、もちろん、仮想マシンはランダムアクセスメモリ(RAM)にアクセスして作業できることは可能であるが、その他の記憶システムにはアクセスできない。このように、記憶領域は、アプリケーションによって使用されるメモリ内に(「密閉して」)予約され、ブロックされることができる。
端末の機能を制御できることによって未検証のコードのローディングの禁止を「回避する」であろうVMが、装置1のオペレーティングシステムに関連付けられた公式プラットフォームアプリケーションで利用可能とすることを拒絶され、禁止されるであろうことを理解することは実際重要である。
それは、本方法の対象である「複合」暗号関数を表現する構成要素として働く暗号マクロ命令「初等」暗号関数によって意味される。それは、基本的な算術関数、「ルックアップ」、表における計算、一方もしくは他方の方向へのシフト、誤り検出など、すなわち、トリプルDESまたはAESタイプのアルゴリズムの典型的な関数であることができる。
したがって、わかるように、個別化した暗号関数(秘密鍵の)は、前記リストの暗号マクロ命令の一意のシーケンスとして表現されることになる。異なるシーケンスにより、暗号関数の異なるバージョン、すなわち、様々な鍵の値を表すことが可能となる。
暗号マクロ命令の「リスト」は、各可能なマクロ命令のコンピュータコードを仮想マシンの言語で含む。このリストは、すべての使用可能なマクロ命令の網羅的集合を記述するある種のオントロジーとして見ることができる。マクロ命令は、名前または番号によりリストにおいて一意に識別することができる。
リストがコードを含む限りにおいて、OS提供者が制限を加えた場合、サーバ2のアプリケーションンプラットフォーム経由の他に得ることができない。しかし、それはジェネリックであるので、問題ではない。
したがって、リスト単独の知識を有する第三者は、それがマクロ命令を宣言するだけであり、それらをどのように使用するかを指定しないので、それに対して何もできない。この考えは、リストのお蔭で、実装に対して実行すべきコード全体は、最初からアプリケーションに存在するが、このコードが実行されなければならないやり方はまだ知られていないということである。それゆえ、事後にコードローディングする必要がなく、したがって、公式プラットフォームを通過する観点でOSの制限には違反しない。
「個別ファイル」は、翻って、鍵によって個別化された暗号関数を表す一意のシーケンスの記述データファイルである。したがって、それは単にデータファイルであり、それはコードを含まず、実際、サーバ2のアプリケーションンプラットフォームから得られる必要を回避し、サーバ3(説明したように、典型的には、セキュリティソリューション提供者のサーバ)から事後に復元することができる。
個別ファイルは、鍵の暗号関数のバージョンを一意に得ることを可能にする限りにおいて、個別の鍵(およびその個別の鍵の同じ関数)に関連付けられている。より正確には、所与の鍵、所与の暗号関数および暗号マクロ命令の所与のジェネリックリストに対して、この個別ファイルのために構築された暗号マクロ命令の前記一意のシーケンスが、その秘密鍵の暗号関数を正確に表すように、個別ファイルは選ばれる。したがって、異なる秘密鍵は、結果として異なる個別ファイルとなることになり、したがって、個別ファイルは、秘密鍵を「表し」、それを含むことなく、それゆえ、後者はアクセス可能でなく、、ゆえに、難読化である。
したがって、各ユーザは(与えられると仮定される)自分の個別の鍵から生成された個別ファイルを有し、ゆえに、個別ファイルは完全に定義されており、(自発的にまたは任意に)選択された対象ではないことが理解される。
「前記シーケンスの記述データ」によって、前記個別ファイルが、暗号マクロ命令の前記一意のシーケンスを暗号マクロ命令の前記ジェネリックリストの要素のシーケンスとして定義することを意味される。
有利には、前記シーケンスを記述する前記データは、暗号マクロ命令の前記ジェネリックリストにおける前記シーケンスのマクロ命令のそれぞれを連続して識別する命令である。
個別ファイルは、ジェネリックリストが実行されることを可能にする点において、暗号マイクロ命令の「インタプリタ」として見ることができる。
再び言い換えると、ファイルは、シーケンスを構成する、リストにおけるマクロ命令の選択および順序を定義するだけである。今度の場合も、ファイルは、任意のコードを含まず(および、なおさらマクロ命令の正確なコードではなく)、したがって、例えば、リストにおけるそれらの名前またはそれらの番号を介してマクロ命令を識別だけする。したがって、ファイルを盗み取る悪意のある第三者は、それに対して何もすることができない。また、彼/彼女がユーザのファイルおよびリストを持っていたとしても(例えば、彼/彼女がユーザの装置1を盗んだ場合)、彼/彼女は、せいぜい暗号関数を実装することができるが、一意のシーケンスで難読化された秘密鍵を見つけることができない。
図2の例において、リストLにおいて定義された、「+」および「-」と印された2つのマクロ命令があり、ファイルFは「+,-,-,+,-,-,-」のシーケンスを記述する。
言い換えれば、個別化した暗号関数を表す一意の実行可能なシーケンスは、以下の通りである:関数+のコード1回、関数-のコード2回、関数+のコード1回、関数-のコード3回。
好ましくは、初期化ステップ(a)は、このやり方で実行される:
- サブステップ(a1)において、ユーザは、サーバ2のアプリケーションンプラットフォームから、前記仮想マシンを実装することができ、仮想マシンよって実行可能な暗号マクロ命令の前記ジェネリックリストを含む、ジェネリックアプリケーションをロードし(メモリ12内に)、次いで、アプリケーションは、装置1にインストールされる。ユーザは、アプリケーションのダウンロードを起動するために同じ名前のプラットフォームへのアクセスを可能にするiOS「アプリストア」アプリケーションなどの前記アプリケーションンプラットフォームへのアクセスのためにOSの専用アプリケーションを通してこれを行うことができることに留意されたい。
- サブステップ(a2)において、アプリケーションは、サーバ3から、自分の個人の鍵に対応する個別ファイルのローディング(メモリ12内への)の結果、「カスタマイズ」される。公式アプリケーションンプラットフォームを通じてより長い通路があることに留意されたい。このローディングは、例えば、静止したジェネリックアプリケーションの最初の起動において開始することができる。好ましくは、ステップ(a2)は、次いで、第2のサーバ3への要求の事前送出と、第2のサーバ3による(そのデータ処理手段31を使用して)秘密鍵からの個別ファイルの生成と、装置による個別ファイルの受領とを含む。このように、サーバ3は、要求を処理することを受け入れる前に、ユーザの識別、例えば、装置のカメラによる最近の写真およびスキャンされた識別文書、を証明するデータの装置1からの伝送を要求することができる。
次いで、カスタマイズされたアプリケーションは、難読化された鍵を実際に収め、暗号関数を実装するように動作可能である。
従来の動作のステップ(b)において、説明したように、データ処理手段11は、前記秘密鍵の前記暗号関数を表す暗号マクロ命令の一意のシーケンスを:
- 所与の仮想マシンによって実行可能な暗号マクロ命令のジェネリックリスト;および
- 前記シーケンスを記述したデータの個別ファイル;
に基づいて構築する。
最後に、方法は、前記仮想マシンによって、ユーザの秘密鍵の暗号関数を実装するように、暗号マクロ命令の前記一意のシーケンスを実行するステップ(c)を含む。
コンピュータプログラム製品
第2の態様によれば、本発明は、第1の態様による方法を実装するための、特に、モバイル端末タイプの装置1に関する。
したがって、装置1は:
- 装置1のユーザの秘密鍵の暗号関数を表す、暗号マクロ命令の一意のシーケンスを:
○ 所与の仮想マシンによって実行可能な暗号マクロ命令のジェネリックリスト;および
○ 前記シーケンスを記述したデータの個別ファイル;
に基づいて構築し、
- 前記仮想マシンによって、ユーザの秘密鍵の前記暗号関数を実装するように、暗号マクロ命令の前記一意のシーケンスを実行する
ように構成されたデータ処理手段11を備える。
コンピュータプログラム製品
第3の態様および第4の態様によれば、本発明は、秘密鍵の暗号関数を実装するための本発明の第1の態様による方法を行うための(特に、装置1のデータ処理手段11上で)コード命令、ならびにこのコンピュータプログラム製品を見つけることができる、コンピュータ装置によって可読の記憶手段(装置1のメモリ12)を備える、コンピュータプログラム製品に関する。
1 装置
2 第1のサーバ
3 第2のサーバ
11 データ処理手段
12 データ記憶手段
20 インターネットネットワーク
21 データ処理手段
31 データ処理手段
A アプリケーション
F 個別データファイル
L ジェネリックリスト
a1 ジェネリックリストを得るステップ、サブステップ
a2 個別ファイルを得るステップ、サブステップ

Claims (9)

  1. 秘密鍵の暗号関数を実装するための方法であって、装置(1)のデータ処理手段(11)によって:
    (b) 前記秘密鍵の前記暗号関数を表す、暗号マクロ命令の一意のシーケンスを:
    所与の仮想マシンによって実行可能な暗号マクロ命令のジェネリックリスト;および
    前記シーケンスを記述したデータの個別ファイル;
    に基づいて構築することと、
    (c) 前記仮想マシンによって、暗号マクロ命令の前記一意のシーケンスを実行することと
    に存するステップの実装を含み、
    方法が、前記仮想マシンを実装することができ、仮想マシンによって実行可能な暗号マクロ命令の前記ジェネリックリストを含むジェネリックアプリケーションを得る、および前記個別ファイルを得る事前のステップ(a)を含み、
    方法が、第1のアプリケーションプラットフォームサーバ(2)からの装置(1)によるジェネリックアプリケーションのローディング、および秘密鍵を保持する第2のサーバ(3)からのアプリケーションによる個別ファイルのその後のローディングを含むことを特徴とする、方法。
  2. 前記個別ファイルが、暗号マクロ命令の前記一意のシーケンスを、暗号マクロ命令の前記ジェネリックリストの要素のシーケンスとして定義する、請求項1に記載の方法。
  3. 前記シーケンスを記述した前記データが、暗号マクロ命令の前記ジェネリックリストにおける前記シーケンスのマクロ命令のそれぞれを連続して識別する、請求項2に記載の方法。
  4. 個別ファイルが、秘密鍵と一意に関連付けられている、請求項1から3のいずれかに記載の方法。
  5. 個別ファイルが、秘密鍵の関数を表す、請求項4に記載の方法。
  6. 個別ファイルのローディングが、あらかじめ第2のサーバ(3)への要求の送出と、第2のサーバ(3)による秘密鍵からの個別ファイルの生成と、装置(1)による個別ファイルの受領とを含む、請求項5に記載の方法。
  7. 装置(1)のユーザの秘密鍵の暗号関数を表す、暗号マクロ命令の一意のシーケンスを:
    所与の仮想マシンによって実行可能な暗号マクロ命令のジェネリックリスト;および
    前記シーケンスを記述したデータの個別ファイル;
    に基づいて構築し、
    前記仮想マシンによって、ユーザの個別の鍵の前記暗号関数を実装するように、暗号マクロ命令の前記一意のシーケンスを実行する
    ように構成されたデータ処理手段(11)を備え
    処理手段(11)が、前記仮想マシンを実装することができ、仮想マシンによって実行可能な暗号マクロ命令の前記ジェネリックリストを含むジェネリックアプリケーションを得るように、および前記個別ファイルを得るように構成され、ジェネリックアプリケーションが、秘密鍵を保持する第2のサーバ(3)からのファイルをローディングするように構成され、
    処理手段(11)が、第1のアプリケーションプラットフォームサーバ(2)からジェネリックアプリケーションをローディングするように構成されることを特徴とする、装置(1)。
  8. プログラムがコンピュータによって実行されるとき、秘密鍵の暗号関数を実装するための請求項1からのいずれかに記載の方法を実行するためのコード命令を備える、コンピュータプログラム。
  9. 密鍵の暗号関数を実装するための請求項1からのいずれかに記載の方法を実行するためのコード命令を備えるコンピュータプログラムを備える、コンピュータ装置可読記憶手段。
JP2019062858A 2018-03-29 2019-03-28 秘密鍵の暗号関数を実装するための方法 Active JP7333704B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1852738 2018-03-29
FR1852738A FR3079638B1 (fr) 2018-03-29 2018-03-29 Procede de mise en oeuvre d'une fonction cryptographique pour une cle secrete

Publications (2)

Publication Number Publication Date
JP2019175461A JP2019175461A (ja) 2019-10-10
JP7333704B2 true JP7333704B2 (ja) 2023-08-25

Family

ID=63209482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019062858A Active JP7333704B2 (ja) 2018-03-29 2019-03-28 秘密鍵の暗号関数を実装するための方法

Country Status (5)

Country Link
US (1) US20190305945A1 (ja)
EP (1) EP3547602A1 (ja)
JP (1) JP7333704B2 (ja)
KR (1) KR20190114894A (ja)
FR (1) FR3079638B1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7244955B2 (ja) * 2019-09-26 2023-03-23 株式会社エアロネクスト 飛行体及び飛行体の飛行方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195703A1 (en) 2005-02-25 2006-08-31 Microsoft Corporation System and method of iterative code obfuscation
US20080288771A1 (en) 2007-05-18 2008-11-20 Verimatrix, Inc. System and method for defining programmable processing steps applied when protecting the data
JP2015504279A (ja) 2012-01-09 2015-02-05 コーニンクレッカ フィリップス エヌ ヴェ 鍵駆動の難読化を用いる仮想マシンデバイス及び方法
JP2015114964A (ja) 2013-12-13 2015-06-22 Kddi株式会社 疑似乱数生成装置及び方法、並びにプログラム難読化装置及び方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742686A (en) * 1996-06-14 1998-04-21 Finley; Phillip Scott Device and method for dynamic encryption
SE512864C2 (sv) * 1998-10-07 2000-05-29 Lateca Computer Inc Nv Bearbetningsmetod och apparat för omvandling av information från ett första format till ett andra format
US8607224B2 (en) * 2009-05-28 2013-12-10 Yahoo! Inc. System for packaging native program extensions together with virtual machine applications
JP5988747B2 (ja) * 2012-07-20 2016-09-07 日本放送協会 鍵管理装置、アプリケーション署名付加装置および受信端末、ならびに、それらのプログラム
US9495544B2 (en) * 2013-06-27 2016-11-15 Visa International Service Association Secure data transmission and verification with untrusted computing devices
US9501315B2 (en) * 2014-01-10 2016-11-22 Citrix Systems, Inc. Management of unmanaged user accounts and tasks in a multi-account mobile application

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195703A1 (en) 2005-02-25 2006-08-31 Microsoft Corporation System and method of iterative code obfuscation
US20080288771A1 (en) 2007-05-18 2008-11-20 Verimatrix, Inc. System and method for defining programmable processing steps applied when protecting the data
JP2015504279A (ja) 2012-01-09 2015-02-05 コーニンクレッカ フィリップス エヌ ヴェ 鍵駆動の難読化を用いる仮想マシンデバイス及び方法
JP2015114964A (ja) 2013-12-13 2015-06-22 Kddi株式会社 疑似乱数生成装置及び方法、並びにプログラム難読化装置及び方法

Also Published As

Publication number Publication date
US20190305945A1 (en) 2019-10-03
EP3547602A1 (fr) 2019-10-02
FR3079638B1 (fr) 2021-04-09
FR3079638A1 (fr) 2019-10-04
JP2019175461A (ja) 2019-10-10
KR20190114894A (ko) 2019-10-10

Similar Documents

Publication Publication Date Title
JP6771565B2 (ja) ウェブページ、ウェブアプリ、およびアプリケーションをセキュリティ保護すること
EP3474209A1 (en) Storing blockchain private keys in a sim card
EP2761523B1 (en) Provisioning of operating systems to user terminals
CN109075976A (zh) 取决于密钥认证的证书发布
US20090249492A1 (en) Fabrication of computer executable program files from source code
RU2740298C2 (ru) Защита использования содержимого хранилища ключей
EP2064648A1 (en) Fabrication of computer executable program files from source code
JP6756056B2 (ja) 身元検証による暗号チップ
JP5118700B2 (ja) 仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置
Coughlin et al. Breaking the trust dependence on third party processes for reconfigurable secure hardware
EP3292654A1 (en) A security approach for storing credentials for offline use and copy-protected vault content in devices
CN111783071A (zh) 基于密码、基于隐私数据的验证方法、装置、设备及系统
Hanzlik et al. Controlled randomness–a defense against backdoors in cryptographic devices
JP7333704B2 (ja) 秘密鍵の暗号関数を実装するための方法
JP6517435B2 (ja) アプリケーションを管理する方法
Bala et al. Biometric inspired homomorphic encryption algorithm for secured cloud computing
KR101973578B1 (ko) 어플리케이션의 무결성 검증 방법 및 장치
EP3278259B1 (en) Data protection
Akram et al. Rethinking the smart card technology
US20240004986A1 (en) Cla certificateless authentication of executable programs
US20230224173A1 (en) Method for remotely programming a programmable device
EP4058921B1 (en) Device and method for secure communication
KR102145679B1 (ko) Https 프로토콜에서 mitm 공격을 회피하는 방법
Bobowski et al. Derandomized PACE with Mutual Authentication
Idrissi et al. Trust can be misplaced

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230601

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230725

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230815

R150 Certificate of patent or registration of utility model

Ref document number: 7333704

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150