Amazon Web Services ブログ

暗号コンピューティングとは何か、二人の AWS エキスパートから学ぶ

このブログは “What is cryptographic computing? A conversation with two AWS experts” を翻訳したものです。

AWS の暗号技術にまつわるツールやサービスは、幅広い暗号技術やストレージ技術を使用しており、お客様のデータを保管時および転送時の両方で保護することができます。

時には、コンピュータで処理中・使用中のデータに対しても保護を求める場合があります。こうしたニーズに対応するため、アマゾン ウェブ サービス (AWS) は、暗号化されたデータに対して計算を実行し、機密データが決して漏洩しないようにする一連の技術である暗号コンピューティングを開発しています。この基盤は、データ所有者、データ利用者、機械学習活動に関わる関係者などのプライバシーや知的財産の保護に役立てられています。

先日、AWS Cryptography のプリンシパル プロダクトマネージャであるビル・ホーンと、AWS Cryptography の Amazon Scholar であるジョアン・ファイゲンバウムに、暗号コンピューティングの経験、なぜそれが重要なテーマなのか、AWS がどのように取り組んでいるのかについてお話を伺いました。

Joan Feigenbaum
Joan Feigenbaum
Amazon Scholar, AWS Cryptography
Bill Horne
Bill Horne
Principal Product Manager, AWS Cryptography

暗号コンピューティングに携わろうと思ったきっかけは何ですか?また、なぜ AWS で暗号コンピューティングを行おうと思ったのですか?

ジョアン :私はイェール大学のコンピュータサイエンスの教授であり、Amazon Scholar でもあります。1981 年の秋にスタンフォード大学の大学院でコンピュータサイエンスを学び始めました。それ以前は、ハーバード大学で数学を専攻していました。当初から、現在では暗号コンピューティングと呼ばれるものに興味がありました。1982 年の秋、私の博士課程の指導教官だったアンドリュー・ヤオ氏が “Protocols for Secure Computation” という論文を発表し、二人の資産家がそれぞれの資産を明かすことなく、どちらが富を多く持っているか調べるにはどうすればよいかという問題 “the millionaire’s problem” を提起し、この問題を解くプロトコルを紹介しました。もっと深く掘り下げると、いくつかの前例が見つかりますが、この論文は通常、暗号コンピューティングの分野を立ち上げたと評価されています。私はコンピュータ科学者として 40 年間、さまざまな分野の研究に携わってきましたが、いつも暗号コンピューティングに戻ってきます。その理由は、暗号コンピューティングの分野がとても魅力的であり、多くの実用的な応用方法があるからです。

ビル :私はもともと 1993 年に機械学習で博士号を取得しましたが、1990 年代後半にセキュリティに転向しました。私はキャリアのほとんどを産業界の研究所で過ごしましたが、そこでは常に、いかにして技術を研究室から持ち出して実際の製品に応用するかということに関心を持っていました。現在、暗号コンピューティングに関するお客様の関心は非常に高く、今後数年で一気に普及する可能性のある、実に興味深い時期に来ていると思います。このようなことに携われることは、とてもエキサイティングなことです。

暗号コンピューティングとは、具体的にどのようなものでしょうか?

ビル :暗号コンピューティングは単一のものではありません。むしろ、使用中のデータを保護するための方法論であり、機密データを他人に知られることなく計算するための一連の技術なのです。例えば、金融サービス会社であれば、他の金融サービス会社と協力して、クレジットカードの不正利用を検知するための機械学習モデルを開発することが考えられます。その際に、顧客に関する機密データをモデルの学習データとして使用する必要があるかもしれませんが、自社の顧客データを平文で他の企業と共有したり、その逆に他の企業の顧客データを平文で共有することは避けたいものです。暗号コンピューティングは、顧客に関する平文データを企業同士、あるいは AWS のようなクラウドプロバイダーのような中間サードパーティにさらすことなく、共同でモデルを学習する方法を組織に提供するものです。

なぜ、使用中のデータを保護することは難しいのでしょうか?この課題に対して、暗号コンピューティングはどのように貢献するのでしょうか?

ジョアン : 暗号を使った保存中のデータや転送中のデータの保護は、非常によく理解されています。
一方で、使用中のデータを保護するのは少し難しいのです。使用中のデータを保護するというのは、そのデータで計算を行っている間は常時保護するという意味です。これを実現するための一つの方法として、暗号化以外のセキュリティ機構を利用することが挙げられます。具体的には、隔離とアクセス制御のメカニズムを使って、その計算にアクセスできるユーザ、対象を厳密に制御することができます。制御のレベルは、標準的な仮想マシンの分離から、ソフトウェアと専用ハードウェアの組み合わせによる隔離、ハードニング、制約されたエンクレーブに至るまで、多岐にわたります。データはエンクレーブ内で復号して処理を行い、外部のコードやプロセスからは一切アクセスできません。AWS が提供する AWS Nitro Enclaves は、このような手法を用いた非常に厳重に管理された環境です。

