Cにおける安全なマルチパーティ計算への新しいアプローチ
この論文では、C言語でのセキュアな計算のための正式なモデルを示しているよ。
― 1 分で読む
目次
セキュアマルチパーティ計算 (SMC) は、複数の人が自分のプライベート情報を使って一緒に計算できるようにし、なおかつそのデータを互いに秘密に保つことができるプロセスだよ。このプロセスは、ヘルスケア、軍事、ファイナンスなどの分野で重要性が増しているんだ。ただ、SMCアプリケーションを書くのは難しいことがあって、セキュリティと正確性を確保するために高度なコーディング技術を使用する必要があるんだ。
多くの研究者がSMCを使いやすくするための形式的手法に取り組んできたけど、ほとんどの解決策はSMC向けにデザインされた特定のプログラミング言語にしか焦点を当ててないのが現状。この論文では、暗号化で人気のある言語であるCで書かれたプログラムに適用できる一般的なアプローチを探っているよ。目的は、重要なCの機能を維持しながら、マルチパーティ計算のセキュリティを確保するモデルを作ることなんだ。
SMCにCを使う理由
Cは低レベルプログラミングを可能にするから広く評価されているんだ。既存のSMCコンパイラーがある一般的なプログラミング言語はこれだけだから、多くの開発者がCを知っていて、安全なマルチパーティプログラムを書くのが簡単になるんだ。私たちのアプローチは、プライベートデータに基づく条件分岐やポインタといった重要なCの構造に焦点を当てているよ。
SMCにおける課題
開発者はセキュリティと正確性を維持しようとすると、いくつかの課題に直面するんだ。秘密分割やガーバル回路といったSMCを実装するための低レベル技術は、複雑なコードにつながることがあるんだ。SMCを簡素化しながら、セキュリティと正確性の特性を確保することが、この論文の主な動機なんだ。
私たちの貢献の概要
私たちの研究は、SMCのためのC言語の主要な側面をサポートする形式モデルを提示しているよ。私たちの目標は:
- プライベートブランチ、ミュータブル配列、プライベートデータのポインタを含むC用のSMCシステムをモデル化すること。
- 確立されたSMC技術が正確性と強い非干渉性を提供することを示す形式的証明を作成すること。つまり、計算中にプライベート情報が漏れないようにすること。
- この形式モデルの実装を既存のPICCO SMCコンパイラー内で開発し、そのパフォーマンスをテストを通じて報告すること。
関連研究
SMCコンパイラーに関する分野は2004年から存在しているんだ。二者間および多者間計算のために多くのツールが開発されてきたけど、しばしばカスタム言語に依存しているため、使いやすさが制限されることがあるんだ。一般的なCプログラムをサポートするCBMC-GCコンパイラーのような例外もあるけど、その型システムの完全な形式的検証が欠けているんだ。私たちの研究は、一般的なSMCコンパイラーのための形式モデルを提供することで、このギャップを埋めることを目指しているよ。
セキュアマルチパーティ計算の基本
SMCは、参加者が互いにプライベートな入力を明かさずに計算を共同で行うことを可能にするんだ。このプロセスは、ある参加者が情報を得ようと協力しても、他の参加者のプライベートデータを学ぶことができないようにするために、さまざまな技術に依存しているよ。これらの方法には、秘密分割、ガーバル回路、同形暗号が含まれる。
Cでの作業:SMCのための重要な特徴
C言語には以下のような特徴があるよ:
- ポインタ:メモリの場所を参照し、操作することができる。
- 条件分岐:if-else文のような。
- ミュータブル配列:動的データ構造を作成および扱うことができる。
これらの特徴は、プライベート計算を可能にしながら正確性を確保するために重要なんだ。
SMCモデルの形式化
私たちのモデルを形式化するために、さまざまなコンポーネント(メモリや変数)が特定のルールの下で相互作用する状態を定義しているよ。計算に参加する各参加者は、自分自身の環境とメモリの中で操作を行うんだ。参加者が計算に参加するにつれて、私たちのモデルで定義された意味論に基づいて一連の変換を評価していくよ。
環境とメモリモデル
私たちのモデルでは、環境を使用して変数とそれに対応するメモリの位置を追跡するんだ。メモリブロックはデータを保持し、各ブロックには型情報や権限といったメタデータがある。これによりプライバシーを維持しつつ、効率的なデータ処理を可能にする構造が作られているよ。
メモリ管理:割り当てと解放
動的メモリ管理はすごく重要なんだ。メモリが割り当てられると、プライベートデータ用に特別に指定されることがあるよ。公共データのための malloc やプライベートデータのための pmalloc といった関数が、これらの要件に応えているんだ。もしメモリの位置がもう必要ない場合は、free と pfree を使って解放できるから、プライベート情報が残らないようにすることができるよ。
ポインタの操作
ポインタは複雑さを導入することがあるんだ。ポインタはメモリの場所を参照して、変更されることもあるからね。私たちのモデルでは、データプライバシーを維持するためにポインタの変更を追跡しているよ。これにより、ポインタの位置が変わっても実際の場所は隠されていて、プライベートデータについての情報漏洩を防ぐことができるんだ。
配列の扱い:安全な操作と危険な操作
配列は特にプライベートデータを含む場合、注意して操作する必要があるんだ。私たちのモデルは、配列にアクセスしたり変更したりする方法を制御するルールを確立しているよ。例えば、配列の境界を超えて書き込む(範囲外アクセス)は未定義の動作を引き起こすことがあるんだ。私たちの形式化は、こうした操作がセキュリティを損ねないように管理されることを確保しているよ。
非干渉性:セキュリティプロパティとして
非干渉性は、プライベートデータが公共の出力に影響を与えないことを確保するために不可欠なんだ。私たちの形式モデルでは、プライベートデータの変更がそのデータについての情報を公共の結果に漏らさないことを具体的に示しているよ。この特性は、計算中のプライベート入力の機密性を維持するために重要なんだ。
パフォーマンス評価
モデルをPICCOコンパイラーに実装した後、効率を評価するためにさまざまなベンチマークを使ってパフォーマンステストを行ったよ。参加者間の通信回数を最小限に抑えることで、新しいモデルがセキュアな計算の実行時間を大幅に改善できることを観察したんだ。
結論
この論文では、Cプログラミング言語と効果的に統合されたセキュアマルチパーティ計算のための形式モデルを紹介したよ。私たちのモデルはCのすべての機能を許可しながら、セキュリティプロパティを確保しているんだ。この研究は、特定の言語ソリューションと一般的なプログラミングの間に存在するギャップを埋めるために、より一般化されたアプローチの必要性を強調しているよ。
今後の研究
今後のモデルの強化には、プライベートデータを制御された条件の下で公共のアクセスのためにマークできる明示的なデータの非機密化のサポートが含まれるかもしれないよ。この機能を受け入れるようにセマンティクスを拡張することを計画していて、セキュアなマルチパーティ計算の能力をさらに豊かにしていくつもりなんだ。
これらの分野に取り組むことで、セキュアな計算の成長する分野に貢献し、今日のデータ駆動型世界での幅広いアプリケーションに対して、よりアクセスしやすく、実用的なものにしていきたいと思っているよ。
タイトル: A Formal Model for Secure Multiparty Computation
概要: Although Secure Multiparty Computation (SMC) has seen considerable development in recent years, its use is challenging, resulting in complex code which obscures whether the security properties or correctness guarantees hold in practice. For this reason, several works have investigated the use of formal methods to provide guarantees for SMC systems. However, these approaches have been applied mostly to domain specific languages (DSL), neglecting general-purpose approaches. In this paper, we consider a formal model for an SMC system for annotated C programs. We choose C due to its popularity in the cryptographic community and being the only general-purpose language for which SMC compilers exist. Our formalization supports all key features of C -- including private-conditioned branching statements, mutable arrays (including out of bound array access), pointers to private data, etc. We use this formalization to characterize correctness and security properties of annotated C, with the latter being a form of non-interference on execution traces. We realize our formalism as an implementation in the PICCO SMC compiler and provide evaluation results on SMC programs written in C.
著者: Amy Rathore, Marina Blanton, Marco Gaboardi, Lukasz Ziarek
最終更新: 2023-05-31 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2306.00308
ソースPDF: https://arxiv.org/pdf/2306.00308
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。