JP7176388B2 - トラステッド・エグゼキューション環境におけるセキュアハッシュ演算 - Google Patents

トラステッド・エグゼキューション環境におけるセキュアハッシュ演算 Download PDF

Info

Publication number
JP7176388B2
JP7176388B2 JP2018230790A JP2018230790A JP7176388B2 JP 7176388 B2 JP7176388 B2 JP 7176388B2 JP 2018230790 A JP2018230790 A JP 2018230790A JP 2018230790 A JP2018230790 A JP 2018230790A JP 7176388 B2 JP7176388 B2 JP 7176388B2
Authority
JP
Japan
Prior art keywords
key
hash
enclave
hash table
client
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
JP2018230790A
Other languages
English (en)
Other versions
JP2019121375A (ja
Inventor
マンダル・アブラディップ
ロイ・アーナブ
モンゴメリー・ハート
シー ミッチェル・ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2019121375A publication Critical patent/JP2019121375A/ja
Application granted granted Critical
Publication of JP7176388B2 publication Critical patent/JP7176388B2/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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本明細書で説明される実施形態は、トラステッド・エグゼキューション環境(Trusted Execution Environment)におけるセキュアハッシュ演算に関係がある。
ハッシュマップと呼ばれることがあるハッシュテーブルは、多数の用途により最も良く使用されているデータ構造の1つである。ハッシュテーブルは、値がハッシュ関数に基づき鍵にマッピングされている連想配列(associative array)である。ハッシュ関数は、値が見つけられ得る配列内のインデックスを計算する。如何にして値が鍵及びインデックスに関連付けられるかを決定づけるハッシュ関数がいくつかある。
本明細書で請求される主題は、記載されている環境においてしか動作しない実施形態、又は記載されている如何なる欠点も解消する実施形態に制限されない。むしろ、この背景は、本明細書で記載されるいくつかの実施形態が実施され得る技術分野の一例を説明するためにのみ提供されている。
実施形態に従って、セキュアハッシュテーブル実装の方法は、サーバ装置のサーバエンクレーブとクライアント装置のクライアントエンクレーブとの間で秘密鍵の交換を実行することを含んでよい。方法は、前記交換された秘密鍵を用いて、前記サーバエンクレーブと前記クライアントエンクレーブとの間に暗号化されたチャネルを確立することを含んでよい。方法は、鍵つきハッシュ関数又は疑似ランダム関数(PRF)のためのランダム鍵を生成することを含んでよい。方法は、前記暗号化されたチャネルを介して前記クライアント装置の前記クライアントエンクレーブへ前記ランダム鍵を送ることを含んでよい。方法は、前記クライアントエンクレーブから前記暗号化されたチャネルを介して前記サーバエンクレーブで入力データのハッシュを受信することを含んでよい。方法は、前記受信されたハッシュに含まれる複数の鍵値対に基づきハッシュテーブルを構築することを含んでよい。方法は、前記クライアント装置からハッシュテーブルクエリを受信することを含んでよい。前記ハッシュテーブルクエリは複数の鍵を含んでよい。方法は、前記ハッシュテーブルクエリに応答して、前記複数の鍵に対応する値を取り出すことを含んでよい。方法は、前記複数の鍵に対応する前記取り出された値を、又は前記ハッシュテーブルクエリに含まれる前記複数の鍵の中の1つについて前記ハッシュテーブルに値が挿入されていない場合にはヌルを返すことを含んでよい。
実施形態の目的及び利点は、少なくとも、特許請求の範囲で特に指し示されている要素、特徴、及び組み合わせによって、実現及び達成されるだろう。前述の概要及び以下の詳細な説明は、実例及び説明であって、請求されている発明を制限するものではない点が理解されるべきである。
例となる実施形態は、添付の図面の使用を通じて、更なる特定及び詳細を伴って記載及び説明されることになる。
本開示で記載されるいくつかの実施形態が実装され得るセキュアハッシュ環境の例のブロック図である。 図1のセキュアハッシュ環境において実装され得るセキュアハッシングプロセスの例を表す。 図1のセキュアハッシュ環境の例となる実施形態であるGWAS環境の例のブロック図である。 セキュアハッシュテーブル実装のために構成されるコンピューティングシステムの例のブロック図である。 セキュアハッシュテーブル実装の方法の例のフロー図である。 セキュアハッシュテーブル実装の方法の例のフロー図である。
全ては、本開示で記載される少なくとも1つの実施形態に従う。
非セキュアハッシュテーブルは、更新(update)動作及び発見(find)動作をサポートし得る。更新動作は、演算Update(Key,Value)によって表されてよく、HashTable[Key]:=Valueを割り当てる。発見動作は、演算Find(Key)→Value又はNullによって表されてよく、HashTable[Key]を、又はUpdate(Key,*)が以前に呼び出されたことがない場合にはヌル(Null)を返す。非セキュアハッシュテーブルでは、ハッシュテーブル鍵はフィールド情報に関連付けられる。これは、非セキュアハッシュテーブルの脆弱性を生じさせる可能性がある。その上、非セキュアハッシュテーブル実装は、キャッシュアクセスパターンに基づく攻撃を受けやすい。然るに、本開示で記載される実施形態は、トラステッド・エグゼキューション環境において実装され得るセキュアハッシュテーブル及びハッシュ演算に関する。
その上、本開示で記載される実施形態は、トラステッド・エグゼキューション環境におけるコンピュータ演算の実行のために構成されたコンピューティングシステムに関する。本開示で記載されるセキュアハッシュ演算は、トラステッド・エグゼキューション環境におけるデータの記憶及び読出の現在の効率の悪さに対する技術的解決法を提供する。その上、本明細書で記載されるセキュアハッシュ演算は、コンピューティングアレイに記憶されたデータの安全性の改善を提供する。特に、いくつかの実施形態は、数ある利点の中でも、トラステッド・エグゼキューション環境において敵対的なエンティティによって開始され得る制御チャネル攻撃(controlled-channel attacks)及び/又はキャッシュ故障攻撃(cache fault attacks)に対する有効な保護を提供する。本開示で記載されるハッシュテーブル演算の使用は、処理オーバーヘッドをそれほど増大させることなしに、そのような脆弱性を減らし得る。
それら及び他の実施形態は、添付の図面を参照して記載される。図面において、同じ参照符号は、別なふうに述べられない限りは、同じ機能及び構造を示す。
図1は、本開示で記載されるいくつかの実施形態が実装され得る、例となるセキュアハッシュ環境100のブロック図である。セキュアハッシュ環境100は、トラステッド・エグゼキューション環境126を含んでよい。トラステッド・エグゼキューション環境126は、サーバ装置102のサーバエンレクーブ104と、クライアント装置112A及び112Bのクライアントエンクレーブ114とを含んでよい。
トラステッド・エグゼキューション環境126は、いくつかの実施形態において、ソフトウェア・ガード・エクステンション(Software Guard Extensions)(SGX)を含んでよい。SGXは、インテル(登録商標)によって実装又は提供され得る。他の実施形態では、他の適切なトラステッド・エグゼキューション環境テクノロジがセキュアハッシュ環境100において実装されてよい。一般に、トラステッド・エグゼキューション環境126は、セキュアハッシュ環境100において強力な安全保障を提供し得る。例えば、セキュアハッシュ環境100は、クライアント装置112A及び112Bがネットワーク124によってサーバ装置102へ接続されているので、クラウドネットワークと見なされ得る。トラステッド・エグゼキューション環境126は、セキュアハッシュ環境100で通信されるクライアントデータの完全な機密性を含むクラウドネットワーク内の強力な安全保障を提供し得る。トラステッド・エグゼキューション環境によって提供される安全保障は、サーバ装置102のサーバエンレクーブ104に記憶されているクライアントデータに対して計算が実行される時に提供され得る。
いくつかの既存のトラステッド・エグゼキューション環境において、安全保障は、クライアントデータに関連する秘密をメモリアクセスパターンに基づき推測する敵対者に対して脆弱であり得る。例えば、キャッシュ故障攻撃は、サーバ装置102に記憶されている秘密鍵を危殆化し得る。キャッシュ故障攻撃及びトラステッド・エグゼキューション環境のいくつかの詳細は、Xu, Yuanzhong,Weidong Cui,及びMarcus Peinado,“Controlled-channel attacks: Deterministic side channels for untrusted operating systems”,Security and Privacy (SP),2015 IEEE Symposium on. IEEE,2015年及びLee, Sangho, et al.,“Inferring fine-grained control flow inside SGX enclaves with branch shadowing”,arXiv preprint arXiv: 1611.06952(2016年)において与えられている。なお、これらの非特許文献は、それらの全文を参照により本願に援用される。
いくつかの既存のトラステッド・エグゼキューション環境は、そのような脆弱性を緩和しようと試みるために忘却型(oblivious)ランダムアクセスメモリ(ORAM)を実装してよい。ORAMは、キャッシュ故障攻撃に対するいくらかの保護を提供し得る。しかし、ORAMは有効ではない。例えば、ORAMの実装は、リード及びライト動作が起きる比較的に長い期間を含み得る。然るに、ORAMの実装は、いくつかの用途では実際的でないことがある。ORAMのいくつかの更なる詳細は、Goldreich, Oded,“Towards a theory of software protection and simulation by oblivious RAMs”,Proceedings of the nineteenth annual ACM symposium on Theory of computing. ACM,1987年において見つけられ得る。この非特許文献は、その全文を参照により本願に援用される。
然るに、セキュアハッシュ環境100は、サーバエンレクーブ104とクライアントエンクレーブ114との間でセキュアハッシュアルゴリズムを実装するよう構成されてよい。セキュアハッシュアルゴリズムは、上記の脆弱性を緩和しながらORAMの欠点のいくつかを解消するデータ記憶構造及び編成技術を提供し得る。例えば、セキュアハッシュ環境100は、セキュアハッシュ環境100において記憶されている秘密をメモリアクセスパターンに基づき推測しようと試みる敵対的なキャッシュ故障攻撃及び他の攻撃から保護するのを助け得る。
セキュアハッシュ環境100は、ネットワーク124を介してサーバ装置102へ通信上結合されるクライアント装置112A及び112B(概して、1つ以上のクライアント装置112)を含んでよい。データ及び情報は、ネットワーク124を介してクライアント装置112とサーバ装置102との間でやり取りされてよい。クライアント装置112、ネットワーク124、及びサーバ装置102については、以下で記載される
ネットワーク124は、セキュアハッシュ環境100のクライアント装置112のいずれか及びサーバ装置102の間の信号の通信のために構成された如何なる通信ネットワークも含んでよい。ネットワーク124は有線又は無線であってよい。ネットワーク124は、スター構成、トークンリング構成、又は他の適切な構成を含む多数の構成を有してよい。更に、ネットワーク124は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)(例えば、インターネット)、及び/又は他の相互接続されたデータパスを含んでよい。それらにわたって、複数の装置が通信し得る。いくつかの実施形態において、ネットワーク124は、ピア・ツー・ピアネットワークを含んでよい。ネットワーク124はまた、多種多様な通信プロトコルにおけるデータの通信を可能にし得る電気通信ネットワークへ結合されるか又はその部分を含んでよい。いくつかの実施形態において、ネットワーク124は、Bluetooth(登録商標)通信ネットワーク、Wi-Fi通信ネットワーク、ZigBee通信ネットワーク、拡張可能メッセージング及びプレゼンスプロトコル(eXtensible Messaging and Presence Protocol)(XMPP)通信ネットワーク、セルラー通信ネットワーク、何らかの類似した通信ネットワーク、又はデータを送信及び受信するためのそれらのあらゆる組み合わせを含むか又はそれらを含むよう構成される。ネットワーク124で通信されるデータは、ショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、ワイヤレスアプリケーションプロトコル(WAP)、電子メール、又はクライアント装置112及びサーバ装置102により実装され得るあらゆる他のプロトコルを介して通信されるデータを含んでよい。
クライアント装置112及びサーバ装置102は、如何なるコンピュータベース又はハードウェアベースのコンピューティングシステムも含んでよい。クライアント装置112及びサーバ装置102は、セキュアハッシュ環境100においてネットワーク124を介してお互いと通信するよう構成されてよい。クライアント装置112は、ユーザ又はユーザの集合に関連するか又は彼らによって操作されてよい。クライアント装置112に関連したユーザは、見知らぬ人であってよく、あるいは、一般に、お互いに無関係であってよい。
クライアント装置112はクライアントエンクレーブ114を含んでよく、サーバ装置102はサーバエンレクーブ104を含んでよい。クライアントエンクレーブ114及びサーバエンレクーブ104は、夫々クライアント装置112及びサーバ装置102のメモリ(例えば、図4のメモリ412)における保護された実行エリアである。特殊命令が、クライアントエンクレーブ114及びサーバエンレクーブ104においてアプリケーションコードを記憶するよう実装されてよい。例えば、インテルのSGXを実装する実施形態では、1つ以上のソフトウェア開発キット(SDK)又はアプリケーションプログラミングインターフェイス(API)が設けられてよく、それらは、クライアントエンクレーブ114及びサーバエンレクーブ104におけるアプリケーションコードの記憶及び実装を可能にする。
一般に、クライアント装置112は、データ及び情報をサーバ装置102へ送るよう構成されてよい。サーバ装置102は、クライアント装置112からデータを受信するよう構成されてよく、受信されたデータに対して何らかの演算を実行するよう構成されてよい。例えば、サーバ装置102は、ゲノムワイド関連解析(GenomeWide association Study)(GWAS)を実装するよう構成されてよい。そのような実施形態では、クライアント装置112は、ユーザの遺伝に関する記録又はそれを表すデータをサーバ装置102へ送ってよい。サーバ装置102は、次いで、疾患に関連し得る遺伝子を識別するようDNAを処理してよい。他の実施形態では、サーバ装置102は、調査(survey)、世論調査(poll)、又は国勢調査(census)を実装するよう構成されてよい。そのような及び他の実施形態では、クライアント装置112は、個人の応答をサーバ装置102へ送るよう構成されてよい。サーバ装置102は、世論調査結果、国勢調査結果、又は調査結果を生成するよう応答を処理してよい。
セキュアハッシュ環境100のいくつかの実施形態では、ネットワーク124を介して通信されるデータは機密であり得る。例えば、遺伝に関する記録及び/又は個人の応答は、秘密と見なされ得る。然るに、サーバ装置102は、受信されたデータの秘密及び安全性が保たれるように、受信されたデータを受信、編成、及び処理するよう構成されてよい。例えば、サーバ装置102は、サーバハッシュモジュール106を含んでよく、クライアント装置112は、クライアントハッシュモジュール116を含んでよい。それらは、受信されたデータの秘密及び安全性を保ち得るセキュアハッシュ演算を実装するよう構成されてよい。
本開示を通して記載されるサーバハッシュモジュール106、クライアントハッシュモジュール116、及びそれらの1つ以上のコンポーネント又はモジュールは、プロセッサ、マイクロプロセッサ(例えば、1つ以上の演算を実行するか又はその実行を制御する。)、フィールドプログラマブルゲートアレイ(FPGA)、又は特定用途向け集積回路(ASIC)を含むハードウェアを用いて実装されてよい。いくつかの他の事例では、サーバハッシュモジュール106及びクライアントハッシュモジュール116は、ハードウェアとソフトウェアとの組み合わせを用いて実装されてよい。ソフトウェアにおける実装は、コンピューティングシステム(例えば、サーバ装置102又はクライアント装置112)のハードウェアに含まれ得るような1つ以上のトランジスタ又はトランジスタ素子の急速な活性化及び非活性化を含んでよい。その上、ソフトウェアにより定義された命令は、トランジスタ素子内の情報に対して作用し得る。ソフトウェア命令の実装は、少なくとも一時的に電子通路を再構成し、コンピューティングハードウェアを変形し得る。
セキュアハッシュ演算は、ハッシュテーブル108を生成するよう構成されてよい。ハッシュテーブル108では、入力データのハッシュが編成及び記憶されてよい。ハッシュテーブル108は、メモリ忘却型(memory oblivious)であってよい。ハッシュは、その後に、セキュアハッシュ環境100において検索されアクセスされてよい。図1の実施形態では、セキュアハッシュ環境100はハッシュテーブル108を含む。他の実施形態では、セキュアハッシュ環境100は、連想配列、ディクショナリ、又は他の適切なデータ構造を含んでよい。
例えば、いくつかの実施形態において、サーバ装置102のサーバハッシュモジュール106は、セキュアハッシュ演算のための1つ以上のセットアッププロセスを実行するよう構成されてよい。セットアッププロセスは、サーバ装置102のサーバエンレクーブ104とクライアント装置112のクライアントハッシュモジュール116との間の秘密鍵の交換を含んでよい。セキュアハッシュ環境100における交換された秘密鍵は、非対称鍵(例えば、秘密及び公開鍵対)及び/又は対称鍵を含んでよい。
サーバハッシュモジュール106及び/又はクライアントハッシュモジュール116は、サーバエンレクーブ104とクライアントエンクレーブ114との間に暗号化されたチャネルを確立するよう構成されてよい。例えば、サーバエンレクーブ104とクライアントエンクレーブ114との間で通信されるデータ及び情報は、交換された秘密鍵を用いて暗号化されてよい。然るに、暗号化されたチャネル上のデータ及び情報の大部分又は全ては、その後に復号化、記憶、処理、などをされてよい。
サーバハッシュモジュール106は、疑似ランダム関数(PRF)の鍵つきハッシュ関数のためのランダム鍵を生成してよい。鍵つきハッシュ関数は、SHA-1、SHA-2、又はSHA-3を含むセキュアハッシュアルゴリズム(SHA)に基づいてよい。いくつかの実施形態において、ランダム鍵の生成は、PRFをサンプリングすることを含んでよい。一般に、PRFは、疑似ランダム関数族の中の1つ以上の関数を含んでよい。疑似ランダム関数のいくつかの詳細は、Mihir Belare and Phillip Rogaway,“Introduction to Modern Cryptography”,Chapter 3,“Pseudorandom Functions”,2005年において見つけられ得る。なお、この非特許文献は、その全文を参照により本願に援用される。
サーバハッシュモジュール106は次いで、暗号化されたチャネルを介してクライアント装置112のクライアントエンクレーブ114へランダム鍵を送ってよい。クライアント装置112はランダム鍵を受信してよい。いくつかの実施形態において、ランダム鍵の生成は、一度しか実行され得ない。ランダム鍵は、然るべくクライアント装置112及びサーバ装置102において記憶され、それらの間のインタラクションを通じて使用されてよい。
クライアント装置112はまた、入力データを受信又は生成してよい。入力データは、サーバ装置102へ通信されるか又はサーバ装置102へ通信されるデータに関連した如何なるデータ又は情報も含んでよい。例えば、上述されたように、入力データは、遺伝に関する記録又は応答データを含んでよい。クライアントハッシュモジュール116は、入力データをハッシングしてよい。例えば、クライアントハッシュモジュール116は、入力データに関連する鍵を生成するようハッシュ関数を実装してよい。いくつかの実施形態において、ハッシュモジュール116は、入力データをハッシングするよう如何なる非暗号学的ハッシュ関数も使用してよい。非暗号学的ハッシュ関数のいくつかの例には、MurmurHash、DJB2、などが含まれ得る。クライアントハッシュモジュール116は次いで、入力データのハッシュをサーバエンレクーブ104へ送ってよい。ハッシュは、暗号化されたチャネルを介して通信されてよい。
サーバエンレクーブ104は、クライアントエンクレーブ114からハッシュを受信してよい。受信されたハッシュに含まれている鍵値対に基づき、サーバエンレクーブ104はハッシュテーブル108を構築してよい。いくつかの実施形態において、ハッシュは入力データを含んでよい。他の実施形態では、入力データはサーバエンレクーブ104へ送られてなくてもよい。
表されている実施形態では、ハッシュテーブル108は、暗号化されたメモリ110において構築及び/又は記憶されてよい。暗号化されたメモリ110は、安全性の更なるレベルを提供し得る。他の実施形態では、ハッシュテーブル108は他のメモリに含まれてよい。このメモリは暗号化されていなくてもよい。
例えば、ハッシュテーブル108は、鍵値対として社会保障番号(SSN)及び名前(例えば、(SSN,名前))を格納するよう構成されてよい。ハッシュテーブル108は、集合単位の更新(setwise update)にのみ対応するよう構成されてよい。然るに、サーバ装置102は、クライアント装置112の1つから((SSN_1,名前_1),・・・,(SSN_10,名前_10))を受信し得る。ハッシュテーブル108は、内部で如何なる規則的な非セキュアハッシュテーブル実装も使用してよい。規則的な非セキュアハッシュテーブル実装は、単要素更新動作に対応し得る。割り当て動作の間にランダム置換を使用することによって、鍵値対はランダムな順序でハッシュテーブル108に挿入され得る。PRFの使用によれば、非セキュアハッシュテーブル鍵は、機密扱いのSSNフィールドから独立している。
ハッシュテーブル108の構築に続いて、クライアント装置112はハッシュテーブルクエリを生成してよい。クライアントハッシュモジュール116は、ハッシュテーブルクエリをサーバエンレクーブ104へ送ってよい。ハッシュテーブルクエリに応答して、サーバハッシュモジュール106は、ハッシュテーブルクエリに含まれている鍵に対応する値を取り出してよい。サーバハッシュモジュール106は、鍵に対応する取り出された値を、又は対応する鍵がハッシュテーブル108に挿入されていない場合にはヌルを返してよい。
いくつかの実施形態において、クエリコリジョンがサーバ装置102によって漏洩され得る。しかし、残りのハッシュは利用可能でなく、漏洩されない。本開示で使用されるように、“漏洩される”(leaked)は、クエリコリジョンが、サーバ装置102とクライアント装置112との間のインタラクションの特定の組又は連続の後に、権限のないエンティティに公開されることに対して弱いことを示す。よって、クエリコリジョンの分配は、権限のないエンティティによってアクセスされる場合でさえ、入力データに関する如何なる情報もほとんど暴露し得ない。例えば、クライアント装置112が同じハッシュテーブルクエリを複数回生成することに応答して、敵対的なサーバ又は他の権限のないエンティティは、クエリパターンの分布を推定することが可能であり得る。しかし、敵対的なサーバは、クエリの実際の内容を推定することは不可能であり得る。
その上、第1クライアント装置112A及び第2クライアント装置112Bによってサーバ装置102へ送られるハッシュは、ハッシュテーブル108における異なる部分を生じさせ得る。そのような及び他の状況で、サーバハッシュモジュール106は、ハッシュをハッシュテーブル108にマージするよう構成されてよい。いくつかの実施形態において、マージは付加的な動作であってよい。例えば、値が同じランダム鍵を含む場合に、ハッシュは、付加的な動作を用いてマージされてよい。
変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに、セキュアハッシュ環境100に対して行われ得る。例えば、セキュアハッシュ環境100は、1つ以上のサーバ装置102、1つ以上のクライアント装置112、1つ以上のネットワーク124、又はそれらのあらゆる組み合わせを含んでよい。更に、本明細書で記載される実施形態における様々なコンポーネント及びサーバの分離は、その分離が全ての実施形態で起こることを示すよう意図されない。更に、記載されているコンポーネント及びサーバが一般に単一のコンポーネント又はサーバに一体化されるか、あるいは、複数のコンポーネント又はサーバに分離され得ることは、本開示から理解され得る。
図2は、図1のセキュアハッシュ環境100又は同様の動作環境で実装され得る、例となるセキュアハッシュプロセス200を表す。図2は、図1を参照して記載されたサーバ装置102、サーバエンレクーブ104、ハッシュテーブル108、サーバハッシュモジュール106、暗号化されたメモリ110、クライアント装置112、クライアントエンクレーブ114、及びクライアントハッシュモジュール116を含む。図2において、ネットワーク(例えば、図1のネットワーク124)は表されていない。それでもなお、サーバ装置102とクライアント装置112との間の通信は、ネットワーク124のような通信ネットワークを経由してよい。
プロセス200において、秘密鍵の交換は、サーバ装置102のサーバエンレクーブ104とクライアント装置112のクライアントエンクレーブ114との間で起こってよい。例えば、サーバ装置102は、サーバ秘密鍵204をクライアント装置112へ送ってよく、クライアント装置112は、クライアント秘密鍵206をサーバ装置102へ送ってよい。サーバ秘密鍵204及びクライアント秘密鍵206は、如何なる適切な公開鍵インフラストラクチャ(例えば、SPKI、X.509ベースの証明書、など)に従ってもフォーマットされてよい。
交換された秘密鍵204及び206を用いて、暗号化されたチャネル202は、サーバエンレクーブ104とクライアントエンクレーブ114との間に確立されてよい。暗号化されたチャネル202は、通信ネットワークにおいてサーバ装置102及び/又はクライアント装置112によって確立されてよい。
サーバハッシュモジュール106はランダム鍵208を生成してよい。ランダム鍵208は、初期化又はセットアップ動作中にサーバハッシュモジュール106によって生成されてよい。ランダム鍵208は、PRFをサンプリングすることによって生成されてよい。ランダム鍵208は、クライアント装置112のクライアントエンクレーブ114に加えて、サーバ装置102と通信する如何なる他のクライアントエンクレーブへも送られてよい。ランダム鍵208は、クライアントエンクレーブ114に記憶されてよい。これは、ランダム鍵208にアクセスしにくくにし得る。ランダム鍵208の通信は、暗号化されたチャネル202を経由してよい。いくつかの実施形態において、ランダム鍵208の生成は、一度しか起きなくてよい。例えば、ランダム鍵208は、クライアント装置112とサーバ装置102との間のインタラクションを通して使用されてよい。
クライアントハッシュモジュール116は、ハッシュ210を生成してよい。ハッシュ210は次いで、暗号化されたチャネル202を介してサーバハッシュモジュール106へ送られてよい。ハッシュ210は、鍵値対の組を含んでよい。鍵値対は、例えば、(鍵,値)対:

