KR102224998B1 - 데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 시스템 및 방법 - Google Patents

데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 시스템 및 방법 Download PDF

Info

Publication number
KR102224998B1
KR102224998B1 KR1020170062798A KR20170062798A KR102224998B1 KR 102224998 B1 KR102224998 B1 KR 102224998B1 KR 1020170062798 A KR1020170062798 A KR 1020170062798A KR 20170062798 A KR20170062798 A KR 20170062798A KR 102224998 B1 KR102224998 B1 KR 102224998B1
Authority
KR
South Korea
Prior art keywords
data
encryption
key
encrypted data
encrypted
Prior art date
Application number
KR1020170062798A
Other languages
English (en)
Other versions
KR20170142872A (ko
Inventor
라오 배니쉬리
래인 샨타누
우준 에르신
이. 브리토 알레한드로
Original Assignee
팔로 알토 리서치 센터 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 팔로 알토 리서치 센터 인코포레이티드 filed Critical 팔로 알토 리서치 센터 인코포레이티드
Publication of KR20170142872A publication Critical patent/KR20170142872A/ko
Application granted granted Critical
Publication of KR102224998B1 publication Critical patent/KR102224998B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0464Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing

Abstract

데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법이 제공된다. 암호화된 데이터는 유지된다. 데이터 질의는 공개 키 및 비밀 키와 연관된 사용자로부터 수신된다. 질의의 결과는 암호화된 데이터 중 적어도 일부를 식별함으로써 그리고 결과로서 암호화된 데이터 중 식별된 부분에 대한 평문을 더함으로써 컴퓨팅된다. 재-암호화 키는 사용자의 공개 키를 사용하여 결과에 대해 생성되고 그리고 결과는 재-암호화 키를 사용하여 재-암호화된다. 재-암호화된 결과는 그 후 사용자에 송신된다.

Description

데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 시스템 및 방법{COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR PROTECTING SENSITIVE DATA VIA DATA RE-ENCRYPTION}
본 출원은 일반적으로는 데이터 암호화에 관한 것이고, 그리고 구체적으로는 데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 시스템 및 방법에 관한 것이다.
회사는 정상적 사업 과정 동안 다량의 데이터를 수집하려는 경향이 있다. 데이터 중 적어도 일부는, 사회 보장 번호를 포함하여, 고객 식별, 의료 프로필, 및 금융 거래와 같은, 민감한 정보를 포함한다. 수집되고 나면, 회사는, 회사 정책에 의해 또는 정부 가이드라인 및 정책에 의해 요구되는 대로, 때로는 장기간의 시간 동안 데이터를 저장하여야 한다. 그렇지만, 과반수의 회사는 요구되는 상당량의 저장 공간에 기인하여 데이터를 자체 저장할 수 없고 그리하여 더 큰 회사로부터 저장 및 컴퓨팅 능력을 임차하는 것에 의존한다. 데이터를 저장하도록 더 큰 회사에 의해 사용되는 서버는 공중 및 보통은 클라우드 기반이다.
부가적으로, 비즈니스 인텔리전스 분야는 동향을 식별하고, 전략을 이끌고, 그리고 성공적 사업 실시를 지원하기 위해 분석론에 의존한다. 분석은 공통적으로는 회사에 의해 고용된 분석가에 의해 수행된다. 이들 분석가에게는, 분석 이전에 저장된 데이터를 복호화하기 위한 복호화 키를 포함하여, 중요한 툴이 맡겨져 있다. 그렇지만, 적과 같은 권한 없는 개인이 복호화 키를 획득하면, 데이터를 저장하고 있는 데이터베이스 전체로의 액세스가 승인된다. 불행하게도, 분석가의 모바일 디바이스는 보통은 강력한 침입 방지 메커니즘을 구비하고 있지 않아서, 분석가를 적에 의한 공격에 대한 약한 링크가 되게 한다.
권한 없는 개인으로부터 데이터 소유자의 민감한 정보를 보호하는 것은 데이터의 부정유용을 방지하는데 극도로 중요하다. 현재, 민감한 데이터는 서버가 데이터에 관심 있는 당사자와 우선 맞물리고 그 후 관심 있는 당사자가 데이터에 액세스하기 전에 액세스 제어 메커니즘에 의해 확립된 인증 프로토콜을 통과하기 위해 필요한 크리덴셜을 입력할 것을 요구하도록 데이터가 저장되어 있는 서버에서 액세스 제어 메커니즘을 통하여 보호될 수 있다. 불행하게도, 권한 부여된 사용자에 대한 크리덴셜의 권한 없는 액세스에 기인하여 여러 보안 위반이 최근 증가되었다.
사용자가 크리덴셜을 입력할 것을 요구하는 것에 부가하여, 저장되는 데이터는 데이터 콘텐츠로의 액세스를 방지함으로써 위반 효과를 감축하도록 부가적 보안 계층으로서 저장 이전에 암호화될 수 있다. 그렇지만, 암호화 자체는 일반적으로는 데이터 콘텐츠의 누설을 방지하기에 충분한 보안은 아니다. 예를 들면, 데이터를 암호화하기 위해, 회사는 일반적으로는 저장 이전에 데이터를 암호화하도록 공개 키를 이용한다. 후속하여, 회사와 연관된 사용자는 데이터에 액세스할 필요가 있지만, 그렇게 하기 위해, 암호화된 데이터를 복호화하도록 회사의 비밀 키(secret key)를 획득하여야 한다. 회사의 다수의 사용자가 비밀 키로의 액세스를 가능하게 하는 것은 사용자가 키를 권한 없는 사용자에게 제공할 수 있으므로 데이터를 취약한 위치에 둔다. 부가적으로, 비밀 키에는 권한 없는 사용자가 직접 액세스할 수 있어, 데이터 콘텐츠로의 액세스를 초래할 수 있다. 불행하게도, 인간은 보통은 단순한 사회 공학적 공격에 의해 쉽게 속으므로 비밀 키를 획득하는 것은 꽤 쉬울 수 있다.
그래서, 개선된 데이터 보호 및 위반 방지에 대한 접근법이 필요하다. 바람직하게는, 데이터 보호 및 위반 방지는 데이터에 액세스하도록 권한 부여된 개인을 통한 또는 데이터 자체로의 권한 없는 액세스의 효과를 감축하도록 다량의 평문 데이터에 대한 재-암호화 기법을 포함할 것이다.
보안 클라우드-컴퓨팅 아키텍처는 관용적 보안 방법에 비해 위반 기회를 감축하고 그리고 민감한 데이터의 보안을 증가시키도록 사용될 수 있다. 공개 및 비밀 암호화 키는 클라우드 기반 서버 상에 민감한 데이터를 저장하는 데이터 소유자에 대해 그리고 데이터에 액세스하도록 권한 부여된 각각의 개인에 대해 생성될 수 있다. 저장 이전에, 데이터는 데이터 소유자의 공개 키를 사용하여 암호화된다. 사용자는 암호화된 데이터에 액세스하도록 질의를 제출할 수 있고 그리고 질의의 결과는 저장된 암호화된 데이터에 기반하여 결정된다. 재-암호화 키는 요청하는 사용자에 대해 그의 공개 키를 사용하여 생성된다. 암호문 형태인 암호화된 데이터 결과는 그 후, 재-암호화 키를 사용하여, 다른 암호문 형태로 재-암호화된다. 재-암호화된 결과는 요청하는 개인에 제공되고 그 후 분석 및 추가적 사용을 위해 복호화된다. 구체적으로, 재-암호화된 암호문의 복호화는 기저 평문, 즉, 질의 결과를 드러낸다.
일 실시형태는 데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법을 제공한다. 암호화된 데이터는 유지된다. 데이터 질의는 공개 키 및 비밀 키와 연관된 사용자로부터 수신된다. 질의의 결과는 암호화된 데이터 중 적어도 일부를 식별함으로써 그리고 결과로서 암호화된 데이터 중 식별된 부분에 대한 평문을 더함으로써 컴퓨팅된다. 재-암호화 키는 사용자의 공개 키를 사용하여 결과에 대해 생성되고 그리고 결과는 재-암호화 키를 사용하여 재-암호화된다. 재-암호화된 결과는 그 후 사용자에 송신된다.
본 발명의 또 다른 실시형태는, 본 발명을 수행하도록 고려되는 최상 모드를 예시하는 것에 의해 본 발명의 실시형태가 설명되는, 이하의 상세한 설명으로부터 당업자에게는 쉽게 분명하게 될 것이다. 인식될 바와 같이, 본 발명은 다른 그리고 상이한 실시형태가 가능하고 그리고 그 수 개의 상세는 다양한 자명한 관점에서 수정이 가능하며, 전부 본 발명의 취지 및 범위로부터 벗어나지 않는다. 따라서, 도면 및 상세한 설명은 본질이 예시적인 것으로 그리고 제한적이지 않은 것으로 간주되어야 한다.
도 1은, 일 실시형태에 따라, 데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 시스템을 도시하는 블록 선도,
도 2는, 일 실시형태에 따라, 데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법을 도시하는 순서도,
도 3은, 예로서, 암호화 셋업을 수행하기 위한 프로세스를 도시하는 순서도,
도 4는, 예로서, 공개 키 및 비밀 키를 생성하기 위한 프로세스를 도시하는 순서도,
도 5는, 예로서, 도 4의 공개 키를 사용하여 데이터를 암호화하기 위한 프로세스를 도시하는 순서도,
도 6은, 예로서, 재-암호화 키를 생성하기 위한 프로세스를 도시하는 순서도,
도 7은, 예로서, 도 6의 재-암호화 키를 사용하여 암호문을 재-암호화하기 위한 프로세스를 도시하는 순서도, 및
도 8은, 예로서, 암호문을 복호화하기 위한 프로세스를 도시하는 순서도.
회사는 다량의 데이터를 수집 및 저장한다. 고용된 분석가는, 비즈니스 인텔리전스에서의 사용을 위해서와 같이, 수집된 데이터를 분석할 수 있다. 그렇지만, 분석가는 각각, 분석 이전에 암호화된 데이터를 복호화하기 위한 복호화 키와 같은, 극도로 중요한 툴을 맡고 있으므로 보통은 약한 링크라고 생각된다. 불행하게도, 분석가의 대부분은 강력한 침입 방지 메커니즘을 구비하고 있지 않고, 그리하여 공격이 흔하다. 별개로 각각의 데이터 소유자에 대한 데이터를 암호화하고 데이터 소유자에 의해 권한 부여된 특정 사용자에 대한 데이터를 재-암호화하는 것은 서버로의 권한 없는 액세스, 신뢰할 수 없는 사용자, 또는 데이터의 보안 정보에 대한 비밀 공유가 허용된 사용자에 대한 공격에 기인하는 데이터의 위반을 방지하는 것을 돕는다.
재-암호화는 암호화된 데이터베이스를 복호화하도록 사용되는 복호화 키가 더 이상 종단점에 거처하지 않는 것을 용이하게 한다. 도 1은, 일 실시형태에 따라, 데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 시스템(10)을 도시하는 블록 선도이다. 시간의 흐름에 따라, 데이터 소유자는 정상적 사업 과정 동안, 소유자와 연관된 서버(11)에 상호접속되는 로컬 데이터베이스(15) 상에 원래 저장될 수 있는, 다량의 데이터(16)를 수집할 수 있다. 데이터(16)는 문서, 메시지, 음성 녹음, 비디오 클립, 의료 기록, 금융 거래, 및 위치 데이터는 물론, 다른 유형의 데이터도 포함할 수 있다. 데이터베이스(15)는 또한 데이터 소유자에 대한 비밀 키(18) 및 공개 키(17)를 포함할 수 있다.
서버(11)는 암호화기(12), 셋업 모듈(13), 및 키 생성기(14)를 포함한다. 암호화기(12)는 데이터베이스(15) 상에 저장된 데이터(16)를 암호화하도록 데이터 소유자의 공개 키를 이용한다. 암호화되고 나면, 데이터(23)는 클라우드 기반 서버(19)와 연관된 데이터베이스(22)에 저장을 위해 송신된다. 클라우드 기반 저장소는 극도로 다량의 저장 공간을 제공하여, 데이터 소유자가 모든 데이터를 로컬 저장하는 부담을 덜어준다. 클라우드 기반 서버로부터의 암호화된 데이터(23)에 액세스하기 위해, 권한 부여된 사용자는 각각 공개 키(29) 및 비밀 키(30)와 연관되되, 공개 키는 그 사용자의 컴퓨팅 디바이스(24)와 연관된 데이터베이스(28)에 유지되어 있을 수 있다. 대안으로, 공개 키(29)는 클라우드 기반 서버의 데이터베이스에 저장될 수 있다. 사용자의 공개 키(29) 및 비밀 키(30)는, 도 3을 참조하여 아래에서 더 설명되는 바와 같이, 데이터(23)에 액세스하도록 권한 부여된 각각의 사용자에 대한 키를 생성하도록 키 생성기(14)에 의해 사용될 수 있는 파라미터를 출력하는, 셋업 모듈(13)을 통하여 소유자의 서버(11)에 의해 생성될 수 있다.
각각의 권한 부여된 사용자는 데이터에 관한 분석론을 수행하도록, 데스크톱 또는 랩톱 컴퓨터는 물론, 또한 모바일 디바이스와 같은, 컴퓨팅 디바이스(24)를 통하여 소유자의 암호화된 데이터(23)에 액세스할 수 있다. 구체적으로, 컴퓨팅 디바이스(24)는 복호화기(27) 및 질의를 생성하기 위한 질의 생성기(26)를 갖는 서버(25)와 연관된다. 질의는, 질의를 수신 및 파싱하기 위한 질의 수신기(20), 및 질의에 응답하여 암호화된 데이터(23)를 프로세싱하고 하나 이상의 암호화된 결과를 생성하는 결과 파인더(21)를 포함하는, 클라우드 기반 서버(19)에 송신된다. 질의의 결과는 결과의 기저 평문을 더함으로써 컴퓨팅된다. 그렇지만, 암호화된 결과를 사용자에 제공하기 이전에, 결과는, 키 생성기(32) 및 재-암호화기(33)를 포함하는, 프록시 재-암호화 서버(31)에 송신된다. 키 생성기(32)는, 도 6에 대해 더 상세히 아래에서 설명되는 바와 같이, 그 요청하는 사용자의 공개 키 및 데이터 소유자의 비밀 키에 기반하여 각각의 권한 부여된 사용자에 대한 재-암호화 키(35)를 생성한다. 사용자에 대한 재-암호화 키(35)는 암호문 영역에서 덧셈 준동형 연산을 지원할 수 있고 그리고 프록시 재-암호화기(31)와 연관된 데이터베이스(34)에 저장된다. 재-암호화기(33)는 데이터 소유자의 공개 키에 따라서로부터 요청하는 사용자의 공개 키로 암호화된 데이터 결과의 암호문을 재-암호화하고 그리고 재-암호화된 결과를 요청하는 사용자에 송신한다. 요청하는 사용자에 의해 수신되고 나면, 재-암호화된 데이터 결과는 복호화기(27)에 의해 요청하는 사용자의 비밀 키를 사용하여 복호화될 수 있다. 재-암호화된 암호문의 복호화는 기저 평문, 즉 질의 결과를 드러낸다.
모바일 컴퓨팅 디바이스 및 서버는 각각 여기에서 개시된 실시형태를 수행하기 위한 하나 이상의 모듈을 포함할 수 있다. 모듈은 관용적 프로그래밍 언어로 소스 코드로서 기록된 컴퓨터 프로그램 또는 프로시저로서 구현될 수 있고 그리고 객체 또는 바이트 코드로서 중앙 처리 장치에 의한 실행을 위해 제시된다. 대안으로, 모듈은 또한, 집적 회로로서, 하드웨어로 구현될 수 있고 그리고 서버 및 클라이언트의 각각은 전문 컴퓨터로서 역할할 수 있다. 소스 코드 및 객체 및 바이트 코드의 다양한 구현은, 플로피 디스크, 하드 드라이브, 디지털 비디오 디스크(DVD), 램(RAM), 롬(ROM) 및 유사한 저장 매체와 같은, 컴퓨터-판독가능한 저장 매체 상에 유지될 수 있다. 다른 유형의 모듈 및 모듈 기능은 물론, 다른 물리적 하드웨어 컴포넌트도 가능하다.
암호문을 재-암호화하는 것은, 복호화 키의 공유를 방지하고 부가적 레벨의 보안을 더함으로써, 데이터 위반을 방지하는 것은 물론, 일어나는 어느 위반의 효과도 최소화하는 것도 돕는다. 구체적으로, 재-암호화 키가 도용되면, 권한 없는 사용자가 그 키로 할 수 있는 전부는 암호문을 하나의 공개 키로부터 다른 하나로 변환하는 것이다. 환언하면, 권한 없는 사용자는 암호문을 복호화할 수 없다. 도 2는, 일 실시형태에 따라, 데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법(40)을 도시하는 순서도이다. 데이터 소유자는, 데이터 소유자 자신 및 소유자의 데이터에 액세스하도록 권한 부여된 사용자에 대한 공개 및 비밀 키를 생성(블록(42))하기 위한 파라미터를 식별하는 것을 포함하여, 셋업을 수행한다(블록(41)). 파라미터를 생성하는 것은 도 3에 대해 상세히 아래에서 더 설명되는 한편, 데이터 소유자 및 사용자에 대한 공개 및 비밀 키를 생성하는 것은 도 4를 참조하여 아래에서 더 설명된다. 셋업과 동시에 또는 후속하여, 권한 부여된 사용자 중 하나 이상에 대한 재-암호화 키는, 도 6을 참조하여 아래에서 더 설명되는 바와 같이, 그 사용자의 공개 키를 사용하여 생성될 수 있다(블록(43)).
소유자에 의해 수집된 데이터는, 도 5를 참조하여 아래에서 더 설명되는 바와 같이, 소유자의 공개 키를 사용하여 암호화되고(블록(44)) 그리고 하나 이상의 클라우드 기반 서버 상에 저장될 수 있다. 하나 이상의 권한 부여된 사용자는 데이터의 적어도 하나의 부분집합에 대한 질의를 제출(블록(45))함으로써 암호화된 데이터에 관한 분석론을 수행할 수 있다. 덧셈 준동형 알고리즘을 사용하여 그리고 암호화된 데이터에 기반하여, 질의의 결과는 질의를 충족하는 암호화된 결과의 기저 평문을 더함으로써 컴퓨팅된다(블록(46)). 요청하는 사용자에 결과를 제공하기 이전에, 암호화된 및 평문 결과를 포함하는 결과는, 도 7을 참조하여 아래에서 더 설명되는 바와 같이, 재-암호화 키를 사용하여 재-암호화된다(블록(47)). 그 후, 재-암호화된 결과는, 도 8을 참조하여 아래에서 더 설명되는 바와 같이, 요청하는 사용자에 제공되고(블록(48)) 그리고 사용자에 의한 사용을 위해 복호화될 수 있다(블록(49)).
소유자의 데이터에 액세스하도록 권한 부여된 각각의 사용자는 공개 키 및 비밀 키와 연관된다. 사용자의 키는 데이터 소유자와의 그들 공통 관계에 기반하여 관련되어야 한다. 셋업 단계는, 모든 권한 부여된 사용자의 키가 파라미터의 공통 집합에 기반하여 함께 묶이게 되도록, 키를 생성하기 위한 파라미터를 결정한다. 도 3은, 예로서, 암호화 셋업을 수행하기 위한 프로세스(50)를 도시하는 순서도이다. 셋업 동안, 각각 차수 N = p1 kp2 kp3의, 2개의 곱셈 순환군 G 및 GT을 식별하도록 이중선형 군 생성기 알고리즘이 실행된다(블록(51)). p1, p2, 및 p3의 각각은
Figure 112017048362173-pat00001
, G의 생성기, 및 이중선형 사상 e:
Figure 112017048362173-pat00002
과 함께, 이중선형 군 생성기 알고리즘을 통하여 또한 출력되는 구별되는 소수이고, 그리고 k는 N보다 작은 양의 정수이다. 그리하여, 실행되고 나면, 이중선형 군 생성기는 이하의 파라미터의 각각을 식별한다:
Figure 112017048362173-pat00003
, 여기서
Figure 112017048362173-pat00004
는 군 생성기이다.
요소의 집합 ZN = {0, 1,... N-1}이 액세스되고(블록(53)) 그리고 집합 ZN으로부터 요소의 2개의 부분집합이 랜덤 선택된다(블록(54)). 각각의 랜덤 선택된 요소는 요소의 2개의 계산된 집합을 생성하도록 지수화를 통해 프로세싱된다(블록(55)). 예컨대, 집합 ZN으로부터 요소의 2개의 부분집합 α0, α1,... αk-1 및 β0, β1,... βk-1 이 랜덤 선택되고, 그리고 다음의 등식:
Figure 112017048362173-pat00005
Figure 112017048362173-pat00006
에서 별개로 채용되어 파라미터
Figure 112017048362173-pat00007
를 생성할 수 있다.
또한, 셋업 단계 동안, 도 8을 참조하여 아래에서 더 설명되는 바와 같이, 소수 중 하나를 사용하여 암호화된 및 재-암호화된 암호문을 복호화하도록 디코딩 알고리즘과의 사용을 위해 복호화 오라클이 구축된다(블록(56)). 마지막으로, 파라미터 G, GT, N, g, e, 및 파라미터의 계산된 군
Figure 112017048362173-pat00008
은 공개 파라미터로서 출력되는 한편(블록(57)), p1, p2, 및 p3는 개인 파라미터(private parameter)로서 데이터 소유자에 의해 저장된다(블록(58)).
셋업이 수행되고 나면, 데이터 소유자 및 하나 이상의 사용자에 대한 비밀 키 및 공개 키가 생성될 수 있다. 예컨대, 새로운 종업원을 고용시, 종업원이 고용주에 의해 소유되고 클라우드 기반 서버 상에 저장된 암호화된 데이터에 액세스하도록 공개 및 비밀 키가 생성될 수 있다. 도 4는, 예로서, 공개 키 및 비밀 키를 생성하기 위한 프로세스(60)를 도시하는 순서도이다. 군 G은 공개 셋업 파라미터로부터 액세스되고 그리고 군으로부터의 2개의 요소는 랜덤 선택된다(블록(61)). 일 실시형태에서, 요소는 다른 공개 셋업 파라미터, 군 ZN으로부터의
Figure 112020049053265-pat00009
Figure 112020049053265-pat00010
를 샘플링하고, 그리고 그 후 셋업 단계로부터의 군 생성기 g.를 사용함으로써 다음과 같이 결정될 수 있다,
Figure 112020049053265-pat00011
.
부가적으로, 2개의 요소의 2개의 군은 각각 집합 ZN으로부터 랜덤 선택된다(블록(62)). 예컨대,
Figure 112020049053265-pat00012
. 공개 키는 ZN에 대한 랜덤 요소의 2개의 군 및 G로부터의 랜덤 요소를 사용하여 컴퓨팅된다(블록(63)). 구체적으로, G로부터의 및 ZN 으로부터의 랜덤 요소는
Figure 112020049053265-pat00013
를 생성하도록 컴퓨팅된다. 그 후, 공개 키는
Figure 112020049053265-pat00014
로서 출력된다(블록(65)).
그러는 동안, 비밀 키는 개인 파라미터 중 하나 및 ZN으로부터 선택된 랜덤 요소의 군 양자에 기반하여 컴퓨팅된다(블록(64)). 일 실시형태에서, p1은 개인 파라미터에 사용된다; 그렇지만, 개인 파라미터 중 다른 하나가 사용될 수 있다. 그 후, 비밀 키는
Figure 112020049053265-pat00015
로서 출력된다(블록(65)). 출력시(블록(65)), 공개 키 및 비밀 키는 데이터 소유자에 의해 유지되는 것은 물론, 또한 저장된 데이터에 액세스하도록 연관된 사용자에 제공될 수 있다. 셋업 단계로부터의 파라미터의 사용은 또한 위의 식별된 프로세스를 사용하여 데이터 소유자에 대한 공개 및 비밀 키를 생성하도록 사용될 수 있다.
데이터, 특히 민감한 데이터를 클라우드 기반 서버 상에 저장하기 이전에, 데이터 소유자는 위반을 방지하는 것은 물론, 위반이 일어나면 데이터로의 액세스를 감축하는 것도 돕도록 데이터를 암호화할 수 있다. 도 5는, 예로서, 도 4의 공개 키를 사용하여 데이터를 암호화하기 위한 프로세스(70)를 도시하는 순서도이다. 암호화될, 메시지와 같은, 데이터는 데이터 소유자의 공개 키와 수신된다(블록(71)). 각각의 메시지는 세그먼트 Mi로 분할되고(블록(72)) 그리고 각각의 세그먼트는 그 후 2개의 블록, Mi [1] 및 Mi [2]으로 분할된다(블록(73)). 일 실시형태에서, 메시지 세그먼트는 비밀 공유를 사용하여 분할된다; 그렇지만, 메시지 세그먼트를 분할하기 위한 다른 프로세스가 가능하다.
각각의 메시지에 대해, 제1 메시지 블록 Mi [1] 전부가 수집되고(블록(74)) 그리고 제2 메시지 블록 Mi [2] 전부가 수집된다(블록(77)). 후속하여, 제1 블록 집합 및 제2 블록 집합 상에 별개로 인코딩 알고리즘이 실행된다(블록(75, 78)). 각각의 블록 군에 대한 알고리즘은 동시에 또는 비동기식으로 실행될 수 있다. 인코딩 알고리즘은 입력으로서 데이터 소유자의 공개 키
Figure 112017048362173-pat00016
및 메시지를 수신한다. 일 실시형태에서, 인코딩 알고리즘은 다음과 같다:
Figure 112017048362173-pat00017
인코딩 알고리즘의 실행 동안, 2개의 요소의 2개의 군은 ZN으로부터 샘플링되고,
Figure 112020049053265-pat00018
Figure 112020049053265-pat00019
그리고 메시지를 인코딩하도록 사용된다. 구체적으로, 제1 메시지 블록의 군은 다음의 등식에 따라 암호문 C1을 생성하도록 암호화된다(블록(76)).
Figure 112017048362173-pat00020
여기서 hi는, 도 3을 참조하여 위에서 설명된 바와 같이, 셋업 단계 동안 식별된 공개 파라미터 중 일부를 표현한다. 그러는 동안, 제2 메시지 블록의 군은 다음의 등식에 따라 암호문 C2을 생성하도록 암호화된다(블록(79)).
Figure 112017048362173-pat00021
여기서 fi는, 도 3을 참조하여 위에서 설명된 바와 같이, 셋업 단계 동안 식별된 공개 파라미터 중 일부를 표현한다. 그 후, 제1 메시지 블록 C1 및 제2 메시지 블록 C2에 대한 암호문은, 후에 암호화된 메시지로서 출력되는(블록(81)), 메시지에 대한 암호문 C = (C1, C2)으로서 조합된다(블록(80)).
암호화된 데이터가 저장되고 나면, 사용자는 질의를 제출함으로써 데이터를 분석할 수 있다. 질의의 결과는, 예컨대, 클라우드 기반 서버를 통하여 식별될 수 있다. 그렇지만, 요청하는 사용자에 결과를 제공하기 이전에, 암호화된 결과는 데이터 소유자의 공개 키에 따라서로부터 사용자의 공개 키에 따라서로 재-암호화된다. 도 6은, 예로서, 재-암호화 키를 생성하기 위한 프로세스(90)를 도시하는 순서도이다. 데이터 소유자의 비밀 키
Figure 112020049053265-pat00022
및 사용자의 공개 키
Figure 112020049053265-pat00023
는 입력으로서 수신된다(블록(91)). 데이터 소유자의 비밀 키 및 사용자의 공개 키의 각각은 파싱되고(블록(92)), 그리고 2개의 요소는 집합 ZN으로부터 랜덤 선택된다(블록(93)),
Figure 112020049053265-pat00024
. 재-암호화 키 rk는 다음과 같이 2개의 부분으로 컴퓨팅된다.
Figure 112017048362173-pat00025
, 여기서:
Figure 112017048362173-pat00026
Figure 112017048362173-pat00027
구체적으로, 재-암호화 키의 제1 절반은 집합 ZN으로부터 선택된 제1 랜덤 요소 z, 데이터 소유자의 비밀 키의 제1 부분
Figure 112020049053265-pat00028
, 및 사용자의 공개 키의 제1 부분
Figure 112020049053265-pat00029
을 사용하여 컴퓨팅된다(블록(94)). 또한, 재암호화 키의 제2 절반은 집합 ZN으로부터 선택된 제2 랜덤 요소
Figure 112020049053265-pat00030
, 데이터 소유자의 비밀 키의 제2 부분
Figure 112020049053265-pat00031
, 및 사용자의 공개 키의 제2 부분
Figure 112020049053265-pat00032
을 사용하여 컴퓨팅된다(블록(95)). 계산되고 나면, 재암호화 키의 2개의 부분은 조합되고(블록(96)) 그리고 암호화된 데이터 결과를 재암호화하도록 출력된다(블록(97)).
암호화된 데이터의 암호문을 재-암호화하는 것은 사용자가, 데이터 소유자의 비밀 키보다는, 그의 비밀 키를 사용하여 데이터를 복호화할 수 있게 하고, 그리고 부가적 레벨의 보안을 제공한다. 도 7은, 예로서, 도 6의 재-암호화 키를 사용하여 암호문을 재-암호화하기 위한 프로세스(100)를 도시하는 순서도이다. 요청하는 사용자에 대한 재-암호화 키
Figure 112017048362173-pat00033
및 암호화된 데이터 결과의 암호문
Figure 112017048362173-pat00034
은 입력으로서 수신된다(블록(101)). 일 실시형태에서,
Figure 112017048362173-pat00035
, 여기서:
Figure 112017048362173-pat00036
Figure 112017048362173-pat00037
Figure 112017048362173-pat00038
그리고
Figure 112017048362173-pat00039
, 여기서:
Figure 112017048362173-pat00040
Figure 112017048362173-pat00041
Figure 112017048362173-pat00042
재-암호화 키의 제1 절반과 암호문의 제1 절반의 성분별 페어링은 재-암호화된 암호문의 제1 부분으로서 다음과 같이 컴퓨팅된다(블록(102)):
Figure 112017048362173-pat00043
Figure 112017048362173-pat00044
Figure 112017048362173-pat00045
재-암호화 키의 제2 절반과 암호문의 제2 절반의 성분-별 페어링은 재-암호화된 암호문의 제2 부분으로서 다음과 같이 컴퓨팅된다(블록(103)):
Figure 112017048362173-pat00046
Figure 112017048362173-pat00047
Figure 112017048362173-pat00048
재-암호화된 암호문의 제1 부분과 제2 부분은
Figure 112017048362173-pat00049
로서 조합되고(블록(104)) 그리고 재-암호화된 데이터로서 출력된다(블록(105)).
사용자가 재-암호화된 데이터 결과를 수신하고 나면, 사용자의 비밀 키는 재-암호화된 데이터를 복호화하도록 사용될 수 있다. 부가적으로, 데이터 소유자는 암호화된 데이터를, 필요하면, 데이터 소유자의 비밀 키를 사용하여 복호화할 수 있다. 도 8은, 예로서, 암호문을 복호화하기 위한 프로세스(110)를 도시하는 순서도이다. 암호문 및 복호화 키는 입력으로서 수신된다(블록(111)). 암호문은 데이터 소유자에 의해 암호화된 데이터와 같은 프레시 암호문
Figure 112017048362173-pat00050
이거나, 또는, 재-암호화된 암호문
Figure 112017048362173-pat00051
을 포함하는, 프레시 암호문의 합일 수 있다. 또한, 복호화 키는, 복호화될 암호문에 종속하여, 데이터 소유자의 비밀 키
Figure 112017048362173-pat00052
또는 사용자의 비밀 키를 포함할 수 있다. 사용자 또는 데이터 소유자는 암호문의 복호화 요청을 제출하고(블록(112)) 그리고 디코딩 알고리즘이 액세스된다(블록(113)). 암호문이 프레시인지 또는, 재-암호화된 암호문과 같은, 프레시 암호문의 합인지를 포함하는, 암호문 유형의 결정이 이루어진다. 일 실시형태에서, 암호문은 자동으로 분류될 수 있거나, 대안으로, 분류 유형은 개인 또는 다른 사용자에 의해 입력될 수 있다.
암호문이 프레시이면, 셋업 동안 생성된 오라클이 액세스되고(블록(114)) 그리고 프레시 암호문의 제1 부분은 오라클 및 디코딩 알고리즘을 통하여 프로세싱된다(블록(115)). 구체적으로, 프레시 암호문의 제1 부분
Figure 112017048362173-pat00053
은 다음을 컴퓨팅하도록 사용된다:
Figure 112017048362173-pat00054
, 여기서 a 및 b는 비밀 키로부터 획득된다.
도 5에 대해 위에서 제공되는 W, X, 및 Y의 값이 입력되고 나면, 등식은 다음과 같이 보인다:
Figure 112017048362173-pat00055
오라클은 인코딩 알고리즘을 통하여 질의되고 그리고
Figure 112017048362173-pat00056
은 오라클에 입력되어, 아래에서 디코딩 알고리즘을 사용하여 암호문의 제1 부분과 연관된 제1 메시지 블록 Mi [1]을 출력한다(블록(116)).
Figure 112017048362173-pat00057
,
여기서 p1은 개인 파라미터이고 그리고 hi는 공개 파라미터를 포함하며, 그 양자는 도 3에 대해 위에서 논의되어 있다. 더욱, 디코딩 알고리즘의 최소 i = 0 및 최대 k-1 파라미터는 원래 평문 값의 예상된 범위, 2^{k(w-1)}를 표현한다. 오라클의 출력은 메시지 세그먼트의 제1 블록
Figure 112017048362173-pat00058
의 평문을 포함한다.
평문의 제1 부분의 프로세싱과 동시에 또는 비동기식으로, 암호문의 제2 부분
Figure 112017048362173-pat00059
의 프로세싱(블록(117))은, 오라클 없이, 디코딩 알고리즘을 통하여 일어날 수 있다. 구체적으로, 다음과 같이, 암호문의 제2 부분을 사용하여 다음이 컴퓨팅된다:
Figure 112017048362173-pat00060
도 5에 대해 위에서 제공되는 W~, X~, 및Z~ 의 값이 입력되고 나면, 등식은 다음과 같이 보인다:
Figure 112017048362173-pat00061
후속하여, 디코딩 알고리즘은 아래에서 제공되는 바와 같이 실행된다:
Figure 112017048362173-pat00062
디코딩 알고리즘의 결과는 메시지 세그먼트의 제2 블록
Figure 112017048362173-pat00063
의 평문을 포함한다(블록(118)). 마지막으로, 메시지 세그먼트의 제1 블록과 제2 블록의 평문은 복호화된 메시지로서 조합되어(블록(119)), 시장 조사를 수행하거나 거동 동향 및 패턴을 식별하기 위해서와 같이, 프로세싱 및 분석을 위해 사용자에 출력된다(블록(120)).
암호문이, 재-암호화된 암호문과 같은, 프레시 생성된 암호문의 합이라고 결정되면, 복호화는, 디코딩 알고리즘에서의 최소 및 최대 파라미터가 원래 프레시 암호문에서의 평문 메시지의 예상된 범위 및 더해진 그러한 프레시 암호문의 총 수에 기반하여 컴퓨팅된다는 것을 제외하고는, 위에서 제공된 바와 같이 수행될 수 있다.

Claims (18)

  1. 데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 시스템으로서,
    데이터 소유자의 암호화된 데이터를 유지하기 위한 데이터베이스로서, 상기 암호화된 데이터는 상기 암호화된 데이터의 기저에 있는 평문의 덧셈을 지원하는 속성을 포함하고 상기 데이터 소유자의 공개 키를 통하여 암호화되는, 상기 데이터베이스;
    사용자로부터 질의를 수신하고 상기 사용자로부터의 상기 질의를 충족하는 상기 암호화된 데이터의 적어도 일부를 식별하기 위한 프로세서;
    중앙 처리 장치, 메모리, 상기 질의를 수신하기 위한 입력 포트, 및 출력 포트를 포함하는 서버로서, 상기 중앙 처리 장치는 상기 사용자의 공개 키를 사용하여 상기 암호화된 데이터의 식별된 부분에 대한 재-암호화 키, 상기 데이터 소유자의 비밀 키, 및 요소들의 군으로부터 선택되는 2개의 랜덤 요소들을 생성하도록 구성되는, 상기 서버; 및
    중앙 처리 장치, 메모리, 상기 데이터베이스로부터 상기 암호화된 데이터의 상기 식별된 부분 및 상기 서버로부터 상기 재-암호화 키를 수신하기 위한 입력 포트, 및 출력 포트를 포함하는 추가적 서버로서, 상기 중앙 처리 장치는:
    상기 재-암호화 키를 사용하여 상기 암호화된 데이터의 상기 식별된 부분을 재-암호화된 데이터로서 재-암호화하고;
    상기 질의에 응답하여 상기 재-암호화된 데이터를 상기 사용자에 송신하도록 구성되는, 상기 추가적 서버를 포함하는, 컴퓨터-구현 시스템.
  2. 제1항에 있어서,
    상기 사용자에 대한 공개 파라미터들을 생성하고 상기 공개 파라미터들 중 적어도 하나를 사용하여 상기 공개 키를 생성하기 위한 공개 키 생성기를 더 포함하는, 컴퓨터-구현 시스템.
  3. 제1항에 있어서,
    상기 사용자에 대한 개인 파라미터들(private parameters)을 생성하고 상기 개인 파라미터들 중 적어도 하나를 사용하여 상기 사용자에 대한 비밀 키(secret key)를 컴퓨팅하기 위한 비밀 키 생성기를 더 포함하는, 컴퓨터-구현 시스템.
  4. 제1항에 있어서,
    각각의 데이터 아이템을 세그먼트들로 분할하고, 각각의 세그먼트를 제1 블록 및 제2 블록을 포함하는 2개의 블록들로 더 분할하고, 상기 데이터 아이템에서 각각의 세그먼트로부터 상기 제1 블록을 수집하고 암호문을 생성하고, 상기 데이터 아이템에서 각각의 세그먼트로부터 상기 제2 블록을 수집하고 암호문을 생성하고, 당해 데이터 아이템의 암호화로서 상기 제1 블록 및 상기 제2 블록으로부터의 상기 암호문을 조합함으로써 상기 암호화된 데이터의 각각의 데이터 아이템을 암호화하기 위한 메시지 암호화기를 더 포함하는, 컴퓨터-구현 시스템.
  5. 제1항에 있어서,
    상기 데이터 소유자와 연관된 상기 비밀 키 및 상기 사용자의 상기 공개 키의 각각을 2개의 섹션들로 파싱하고, 상기 2개의 랜덤 요소들을 선택하고, 상기 랜덤 요소들 중 하나, 상기 비밀 키의 제 1 섹션, 및 상기 공개 키의 제 1 섹션에 기초하여 상기 재-암호화 키의 제 1 부분을 컴퓨팅하고, 다른 랜덤 요소, 상기 비밀 키의 제 2 섹션, 및 상기 공개 키의 제 2 섹션에 기초하여 상기 재-암호화 키의 제 2 부분을 컴퓨팅하고, 상기 재-암호화 키로서 상기 제 1 및 제 2 부분들을 조합함으로써 상기 재-암호화 키를 계산하기 위한 재-암호화 키 생성기를 더 포함하는, 컴퓨터-구현 시스템.
  6. 제1항에 있어서,
    상기 질의의 사용자를 식별하고 재-암호화를 위해 식별된 사용자와 연관된 상기 재-암호화 키를 액세스하기 위한 키 액세스 모듈을 더 포함하는, 컴퓨터-구현 시스템.
  7. 제1항에 있어서,
    상기 암호화된 데이터 아이템을 2개의 부분들로 분할하고, 상기 재-암호화 키로부터의 요소들 및 상기 암호화된 데이터 아이템의 상기 제 1 부분을 사용하여 제 1 재-암호화 성분을 컴퓨팅하고, 상기 재-암호화 키로부터의 요소들 및 암호화된 데이터 아이템의 상기 제 2 부분을 사용하여 제 2 재-암호화 성분을 계산하고, 재-암호화된 데이터 아이템으로서 상기 제 1 및 제 2 재-암호화 성분들을 조합함으로써 상기 암호화된 데이터의 상기 식별된 부분의 하나의 상기 암호화된 데이터 아이템에 대해 상기 재-암호화를 수행하기 위한 재-암호화 모듈을 더 포함하는, 컴퓨터-구현 시스템.
  8. 제1항에 있어서,
    상기 재-암호화된 결과들은 상기 암호화된 데이터의 암호문과는 다른 암호문을 포함하는, 컴퓨터-구현 시스템.
  9. 제8항에 있어서,
    상기 재-암호화된 암호문을 2개의 부분들로 분할하고, 오라클 및 디코딩 알고리즘을 상기 제 1 부분에 적용하고 상기 디코딩 알고리즘을 상기 제 2 부분에 적용하고, 암호화된 데이터 아이템의 상기 암호문으로서 상기 제 1 및 제 2 부분들을 조합함으로써 하나의 상기 데이터 아이템의 상기 재-암호화된 암호문을 복호화하기 위한 복호화 모듈을 더 포함하는, 컴퓨터-구현 시스템.
  10. 데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법으로서,
    데이터 소유자의 암호화된 데이터를 유지하는 단계로서, 상기 암호화된 데이터는 상기 암호화된 데이터의 기저에 있는 평문의 덧셈을 지원하는 속성을 포함하고 상기 데이터 소유자의 공개 키를 통하여 암호화되는, 상기 암호화된 데이터를 유지하는 단계;
    사용자로부터 질의를 수신하는 단계;
    상기 사용자로부터의 질의를 충족하는 상기 암호화된 데이터의 적어도 일부를 식별하는 단계;
    상기 사용자의 공개 키, 상기 데이터 소유자의 비밀 키, 및 요소들의 군으로부터 선택되는 2개의 랜덤 요소들을 사용하여 상기 암호화된 데이터의 식별된 부분에 대한 재-암호화 키를 생성하는 단계; 및
    상기 재-암호화 키를 사용하여 상기 암호화된 데이터의 식별된 부분을 재-암호화된 데이터로서 재-암호화하는 단계; 및
    상기 질의의 결과로서 상기 재-암호화된 데이터를 상기 사용자에 송신하는 단계를 포함하는, 컴퓨터-구현 방법.
  11. 제10항에 있어서,
    상기 사용자에 대한 공개 파라미터들을 생성하는 단계; 및
    상기 공개 파라미터들 중 적어도 하나를 사용하여 상기 공개 키를 생성하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  12. 제10항에 있어서,
    상기 사용자에 대한 개인 파라미터들을 생성하는 단계; 및
    상기 개인 파라미터들 중 적어도 하나를 사용하여 상기 사용자에 대한 비밀 키를 컴퓨팅하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  13. 제10항에 있어서,
    상기 암호화된 데이터의 각각의 아이템을 암호화하는 단계를 더 포함하고, 상기 암호화하는 단계는:
    각각의 데이터 아이템을 세그먼트들로 분할하는 단계;
    각각의 세그먼트를 제1 블록 및 제2 블록을 포함하는 2개의 블록들로 더 분할하는 단계;
    상기 데이터 아이템에서 각각의 세그먼트로부터 상기 제1 블록을 수집하고 암호문을 생성하는 단계;
    상기 데이터 아이템에서 각각의 세그먼트로부터 상기 제2 블록을 수집하고 암호문을 생성하는 단계; 및
    당해 데이터 아이템의 암호화로서 상기 제1 블록 및 상기 제2 블록으로부터의 상기 암호문을 조합하는 단계를 포함하는, 컴퓨터-구현 방법.
  14. 제10항에 있어서,
    상기 재-암호화 키를 계산하는 단계를 더 포함하고, 상기 재-암호화 키를 계산하는 단계는:
    상기 데이터 소유자와 연관된 상기 비밀 키 및 상기 사용자의 상기 공개 키의 각각을 2개의 섹션들로 파싱하는 단계;
    상기 2개의 랜덤 요소들을 선택하는 단계;
    상기 랜덤 요소들 중 하나, 상기 비밀 키의 제 1 섹션, 및 상기 공개 키의 제 1 섹션에 기초하여 상기 재-암호화 키의 제 1 부분을 컴퓨팅하는 단계;
    다른 랜덤 요소, 상기 비밀 키의 제 2 섹션, 및 상기 공개 키의 제 2 섹션에 기초하여 상기 재-암호화 키의 제 2 부분을 컴퓨팅하는 단계; 및
    상기 재-암호화 키로서 상기 제 1 및 제 2 부분들을 조합하는 단계를 포함하는, 컴퓨터-구현 방법.
  15. 제10항에 있어서,
    상기 사용자를 식별하는 단계; 및
    재-암호화를 위해 식별된 사용자와 연관된 상기 재-암호화 키를 액세스하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  16. 제10항에 있어서,
    상기 암호화된 데이터의 상기 식별된 부분의 하나의 상기 암호화된 데이터 아이템에 대해 상기 재-암호화를 수행하는 단계를 더 포함하고, 상기 재-암호화를 수행하는 단계는:
    상기 암호화된 데이터 아이템을 2개의 부분들로 분할하는 단계;
    상기 재-암호화 키로부터의 요소들 및 상기 암호화된 데이터 아이템의 상기 제 1 부분을 사용하여 제 1 재-암호화 성분을 컴퓨팅하는 단계;
    상기 재-암호화 키로부터의 요소들 및 상기 암호화된 데이터 아이템의 상기 제 2 부분을 사용하여 제 2 재-암호화 성분을 계산하는 단계; 및
    재-암호화된 데이터 아이템으로서 상기 제 1 및 제 2 재-암호화 성분들을 조합하는 단계를 포함하는, 컴퓨터-구현 방법.
  17. 제10항에 있어서,
    상기 재-암호화된 결과들은 상기 암호화된 데이터의 암호문과는 다른 암호문을 포함하는, 컴퓨터-구현 방법.
  18. 제17항에 있어서,
    하나의 상기 데이터의 아이템의 상기 재-암호화된 암호문을 복호화하는 단계; 및
    상기 사용자의 비밀 키를 통하여 상기 재-암호화된 데이터를 복호화하는 단계 중 하나를 더 포함하고,
    상기 재-암호화된 암호문을 복호화하는 단계는:
    상기 재-암호화된 암호문을 2개의 부분들로 분할하는 단계;
    오라클 및 디코딩 알고리즘을 상기 제 1 부분에 적용하고 상기 디코딩 알고리즘을 상기 제 2 부분에 적용하는 단계; 및
    암호화된 데이터 아이템의 상기 암호문으로서 상기 제 1 및 제 2 부분들을 조합하는 단계를 포함하는, 컴퓨터-구현 방법.
KR1020170062798A 2016-06-17 2017-05-22 데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 시스템 및 방법 KR102224998B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/185,575 2016-06-17
US15/185,575 US10277563B2 (en) 2016-06-17 2016-06-17 Computer-implemented system and method for protecting sensitive data via data re-encryption

Publications (2)

Publication Number Publication Date
KR20170142872A KR20170142872A (ko) 2017-12-28
KR102224998B1 true KR102224998B1 (ko) 2021-03-10

Family

ID=59053997

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170062798A KR102224998B1 (ko) 2016-06-17 2017-05-22 데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 시스템 및 방법

Country Status (4)

Country Link
US (1) US10277563B2 (ko)
EP (1) EP3258669B1 (ko)
JP (1) JP6884642B2 (ko)
KR (1) KR102224998B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10778657B2 (en) * 2015-12-10 2020-09-15 Nokia Technologies Oy Schemes of homomorphic re-encryption
US10505722B2 (en) * 2016-07-06 2019-12-10 Securerf Corporation Shared secret communication system with use of cloaking elements
US20180063095A1 (en) * 2016-09-01 2018-03-01 AtCipher.com Limited Data encipherment prior to recipient selection
US11374742B2 (en) * 2017-12-28 2022-06-28 Mitsubishi Electric Corporation Conversion key generation device, ciphertext conversion device, privacy-preserving information processing system, conversion key generation method, ciphertext conversion method, and computer
US11362824B2 (en) * 2018-05-25 2022-06-14 Intertrust Technologies Corporation Content management systems and methods using proxy reencryption
JP7119605B2 (ja) * 2018-06-08 2022-08-17 日本電信電話株式会社 暗号文変換システム、暗号文変換方法、及びプログラム
US11436351B1 (en) * 2019-12-18 2022-09-06 Bae Systems Information And Electronic Systems Integration Inc. Homomorphic encryption of secure data
JPWO2022269743A1 (ko) * 2021-06-22 2022-12-29
CN114125831B (zh) * 2022-01-25 2022-05-03 国网浙江省电力有限公司信息通信分公司 基于代理重加密的5g智能电网用户侧数据获取方法及系统
WO2024057538A1 (ja) * 2022-09-16 2024-03-21 日本電気株式会社 サーバ、認証システム、認証方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2924911A1 (en) 2014-03-24 2015-09-30 Fujitsu Limited Secure Pattern Matching using Somewhat Homomorphic Encryption
WO2016051591A1 (ja) 2014-10-03 2016-04-07 株式会社 東芝 再暗号化鍵生成装置、再暗号化装置、暗号化装置、復号装置及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2924911A1 (en) 2014-03-24 2015-09-30 Fujitsu Limited Secure Pattern Matching using Somewhat Homomorphic Encryption
WO2016051591A1 (ja) 2014-10-03 2016-04-07 株式会社 東芝 再暗号化鍵生成装置、再暗号化装置、暗号化装置、復号装置及びプログラム

Also Published As

Publication number Publication date
JP2017225116A (ja) 2017-12-21
KR20170142872A (ko) 2017-12-28
EP3258669A1 (en) 2017-12-20
JP6884642B2 (ja) 2021-06-09
US20170366519A1 (en) 2017-12-21
US10277563B2 (en) 2019-04-30
EP3258669B1 (en) 2020-04-15

Similar Documents

Publication Publication Date Title
KR102224998B1 (ko) 데이터 재-암호화를 통하여 민감한 데이터를 보호하기 위한 컴퓨터-구현 시스템 및 방법
Kaaniche et al. Data security and privacy preservation in cloud storage environments based on cryptographic mechanisms
KR102055116B1 (ko) 데이터 보안 서비스
Gupta et al. Secure data storage and sharing techniques for data protection in cloud environments: A systematic review, analysis, and future directions
Hassan et al. The rise of cloud computing: data protection, privacy, and open research challenges—a systematic literature review (SLR)
Gupta et al. An iot-centric data protection method for preserving security and privacy in cloud
Gupta et al. A confidentiality preserving data leaker detection model for secure sharing of cloud data using integrated techniques
US11163893B2 (en) Methods and systems for a redundantly secure data store using independent networks
Bahrami et al. CloudPDB: A light-weight data privacy schema for cloud-based databases
Gajmal et al. Blockchain-based access control and data sharing mechanism in cloud decentralized storage system
Suthar et al. EncryScation: A novel framework for cloud iaas, daas security using encryption and obfuscation techniques
Arulananth et al. Multi party secure data access management in cloud using user centric block chain data encryption
Suresha et al. Enhancing data protection in cloud computing using key derivation based on cryptographic technique
CN110445756B (zh) 云存储中可搜索加密审计日志的实现方法
Mini et al. A comprehensive cloud security model with enhanced key management, access control and data anonymization features
Maragathavalli et al. Cloud data security model using modified decoy technique in fog computing for E-healthcare
Devassy Research Project Questions
Narwal et al. Secured secret sharing and reconstruction algorithm for organizations
Kumari et al. A Review on Challenges of Security for Secure Data Storage in Cloud
Hamdi et al. A security novel for a networked database
Amalarethinam et al. GLObfus Mechanism to Protect Public Cloud Storage
Ahmed et al. Access Control and Encryption Techniques during Big Data Accessing Stage
Prakash Security Process in Hadoop Using Diverse Approach
Vishnupriyan et al. A Conjunctional Approach for Enhanced and Extended Security in Big data Environment
Song Investigating Data Encryption Technology's Use to Improve Security for Computer Network Communication

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant