記事

準同型暗号アクセラレーション

FPGAアクセラレーション は、暗号化されたデータに対して、鍵の解読や共有なしに計算を可能にする、このユニークなソリューションを実現します。
暗号の背景に鍵

従来の暗号化の限界

データを暗号化することは、医療ファイルや財務情報などの機密情報にとって必須であり、その量は飛躍的に増加している。このようなデータは、データベースのレコードを検索するなどの処理機能を含めて、経済的なパブリッククラウドインフラに保存されることが理想的です。しかし、暗号化されているため、クラウドストレージのプロバイダーが秘密鍵を必要とし、さらに検索語や検索結果を見ることができる。このように鍵を共有し、個人情報を公開することは、セキュリティ上大きなリスクとなります。

クラウドストレージ&コンピュートによる従来型暗号化の実現

標準的なクラウド検索

上記の例では、暗号化されたデータベースがパブリッククラウドサーバーに保存されています。検索などのデータを取得するためには、クラウドシステムはデータベースの暗号化を解除するための秘密鍵を持っていると同時に、検索語や検索結果を見ることができる必要があります。これらのデータは暗号化されてから安全でないリンクで渡されますが、クラウドプロバイダーが秘密鍵を持ち、セキュリティが侵害されないかどうかに依存していることがリスクとなります。

このため、医療記録など安全性の高いデータの多くは、パブリッククラウドを利用することができません。

準同型暗号

しかし、数十年前の技術では、テキスト検索のような暗号化されたデータを、復号化したり秘密鍵にアクセスしたりすることなく処理することができます。また、処理要求(例えば、検索語)と結果も暗号化することができます。ストレージプロバイダーは、機密性の高い暗号化データをリスクなく保管・処理することができます。

同型クラウド検索

この技術は同形暗号化(HE)と呼ばれ、必要な計算量が増加するにつれて、いくつかのレベルが用意されています。実際、BittWareの IA-440iのような強力な FPGA カードが利用できるようになるまでは、同形暗号に必要な計算量は、実用的な使用例を大きく制限していました。

ホモモーフィック・エンクリプションの使用例

今回はデータベースの検索について説明しましたが、同形暗号には他にも様々な用途が考えられます:

  • 暗号化されたデータに対して複数のユーザーが共同作業を行うが、データそのものが平文で保存されたり送信されたりすることはないため、漏洩の心配はない。
  • 企業は、復号化キーを共有するリスクを負うことなく、サイト間で機密データを自由に共有することができます。
  • データベースは完全に暗号化された状態でパブリッククラウドに保存され、なおかつアクティブに使用することができます。クラウドに侵入されると、秘密鍵にアクセスすることなく暗号化されたデータだけが露出します。
  • 機械学習による画像や音声の検索は、公開された推論計算リソースによって実行され、検索自体、結果、さらにはデータのソースプールは、計算機やストレージのプロバイダから判別することが不可能である。

その仕組みについて

同型暗号化方式は、通常、2つのアプローチのいずれかに従います:

レベリングHEスキーム

このアプローチにより、すべてのHE方式に内在する内部誤差が大きくなりすぎる前に、ある一定の処理を行うことができます。必要な処理の深さが事前に分かっていれば、適切な許容範囲を持つHEスキームを作成することができます。これにより、最小限の処理しか行わず、スループットを向上させることができるという利点があります。

フルHEスキーム(FHE)

この方式もノイズの増加に悩まされますが、「ブートストラップ」と呼ばれる技術を使って、誤差が大きくなる前に取り除くことができます。ブートストラッピングは非常に時間がかかりますが、最近、この性能のボトルネックを高速化 する動きが出てきています。

どのようなHEスキームを使用するかは、ユーザーの問題ケースに大きく依存します。したがって、1つのソリューションがすべてに適合することはまずありません。また、暗号化されたデータをHEで処理するのは非常に時間がかかり、有用であるためには、かなりのアクセラレーションが必要です。幸い、FPGAは暗号化スキームが必要とするタイプの計算に非常に優れており、どのHEスキームが適切であっても効率的に処理できる柔軟性を備えています。

FPGAで加速する同型暗号化システム

AIマルチHEシステム・ストレージ
IA-440i PCIeカード
BittWare IA-440i FPGAアクセラレーション カード

イーサネットに対応したFPGAカードを使って、ユーザーは暗号化されたデータベースへのリクエストを送信することができます。FPGA上のHEロジックは、このリクエストを、付属の永続的なメモリに保存された暗号化されたデータベース内の適切なルックアップに変換します。ハッカーが有用な情報を引き出すことはなく、データベースはパブリックドメインで自由に利用できます。また、データベースは暗号化されているため、不正にアクセスしても機密情報やアルゴリズムIPが抜き取られることはない。