{(k,v),・・・,(k,v)}

によって表されてよい。(鍵,値)対において、k・・・kは鍵を表す。パラメータv・・・vは値を表す。パラメータnは、(鍵,値)対に含まれる鍵及び値のための最大インデックス変数を表す。ハッシュ210は、入力データ222の鍵及び値であってよい。
サーバハッシュモジュール106は、受け取られたハッシュ210をハッシュテーブル108に割り当てるよう構成されてよい。いくつかの実施形態において、サーバハッシュモジュール106は、例となる代入式:

PRP鍵rkをサンプリングする;且つ
i∈[1,n]について:
HT.Update(PRFsk(kπrk(i)),vπrk(i)

に従って、受信されたハッシュ210を割り当ててよい。代入式において、nは最大インデックス変数を表す。HT.Updateは、ハッシュテーブル108への割り当てを出力する割り当て関数を表す。HT.Updateは、集合単位の更新動作である。パラメータskはランダム鍵を表す。関数PRFは、ランダム鍵をシードされる疑似ランダム関数を表す。パラメータPRPは疑似ランダム置換を表す。疑似ランダム置換のいくつかの詳細は、上記のBelare & Rogawayにおいて与えられている。パラメータπは、[1,n]から[1,n]までの疑似ランダム置換を表す。よって、πは、最初のn個の自然数の順序を変える。パラメータrkは、PRPからサンプリングされた疑似ランダム置換を表す。
代入式に従って、iが1に等しいとして、代入式はHT.Update(PRFsk(kπrk(1)),vπrk(1))に縮減する。πrk(1)の値は、Y(PRP、π及びrkに依存する。)によって表される特定の値に等しくなる。よって、代入式はHT.Update(PRFsk(k),v)に縮減し得る。値k及びvは、受け取られたハッシュ210の鍵値対のうちの1つに対応し得る。PRFskは入力としてkを受ける。PRFsk(k)の実行は、X(先と同じく、PRF及びskに依存する。)によって表される他の数に等しくなる。代入式は更に、HT.Update(X,v)に縮減する。割り当て関数は次いで、入力として(X,v)を受け、ハッシュテーブル108内のあるインデックスに対応する割り当てを返す。同様の演算の組が、iの各値について行われる。
ハッシュテーブル108の構築に続いて、サーバハッシュモジュール106は、ハッシュテーブルクエリ212を受け取ってよい。ハッシュテーブルクエリ212は、クライアントハッシュモジュール116で生成されてよく、暗号化されたチャネル202を介して通信されてよい。ハッシュテーブルクエリ212は、例となる鍵セット:

(k,・・・,k

によって表され得る鍵の組を含んでよい。鍵セットにおいて、k・・・kは鍵を表す。パラメータmは、鍵セットに含まれる鍵のための最大インデックス変数を表す。
サーバハッシュモジュール106は、ハッシュテーブルクエリ212を受け取ってよい。ハッシュテーブルクエリ212に応答して、サーバハッシュモジュール106は、ハッシュテーブルクエリ212に含まれる鍵に対応する値214を取り出してよい。いくつかの実施形態において、サーバハッシュモジュール106は、例となる検索式:

PRP鍵rkをサンプリングする;且つ
i∈[1,m]について:
πrk(i)=HT.Find(PRFsk(kπrk(i)))

に従って値214を取り出してよい。検索式において、HT.Findは、ハッシュテーブル108のための読み出し関数を表す。HT.Findは、集合単位の発見動作を含んでよい。パラメータπは、[1,m]から[1,m]までの疑似ランダム置換を表す。よって、πは、最初のm個の自然数の順序を変える。検索式の実行によれば、代入式を参照して上述された演算の組に対して反対の演算の組が起こる。例えば、iが1に等しい場合に、kπrk(i)はkに等しくなる。その上、vπrk(i)はvに等しくなる。パラメータk、vは、上記のハッシュ210のうちの1つに対応し得る。値kはPRKskに入力されてよく、これはXに等しくなる。然るに、検索式は、v=HT.Find(PRFsk(k))、次いでv=HT.Find(X)に縮減し得る。同様の演算は、iの各値について行われてよい。検索式は、値214において鍵のための値がない場合にはヌル216を返す。
サーバハッシュモジュール106は次いで、鍵に対応する取り出された値214、又はヌル216を返してよい。取り出された値214及び/又はヌル216は、暗号化されたチャネル202を介してクライアントハッシュモジュール116へ送られてよい。
図3は、図1のセキュアハッシュ環境100の例となる実施形態である、例となるGWAS環境300のブロック図である。GWASは、Contol(対照)装置302と又はCase(疾患)装置308と関連し得る幾人かの個人からの遺伝に関する記録の頻度統計を計算するよう構成されてよい。装置302及び308は、クライアント装置112と実質的に同様であり及び/又は対応してよい。遺伝に関する記録は、一塩基多型(SNP:Single Nucleotide Polymorphism)識別子によって鍵をかけられてよい。SNP識別子は数ビット長であってよい。
従来のGWAS環境では、インデックスがSNP識別子自体である配列実装を作ることは、実際的でないことがある。然るに、GWAS環境300は、GWAS SGXエンクレーブ328で個人の記録のプライバシー保護マージングを有効に実装するよう、本開示で記載されるセキュアハッシュプロセスを提供してよい。GWAS SGXエンクレーブ328は次いで、SNP頻度325及びSNP322の組を出力してよい。一般に、出力されるSNP頻度325のみがクラウドに可視的であってよく、一方、個人の遺伝に関する記録は秘密のままであってよい。
GWAS環境300では、Contol装置302はディクショナリContol304を通信してよい。ディクショナリContol304は、上記のハッシュ210に類似したハッシュ又は鍵値対を含んでよい。ディクショナリContol304は、上述されたように確立され得る暗号化されたチャネル310を介してGWAS SGXエンクレーブ328へ送られてよい。ディクショナリContol304は、Contol装置302に関連した患者等の遺伝に関する記録を含んでよい。ディクショナリContol304は、Contol式:

dictcont[snp]=a′
・・・
dictcont[snp]=a′

として表されてよい。Contol式は、鍵値対の組又はディクショナリを含む。パラメータsnpは、第1の対照患者についてのSNPを表す。パラメータsnpは、l(エル)番目の対照患者についてのSNPを表す。
同様に、GWAS環境300では、Case装置308がディクショナリCase306を通信してよい。ディクショナリCase306は、上記のハッシュ210に類似したハッシュ又は鍵値対を含んでよい。ディクショナリCase306は、暗号化されたチャネル310を介してGWAS SGXエンクレーブ328へ送られてよい。ディクショナリCase306は、Case装置308に関連した患者等の遺伝に関する記録を含んでよい。ディクショナリCase306は、Case式:

dictcase[snp]=a
・・・
dictcase[snp]=a

として表されてよい。Case式は、鍵値対の組又はディクショナリを含む。パラメータsnpは、第1の疾患患者についてのSNPを表す。パラメータsnpは、l(エル)番目の疾患患者についてのSNPを表す。
ディクショナリContol304及びディクショナリCase306は、GWAS SGXエンクレーブ328で受け取られてよい。GWAS SGXエンクレーブ328は、GWASハッシュモジュール320を含んでよい。GWASハッシュモジュール320は、マージモジュール316及び分析モジュール318を含んでよい。分析モジュール318は、ディクショナリContol304及びディクショナリCase306を処理するよう構成されてよい。例えば、分析モジュール318は、例となるカイ二乗式:

全てのi∈[1,l]について
[a,a′,2n-a,2n-a′];及び
[(a+a′)/2,(a+a′)/2,n+n-(a+a′)/2,n+n-(a+a′)/2]
の間でχテストを実行する

に従ってカイ二乗演算を実行してよい。カイ二乗式において、パラメータa及びa′は上述されたとおりである。パラメータnは、ゲノムワイド関連解析(GenomeWide association Study)(GWAS)におけるCaseグループ内のユーザの総数を表す。パラメータnは、GWASにおけるContolグループ内のユーザの総数を表す。
分析モジュール318は、特定のSNP322と、その特定のSNPに関連した1つ以上の値とを出力するよう構成されてよい。例えば、カイ二乗演算に基づき、p値とともに最小p値を含むSNPが、分析モジュール318によって出力されるSNP322に含まれてよい。
マージモジュール316は、ディクショナリContol304及びディクショナリCase306をマージするよう構成されてよい。マージ動作は、加算式:

(dictA ∪ dictB)[x]=dictA[x]+dictB[x]

によって表され得る加算動作を含んでよい。加算式は、一般化された式である。加算式において、dictAは、Case式又はディクショナリCase306を表し得る。パラメータdictBはディクショナリContol304を表し得る。パラメータxは、GWASにおけるSNPストリングを含み得るディクショナリ鍵を表す。
マージモジュール316は更に、SNP頻度326を出力するよう構成されてよい。いくつかの実施形態において、SNP頻度326は、頻度式:

(snp,(a+a′)/2(n+n))
・・・・
(snp,(a+a′)/2(n+n))

によって表されてよい。頻度式において、a、a′、n及びnは上述されたとおりである。
セキュアハッシュ環境100の実施形態は、図3のGWA環境300に限られない。セキュアハッシュ環境100は、トラステッド・エグゼキューション環境を備えた如何なる適切な環境でも具現化されてよい。
図4は、本開示の少なくとも1つの実施形態に従って、トラステッド・エグゼキューション環境におけるセキュアハッシュ演算のために構成された例となるコンピューティングシステム400を表す。コンピューティングシステム400は、例えば、図1のセキュアハッシュ環境100において実装されてよい。コンピューティングシステム400の例には、サーバ装置102及びクライアント装置112のうちの一方又は両方が含まれ得る。コンピューティングシステム400は、1つ以上のプロセッサ410と、メモリ412と、通信ユニット414と、ユーザインターフェイス装置416と、サーバハッシュモジュール106、クライアントハッシュモジュール116、及びGWAハッシュモジュール320(まとめてモジュール116/106/320)を含むデータストレージ404とを含んでよい。
プロセッサ410は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む如何なる適切な特別目的又は汎用のコンピュータ、コンピューティングエンティティ、又はプロセッシング装置も含んでよく、如何なる適用可能なコンピュータ可読記憶媒体にも記憶された命令を実行するよう構成されてよい。例えば、プロセッサ410は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、ASIC、FPGA、あるいは、プログラム命令を解釈及び/若しくは実行するよう並びに/又はデータを処理するよう構成された如何なる他のデジタル又はアナログ回路も含んでよい。
図4では単一のプロセッサとして表されているが、プロセッサ410は、より一般的には、本開示で記載されている動作をいくつでも個々に又は集合的に実行するよう構成されたプロセッサをいくつでも含んでよい。その上、プロセッサ410の1つ以上は、1つ以上の異なる電子機器又はコンピューティングシステムにおいて存在してよい。いくつかの実施形態において、プロセッサ410は、メモリ412、データストレージ404、又はメモリ412及びデータストレージ404に記憶されているプログラム命令を解釈及び/若しくは実行し、並びに/又は記憶されているデータを処理してよい。いくつかの実施形態において、プロセッサ410は、データストレージ404からプログラム命令をフェッチし、プログラム命令をメモリ412にロードしてよい。プログラム命令がメモリ412にロードされた後、プロセッサ410はプログラム命令を実行してよい。
メモリ412及びデータストレージ404は、コンピュータ実行可能命令又はデータ構造を運ぶか又は記憶しているコンピュータ可読記憶媒体を含んでよい。そのようなコンピュータ可読記憶媒体は、プロセッサ410のような汎用又は特別目的のコンピュータによってアクセスされ得る如何なる利用可能な媒体も含んでよい。例として、制限なしに、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光学ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶装置、フラッシュメモリ装置(例えば、ソリッドステートメモリ装置)、あるいは、コンピュータ実行可能命令又はデータ構造の形で所望のプログラムコードを携行又は記憶するために使用され得且つ汎用又は特別目的のコンピュータによってアクセスされ得る如何なる他の記憶媒体も含む有形な又は非一時的なコンピュータ可読記憶媒体を含んでよい。上記の組み合わせも、コンピュータ可読記憶媒体の適用範囲内に含まれ得る。コンピュータ実行可能命令は、例えば、プロセッサ410に特定の動作又は動作群を実行させるよう構成された命令及びデータを含んでよい。
通信ユニット414は、通信を受信及び送信するよう構成されたハードウェアの1つ以上の片を含んでよい。いくつかの実施形態において、通信ユニット414は、通信ハードウェア装置の中でも特に、アンテナ、有線ポート、及び変調/復調ハードウェアのうちの1つ以上を含んでよい。特に、通信ユニット414は、コンピューティングシステム400の外から通信を受け、通信をプロセッサ410へ渡すよう、あるいは、プロセッサ410から他の装置又はネットワーク(例えば、図1の124)へ通信を送るよう構成されてよい。
ユーザインターフェイス装置416は、ユーザから入力を受け及び/又は出力をユーザへ供給するよう構成されたハードウェアの1つ以上の片を含んでよい。いくつかの実施形態において、ユーザインターフェイス装置416は、ハードウェア装置の中でも特に、スピーカー、マイクロホン、ディスプレイ、キーボード、タッチスクリーン、又はホログラフィック投影のうちの1つ以上を含んでよい。
モジュール116/106/320は、データストレージ404に記憶されているプログラム命令を含んでよい。プロセッサ410は、モジュール116/106/320をメモリ412にロードし、モジュール116/106/320を実行するよう構成されてよい。代替的に、プロセッサ410は、モジュール116/106/320をメモリ412にロードせずに、データストレージ404からライン・バイ・ラインでモジュール116/106/320を実行してよい。モジュール116/106/320を実行する場合に、プロセッサ410は、本開示において他の場所で記載されているセキュアハッシュ又はハッシュテーブル処理を実行するよう構成されてよい。
変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに、コンピューティングシステム400に対して行われてよい。例えば、いくつかの実施形態において、コンピューティングシステム400は、ユーザインターフェイス装置416を含まなくてよい。いくつかの実施形態において、コンピューティングシステム400の異なるコンポーネントは物理的に分離していてよく、如何なる適切なメカニズムによっても通信上結合されてよい。例えば、データストレージ404は、プロセッサ410、メモリ412、及び記憶装置へ通信上結合されている通信ユニット414を含む、サーバから分離した記憶装置の部分であってよい。本明細書で記載される実施形態は、以下で更に詳細に記載されるように、様々なコンピュータハードウェア又はソフトウェアモジュールを含む特別目的又は汎用のコンピュータの使用を含んでよい。
図5A及び5Bは、本開示で記載される少なくとも1つの実施形態に従うセキュアハッシュ実装の例となる方法500のフローチャートである。別個のブロックとして表されているが、図5A及び5Bにおける様々なブロックは、所望の実施に応じて、更なるブロックに分けられても、より少ないブロックへとまとめられても、あるいは削除されてもよい。
方法500は、図1のセキュアハッシュ環境100又はGWAS環境300のような動作環境で実行されてよい。方法500は、図1及び2を参照して記載されるサーバ装置102又はクライアント装置112によっていくつかの実施形態においてプログラム可能に実行されてよい。いくつかの実施形態において、サーバ装置102、クライアント装置112、又は他のコンピューティングシステムは、コンピューティングシステム、サーバ装置102、又はクライアント装置112に方法500を実行させるか又はその実行を制御させるよう1つ以上のプロセッサ(例えば、図4のプロセッサ410)によって実行可能であるプログラミングコード又は命令を記憶している非一時的なコンピュータ可読媒体(例えば、図4のメモリ412)を含んでよく、あるいは、それへ通信上結合されてよい。追加的に、又は代替的に、サーバ装置102又はクライアント装置112は、本開示において他の場所で記載されたプロセッサ410であって、コンピュータ命令を実行して、サーバ装置102、クライアント装置112、又は他のコンピューティングシステムに方法500を実行させるか又はその実行を制御させるよう構成されるプロセッサ410を含んでよい。
図5Aを参照して、方法500はブロック502から開始してよい。ブロック502で、秘密鍵の交換が実行されてよい。秘密鍵の交換は、サーバ装置のサーバエンクレーブとクライアント装置のクライアントエンクレーブとの間で実行されてよい。サーバエンレクーブ及びクライアントエンクレーブは、トラステッド・エグゼキューション環境の部分として実装されてよい。いくつかの実施形態において、トラステッド・エグゼキューション環境はSGXを含んでよい。ブロック504で、暗号化されたチャネルが確立されてよい。暗号化されたチャネルは、サーバエンクレーブとクライアントエンクレーブとの間に確立されてよい。暗号化されたチャネルは、交換された秘密鍵を用いて確立されてよい。
ブロック506で、ランダム鍵が生成されてよい。ランダム鍵は、鍵つきハッシュ関数又はPRFのために生成されてよい。ランダム鍵の生成は、PRFをサンプリングすることを含んでよい。いくつかの実施形態において、ランダム鍵の生成は、一度しか起こらなくてよい。鍵つきハッシュ関数は、セキュアハッシュアルゴリズム(SHA)に基づいてよく、SHAは、SHA-1、SHA-2、又はSHA-3を含んでよい。ブロック508で、ランダム鍵は、1つ以上のクライアント装置へ送られてよい。ランダム鍵は、暗号化されたチャネルを介してクライアント装置のクライアントエンクレーブへ送られてよい。
ブロック510で、入力データのハッシュが受け取られてよい。ハッシュは、クライアントエンクレーブから受け取られてよい。ハッシュは、暗号化されたチャネルを介してサーバエンクレーブで受け取られてよい。ハッシュは、複数の鍵値対を含んでよい。鍵値対は、(鍵,値)対{(k,v),・・・,(k,v)}によって表されてよい。ここで、k・・・kは鍵を表し、v・・・vは値を表し、nは鍵及び値のための最大インデックス変数である。
図5Bを参照すると、ブロック512で、ハッシュテーブルが構築されてよい。ハッシュテーブルは構築されてよい。ハッシュテーブルは、受け取られたハッシュに含まれている鍵値対に基づいてよい。ハッシュテーブルを構築するよう、割り当てがハッシュに適用されてよい。ハッシュは、例となる代入式に従って割り当てられてよい。いくつかの実施形態において、代入式は上述されている。ブロック514で、ハッシュテーブルは、暗号化されたメモリに格納されてよい。
ブロック516で、ハッシュテーブルクエリが受け取られてよい。ハッシュテーブルクエリは、クライアント装置から受け取られてよい。ハッシュテーブルクエリは複数の鍵を含んでよい。鍵は、鍵セット(k,・・・,k)によって表されてよい。ここで、k・・・kは鍵を表し、mは鍵のための最大インデックス変数である。ブロック518で、値が取り出されてよい。値は、ハッシュテーブルクエリに応答して取り出されてよい。いくつかの実施形態において、値を取り出すことは、検索式に従って実行されてよく、これの例は上述されている。ブロック520で、取り出された値が返される。取り出された値は、鍵又はヌルに対応してよい。ヌルは、鍵のうちの1つについてハッシュテーブルに値が挿入されていない場合に返されてよい。
当業者に明らかなように、本明細書で開示されているこの及び他のプロシージャ及び方法に関して、プロセス及び方法において実行される機能は、別の順序で実施されてよい。更に、説明されているステップ及び動作は、単に例として与えられており、ステップ及び動作の一部は、開示されている実施形態から逸脱することなしに、任意であっても、より少ないステップ及び動作へとまとめられても、又は更なるステップへと広げられてもよい。例えば、いくつかの実施形態において、方法500は、クエリコリジョンの分配のみが、権限のないエンティティに公開されることに対して脆弱であるように、実行されてよい。
本明細書で記載される実施形態は、以下で更に詳細に説明されるように、様々なコンピュータハードウェア又はソフトウェアモジュールを含む特別目的又は汎用のコンピュータの使用を含んでよい。
本明細書で記載される実施形態は、コンピュータ実行可能命令又はデータ構造を運ぶか又は記憶しているコンピュータ可読媒体を用いて実装されてよい。そのようなコンピュータ可読媒体は、汎用又は特別目的のコンピュータによってアクセスされ得る如何なる利用可能な媒体であってもよい。例として、制限なしに、そのようなコンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能なプログラム可能リードオンリーメモリ(EEPROM)、コンパクトディスク・リードオンリーメモリ(CD-ROM)若しくは他の光学ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶装置、フラッシュメモリ装置(例えば、ソリッドステートメモリ装置)、あるいは、コンピュータ実行可能命令又はデータ構造の形で所望のプログラムコードを携行又は記憶するために使用され得且つ汎用又は特別目的のコンピュータによってアクセスされ得る如何なる他の記憶媒体も含む非一時的なコンピュータ可読記憶媒体を含んでよい。上述されたものの組み合わせも、コンピュータ可読媒体の適用範囲内に含まれてよい。
コンピュータ実行可能命令は、例えば、汎用のコンピュータ、特別目的のコンピュータ、又は特別目的のプロセッシング装置(例えば、1つ以上のプロセッサ)に特定の機能又は機能群を実行させる命令及びデータを含んでよい。構造的な特徴及び/又は方法論的な動作に特有の言語で対象が記載されてきたが、添付の特許請求の範囲で定義されている対象は、必ずしも、上記の具体的な特徴又は動作に制限されないことが理解されるべきである。むしろ、上記の具体的な特徴又は動作は、特許請求の範囲を実施する形態の例として開示されている。
本明細書で使用されるように、語“モジュール”又は“コンポーネント”は、モジュール若しくはコンポーネントの動作を実行するよう構成された特定のハードウェア実施、並びに/又はコンピューティングシステムの汎用ハードウェア(例えば、コンピュータ可読媒体、プロセッシング装置、など)によって記憶及び/若しくは実行され得るソフトウェアオブジェクト若しくはソフトウェアルーチンを指し得る。いくつかの実施形態において、本明細書で記載される種々のコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステムで(例えば、別個のスレッドとして)実行するオブジェクト又はプロセスとして実装されてよい。本明細書で記載されるシステム及び方法の一部は、概して、(汎用ハードウェアによって記憶及び/又は実行される)ソフトウェアにおいて実装されるものとして記載されているが、特定のハードウェア実施、又はソフトウェア及び特定のハードウェア実施の組み合わせも可能であり、考えられている。本明細書において、“コンピューティングエンティティ”は、本明細書で以前に定義されたあらゆるコンピューティングシステム、又はコンピューティングシステムで実行されるあらゆるモジュール若しくはモジュールの組み合わせであってよい。
ここで挙げられている全ての例及び条件付き言語は、当該技術の促進に本発明者によって寄与される概念及び本発明を読者が理解するのを助ける教育上の目的を意図され、そのような具体的に挙げられている例及び条件に制限されないと解釈されるべきである。本発明の実施形態が詳細に記載されてきたが、様々な変更、置換、及び代替が、本開示の主旨及び適用範囲から逸脱することなしに行われてよい。
上記の実施形態に加えて、以下の付記を開示する。
(付記1)
セキュアハッシュテーブル実装の方法であって、
サーバ装置のサーバエンクレーブとクライアント装置のクライアントエンクレーブとの間で秘密鍵の交換を実行することと、
前記交換された秘密鍵を用いて、前記サーバエンクレーブと前記クライアントエンクレーブとの間に暗号化されたチャネルを確立することと、
鍵つきハッシュ関数又は疑似ランダム関数のためのランダム鍵を生成することと、
前記暗号化されたチャネルを介して前記クライアント装置の前記クライアントエンクレーブへ前記ランダム鍵を送ることと、
前記クライアントエンクレーブから前記暗号化されたチャネルを介して前記サーバエンクレーブで入力データのハッシュを受信することと、
前記受信されたハッシュに含まれる複数の鍵値対に基づきハッシュテーブルを構築することと、
前記クライアント装置から、複数の鍵を含むハッシュテーブルクエリを受信することと、
前記ハッシュテーブルクエリに応答して、前記複数の鍵に対応する値を取り出すことと、
前記複数の鍵に対応する前記取り出された値を、又は前記ハッシュテーブルクエリに含まれる前記複数の鍵の中の1つについて前記ハッシュテーブルに値が挿入されていない場合にはヌルを返すことと
を有する方法。
(付記2)
前記ランダム鍵を生成することは、疑似ランダム関数をサンプリングすることを含む、
付記1に記載の方法。
(付記3)
前記複数の鍵値対は、(鍵,値)対によって表され、k・・・kが鍵を表し、v・・・vが値を表し、nが前記鍵及び前記値のための最大インデックス変数であるとして、{(k,v),・・・,(k,v)}であり、
前記入力データのハッシュは、i∈[1,n]についての式HT.Update(PRFsk(kπrk(i),vπrk(i)))に従って割り当てられ、HT.Updateは割り当て関数を表し、skはランダム鍵を表し、PRFは疑似ランダム関数を表し、πは[1,n]から[1,n]までの疑似ランダム置換を表し、rkは疑似ランダム置換鍵を表す、
付記2に記載の方法。
(付記4)
前記複数の鍵は、鍵セット(k,・・・,k)によって表され、k・・・kは鍵を表し、mは前記鍵のための最大インデックス変数であり、
前記値を取り出すことは、i∈[1,m]についての式vπrk(i)=HT.Find(PRFsk(kπrk(i)))に従って実行され、HT.Findは、前記ハッシュテーブルのための読み出し関数を表し、πは、[1,m]から[1,m]までの疑似ランダム置換を表す、
付記3に記載の方法。
(付記5)
前記ランダム鍵を生成することは、一度しか起きない、
付記2に記載の方法。
(付記6)
前記ランダム鍵は、前記鍵つきハッシュ関数について生成され、
前記鍵つきハッシュ関数は、SHA-1、SHA-2、又はSHA-3を含むセキュアハッシュアルゴリズムに基づく、
付記1に記載の方法。
(付記7)
暗号化されたメモリに前記ハッシュテーブルを記憶することを更に有する
付記1に記載の方法。
(付記8)
前記サーバエンクレーブ及び前記クライアントエンクレーブは、トラステッド・エグゼキューション環境の部分である、
付記1に記載の方法。
(付記9)
前記トラステッド・エグゼキューション環境は、ソフトウェア・ガード・エクステンションを含む、
付記8に記載の方法。
(付記10)
クエリコリジョンの分配のみが、権限のないエンティティに公開されることに対して弱い、
付記1に記載の方法。
(付記11)
サーバ装置のサーバエンクレーブとクライアント装置のクライアントエンクレーブとの間で秘密鍵の交換を実行することと、
前記交換された秘密鍵を用いて、前記サーバエンクレーブと前記クライアントエンクレーブとの間に暗号化されたチャネルを確立することと、
鍵つきハッシュ関数又は疑似ランダム関数のためのランダム鍵を生成することと、
前記暗号化されたチャネルを介して前記クライアント装置の前記クライアントエンクレーブへ前記ランダム鍵を送ることと、
前記クライアントエンクレーブから前記暗号化されたチャネルを介して前記サーバエンクレーブで入力データのハッシュを受信することと、
前記受信されたハッシュに含まれる複数の鍵値対に基づきハッシュテーブルを構築することと、
前記クライアント装置から、複数の鍵を含むハッシュテーブルクエリを受信することと、
前記ハッシュテーブルクエリに応答して、前記複数の鍵に対応する値を取り出すことと、
前記複数の鍵に対応する前記取り出された値を、又は前記ハッシュテーブルクエリに含まれる前記複数の鍵の中の1つについて前記ハッシュテーブルに値が挿入されていない場合にはヌルを返すことと
を含む動作を実行するよう又は該実行を制御するよう1つ以上のプロセッサによって実行されるプログラミングコードが符号化されている非一時的なコンピュータ可読媒体。
(付記12)
前記ランダム鍵を生成することは、疑似ランダム関数をサンプリングすることを含む、
付記11に記載の非一時的なコンピュータ可読媒体。
(付記13)
前記複数の鍵値対は、(鍵,値)対によって表され、k・・・kが鍵を表し、v・・・vが値を表し、nが前記鍵及び前記値のための最大インデックス変数であるとして、{(k,v),・・・,(k,v)}であり、
前記入力データのハッシュは、i∈[1,n]についての式HT.Update(PRFsk(kπrk(i),vπrk(i)))に従って割り当てられ、HT.Updateは割り当て関数を表し、skはランダム鍵を表し、PRFは疑似ランダム関数を表し、πは[1,n]から[1,n]までの疑似ランダム置換を表し、rkは疑似ランダム置換鍵を表す、
付記12に記載の非一時的なコンピュータ可読媒体。
(付記14)
前記複数の鍵は、鍵セット(k,・・・,k)によって表され、k・・・kは鍵を表し、mは前記鍵のための最大インデックス変数であり、
前記値を取り出すことは、i∈[1,m]についての式vπrk(i)=HT.Find(PRFsk(kπrk(i)))に従って実行され、HT.Findは、前記ハッシュテーブルのための読み出し関数を表し、πは、[1,m]から[1,m]までの疑似ランダム置換を表す、
付記13に記載の非一時的なコンピュータ可読媒体。
(付記15)
前記ランダム鍵を生成することは、一度しか起きない、
付記12に記載の非一時的なコンピュータ可読媒体。
(付記16)
前記ランダム鍵は、前記鍵つきハッシュ関数について生成され、
前記鍵つきハッシュ関数は、SHA-1、SHA-2、又はSHA-3を含むセキュアハッシュアルゴリズムに基づく、
付記11に記載の非一時的なコンピュータ可読媒体。
(付記17)
前記動作は、暗号化されたメモリに前記ハッシュテーブルを記憶することを更に含む、
付記11に記載の非一時的なコンピュータ可読媒体。
(付記18)
前記サーバエンクレーブ及び前記クライアントエンクレーブは、トラステッド・エグゼキューション環境の部分である、
付記11に記載の非一時的なコンピュータ可読媒体。
(付記19)
前記トラステッド・エグゼキューション環境は、ソフトウェア・ガード・エクステンションを含む、
付記18に記載の非一時的なコンピュータ可読媒体。
(付記20)
クエリコリジョンの分配のみが、権限のないエンティティに公開されることに対して弱い、
付記11に記載の非一時的なコンピュータ可読媒体。
100 セキュアハッシュ環境
102 サーバ装置
104 サーバエンクレーブ
106 サーバハッシュモジュール
108 ハッシュテーブル
110 暗号化されたメモリ
112A,112B クライアント装置
114 クライアントエンクレーブ
116 クライアントハッシュモジュール
124 ネットワーク
126 トラステッド・エグゼキューション環境
204 サーバ秘密鍵
206 クライアント秘密鍵
208 サーバ鍵
210 ハッシュ
212 ハッシュテーブルクエリ
214 値
216 ヌル
222 入力データ
400 コンピューティングシステム

Claims (18)

  1. セキュアハッシュテーブル実装の方法であって、
    サーバ装置のサーバエンクレーブとクライアント装置のクライアントエンクレーブとの間で秘密鍵の交換を実行することと、
    前記交換された秘密鍵を用いて、前記サーバエンクレーブと前記クライアントエンクレーブとの間に暗号化されたチャネルを確立することと、
    鍵つきハッシュ関数又は第1疑似ランダム関数のためのランダム鍵を生成することと、
    前記暗号化されたチャネルを介して前記クライアント装置の前記クライアントエンクレーブへ前記ランダム鍵を送ることと、
    前記クライアントエンクレーブから前記暗号化されたチャネルを介して前記サーバエンクレーブで入力データのハッシュを受信することと、
    前記受信されたハッシュに含まれる複数の鍵値対に基づきハッシュテーブルを構築することであり、前記ハッシュテーブル内の鍵値対の順序は、前記ランダム鍵をシードされた第2疑似ランダム関数に基づき、それにより、前記ハッシュテーブル内の前記順序は前記鍵値対の値から独立している、ことと、
    前記クライアント装置から、複数の鍵を含むハッシュテーブルクエリを受信することと、
    前記ハッシュテーブルクエリに応答して、前記複数の鍵に対応する値を取り出すことと、
    前記複数の鍵に対応する前記取り出された値を、又は前記ハッシュテーブルクエリに含まれる前記複数の鍵の中の1つについて前記ハッシュテーブルに値が挿入されていない場合にはヌルを返すことと
    を有する方法。
  2. 前記ランダム鍵を生成することは、前記第1疑似ランダム関数をサンプリングすることを含む、
    請求項1に記載の方法。
  3. 前記複数の鍵値対は、(鍵,値)対によって表され、k・・・kが鍵を表し、v・・・vが値を表し、nが前記鍵及び前記値のための最大インデックス変数であるとして、{(k,v),・・・,(k,v)}であり、
    前記入力データのハッシュは、i∈[1,n]についての式HT.Update(PRFsk(kπrk(i) ,vπrk(i) に従って割り当てられ、HT.Updateは割り当て関数を表し、skはランダム鍵を表し、PRFは前記第2疑似ランダム関数を表し、πは[1,n]から[1,n]までの疑似ランダム置換を表し、rkは疑似ランダム置換鍵を表す、
    請求項2に記載の方法。
  4. 前記複数の鍵は、鍵セット(k,・・・,k)によって表され、k・・・kは鍵を表し、mは前記鍵のための最大インデックス変数であり、
    前記値を取り出すことは、i∈[1,m]についての式vπrk(i)=HT.Find(PRFsk(kπrk(i) ))に従って実行され、HT.Findは、前記ハッシュテーブルのための読み出し関数を表し、πは、[1,m]から[1,m]までの疑似ランダム置換を表す、
    請求項3に記載の方法。
  5. 前記ランダム鍵を生成することは、一度しか起きない、
    請求項2に記載の方法。
  6. 前記ランダム鍵は、前記鍵つきハッシュ関数について生成され、
    前記鍵つきハッシュ関数は、SHA-1、SHA-2、又はSHA-3を含むセキュアハッシュアルゴリズムに基づく、
    請求項1に記載の方法。
  7. 暗号化されたメモリに前記ハッシュテーブルを記憶することを更に有する
    請求項1に記載の方法。
  8. 前記サーバエンクレーブ及び前記クライアントエンクレーブは、トラステッド・エグゼキューション環境の部分である、
    請求項1に記載の方法。
  9. 前記トラステッド・エグゼキューション環境は、ソフトウェア・ガード・エクステンションを含む、
    請求項8に記載の方法。
  10. サーバ装置のサーバエンクレーブとクライアント装置のクライアントエンクレーブとの間で秘密鍵の交換を実行することと、
    前記交換された秘密鍵を用いて、前記サーバエンクレーブと前記クライアントエンクレーブとの間に暗号化されたチャネルを確立することと、
    鍵つきハッシュ関数又は第1疑似ランダム関数のためのランダム鍵を生成することと、
    前記暗号化されたチャネルを介して前記クライアント装置の前記クライアントエンクレーブへ前記ランダム鍵を送ることと、
    前記クライアントエンクレーブから前記暗号化されたチャネルを介して前記サーバエンクレーブで入力データのハッシュを受信することと、
    前記受信されたハッシュに含まれる複数の鍵値対に基づきハッシュテーブルを構築することであり、前記ハッシュテーブル内の鍵値対の順序は、前記ランダム鍵をシードされた第2疑似ランダム関数に基づき、それにより、前記ハッシュテーブル内の前記順序は前記鍵値対の値から独立している、ことと、
    前記クライアント装置から、複数の鍵を含むハッシュテーブルクエリを受信することと、
    前記ハッシュテーブルクエリに応答して、前記複数の鍵に対応する値を取り出すことと、
    前記複数の鍵に対応する前記取り出された値を、又は前記ハッシュテーブルクエリに含まれる前記複数の鍵の中の1つについて前記ハッシュテーブルに値が挿入されていない場合にはヌルを返すことと
    を含む動作を実行するよう又は該実行を制御するよう1つ以上のプロセッサによって実行されるプログラミングコードが符号化されている非一時的なコンピュータ可読媒体。
  11. 前記ランダム鍵を生成することは、前記第1疑似ランダム関数をサンプリングすることを含む、
    請求項10に記載の非一時的なコンピュータ可読媒体。
  12. 前記複数の鍵値対は、(鍵,値)対によって表され、k・・・kが鍵を表し、v・・・vが値を表し、nが前記鍵及び前記値のための最大インデックス変数であるとして、{(k,v),・・・,(k,v)}であり、
    前記入力データのハッシュは、i∈[1,n]についての式HT.Update(PRFsk(kπrk(i) ,vπrk(i) に従って割り当てられ、HT.Updateは割り当て関数を表し、skはランダム鍵を表し、PRFは前記第2疑似ランダム関数を表し、πは[1,n]から[1,n]までの疑似ランダム置換を表し、rkは疑似ランダム置換鍵を表す、
    請求項11に記載の非一時的なコンピュータ可読媒体。
  13. 前記複数の鍵は、鍵セット(k,・・・,k)によって表され、k・・・kは鍵を表し、mは前記鍵のための最大インデックス変数であり、
    前記値を取り出すことは、i∈[1,m]についての式vπrk(i)=HT.Find(PRFsk(kπrk(i) ))に従って実行され、HT.Findは、前記ハッシュテーブルのための読み出し関数を表し、πは、[1,m]から[1,m]までの疑似ランダム置換を表す、
    請求項12に記載の非一時的なコンピュータ可読媒体。
  14. 前記ランダム鍵を生成することは、一度しか起きない、
    請求項11に記載の非一時的なコンピュータ可読媒体。
  15. 前記ランダム鍵は、前記鍵つきハッシュ関数について生成され、
    前記鍵つきハッシュ関数は、SHA-1、SHA-2、又はSHA-3を含むセキュアハッシュアルゴリズムに基づく、
    請求項10に記載の非一時的なコンピュータ可読媒体。
  16. 前記動作は、暗号化されたメモリに前記ハッシュテーブルを記憶することを更に含む、
    請求項10に記載の非一時的なコンピュータ可読媒体。
  17. 前記サーバエンクレーブ及び前記クライアントエンクレーブは、トラステッド・エグゼキューション環境の部分である、
    請求項10に記載の非一時的なコンピュータ可読媒体。
  18. 前記トラステッド・エグゼキューション環境は、ソフトウェア・ガード・エクステンションを含む、
    請求項17に記載の非一時的なコンピュータ可読媒体。
JP2018230790A 2017-12-28 2018-12-10 トラステッド・エグゼキューション環境におけるセキュアハッシュ演算 Active JP7176388B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/857276 2017-12-28
US15/857,276 US10728022B2 (en) 2017-12-28 2017-12-28 Secure hash operations in a trusted execution environment

Publications (2)

Publication Number Publication Date
JP2019121375A JP2019121375A (ja) 2019-07-22
JP7176388B2 true JP7176388B2 (ja) 2022-11-22

Family

ID=64899192

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018230790A Active JP7176388B2 (ja) 2017-12-28 2018-12-10 トラステッド・エグゼキューション環境におけるセキュアハッシュ演算

Country Status (3)

Country Link
US (1) US10728022B2 (ja)
EP (1) EP3506561B1 (ja)
JP (1) JP7176388B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10791123B2 (en) 2015-11-25 2020-09-29 Yaron Gvili Selectivity in privacy and verification with applications
US11188913B2 (en) * 2019-01-11 2021-11-30 Capital One Services, Llc Systems and methods for securely verifying a subset of personally identifiable information
CN116888594A (zh) * 2021-03-17 2023-10-13 苹果公司 用于具有安全功能的外围设备的配对协议
US11550946B2 (en) * 2021-04-20 2023-01-10 Fujitsu Limited Searchable sets of data using trusted execution environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013149068A (ja) 2012-01-19 2013-08-01 Hitachi Solutions Ltd ファイル間の関連性の解析方法及びシステム並びにプログラム
JP2014194621A (ja) 2013-03-28 2014-10-09 Fujitsu Ltd 情報秘匿化装置、情報秘匿化方法
JP2016061915A (ja) 2014-09-17 2016-04-25 株式会社リコー 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP2016206918A (ja) 2015-04-22 2016-12-08 株式会社日立製作所 秘匿化データベースシステム及び秘匿化データ管理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197142B2 (en) * 2001-08-24 2007-03-27 Alten Alexander I System and methods for a vernam stream cipher
US9137212B2 (en) * 2006-12-04 2015-09-15 Oracle America, Inc. Communication method and apparatus using changing destination and return destination ID's
US8838965B2 (en) * 2007-08-23 2014-09-16 Barracuda Networks, Inc. Secure remote support automation process
US8812570B2 (en) * 2009-05-28 2014-08-19 Red Hat, Inc. String hashing using a number generator
US8572379B2 (en) 2011-08-08 2013-10-29 Xerox Corporation Private access to hash tables
JP2014119486A (ja) * 2012-12-13 2014-06-30 Hitachi Solutions Ltd 秘匿検索処理システム、秘匿検索処理方法、および秘匿検索処理プログラム
WO2014196966A1 (en) * 2013-06-04 2014-12-11 Intel Corporation Technologies for hardening the security of digital information on client platforms
US9584517B1 (en) * 2014-09-03 2017-02-28 Amazon Technologies, Inc. Transforms within secure execution environments
US10592670B2 (en) * 2016-06-28 2020-03-17 Intel Corporation Technologies for provisioning and managing secure launch enclave with platform firmware
US10528721B2 (en) * 2016-10-20 2020-01-07 Intel Corporation Trusted packet processing for multi-domain separatization and security
US11165565B2 (en) * 2016-12-09 2021-11-02 Microsoft Technology Licensing, Llc Secure distribution private keys for use by untrusted code
US20180241572A1 (en) * 2017-02-22 2018-08-23 Intel Corporation Techniques for remote sgx enclave authentication
US10491377B2 (en) * 2017-02-28 2019-11-26 Google Llc Hashing using data parallel instructions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013149068A (ja) 2012-01-19 2013-08-01 Hitachi Solutions Ltd ファイル間の関連性の解析方法及びシステム並びにプログラム
JP2014194621A (ja) 2013-03-28 2014-10-09 Fujitsu Ltd 情報秘匿化装置、情報秘匿化方法
JP2016061915A (ja) 2014-09-17 2016-04-25 株式会社リコー 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP2016206918A (ja) 2015-04-22 2016-12-08 株式会社日立製作所 秘匿化データベースシステム及び秘匿化データ管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
開発者必見!Windows Server&SQL Server2016テクニカルガイド-IT提案セミナーレポート,2017年01月17日,<URL https://thinkit.co.jp/article/10063?page=0%2C1>

Also Published As

Publication number Publication date
US20190207752A1 (en) 2019-07-04
US10728022B2 (en) 2020-07-28
EP3506561A1 (en) 2019-07-03
JP2019121375A (ja) 2019-07-22
EP3506561B1 (en) 2020-04-15

Similar Documents

Publication Publication Date Title
JP7176388B2 (ja) トラステッド・エグゼキューション環境におけるセキュアハッシュ演算
Passerat-Palmbach et al. A blockchain-orchestrated federated learning architecture for healthcare consortia
EP2665052B1 (en) Data processing device and data archiving device
Niksefat et al. Privacy issues in intrusion detection systems: A taxonomy, survey and future directions
WO2014040964A1 (en) Privacy-enhancing technologies for medical tests using genomic data
US10789369B2 (en) Oblivious array shuffling in trusted execution environments
Ying et al. Reliable policy updating under efficient policy hidden fine-grained access control framework for cloud data sharing
Demmler et al. Privacy-preserving whole-genome variant queries
Adebayo et al. Blockchain-enabled information sharing framework for cybersecurity
Jurado et al. Quantifying information leakage of deterministic encryption
Tople et al. {PRO-ORAM}: Practical {Read-Only} Oblivious {RAM}
Hu et al. How to make private distributed cardinality estimation practical, and get differential privacy for free
Aparajit et al. Data protection: The cloud security perspective
Bokhari et al. Evaluation of hybrid encryption technique to secure data during transmission in cloud computing
Ferreira et al. BISEN: Efficient boolean searchable symmetric encryption with verifiability and minimal leakage
WO2020069431A1 (en) Oblivious filtering of data streams
Huang et al. Achieving data privacy on hybrid cloud
Bertino et al. Computer Security–ESORICS 2021: 26th European Symposium on Research in Computer Security, Darmstadt, Germany, October 4–8, 2021, Proceedings, Part II
Qiao et al. Ciphertext range query scheme against agent transfer and permission extension attacks for cloud computing
Li et al. Protecting access privacy for Bitcoin lightweight client using trusted hardware
Ahmed et al. A secure provenance scheme for detecting consecutive colluding users in distributed networks
Le et al. A tale of two trees: One writes, and other reads. optimized oblivious accesses to large-scale blockchains
Portela et al. BISEN: efficient boolean searchable symmetric encryption with verifiability and minimal leakage
Gupta et al. Design & Implementation of Enhanced Security Architecture to Improve Performance of Cloud Computing
Li et al. NEMO: Practical Distributed Boolean Queries With Minimal Leakage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220726

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221024

R150 Certificate of patent or registration of utility model

Ref document number: 7176388

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150