KR101467130B1 - 검색 가능 암호 처리 시스템 - Google Patents

검색 가능 암호 처리 시스템 Download PDF

Info

Publication number
KR101467130B1
KR101467130B1 KR1020137007399A KR20137007399A KR101467130B1 KR 101467130 B1 KR101467130 B1 KR 101467130B1 KR 1020137007399 A KR1020137007399 A KR 1020137007399A KR 20137007399 A KR20137007399 A KR 20137007399A KR 101467130 B1 KR101467130 B1 KR 101467130B1
Authority
KR
South Korea
Prior art keywords
data
unit
registration
client
search
Prior art date
Application number
KR1020137007399A
Other languages
English (en)
Other versions
KR20130056314A (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 KR20130056314A publication Critical patent/KR20130056314A/ko
Application granted granted Critical
Publication of KR101467130B1 publication Critical patent/KR101467130B1/ko

Links

Images

Classifications

    • 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/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • 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
    • 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/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

현실적인 성능을 갖는 검색 가능 암호 방식에서는 서버에 예탁한 데이터를 검색할 때마다, 검색 결과의 출현 빈도의 누설이나, 검색 결과에 해당하는 예탁 데이터의 안전성의 저하를 일으키고 있어, 위험한 상황에 있다. 검색 가능 암호 처리 시스템은, 데이터를 맡아 두는 DB 서버와, DB 서버에 데이터를 예탁하는 등록 클라이언트와, DB 서버에 데이터를 검색시키는 검색 클라이언트가 네트워크 경유로 연계하여, 등록 클라이언트는, 해시값과 준동형 함수를 사용한 마스크에 의한 확률적 암호화 방식을 사용하여, 암호화한 데이터를 서버에 예탁하고, 검색 클라이언트는, 검색 쿼리의 암호화에 준동형 함수를 사용한 마스크에 의한 확률적 암호화를 사용하여, DB 서버에 마스크를 해제시키지 않고, 또한, DB 서버에 검색에 해당하는 데이터의 출현 빈도가 누설하지 않도록, 검색 쿼리와 해당하지 않는 데이터를 검색 결과로서 출력시킨다.

Description

검색 가능 암호 처리 시스템{SEARCHABLE ENCRYPTION PROCESSING SYSTEM}
본 발명은, 서버/클라이언트 모델에 있어서, 서버가, 클라이언트의 요구에 따라, 암호화 데이터를 복호하지 않고, 예탁된 암호화 데이터를 검색하는, 검색 처리 시스템에 관한 것이다.
정보 시스템의 개발·운용 관리비의 효율화를 목적으로, 최근 정보 시스템을 자조직이 유지하는 것이 아니고, 타조직이 제공하는 정보 시스템을 이용하는, 클라우드라고 불리는 운용 관리 형태가 각광을 받고 있다. 한편, 클라우드에 있어서는, 정보 시스템을 관리하는 조직이, 정보 시스템을 이용하는 조직과는 상이하기 때문에, 정보 누설 등을 방지하는 방책이나, 사고 발생 후의 원인 구명, 재발 방지책 등이 자조직만으로는 세우기 어렵다. 그로 인해, 사전에, 데이터의 부정 유출의 예방책으로서, 암호 기술을 활용하여, 데이터의 기밀성을 확보할 필요가 있다.
서버/클라이언트 모델에 있어서, 클라이언트가, 서버에 데이터를 예탁하면서, 서버에 대하여, 예탁한 데이터의 정보 누설을 방지하는 기술로서, 암호 기술을 이용한 방식이 알려져 있다. 예를 들어, 비특허문헌 1이나 비특허문헌 2에는, 클라이언트의 요구에 따라, 암호화 데이터를 복호하지 않고, 예탁된 암호화 데이터를 검색하는, 검색 처리 방식이 기재되어 있다. 이 검색 처리 방식은, 평문과 암호문이 일대일의 단순한 대응 관계를 갖는 결정적 암호화 방식보다도 안전한, 평문과 암호문이 일대m의 복잡한 대응 관계를 갖는 확률적 암호화 방식을 채용하고 있어, 서버 관리자에 대한 정보 누설을 방지하면서, 또한 서버에 예탁한 데이터를 안전하게 검색하기 위한 기술이 개시되어 있다.
Dawn Xiaodong Song, David Wagner, Arian Perrig. "Practical Techniques for Searches on Encrypted Data". In Proceedings of the 2000 IEEE Symposium on Security and Privacy, pages 44-55(2000). Zhiqiang Yang, Sheng Zhong, Rebecca N. Wright. "Privacy-Preserving Queries on Encrypted Data". In Proceedings of the 11th European Symposium on Research in Computer Security(Esorics), Volume 4189 of Lecture Notes in Computer Science, pages 476-495(2006).
그러나, 비특허문헌 1, 비특허문헌 2에 기재된 기술에서는, 서버에 예탁하는 확률적 암호화에 의해 암호화한 데이터를 복호화하기 위하여 필요한, 운용 관리가 복잡하고, 클라이언트·서버 모두 복잡하다. 또한, 의사 난수에 의한 확률적 암호화는, 클라이언트가 검색을 할 때까지는 유효하지만, 검색 후는 검색에 해당한 암호문의 의사 난수의 마스크가 해제되어 버려, 암호문의 안전성이, 확률적 암호화로부터, 결정적 암호화로 저하되어 버린다. 게다가, 클라이언트는, 검색 시의 요구(검색 쿼리)의 암호화에는, 안전성이 낮은 결정적 암호화 방식을 사용하고 있기 때문에, 빈도 분석 등의 부정 공격에 대해서도 취약하다.
상기 과제를 해결하기 위해, 검색 가능 암호 처리 시스템은, 데이터를 맡아 두는 DB 서버와, DB 서버에 데이터를 예탁하는 등록 클라이언트와, DB 서버에 데이터를 검색시키는 검색 클라이언트가 네트워크 경유로 연계하여, 등록 클라이언트는, 해시값과 준동형 함수의 출력값에 의한 마스크를 사용한 확률적 암호화 방식에 의해, 암호화한 데이터를, 안전하게 서버에 예탁하고, 검색 클라이언트는, 검색 쿼리의 암호화에, 복수의 상이한 입력값으로부터 동일한 값을 출력하는 준동형 함수를 사용한 마스크에 의한 확률적 암호화를 사용하여, DB 서버에 마스크를 해제시키지 않고, 또한, DB 서버에 검색에 해당하는 데이터의 출현 빈도가 누설되지 않도록, 검색 쿼리와 해당하지 않는 데이터를 검색 결과로서 출력시켜, 검색 클라이언트는, 검색 결과를 입수 후, 재암호화를 행하여, DB 서버에 데이터를 재예탁한다.
클라이언트가 DB 서버를 이용한 검색 후에도, 검색에 해당한 데이터가 확률적 암호로 암호화되어 있어, 안전성이 높다. 또한, 복잡한 운용 관리를 클라이언트에 강요하지 않고, 암호화된 데이터를 효율적으로 복호화할 수 있다.
도 1은 검색 가능 암호 처리 시스템의 개략을 예시하는 도면이다.
도 2는 등록 클라이언트의 기능의 개략을 예시하는 도면이다.
도 3은 검색 클라이언트의 기능의 개략을 예시하는 도면이다.
도 4는 DB 서버의 기능의 개략을 예시하는 도면이다.
도 5는 컴퓨터의 개략 구성을 예시하는 도면이다.
도 6은 등록 클라이언트의 출력부의 표시 내용을 예시하는 도면이다.
도 7a는 등록 클라이언트가 작성하는 연결 데이터의 데이터 구성을 예시하는 블록도이다.
도 7b는 등록 클라이언트가 작성하는 연결 데이터의 데이터 구성을 예시하는 블록도이다.
도 7c는 등록 클라이언트가 작성하는 은닉 등록 데이터의 데이터 구성을 예시하는 블록도이다.
도 8은 등록 클라이언트가 은닉 등록 데이터를 DB 서버에 등록하는 처리를 예시하는 시퀀스도이다.
도 9a는 DB 서버의 데이터베이스 기억부에 기억되는, 데이터베이스의 관리 상태를 예시하는 도면이다.
도 9b는 DB 서버의 데이터베이스 기억부에 기억되는, 데이터베이스의 검색 수순을 예시하는 도면이다.
도 10은 검색 클라이언트의 출력부의 표시 내용을 예시하는 도면이다.
도 11a는 검색 클라이언트가 작성하는 연결 데이터의 데이터 구성을 예시하는 블록도이다.
도 11b는 검색 클라이언트가 작성하는 연결 데이터의 데이터 구성을 예시하는 블록도이다.
도 11c는 검색 클라이언트가 작성하는 연결 데이터의 데이터 구성을 예시하는 블록도이다.
도 12는 검색 클라이언트가, 은닉 검색 쿼리를 사용하여, DB 서버 내의 데이터베이스를 검색하는 처리를 예시하는 시퀀스도이다.
도 13a는 DB 서버가 통신부로부터 수신한 은닉 검색 쿼리를 복호화한, 연결 데이터의 데이터 구성을 예시하는 블록도이다.
도 13b는 DB 서버가, 데이터베이스 기억부에 기억한, 은닉 등록 데이터의 데이터 구성을 예시하는 블록도이다.
도 13c는 DB 서버가 작성하는 연결 데이터의 데이터 구성을 예시하는 블록도이다.
도 13d는 DB 서버가 작성하는 연결 데이터의 데이터 구성을 예시하는 블록도이다.
도 14a는 검색 클라이언트가 통신부로부터 수신한 은닉 등록 데이터의 데이터 구성을 예시하는 블록도이다.
도 14b는 검색 클라이언트가 작성하는 데이터 CR의 데이터 구성을 예시하는 블록도이다.
도 14c는 DB 서버가 작성하는 연결 데이터의 데이터 구성을 예시하는 블록도이다.
이하, 본 발명의 실시 형태를 도면에 기초하여 상세하게 설명한다.
도 1은 본 실시 형태의 검색 처리 시스템의 개략도이다. 도시한 바와 같이, 검색 처리 시스템은, 등록 클라이언트(100)(Registration Client)와, 검색 클라이언트(200)(Search Client)와, DB 서버(300)(Data Base Server)를 구비하고, 등록 클라이언트(100)와 DB 서버(300), 검색 클라이언트(200)와 DB 서버(300)는, 네트워크(400)를 통하여 서로 정보를 송수신할 수 있도록 구성되어 있다.
여기서, 본 실시 형태에 있어서의 등록 클라이언트(100)는, 은닉화된 데이터를 DB 서버(300)에 송신하는 데이터 등록용 송수신 장치로서 기능하고, 검색 클라이언트(200)는, 은닉화된 검색 쿼리를 DB 서버(300)에 송신하고, 검색 결과를 수신하는, 검색용 송수신 장치로서 기능하고, DB 서버(300)는, 은닉화된 데이터를 데이터베이스에 보관하고, 또한 데이터베이스 내의 데이터를 검색하는 DB 관리용 송수신 장치로서 기능한다.
도 2는 등록 클라이언트(100)의 기능 개략도이다. 도시한 바와 같이, 등록 클라이언트(100)는, 제어부(110)와, 기억부(120)와, 입력부(101)와, 출력부(102)와, 통신부(103)를 구비한다.
기억부(120)는, 등록 데이터 기억부(130)와, 비밀 키 기억부(150)와, 파라미터 기억부(160)와, 일시 정보 기억부(180)를 구비한다.
등록 데이터 기억부(130)에는, DB 서버(300)에 송신하는 데이터인, 송신문을 특정하는 정보가 기억된다. 여기서, 본 실시 형태에 있어서는, 입력부(101)를 통하여, 접수한 평문 등록 데이터(131)를 특정하는 정보와, DB 서버(300)에 등록하는, 은닉 등록 데이터(132)를 정하는 정보와, 평문 등록 데이터(131)와 은닉 등록 데이터(132)의 속성(133)을 특정하는 정보가 기억된다.
비밀 키 기억부(150)에는, 안전성의 관점에서 등록 클라이언트(100)가 비밀스럽게 관리해야 할, 비밀 키(151)를 특정하는 정보가 기억된다. 여기서, 본 실시 형태에 있어서는, 암호화부(112)에 입력하는 비밀 키(151)와, 의사 난수 생성부(114)에 입력하는 비밀 키(151)와, 압축 함수부(115)에 입력하는 비밀 키(151)를 특정하는 정보가 기억된다.
파라미터 기억부(160)에는, 데이터의 은닉화에 사용하는, 파라미터를 특정하는 정보가 기억된다. 여기서, 본 실시 형태에 있어서는, 준동형 함수부(116)에 입력하는 함수 파라미터(161)와, 기본 연산부(117)에 입력하는 검사 파라미터(162)를 특정하는 정보가 기억된다. 또한, 안전성의 관점에서, 함수 파라미터(161)는, 등록 클라이언트(100)가 비밀스럽게 관리해야 할 정보이다.
일시 정보 기억부(180)에는, 제어부(110)에서의 처리에 의해 필요해지는 정보가 기억된다.
제어부(110)는, 전체 처리부(111)와, 암호화부(112)와, 의사 난수 생성부(114)와, 압축 함수부(115)와, 준동형 함수부(116)와, 기본 연산부(117)를 구비한다.
전체 처리부(111)는, 등록 클라이언트(100)에 있어서의 모든 처리를 제어한다.
예를 들어, 본 실시 형태에 있어서, 전체 처리부(111)는, 입력부(101)를 통하여 입력을 접수한 정보를, 등록 데이터 기억부(130)에 평문 등록 데이터(131)로서 기억하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(111)는, 평문 등록 데이터(131)를 출력부(102)에 표시하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(111)는, 등록 데이터 기억부(130)에 기억한 평문 등록 데이터(131)를 읽어들여, 각각, 암호화부(112)와, 의사 난수 생성부(114)와, 압축 함수부(115)와, 준동형 함수부(116)와, 기본 연산부(117)에 입력하고, 출력된 데이터를, 등록 데이터 기억부(130)에 은닉 등록 데이터(132)로서 기억하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(111)는, 속성(133)과 은닉 등록 데이터(132)를, 통신부(103)를 통하여 DB 서버(300)에 송신하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(111)는, DB 서버(300)로부터 통신부(103)를 통하여 수신한 속성(133)과 은닉 등록 데이터(132)를, 일시 정보 기억부(180)에 기억하는 처리와 출력부(102)에 표시하는 처리를 행한다.
암호화부(112)는, 입력된 데이터를 암호화한 데이터를 출력하는 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 전체 처리부(111)로부터 데이터와 비밀 키(151)가 입력되고, 비밀 키(151)를 사용하여, 암호화한 데이터를 출력하는 처리를 행한다.
예를 들어, 표준적인 암호화 알고리즘의 실장에 의해, 암호화부(112)는 실현된다.
의사 난수 생성부(114)는, 의사 난수를 출력하는 처리를 행한다.
예를 들어, 의사 난수 생성부(114)는, 온도, 시간, 전력량 등의 물리 현상으로부터 난수를 출력한다.
본 실시 형태에 있어서는, 의사 난수 생성부(114)는, 전체 처리부(111)로부터 입력된 비밀 키(151)를 사용하여, 의사 난수를 출력한다. 또한, 비밀 키(151)의 데이터값은 새로운 데이터값으로 갱신되고, 다시, 전체 처리부(111)에 의해 비밀 키 기억부(150)에 기억된다.
예를 들어, 표준적인 의사 난수 생성 알고리즘의 실장에 의해, 의사 난수 생성부(114)는 실현된다.
압축 함수부(115)는, 입력된 데이터를 압축한 데이터를 출력하는 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 전체 처리부(111)로부터 입력된 데이터를 고정 길이(h 비트)의 다른 데이터로 변환하여, 출력하는 처리를 행한다.
예를 들어, 표준적인 암호 해시 함수 알고리즘의 실장에 의해, 임의 길이의 입력 데이터를 고정 길이의 데이터로 변환하는 압축 함수부(115)를 실현할 수 있다.
준동형 함수부(116)는, 입력된 데이터에 대하여, 함수 계산의 출력 결과를 데이터로서 출력하는 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 전체 처리부(111)로부터 입력된 데이터를, 준동형의 성질을 갖는 함수의 입력값으로 간주하고, 전체 처리부(111)로부터 입력된 함수 파라미터(161)를 사용하여, 함수 계산의 출력값을 바이너리 열로 표현한 고정 길이(f 비트)의 데이터로 변환하는 처리를 행한다.
단, 준동형 함수란, 함수 F와, 입력 변수 x, 입력 변수 y에 대하여,
Figure 112013025110029-pct00001
이 성립되는 함수를 가리킨다. 단, ·과 ?는, 연산 기호를 나타내고, 가산용 연산 기호 +, 승산용 연산 기호 *, 비트마다의 배타적 논리합인 XOR(eXclusive OR) 연산용 연산 기호 xor 등이 포함된다.
본 실시 형태에서는, ·과 ?에 XOR 연산 기호 xor이 포함되는 경우, 즉 수학식 2가 성립되는 경우를 나타낸다.
Figure 112013025110029-pct00002
단, 준동형 함수가 수학식 2 이외의 연산 기호에 의해 성립될 때에도, 본 실시 형태는 마찬가지로 실시할 수 있다.
또한, 준동형 함수를 실현하는 알고리즘의 실장에 의해, 준동형 함수부(116)는 실현된다.
기본 연산부(117)는, 가산, 감산, 비교산 등의 기본적인 산술 연산에 관한 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 기본 연산부(117)는, 전체 처리부(111)로부터 입력된 2개의 데이터의 비트마다의 배타적 논리합인 XOR 연산이나, 비교 연산의 등호 성립 또는 불성립의 검증 결과를, 데이터로서 출력하는 처리를 행한다.
이상에 기재한 등록 클라이언트(100)는, 예를 들어 도 5(컴퓨터의 개략도)에 도시한 바와 같은, CPU(Central Processing Unit)(501)와, 메모리(502)와, HDD(Hard Disk Drive) 등의 외부 기억 장치(503)와, CD(Compact Disk)나 DVD(Digital Versatile Disk) 등의 가반성을 갖는 기억 매체(508)에 대하여 정보를 판독·기입하는 판독·기입 장치(507)와, 키보드나 마우스 등의 입력 장치(506)와, 디스플레이 등의 출력 장치(505)와, 통신 네트워크에 접속하기 위한 NIC(Network Interface Card) 등의 통신 장치(504)와, 이들을 연결하는 시스템 버스 등의 내부 통신선(시스템 버스라고 함)(509)을 구비한 일반적인 컴퓨터(500)로 실현할 수 있다.
예를 들어, 기억부(120)는, CPU(501)가 메모리(502) 또는 외부 기억 장치(503)를 이용함으로써 실현 가능하고, 제어부(110)와 제어부(110)에 포함되는 각 처리부는, 외부 기억 장치(503)에 기억되어 있는 소정의 프로그램을 메모리(502)에 로드하여 CPU(501)로 실행함으로써 실현 가능하고, 입력부(101)는, CPU(501)가 입력 장치(506)를 이용함으로써 실현 가능하고, 출력부(102)는, CPU(501)가 출력 장치(505)를 이용함으로써 실현 가능하고, 통신부(103)는, CPU(501)가 통신 장치(504)를 이용함으로써 실현 가능하다.
이 소정의 프로그램은, 판독·기입 장치(507)를 통하여 기억 매체(508)로부터, 혹은, 통신 장치(504)를 통하여 네트워크로부터, 외부 기억 장치(503)에 기억(다운로드)되고, 그것으로부터, 메모리(502) 상에 로드되어, CPU(501)에 의해 실행되도록 해도 좋다. 또한, 판독·기입 장치(507)를 통하여, 기억 매체(508)로부터, 혹은 통신 장치(504)를 통하여 네트워크로부터, 메모리(502) 상에 직접 로드되어, CPU(501)에 의해 실행되도록 해도 좋다.
도 3은 검색 클라이언트(200)의 기능 개략도이다. 도시한 바와 같이, 검색 클라이언트(200)는, 제어부(210)와, 기억부(220)와, 입력부(201)와, 출력부(202)와, 통신부(203)를 구비한다.
기억부(220)는, 검색 쿼리 기억부(230)와, 비밀 키 기억부(250)와, 파라미터 기억부(260)와, 수신 데이터 기억부(270)와, 일시 정보 기억부(280)를 구비한다.
검색 쿼리 기억부(230)에는, DB 서버(300)에 송신하는 데이터인, 송신문을 특정하는 정보가 기억된다. 여기서, 본 실시 형태에 있어서는, 검색 클라이언트(200)가, 입력부(201)를 통하여 접수한 평문 검색 쿼리(231)를 특정하는 정보와, DB 서버(300)에 송신하는 은닉 검색 쿼리(232)와, 평문 검색 쿼리(231)와 은닉 검색 쿼리(232)의 속성(233)을 특정하는 정보가 기억된다.
비밀 키 기억부(250)에는, 안전성의 관점에서 검색 클라이언트(200)가 비밀스럽게 관리해야 할, 비밀 키(251)를 특정하는 정보가 기억된다. 여기서, 본 실시 형태에 있어서는, 암호화부(212)에 입력하는 비밀 키(251)와, 복호화부(213)에 입력하는 비밀 키(251)와, 의사 난수 생성부(214)에 입력하는 비밀 키(251)와, 압축 함수부(215)에 입력하는 비밀 키(251)를 특정하는 정보가 기억된다.
파라미터 기억부(260)에는, 데이터의 은닉화와 은닉화 해제에 사용하는 파라미터를 특정하는 정보가 기억된다. 여기서, 본 실시 형태에 있어서는, 준동형 함수부(216)에 입력하는 함수 파라미터(261)를 특정하는 정보와, 기본 연산부(217)에 입력하는 검사 파라미터(262)를 특정하는 정보가 기억된다. 또한, 안전성의 관점에서, 함수 파라미터(261)는, 검색 클라이언트(200)가 비밀스럽게 관리해야 할 정보이다.
수신 데이터 기억부(270)에는, 통신부(203)를 통하여 수신한 데이터를 특정하는 정보가 기억된다. 여기서, 본 실시 형태에 있어서는, 수신 데이터 기억부(270)에는, 통신부(203)를 통하여 DB 서버(300)로부터 수신한 데이터를 특정하는 정보가, 은닉 등록 데이터(271)로서 기억된다. 또한, 은닉 등록 데이터(271)로부터, 은닉화를 해제한 데이터를, 평문 등록 데이터(272)로서 수신 데이터 기억부(270)에 기억하는 처리를 행한다.
일시 정보 기억부(280)에는, 제어부(210)에서의 처리에 의해 필요해지는 정보가 기억된다.
제어부(210)는, 전체 처리부(211)와, 암호화부(212)와, 복호화부(213)와, 의사 난수 생성부(214)와, 압축 함수부(215)와, 준동형 함수부(216)와, 기본 연산부(217)를 구비한다.
전체 처리부(211)는, 검색 클라이언트(200)에 있어서의 모든 처리를 제어한다.
예를 들어, 본 실시 형태에 있어서, 전체 처리부(211)는, 입력부(201)를 통하여 입력을 접수한 정보를, 검색 쿼리 기억부(230)에 평문 검색 쿼리(231)로서 기억하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(211)는, 평문 검색 쿼리(231)를 출력부(202)에 표시하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(211)는, 검색 쿼리 기억부(230)에 기억한 평문 검색 쿼리(231)를 읽어들여, 각각, 암호화부(212)와, 의사 난수 생성부(214)와, 압축 함수부(215)와, 준동형 함수부(216)와, 기본 연산부(217)에 입력하고, 출력된 데이터를 은닉 검색 쿼리(232)로서 검색 쿼리 기억부(230)에 기억하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(211)는, 통신부(203)를 통하여, 속성(233)과 은닉 검색 쿼리(232)를 DB 서버(300)에 송신하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(211)는, 통신부(203)를 통하여, 은닉 등록 데이터(271)를 DB 서버(300)로부터 수신하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(211)는, 통신부(203)를 통하여, 수신한 은닉 등록 데이터(271)를 수신 데이터 기억부(270)에 은닉 등록 데이터(271)로서 기억하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(211)는, 수신 데이터 기억부(270)에 기억한 은닉 등록 데이터(271)를 읽어들여, 각각, 복호화부(213)와, 압축 함수부(215)와, 준동형 함수부(216)와, 기본 연산부(217)에 입력하고, 출력된 데이터를 평문 등록 데이터(272)로서 수신 데이터 기억부(270)에 기억하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(211)는, 평문 등록 데이터(272)를 출력부(202)에 표시하는 처리를 행한다.
또한, 전체 처리부(211)는, DB 서버(300)로부터, 통신부(203)를 통하여 수신한 데이터를, 일시 정보 기억부(280)에 기억하는 처리와, 출력부(202)에 표시하는 처리를 행한다.
암호화부(212)는, 입력된 데이터를 암호화한 데이터를 출력하는 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 전체 처리부(211)로부터 데이터와 비밀 키(251)가 입력되고, 비밀 키(251)를 사용하여, 암호화한 데이터를 출력하는 처리를 행한다.
복호화부(213)는, 입력된 데이터를 복호화한 데이터를 출력하는 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 전체 처리부(211)로부터 데이터와 비밀 키(251)가 입력되고, 비밀 키(251)를 사용하여, 복호화한 데이터를 출력하는 처리를 행한다.
의사 난수 생성부(114)는, 의사 난수를 출력하는 처리를 행한다.
예를 들어, 의사 난수 생성부(214)는, 온도, 시간, 전력량 등의 물리 현상으로부터 난수를 출력한다.
본 실시 형태에 있어서는, 의사 난수 생성부(214)는, 전체 처리부(211)로부터 입력된 비밀 키(251)를 사용하여, 의사 난수를 출력한다. 또한, 비밀 키(251)의 데이터값은 새로운 데이터값으로 갱신되고, 다시, 전체 처리부(211)에 의해 비밀 키 기억부(250)에 기억된다.
예를 들어, 본 실시 형태에 있어서는, 전체 처리부(211)로부터 입력된 비밀 키(251)를 사용하여, 의사 난수를 출력하는 처리를 행한다.
압축 함수부(215)는, 입력된 데이터를 압축한 데이터를 출력하는 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 전체 처리부(211)로부터 입력된 데이터를 고정 길이(h 비트)의 다른 데이터로 변환하여, 출력하는 처리를 행한다.
준동형 함수부(216)는, 입력된 데이터에 대하여, 함수 계산의 출력 결과를 데이터로서 출력하는 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 전체 처리부(211)로부터 입력된 데이터를 준동형의 성질을 갖는 함수의 입력값으로 간주하고, 전체 처리부(211)로부터 입력된 함수 파라미터(261)를 사용하여, 함수 계산의 출력값을 바이너리 열로 표현한 고정 길이(f 비트)의 데이터로 변환하는 처리를 행한다.
단, 준동형 함수는, 함수 F와, 입력 변수 x, 입력 변수 y에 대하여, 수학식 2가 성립되는 경우를 나타내지만, 비트마다의 배타적 논리합인 XOR 연산 이외의 연산 기호로 준동형성이 성립될 때도, 본 실시 형태는 마찬가지로 실시할 수 있다.
기본 연산부(217)는, 가산, 감산, 비교산 등의 기본적인 산술 연산에 관한 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 기본 연산부(217)는, 전체 처리부(211)로부터 입력된 2개의 데이터의 바이너리값(2진수)의 감산 결과를, 데이터로서 출력하는 처리를 행한다.
이상에 기재한 검색 클라이언트(200)는, 예를 들어 도 5(컴퓨터의 개략도)에 도시한 바와 같은, CPU(501)와, 메모리(502)와, HDD 등의 외부 기억 장치(503)와, CD나 DVD 등의 가반성을 갖는 기억 매체(508)에 대하여 정보를 판독·기입하는 판독·기입 장치(507)와, 키보드나 마우스 등의 입력 장치(506)와, 디스플레이 등의 출력 장치(505)와, 통신 네트워크에 접속하기 위한 NIC 등의 통신 장치(504)와, 이들을 연결하는 시스템 버스 등의 내부 통신선(시스템 버스라고 함)을 구비한 일반적인 컴퓨터에 의해 실현할 수 있다.
예를 들어, 기억부(220)는, CPU(501)가 메모리(502) 또는 외부 기억 장치(503)를 이용함으로써 실현 가능하고, 제어부(210)와 제어부(210)에 포함되는 각 처리부는, 외부 기억 장치(503)에 기억되어 있는 소정의 프로그램을 메모리(502)에 로드하여 CPU(501)로 실행함으로써 실현 가능하고, 입력부(201)는, CPU(501)가 입력 장치(506)를 이용함으로써 실현 가능하고, 출력부(202)는, CPU(501)가 출력 장치(505)를 이용함으로써 실현 가능하고, 통신부(203)는, CPU(501)가 통신 장치(504)를 이용함으로써 실현 가능하다.
이 소정의 프로그램은, 판독·기입 장치(507)를 통하여 기억 매체(508)로부터, 혹은, 통신 장치(504)를 통하여 네트워크로부터, 외부 기억 장치(503)에 기억(다운로드)되고, 그것으로부터, 메모리(502) 상에 로드되어, CPU(501)에 의해 실행되도록 해도 좋다. 또한, 판독·기입 장치(507)를 통하여, 기억 매체(508)로부터, 혹은 통신 장치(504)를 통하여 네트워크로부터, 메모리(502) 상에 직접 로드되어, CPU(501)에 의해 실행되도록 해도 좋다.
도 4는 DB 서버(300)의 기능 개략도이다. 도시한 바와 같이, DB 서버(300)는, 제어부(310)와, 기억부(320)와, 입력부(301)와, 출력부(302)와, 통신부(303)를 구비한다.
기억부(320)는, 파라미터 기억부(360)와, 비밀 키 기억부(350)와, 데이터베이스 기억부(340)와, 검색 쿼리 기억부(330)와, 일시 정보 기억부(380)를 구비한다.
파라미터 기억부(360)에는, 은닉 검색 쿼리(332)와 데이터베이스(341)의 관계의 검사에 사용하는, 파라미터를 특정하는 정보가 기억된다. 여기서, 본 실시 형태에 있어서는, 준동형 함수부(316)에 입력하는 함수 파라미터(361)를 특정하는 정보가 기억된다. 또한, 안전성의 관점에서, 함수 파라미터(361)는 DB 서버(300)가 비밀스럽게 관리해야 할 정보이다.
비밀 키 기억부(350)에는, 안전성의 관점에서 DB 서버(300)가 비밀스럽게 관리해야 할, 비밀 키(351)를 특정하는 정보가 기억된다. 여기서, 본 실시 형태에 있어서는, 복호화부(313)에 입력하는 비밀 키(351)를 특정하는 정보가 기억된다.
데이터베이스 기억부(340)에는, 통신부(303)를 통하여 수신한 등록 데이터를 특정하는 정보가 기억된다. 여기서, 본 실시 형태에 있어서는, 통신부(303)를 통하여 등록 클라이언트(100)로부터 수신한 정보를, 데이터베이스 기억부(340)에 데이터베이스(341)의 구성 정보로서 기억하는 처리를 행한다.
검색 쿼리 기억부(330)에는, 통신부(303)를 통하여 수신한 검색 쿼리를 특정하는 정보가 기억된다. 여기서, 본 실시 형태에 있어서는, 통신부(303)를 통하여 검색 클라이언트(200)로부터 수신한 정보를, 검색 쿼리 기억부(330)에 은닉 검색 쿼리(332)로서 기억하는 처리를 행한다.
일시 정보 기억부(380)에는, 제어부(310)에서의 처리에 의해 필요해지는 정보가 기억된다.
제어부(310)는, 전체 처리부(311)와, 복호화부(313)와, 압축 함수부(315)와, 준동형 함수부(316)와, 기본 연산부(317)를 구비한다.
전체 처리부(311)는, DB 서버(300)에 있어서의 모든 처리를 제어한다.
예를 들어, 본 실시 형태에 있어서, 전체 처리부(311)는, 통신부(303)를 통하여 은닉 등록 데이터(131)를, 등록 클라이언트(100)로부터 수신하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(311)는, 통신부(303)를 통하여 수신한 은닉 등록 데이터(131)를, 데이터베이스 기억부(340)에 데이터베이스(341)의 구성 정보로서 기억하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(311)는, 통신부(303)를 통하여 은닉 검색 쿼리(332)를, 검색 클라이언트(200)로부터 수신하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(311)는, 통신부(303)를 통하여 수신한 은닉 검색 쿼리(332)를, 검색 쿼리 기억부(330)에 기억하는 처리를 행한다.
또한, 본 실시 형태에 있어서, 전체 처리부(311)는, 검색 쿼리 기억부(330)에 기억한 은닉 검색 쿼리(332)를 읽어들여, 각각, 복호화부(313)와, 압축 함수부(315)와, 준동형 함수부(316)와, 기본 연산부(317)에 입력하고, 출력된 데이터를, 통신부(303)를 통하여, 검색 클라이언트(200)에 송신하는 처리를 행한다.
또한, 전체 처리부(311)는, 검색 클라이언트(200) 또는 등록 클라이언트(100)로부터, 통신부(303)를 통하여 수신한 데이터에 관한 정보를, 일시 정보 기억부(380)에 기억하는 처리와, 출력부(302)에 표시하는 처리를 행한다.
복호화부(313)는, 입력된 데이터를 복호화한 데이터를 출력하는 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 전체 처리부(311)로부터 데이터와 비밀 키(351)가 입력되고, 비밀 키(351)를 사용하여, 복호화한 데이터를 출력하는 처리를 행한다.
압축 함수부(315)는, 입력된 데이터를 압축한 데이터를 출력하는 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 전체 처리부(311)로부터 입력된 데이터를 고정 길이(h 비트)의 다른 데이터로 변환하여, 출력하는 처리를 행한다.
준동형 함수부(316)는, 입력된 데이터에 대하여, 함수 계산의 출력 결과를 데이터로서 출력하는 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 전체 처리부(311)로부터 입력된 데이터를, 준동형의 성질을 갖는 함수의 입력값으로 간주하고, 전체 처리부(311)로부터 입력된 함수 파라미터(361)를 사용하여, 함수 계산의 출력값을 바이너리 열로 표현한 데이터를 고정 길이(f 비트)의 데이터로 변환하는 처리를 행한다.
단, 준동형 함수는, 함수 F와, 입력 변수 x, 입력 변수 y에 대하여, 수학식 2가 성립되는 경우를 나타내지만, 비트마다의 배타적 논리합인 XOR 연산 이외의 연산 기호로 준동형성이 성립될 때도, 본 실시 형태는 마찬가지로 실시할 수 있다.
기본 연산부(317)는, 가산, 감산, 비교산 등의 기본적인 산술 연산에 관한 처리를 행한다.
예를 들어, 본 실시 형태에 있어서는, 기본 연산부(317)는, 전체 처리부(311)로부터 입력된 2개의 데이터의 바이너리값(2진수)의 감산 결과를 데이터로서 출력하는 처리를 행한다.
또한, 본 실시 형태에 있어서는, 기본 연산부(317)는, 전체 처리부(311)로부터 입력된 2개의 데이터의 바이너리값(2진수)의 비교 결과를 데이터로서 출력하는 처리를 행한다.
이상에 기재한 DB 서버(300)는, 예를 들어 도 5(컴퓨터의 개략도)에 도시한 바와 같은, CPU(501)와, 메모리(502)와, HDD 등의 외부 기억 장치(503)와, CD나 DVD 등의 가반성을 갖는 기억 매체(508)에 대하여 정보를 판독·기입하는 판독·기입 장치(507)와, 키보드나 마우스 등의 입력 장치(506)와, 디스플레이 등의 출력 장치(505)와, 통신 네트워크에 접속하기 위한 NIC 등의 통신 장치(504)와, 이들을 연결하는 시스템 버스 등의 내부 통신선(시스템 버스라고 함)을 구비한 일반적인 컴퓨터에 의해 실현할 수 있다.
예를 들어, 기억부(120, 220, 320)는, CPU(501)가 메모리(502) 또는 외부 기억 장치(503)를 이용함으로써 실현 가능하고, 제어부(110, 210, 310)와 제어부(110, 210, 310)에 포함되는 각 처리부는, 외부 기억 장치(503)에 기억되어 있는 소정의 프로그램을 메모리(502)에 로드하여 CPU(501)에 의해 실행함으로써 실현 가능하고, 입력부(101, 201, 301)는, CPU(501)가 입력 장치(506)를 이용함으로써 실현 가능하고, 출력부(102, 202, 302)는, CPU(501)가 출력 장치(505)를 이용함으로써 실현 가능하고, 통신부(103, 203, 303)는, CPU(501)가 통신 장치(504)를 이용함으로써 실현 가능하다.
이 소정의 프로그램은, 판독·기입 장치(507)를 통하여 기억 매체(508)로부터, 혹은, 통신 장치(504)를 통하여 네트워크로부터, 외부 기억 장치(503)에 기억(다운로드)되고, 그것으로부터, 메모리(502) 상에 로드되어, CPU(501)에 의해 실행되도록 해도 좋다. 또한, 판독·기입 장치(507)를 통하여 기억 매체(508)로부터, 혹은 통신 장치(504)를 통하여 네트워크로부터, 메모리(502) 상에 직접 로드되어, CPU(501)에 의해 실행되도록 해도 좋다.
도 6은 등록 클라이언트(100)의 출력부(102)의 표시 내용(600)을 예시한 도면이다. 도시한 바와 같이, 등록 클라이언트(100)는, 관리 방법의 선택부(610)와, 관리 폼부(620)와, 실행으로 표시된 버튼을 가리키는 실행 버튼(650)과, 클리어로 표시된 버튼을 가리키는 클리어 버튼(660)을 구비한다.
관리 방법의 선택부(610)는, 데이터의 등록과, 데이터의 갱신과, 데이터의 삭제 등의, 데이터의 관리에 관한 항목으로 구성된다. 예를 들어, 본 실시 형태에서는, 데이터 추가와, 데이터 갱신과, 데이터 삭제를 특정하는 라디오 버튼을 구비한다. 또한, 입력부(101)를 통하여, 각 항목이 선택 가능하다.
관리 폼부(620)는, 관리 방법의 선택부(610)에 의해 특정된 항목인, 데이터의 등록과, 데이터의 갱신과 또는 데이터의 삭제에 따라 취급하는, 데이터의 종류를 나타내는 속성(621)과, 데이터의 상세 내용을 입력하는 입력 폼(622)으로 구성된다. 예를 들어, 본 실시 형태에서는, 번호와, 성명과, 이메일과, 소속 부서를 가리키는 속성(621)과, 번호의 입력용과, 성명의 입력용과, 이메일의 입력용과, 소속 부서의 입력용으로 설계된 입력 폼(622)을 구비한다. 각 입력 폼(622)에 입력된 정보는, 기억부(120)의 일시 정보 기억부(180)에 기억된다.
클리어 버튼(660)은, 입력부(101)를 통하여, 선택 가능하다. 예를 들어, 본 실시 형태에서는, 클리어 버튼(660)이 선택되면, 각 입력 폼(622)에 입력된 정보를 소거한다.
실행 버튼(650)은, 입력부(101)를 통하여, 선택 가능하다. 예를 들어, 본 실시 형태에서는, 실행 버튼(650)이 선택되면, 관리 방법의 선택부(610)에 의해 특정된 항목과 각 폼에 입력된 정보를 기초로, 은닉 등록 데이터(131)를 작성하여, DB 서버(300)에 송신하는 처리를 행한다. 이하에서는, 관리 방법의 선택부(610)에 의해 특정된 항목이 데이터 등록인 경우를 설명하지만, 데이터 갱신과, 데이터 삭제가 특정된 경우도, 마찬가지의 처리를 행한다.
관리 방법의 선택부(610)에 의해, 특정된 항목이 데이터 등록인 경우에, 실행 버튼(650)이 선택된 경우에, 실시하는 은닉 등록 데이터(131)의 처리 수순을 S701 내지 S715에 나타낸다.
도 7a는 본 실시 형태에 있어서, 등록 클라이언트(100)가, 출력부(102)에 출력한 입력 폼(622)에 입력된 정보를 기초로 작성하는, 연결 데이터(703)의 데이터 구성을 도시하는 블록도의 예이다.
또한, 도 7b는, 본 실시 형태에 있어서, 등록 클라이언트(100)가, 은닉 등록 데이터(712)를 작성하는 과정에 있어서 작성하는, 연결 데이터(704)의 데이터 구성을 도시하는 블록도의 예이다.
또한, 도 7c는 본 실시 형태에 있어서, 등록 클라이언트(100)가 작성하는, 은닉 등록 데이터(712)의 데이터 구성을 도시하는 블록도이다.
이하에서는, 도 7a와, 도 7b와, 도 7c를 사용하여, 입력 폼(622)에 입력된 데이터값에 의존하지 않고, 등록 클라이언트(100)가, 매회 데이터값이 상이한 은닉 등록 데이터(712)를 작성하는 처리 수순을 설명한다.
등록 클라이언트(100)의 전체 처리부(111)는, 입력 폼(622)에 입력된 정보를 평문 등록 데이터(701)로서, 기억부(120)의 등록 데이터 기억부(130)에 기억하는 처리를 행한다. 이때, 평문 등록 데이터(701)는, 등록 클라이언트(100)의 일시 정보 기억부(180)에 m 비트의 바이너리 표현으로 구성된 데이터로서 기억된다.
등록 클라이언트(100)의 전체 처리부(111)는, 파라미터 기억부(160)에 기억된 검사 파라미터(162)를 읽어들여, 오류 검사 데이터(702)로서 출력하는 처리를 행한다. 이때, 출력된 오류 검사 데이터(702)는, 등록 클라이언트(100)의 일시 정보 기억부(180)에, e 비트의 데이터로서 기억된다.
등록 클라이언트(100)의 전체 처리부(111)는, 평문 등록 데이터(701)와 오류 검사 데이터(702)를 연결하는 처리를 행한다(S701).
연결 처리에서는, 평문 등록 데이터(701)의 각 개소에, 분할한 오류 검사 데이터(702)를 삽입해도 좋다. 예를 들어, 평문 등록 데이터(701)의 처음(헤더)과 끝(푸터)에, 오류 검사 데이터(702)를 삽입해도 좋다. 또한, 오류 검사 데이터(702)에 평문 등록 데이터(701)를 승산에 의해 곱하는 등, 혼합시켜도 좋다.
이하에서는, 도 7a에 도시한 바와 같이, 등록 클라이언트(100)에 있어서, 전체 처리부(111)가 입력한 평문 등록 데이터(701)의 말미에, 오류 검사 데이터(702)를 연결하여, 연결 데이터(703)를 하나의 데이터로 간주한 경우를 다룬다. 이때, 등록 클라이언트(100)의 일시 정보 기억부(180)에는, 연결 데이터(703)는 (m+e) 비트의 데이터로서 기억된다. 단, 연결 처리는, 이 경우에 한정되는 것은 아니고, 다른 연결 처리에서도, 마찬가지로 실시할 수 있다.
이어서, 도 7b에 도시한 바와 같이, 등록 클라이언트(100)가 작성하는 연결 데이터(704)의 데이터 구성을 설명한다.
등록 클라이언트(100)의 전체 처리부(111)는, 평문 등록 데이터(701)와 오류 검사 데이터(702)를 연결한 데이터인 연결 데이터(703)와, 비밀 키 기억부(150)에 기억된 비밀 키(151)를 암호화부(112)에 입력하는 처리를 행한다(S702).
등록 클라이언트(100)의 암호화부(112)는, 입력된 데이터를 암호화하여, 데이터 CR(705)을 출력하는 처리를 행한다(S703).
등록 클라이언트(100)에 있어서, 전체 처리부(111)가 입력한 연결 데이터(703)를 암호화부(112)가 암호화하여, 출력한 데이터를 데이터 CR(705)로 간주한다. 이때, 데이터 CR(705)은, 등록 클라이언트(100)의 일시 정보 기억부(180)에는, c 비트의 데이터로서 기억된다(S704).
또한, 데이터 CR(705)은, 연결 데이터(703)에 의존, 즉, 입력 폼(622)의 입력 정보에 의존해도 상관없다. 예를 들어, 동일한 데이터값을 갖는 연결 데이터(703)로부터는, 동일한 데이터 CR(705)을 출력해도 좋다.
등록 클라이언트(100)의 전체 처리부(111)는, 비밀 키 기억부(150)로부터 비밀 키(151)를 읽어내어, 비밀 키(151)를, 의사 난수 생성부(114)에 입력하는 처리를 행한다(S705).
등록 클라이언트(100)의 의사 난수 생성부(114)는, 입력된 비밀 키(151)를 사용하여, 의사 난수를 출력하는 처리를 행한다. 이때, 의사 난수는, 등록 클라이언트(100)의 일시 정보 기억부(180)에는 r 비트의 데이터 PR(706)로서 기억된다(S706).
의사 난수 생성부(114)가 출력하는 의사 난수는, 연결 데이터(703), 데이터 CR(705)에 의존하지 않는다. 따라서, 입력 폼(622)의 입력 정보에 의존하지 않고, 매회 데이터값이 상이한 데이터 PR(706)을 작성할 수 있다.
등록 클라이언트(100)의 전체 처리부(111)는, 비밀 키 기억부(150)로부터 비밀 키(151)를 읽어내어, 비밀 키(151)와 난수 생성부로부터 출력된 데이터 PR(706)을 연결한 데이터를, 압축 함수부(115)에 입력하는 처리를 행한다(S707).
등록 클라이언트(100)의 압축 함수부(115)는, 입력된 데이터를 변환하여, 해시값을 출력하는 처리를 행한다. 이때, 해시값은, 등록 클라이언트(100)의 일시 정보 기억부(180)에는 h 비트의 데이터 HR(707)로서 기억된다(S708).
데이터 HR(707)은, 압축 함수의 성질로부터, 난수로 간주할 수 있다. 데이터 HR(707)은, 연결 데이터(703), 데이터 CR(705)에 의존하지 않는다. 따라서, 데이터 PR(706)과 마찬가지로, 입력 폼(622)의 입력 정보에 의존하지 않고, 매회 데이터값이 상이한 데이터 HR(707)을 작성할 수 있다.
등록 클라이언트(100)의 전체 처리부(111)는, 데이터 HR(707)과, 파라미터 기억부(160)에 기억된 함수 파라미터(161)를 준동형 함수부(116)에 입력한다(S709).
등록 클라이언트(100)의 준동형 함수부(116)는, 입력된 데이터를 준동형의 성질을 갖는 함수의 입력값으로 간주하고, 함수 파라미터(161)를 사용하여, 함수 계산의 출력값을 바이너리 열로 표현한 준동형 함수값을 출력하는 처리를 행한다. 이때, 준동형 함수값은, 등록 클라이언트(100)의 일시 정보 기억부(180)에는, f 비트의 데이터 FR(708)로서 기억된다(S710).
또한, 준동형 함수를 func로 한 경우, 그 입력값인 데이터 HR(707), 출력값인 데이터 FR(708)에는 수학식 3이 성립된다(단, 함수 파라미터(161)의 기술은 생략).
Figure 112013025110029-pct00003
데이터 FR(708)은, 준동형 함수부(116)가 처리하는 준동형 함수의 성질로부터, 입력된 데이터값이 난수인 경우, 출력도 난수로 간주할 수 있다. 또한, 데이터 FR(708)은, 연결 데이터(703)와, 데이터 CR(705)에 의존하지 않는다. 따라서, 데이터 HR(707)과 마찬가지로, 입력 폼(622)의 입력 정보에 의존하지 않고, 매회 데이터값이 상이한 데이터 FR(707)을 작성할 수 있다.
등록 클라이언트(100)의 전체 처리부(111)는, 준동형 함수부(116)로부터 출력된 데이터 FR(708)을, 압축 함수부(115)에 입력하는 처리를 행한다(S711).
등록 클라이언트(100)의 압축 함수부(115)는, 입력된 데이터를 변환하여, 해시값을 출력하는 처리를 행한다. 이때, 해시값은, 등록 클라이언트(100)의 일시 정보 기억부(180)에는, g 비트의 데이터 GR(709)로서 기억된다(S712).
데이터 GR(709)은, 압축 함수의 성질로부터, 난수이다. 따라서, 데이터 FR(707)과, 데이터 HR(707)과 마찬가지로, 입력 폼(622)의 입력 정보에 의존하지 않고, 매회 데이터값이 상이한 데이터 GR(709)을 작성할 수 있다. 또한, 압축 함수의 성질로부터, 역상은 계산 곤란하기 때문에, 데이터 GR(709)을 DB 서버(300)에 등록해도, 데이터의 안전성에 영향을 주지 않는다.
도 7c는 본 실시 형태에 있어서, 등록 클라이언트(100)가 작성하는 은닉 등록 데이터(712)의 데이터 구성을 도시하는 블록도이다.
등록 클라이언트(100)의 전체 처리부(111)는, 데이터 HR(707)과 데이터 CR(705)을 기본 연산부(117)에 입력하는 처리를 행한다(S713).
등록 클라이언트(100)의 기본 연산부(117)는, 입력된 데이터 HR(707)과 데이터 CR(705)의 비트마다의 배타적 논리합인 XOR산을 계산하여, 그 계산 결과를, 데이터 DR(711)로서 출력하는 처리를 행한다(S714).
S714의 xor산에 의해, 데이터 HR(707)과 데이터 CR(705)과 데이터 DR(711)은 수학식 4를 만족한다.
Figure 112013025110029-pct00004
S714의 계산은, 연결 데이터(703)나 데이터 CR(705)에 의존하지 않는, 난수인 데이터 HR(707)을 사용하고 있다. 따라서, 연결 데이터(703)와 데이터 CR(705)의 관계가 일의적으로 정해지는 경우에도, 매회 데이터값이 상이한, 데이터 HR(707)을 사용하면, 상이한 데이터값의 데이터 DR(711)이 얻어진다.
등록 클라이언트(100)의 전체 처리부(111)는, 데이터 PR(706)과 데이터 DR(711)과 데이터 GR(709)을 연결하여, 작성한 데이터를, 은닉 등록 데이터(712)로서 등록 데이터 기억부(130)에 기억하는 처리를 행한다(S715).
은닉 등록 데이터(712)는, 연결 데이터(703)나 데이터 CR(705)에 의존하지 않는 난수인 데이터 PR(706), 데이터 DR(711), 데이터 GR(709)을 사용하고 있어, 매회 상이한 데이터값이 얻어진다. 그 결과, 데이터 PR(706)과 데이터 DR(711)과 데이터 GR(709)을 연결한 은닉 등록 데이터(712)는, 연결 데이터(703)와 데이터 CR(705)와는 독립되어 있다. 즉, 입력 폼(622)의 입력 정보에 의존하지 않고, 매회 데이터값이 상이한 은닉 등록 데이터(712)를 작성할 수 있다.
또한, 상기한 처리 수순은, 고정된 것이 아니고, 처리 수순을 변경해도 좋다. 예를 들어, S713과 S714의 처리 수순을 변경하고, S713에서 데이터 PR(706)과 데이터 HR(707)과 데이터 GR(709)을 연결하고 나서, S714에서 데이터 HR(707)과 데이터 CR(705)의 XOR산을 계산해도 좋다. 마찬가지로, 다른 처리 수순을 변경해도 좋다.
또한, 상기한 각 처리를 담당하는 제어부(110)는 고정된 것이 아니고, 담당하는 제어부(110)를 변경해도 좋다. 예를 들어, S711에서 데이터 FR(708)을, 압축 함수부(115)가 아니고, 암호화부(112)에 데이터 FR(708)을 입력해도 좋고, S712에서는, 암호화부(112)로부터 출력된 데이터를, 데이터 GR(709)로서 일시 정보 기억부(180)에 기억해도 좋다.
또한, 은닉 등록 데이터(712)의 데이터 구성을 변경하고, 거기에 아울러 처리를 변경해도 좋다. 예를 들어, 데이터 PR(706)에 관한 정보는, 기억부(120)에 기억하고, 은닉 등록 데이터(712)에 포함하지 않도록 구성해도 상관없다. 이때, S706이 출력하는 데이터를 데이터 HR(706)로 간주하고, S707과 S708에 관한 처리는 삭제 가능하다. 또한, 이때, S715에서 등록 클라이언트(100)의 전체 처리부(111)는, 은닉 등록 데이터(712)로서, 데이터 DR(711)과 데이터 GR(709)을 연결하면 된다.
도 8은, 본 실시 형태에 있어서, 네트워크(400)를 경유하여, 등록 클라이언트(100)가, 은닉 등록 데이터(132)를 DB 서버(300)에 등록하는 처리를 나타내는 시퀀스도이다.
등록 클라이언트(100)는, 입력부(101)를 경유하여, 유저로부터 폼에 입력된 정보를 일시 정보 기억부(180)에 기억하는 처리를 행한다(S801).
등록 클라이언트(100)는, 입력부(101)를 경유하여, 유저에 의해 실행 버튼(650)이 선택된 것을 검지하고, 폼에 입력된 정보를, 평문 등록 데이터(131)로서 기억부(120)에 기억하는 처리를 행한다(S802).
등록 클라이언트(100)는, 제어부(110)에 의해 은닉 등록 데이터(132)를 작성하여, 기억부(120)에 기억하는 처리를 행한다(S803).
등록 클라이언트(100)는, 통신부(103)로부터 네트워크(400)를 경유하여, 속성(133)과 은닉 등록 데이터(132)를, DB 서버(300)에 송신하는 처리를 행한다(S804).
DB 서버(300)는, 통신부(303)로부터 네트워크(400)를 경유하여, 등록 클라이언트(100)가 송신한 속성(133)과 은닉 등록 데이터(132)를 수신하는 처리를 행한다(S805).
DB 서버(300)는, 제어부(310)에 의해 수신한 속성(133)을 사용하여, 은닉 등록 데이터(132)를, 데이터베이스(341)의 구성 정보로서 기억부(320)에 기억하는 처리를 행한다(S806).
DB 서버(300)는, 은닉 등록 데이터(132)의 등록 처리의 성공 여부를, 통신부(303)로부터 네트워크(400)를 경유하여, 등록 서버에 송신하는 처리를 행한다(S807).
등록 클라이언트(100)는, 통신부(103)로부터 네트워크(400)를 경유하여, DB 서버(300)가 송신한 은닉 등록 데이터(132)의 등록 처리의 성공 여부를 수신하는 처리를 행한다(S808).
등록 클라이언트(100)는, 출력부(102)를 경유하여, 유저에게, 등록 처리의 성공 여부를 포함하는 등록 정보에 대하여 표시하는 처리를 행한다(S809).
도 9a는, DB 서버(300)에 있어서의, 기억부(320)의 데이터베이스 기억부(340)에 기억되는 데이터베이스(341)의 관리 상태를 예시한 구성도이다.
예를 들어, 본 실시 형태에 있어서, DB 서버(300)에 있어서의, 데이터베이스(341)는, 번호와, 성명과, 이메일 등을 나타내는 속성(901)과, 속성(901)에 관련지어진 은닉 등록 데이터(902(d0, d1, d2, …))로 구성되어 있다.
도 10은 검색 클라이언트(200)의 출력부(202)의 표시 내용(1000)을 예시한 도면이다. 도시한 바와 같이, 검색 클라이언트(200)는, 검색 항목부(1010)와, 검색 폼부(1020)와, 검색으로 표시된 버튼을 가리키는 검색 버튼(1050)과, 클리어로 표시된 버튼을 가리키는 클리어 버튼(1060)을 구비한다.
검색 방법의 선택부는, 검색 대상의 데이터의 종류에 관한 항목으로 구성된다. 예를 들어, 본 실시 형태에서는, 번호와, 성명과, 이메일과, 소속 부서를 특정하는 라디오 버튼을 구비한다. 또한, 입력부(201)를 통하여, 각 항목이 복수 선택 가능하다.
검색 폼부(1020)는, 검색 방법의 선택부에서 특정된 속성(1011)인, 번호와, 성명과, 이메일과, 소속 부서의 상세 내용을 입력하는 입력 폼(1022)으로 구성된다. 예를 들어, 본 실시 형태에서는, 번호의 입력용과, 성명의 입력용과, 이메일의 입력용과, 소속 부서의 입력용으로 설계된 입력 폼(1022)을 복수 구비한다. 각 입력 폼(1022)에 입력된 정보는, 기억부(220)의 일시 정보 기억부(280)에 기억된다.
클리어 버튼(1060)은, 입력부(201)를 통하여 선택 가능하다. 예를 들어, 본 실시 형태에서는, 클리어 버튼(1060)이 선택되면, 각 입력 폼(1022)의 입력 정보를 소거한다.
검색 버튼(1050)은, 입력부(201)를 통하여 선택 가능하다. 예를 들어, 본 실시 형태에서는, 검색 버튼(1050)이 선택되면, 검색 방법의 선택부에 의해 특정된 속성(1011)과 입력 폼(1022)에 입력된 정보를 기초로, 은닉 검색 쿼리(232)를 작성하여, DB 서버(300)에 송신하는 처리를 행한다. 이하에서는, 검색 방법의 선택부에서, 단 하나의 속성(1011)(예를 들어 성명)이 선택된 경우를 나타내지만, 복수의 입력 폼(1022)에 정보가 입력된 경우와, 복수의 속성(1011)이 선택된 경우도, 마찬가지의 처리에 의해 실시할 수 있다.
검색 방법의 선택부에서, 특정된 속성(1011)이, 단 하나인 경우에, 검색 버튼(1050)이 선택된 경우의 처리 수순은, S1101 내지 S1112에 따른다.
도 11a는, 본 실시 형태에 있어서, 검색 클라이언트(200)가, 출력부(202)에 출력한 입력 폼(1022)에 입력된 정보를 기초로 작성하는 연결 데이터(1103)의 데이터 구성을 도시하는 블록도의 예이다.
또한, 도 11b는, 본 실시 형태에 있어서, 검색 클라이언트(200)가, 은닉 검색 쿼리(1111)를 작성하는 과정에 있어서 작성하는 연결 데이터(1104)의 데이터 구성을 도시하는 블록도의 예이다.
또한, 도 11c는 본 실시 형태에 있어서, 검색 클라이언트(200)가 작성하는 연결 데이터(1108)의 데이터 구성을 도시하는 블록도이다.
이하에서는, 도 11a와, 도 11b와, 도 11c를 사용하여, 입력 폼(1022)에 입력된 데이터값에 의존하지 않고, 검색 클라이언트(200)가, 매회 데이터값이 상이한 은닉 검색 쿼리(1111)를 작성하는 처리 수순을 설명한다.
검색 클라이언트(200)의 전체 처리부(211)는, 입력 폼(1022)에 입력된 정보를, 평문 검색 쿼리(1101)로서 기억부(220)의 검색 쿼리 기억부(230)에 기억하는 처리를 행한다. 이때, 평문 검색 쿼리(1101)는, 검색 클라이언트(200)의 일시 정보 기억부(280)에 m 비트의 바이너리 표현으로 구성된 데이터로서 기억된다.
검색 클라이언트(200)의 전체 처리부(211)는, 파라미터 기억부(260)에 기억된 검사 파라미터(262)를 읽어들여, 오류 검사 데이터(1102)로서 출력하는 처리를 행한다. 이때, 출력된 오류 검사 데이터(1102)는, 검색 클라이언트(200)의 일시 정보 기억부(280)에, e 비트의 데이터로서 기억된다.
검색 클라이언트(200)의 전체 처리부(211)는, 평문 검색 쿼리(1101)와 오류 검사 데이터(1102)를 연결하는 처리를 행한다(S1101).
연결 처리에서는, 평문 검색 쿼리(1101)의 각 개소에, 분할한 오류 검사 데이터(1102)를 삽입해도 좋다. 예를 들어, 평문 검색 쿼리(1101)의 처음(헤더)과 끝(푸터)에, 오류 검사 데이터(1102)를 삽입해도 좋다. 또한, 오류 검사 데이터(1102)에 평문 검색 쿼리(1101)를 승산에 의해 곱하는 등, 혼합시켜도 좋다.
이하에서는, 도 11a에 도시한 바와 같이, 검색 클라이언트(200)에 있어서, 전체 처리부(211)가 입력한 평문 검색 쿼리의 말미에 오류 검사 데이터(1102)를 연결하여, 연결 데이터(1103)를 하나의 데이터로 간주한 경우를 다룬다. 이때, 검색 클라이언트(200)의 일시 정보 기억부(280)에는, 연결 데이터(1103)는 (m+e) 비트의 데이터로서 기억된다. 단, 연결 처리는, 이 경우에 한정되는 것은 아니고, 다른 연결 처리에서도, 마찬가지로 실시할 수 있다.
이어서, 도 11b에 도시한 바와 같이, 검색 클라이언트(200)가 작성하는 연결 데이터(1104)의 데이터 구성을 설명한다.
검색 클라이언트(200)의 전체 처리부(211)는, 평문 검색 쿼리(1101)와 오류 검사 데이터(1102)를 연결한 데이터인 연결 데이터(1103)와, 비밀 키 기억부(250)에 기억된 비밀 키(251)를 암호화부(212)에 입력하는 처리를 행한다(S1102).
검색 클라이언트(200)의 암호화부(212)는, 입력된 데이터를 암호화하여, 데이터 CS(1105)를 출력하는 처리를 행한다(S1103).
검색 클라이언트(200)에 있어서, 전체 처리부(211)가 입력한 연결 데이터(1103)를 암호화부(212)가 암호화하여, 출력한 데이터를 데이터 CS(1105)로 간주하여 취급하면 된다. 이때, 데이터 CS(1105)는, 검색 클라이언트(200)의 일시 정보 기억부(280)에, c 비트의 데이터로서 기억된다(S1104).
또한, 데이터 CS(1105)는, 연결 데이터(1103)에 의존, 즉, 입력 폼(1022)의 입력 정보에 의존해도 좋다. 예를 들어, 동일한 데이터값을 갖는 연결 데이터(1103)로부터는, 동일한 데이터 CS(1105)를 출력해도 좋다.
검색 클라이언트(200)의 전체 처리부(211)는, 비밀 키 기억부(250)로부터 비밀 키(251)를 읽어내어, 비밀 키(251)를 의사 난수 생성부(214)에 입력하는 처리를 행한다(S1105).
검색 클라이언트(200)의 의사 난수 생성부(214)는, 입력된 비밀 키(251)를 사용하여, 의사 난수를 출력하는 처리를 행한다. 이때, 의사 난수는, 검색 클라이언트(200)의 일시 정보 기억부(280)에, r 비트의 데이터 PS(1106)로서 기억된다(S1106).
의사 난수 생성부(214)가 출력하는 의사 난수는, 연결 데이터(1103), 데이터 CS(1105)에 의존하지 않는다. 따라서, 입력 폼(1022)의 입력 정보에 의존하지 않고, 매회 데이터값이 상이한, 데이터 PS(1106)를 작성할 수 있다.
데이터 PS(1106)는, 의사 난수 생성 함수의 성질로부터, 난수를 출력한다. 또한, 데이터 PS(1106)는, 연결 데이터(703), 데이터 CS(705)에 의존하지 않는다. 따라서, 데이터 PS(1106)는, 입력 폼(1022)의 입력 정보에 의존하지 않고, 매회 데이터값이 상이한 데이터 FS(1107)를 작성할 수 있다.
검색 클라이언트(200)의 전체 처리부(211)는, 데이터 PS(1106)와, 파라미터 기억부(260)에 기억된 함수 파라미터(261)를 준동형 함수부(216)에 입력한다(S1107).
검색 클라이언트(200)의 준동형 함수부(216)는, 입력된 데이터를, 준동형의 성질을 갖는 함수의 입력값으로 간주하고, 함수 파라미터(261)를 사용하여, 함수 계산의 출력값을 바이너리 열로 표현한 준동형 함수값을 출력하는 처리를 행한다. 이때, 준동형 함수값은, 검색 클라이언트(200)의 일시 정보 기억부(280)에, f 비트의 데이터 FS(1107)로서 기억된다(S1108).
또한, 준동형 함수를 func로 한 경우, 그 입력값인 데이터 PS, 출력값인 데이터 FS에는, 수학식 5가 성립된다(단, 함수 파라미터(261)의 기술은 생략).
Figure 112013025110029-pct00005
데이터 FS(1107)는, 준동형 함수부(216)가 처리하는 준동형 함수의 성질로부터, 입력된 데이터값이 균일하게 분포하는 난수인 경우, 출력도 마찬가지로 균일하게 분포한다. 또한, 데이터 FS(1107)는, 연결 데이터(1103)와 데이터 CS(1104)에 의존하지 않는다. 따라서, 데이터 PS(1106)와 마찬가지로, 입력 폼(1022)의 입력 정보에 의존하지 않고, 매회 데이터값이 상이한 데이터 FS(1107)를 작성할 수 있다.
도 11c는 본 실시 형태에 있어서, 검색 클라이언트(200)가 작성하는 연결 데이터(1108)의 데이터 구성을 도시하는 블록도이다.
검색 클라이언트(200)의 전체 처리부(211)는, 데이터 PS(1106)와 데이터 FS(1107)를 연결하여, 작성한 연결 데이터(1104)와, 데이터 CS(1105)를 기본 연산부(217)에 입력하는 처리를 행한다(S1109).
검색 클라이언트(200)의 기본 연산부(217)는, 입력된 연결 데이터(1104)와, 데이터 CS(1105)의 비트마다의 배타적 논리합인 XOR산을 계산하여, 그 계산 결과를 데이터 DS(1110)로서 출력하는 처리를 행한다(S1110).
S1110의 계산은, 연결 데이터(1103)나 데이터 CS(1105)에 의존하지 않는, 난수인 데이터 PS(1106)를 사용하고 있다. 따라서, 연결 데이터(1103)와 데이터 CS(1105)의 관계가 일의적으로 정해지는 경우에도, 매회 데이터값이 상이한, 데이터 PS(1106)를 사용하면, 상이한 데이터값의 데이터 DS(1110)가 얻어진다.
검색 클라이언트(200)의 전체 처리부(211)는, 데이터 DS(1110)와 데이터 FS(1107)를 연결한 데이터인 연결 데이터(1108)와, 비밀 키 기억부(250)에 기억된 비밀 키(251)를 암호화부(212)에 입력하는 처리를 행한다(S1111).
검색 클라이언트(200)의 암호화부(212)는, 입력된 데이터를 암호화하고, 암호화한 데이터를, 전체 처리부(211)는, 은닉 검색 쿼리(1111)로서 검색 쿼리 기억부(230)에 기억하는 처리를 행한다(S1112).
은닉 검색 쿼리(1111)는, 암호화부에 입력된 연결 데이터를 난수로 간주할 수 있기 때문에, 출력된 은닉 검색 쿼리(1111)도, 마찬가지로 난수로 간주할 수 있다. 그로 인해, 검색 클라이언트(200)가, 비록 부정 방수 가능한 네트워크(400) 경유로 DB 서버(300)에 송신해도, 은닉 검색 쿼리(1111)는 안전하다.
은닉 검색 쿼리(1111)는, 연결 데이터(1103)나 데이터 CS(1105)에 의존하지 않는, 난수인 데이터 PS(1106)와 데이터 FS(1107)를 사용하고 있으며, 매회 상이한 데이터값이 얻어진다. 그 결과, 데이터 DS(1106)와 데이터 FS(1107)를 연결한 은닉 검색 쿼리(1111)는, 연결 데이터(1103)와 데이터 CR(1105)과는 독립되어 있다. 즉, 입력 폼(1022)의 입력 정보에 의존하지 않고, 매회 데이터값이 상이한 은닉 검색 쿼리(1111)를 작성할 수 있다.
또한, 상기한 처리 수순은, 고정된 것이 아니고, 처리 수순을 변경해도 좋다. 예를 들어, S1109와 S1110의 처리 수순을 변경하여, S1109에서 데이터 CS(1105)와, 데이터 PS(1106)의 XOR산을 계산하고 나서, S1110에서 데이터 FS(1107)와 데이터 DS(1110)를 연결해도 좋다. 마찬가지로, 다른 처리 수순을 변경해도 좋다.
또한, 상기한 각 처리를 담당하는 제어부(210)는 고정된 것이 아니고, 담당하는 제어부(210)를 변경해도 좋다. 예를 들어, S1105에서, 의사 난수 생성부(214)가 아니고, 압축 함수부(215)에 비밀 키(251)를 입력해도 좋다.
또한, 은닉 검색 쿼리(1111)의 데이터 구성을 변경하고, 거기에 아울러 처리를 변경해도 좋다. 예를 들어, 전체 처리부(211)가 데이터 FS(1107)와, 비밀 키 기억부(250)에 기억된 비밀 키(251)를 암호화부(212)에 입력하는 처리를 행하고(S1111), 암호화부가 출력한 데이터와, 데이터 DS(1106)를 연결한 데이터를, 은닉 검색 쿼리(1111)로 간주해도 좋다(S1112).
도 12는 본 실시 형태에 있어서, 네트워크(400)를 경유하여, 검색 클라이언트(200)가 송신한 은닉 검색 쿼리(232)를 사용하여, DB 서버(300)가 데이터베이스(341)를 검색하는 처리를 나타내는 시퀀스도이다.
검색 클라이언트(200)는, 입력부(201)를 경유하여, 유저로부터, 폼에 입력된 정보를 일시 정보 기억부(280)에 기억하는 처리를 행한다(S1201).
검색 클라이언트(200)는, 입력부(201)를 경유하여, 유저에 의해, 검색 버튼(1050)이 선택된 것을 검지하여, 폼에 입력된 정보를 평문 검색 쿼리(231)로서 기억부(220)에 기억하는 처리를 행한다(S1202).
검색 클라이언트(200)는, 제어부(210)에 의해, 은닉 검색 쿼리(232)를 작성하고, 기억부(220)에 기억하는 처리를 행한다(S1203).
검색 클라이언트(200)는, 통신부(203)로부터 네트워크(400)를 경유하여, 속성(233)과 은닉 검색 쿼리(232)를, DB 서버(300)에 송신하는 처리를 행한다(S1204).
DB 서버(300)는, 통신부(303)로부터 네트워크(400)를 경유하여, 검색 클라이언트(200)가 송신한 속성(233)과 은닉 검색 쿼리(232)를 수신하는 처리를 행한다(S1205).
DB 서버(300)는, 제어부(310)에 의해, 속성(233)를 사용하여, 데이터베이스(341)로부터, 은닉 검색 쿼리(332)에 관계한 은닉 등록 데이터(902)를 검색하는 처리를 행한다(S1206).
DB 서버(300)는, 은닉 검색 쿼리(332)에 해당하는 검색 결과(속성(901)과 은닉 등록 데이터(902)의 일부를 발췌)를, 통신부(303)로부터 네트워크(400)를 경유하여, 검색 서버에 송신하는 처리를 행한다(S1207).
검색 클라이언트(200)는, 통신부(203)로부터 네트워크(400)를 경유하여, DB 서버(300)가 송신한 은닉 검색 쿼리(232)에 해당하는 검색 결과를 수신하는 처리를 행한다(S1208).
검색 클라이언트(200)는, 제어부(210)에 의해, 은닉 검색 쿼리(232)에 해당하는 검색 결과로부터, 평문 등록 데이터(272)를 복원한다(S1209).
검색 클라이언트(200)는, 출력부(202)를 경유하여, 추출한 평문 등록 데이터(272)를 기억부(220)에 기억한다. 또한, 추출한 평문 등록 데이터(272)를, 출력부(202)에 표시하는 처리를 행해도 좋다(S1210).
본 실시 형태에 있어서, S1206에서 기재한, DB 서버(300)의 제어부(310)가 은닉 등록 데이터(902)를 검색하는 처리 수순은, 이하, S1301 내지 S1318에 따른다.
또한, DB 서버(300)의 전체 처리부(311)는, 수신한 속성(233)에 관계하는, 데이터베이스(341)의 속성(901)에 관련지어진 은닉 등록 데이터(902)를 검색 대상으로 한다.
도 9b는, 도 9a에 도시한, 구성도를 사용하여, DB 서버(300)의 기억부(320)의 데이터베이스 기억부(340)에 기억된, 데이터베이스(341)에 있어서의, 검색 대상을 예시한 구성도이다.
예를 들어, 수신한 속성(233)이, 성명에 관한 정보인 경우, 도 9b의 굵은 선의 실선 프레임이 둘러싼 부분이 나타낸 바와 같이, DB 서버(300)의 전체 처리부(311)는, 데이터베이스(341)의 성명에 관계하는 속성(901)을, 검색 대상의 은닉 등록 데이터(902)로서 취급한다.
또한, 이하, 은닉 등록 데이터(902)를 검색하는 S1301 내지 S1318의 처리 수순은, 검색 대상인 은닉 등록 데이터(902) 모두 또는 검색 대상인 은닉 등록 데이터(902)로부터 임의로 추출한 은닉 등록 데이터(902) 또는 일정수의 은닉 등록 데이터(902)에 대하여, 실시한다.
도 13a는 본 실시 형태에 있어서, DB 서버(300)가, 통신부(303)로부터 수신한 은닉 검색 쿼리를 복호화한, 연결 데이터(1301)의 데이터 구성을 도시하는 블록도의 예이다.
또한, 도 13b는, 본 실시 형태에 있어서, DB 서버(300)가, 데이터베이스 기억부(340)에 기억한, 데이터베이스(341)에 있어서의, 은닉 등록 데이터(1304)의 데이터 구성을 도시하는 블록도의 예이다.
또한, 도 13c는 본 실시 형태에 있어서, DB 서버(300)가, 연결 데이터(1301)를 사용하여, 은닉 등록 데이터(1304)를 검색하는 과정에 있어서 작성하는 연결 데이터(1308)의 데이터 구성을 도시하는 블록도의 예이다.
또한, 도 13d는, 본 실시 형태에 있어서, DB 서버(300)가, 연결 데이터(1301)를 사용하여, 은닉 등록 데이터(1304)를 검색하는 과정에 있어서 작성하는 연결 데이터(1311)의 데이터 구성을 도시하는 블록도의 예이다.
이하에서는, 도 13a와, 도 13b와, 도 13c와, 도 13d를 사용하여, DB 서버(300)가, 매회 데이터값이 상이한 연결 데이터(1301)를 사용해도, 정확하게 은닉 등록 데이터(1304)를 검색하는 처리 수순을 설명한다.
DB 서버(300)의 전체 처리부(311)는, 통신부(303)를 사용하여, 은닉 검색 쿼리(1300)를 수신하는 처리를 행한다. 이때, DB 서버(300)의 전체 처리부(311)는, 은닉 검색 쿼리(1300)를 검색 쿼리 기억부(330)에 기억한다.
DB 서버(300)의 전체 처리부(311)는, 은닉 검색 쿼리(1300)와, 비밀 키 기억부(350)에 기억된 비밀 키(351)를 복호화부(313)에 입력하는 처리를 행한다(S1301).
DB 서버(300)의 복호화부는, 입력된 은닉 검색 쿼리(1300)를 복호화하여, 연결 데이터(1301)를 출력하는 처리를 행한다(S1302). 이때, 도 13a에 도시한 바와 같이, 연결 데이터(1301)는, DB 서버(300)의 일시 정보 기억부(280)에, (h+f) 비트의 바이너리 표현으로 구성된 데이터로서 기억된다.
DB 서버(300)의 전체 처리부(311)는, 연결 데이터(1301)로부터 데이터 DS(1302)를 취출하는 처리를 행한다(S1303).
S1303은, 예를 들어 도 13a에 도시한 바와 같이, DB 서버(300)가, 전체 처리부(311)가, 연결 데이터(1301)로부터, 데이터 DS(1302)에 해당하는 최초의 h 비트를 추출하면 된다.
DB 서버(300)의 전체 처리부(311)는, 데이터베이스 기억부(340)에 기억되어 있는, 데이터베이스(341)에 있는 은닉 등록 데이터(1304)를 읽어내어, 은닉 등록 데이터(1304)로부터, 데이터 DR(1306)을 취출하는 처리를 행한다(S1304).
S1304는, 예를 들어 도 13b에 도시한 바와 같이, DB 서버(300)가, 전체 처리부(311)가, 은닉 등록 데이터(1304)로부터, 데이터 PR(1305)에 해당하는 최초의 r 비트와, 데이터 GR(1307)에 해당하는 마지막 g 비트를 제거한 데이터를, 데이터 DR(1306)로 간주하여 취급하면 된다.
도 13c는 본 실시 형태에 있어서, DB 서버(300)가 작성하는 연결 데이터(1308)의 데이터 구성을 도시하는 블록도이다.
등록 클라이언트(100)가 데이터 CR(705)의 확률적 암호화에 이용한 데이터 HR(707)과, 검색 클라이언트(200)가 데이터 CS(1105)의 확률적 암호화에 이용한 데이터 PS(1106)의 상관 관계를 취할 수 있는지, 준동형 함수부(316)를 이용하여 검사한다.
DB 서버(300)의 전체 처리부(311)는, 데이터 DR(711)과 데이터 DS(1302)를 기본 연산부(317)에 입력하는 처리를 행한다(S1305).
등록 클라이언트(100)의 기본 연산부(117)는, 입력된 데이터 DR(1309)과 데이터 DS(1310)의 비트마다의 배타적 논리합인 XOR산을 계산하여, 그 계산 결과를 연결 데이터(1308)로서 출력하는 처리를 행한다(S1306).
S1305와 S1306에서는, 등록 클라이언트(100)의 입력 폼(622)에 입력된 정보를 감추기 위한 데이터 HR(707)과, 검색 클라이언트(200)가 입력 폼(1022)에 입력된 정보를 감추기 위한 데이터 PS(1106)의 관계식을 도출한다.
실제로, S1306의 xor산에 의해, 등록 클라이언트(100)와 검색 클라이언트(200)의 입력 정보가 동등한, 즉, 데이터 CS(705)와 데이터 CR(1105)의 데이터값이 동등한 경우, 이하의 수학식 6을 도출할 수 있다.
Figure 112013025110029-pct00006
도 13d는, 본 실시 형태에 있어서, DB 서버(300)가 작성하는 연결 데이터(1311)의 데이터 구성을 도시하는 블록도의 예이다.
DB 서버(300)의 전체 처리부(311)는, 연결 데이터(1308)와, 파라미터 기억부(360)에 기억된 함수 파라미터(361)를 준동형 함수부(316)에 입력한다(S1307).
DB 서버(300)의 준동형 함수부(316)는, 입력된 데이터를 준동형의 성질을 갖는 함수의 입력값으로 간주하고, 함수 파라미터(361)를 사용하여, 함수 계산의 출력값을 바이너리 열로 표현한 준동형 함수값을 출력하는 처리를 행한다. 이때, 준동형 함수값은, DB 서버(300)의 일시 정보 기억부(380)에는, h 비트의 데이터 FD(1312)로서 기억된다(S1308).
Figure 112013025110029-pct00007
또한, 수학식 7은, 수학식 3과, 수학식 5와, 수학식 6으로부터 도출할 수 있다.
DB 서버(300)의 전체 처리부(311)는, 연결 데이터(1301)로부터 데이터 FS(1303)를 취출하는 처리를 행한다(S1309).
S1309는, 예를 들어 도 13a에 도시한 바와 같이, DB 서버(300)가, 전체 처리부(311)가 입력한 연결 데이터(1301)로부터, 데이터 FS(1303)에 해당하는 마지막 f 비트를 추출하면 된다.
DB 서버(300)의 전체 처리부(311)는, 데이터 FD(1312)와 데이터 FS(1303)를, 기본 연산부(317)에 입력하는 처리를 행한다(S1310).
DB 서버(300의 기본 연산부(317)는, 입력된 데이터 FD(1312)와 데이터 FS(1303)의 비트마다의 배타적 논리합인 XOR산을 계산하여, 그 계산 결과를 데이터 DD(1313)로서 출력하는 처리를 행한다(S1311).
데이터 CS(705)와 데이터 CR(1105)의 데이터값이 동일한, 즉, 수학식 7이 성립되는 경우, S1311의 처리는, 수학식 8에 기초한다.
Figure 112013025110029-pct00008
따라서, 데이터 CS(705)와 데이터 CR(1105)의 데이터값이 동등한 경우, 데이터 DR(1313)의 데이터값은 데이터 FR(708)과 동등하다.
DB 서버(300)의 전체 처리부(311)는, 데이터 DR(1313)을, 압축 함수부(315)에 입력하는 처리를 행한다(S1312).
DB 서버(300)의 압축 함수부(315)는, 입력된 데이터를 변환하여, 해시값을 출력하는 처리를 행한다. 이때, 해시값은, 등록 클라이언트(100)의 일시 정보 기억부(180)에는, g 비트의 데이터 GD(1314)로서 기억된다(S1313).
DB 서버(300)의 전체 처리부(311)는, 데이터 GD(1314)와 데이터 GR(1307)을 기본 연산부(317)에 입력하는 처리를 행한다(S1314).
DB 서버(300)의 기본 연산부(317)는, 입력된 데이터 GD(1314)와, 데이터 GR(1307)의 비트마다의 배타적 논리합인 XOR산을 계산하여, 그 계산 결과를 데이터 ED(1315)로서 출력한다(S1315).
수학식 5가 성립되는 경우, 데이터 GD(1314)의 데이터값은 데이터 GR(1307)과 동등하게, 수학식 9로부터 데이터 ED(1315)의 데이터값은 0으로 된다.
Figure 112013025110029-pct00009
DB 서버(300)의 전체 처리부(311)는, 임의의 수만큼, 데이터 ED(1315)의 비트값이 0인지를 판정한다(S1316).
S1316에서 조사한 데이터 ED(1315)의 데이터값이 0이 아닌 경우, DB 서버(300)의 전체 처리부(311)는, 은닉 검색 쿼리(1300)와 은닉 등록 데이터(1304)의 관계가 없다고 판단한다. 이때, 검색 대상인 은닉 등록 데이터(1304) 모두 또는 검색 대상인 은닉 등록 데이터(1304)로부터 임의로 추출한 은닉 등록 데이터(1304) 모두 또는 검색한 은닉 등록 데이터(1304)가 일정수에 이를 때까지, DB 서버(300)의 제어부(310)는, S1304로 되돌아가, 은닉 등록 데이터(1304)를 검색하는 처리를 계속한다(S1317).
S1316에서 조사한 데이터 ED(1315)의 데이터값이 0인 경우, DB 서버(300)의 전체 처리부(311)는, 은닉 검색 쿼리(1300)와 은닉 등록 데이터(1304)의 관계가 있다고 판단한다. 이때, 판단된 은닉 등록 데이터(1304)와, 관련된 속성(901)에 대응하는 은닉 등록 데이터(1304)를, 은닉 검색 쿼리(1300)에 해당하는 검색 결과로 간주한다(S1318).
예를 들어, 도 9b에 도시한 바와 같이, 검색 결과는, 검색한 속성(901)이 성명에 관한 정보이며, 은닉 검색 쿼리(1300)에 관계가 있는 은닉 등록 데이터(1304)가 dk +1이라고 DB 서버(300)의 전체 처리부(311)가 판단한 경우, 판단된 은닉 등록 데이터(1304)인 dk +1과, 속성(901)이 대응하는 도 9b의 굵은 프레임의 점선으로 둘러싸인 은닉 등록 데이터(1304(dk, dk +2, dk +3, …))를, 은닉 검색 쿼리(1300)에 해당하는 검색 결과로 간주한다.
이상에 기재한 바와 같이, 등록 클라이언트(100)가, 매회 상이한 데이터값을 갖는 은닉 등록 데이터(712)를 작성하고, 검색 클라이언트(200)가, 매회 상이한 데이터값을 갖는 은닉 검색 쿼리(1111)를 작성한 경우에도, 수신한 은닉 검색 쿼리(1300)에 해당하는 은닉 등록 데이터(1304)를 정확하게 검색할 수 있다.
또한, 수학식 6에 나타낸 바와 같이, 검색 과정에 있어서, 데이터 CS(705)와 데이터 CR(1105)의 데이터값을 서로 상쇄하고 있어, DB 서버(300)에는, 데이터 CS(705)와 데이터 CR(1105)의 데이터값이 누설되지 않는다.
또한, 상기한 처리 수순은 고정된 것이 아니고, 처리 수순을 변경해도 좋다. 예를 들어, S1303과 S1305, S1304와 S1306의 처리 수순을 각각 변경하여, S1304에서 데이터 DR(1306)을 취출하고, S1306에서 데이터 DS(1302)를 취출해도 좋다. 마찬가지로, 다른 처리 수순을 변경해도 좋다.
또한, 상기한 각 처리를 담당하는 제어부(310)는 고정된 것이 아니고, 담당하는 제어부(310)를 변경해도 좋다. 예를 들어, DB 서버(300)가 암호화부(312)를 구비하는 경우, S1312에서 데이터 DR(1313)을, 압축 함수부(315)가 아니고, 암호화부(312)에 입력해도 좋고, S1314에서는, 암호화부(312)로부터 출력된 데이터를, 데이터 GD(1314)로서 일시 정보 기억부(380)에 기억해도 좋다.
또한, 검색 처리에 해당하는 판정 기준을 변경해도 좋다. 예를 들어, S1316에 있어서, 데이터 ED(1315)의 임의의 비트가 0과 동등한 것을 판정하는 것이 아니고, 변경 가능한 특정한 값과, 데이터 ED(1315)의 데이터값의 대소 관계 등의 판정식을 사용하여 판정하도록 해도 좋다.
또한, 은닉 검색 쿼리(1301)에 해당하는, 은닉 등록 데이터(1304)의 데이터 구성을 변경하여, 검색 결과를 구성해도 좋다. 예를 들어, 데이터 GR(1307)에 관한 정보는, 검색 결과에 포함하지 않도록 구성해도 상관없다.
또한, DB 서버(300)가 의사 난수 생성부(314)를 구비하면, 전체 처리부(311)가 의사 난수 생성부(314)에 비밀 키(351)를 입력하고, 의사 난수 생성부(314)가 출력한 의사 난수를, 데이터 GR(1307) 대신 연결한 데이터를, 은닉 검색 쿼리(1301)에 해당하는 은닉 등록 데이터(1304)로서, 검색 결과에 포함시켜도 좋다. 또한, 데이터 GR(1307)과 의사 난수를, 모두 은닉 검색 쿼리(1301)에 해당하는 은닉 등록 데이터(1304)로서, 검색 결과에 포함시켜도 좋고, 의사 난수 대신에 일반적인 인덱스를 사용해도 좋다.
또한, DB 서버(300)가 암호화부(313)를 구비하면, 전체 처리부(311)가, 은닉 검색 쿼리(1301)에 해당하는 은닉 등록 데이터(1304)와, 비밀 키(351)를 암호화부(313)에 입력하여, 출력한 데이터를, 검색 결과로 간주해도 좋다. 은닉 검색 쿼리(1301)에 해당하는 은닉 등록 데이터(1304)가 의사 난수 또는 일반적인 인덱스와 연결되어 있는 경우, 암호화부(313)에의 입력값이 수시로 상이하기 때문에, 암호화부(313)가 출력하는 데이터는, 난수로 간주할 수 있다. 따라서, DB 서버(300)가, 비록 부정 방수 가능한 네트워크(400) 경유로, 검색 클라이언트(200)에 송신해도, 검색 결과는 안전하다.
본 실시 형태에 있어서, S1209에서 기재한, 검색 클라이언트(200)의 제어부(210)가, 수신한 은닉 등록 데이터(1304) 모두 또는 일부에 대한 은닉 등록 데이터(1304)를 복호하여, 평문 등록 데이터(272)를 추출하는 처리 수순은, 이하, S1401 내지 S1411의 처리 수순에 따른다.
도 14a는, 본 실시 형태에 있어서, 검색 클라이언트(200)가, 통신부(203)로부터 수신한 은닉 등록 데이터(1401)의 데이터 구성을 도시하는 블록도의 예이다.
또한, 도 14b는, 본 실시 형태에 있어서, DB 서버(300)가, 은닉 등록 데이터(1401)를 복호화하는 과정에 있어서 작성하는 데이터 CR(1405)의 데이터 구성을 도시하는 블록도의 예이다.
또한, 도 14c는, 본 실시 형태에 있어서, DB 서버(300)가, 은닉 등록 데이터(1401)를 복호화하는 과정에 있어서 작성하는 연결 데이터(1409)의 데이터 구성을 도시하는 블록도의 예이다.
이하에서는, 도 14a와, 도 14b와, 도 14c와, 도 14d를 사용하여, 검색 클라이언트(200)가, 은닉 등록 데이터(1401)로부터 평문 등록 데이터(1410)를 복호화하는 처리 수순을 설명한다.
검색 클라이언트(200)의 전체 처리부(211)는, 통신부(203)를 사용하여, 은닉 등록 데이터(1401)를 수신하는 처리를 행한다. 이때, 검색 클라이언트(200)는, 등록 데이터(1401)를, 검색 쿼리 기억부(230)에, (r+h+g) 비트의 바이너리 표현으로 구성된 데이터로서 기억한다.
검색 클라이언트(200)의 전체 처리부(211)는, 은닉 등록 데이터(1401)로부터 데이터 PR(1402)을 취출하는 처리를 행한다(S1401).
S1401은, 예를 들어 도 14에 도시한 바와 같이, 검색 클라이언트(200)가, 전체 처리부(211)가 입력한 은닉 등록 데이터(1401)로부터, 데이터 PR(1402)에 해당하는 최초의 r 비트를 추출하면 된다.
검색 클라이언트(200)의 전체 처리부(211)는, 비밀 키 기억부(250)로부터 비밀 키(251)를 읽어내어, 비밀 키(251)와 데이터 PR(1402)을 압축 함수부(215)에 입력하는 처리를 행한다(S1402).
검색 클라이언트(200)의 압축 함수부(215)는, 입력된 데이터를 변환하여, 해시값을 출력하는 처리를 행한다(S1403). 이때, 해시값은, 검색 클라이언트(200)의 일시 정보 기억부(280)에는, h 비트의 데이터 HS(1407)로서 기억된다.
도 14b는 본 실시 형태에 있어서, DB 서버(300)가 작성하는 데이터 CR(1405)의 데이터 구성을 도시하는 블록도이다.
검색 클라이언트(200)의 전체 처리부(211)는, 데이터 DR(1403)과 데이터 HS(1407)를 기본 연산부(217)에 입력하는 처리를 행한다(S1404).
검색 클라이언트(200)의 기본 연산부(217)는, 입력된 데이터 DR(1403)과 데이터 HS(1407)의 비트마다의 배타적 논리합인 XOR산을 계산하여, 그 계산 결과를 데이터 CR(1405)로서 출력하는 처리를 행한다(S1405).
S1407의 xor산에서는, 데이터 HR(1407)과 데이터 DR(1403)과 데이터 CR(1405)은 수학식 10을 만족한다.
Figure 112013025110029-pct00010
또한, 수학식 10은, 수학식 4를 변형한 수식이다.
검색 클라이언트(200)의 전체 처리부(211)는, 기본 연산부(217)가 출력한 데이터와, 비밀 키 기억부(250)에 기억된 비밀 키(251)를 복호화부(213)에 입력하는 처리를 행한다(S1406).
검색 클라이언트(200)의 복호화부는, 입력된 데이터 CR(1405)을 복호화하여, 연결 데이터(1409)를 출력하는 처리를 행한다(S1407). 이때, 도 14c에 도시한 바와 같이, 연결 데이터(1409)는, 검색 클라이언트(200)의 일시 정보 기억부(280)에, (m+e) 비트의 데이터로서 기억된다.
검색 클라이언트(200)의 전체 처리부(211)는, 연결 데이터(1409)로부터 오류 검사 데이터(1411)를 취출하는 처리를 행한다(S1408).
예를 들어, 도 14c에 도시한 바와 같이, 검색 클라이언트(200)가, 전체 처리부(211)가 입력한 연결 데이터(1403)로부터, 데이터 끝의 e 비트를 오류 검사 데이터(1411)로 간주하여 추출하면 된다.
검색 클라이언트(200)의 전체 처리부(211)는, 파라미터 기억부(260)에 기억된 검사 파라미터(262)를 읽어들여, 검사용 데이터로 변환한 데이터와, 오류 검사 데이터(1411)를 기본 연산부(217)에 입력하는 처리를 행한다(S1409).
검색 클라이언트(200)의 기본 연산부(217)는, 입력된, 검사용으로 변환된 데이터와, 오류 검사 데이터(1411)를 비교하여, 그 비교 결과를 출력하는 처리를 행한다(S1410).
예를 들어, 바이너리 열로 표현된 검사용 데이터와 오류 검사 데이터가 동등하면, 등호를 나타내는 비트 (1)을 출력하고, 동등하지 않은 경우에는, 부등호를 나타내는 비트 (0)을 출력하는 처리를 행한다.
예를 들어, 기본 연산부(217)가, 등호을 나타내는 비트 (1)을 출력한 경우에는, 검색 클라이언트(200)의 전체 처리부(211)는, 정확한 검색 결과라고 판단하는 처리를 행한다. 또한, 기본 연산부(217)가, 부등호를 나타내는 비트 (0)을 출력한 경우에는, DB 서버(300)의 전체 처리부(311)는, 잘못된 검색 결과라고 판단하는 처리를 행한다.
검색 클라이언트(200)의 전체 처리부(211)는, 기본 연산부(217)가 출력한 결과에 따라, 연결 데이터(1402)로부터 추출한 평문 등록 데이터(1410)를 검색 결과로 하는 처리를 행하여, 평문 등록 데이터(1410)를 복원하는 처리(S1209)를 종료한다(S1411). 예를 들어, 도 14c에 도시한 바와 같이, 검색 클라이언트(200)가, 전체 처리부(211)가 입력한 연결 데이터(1409)로부터, 데이터 처음의 m 비트를 평문 등록 데이터(1410)로 간주한다.
또한, DB 서버(300)의 부정 대책에 만전을 기하고 싶은 경우, 검색에 해당한 검색 결과는 DB 서버(300)로부터 삭제하고, 복호화한 평문 등록 데이터(1410)의 순서를 랜덤하게 셔플한 후, 검색 클라이언트(200) 또는 등록 클라이언트(100)로부터, DB 서버(300)에 은닉 등록 데이터를 재등록하도록 처리해도 좋다.
100: 등록 클라이언트
200: 검색 클라이언트
300: DB 서버
400: 네트워크
500: 컴퓨터
101, 201, 301: 입력부
102, 202, 302: 출력부
103, 203, 303: 통신부
110, 210, 310: 제어부
111, 211, 311: 전체 처리부
112, 212: 암호화부
213, 313: 복호화부
114, 214: 의사 난수 생성부
115, 215, 315: 압축 함수부
116, 216, 316: 준동형 함수부
117, 217, 317: 기본 연산부
120, 220, 320: 기억부
130: 등록 데이터 기억부
131, 272, 701, 1410: 평문 등록 데이터
132, 271, 712, 1304, 1401: 은닉 등록 데이터
133, 233: 속성
230, 330: 검색 쿼리 기억부
231, 1101: 평문 검색 쿼리
232, 332, 1111, 1300: 은닉 검색 쿼리
340: 데이터베이스 기억부
341: 데이터베이스
150, 250, 350: 비밀 키 기억부
151, 251, 351: 비밀 키
160, 260, 360: 파라미터 기억부
161, 261, 361: 함수 파라미터
162, 262: 검사 파라미터
270: 수신 데이터 기억부
180, 280, 380: 일시 정보 기억부
501: CPU(Central Processing Unit)
502: 메모리
503: 외부 기억 장치
508: 기억 매체
507: 판독·기입 장치
506: 입력 장치
505: 출력 장치
504: 통신 장치
509: 내부 통신선
600: 출력부(101)의 표시 내용
610: 관리 방법의 선택부
620: 관리 폼부
621, 1011: 속성
622, 1022: 입력 폼
650: 실행 버튼
660, 1060: 클리어 버튼
1000: 출력부(102)의 표시 내용
1010: 검색 항목부
1020: 검색 폼부
1050: 검색 버튼
702, 1411: 오류 검사 데이터
703, 704, 1103, 1104, 1108, 1301, 1308, 1311, 1409: 연결 데이터
705: 데이터 CR
706: 데이터 PR
707: 데이터 HR
708: 데이터 FR
709: 데이터 GR
711: 데이터 DR
1102: 오류 검사 데이터
1105: 데이터 CS
1106: 데이터 PS
1107: 데이터 FS
1110: 데이터 DS
1302: 데이터 DS
1303: 데이터 FS
1305: 데이터 PR
1306: 데이터 DR
1307: 데이터 GR
1309: 데이터 DR
1310: 데이터 DS
1312: 데이터 FD
1313: 데이터 DD
1314: 데이터 GD
1315: 데이터 ED
1402: 데이터 PR
1403: 데이터 DR
1404: 데이터 GR
1405: 데이터 CR
1407: 데이터 HS

Claims (10)

  1. 확률적 암호화 방식에 의해 암호화된 등록 데이터를 기억하는 DB 서버와,
    검색 클라이언트를 포함하고,
    상기 검색 클라이언트로부터 수신한, 상기 DB 서버가 기억하는 데이터의 검색을 요구하는 검색 쿼리에 따라, 상기 DB 서버가 기억하는 상기 데이터의 암호화를 해제하지 않고, 검색하는 검색 가능 암호 처리 시스템으로서,
    상기 확률적 암호화 방식은, 동일한 데이터값의 평문으로부터 상이한 데이터값의 암호문을 생성하는 데이터의 암호화 방식이며,
    상기 검색 클라이언트는, 상기 검색 쿼리를 기억하는 기억부와, 상기 검색 쿼리를 암호화하는 제어부와, 암호화한 상기 검색 쿼리를 송신하는 통신부를 구비하고,
    상기 검색 클라이언트에 있어서의 상기 제어부는, 제1 난수를 생성하는 난수 생성부와, 상기 제1 난수에 의해 상기 검색 쿼리를 상기 확률적 암호화 방식으로 암호화하는 기본 연산부와, 상기 제1 난수를 입력값으로 하는 준동형 함수의 함수값을 출력값으로 하는 준동형 함수부를 구비하고,
    상기 검색 클라이언트에 있어서의 상기 제어부는, 상기 준동형 함수부가 출력한 상기 함수값을 변환하여, 해시값을 출력하는 압축 함수부를 구비하고,
    상기 DB 서버는, 상기 검색 쿼리를 수신하는 통신부와, 암호화된 상기 검색 쿼리와 암호화된 상기 등록 데이터를 기억하는 기억부와, 기억하는 상기 등록 데이터가 상기 검색 쿼리에 해당하는지를 결정하는 제어부를 구비하고,
    상기 DB 서버에 있어서의 상기 제어부는, 암호화된 상기 등록 데이터와 암호화된 상기 검색 쿼리의 난수의 상관을 도출하는 전체 처리부와, 상기 상관을 입력값으로 하는 준동형 함수의 함수값을 출력값으로 하는 준동형 함수부를 구비하고,
    상기 검색 클라이언트가 송신하는 암호화된 상기 검색 쿼리는, 상기 기본 연산부에 의해, 상기 확률적 암호화 방식으로 암호화된 암호문과, 상기 압축 함수부가 출력하는 상기 해시값으로 구성되는 데이터가 암호화되어 있는 것을 특징으로 하는, 검색 가능 암호 처리 시스템.
  2. 확률적 암호화 방식에 의해, 암호화된 등록 데이터를 기억하는 DB 서버와,
    검색 클라이언트를 포함하고,
    상기 검색 클라이언트로부터 수신한, 상기 DB 서버가 기억하는 데이터의 검색을 요구하는 검색 쿼리에 따라, 상기 DB 서버가 기억하는 상기 데이터의 암호화를 해제하지 않고, 검색하는 검색 가능 암호 처리 시스템으로서,
    상기 확률적 암호화 방식은, 동일한 데이터값의 평문으로부터 상이한 데이터값의 암호문을 생성하는 데이터의 암호화 방식이며,
    상기 검색 클라이언트는, 상기 검색 쿼리를 기억하는 기억부와, 상기 검색 쿼리를 암호화하는 제어부와, 암호화한 상기 검색 쿼리를 송신하는 통신부를 구비하고,
    상기 검색 클라이언트에 있어서의 상기 제어부는, 난수를 생성하는 난수 생성부와, 상기 난수에 의해 상기 검색 쿼리를 상기 확률적 암호화 방식으로 암호화하는 기본 연산부와, 상기 난수를 입력값으로 하는 준동형 함수의 함수값을 출력값으로 하는 준동형 함수부를 구비하고,
    상기 DB 서버는, 상기 검색 쿼리를 수신하는 통신부와, 암호화된 상기 검색 쿼리와 암호화된 상기 등록 데이터를 기억하는 기억부와, 기억하는 상기 등록 데이터가 상기 검색 쿼리에 해당하는지를 결정하는 제어부를 구비하고,
    상기 DB 서버에 있어서의 상기 제어부는, 암호화된 상기 등록 데이터와, 암호화된 상기 검색 쿼리의 난수의 상관을 도출하는 전체 처리부와, 상기 상관을 입력값으로 하는 준동형 함수의 함수값을 출력값으로 하는 준동형 함수부를 구비하고,
    상기 검색 클라이언트가 송신하는 암호화된 상기 검색 쿼리는, 상기 기본 연산부에 의해, 상기 확률적 암호화 방식으로 암호화된 상기 데이터와, 상기 준동형 함수부가 출력한 상기 함수값으로 구성되는 데이터가 암호화되는 것을 특징으로 하는, 검색 가능 암호 처리 시스템.
  3. 제1항에 있어서,
    상기 확률적 암호화 방식에 의해, 상기 등록 데이터를 암호화하는 등록 클라이언트를 갖고,
    상기 DB 서버의 상기 통신부는, 암호화한 상기 등록 데이터를 수신하고, 상기 DB 서버의 상기 기억부는 상기 등록 데이터를 기억하고,
    상기 등록 클라이언트는, 상기 등록 데이터를 기억하는 기억부와, 상기 등록 데이터를 암호화하는 제어부와, 암호화한 상기 등록 데이터를 송신하는 통신부를 구비하고,
    상기 등록 클라이언트에 있어서의 상기 제어부는, 제2 난수를 생성하는 난수 생성부와, 상기 제2 난수에 의해 상기 등록 데이터를 상기 확률적 암호화 방식으로 암호화하는 기본 연산부와, 상기 제2 난수를 입력값으로 하는 준동형 함수의 함수값을 출력값으로 하는 준동형 함수부를 구비하는 것을 특징으로 하는, 검색 가능 암호 처리 시스템.
  4. 제3항에 있어서,
    상기 등록 클라이언트가 송신하는 암호화된 상기 등록 데이터는, 상기 난수 생성부가 출력한 상기 제2 난수와, 상기 기본 연산부에 의해 상기 확률적 암호화 방식으로 암호화된 암호문과, 상기 준동형 함수부가 출력하는 상기 함수값으로 구성되는 것을 특징으로 하는, 검색 가능 암호 처리 시스템.
  5. 제4항에 있어서,
    상기 DB 서버의 상기 통신부는, 상기 검색 쿼리에 해당하는, 암호화된 상기 등록 데이터를 송신하고,
    상기 검색 클라이언트의 상기 통신부는, 암호화된 상기 등록 데이터를 수신하고, 상기 검색 클라이언트의 상기 제어부는, 상기 등록 데이터를 복호화하고,
    상기 검색 클라이언트의 상기 제어부는, 암호화된 상기 등록 데이터를 암호화한 제3 난수를 출력하는 압축 함수부를 구비하고, 상기 검색 클라이언트의 상기 기본 연산부는, 상기 등록 데이터의 암호화를 해제하는 것을 특징으로 하는, 검색 가능 암호 처리 시스템.
  6. 제5항에 있어서,
    상기 DB 서버의 상기 기본 연산부는, 상기 등록 데이터로부터 임의의 데이터를 추출하여, 상기 압축 함수부가 출력한 상기 제3 난수로부터, 지정된 데이터 길이분을 검사하는 것을 특징으로 하는, 검색 가능 암호 처리 시스템.
  7. 제6항에 있어서,
    상기 등록 클라이언트의 상기 기억부는, 상기 등록 클라이언트의 상기 준동형 함수부에 입력 가능한 함수 파라미터를 기억하고,
    상기 검색 클라이언트의 상기 기억부는, 상기 검색 클라이언트의 상기 준동형 함수부에 입력 가능한 함수 파라미터를 기억하고,
    상기 DB 서버의 상기 기억부는, 상기 DB 서버의 상기 준동형 함수부에 입력 가능한 함수 파라미터를 기억하는 것을 특징으로 하는, 검색 가능 암호 처리 시스템.
  8. 제7항에 있어서,
    상기 검색 클라이언트의 상기 기억부는, 암호화를 해제한 상기 등록 데이터의 검사용 파라미터를 기억하고,
    상기 검색 클라이언트는, 암호화를 해제한 상기 등록 데이터로부터 검사용 데이터를 추출하여, 상기 검사용 파라미터와의 관계를 검사하는 전체 처리부를 구비하는 것을 특징으로 하는, 검색 가능 암호 처리 시스템.
  9. 제8항에 있어서,
    상기 등록 클라이언트는, 상기 등록 데이터를 결정적 암호화 방식으로 암호화하는 암호화부를 구비하고,
    상기 결정적 암호화 방식은, 동일한 데이터값의 평문으로부터 데이터값이 동등한 암호문을 생성하는 데이터의 암호화 방식인 것을 특징으로 하는, 검색 가능 암호 처리 시스템.
  10. 제9항에 있어서,
    상기 등록 클라이언트의 상기 기억부는, 암호화되어 있지 않은, 등록용 데이터를 기억하고, 상기 등록 클라이언트의 상기 기억부에 기억한 검사용 파라미터로부터, 오류 검사용 데이터를 추출하여, 상기 등록용 데이터와 결합시키는 전체 제어부를 구비하는 것을 특징으로 하는, 검색 가능 암호 처리 시스템.
KR1020137007399A 2010-12-08 2011-11-29 검색 가능 암호 처리 시스템 KR101467130B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2010-273556 2010-12-08
JP2010273556A JP5412414B2 (ja) 2010-12-08 2010-12-08 検索可能暗号処理システム
PCT/JP2011/077588 WO2012077541A1 (ja) 2010-12-08 2011-11-29 検索可能暗号処理システム

Publications (2)

Publication Number Publication Date
KR20130056314A KR20130056314A (ko) 2013-05-29
KR101467130B1 true KR101467130B1 (ko) 2014-11-28

Family

ID=46207032

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137007399A KR101467130B1 (ko) 2010-12-08 2011-11-29 검색 가능 암호 처리 시스템

Country Status (6)

Country Link
US (1) US9275250B2 (ko)
EP (2) EP3012754B1 (ko)
JP (1) JP5412414B2 (ko)
KR (1) KR101467130B1 (ko)
CN (1) CN103119594B (ko)
WO (1) WO2012077541A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102613985B1 (ko) 2023-03-31 2023-12-14 고려대학교산학협력단 탐색 가능한 암호화에서 역방향 안정성 하향 공격에 대한 방어 방법, 장치 및 시스템
KR102613986B1 (ko) 2023-03-31 2023-12-14 고려대학교산학협력단 신뢰 실행 환경 기반의 동적 탐색 가능한 암호화에서 정보 유출을 최소화하는 방법, 장치 및 시스템

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2680251B1 (en) * 2011-02-22 2016-05-25 Mitsubishi Electric Corporation Search system, search method for search system, information processing device, search program, corresponding keyword management device and corresponding keyword management system
WO2012121152A1 (ja) * 2011-03-04 2012-09-13 日本電信電話株式会社 代理計算システム、方法、依頼装置及びプログラム
JP5622714B2 (ja) * 2011-12-27 2014-11-12 株式会社東芝 情報処理装置および電力利用調整システム
WO2013111284A1 (ja) 2012-01-25 2013-08-01 三菱電機株式会社 データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
US9087212B2 (en) * 2012-01-25 2015-07-21 Massachusetts Institute Of Technology Methods and apparatus for securing a database
EP2862115B1 (en) * 2012-06-18 2021-04-07 OLogN Technologies AG Secure password management systems, methods and apparatuses
US9665722B2 (en) * 2012-08-10 2017-05-30 Visa International Service Association Privacy firewall
WO2014092105A1 (ja) 2012-12-12 2014-06-19 日本電気株式会社 データベース検索装置、データベース検索方法及びプログラム
JP2014119486A (ja) 2012-12-13 2014-06-30 Hitachi Solutions Ltd 秘匿検索処理システム、秘匿検索処理方法、および秘匿検索処理プログラム
JP5889177B2 (ja) * 2012-12-25 2016-03-22 株式会社日立製作所 データベースシステム及びその更新方法
JP5963936B2 (ja) * 2013-02-25 2016-08-03 三菱電機株式会社 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム
US9286488B2 (en) * 2013-03-13 2016-03-15 Northrop Grumman Systems Corporation System and method for secure database queries
EP3012817A4 (en) * 2013-06-18 2017-02-22 Hitachi, Ltd. Storage count verification system
US9552492B2 (en) * 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US10122714B2 (en) 2013-08-01 2018-11-06 Bitglass, Inc. Secure user credential access system
US9553867B2 (en) 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
JP6144992B2 (ja) 2013-08-08 2017-06-07 株式会社日立製作所 検索可能暗号処理システム及び方法
JP5937556B2 (ja) * 2013-09-30 2016-06-22 日本電信電話株式会社 秘密計算装置、秘匿検索システム、秘密計算方法、秘匿検索方法、プログラム
JPWO2015063905A1 (ja) * 2013-10-31 2017-03-09 株式会社日立製作所 データ分析システム
JP6208586B2 (ja) 2014-01-16 2017-10-04 株式会社日立製作所 検索可能暗号処理システムおよび検索可能暗号処理方法
US9363243B2 (en) 2014-03-26 2016-06-07 Cisco Technology, Inc. External indexing and search for a secure cloud collaboration system
WO2015163822A1 (en) * 2014-04-23 2015-10-29 Agency For Science, Technology And Research Method and system for generating / decrypting ciphertext, and method and system for searching ciphertexts in a database
US9558366B2 (en) * 2014-05-12 2017-01-31 Compugroup Medical Se Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method
KR101583311B1 (ko) * 2014-08-28 2016-01-08 고려대학교 산학협력단 키 교환 방법 및 바디 센서
WO2016063344A1 (ja) * 2014-10-21 2016-04-28 三菱電機株式会社 サーバ装置及び検索システム及び端末装置及び検索方法及びサーバプログラム及び端末プログラム
US10484182B2 (en) 2014-11-05 2019-11-19 Nec Corporation Encrypted text verification system, method, and recording medium
EP3217293B1 (en) * 2014-11-07 2019-05-08 Hitachi, Ltd. Method for retrieving encrypted graph, system for retrieving encrypted graph, and computer
US9537838B2 (en) 2014-12-22 2017-01-03 Sap Se Adjustable proxy re-encryption
US9547720B2 (en) 2014-12-24 2017-01-17 Sap Se Access control for encrypted query processing
US20180018147A1 (en) * 2015-01-15 2018-01-18 Mitsubishi Electric Corporation Random number expanding device, random number expanding method, and non-transitory computer readable recording medium storing random number expanding program
JPWO2016120975A1 (ja) * 2015-01-26 2017-06-08 株式会社日立製作所 データ集計分析システム及びその方法
JP6400743B2 (ja) 2015-02-10 2018-10-03 株式会社RNAi 端末装置、データベースサーバおよび計算システム
WO2016178655A1 (en) * 2015-05-01 2016-11-10 Hewlett Packard Enterprise Development Lp Secure multi-party information retrieval
KR102423885B1 (ko) * 2015-05-08 2022-07-21 한국전자통신연구원 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템
US10404669B2 (en) 2015-06-09 2019-09-03 Skyhigh Networks, Llc Wildcard search in encrypted text
US10176207B1 (en) 2015-06-09 2019-01-08 Skyhigh Networks, Llc Wildcard search in encrypted text
CN104978536B (zh) * 2015-07-08 2018-04-17 合肥高维数据技术有限公司 一种隐私保护云图像管理系统
US9894042B2 (en) * 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type
US20180248684A1 (en) * 2015-08-18 2018-08-30 Nokia Solutions And Networks Oy Method and system for database queries
JP6961324B2 (ja) * 2015-08-25 2021-11-05 株式会社日立製作所 検索可能暗号処理システム
JP6701646B2 (ja) 2015-09-02 2020-05-27 富士通株式会社 情報処理装置、情報処理システム及び情報管理方法
JP5969681B1 (ja) * 2015-10-30 2016-08-17 株式会社第一コンピュータサービス 秘密情報管理システム
US10783268B2 (en) 2015-11-10 2020-09-22 Hewlett Packard Enterprise Development Lp Data allocation based on secure information retrieval
WO2017122326A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
US11005645B2 (en) 2016-01-15 2021-05-11 Mitsubishi Electric Corporation Encryption device, encryption method, computer readable medium, and storage device
CN108370312B (zh) * 2016-01-18 2021-01-05 三菱电机株式会社 加密装置、检索装置、计算机能读取的记录介质、加密方法和检索方法
EP3438846B1 (en) * 2016-03-28 2022-07-20 Hitachi, Ltd. Database system and data retrieval system
US11405192B2 (en) * 2016-08-24 2022-08-02 Robert Bosch Gmbh Searchable symmetric encryption system and method of processing inverted index
US11080301B2 (en) 2016-09-28 2021-08-03 Hewlett Packard Enterprise Development Lp Storage allocation based on secure data comparisons via multiple intermediaries
US10230703B1 (en) 2016-10-27 2019-03-12 Cisco Technology, Inc. Providing multiple levels of group access to partial data objects
JP6653246B2 (ja) * 2016-12-08 2020-02-26 株式会社日立製作所 計算機システム及びデータ管理方法
CN110062941B (zh) * 2016-12-20 2022-07-15 日本电信电话株式会社 消息发送系统及方法、通信终端、服务器装置、记录介质
US11128452B2 (en) * 2017-03-25 2021-09-21 AVAST Software s.r.o. Encrypted data sharing with a hierarchical key structure
WO2018198192A1 (ja) 2017-04-25 2018-11-01 三菱電機株式会社 検索装置、検索システム、検索方法及び検索プログラム
WO2018211670A1 (ja) 2017-05-18 2018-11-22 三菱電機株式会社 検索装置、タグ生成装置、クエリ生成装置、秘匿検索システム、検索プログラム、タグ生成プログラム及びクエリ生成プログラム
US10846423B2 (en) * 2017-08-11 2020-11-24 Palo Alto Research Center Incorporated System and architecture for analytics on encrypted databases
EP3675086B1 (en) 2017-09-12 2021-10-27 Mitsubishi Electric Corporation Registration terminal, search terminal, search server, search system, registration program, and search program
JP6619401B2 (ja) * 2017-09-21 2019-12-11 三菱スペース・ソフトウエア株式会社 データ検索システム、データ検索方法およびデータ検索プログラム
US10963429B2 (en) 2017-10-11 2021-03-30 Lognovations Holdings, Llc Method and system for content agnostic file indexing
US11138152B2 (en) 2017-10-11 2021-10-05 Lognovations Holdings, Llc Method and system for content agnostic file indexing
US10866822B2 (en) * 2017-11-28 2020-12-15 Bank Of America Corporation Computer architecture for emulating a synchronous correlithm object processing system
GB201720341D0 (en) * 2017-12-06 2018-01-17 Trisent Communications Ltd Personal data management
WO2019142268A1 (ja) 2018-01-17 2019-07-25 三菱電機株式会社 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム
JP6840692B2 (ja) * 2018-02-22 2021-03-10 株式会社日立製作所 計算機システム、接続装置、及びデータ処理方法
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
JP7249248B2 (ja) * 2019-08-30 2023-03-30 株式会社日立製作所 秘匿情報処理システム及び秘匿情報処理方法
US11436351B1 (en) * 2019-12-18 2022-09-06 Bae Systems Information And Electronic Systems Integration Inc. Homomorphic encryption of secure data
JP7325396B2 (ja) * 2020-12-25 2023-08-14 株式会社日立製作所 データファイル暗号化送受信システム及びデータファイル暗号化送受信方法
KR102401485B1 (ko) * 2021-12-30 2022-05-24 주식회사 디사일로 동형 암호화된 데이터 처리 방법 및 시스템
JP2023104089A (ja) 2022-01-17 2023-07-28 株式会社日立製作所 計算機システム及び鍵交換方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278970A (ja) 2001-03-16 2002-09-27 Ricoh Co Ltd 文書管理システム
JP2007114494A (ja) 2005-10-20 2007-05-10 Nippon Telegr & Teleph Corp <Ntt> 秘匿計算方法及び装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030140112A1 (en) * 1999-11-04 2003-07-24 Satish Ramachandran Electronic messaging system method and apparatus
US7362868B2 (en) * 2000-10-20 2008-04-22 Eruces, Inc. Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US7472105B2 (en) * 2004-10-19 2008-12-30 Palo Alto Research Center Incorporated System and method for providing private inference control
CN101593196B (zh) * 2008-05-30 2013-09-25 日电(中国)有限公司 用于快速密文检索的方法、装置和系统
CN101739400B (zh) * 2008-11-11 2014-08-13 日电(中国)有限公司 生成索引的方法和装置以及检索方法和装置
US9684710B2 (en) * 2009-05-28 2017-06-20 Microsoft Technology Licensing, Llc Extending random number summation as an order-preserving encryption scheme

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278970A (ja) 2001-03-16 2002-09-27 Ricoh Co Ltd 文書管理システム
JP2007114494A (ja) 2005-10-20 2007-05-10 Nippon Telegr & Teleph Corp <Ntt> 秘匿計算方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102613985B1 (ko) 2023-03-31 2023-12-14 고려대학교산학협력단 탐색 가능한 암호화에서 역방향 안정성 하향 공격에 대한 방어 방법, 장치 및 시스템
KR102613986B1 (ko) 2023-03-31 2023-12-14 고려대학교산학협력단 신뢰 실행 환경 기반의 동적 탐색 가능한 암호화에서 정보 유출을 최소화하는 방법, 장치 및 시스템

Also Published As

Publication number Publication date
JP5412414B2 (ja) 2014-02-12
EP2650798A4 (en) 2016-01-27
EP3012754A1 (en) 2016-04-27
EP2650798A1 (en) 2013-10-16
US20130262863A1 (en) 2013-10-03
US9275250B2 (en) 2016-03-01
CN103119594A (zh) 2013-05-22
WO2012077541A1 (ja) 2012-06-14
EP3012754B1 (en) 2019-10-09
CN103119594B (zh) 2016-05-18
KR20130056314A (ko) 2013-05-29
JP2012123614A (ja) 2012-06-28

Similar Documents

Publication Publication Date Title
KR101467130B1 (ko) 검색 가능 암호 처리 시스템
JP6144992B2 (ja) 検索可能暗号処理システム及び方法
Brown et al. Clarifying chaos: Examples and counterexamples
CN106776904B (zh) 一种不可信云计算环境中支持动态验证的模糊查询加密方法
US10489604B2 (en) Searchable encryption processing system and searchable encryption processing method
EP2731041B1 (en) Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method
JP6961324B2 (ja) 検索可能暗号処理システム
JP2004523183A (ja) データ、情報および機能変換のカモフラージュのための方法および装置
CN104052740A (zh) 云存储中可验证的基于词典的可搜索加密方法
CN108370312B (zh) 加密装置、检索装置、计算机能读取的记录介质、加密方法和检索方法
JP2013145420A (ja) 暗号化データの高速な類似検索処理システム
CN111475690A (zh) 字符串的匹配方法和装置、数据检测方法、服务器
Babatunde et al. Information security in health care centre using cryptography and steganography
CN113132345B (zh) 具有可搜索功能的代理隐私集合求交方法
Jayaraman et al. Secure biomedical document protection framework to ensure privacy through blockchain
KR101422759B1 (ko) 데이터 위탁 환경에서 결탁을 방지하는 데이터 저장 및 공유 방법
KR20100003093A (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
JP2012247882A (ja) 情報のマッチングシステム
CN116484409B (zh) 一种基于知识图谱的联盟链区块链管理系统
EP4250163A1 (en) Data sharing system, data sharing method, and data sharing program
Lang et al. A covert communication model of Ethereum based on smart contracts
AJALA Design and Implementation of an Improved Electronic Document Management System (Encodoc)
Bulină Secure Data Search via Searchable Encryption Using Hyperledger Fabric Smart Contracts
WO2023137506A1 (en) The bastionne blockchain
EP3935782A1 (en) A system and method for selective transparency for public ledgers

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181101

Year of fee payment: 5