PROgramming Computation on EncryptEd Data

Cloud computing provides computing capabilities as a service rather than a product. Advantages to this include reduced costs and maintenance, and increased flexibility, availability and scalability. Cloud computing, however, also presents some potentially significant security issues. In particular, vulnerabilities could include compromise of data security and loss of key information. Any computer or web-friendly device connected to the Internet could gain unauthorized access to pools of computing power, applications, or files – compromising information security in cloud-computing environments.

DARPA’s Programming Computation on Encrypted Data (PROCEED) program is a research effort that seeks to develop methods that allow computing with encrypted data without first decrypting it, making it more difficult for malware programmers to write viruses.

One strategy, fully homomorphic encryption (FHE) seeks to address this issue by requiring a client to encrypt data before sending it to the cloud. This client would then provide the cloud with executable code to allow it to work on that data without decrypting it. Results are returned to the client still encrypted. Since only the client controls the decryption key, no one else is able to decrypt either data or results, ensuring the security of that information. Research has shown that while computation on encrypted data is theoretically possible, that computation slows by nearly 10 orders of magnitude, making it infeasible. A related research area is secure multiparty computation (SMC), in which multiple entities can jointly perform computations while maintaining the privacy of each entity’s data. As with FHE, SMC protocols incur significant overhead, typically at least two orders of magnitude.

The PROCEED program seeks to make computation on encrypted data practical. It plans to support research in mathematical foundations of FHE, secure multiparty computation, optimized hardware and software implementation, and programming languages, algorithms and data types. If successful, PROCEED could fundamentally change how computations are made in untrusted environments. Potential implications for security of cloud-computing architectures are significant.

클라우드 컴퓨팅은 컴퓨터 자산을 물질형태가 아닌 서비스형태로 제공한다. 이 방식은 시스템의 유지보수비용은 적게 들면서 유연성, 가용성, 확장성이 증가한다는 장점이 있다. 하지만 클라우드 컴퓨팅은 잠재적인 보안위험을 가지고 있다. 특히 데이터의 보안과 키 정보의 유실은 클라우드의 주요 취약점이다. 인터넷 클라우드에 연결된 컴퓨터들과 웸디바이스들은 항상 클라우드 시스템에 권한 없이도 접근할 수 있는 가능성을 가지고 있기 때문이다.

PROCEED 프로그램은 암호화된 데이터를 복호화 없이도 연산할 수 있도록 만들어 공격자들이 바이러스를 쉽게 만들수 없도록 하는 연구를 진행한다.

이를 위해 우리는 완전동형암호를 사용해 클라이언트가 클라우드에 업로드 하기 전에 데이터를 암호화하도록 한다. 이 데이터는 클라우드에서 복호화 없이도 연산될 수 있으며, 연산 결과는 암호화된 채로 클라이언트에게 반환된다. 복호화키는 클라이언트만이 가지고 있기 때문에 다른 누구도 데이터나 결과값을 복호화할 수 없으며 이는 안전성을 보장한다는 의미이다. 그러나 암호화된 데이터 상에서의 연산이 이론상으로는 가능하지만 보통 연산보다 10배정도 느리고 비현실적으로 작동한다. 이와 연관된 연구로는 여러 엔티티(entity)가 연산을 각각 진행하는 다자간계산(secure multiparty computation)이 있다. 하지만 이도 동형암호와 같이 오버헤드를 발생시키며, 속도도 두배정도 느리다.

PROCEED는 암호화된 데이터상에서의 연산을 실용적으로 하는 방법을 연구한다. 연구는 완전동형암호, 다자간계산, 최적화된 하드웨어의 수학적 기초와 함께 소프트웨어 구현, 프로그래밍 언어, 알고리즘, 자료형 등을 기반으로 진행될 것이다. 만약 성공한다면 PROCEED는 신뢰할 수 없는 환경에서의 데이터처리 방식을 근본적으로 바꿀 수 있을 것이다. 클라우드 컴퓨팅 구조에서의 잠재적인 보안문제는 매우 중요하다.