同型暗号を用いた機械学習推論

同型暗号は、テキストベースのデータベース・アプリケーションに限定されるものではない。 上述した同じFPGAアクセラレーション システムは、機械学習(ML)推論などの計算のためのサービスとしてアクセラレーション を提供できます。例えば医療分野では、患者のX線写真を(画像として)送信して、クラウドベースのMLモデルで異常を検出することができます。しかし、データベースの例と同様に、このような検索を行うには、個人の医療情報(レントゲン画像)を共有のMLモデルプロバイダーに送る必要があり、プロバイダーは推論を行うために画像の暗号化を解除する必要があります。次の図は、FPGAで高速化されたHEと推論システムが、多くのユーザーに安全なルックアップを提供する様子を示しています:

AIマルチホモモーフィック暗号システムのブロック図

このHEセキュアシステムでは、患者のX線写真、学習済みMLモデル、および結果は、共有プロバイダのシステムで暗号化されたままである。 データベース検索の例と同様に、理想的なホストは、共有リソース上で多くのユーザーとルックアップを処理する。このようなシステムを保護するための同型暗号では、レイアウトはデータベース検索の例と非常に似ています。

今日の性能限界

なお、FPGAによる高性能なアクセラレーション 、HEシステムは、今日では 桁違いの速さは、暗号化されていない同等品よりも優れています。したがって、この性能差を縮め、より広く普及させるためには、さらなる研究が必要です。

もっと深く知る:ホモモーフィック暗号の簡単な歴史

完全同型暗号(FHE)が実現する以前から、いくつかの有名な暗号方式は、すでにいくつかの部分同型性を示していた。暗号化方式RSAは、2つの暗号化された暗号文を掛け合わせ、復号化したときに同等の平文の掛け合わせ結果を返すという、乗法的同型性を示している。

RSA乗法準同型暗号化
式で表します:メッセージmに対するRSAの乗法的同型性

Paillier暗号は加算型暗号方式の一例であるがこれは次のように書くことができる...。

パイリエ同型暗号
式になります:加法的同型のPaillier暗号システム

前述のように、完全同型暗号化(FHE)方式とは、加算と乗算の両方の演算が可能な方式を指します。この場合、暗号文の乗算や加算を繰り返しても、元の平文を復元することが可能です。

完全同型
完全同型暗号化方式のイメージ図

HE方式で乗算と加算の両方が可能であれば、論理NANDゲート、つまりあらゆる論理回路を実現できる。 

DGHV完全同型暗号化方式

最初のFHE方式のひとつにDGHV方式があります。これは、安全性を確保するために、非常に大きな暗号文に依存していた。暗号化方式と復号化方式は次の式で表されます。

メッセージmのDGHV暗号化
Equation: DGHV Encryption of message m to ciphertext c for m ∈{0,1}, p is the sercret key, q and r are random numbers
DGHV 暗号文の復号化
式で表します:DGHVで暗号文をメッセージmに復号する。

暗号文は、良好な暗号化のためには非常に大きく、数千万ビットでなければならず、秘密鍵pは数千ビット、ノイズの値も大きくなる。暗号化スキームが線形代数攻撃に対して脆弱でないことを保証するために、ノイズ(r)を審議導入する必要があります。これを以下に図示する。

DGHV暗号文サイズ
ランダムノイズを加えた場合のDGHV暗号文のサイズ説明図

このように大きな暗号文を使用すると、1ビットの平文が数百万ビットの暗号文に拡張されるため、性能上の問題があることは明らかであり、実際の使用例では実用的ではありません。しかし、これは最初に作られた機能的なHEスキームの1つであり、HEに関する学術研究を再起動させました。

DGHV方式のもう一つの問題は、暗号化に必要なランダムファクターが加わることで生じるノイズの増大でした。この場合、暗号文の足し算ではこのノイズが1ビットずつ増加するが、掛け算ではその都度ノイズが2倍になる。

指数関数的ノイズ成長
暗号化されたデータに対する乗算の指数関数的なノイズの増大

図は、秘密鍵のサイズqに対して乗算ノイズρが2倍になることを表しています。ノイズがqを超えると、もはや平文をエラーなく復元することはできなくなります。つまり、処理が破綻するまでの限られた回数の処理しかできないのです。

この誤差の拡大を解消するために、ブートストラップという技法が使われます。ブートストラップは、暗号化ロジックに暗号文を通し、共有の公開鍵を用いて暗号化することで、ノイズを除去することができます。これは、暗号文を復号化(ノイズを除去)して再暗号化することと同じですが、公開鍵を使用して元の平文を復元することができないため、データは終始非公開のままです。このプロセスは計算量が多いのですが、ノイズを除去することで暗号化された計算を無制限に行えるようになります。

