スマートな世界を〈守り〉〈創る〉先進のセキュリティ技術を紹介します。
第1回連載で紹介したように、NTTのセキュリティへの基本的な考え方は、スマートな世界を〈守るセキュリティ〉と〈創るセキュリティ〉のふたつの視点から構成されています。そのなかで、スマートな世界を〈創るセキュリティ〉がめざすのは、〈価値創造の全プロセスをセキュアに実行可能な世界〉です。今回はこの実現のためにNTTが必要だと考えている要素として、データの暗号化に関連する技術である秘密計算技術を紹介します。
近年、企業活動のグローバル化やクラウド・IoT(Internet of Things)の普及により、多種・多様な端末などが相互接続し、さまざまなデータの授受や共有が急速に進行しています。一例をあげると、総務省の情報通信白書(令和元年版)では、2021年における全世界でIoTにつながるデバイスの総数が約448億台に達すると予測しています(1)。さまざまな分野でのDX(デジタルトランスフォーメーション)化、企業や組織のヒト・モノ・プロセスなどのデータ化が進めば、このようなデータの流通はさらに加速するでしょう。そんななか、価値創造や業務効率化を実現しさまざまな課題の解決につながることを期待されているのが、ディープラーニングをはじめとするAI(人工知能)などの、高度なデータ分析です。
しかし、このような期待に伴ってデータの価値が高まる一方で、データに対するセキュリティのリスクやプライバシーの懸念も急速に増大しています。特に、個人情報や企業情報を対象としてデータ分析を行うためには、情報漏洩のリスクだけでなく、個人情報保護法やGDPR(General Data Protection Regulation)などの法的な制約や、プライバシーなどに関する懸念も考慮しなければなりません。
前述したようなリスクや懸念を払拭して、個人・組織のモノ・ヒトに関するデータを目的に合わせて安心・安全に相互流通し、課題解決につなげる世界を実現するために、NTTセキュアプラットフォーム研究所では、秘密計算技術に着目しています。秘密計算技術は、「データを暗号化したまま一度も元データに戻さずに処理を行う」という、暗号なのに解かずに処理ができる不思議な暗号技術です。
通常、データ分析を行うためには、通信時や保管時に暗号化していたとしても、処理を行う際には元データに戻して処理する必要があります。そのため、データ所有者からすると情報漏洩のリスクを感じることから、企業秘密や個人のプライバシーにかかわるデータの利活用に対して、抵抗感を持つユーザや組織が少なからず存在します(図1)。
特にデータ所有者から他者、または同一組織内であっても、データを提供して積極的に利活用したい場合には、このことは大きな障害に他なりません。NTTでは、そのような要因の解消に貢献するため、この秘密計算技術の研究開発に長年取り組んできました。その成果として、2017 年には、データを暗号化したまま実用的な速度で安全に統計処理が可能な、秘密分散方式による商用システム「算師®」を開発しました。
AIで利用されるデータに対するセキュリティ・プライバシーへの対策として、NTTでは秘密計算ディープラーニング、つまりデータを暗号化したまま一度も元データに戻さずにディープラーニングの学習や予測をする技術を開発しました。NTTの秘密計算ディープラーニングの特徴は、従来は性能が課題のため通常のディープラーニングよりも単純な処理で代替していたところ、世界トップクラスの性能を活かして、通常のディープラーニングで行われる標準的な最適化処理を利用した学習処理を、世界で初めて完全に再現しているところです(2)。
本技術を用いることで、企業秘密や個人のプライバシーにかかわるデータをディープラーニングで活用する際に、学習や予測を行うサーバではデータを暗号化したまま一度も元データに戻さずに処理することが可能となります。つまり、ディープラーニングでのデータ活用に必要な、①データ提供、②データの保管、③学習処理、④予測処理、の全てのステップが暗号化した状態で実施可能となる訳です。これは前述した〈価値創造の全プロセスをセキュアに実行可能な世界〉というコンセプトの一環としてNTTは考えています。
秘密計算ディープラーニングは、データを暗号化したままで、AI 処理し機械学習させるプロセスと、学習後に予測するプロセスに分けられます(図2)。サーバでは常にデータは暗号化されたままであり一度も元データに戻すことがないため、従来よりもユーザや組織が安心してデータを提供でき、学習に利用できるデータ量や種類が増えることにつながります。このデータの拡充こそが、より精度が高く高度な分析を可能とするAI を実現します(図3)。このようにセキュリティがより高度な分析を可能とする、これがNTTの考える〈創るセキュリティ〉です。
秘密計算ではデータを暗号化したまま一度も元データに戻すことなく処理を行うため、その処理方法は通常の暗号化しない方法とは大きく異なります。従来は、暗号化していないデータでは簡単に処理できても秘密計算では実現が難しいという、不得手な処理分野がありました。一般的にディープラーニングの学習では、訓練データを入力して、複数の層を順番に処理して学習の途中結果を得て、その途中結果が十分に学習されたものであればそれを最終結果として出力し、そうでなければ途中結果を更新する処理(最適化処理)を行い、もう一度最初の層の処理から一連の処理を繰り返すというプロセスをとります。
複数の層のうち最後の層は出力層と呼ばれ、標準的にはソフトマックス関数と呼ばれる数式を計算します。また、最適化処理ではSGD(Stochastic Gradient Descent)が原始的な手法として知られていましたが、繰り返しの回数が多いため、SGD を改善したAdam(Adaptive moment estimation)などの技術が主に用いられています。これらのディープラーニングの標準的な学習処理で用いられるソフトマックス関数やAdam では、割り算、指数、逆数、平方根を組み合わせた処理を行います(図4)。
ディープラーニングの学習を秘密計算で行うとき、従来技術では上述の割り算、指数、逆数、平方根が秘密計算にとって不得手な処理なため、秘密計算でソフトマックス関数やAdam を計算することは困難でした。そのため、多くの先行研究は学習・予測のうちこれらを計算しなくても良い予測のみに絞ったものになりました。また、いくつかの学習に取り組んだ先行研究では、ソフトマックス関数を非常に粗い精度で近似し、かつ最適化処理は原始的なSGD しか使用できませんでした。
NTTの秘密計算技術では、従来、計算が困難であったソフトマックス関数を高速かつ精度良く計算し、さらに主要な最適化処理であるAdam を利用できる技術を開発しました。実現方法には2つの異なるアプローチがあり、1つはソフトマックス関数やAdam を計算するために、あらかじめ入出力の組を並べた対応表を用意し、入力と対応表を暗号化しつつ、入力に対応する出力が得られる秘匿写像と呼ばれる独自技術を利用するアプローチ。もう1つはソフトマックス関数やAdam を構成する割り算、指数、逆数、平方根それぞれについて専用の高速アルゴリズムを開発するアプローチです。これらの技術を用いることで、データを暗号化したまま、標準的なディープラーニングのアルゴリズムを用いて学習することが可能となったのです。
例えば、本開発による割り算・指数・逆数・平方根の専用アルゴリズムを用いる方法では、60,000 件の手書き文字を判別するモデル学習において、1エポックの学習を2分程度で実行することができるようになりました。
NTTが取り組む秘密計算技術はISO 国際標準である秘密分散技術を利用して暗号化されたデータを、一度も元データに戻さずに分析を行うため、企業の秘密情報や個人のプライバシーにかかわる情報などの情報を安全に、安心して提供し利活用できる社会の実現に貢献できると期待されています。
適切な秘密分散を選択できるよう、NTT はISO での秘密分散技術の標準化において、エディタとして規格作成を主導してきました。その成果として、秘密分散技術のISO 国際標準が発行され、ユーザも国際機関から認められた安心・安全な秘密分散方式を選択できるようになりました。
前述した通り、現在は、企業や業種の枠を超えたデータの授受や共有が進んでいます。さらにこの流れのなかで、データ活用のためのAI実装が急速に進行しています。この増え続ける莫大なデータのセキュアな分析に貢献しデータ利活用を活性化することで、データの流通そのものも活性化され、いままでにない新しいサービスやアプリケーションが生まれると考えています。
例えば、個人の位置情報やスケジュールを暗号化したまま、天気や企業のイベント情報などと合わせて学習することで、最適な飲食店の仕入れや人員リソースの配備を予測することや、レントゲン写真、MRI、CT スキャン、顕微鏡写真などの医療データを秘匿しつつ学習し、検査結果に悪性腫瘍があるかなどを精度良く判定することが可能になると期待されます。また、医療応用以外では、金融分野でのローン依頼者への与信審査高精度化が考えられます。
NTTでは今後、AIの知見を持つパートナーと連携して実証実験などを行うことで、秘密計算を使ったディープラーニングの効果を実証していきたいと考えています。