JP6184751B2 - データ保護システムおよび方法 - Google Patents

データ保護システムおよび方法 Download PDF

Info

Publication number
JP6184751B2
JP6184751B2 JP2013111742A JP2013111742A JP6184751B2 JP 6184751 B2 JP6184751 B2 JP 6184751B2 JP 2013111742 A JP2013111742 A JP 2013111742A JP 2013111742 A JP2013111742 A JP 2013111742A JP 6184751 B2 JP6184751 B2 JP 6184751B2
Authority
JP
Japan
Prior art keywords
information
item
items
array
size
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
JP2013111742A
Other languages
English (en)
Other versions
JP2013251897A (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 JP2013251897A publication Critical patent/JP2013251897A/ja
Application granted granted Critical
Publication of JP6184751B2 publication Critical patent/JP6184751B2/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/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/321Cryptographic 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 involving a third party or a trusted authority
    • H04L9/3213Cryptographic 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 involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1014Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to tokens
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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
    • 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/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
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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/3234Cryptographic 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 involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Landscapes

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

Description

本発明は、情報データを保護するシステムおよび方法に関し、具体的には、情報データにアクセスするための認証をチェックして授与するシステムおよび方法に関する。
既知のデータ保護方法、具体的には、保護された情報に対するアクセスを認証する方法、および/または使用するのにライセンスが必要なコンピュータプログラム(ソフトウェア)の実行を許可する方法がある。
既知の方法は、ユーザに未知であって、当のソフトウェアを使用するためのライセンスを購入することにより入手可能なキーの使用を企図する。この方法には、このキーの不正な複製が可能であるため、このキーについて知っている無許可のユーザがソフトウェアを使用できてしまう、という難点がある。
他の方法は、ユーザに未知のアルゴリズムに基づいて、一般に数値のフォーマットでパスワードを生成することができるトークンと称される装置の使用を企図する。一般に、2因子認証方式では、このパスワードは、複製が容易でないように、時間(例えば時間、日付など)とともに変化するパラメータに左右される値に加えて、ユーザが選択する既知の部分(個人識別番号、またはより簡単にはPINとして知られている)を想定する。この方法には、誰もがその時間を知っていて、ユーザが、通常は、覚えておくのが簡単なPINを選択する(実際には、PINは、ユーザの生年月日、子供の名前などが選択されることが多い)、という難点がある。このタイプの方式によって与えられた保護を、大幅に弱めるさまざまなタイプの既知の攻撃がある。
他の既知の方法は、ソフトウェアの全ての部分をトークンに記憶するステップを含むが、このやり方は、これらの部分にアクセスし、コンパイルして、次いで実行する必要があるという事実に関連して、ソフトウェアの実行速度に影響を及ぼす。その結果、チェックが実行されるのは、通常、ソフトウェアの起動段階のみであって、ソフトウェアが使用される期間のすべてではない。
本発明の目的は、従来技術の難点を克服することができるデータ保護システムおよび方法を提供することである。
より詳細には、この認証システムは、PINを用いてアクセスすることができるトークンに基づくものであり、保護する情報へのアクセスを、認証する、または拒否するように構成されており、トークンが有する記憶装置は、数値情報項目および/または英数字の情報項目および/または英字情報項目を含む配列、ならびに同配列を読み出す順序における直接連続した情報項目の間に挟まれたランダムな数値データおよび/または英数字のデータおよび/または英字データと、配列におけるそれぞれの位置において各情報項目に対するアクセスを可能にするように、配列の中の情報項目の配置に関する情報および各ランダムデータ項目のサイズ(一般的にはバイトで表される)に関する情報を含んでいる暗号化されたシール方式ベクトル(またはシール方式配列)とを記憶する。認証システムは、正確なPIN入力に対して、トークンにアクセスし、シール方式ベクトルを解読し、シール方式ベクトルから、情報項目の配置情報および各ランダムデータ項目が占める空間についての情報を取得し、取得した配置情報と配列の中の情報項目の有効な配置の間の対応、および取得したサイズ情報とランダムデータの有効サイズの間の対応をチェックし、以前のチェックの結果に基づいて保護される情報に対するアクセスを認証する、または拒否するように構成されている。
本発明によれば、添付の特許請求の範囲に定義されるように、データ保護システムおよび方法が提供される。
次に、本発明のよりよい理解のために、いくつかの好ましい実施形態を、純粋に非限定的な例によって、添付図面を参照しながら説明する。
認証キーを生成するための装置、すなわちトークンを示す概略図である。 図1のトークンに動作可能に接続するのに適切な、それ自体が既知のタイプのコンピュータを示す図である。 本発明の一実施形態によるデータ保護方法のステップを示す流れ図である。 図3の方法のステップ10および12によって符号化された複数のデータ項目/情報項目を備える配列を示す図である。 図4の配列を別の図表形式によって示す図である。 図3の方法のサブステップを示す流れ図である。 図3の方法のさらなるサブステップを示す流れ図である。 本発明によるデータ保護方法のさらなるステップを示す流れ図である。
本説明は、データを保護するシステムおよび方法に関し、具体的には、電子データを暗号で書く、または暗号化するシステムおよび方法に関する。
より詳細には、本発明によって提供される保護のレベルは、例えば数値フォーマット、英字フォーマットまたは英数字のフォーマットで、疑似ランダムの認証コードを生成することができる認証装置すなわちトークンを含む物理レベルと、コンピュータプログラムによって遂行される暗号化のステップを含むソフトウェアレベルとからなる。
図1に参照数字1で概略的に示されている認証トークンは、ユーザーリクエストに対して、特定のアルゴリズムに従って疑似ランダムの認証コードを生成することができる既知のタイプのマイクロプロセッサ2を備え、これは、例えば認証トークン1の製造番号、現在の日付値、認証トークン1の内部のクロックによって定義された時間値または他の因子など、複数の因子を考慮に入れることができる。この値は、ハードウェアによって時間ベースのアルゴリズムで生成され、様々なトークン製造業者間で異なり得る。一般に、疑似ランダムの認証コードがトークンによって生成される様子は開示されておらず、各トークンサプライヤは所有権付きアルゴリズムを採用する。本発明によるこの方法は、この認証コードを生成する方法には無関係であるため、本明細書でこの方法をさらに説明することはない。
認証トークン1は、例えばフラッシュ型メモリといった、マイクロプロセッサ2に接続されている記憶装置4も備える。
認証コードを生成するためのプログラムは、認証トークン1の記憶装置4に、具体的には、キーワードまたはPIN(個人識別番号)によってアクセス可能な機密データを記憶するのに使用される、記憶装置4の非公開エリア4aに存在する。記憶装置4の公開エリア4bは、公開性の非機密情報の認証を記憶することができる。
PINは自動的に生成され、エンドユーザに利用可能ではない。インストールの際に、またはソフトウェアを最初に実行するとき、ユーザは、PINの利用のロックを解除する、自分が好むパスワードを選択するように促されて、ハッシュ(すなわちデータベースにおける、非可逆の、または「困難さを伴う」可逆の動作結果)を保存する。
記憶装置4の非公開エリア4aは、隠されたタイプ(ユーザが、その存在に気づかない)、またはユーザに見えるが、アクセスはキーワードまたはパスワードによって保護されているタイプであり得る。このパスワードは、サプライヤよって生成されたシードレコードおよびトークン管理者(セキュリティ管理者として知られている)の認証を有することを条件として、変更することができ、この認証は、一般的には変更可能で上書き不可能な、別のパスワードによって保護されており、同パスワードは、所定の値に設定されて、安全な記憶位置に保存されている。
記憶装置4の非公開エリア4aは、以下でよりよく説明されるように、暗号化の方法のステップ中に用いられる複数のデータおよび/または情報を記憶するのに用いることができる。
一実施形態では、認証トークン1は、コンピュータ6(図2)に接続され得て、その結果、認証トークン1とコンピュータ6の間で情報を交換することができる。例えば、認証トークン1は、コンピュータ6への接続のために、USBポートを装備することができるであろう。
以下で、無許可のユーザがプレインテキストに含まれる情報にアクセスするのを防止するために符号化することが望まれるプレインテキストが参照される。
図3を参照すると、本発明の一実施形態による暗号化方法のステップを含む流れ図が示されている。
本発明によれば、自由裁量で選択され、ランダム方式によって暗号化されている、複数のデータおよび情報を含む「シール」が生成される。このシールの暗号解読および読取りは、1つまたは複数のさらなるアクティビティを認証する、または拒否するのに必須のことである。
好ましい用途によれば、このシールの暗号解読および読取りは、ソフトウェアプログラムの実行を認証する、またはこのソフトウェアプログラムの使用ライセンスを取得するのに必須のことである。したがって、本発明のこの方法による暗号化ステップが目的とするのは、実行されるソフトウェアプログラムの暗号化ではなく、このソフトウェアプログラムを実行する認証を取得するのに、その読取りが必須となる暗号化されたシールの生成である。
図3によるこの方法は、プレインテキストからシールが生成されて、記憶装置4の非公開エリア4aに書き込まれる、初期設定ステップ(ステップ10および12)と、さらなる保護レベルを保証するために、ステップ10および12において生成されたシールを暗号化するのに、既知のタイプの暗号化の方法(例えばRSA、AES、DESまたは他のものから選択された既知の方法)が用いられる暗号化ステップ(ステップ14および16)とを含む。
シールは、データおよび/または、以下でよりよく説明されるように、このデータを配列に配置するプレインテキストを構成する情報に基づいて生成される。それに加えて、シールの、ビットで表されるサイズは、ステップ14および16で用いられる暗号化アルゴリズムに適合し(例えば128ビット、196ビット、もしくは256ビットの長さ、または他のいくらかのサイズ)、また、ランダムデータで満たされる十分な「空き」スペースを残すものである。
プレインテキストは、複数のデータ、および/または固定タイプの情報(値または情報量が経時的に変化しないもの)、および/または可変タイプの情報(別々の瞬間で考えると値または情報量が同一でないもの)を含むことができる。固定データには、例えば、数字、英字および/または英数字の形式の所定の識別コード、あるいは、例えば、ソフトウェアの商品名またはコード名、ソフトウェアメーカの名前、ソフトウェアのカレントユーザに関する進行性のライセンス番号、カスタマ名および/または識別コード、初期設定日、トークンの製造番号、(複数のモジュールから成るソフトウェアの場合)作動させるべきソフトウェアモジュールおよび関連するライセンスのパスワード/コードならびに他の任意選択のデータのうち1つまたは複数などといった他のいくつかのフォーマットが含まれる。
可変データには、例えば、現在の日付、現在の時間、または所定の状態または計画されていない状態に基づいて可変値をとることができる他のデータに関する値が含まれる。
可変フィールドに関して、それらの内容の正確さが「予約によって」チェックされる。換言すれば、ソフトウエアコンポーネントは、時間t0に書き込まれた時間値を与えられると、「x」秒の経過後に、時間値が時間t0+xであることをチェックする(数百ミリ秒程度の公差をプラスまたはマイナスする)。値t0は、日付/時間の値が書き込まれた瞬間であり、「x」は、ソフトウェアによって、自由に選択された一様分布に従って、瞬間的に、かつランダムに求められた可変のオフセットであり、その限界は、通常、数十秒/数十分程度の最小値と最大値の間に規定されている。
以後の説明では、固定または可変の各データ項目は単一の「項目」と見なされ、参照I1、I2、I3、...、INによって示される。このタイプのI1〜INの複数N個の項目が、N個の項目I1〜INを含む組(ベクトルIの形で構成されている)を形成する。
I={I1、I2、I3、I4、I5、...、IN}
前述のように、本発明の用途の1つは、ソフトウェアプログラムの実行を認証する、もしくは拒否すること、またはこのソフトウェアプログラムの使用ライセンスを得ることである。この場合、ベクトルIのコピーが、ソフトウェアプログラムのユーザがアクセスできないやり方で、ソフトウェアプログラムに保存される。
それらのデジタルフォーマット形式(論理値「1」または「0」を有する一連のビット)で考えると、N個の項目I1〜INの組の各項目I1〜INが、複数のビットおよび/またはバイトとして測定可能な、それ自体の長さL(i)を有し、1バイトは8ビットのグループである。この場合、「i」は、1からNの値をとり、したがって、L(1)はベクトルIの1番目の項目の長さであり、L(2)はベクトルIの2番目の項目の長さであり、以下同様に、L(N)はベクトルIのN番目(最後)の項目の長さである。
さらに、各項目I1〜INは、そのそれ自体の値J(i)、すなわちJ1〜JNを有する。例えば、項目I1〜INが日付であると、この項目の値J(i)は、例えば日/月/年フォーマットの実際の日付である。項目I1〜INがソフトウェアメーカの名前であると、その項目の値J(i)は製造業者の名前であり、以下同様である。したがって、各項目I1〜INについて、値J(i)は、差別なく数値、英数字または英字の値を有する。
前述の項目I1〜INは、行x(x=x1、x2、...、xR)のそれぞれの列y(y=y1、y2、...、yC)に対する交点によって定義される複数M個のフィールドを有する配列100に構成される。配列100は、図4に図を用いて表されている。N個の項目I1〜INそれぞれが、配列100のそれぞれのフィールド(x、y)を占める。配列100は、M=xR・yCに等しくNより大きい複数のフィールドを有する。具体的には、Mの値は、項目I1〜INが、互いに直接連続しないそれぞれのフィールド(x、y)に記憶され、また、選択された暗号化アルゴリズムをサポートするように選択される。換言すれば、フィールドは、配列100の行に沿って直接続き、項目I1〜INを含んでいるフィールドは、項目I1〜INの別のものは含まない。
すべての項目I1〜INが配列100に書き込まれると、配列100の残された空のフィールド(x、y)は、既知のタイプの乱数発生器によってランダムに生成されたバイトで満たされる。このように、各項目I1〜INは、1つまたは複数のランダムバイトにより、他の項目I1〜INから分離される。
図4では、ランダムバイトはRBx、yで示されており、添え字x、yは、ランダムバイトが書き込まれているフィールドの、対応する行xの値および対応する列yの値をとる。例えば1つまたは複数のランダムバイトRB1、1は、第1の行x=x1および第1の列y=y1によって識別されるフィールドに記憶される。同様に、1つまたは複数のランダムバイトRB2、2は、第2の行x=x2および第2の列y=y2によって識別されるフィールドに記憶される。
常に図4を参照して、項目I1は、第1の行x=x1および第2の列y=y2に対応するフィールドを占め、I1 1、2として示され、同様に、項目I2は第2の行x=x2および第1の列y=y1に対応するフィールドを占め、I2 2、1として示され、以下同様である。
図3に示され得るように、(行x1〜xRに沿った系列で考えたとき)項目I1〜INのそれぞれの間と、配列100の最初の項目I1の前と、配列100の最後の項目INの後とに、ランダムバイトRBx、yが挿入される。換言すれば、この実施形態によると、配列100の最初のフィールドおよび配列100の最後のフィールドの両方が、ランダムバイトRBx、yを含む。
各項目I1〜INの長さと、それぞれの一連のランダムバイトRBx、yの長さとは、バイトで表された任意の長さを有し得ることが明らかである。配列100のフィールドx、yは、互いに異なるものであり、別々のバイト数を含むことができる。この状況は、図5の図表による例として示されており、ランダムバイトはハッチングラインで満たされたフィールドで図示され、項目I1〜INはブランクフィールドで図示されている。
一実施形態では、配列100の各フィールド(x、y)は、M個以下の識別番号によって明白に識別され、逆の場合も同じである。配列100の各フィールドに対する識別番号の対応は、例えば配列100を各行xに沿って漸進的に渡ることにより遂行され、その結果、番号「1」がフィールド(x=1、y=1)に対応し、番号「2」がフィールド(x=1、y=2)に対応し、以下同様であって、番号「M」がフィールド(x=xR、y=yC)に対応する。任意の他の対応が可能であることも明らかである。
図3に戻って、ステップ10には、配列100に項目I1〜INを挿入する必要のある相互の順番を識別するN個の整数値の組VIを定義するステップが含まれる。この順番は、例えば配列100の最初のフィールドから始まって各行xを渡るものと考えられる。しかし、任意の他の順番を選択することができる。
図4に示されるように、各項目I1〜INは、一連のランダムバイトRBx、yを含んでいる配列100のフィールド(x、y)により、他の項目I1〜INから分離される。このために、図3のステップ10において、N+1個の乱数の組VRBが生成され、これらの数のそれぞれにより、項目I1〜INのセパレータとして配列100に挿入する必要のある、それぞれの系列RBx、yのバイトで表された長さが識別される。
したがって、組VI(ベクトル)が、項目I1〜INを配列100に挿入する順番を識別し、組VRB(ベクトル)が、1つの項目I1〜IN-1と次の項目I2〜INの間に(配列100の最初と最後にも)挿入する必要のある各ブロックRBx、yの長さを識別する。ベクトルVIおよびVRBは、次の形式(シール方式ベクトルSSに示された数値は、可能な実施形態の例であり、限定するものではない)を有するシール方式ベクトルSSに保存される
SS={VI; VRB}={1、2、3、4、...; 23、4、46、5、11、...}。
このように、シール方式ベクトルSSがない状態では、配列100を単純に読み取っても、配列100に含まれている情報を回復するのが容易ではない(すなわち、プレインテキストを直接突き止めること、またはむしろ項目I1〜INを直接突き止めることは不可能である)。
ベクトルVIは、N個のフィールドを備え(したがって各フィールドが単一の値を含んでいる場合にはN個の値を含み)、ベクトルVRBは、N+1個のフィールドを備え(各フィールドが1つの値のみを含んでいる場合には結果的にN+1個の値を含み)、したがって、シール方式ベクトルは2N+1個の値を含み、SS(N+1)の値は、配列100の最初の項目I1に先行するバイト数であり、SS(N+2)の値は、配列100の第1の項目I1と第2の項目I2の間のバイト数であり、SS(N+3)の値は、配列100の第2の項目I2と第3の項目I3の間のバイト数であり、以下同様である。SS(2N+1)の値は、最後の項目INの後に配列100に追加されたバイト数である。
前述のように、組VI(ベクトル)を定義するステップは、配列100に項目I1〜INを相互に挿入する順番のN個の識別番号を定義するステップと等価である。ベクトルVIを形成するN個の値は、配列100のそれぞれのフィールドを識別するのではなく、例えば配列100の各行xに沿った系列で考えたとき、配列100に項目I1〜INを挿入する順番を表すことに留意されたい。ここまでに説明されたものと同様に、ベクトルVIは、実例として次のようなタイプである
VI={1、2、3、4、...}。
ベクトルVIは、配列100の中に、第1の項目として項目I1を挿入し(VI(1)={l}およびI(1)=I1であるので、I(VI(1))={I1})、配列100の中に、第2の項目として項目I2を挿入し(VI(2)={2}およびI(2)=I2であるので、I(VI(2))={I2})、配列100の中に、第3の項目として項目I3を挿入し(VI(3)={3}およびI(3)=I3であるので、I(VI(3))={I3})、配列100の中に、第4の項目として項目I4を挿入し(VI(4)={4}およびI(4)=I4であるので、I(VI(4))={I4})、ベクトルIのN個すべての項目I1〜INに関して以下同様にする、といったやり方に解釈される。
常に定性的な例として、それぞれの数がそれぞれのブロックRBx、yの長さを識別するN+l個の乱数の組を定義するステップにより、次のタイプのベクトルVRBが生成される
VRB={23、4、46、5、11、...}。
ベクトルVRBは、23個のランダムバイトを、配列100の、ベクトルVIによって定義される最初の項目の直前に(この例では項目I1の前に)挿入し、4個のランダムバイトを、配列100の、ベクトルVIによって定義される最初の項目の直後に(この例では項目I1の後に)挿入し、46個のランダムバイトを、配列100の、ベクトルVIによって定義される第2の項目の直後に(この例では項目I2の後に)挿入し、5個のランダムバイトを、配列100の、ベクトルVIによって定義される第3の項目の直後に(この例では項目I3の後に)挿入し、11個のランダムバイトを、配列100の、ベクトルVIによって定義される第4の項目の直後に(この例では項目I4の後に)挿入する、といったやり方に解釈される。
配列100の項目I1〜INを配列する操作(すなわち、ベクトルVIを生成する、図3のステップ10および12)および/またはベクトルVRBの生成は、一定間隔で、かつ/または特別な所定のイベントに続いて、何回も遂行することができ、配列100の周期的な更新が可能になる。シール方式ベクトルSSも、対応するやり方で更新される。具体的には、I1〜INのN個の項目が与えられると、これらは、配列100の開始する順番が再来する前にN!回の置換が可能である。これは、ベクトルVIによって定義される項目I1〜INの順序が、最初の順序に戻る前にN!回変更され得ることを意味する。
実際には、1とMの間の値を有する2つの第1の整数「A」および「B」を選択して、
(1)ベクトルVIの第1の値の位置をベクトルVIの第2の値の位置と置換する(2つの位置は、任意に、または2つの別々のカウンタを用いることによって選択される)ステップ、および
(2)ベクトルVIのそれぞれの1つまたは複数の値の位置とベクトルVIの1つまたは複数の値の位置を交換するステップであって、これらの位置が、前のポイント(1)で言及された第1の値が元来含まれていた位置の後にあるステップ、といった操作がA回遂行されるようにシャッフル関数が遂行される。
置換するステップ(1)は、あらかじめ設定することができないやり方で順序づけられた値を含んでいるベクトルVIを生成するように、「B」個の別々の値に対して「B」回遂行される。
Bの値は、BがN!・(N+1)!の除数にならないように、無作為に選択される。このように、2つの数BとN!・(N+1)!は相互素数(mutual primes)であり、それらが完全には割り切れないという事実を利用して、何回かの繰返しの後に再び同一の値に戻るのが防止される。
より詳細には、置換する操作(1)は、ベクトルVIのそれぞれの位置に含まれる数値に対する置換を遂行するステップを含む。前述のように、ベクトルVIは実際には整数のベクトルであって、各整数は、それぞれの項目I1〜IN (または、むしろそれぞれの項目I1〜INに関連した値J1〜JN)が挿入される、配列100における位置を記述する。したがって、置換するステップは、
(a)-ベクトルVIのそれぞれの第1のフィールドに含まれている第1の数値(例えば数「1」を含んでいるVI(1))を選択するステップと、
(b)-ベクトルVIの、第1のフィールドとは別の、それぞれの第2のフィールドに含まれている第2の数値を選択するステップと、
(c)-第1のフィールドに含まれていた第1の数値と、第2のフィールドに含まれていた第2の数値とを互いと交換するステップとを含む。
この置換するステップは、(d)-ステップ(a)〜(c)を繰り返す任意選択のステップも含む。
図6および図7は、前述のステップ(a)〜(d)をより詳細に示す流れ図である。
図6を参照すると、ステップ20において、図6の方法の最初の繰返しであると想定される。ベクトルVIは、例えばVI={1、2、3、4}といったタイプである。変数pは、この例では、ベクトルVIのフィールドを識別する指数であり、1から(N-1)の値をとることができて、この場合(N-1)=4である。VI(p)=VI(N-1)=VI(3)={3}であるベクトルVIの最後から2番目の位置が選択される。
次いで、ステップ22において、ベクトルVIの最後のフィールドが選択され、すなわちVI(p+1)=VI(N)=VI(4)={4}である。
その後、ステップ24において、フィールドVI(N-1)とVI(N)に含まれていた値が互いと比較される。VI(N-1)がVI(N)未満であると、次いで、ステップ26において、前述のステップ(a)による第1の項目としてVI(N-1)が選択される。
そうでなければ、ステップ28において値pが1単位だけ減らされ、ステップ29で、ベクトルVIの始まりに達したかどうかチェックされる。pの現在の値が0であると、次いでベクトルVIが終了され、あらゆる可能な置換が行なわれる(この方法は終了する)。pが1以上であれば、ステップ30でVI(p)が選択され、ステップ32でVI(p+1)が選択される。次いで、処理は、VI(p)をVI(p+1)と比較するためにステップ24に戻る。
以前の例を続けて、ベクトルVI={1、2、3、4}と想定すれば、VI(N-1)<VI(N)であるので、ステップ24はステップ26に至る。
ステップ28〜32は遂行されず、したがって、前述のステップ(a)の第1の数値として値VI(N-1)=3が選択される。
次いで、処理は、前述のステップ(b)による第2の数値の選択へ進む。図7を参照すると、ステップ36において、図7の方法の最初の繰返しにおけるベクトルVIの最後の値(すなわちVI(N))が選択される。図7の方法によれば、ベクトルVIにインデックスを付けるのに指数qが用いられる。したがって、ステップ36ではq=Nとなる。
次いで、ステップ38において、図6のステップ26で選択された値VI(p)が現在の値VI(q)と比較される。VI(q)>VI(p)であると、次いで、ステップ40において、フィールドVI(p)に含まれていた値がフィールドVI(q)に含まれていた値と交換される。この場合、常にベクトルVI={1、2、3、4}と考えて、ステップ40はベクトルVI={1、2、4、3}を生成する。
ステップ38の比較が、VI(q)<VI(p)と判明すると、次いで、ステップ42において、値qが1単位だけ減らされる。ステップ43において、qの現在の値がpの現在の値より大きいかどうかチェックされる。真であれば、処理は、VI(p)とVI(q)の間の新規の比較のためにステップ38に戻る。偽であれば、この方法は終了する。
次いで、処理は、前述の「交換する」ステップに進む。このステップの間、ベクトルVIのp'番目の位置に続くN-pの位置に含まれている数値が、それぞれ(N-p)/2の値の2つのサブグループに細分される。次いで、(N-p)/2の値の2つのサブグループの位置が交換される。N-pが奇数である場合には、N-p+1フィールドを考慮する、または別のグループを選択することができる。
図7のステップ40の後に生成されたベクトルVI、すなわちVI={1、2、4、3}に戻ると、指数pの値は3であり、交換ステップは無効である。
図6および図7のステップ20〜32を再び繰り返すこと(第2の繰返し)により、得られる新規のベクトルVIは、次の形態を有する
VI={1、3、4、2}。
次いで、交換ステップを遂行して、次のVI (2)を得る
VI (2)={1、3、2、4}。
図6および図7のステップ20〜32を再び繰り返すこと(第3の繰返し)により、得られるベクトルVIは、次の形態を有する
VI (3)={1、3、4、2}。
この場合、ベクトルVI={1、3、2、4}は、交換ステップによって変更されない。
図6および図7のステップ20〜32を再び繰り返すこと(第4の繰返し)により、得られるベクトルVIは、次の形態を有する
VI={1、4、3、2}。
次いで、交換ステップを遂行して、次のVI (4)を得る
VI (4)={1、4、2、3}。
処理はこのように継続し、ベクトルVIに含まれている数値の可能な置換をすべて達成する。
最初に生成するとき、配列100の項目I1〜INの順番をランダムにするために、あらかじめ設定することができないベクトルVIの、各数値の順番を生成するように、図6〜図7のこの方法のステップおよび交換ステップの繰返しを「A」回(Aは乱数)遂行することができる。
別の実施形態によれば、図6〜図7のこの方法のステップのそれぞれの繰返しが「B」回遂行されてから、交換ステップが遂行される。
それぞれのブロックRBx、yのバイトで表された長さをそれぞれが識別するN+1個の乱数の組(ベクトル)VRBを定義するステップは、
(1)配列100の項目I1〜INの第1の項目の前に、少なくとも1つの(バイトで表された任意のサイズ/長さの)ブロックRBx、yが挿入されること、
(2)項目I1〜INの連続した2つの項目を互いから分離するように、配列100の各行xに沿って、項目I1〜INの連続した2つの項目の間に、少なくとも1つの(バイトで表された任意のサイズ/長さの)ブロックRBx、yが挿入されること、
(3)配列100の項目I1〜INの最後の項目後に、少なくとも1つの(バイトで表された任意のサイズ/長さの)ブロックRBx、yが挿入されること、
(4)各ブロックRBx、yのバイトで表された長さの確率分布が均一であること、
(5)すべてのブロックRBx、yのバイトで表された長さの和SRBは、配列100が完全に満たされる(すなわちΣiL(i)+SRB=M)ものであること、といった要件の少なくとも1つに適合する。
本発明の一実施形態によれば、それぞれのブロックRBx、yの長さは、これら(1)〜(5)の要件のすべてに適合する。
図3の流れ図に戻って、ステップ14で、ステップ10および12によって生成された配列100が、図1の認証トークン1によってランダムに生成されたキーkSを用いて暗号化される。キーkSは、選択された暗号化アルゴリズムに依拠して、標準方式によって生成され得る。例として説明されたケースでは、キーkSの生成を扱うのはトークンである。したがって、キーkSを用いる暗号化ステップはこの標準的なルーチンを起動する(したがって、それ自体は本発明の対象ではない)。例えば、AESの暗号化の方法では、キーは、暗号化することができるデータの最小ブロックと同程度の長さ(一般的には32バイト)であり、ユーザが選択することができる、または無作為なやり方で生成しておいた初期化ベクトルから生成される。
それに加えて、配列100は、例えばRSAなどの非対称な暗号化アルゴリズム、AES(高度暗号化標準)などのブロックベースの暗号化アルゴリズム、DES(データ通信用暗号化標準)アルゴリズム、または文献で知られているその他の暗号化アルゴリズムといった、既知のタイプの暗号化の方法を用いて暗号化される。前述の暗号化アルゴリズムRSA、AESおよびDESは、文献に知られており、関連する暗号化ステップは、簡潔さのためにここでは明示されない。キーkSの生成も、前述のように、文献で知られている方法によって遂行される。
以下で「C_data」として示される暗号化された配列(または、一般には暗号文オブジェクト)が、図3のステップ14の結果として得られる。
キーのkSおよび暗号文オブジェクトC_dataの両方が、認証トークン1の記憶装置4の非公開エリア4aに記憶される。
配列100の暗号化を参照しながら説明されたのと同様に、配列100用の読取りキーを表すシール方式ベクトルSSも、図1の認証トークン1によって無作為に生成されたそれぞれのキーkVによって暗号化される(ステップ14)。キーkVの生成は、自由に選択された既知の方法により、キーkSの生成と似たやり方で行なわれる。例えば、AESアルゴリズムを再び参照して、このキーkVは、キーkS向けに用いられた初期化ベクトルとは異なる初期化ベクトルによって生成される。
ベクトルSSも、配列100と同様に、既知のアルゴリズムを用いて暗号化される。例えば、AES暗号化アルゴリズムを用いることができるであろう。それにもかかわらず、他のアルゴリズムを用いることができることが明らかである。
キーkVおよび暗号化されたシール方式ベクトルSS(以下では「C_scheme」としても示される)の両方が、認証トークン1の記憶装置4の非公開エリア4aに保存される。暗号文オブジェクトC_dataは、情報(項目I1〜IN)を保持する「シール」を構成し、これを知ることは、保護することが望まれるデータおよび/または情報へのさらなるアクセスを可能にする必要条件である。例えば、本発明の好ましい用途の参照を継続して、このシールの暗号解読および読取りは、ソフトウェアプログラムの実行を認証する、またはこのソフトウェアプログラムの使用ライセンスを取得するのに必須のことである。前述のように、項目I1〜INを含んでいるベクトルIのコピーが、ソフトウェアプログラムのユーザがアクセスできないやり方で、ソフトウェアプログラムに保存される。配列100に読み込まれた項目I1〜INと、ソフトウェアプログラムに保存されたベクトルIの項目I1〜INを比較することにより、配列100の(シール方式SSを用いる)正確な読取りの確認が遂行される。
このさらなるデータ/情報/ソフトウェアプログラムに対するアクセスを認証するために、図8による方法のステップが遂行される。
第1に、ステップ50において、認証トークン1が予期された認証トークン1に一致するかどうか確立するためにチェックされる。
このチェックは、使用する認証トークン1のモデルおよび/または製造番号が、予期されたものに一致し、かつ適合しているかどうか、チェックすることにより遂行することができる。
ステップ50のチェックが肯定的な結果をもたらした場合には、次いで、ステップ52で、シールが一体化されているか、または変更されているかどうか確認するために、記憶装置4の非公開エリア4aがアクセスされる。前述のように、記憶装置4の非公開エリア4aに対するアクセスは、PINを用いて行なわれ、このPINは、ライセンスの初期設定ステップにおいて生成されたものであり、いかなる攻撃の試みも無効にする、または著しく困難にするために、十分な長さ(例えば127キャラクタ)の1組の印字可能英字(英数字に符号を加えたもの)から成る。実際、連続した試みによってこのPINを推測しようとする場合には、試みの失敗が所定の回数を上回ると、トークンは回復不可能なやり方で固定され、唯一のロック解除可能者であるソフトウェアメーカへのコンタクトが強制される。
一実施形態によれば、(a)ユーザが、保護されるソフトウェアを起動しようとすると、ソフトウェアが、トークンおよび個人パスワードを挿入するようにユーザに促すステップと、(b)ユーザが、前のポイント(a)で要求された自分の個人パスワードを与えるステップと、(c)保護されるソフトウェアが、本発明の一部分ではないそれ自体の方法を用いて、ユーザの個人パスワードが正確であることをチェックする(例えばハッシュ関数が用いられる場合、ソフトウェアは、ハッシュを計算して、それを、例えば以前にファイル、データベース、サーバなどに記憶されたハッシュと照合する)ステップと、(d)前のポイント(c)のチェックが合格であると、保護されるソフトウェアが、本発明のこの方法のステップにより、ユーザのライセンスに対応するPINを用いて、トークンとの通信を開き、関連するチェックを遂行するステップとが遂行される。
次いで、ステップ54で、キーkSおよびkVを用いて、暗号文オブジェクトC_dataおよび暗号化されたシール方式SSのC_schemeが、図3のステップ14および16によって用いられた暗号化アルゴリズムを用いて、既知のやり方で解読される。次いで、シール方式SSによって識別される配列100の項目I1〜INの位置と配列100の項目I1〜INの有効な位置の間の整合性がチェックされる。
最初のチェックでは、シール方式SSに指定された位置を読み取ることにより、例えば、
(i)フィールドの濃度と、(ii)フィールドの長さと、(iii)フィールドのタイプ(数、英字列、日付など)と、(iv)固定フィールドのコンテンツ(例えばソフトウェアメーカの名前)と、(v)ソフトウェアと、シールに指定されたソフトウェア名の間の整合性と、(vi)シールを含んでいるハードウェアに応答指令信号を送ることによって得られたハードウェア関する情報(例えばトークンチップの製造番号)とシールの中に記入された同等なデータの間の整合性とのパラメータの、1つまたは複数をチェックすることにより、配列100から読み取ったコンテンツは、保護することが望まれるソフトウェアプログラムに含まれているベクトルIの項目I1〜INと整合性があることが確認される。特に、この最後のポイント(vi)は、悪意のある人物が、同一モデルの別のトークンの中に非公開記憶エリア4aのコンテンツを(チップを破壊することなく)完全にコピーすることに成功したとしても、データに対するアクセスは、ハードウェア(トークン)のその特定の部分に関連させられているので、なお拒否されるはずであることを意味する。
この方法は、このステップで、可変情報の読取りも提供する。非限定的な例として、この情報は、ライセンス番号、クライアントの名前、現在のシールが生成された日付/時間、ライセンスによって活性化されたモジュール(該当する場合)の1つまたは複数を含む。
ステップ55で、保護されるデータ/情報に対するアクセスが拒否されると、図8のこの方法は終了する。
ステップ56で、保護されるデータ/情報に対するアクセスが許可されると、次いで、新規のシール方式ベクトルSSは無作為に生成され、こうして生成された新規のシール方式ベクトルSSに基づいて、配列100に類似の新規の配列が生成される。一実施形態では、新規の配列には、新規の順番に配置され、別のバイト数を有するブロックRBx、yによって分離された、配列100の同一の項目I1〜INが含まれる。あるいは、別の実施形態によれば、新規の配列は、配列100の項目I1〜INとは別の項目I1 (a)〜IN' (a)を含み、項目I1 (a)〜IN' (a)の数N'も、項目I1〜INの数Nとは異なり得る。さらなる実施形態によれば、新規の配列は、配列100の項目I1〜INと部分的に共通で(例えば固定フィールドが同一であり得る)、部分的に異なる(例えば可変フィールドが異なり得る)、項目I1 (a)〜IN' (a)を含む。このように、新規のシールが生成される。
新規のシールを生成するのに用いられるデータフィールドは、既に本明細書で説明された元のシールと同一のものである。日付/時間のデータは、新規のシールの生成中にソフトウェアが実行しているローカルのコンピュータ装置によって供給される。この方式は、この方式がそれ自体を見つける現在の置換から進化するように構成されている。ランダムバイト(RBx、y)のための予備のスペースが、無作為なやり方で(前述の基準と同じものを用いて)再び割り付けられる。
図8のステップ56によってシールが進化する度に、ここでは簡潔さのために説明されない図3ステップ14〜16による暗号化のステップも遂行される。
次いで、特定のあらかじめ設定された期間またはランダムな期間の後に、ステップ54を参照しながら説明されたように、現在のシール方式SSと現在の配列の間の整合性が再びチェックされる。
ステップ54により、許容できると考えられる結果、すなわち、現在の配列の項目I1 (a)〜IN' (a)の配置が、現在のシール方式SSによって識別される配置と整合性があり、ブロックRBx、yのバイトで表されたサイズが、現在のシール方式SSによって指定されたサイズと整合性がある、との結果をもたらされるまで、ステップ54〜56が継続的に繰り返される。
ステップ54により、出力(ベクトルSSと配列100間の一致)として肯定的な結果がもたらされると、次いで、使用されているトークンが有効であると見なされ、後続のデータおよび/または情報にアクセスするための認証(例えば、ソフトウェアプログラムを実行するための認証、またはこのソフトウェアプログラムを使用するためのライセンスを得るための認証)が取得される。
この瞬間から、ソフトウェアの現行の使用セッションを通じて、チェックされるのは、トークンのハードウェアが以前に確認されたそれ自体の識別情報を伴って応答し続けていることのみである。
それにもかかわらず、前述の詳細なチェックは、ソフトウェアを利用するために重要であると考えられる機能(または製造業者がより大きな価値があると見なす機能)を用いることを要求するユーザのイベントに基づいて、ソフトウェアによって再び起動され得る。
トークンが切り離されている場合には、この状況が検出され、同一のトークン(「同一の」は、その特定の製造番号を有するものを意図している)を再挿入することが必要とされ、一旦挿入されると、チェックアウトプロシージャ全体の再初期化を伴う。
そうでなければ、トークンが挿入されない場合、またはトークンが別の製造番号を有する場合には、ソフトウェアの実行が異常終了される(セッションが1つのトークンを用いて1度起動されることを意味し、別のトークンを用いて続行することは、この別のトークンが有効なライセンスを含んでいたとしても不可能である)。
本発明によるシステムおよび方法の利点は明白である。
情報項目I1〜INを含んでいるベクトルの順序の選択については、いわゆる語彙の置換の概念(Teinhaus-Johnson-Trotterアルゴリズムによって達成可能)に従って、1度に対の位置を交換することにより、N個の項目の可能な置換をすべて渡るたった1つのやり方が存在するという(数学的に立証可能な)事実が利用される。この方法は、計算上効率的であり、ハミルトン経路を形成する、すなわち仮想permutahedronの各頂点をすべて1回だけ通る。この場合、permutahedronは、各頂点が、残りの頂点上に存在するその他の組合せとは別の情報項目I1〜INの可能な組合せを含んでいる仮想の立体である。
このシーケンスを渡るやり方は、特別な基準に従って選択され、実際、項目の数(N!・(N+1)!である)の整数除数でないように選択された複数のステップだけシーケンスに沿ってジャンプすることにより、元のシーケンスが固有のハミルトン閉路で生成されることが保証される。基本的に、このシーケンスは非循環ループ(acyclic loop)になる。このように、いわゆる知識システムの証明が定義され、トークンが「知識」(すなわち、換言すればシール)のホルダである。
ソフトウエアコンポーネントは、テストデータ/情報を保持する一般的な有効なトークン上に存在するライセンス(したがって、「証明」または「証拠」としての働きをする)の真実性を証明するシールの健全性をチェックするように構成される。
したがって、上記のことを考慮に入れ、また、
- 暗号化システムが、最初のシールを初期設定する機能、シールを開く機能、およびシールを検証する機能を含む、
- ライセンスのコンテンツを変更することなく、メッセージの残りのランダム要素に関する配置を変更するランダム方式により、シールの形態が毎回変更される、
- 完全性基準が満たされる、すなわち、ライセンスに採用される方式の如何を問わず、それぞれの初期のシールおよび後続のシールの確認に成功する、
- シールが正しい形式でなければ(例えば連続した2つのチェックの間で偽造されれば)、シールが容認される確率がゼロであるため、完全な健全性基準が満たされる、といったことから、このシステムの各確認は非相互通信型のゼロ知識証明タイプであり、発展的コミットメント方式を用いることが明記されるべきである。
結論として、セキュリティの明白な向上は別として、
(i)たとえデータの伝送が必要であっても、ライセンス情報のセキュリティが、(ライセンスが公開されていないので)ライセンスを有効にするのに必要な、ソフトウェアとハードウェアとの間のデータ交換において損なわれることがなく、
(ii)同時に、同一のソフトウェアで複数の装置上の複数のフローティングライセンスを管理する可能性が保たれる(すなわち複数の装置および複数のユーザが存在して、各ユーザが好みの装置で作業することができる最も一般的な状況である)、といった利点が得られる。
PINの使用に関して、最初の初期化で、対象のコードは非常に長く(例えば128キャラクタ)自動的に生成され、ユーザには開示されないが、ソフトウェアによって、自動的に、ユーザに意識されることなく低レベルで用いられる。このようにして、トークン自体を、試みが所定の回数(例えば3回または4回)失敗した後に自動的にロックするように構成し得ることを考慮に入れて、コンテンツにアクセスしたい無許可のユーザによる、トークンの非公開エリアへのアクセスの確率が最小限になる。
さらに、本発明によれば、
(1)チップに不正開封防止装置が付いている、または、むしろ、チップを物理的に抽出しようとすると、その中に保存されている情報が、実質的に回復不可能になり、失われる/破壊される、認証トークン1へのアクセスを必要とする物理レベルと、
(2)ソフトウェアの製造業者によって設定されたパスワードによってのみアクセス可能な、記憶装置の、ユーザには見えない非公開記憶エリア4aと、
(3)記憶装置の非公開エリア4aが発見される、および/またはそのアクセスパスワードが知られる場合に、情報のさらなる保護を可能にする暗号のレベルと、
(4)この方式または配列を単純に読み取っても、この方式によって配置されたデータを容易には回復できないように、この方式から生成された項目I1〜INを相互に配置する方式と、
(5)アクセスまたは暗号解読の試みが、配列に記憶されたデータにもたらす変化が最小限のものであっても、シールの失効を起動するように、整合性を確認する機構と、
(6)複数の装置に、ソフトウェアをインストールして、ライセンスを含んでいるトークンが挿入された装置しか使用可能にしないフローティングライセンスを遂行する可能性との、さまざまなレベルの保護が提供される。例えば、インストールされた装置が10台あっても、トークンは3つしかない、といったことがあり得る。
最後に、添付の特許請求の範囲に定義された本発明の保護の範囲から逸脱することなく、本明細書で説明され、図示された本発明を、修正し、かつ変更し得ることが明らかである。
例えば、記憶装置4の非公開エリア4aは、同時に複数のソフトウェアおよびユーザを管理するように、前述のように、生成された複数のシールを格納することができる。
1 認証トークン
2 マイクロプロセッサ
4 記憶装置
4a 非公開記憶エリア
4b 公開記憶エリア
6 コンピュータ

Claims (32)

  1. 保護される情報に対するアクセスを認証するための認証システムであって、個人識別番号によってアクセス可能な非公開記憶エリア(4a)を含む記憶装置(4)を有するハードウェアのトークン(1)を備え、前記非公開記憶エリア(4a)が、
    - 数値英数字、または英字のタイプの少なくとも一つの複数の第1の情報項目(I1〜IN)と、
    - それぞれがそれぞれのサイズを有する、数値英数字、または英字のタイプの少なくとも一つの複数の第1のランダムデータ項目(RBx、y)とを記憶し、
    前記第1の情報項目(I1〜IN)および前記第1のランダムデータ項目(RBx、y)が少なくとも1つの読込み順序を有し、前記読込み順序の前記第1のランダムデータ項目(RBx、y)のうちの1つによって、それぞれの第1の情報項目(I1〜IN)が、連続した第1の情報項目(I1〜IN)と互いに直接連続しないように、配列(100)の中に配置されており、
    前記非公開記憶エリア(4a)が、前記配列(100)の第1の情報項目(I1〜IN)のそれぞれに対するアクセスを許可するために、前記配列(100)の中に、前記第1の情報項目(I1〜IN)の第1の相対的配置情報およびそれぞれの第1のランダムデータ項目(RBx、y)の第1のサイズ情報を含んでいる暗号化されたタイプの第1のシール方式ベクトル(SS)をさらに記憶し、前記認証システムが、
    - 前記個人識別番号の挿入をするための、前記非公開記憶エリア(4a)へのアクセスを許可し
    - 前記第1のシール方式ベクトルを解読して、前記配列(100)の中の、前記第1の情報項目(I1〜IN)の前記第1の相対的配置情報と、それぞれの第1のランダムデータ項目(RBx、y)の前記第1のサイズ情報とを取得し、
    - 前記取得した第1の相対的配置情報に基づく配置と前記配列(100)の中の前記第1の情報項目(I1〜IN)の配置の間の対応、および、前記取得した第1のサイズ情報と前記配列(100)の中の前記第1のランダムデータ項目の前記サイズの間の対応をチェックし、
    - 前記取得した第1の相対的配置情報と前記配列(100)の中の前記第1の情報項目(I1〜IN)の配置の間、および前記取得した前記第1のサイズ情報と前記第1のランダムデータ項目(RBx、y)のそれぞれのサイズの間の、前記対応のチェックの結果に基づいて、前記保護される情報に対するアクセスを認証する、または拒否するようにさらに構成される認証システム。
  2. 前記認証が許可された場合には、
    - 前記第1の情報項目(I1〜IN)の第2の相対的配置情報および第2のランダムデータ項目(RBx、y)の第2のサイズ情報を含む、暗号化されたタイプの第2のシール方式ベクトルを生成し、
    - 前記配列(100)の中の前記第1の情報項目(I1〜IN)を、前記第2の相対的配置情報に基づいて、それぞれの第1の情報項目(I1〜IN)が、連続した第1の情報項目(I1〜IN)から、前記第2のサイズ情報に一致するサイズを有するそれぞれの第2のランダムデータ項目(RBx、y)によって前記読込み順序で分離されるように配置し、
    - 保護される前記情報にアクセスするための前記認証のさらなる授与を許可し、前記第1のシール方式ベクトルを解読して、前記第1の相対的配置情報および前記第1のサイズ情報を取得し、前記取得した第1の相対的配置情報と前記配列(100)の中の前記第1の情報項目(I1〜IN)の配置の間の対応、および、前記取得した第1のサイズ情報と前記配列(100)の中の前記第1のランダムデータ項目の前記サイズの間の対応をチェックすることにかけるようにさらに構成される請求項1に記載の認証システム。
  3. 前記認証が許可された場合には、
    - それぞれの数値、英数字、または英字の値(J1〜JN)をそれぞれ有する第2の情報項目(I1〜IN)を取得し、
    - それぞれが、それぞれの数値、英数字、または英字の値、およびそれぞれのサイズを有する複数の第2のランダムデータ項目(RBx、y)を生成し、
    - 前記の第2の情報項目(I1〜IN)の第2の相対的配置情報および前記第2のランダムデータ項目(RBx、y)の第2のサイズ情報を含む、暗号化されたタイプの第2のシール方式ベクトル(SS)を生成し、
    - 前記配列(100)の中の前記第2の情報項目(I1〜IN)を、前記第2の相対的配置情報に基づいて、それぞれの第2の情報項目(I1〜IN)が、連続した第2の情報項目(I1〜IN)から、前記第2のサイズ情報に一致するサイズを有するそれぞれの第2のランダムデータ項目(RBx、y)によって前記読込み順序で分離されるように配置し、
    - 保護される前記情報にアクセスするための前記認証のさらなる授与を許可し、前記第2のシール方式ベクトルを解読して、前記第2の相対的配置情報および前記第2のサイズ情報を取得し、前記取得した第2の相対的配置情報と前記配列(100)の中の前記第2の情報項目(I1〜IN)の配置の間の対応、および、前記取得した第2のサイズ情報と前記配列(100)の中の前記第2のランダムデータの前記サイズの間の対応をチェックすることにかけるようにさらに構成されている請求項1に記載の認証システム。
  4. 前記第1の情報項目(I1〜IN)が、固定タイプのデータまたは可変タイプの少なくとも一つのデータを含む請求項1から3のいずれか一項に記載の認証システム。
  5. 前記第1の情報項目(I1〜IN)の第1の相対的配置情報が、前記第1のシール方式ベクトル(SS)の中で、前記第1の情報項目(I1〜IN)が互いにランダムな順序で配置されていることを示す、請求項1から4のいずれか一項に記載の認証システム。
  6. 前記第1の情報項目(I1〜IN)の前記第1の相対的配置情報項目が互いの後に続く前記ランダムな順序が、前記第1の情報項目(I1〜IN)の前記第1の相対的配置情報のランダムな回数の置換によって達成される請求項5に記載の認証システム。
  7. 前記置換を遂行するステップが、
    (i)前記第1の情報項目(I1〜IN)の中で選択された1つの初期情報項目の位置と前記第1の情報項目(I1〜IN)の別の位置を交換するステップと、
    (ii)前記第1の情報項目(I1〜IN)の中で選択された2つ以上の情報項目の位置を交換するステップであって、これらの位置が、前記配列(100)の中で、前記交換操作(i)に先立って前記初期情報項目が割り当てられた位置の後にあるステップとを含む請求項6に記載の認証システム。
  8. 前記第1の情報項目(I1〜IN)の数がN個であり、前記交換操作(i)がB回遂行され、BはN!・(N+1)!の除数でないように無作為に選択された数である請求項7に記載の認証システム。
  9. 前記交換操作(i)および(ii)がM回繰り返され、MがNより大きい整数値である請求項8に記載の認証システム。
  10. 前記第2のシール方式ベクトルを生成するように、前記第1のシール方式ベクトル(SS)の前記第1の情報項目(I1〜IN)の前記第1の相対的配置情報の1回または複数回の置換を遂行するように構成された請求項1から9のいずれか一項に記載の認証システム。
  11. 暗号化アルゴリズムによって生成された第1の暗号キー(kS)を用いて前記配列(100)を暗号化するようにさらに構成されている請求項1から10のいずれか一項に記載の認証システム。
  12. 前記第1の暗号キー(kS)が、前記記憶装置(4)の前記非公開記憶エリア(4a)に記憶される請求項11に記載の認証システム。
  13. 前記第1および第2のシール方式ベクトル(SS)が、暗号化アルゴリズムによって生成されたそれぞれの第2の暗号キー(kV)によって暗号化される請求項1から12のいずれか一項に記載の認証システム。
  14. 前記第2の暗号キー(kV)が、前記記憶装置(4)の前記非公開記憶エリア(4a)に記憶される請求項13に記載の認証システム。
  15. 前記ハードウェアトークン(1)が予期されたハードウェアトークンに一致するかどうかチェックするようにさらに構成されている請求項1から14のいずれか一項に記載の認証システム。
  16. 前記配列(100)の中の前記第1の相対的配置情報と、前記第1の情報項目(I1〜IN)の配置の間の一致をチェックするステップが、前記配列(100)の中の前記第1の情報項目(I1〜IN)の値(J1〜JN)のそれぞれの期待値との整合性と、それぞれの第1の情報項目(I1〜IN)のサイズと、その第1の情報項目(I1〜IN)に対して予期されたサイズ間の一致との少なくとも1つを確認するステップを含む請求項1から15のいずれか一項に記載の認証システム。
  17. 前記ハードウェアトークンの製造番号が、予期された製造番号に一致するかどうかチェックするのに、前記非公開記憶エリア(4a)へのアクセスを許可するようにさらに構成されている請求項1から16のいずれか一項に記載の認証システム。
  18. 保護される情報に対するアクセスを認証するための認証方法であって、
    - 記憶装置(4)によって、数値英数字、または英字のタイプの少なくとも1つの複数の第1の情報項目(I1〜IN)を取得するステップと、
    - マイクロプロセッサ(2)によって、それぞれがそれぞれのサイズを有する、数値英数字または英字のタイプの少なくとも1つの複数の第1のランダムデータ項目(RBx、y)を生成するステップと、
    - マイクロプロセッサ(2)によって、前記第1の情報項目(I1〜IN)および前記第1のランダムデータ項目(RBx、y)が少なくとも1つの読込み順序を有し、それぞれの第1の情報項目(I1〜IN)が、前記第1のランダムデータ項目(RBx、y)のうちの1つによって、前記読込み順序で、連続した第1の情報項目(I1〜IN)から分離されるように、配列(100)の中で配置されるステップと、
    - 前記マイクロプロセッサ(2)によって、前記配列(100)の第1の情報項目(I1〜IN)のそれぞれに対するアクセスを許可するために、前記配列(100)の中に、前記第1の情報項目(I1〜IN)の第1の相対的配置情報およびそれぞれの第1のランダムデータ項目(RBx、y)の第1のサイズ情報を含む、暗号化されたタイプの第1のシール方式ベクトル(SS)を生成するステップと、
    - 認証システムによって、(i)個人識別番号を入力し、前記入力された個人識別番号に基づいて前記第1のシール方式ベクトルへのアクセスを許可し、(ii)前記第1のシール方式ベクトルを解読して、前記第1の相対的配置情報および前記第1のサイズ情報を取得し、(iii)前記取得した第1の相対的配置情報に基づく配置と前記配列(100)の中の前記第1の情報項目(I1〜IN)の配置の間の対応、および、前記取得した第1のサイズ情報と前記配列(100)の中の前記第1のランダムデータ項目の前記サイズの間の対応をチェックするために保護される前記情報にアクセスするために、認証の授与を許可するステップと、
    - 前記認証システムによって、前記対応のチェックが肯定的であれば前記認証を授与するステップとを含む方法。
  19. 前記認証が許可された場合には、
    - 前記マイクロプロセッサ(2)によって、前記第1の情報項目(I1〜IN)の第2の相対的配置情報および前記第2のランダムデータ項目(RBx、y)の第2のサイズ情報を含む、暗号化されたタイプの第2のシール方式ベクトルを生成するステップと、
    - 前記マイクロプロセッサ(2)によって、前記配列(100)の中の前記第1の情報項目(I1〜IN)を、前記第2の相対的配置情報に基づいて、それぞれの第1の情報項目(I1〜IN)が、連続した第1の情報項目(I1〜IN)から、前記第2のサイズ情報に一致するサイズを有するそれぞれの第2のランダムデータ項目(RBx、y)によって前記読込み順序で分離されるように配置するステップと、
    - 前記認証システムによって、保護される前記情報にアクセスするための前記認証のさらなる授与を許可し、前記第1のシール方式ベクトルを解読して、前記第1の相対的配置情報および前記第1のサイズ情報を取得し、前記取得した第1の相対的配置情報と前記配列(100)の中の前記第1の情報項目(I1〜IN)の配置の間の対応、および、前記取得した第1のサイズ情報と前記配列(100)の中の前記第1のランダムデータ項目の前記サイズの間の対応をチェックすることにかけるステップとをさらに含む請求項18に記載の認証方法。
  20. 前記認証が許可された場合には、
    - 前記記憶装置(4)によって、数値英数字または、英字のタイプの少なくとも一つの第2の情報項目(I1〜IN)を取得するステップと、
    - 前記マイクロプロセッサ(2)によって、それぞれがそれぞれのサイズを有する、数値英数字、または英字のタイプの少なくとも一つの複数の第2のランダムデータ項目(RBx、y)を生成するステップと、
    - 前記マイクロプロセッサ(2)によって、前記第2の情報項目(I1〜IN)の第2の相対的配置情報および前記第2のランダムデータ項目(RBx、y)の第2のサイズ情報を含んでいる、暗号化されたタイプの第2のシール方式ベクトルを生成するステップと、
    - 前記マイクロプロセッサ(2)によって、前記配列(100)の中の前記第2の情報項目(I1〜IN)を、前記第2の相対的配置情報に基づいて、それぞれの第2の情報項目(I1〜IN)が、連続した第2の情報項目(I1〜IN)から、前記第2のサイズ情報に一致するサイズを有するそれぞれの第2のランダムデータ項目(RBx、y)によって前記読込み順序で分離されるように配置するステップと、
    - 前記認証システムによって、保護される前記情報にアクセスするのに、前記認証のさらなる授与を許可し、前記第2のシール方式ベクトルを解読して、前記第2の相対的配置情報および前記第2のサイズ情報を取得し、前記取得した第2の相対的配置情報と前記配列(100)の中の前記第2の情報項目(I1〜IN)の配置の間の対応、および、前記取得した第2のサイズ情報と前記配列(100)の中の前記第2のランダムデータ項目の前記サイズの間の対応をチェックすることにかけるステップをさらに含む請求項18に記載の認証方法。
  21. 前記記憶装置(4)によって、前記複数の第1の情報項目(I1〜IN)を取得するステップが、前記記憶装置(4)によって、固定タイプのデータ、または可変タイプのデータの少なくとも一つを取得するステップを含む請求項18〜20のいずれか一項に記載の認証方法。
  22. 前記マイクロプロセッサ(2)によって、前記第1のシール方式ベクトル(SS)を生成するステップが、前記マイクロプロセッサ(2)によって、前記第1の情報項目(I1〜IN)の前記第1の相対的配置情報をランダムな順序に配置するステップを含む請求項18〜21のいずれか一項に記載の認証方法。
  23. 前記マイクロプロセッサ(2)によって、前記第1の情報項目(I1〜IN)の前記第1の相対的配置情報をランダムな順序に配置するステップが、前記マイクロプロセッサ(2)によって、前記第1の情報項目(I1〜IN)の前記第1の相対的配置情報に対するランダムな回数の置換を遂行するステップを含む請求項22に記載の認証方法。
  24. 前記マイクロプロセッサ(2)によって、前記置換を遂行するステップが、 (i)前記マイクロプロセッサ(2)によって、前記第1の情報項目(I1〜IN)の中で選択された1つの初期情報項目の位置と前記第1の情報項目(I1〜IN)の別の位置を交換するステップと、
    (ii)前記マイクロプロセッサ(2)によって、前記第1の情報項目(I1〜IN)の中で選択された2つ以上の情報項目の位置を交換するステップであって、これらの位置が、前記配列(100)の中で、前記交換するステップ(i)に先立って前記初期情報項目が割り当てられた位置の後にあるステップとを含む請求項23に記載の認証方法。
  25. 前記第1の情報項目(I1〜IN)の数がN個であり、前記交換するステップ(i)がB回遂行され、BはN!・(N+1)!の除数でないように無作為に選択された数である請求項24に記載の認証方法。
  26. 前記前記交換するステップ(i)および(ii)がM回繰り返され、MがNより大きい整数値である請求項25に記載の認証方法。
  27. 前記マイクロプロセッサ(2)によって、前記第1の相対的配置情報のランダムな順序付けを生成するように、前記第1のシール方式ベクトル(SS)の前記第1の情報項目(I1〜IN)の前記第1の相対的配置情報の置換を、ランダムな回数だけ遂行するステップをさらに含む請求項18〜26のいずれか一項に記載の認証方法。
  28. 前記認証システムによって、暗号化アルゴリズムによって生成された第1の暗号キー(kS)を用いて前記配列(100)を暗号化するステップをさらに含む請求項18〜27のいずれか一項に記載の認証方法。
  29. 前記第1のシール方式ベクトル(SS)が、暗号化アルゴリズムによって生成された第2の暗号キー(kV)を用いて暗号化される請求項18〜28のいずれか一項に記載の認証方法。
  30. 前記第2のシール方式ベクトル(SS)が、暗号化アルゴリズムによって生成された第3の暗号キー(kV)を用いて暗号化される請求項19または20に記載の認証方法。
  31. 前記認証システムによって、前記配列(100)の中の前記第1の取得された相対的配置情報に基づく配置と、前記第1の情報項目(I1〜IN)の配置の間の一致をチェックするステップが、前記配列(100)の中の前記第1の情報項目(I1〜IN)の値(J1〜JN)のそれぞれの期待値との整合性と、それぞれの第1の情報項目(I1〜IN)のサイズと、その第1の情報項目(I1〜IN)に対して予期されたサイズの間の一致との少なくとも1つを確認するステップを含む請求項18〜30のいずれか一項に記載の認証方法。
  32. 実行されたとき、処理手段(1、6)を、請求項18〜31のいずれか一項による方法をコンピュータによって遂行するように構成するように設計された、前記処理手段にロード可能なコンピュータプログラム。
JP2013111742A 2012-05-28 2013-05-28 データ保護システムおよび方法 Active JP6184751B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ITTO2012A000462 2012-05-28
IT000462A ITTO20120462A1 (it) 2012-05-28 2012-05-28 Sistema e metodo di protezione di dati informativi

Publications (2)

Publication Number Publication Date
JP2013251897A JP2013251897A (ja) 2013-12-12
JP6184751B2 true JP6184751B2 (ja) 2017-08-23

Family

ID=46548739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013111742A Active JP6184751B2 (ja) 2012-05-28 2013-05-28 データ保護システムおよび方法

Country Status (6)

Country Link
US (1) US9246684B2 (ja)
EP (1) EP2670080B1 (ja)
JP (1) JP6184751B2 (ja)
CN (1) CN103559454B (ja)
ES (1) ES2663422T3 (ja)
IT (1) ITTO20120462A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11423498B2 (en) * 2015-12-16 2022-08-23 International Business Machines Corporation Multimedia content player with digital rights management while maintaining privacy of users
US10362373B2 (en) * 2016-01-07 2019-07-23 Cisco Technology, Inc. Network telemetry with byte distribution and cryptographic protocol data elements
US9971800B2 (en) * 2016-04-12 2018-05-15 Cisco Technology, Inc. Compressing indices in a video stream
WO2018008547A1 (ja) * 2016-07-06 2018-01-11 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
US10333963B2 (en) * 2016-10-28 2019-06-25 Corax Cyber Security, Inc. Identifying a vulnerability of an asset of a network infrastructure to mitigate
IT201900016859A1 (it) 2019-09-20 2021-03-20 Leonardo Spa Sistema e metodo di valutazione dell'addestramento di un operatore in una missione addestrativa in tempo reale
CN112134881B (zh) * 2020-09-22 2023-03-21 宏图智能物流股份有限公司 一种基于序列号的网络请求防篡改方法
CN113507448B (zh) * 2021-06-17 2022-05-17 中国汽车技术研究中心有限公司 安全访问服务认证方法和系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742035A (en) * 1996-04-19 1998-04-21 Kohut; Michael L. Memory aiding device for credit card pin numbers
US20020116617A1 (en) * 1998-01-22 2002-08-22 Talton David N. System and method for authentication
US7272723B1 (en) * 1999-01-15 2007-09-18 Safenet, Inc. USB-compliant personal key with integral input and output devices
FR2822971A1 (fr) * 2001-04-03 2002-10-04 St Microelectronics Sa Systeme et procede de controle d'acces a des donnees protegees stockees dans une memoire
US20040225880A1 (en) * 2003-05-07 2004-11-11 Authenture, Inc. Strong authentication systems built on combinations of "what user knows" authentication factors
CN1855810B (zh) * 2005-04-26 2010-09-08 上海盛大网络发展有限公司 动态密码认证系统、方法及其用途
EP1752937A1 (en) * 2005-07-29 2007-02-14 Research In Motion Limited System and method for encrypted smart card PIN entry
US8799668B2 (en) * 2009-11-23 2014-08-05 Fred Cheng Rubbing encryption algorithm and security attack safe OTP token
CN102148683A (zh) * 2010-02-04 2011-08-10 上海果壳电子有限公司 基于hash芯片或加密芯片的双因素认证方法

Also Published As

Publication number Publication date
ITTO20120462A1 (it) 2013-11-29
EP2670080B1 (en) 2018-01-31
US9246684B2 (en) 2016-01-26
EP2670080A1 (en) 2013-12-04
JP2013251897A (ja) 2013-12-12
ES2663422T3 (es) 2018-04-12
CN103559454B (zh) 2018-04-17
CN103559454A (zh) 2014-02-05
US20140351582A1 (en) 2014-11-27
US20150326396A9 (en) 2015-11-12

Similar Documents

Publication Publication Date Title
JP6184751B2 (ja) データ保護システムおよび方法
US9740849B2 (en) Registration and authentication of computing devices using a digital skeleton key
RU2619895C1 (ru) Система и способы для шифрования данных
JP5499358B2 (ja) 認証処理方法及び装置
CN110710155A (zh) 渐进式密钥加密算法
WO2018229608A1 (en) Computer-implemented system and method providing a decentralised protocol for the recovery of cryptographic assets
JP2022514784A (ja) 物体認証を準備及び実行するための方法及びシステム
CN1234081C (zh) 利用bios通过身份认证实现安全访问硬盘的方法
WO2004051585A2 (en) Identity authentication system and method
JP6849862B2 (ja) パスワード認証のための準同型暗号
US20170111172A1 (en) Method and system for encrypted data synchronization for secure data management
US6651169B1 (en) Protection of software using a challenge-response protocol embedded in the software
EP3561705B1 (en) Secure activation of functionality in a data processing system using iteratively derived keys
US20100138916A1 (en) Apparatus and Method for Secure Administrator Access to Networked Machines
CN107563226A (zh) 一种存储器控制器、处理器模块及密钥更新方法
EP3881214B1 (en) Change-tolerant method of generating an identifier for a collection of assets in a computing environment
RU2816848C2 (ru) Способы и системы для подготовки и осуществления проверки аутентичности объекта
Al-karkhi et al. A Secure Private Key Recovery Based on DNA Bio-Cryptography for Blockchain
WO2008072009A1 (en) Evidence of manufacturing processes
Chiu et al. How to Enhance MIFARE System Security in the Current Crypto-1 Broken Status
BR112017014014B1 (pt) Método e sistema de personalização de token
GB2444797A (en) Evidence of manufacturing processes

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141203

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160415

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170615

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: 20170626

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170726

R150 Certificate of patent or registration of utility model

Ref document number: 6184751

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250