リフレッシュによるブートストラップ
右側の暗号化された平文と左側の暗号文の復号をリフレッシュすることによるブートストラップの例

誤差を伴う学習(LWE)

LWE(Learning With Error)方式は、多項式評価に基づいており、暗号鍵はN次多項式の係数となる。多項式の係数は、ワードサイズ素数qの有限体である。安全性を高めるには、システムにノイズ(e)を加える必要があるが、そうでなければ線形代数を使ってこの方式は簡単に解ける。

メッセージMの暗号化関数
メッセージmの暗号化関数f、ここでs(→)は係数の配列、eは導入ノイズ、qは素因数分解。

2つの多項式を足すと同じ次数の3番目の多項式ができますが、2つの多項式を掛けると(n+1)2係数の2次多項式になります。この多項式の項数の増加を補正するために、再直線化と呼ばれる技法が使われます。多項式の2次項を公開し、2値分解で結果から減算することで、拡張された多項式を再び(n+1)個の係数に戻すことができる。この乗算はDGHVと同じようにノイズが増加しますが、モジュラススイッチングと呼ばれる技術を使って、その影響を軽減することができます。

係数を新しい素数でスケーリングして、新しい係数「c」がcnew= c mod 2と等価になるようにすれば、復号化結果は変わらないことがわかります。この関係を利用すると、ノイズの指数関数的な増加を線形にすることができ、ノイズの増加が大きくなりすぎる前に、暗号文に対してより多くの演算を行うことができる(下図参照)。

モジュラス・スイッチング
指数関数的なノイズの増加を線形的なノイズの増加に抑えるためのモジュラス切り替えの例

これがLevelled FHEと呼ばれるものです。計算の深さがわかっていれば、与えられた問題に対して、初期モジュラスの大きさを十分な大きさに選ぶことができ、高価なブートストラップ段階を避けることができます。

リングラーニング・ウィズ・エラーズ(RLWE)

LWEスキームの拡張として、Nを2のべき乗とする多項式リングを使用することができます。 .この場合、2つの多項式を足したり掛けたりしても、係数は素因数分解されて減少する。乗算後、2N個の係数は、(X)で割ったときの余りを取ることで減少する。N + 1).

多項式の乗算は、係数の数が通常N = [210214]の範囲であることを考えると、このHE実装の主要なボトルネックである。多項式乗算の最適化として、ネガシクル数論変換(NTT)があります。これにより、計算回数がNNからNlog(N)に減少する。NTTは、整数の有限体上の高速フーリエ変換(FFT)である。

2つの多項式f(x)とg(x)を掛け合わせると、次のようになります。

インブNTT(FwdNTT(f(x))* FwdNTT(g(x)))です。

パブリックドメインAPI

公開されているHE APIは複数あり、そのほとんどがCPUに最適化されています。以下はその例である:

その多くは、性能の向上や高速化技術の実現に伴い、常に流動的な状態です。

Intel HEXL - FPGA

IntelもHEXLライブラリの並列FPGAブランチを持っています。Intel Homomorphic Encryptionアクセラレーション Library for FPGA(HEXL-fpga)は、HE関数のFPGA実装例をいくつか提供するオープンソースライブラリです。

現在、FPGA APIに含まれている演算子は以下の通りです:

  • 二項乗算:2つの多項式の乗算
  • KeySwitch(キースイッチ):公開暗号鍵やパラメータを切り替える
  • ネガシクル数論変換(NTT)の順・逆順

これにより、ユーザーはFPGA上でさまざまなHEワークフローを試すことができる。BittWare USM (Unified Share Memory) BSPは、このライブラリと互換性があります。

結論

同形暗号の潜在的な利点は大きく、医療や金融の分野で使用されるようなリスクの高いデータに対して、公共の共有リソースをより良く利用することができます。HEは、新しい技術で性能の問題に対処するために進化しています。

BittWare IA-440iのようなFPGAカードは、学術的な研究から実世界での展開まで、ホモモーフィック暗号の導入を促進するのに最適なテクノロジーと言えます。

Agilex-poweredのFPGAアクセラレータカードの詳細はこちら →。

略語について

HE: Homomorphic Encryption

RSAです:リベスト、シャミア、アドルマン

FHE: Fully homomorphic Encryption(完全同型暗号)。

DGHV:Digi Gentry Halevi Vaikuntanathan(デジ・ジェントリー・ハレヴィ・ヴァイクンタナサン

RLWE: 誤差を伴うリング学習

同型暗号に関するビデオリソース