暗号コンピューティングは、使用中のデータを保護するための全く異なるアプローチを提供します。隔離やアクセス制御を行う代わりに、データは常に暗号化されて保護され、処理は保護されたデータに対して直接行われます。計算を行うハードウェアは、データの暗号化に使用された秘密鍵にアクセスすることすらできないため、そのハードウェア、そのハードウェアで実行されているソフトウェア、またはそのハードウェアにアクセスできる人がデータについて何かを知ることは計算量的に困難なことです。実際のところ、暗号コンピューティングをしている場合、計算を見ても何も得ることができないため、隔離やアクセス権限は必要ないとさえ言えるでしょう。

暗号コンピューティング技術にはどのようなものがあり、どのように機能しますか?

ビル : 応用可能な基本的な暗号コンピューティング手法の二つは準同型暗号とセキュアなマルチパーティ計算です。準同型暗号により、データを暗号化したまま計算できるようになります。基本的には暗号化されたデータに対しても加算、乗算といった数学的な演算が機能するような特殊な暗号システムがあるという考え方です。これらの基本的な演算から、複雑な回路を組み立てて、求めている機能を実装することができます。

セキュアなマルチパーティ計算は、全く異なるパラダイムです。セキュアなマルチパーティ計算では、いくつかの関数を一緒に計算したいけれどもお互いが所持しているデータを明らかにしたくない複数の参加者がいます。例を挙げると、それぞれ顧客リストを持った二者がお互いの顧客情報を開示することなく、共通の顧客を見つけたい場合があります。これは “private set intersection (PSI)” と呼ばれる特殊なマルチパーティ計算です。

ジョアン : ビルの発言に補足を加えると、準同型暗号は現在アルゴランド財団のリサーチフェローである クレイグ・ジェントリー氏が 2009 年に発表したブレイクスルーの影響を大きく受けています。もし、データセット X を所持しており、f(X) を計算したいお客さまがおり、X をサーバに明らかにした状態で送ることを厭わない場合、X をアップロードしてクラウドサービスが Y = f(X) を計算し、Y を返します。一方で、クラウドプロバイダに X を隠したい (もしくは法律やポリシーで義務付けられている) 場合、クライアントサイドで X に対して準同型暗号による暗号化を行い X’ を取得してそれをアップロードします。その後、暗号化された計算結果 Y’ を受け取り、(クライアントサイドで) 復号し Y を取得します。

セキュアなマルチパーティ計算では、データセット X1, X2, …, Xn をもつ複数の参加者が存在し、彼らは Y = f(X1, X2, …, Xn) を計算することを望んでいます。そして、どの参加者も計算結果である Y によって暗示されない自身のデータを他の参加者に明かしたくありません。彼らはメッセージを交換し合い、ローカル計算を実行する n-party のプロトコルを実行します。最終的には全ての参加者が計算結果を知ることになりますが、他者の入力、多くの場合マルチラウンドで行われる分散計算における中間結果についての追加情報を得ることはできません。マルチパーティ計算では暗号化技術を使う場合もありますが、秘密分散のようなデータ隠蔽技術が使われることもよくあります。

暗号コンピューティングは技術的に注目されはじめたようで、AWS はこの分野での取り組みをリードしています。なぜ、暗号コンピューティングが今話題になっているのでしょうか?

ジョアン : クラウドコンピューティングはテクノロジーの経済圏と情報インフラストラクチャの多くを占めるようになったため、暗号コンピューティングを導入する強いモチベーションがあります。これまで、データプライバシーを考慮しやすいオンプレミスでコンピュート環境を管理していた企業は、暗号コンピューティングを提供するサードパーティのクラウドプロバイダを選択するようになっています。クラウドではデータプライバシーを推論するのが難しいため、データプライバシーをクラウドプロバイダーに完全に頼る必要のない技術を求めています。ヘルスケア、医学研究、金融、政府、教育機関などには膨大な量の機密データがあり、組織が社内で実装するのが難しい最先端の計算技術を活用するためにクラウドで使用したいと考えています。これこそが、暗号コンピューティングが意図していることです。つまり、データを公開せずにデータを使用する、ということです。

ビル : データプライバシーは、セキュリティにおいて最も重要な問題の一つになっています。現在、個人のプライバシーを保護するという規制の圧力がかなり高まっています。しかしながら、先進的な企業は法的に義務付けられており難しいと思われることを暗号コンピューティングを用いて乗り越えようと試みています。暗号コンピューティングは権限のない第三者にデータを公開することなく、ライフサイクル全体にわたりデータを保護できる魅力的で新しいツールセットをお客様に提供します。

また、現在、準同型暗号について多くの誇大宣伝があり、人気のあるテクノロジープレスに大きな関心を寄せています。しかし、私は人々がその力、応用、または限界を完全には理解していないと思います。一部の小規模アプリケーションでは準同型暗号は実際に使用され始めていますが、準同型暗号の可能性は、まだ始まったばかりです。AWS は積極的にアイデアを模索し、このテクノロジーでお客様の問題を解決する新しい機会を見出しています。

AWS で行われた暗号コンピューティングの研究について話していただけますか?

ジョアン : XGBoost と呼ばれる一般的な機械学習アルゴリズムに適用される準同型暗号の新しい使用法について研究し、公開しました。標準的な方法でトレーニングされた XGBoost モデルと、そのモデルにクエリを実行したい多数のユーザーがいるとします。PPXGBoost 推論(「 PP 」はプライバシー保護 “privacy preserving” の略)を開発しました。各ユーザーは、個別に暗号化されたモデルをリモートサーバーに保存し、暗号化されたクエリをそのサーバーに送信します。ユーザーは暗号化された推論を受信し、復号されて個人用デバイスに保存されます。たとえば、時間の経過とともにデバイスがこれらの推論を使用して、ローカルに保存されるヘルスプロファイルを構築するヘルスケアアプリケーションを想像してみてください。送信されたクエリはすべて暗号化されるため、ユーザーは個人の健康データをサーバーに公開することはありません。また、私たちの同僚であるシニア応用科学者のエリック・クロケットが論文を発表した別のアプリケーションがあります。ロジスティック回帰と呼ばれる標準的な機械学習手法を扱います。クロケットは、準同型暗号化されたデータでロジスティック回帰モデルを学習させるアプリケーション HELR を開発しました。
どちらの論文も AWS 暗号コンピューティングのウェブページ で入手できます。HELR コードと PPXGBoost コードも利用できます。そのコードをダウンロードして試し、アプリケーションで使用することができます。

非常にエキサイティングな今、どのようなことに取り組んでいますか?

ビル: データ保護の問題について、社内外の多くのお客様と話し合っており、どの分野で暗号コンピューティングがソリューション提供できるか特定しています。また、我々はセキュアなマルチパーティ計算を使用した協同的なデータ分析に多大な関心を寄せています。お客様は、相互にデータを公開することなく、あらゆる種類の関数を協同で計算し、分析を実行したいと考えています。データセットの単純な比較から、機械学習モデルの協同トレーニングまで、あらゆることに興味を持っています。

ジョアン: ビルは次のように述べています。私たちは、お客様のセキュリティとプライバシーの課題を大規模に解決するために、暗号コンピューティング (特に、セキュアなマルチパーティ計算と準同型暗号の二つ) を適用できるユースケースを模索しています。最初のユースケースはプライバシーを保護したフェデレーテッドラーニングで、二つ目はプライベートな積集合計算 (PSI) です。

フェデレーテッドラーニングにより、ユーザーデータを収集する必要性を最小限に抑えながら、機械学習を活用できます。サーバーと多数のクライアントがあるとします。サーバはモデルを構築し、ローカルデバイスで使用するためにクライアントにプッシュしました。一般的な使用例の 1 つが音声認識です。クライアントはモデルを使用するにつれて、パーソナライズされた更新を行ってモデルを改善します。私の環境でローカルで行われたローカルな改善の一部は、他の何百万というユーザーの環境にも関係する可能性があります。サーバーは、これらのローカルな改善点をすべて集めて、グローバルモデルに対する 1 つの改善に集約します。次に既存の、ないしは新しいクライアントに新しいモデルをプッシュするときに、改善されたモデルをプッシュすることができます。プライバシーを保護するフェデレーテッドラーニングを実現するために、暗号コンピューティング技術を使用して、グローバルな改善を計算する過程で、個々のユーザーのローカルな改善がサーバーや他のユーザーに明らかにされないようにします。

次に PSI を使用すると、関連するデータセットを持つ 2 人以上の AWS のお客様は、データセットの共通部分 (つまり、すべてに共通するデータ要素) を、すべてのお客様に共通ではないデータ要素に関する重要な情報を隠しながら計算することができます。PSI は、データエンリッチメント、広告、ヘルスケアなど、お客様から聞いたいくつかのビジネスユースケースにおいて、重要な技術要素となっています。

この投稿は、AWS が調査している暗号コンピューティングと斬新なユースケースの一部を紹介することを目的としています。このアプローチを真剣に検討している場合は、解決しようとしている問題と、暗号コンピューティングが役立つかどうかについて話し合うことをお勧めします。詳細については、暗号コンピューティングのウェブページ でお問い合わせいただくか、aws-crypto-compute@amazon.com までメールをお送りください。

AWS の Security のニュースをもっと知りたい場合は、 Twitter をフォローしてください。

翻訳はソリューションアーキテクトの佐藤 航大が担当しました。原文はこちらです。