KR102517582B1 - 프라이버시가 강화된 개인 서치 인덱스 - Google Patents

프라이버시가 강화된 개인 서치 인덱스 Download PDF

Info

Publication number
KR102517582B1
KR102517582B1 KR1020187002619A KR20187002619A KR102517582B1 KR 102517582 B1 KR102517582 B1 KR 102517582B1 KR 1020187002619 A KR1020187002619 A KR 1020187002619A KR 20187002619 A KR20187002619 A KR 20187002619A KR 102517582 B1 KR102517582 B1 KR 102517582B1
Authority
KR
South Korea
Prior art keywords
opaque
document
digest
encrypted
search index
Prior art date
Application number
KR1020187002619A
Other languages
English (en)
Other versions
KR20180022889A (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 KR20180022889A publication Critical patent/KR20180022889A/ko
Application granted granted Critical
Publication of KR102517582B1 publication Critical patent/KR102517582B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • 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
    • 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/6245Protecting personal data, e.g. for financial or medical purposes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

본 개시의 예는 개인 서치 인덱스의 프라이버시를 강화하는 시스템 및 방법을 설명한다. 몇몇 측면들에서, 개인 클리어 텍스트 문서는 제1 디바이스 상에서 암호화된 문서 다이제스트 및 암호화된 문서를 발생시키는데 사용될 수 있다. 제2 디바이스는 문서 다이제스트를 해독하고, 해독된 문서 다이제스트에 기초하여 개인 서치 인덱스를 구축하고, 암호화된 문서를 데이터 저장소에 저장할 수 있다. 제1 디바이스는 암호화된 문서에 대해 제2 디바이스 상의 개인 서치 인덱스를 쿼리하는 데 사용되는 클리어 텍스트 서치 쿼리를 나중에 수신할 수 있다.

Description

프라이버시가 강화된 개인 서치 인덱스
클라우드 저장 시스템은, 사용자가 파일을 하나 이상의 저장 디바이스에 업로드 및 동기화하고 나중에 웹 브라우저 또는 사용자의 로컬 디바이스로부터 파일을 액세스할 수 있게 해주는 파일 호스팅 서비스이다. 클라우드 저장 시스템 내에서 파일 서치를 수행하면, 문서, 문서 인덱스 및 메타 데이터가 클라우드 저장 시스템 서비스 제공 업체에게 클리어 텍스트(cleartext)로서 액세스될 수 있으므로, 여러 프라이버시 문제가 제기된다. 이러한 프라이버시 문제를 해결하기 위해 다양한 기술과 접근 방식이 개발되었지만, 이러한 솔루션은 문서를 클리어 텍스트로 클라우드 저장 시스템에 제공하는 데 의존해 왔다. 결과적으로 만일 클라우드 저장 시스템이 침해 당하면, 그 서비스를 사용하여 데이터를 저장하는 모든 사용자가 잠재적으로 위험에 처할 수 있다.
본 명세서에 개시된 측면들은 이들 및 다른 일반적인 고려 사항과 관련하여 이루어졌다. 또한, 비교적 구체적인 문제가 논의될 수 있지만, 이 예들은 본 개시의 배경 기술 또는 다른 곳에서 식별된 특정 문제를 해결하는 것에 국한되어서는 안 된다는 것을 이해해야 한다.
이 요약은 이하 상세한 설명 섹션에서 더 설명되는 단순화된 형태의 개념의 선택을 소개하기 위해 제공된다. 이 요약은, 청구된 대상(claimed subject matter)의 주요 특징 또는 필수 특징을 식별하기 위한 것이 아니며, 청구된 대상의 범위를 결정하는 데 도움을 주기 위한 것도 아니다.
본 개시의 실시 예는 개인 서치 인덱스의 프라이버시를 향상시키기 위한 시스템 및 방법을 설명한다. 일부 측면들에서, 제2 디바이스(예를 들어, 서버 디바이스)와 통신하는 제1 디바이스(예를 들어, 클라이언트 디바이스) 상에 개인 클리어 텍스트 문서가 생성(create)된다. 제2 디바이스는 (예를 들어, 클라우드 기반 서비스 제공자를 이용하는) 분산 네트워크의 일부일 수 있다. 개인 클리어 텍스트 문서는 암호화된 문서 다이제스트와 암호화된 문서를 제1 디바이스에서 발생(generate)시키는데 사용될 수 있다. 암호화된 문서 다이제스트 및 암호화된 문서는 그 후 제2 디바이스로 송신될 수 있다. 제2 디바이스는 문서 다이제스트를 해독하고, 해독된 문서 다이제스트에 기초하여 개인 서치 인덱스를 구축하고, 암호화된 문서를 적어도 하나의 데이터 저장소에 저장할 수 있다. 제1 디바이스는 나중에 클리어 텍스트 서치 쿼리를 수신할 수 있다. 서치 쿼리는 제2 디바이스로 송신되는 불투명 서치 쿼리 다이제스트를 발생시키는데 사용될 수 있다. 제2 디바이스는 불투명 서치 쿼리 결과들을 제공하기 위해 불투명 서치 쿼리 다이제스트를 사용하여 개인 서치 인덱스를 서치할 수 있다. 불투명 서치 쿼리 결과들은 데이터 저장소로부터 암호화된 문서를 검색(retrieve)하는 데 사용될 수 있다. 불투명 서치 쿼리 결과들 및 검색된 암호화된 문서는 그 후 클라이언트 디바이스로 송신될 수 있다. 클라이언트 디바이스는 불투명 서치 쿼리 결과들 및 검색된 암호화된 문서를 사용하여, 클리어 텍스트 서치 결과들을 발생시킬 수 있다.
이 요약은 아래의 상세한 설명에서 더 설명되는 단순화된 형태의 개념의 선택을 소개하기 위해 제공된다. 이 요약은, 청구된 대상의 주요 특징이나 필수적인 특징을 식별하기 위한 것이 아니며, 청구된 대상의 범위를 제한하는 데 사용되는 의도도 아니다. 예의 부가적인 측면, 특징 및/또는 이점은 부분적으로는 이하의 설명에서 설명될 것이며, 부분적으로는 그 설명으로부터 명백할 것이며, 또는 개시의 실행에 의해 습득될 수도 있다.
비-제한적 및 비-전면적인(non-exhaustive) 예가 다음의 도면을 참조하여 설명된다.
도 1은 본 명세서에 설명된 클라우드 서비스들에 대한 프라이버시가 강화된 개인 서치 인덱스에 대한 예시적인 시스템의 개관을 도시한다.
도 2a 및 도 2b는 각각 본 명세서에서 설명된 클라이언트 컴퓨팅 디바이스 및 서버의 도면이다.
도 3은 본 명세서에 기술된 바와 같이 클라우드 서비스에 대한 프라이버시가 강화된 개인 서치 인덱스와 함께 사용하기 위해 문서를 처리하는 예시적인 방법을 도시한다.
도 4a는 본 명세서에 기술된 바와 같이 암호화된 불투명 문서 다이제스트를 생성하는 예시적인 방법을 도시한다.
도 4b는 본 명세서에 기술된 바와 같이 암호화된 문서 및 문서 스니펫(snippet)을 생성하는 예시적인 방법을 도시한다.
도 5는 본 명세서에 설명된 바와 같이 분산 네트워크 서비스에 대한 프라이버시가 강화된 개인 서치 인덱스를 구축하는 예시적인 방법을 도시한다.
도 6은 본 명세서에 설명된 바와 같이 분산 네트워크 서비스에 대한 프라이버시가 강화된 개인 서치 인덱스와 함께 사용하기 위해 암호화된 문서에 대한 쿼리를 처리하는 예시적인 방법을 도시한다.
도 7은 본 명세서에 설명된 바와 같이 분산 네트워크 서비스에 대한 프라이버시가 강화된 개인 서치 인덱스를 사용하여 암호화된 문서를 검색하는 예시적인 방법을 도시한다.
도 8은 본 명세서에 설명된 바와 같이 분산 네트워크 서비스에 대한 프라이버시가 강화된 개인 서치 인덱스를 사용하여 클리어 텍스트 서치 결과를 발생시키는 예시적인 방법을 도시한다.
도 9는 본 개시의 측면들이 실시될 수 있는 컴퓨팅 디바이스의 일례를 나타내는 블록도이다.
도 10a 및 도 10b는 본 개시의 측면들이 실시될 수 있는 모바일 컴퓨팅 디바이스의 간략화된 블록도이다.
도 11은 본 개시의 측면들이 실시될 수 있는 분산 컴퓨팅 시스템의 간략화된 블록도이다.
본 개시의 다양한 측면은 본 명세서의 일부를 형성하고 특정한 예시적인 측면을 나타내는 첨부된 도면을 참조하여 보다 상세히 설명된다. 그러나, 본 개시의 상이한 측면들은 많은 상이한 형태로 구현될 수 있으며, 본 명세서에 설명된 측면들로 제한되는 것으로 해석되어서는 안 되며; 오히려, 이러한 측면들은 본 개시가 철저하고 완전하며, 측면의 범위를 당업자에게 완전히 전달하기 위해 제공된다. 측면들은 방법, 시스템 또는 디바이스로서 실행될 수 있다. 따라서, 측면들은 하드웨어 구현, 전체 소프트웨어 구현 또는 소프트웨어와 하드웨어 측면들을 결합한 구현의 형태를 취할 수 있다. 따라서, 다음의 상세한 설명은 제한적인 의미로 해석되어서는 안 된다.
본 개시는 클라우드 서비스와 같은 분산 네트워크 서비스에 대한 개인 서치 인덱스의 프라이버시를 강화하기 위한 시스템 및 방법을 제공한다. 여기에 사용된 개인 서치는 데이터를 생성 및/또는 저장한 사용자 또는 작은 그룹의 특권(privilieged) 사용자들만 액세스할 수 있는 비공개(non-public) 데이터(예를 들어, 문서, 오디오 파일, 비디오 파일 등)를 서치하는 것을 말한다. 측면들에서, 상기 방법들은 신뢰성 있는(trusted) 클라이언트 환경 및 부분적으로 신뢰성 있는(partially trusted) 환경을 포함하는 분산 컴퓨팅 환경에서 실시될 수 있다. 본 명세서에서 사용되는 신뢰성 있는 클라이언트 환경은 코드 및 데이터의 보호된 로딩 및 실행을 제공하는 (클라이언트 디바이스와 같은) 제1 프로세싱 디바이스 상의 보안 영역을 지칭할 수 있다. 본 명세서에서 사용되는 부분적으로 신뢰성 있는 환경은 코드 및 데이터의 로딩 및 실행을 허용하지 않거나 코드 및 데이터의 로딩 및 실행을 허용하기 전에 보안 제약 조건(security constraint)을 부과하는 제2 디바이스(예를 들어, 서버 디바이스) 상의 비보안(unsecure) 영역을 지칭할 수 있다.
일부 예에서, 클리어 텍스트 데이터(예를 들어, 클리어 텍스트 문서)가 클라이언트 디바이스 상에 생성될 수 있다. 여기에 사용된 클리어 텍스트 문서(cleartext document)는 암호화되지 않은 포맷으로 송신 및/또는 저장되는, 사람이 읽을 수 있는 데이터를 지칭할 수 있다. 클리어 텍스트 문서가 클라이언트 디바이스에 의해 사용되어, 문서 다이제스트를 생성하고, 문서 다이제스트를 불투명 문서 다이제스트로 변환하고, 불투명 문서 다이제스트를 암호화하고, 문서 스니펫을 발생시키고, 문서 및 문서 스니펫을 암호화할 수 있다. 본 명세서에서 사용되는 문서 다이제스트(document digest)는 문서로부터의 용어들(terms)의 컴파일(compilation) 및 문서를 기술하는 메타 데이터를 지칭할 수 있다. 일부 예에서, 문서 다이제스트의 용어들 및 메타 데이터는 토큰화(tokenized)될 수 있다. 본 명세서에서 사용된 불투명 문서(opaque document)는 데이터가 데이터 변환 기술을 사용하여 데이터를 사람이 읽을 수 없는 포맷으로 변환된, 클리어 텍스트 또는 기타 사람이 읽을 수 있는 문서를 지칭할 수 있다. 본 명세서에 사용된 문서 스니펫(document snippet)은 문서의 간단한 요약, 메타 데이터 및/또는 문서로부터의 하나 이상의 문장을 포함할 수 있다. 암호화된 불투명 문서 다이제스트 및 암호 문서 및 문서 스니펫은 그 후 서버 디바이스로 송신될 수 있다.
예에서, 제2 디바이스(예를 들어, 서버 디바이스)는 암호화된 불투명 문서 다이제스트를 해독하고 해독된 불투명 문서 다이제스트를 사용하여 개인 서치 인덱스를 구축할 수 있다. 본 명세서에서 사용된 개인 서치 인덱스(personal search index)는 신속하고 정확한 정보 검색을 용이하게 하는 인덱스에 문서 다이제스트 데이터를 수집, 파싱(parse) 및 저장할 수 있다. 서버 디바이스는 또한 저장 관리 유틸리티를 사용하여 암호화된 문서 및 문서 스니펫을 데이터 저장소에 저장할 수도 있다. 본 명세서에서 사용된 저장 관리 유틸리티(storage management utility)는 저장 디바이스 및 저장 네트워크 솔루션을 관리하는 데 사용되는 디바이스, 프로세스 및 소프트웨어를 지칭할 수 있다.
몇몇 측면들에서, 클라이언트 디바이스는 이후에 클리어 텍스트 서치 쿼리를 수신할 수 있다. 클리어 텍스트 서치 쿼리는 클라이언트 디바이스에 의해 사용되어 쿼리 다이제스트를 생성하고 쿼리 다이제스트를 불투명 쿼리 다이제스트로 변환할 수 있다. 본 명세서에서 사용된 쿼리 다이제스트(query digest)는 서치 쿼리로부터의 용어들의 컴파일 및 서치 쿼리를 기술하는 메타 데이터를 지칭할 수 있다. 불투명 쿼리 다이제스트는 그 후 서버 디바이스로 송신될 수 있다. 불투명 쿼리 다이제스트를 수신한 후, 서버 디바이스는 랭킹된(ranked) 쿼리 결과를 생성하기 위해 불투명 쿼리 다이제스트를 사용하여 개인 서치 인덱스를 서치할 수 있다. 여기에 사용된 랭킹된 쿼리 결과(ranked query results)는 관련성, 문서 연령(age), 문서 크기, 사용자 프로필 정보 등과 같은 여러 기준 중 적어도 하나에 따라 정렬 및/또는 우선 순위 지정되는 불투명 결과의 집합을 지칭할 수 있다. 랭킹된 쿼리 결과는 데이터 저장소로부터 암호화된 문서 및/또는 문서 스니펫을 검색하는 데 사용될 수 있다. 암호화된 문서 및/또는 문서 스니펫은 그 후 클라이언트 디바이스로 송신될 수 있다. 클라이언트 디바이스는 수신된 암호화된 문서 및/또는 문서 스니펫을 해독하고, 랭킹된 쿼리 결과와 문서 및/또는 문서 스니펫을 결합할 수 있다. 클라이언트 디바이스는 결합된 랭킹된 쿼리 결과 및 문서 및/또는 문서 스니펫에 대해 콘텐츠 기반 랭킹 결정(content-based ranking)를 수행하여 랭킹된 클리어 텍스트 서치 결과를 발생시킬 수 있다.
따라서, 본 개시의 측면들은 무엇보다도 개인 문서 보안을 강화하는 것; 클리어 텍스트 사용자 정보, 쿼리 및 서치 결과를 클라우드 서비스로 전달하는 것을 없애는 것; 클라우드 서비스를 사용하여 저장된 모든 데이터가 단일 트러스트 경계 내에 상주해야 하는 요구를 없애는 것; 사용자 키의 클라우드 서비스로의 전달을 최소화하는 것; 클라우드 서비스에 의해 요구되는 보안 조치를 감소시키는 것; 프라이버시가 강화된 개인 인덱스를 더 오래된 서치 서비스에 우아하게 장착하는 것(graceful retrofit)을 포함하는(이에 한정되지 않음) 다수의 이점을 제공한다.
도 1은 본 명세서에 설명된 클라우드 서비스들에 대한 프라이버시가 강화된 개인 서치 인덱스에 대한 예시적인 시스템의 개관을 도시한다. 예시적인 시스템(100)은 암시적(implicit) 피드백으로부터의 권고를 개선하기 위한 통합된 전체를 형성하기 위해 상호 작용하는 상호 의존 컴포넌트들의 조합일 수 있다. 시스템의 컴포넌트들은 하드웨어 컴포넌트이거나, 시스템의 하드웨어 컴포넌트 상에서 구현되고/되거나 시스템의 하드웨어 컴포넌트에 의해 실행되는 소프트웨어일 수 있다. 예에서, 시스템(100)은 (예를 들어, 운영 체제(operating system, OS)를 실행(execute)/구동(run)하는데 사용되는) 하드웨어 컴포넌트 및 하드웨어 상에서 구동 중인 소프트웨어 컴포넌트(예컨대, 애플리케이션, 애플리케이션 프로그래밍 인터페이스, 모듈, 가상 머신, 런타임 라이브러리 등) 중 임의의 것을 포함할 수 있다. 일 예에서, 예시적인 시스템(100)은 소프트웨어 컴포넌트가 구동되도록 환경을 제공하고, 동작을 위해 설정된 제약을 따르며, 시스템(100)의 자원 또는 설비를 이용할 수 있고, 컴포넌트는 하나 이상의 프로세싱 디바이스 상에서 구동되는 소프트웨어(예를 들어, 애플리케이션, 프로그램, 모듈 등)일 수 있다. 예를 들어, 소프트웨어(예를 들어, 애플리케이션들, 동작 명령어들, 모듈들 등)는 컴퓨터, 모바일 디바이스(예를 들어, 스마트 폰/전화, 태블릿) 및/또는 임의의 다른 전자 디바이스와 같은 프로세싱 디바이스 상에서 구동될 수 있다. 프로세싱 디바이스 운영 환경의 예로서, 도 9 내지 도 11에 도시된 예시적인 운영 환경을 참조한다. 다른 예들에서, 본 명세서에 개시된 시스템들의 컴포넌트들은 다수의 디바이스들에 걸쳐 분산(spread)될 수 있다. 예를 들어, 입력은 클라이언트 디바이스(예를 들어, 프로세싱 디바이스) 상에 입력될 수 있고, 정보는 하나 이상의 서버 디바이스와 같은 네트워크 내의 다른 디바이스로부터 처리되거나 액세스될 수 있다.
일례로서, 시스템(100)은 클라이언트 디바이스(102A), 클라이언트 디바이스(102B), 클라이언트 디바이스(102C), 분산 네트워크(104), 및 서버 디바이스(106A), 서버 디바이스(106B) 및 서버 디바이스(106C)와 같은 하나 이상의 서버를 포함하는 분산 네트워크 환경을 포함한다. 당업자는, 시스템(100)과 같은 시스템의 규모(scale)가 변할 수 있고 도 1에 설명된 것보다 더 많거나 더 적은 컴포넌트를 포함할 수 있음을 인식할 것이다. 일부 예에서, 시스템(100)의 컴포넌트들 간의 인터페이싱은 원격으로 일어날 수 있고, 예를 들어 시스템(100)의 컴포넌트들은 분산 네트워크의 하나 이상의 디바이스에 걸쳐 분산될 수 있다.
예를 들어, 클라이언트 컴퓨팅 디바이스(102A)는 하나 이상의 클리어 텍스트 개인 문서를 발생 및/또는 수신하고, 클리어 텍스트 개인 문서를 사용하여 암호화된 불투명 문서 다이제스트 및 암호화된 개인 문서를 발생시키도록 구성된 신뢰성 있는 환경일 수 있다. 그 다음, 클라이언트 컴퓨팅 디바이스(102A)는 암호화된 불투명 문서 다이제스트 및 암호화된 개인 문서를 네트워크(104)를 통해 서버(106A, 106B 및 106C) 중 하나 이상에 송신할 수 있다. 예를 들어, 서버(106A)는 암호화된 불투명 문서 다이제스트 및 암호화된 개인 문서를 수신하고, 불투명 문서 다이제스트를 해독하고, 해독된 불투명 문서 다이제스트를 사용하여 개인 서치 인덱스를 발생시키고, 암호화된 개인 문서를 개인 문서 데이터 저장소에 저장하도록 구성될 수 있다. 서버(106A)는 신뢰성 없는(untrusted) 환경 또는 부분적으로 신뢰성 있는 환경일 수 있고, 클라우드 서비스 제공자에 의해 호스팅되는 서비스를 제공할 수 있다.
클라이언트 컴퓨팅 디바이스(102A)는 클리어 텍스트 서치 쿼리 요청을 수신하고, 불투명 쿼리 다이제스트를 발생시키고, 불투명 쿼리 다이제스트를 네트워크(104)를 통해 서버(106A, 106B 및 106C) 중 하나 이상으로 전달하도록 또한 구성될 수 있다. 서버(106A)는, 예를 들어, 불투명 쿼리 다이제스트를 수신하고, 불투명 쿼리 다이제스트를 사용하여 개인 서치 인덱스를 서치하고, 랭킹된 쿼리 결과를 발생시키고, 랭킹된 쿼리 결과를 사용하여 암호화된 문서를 검색하도록 또한 구성될 수 있다. 그 다음, 서버(106A)는 랭킹된 쿼리 결과 및 검색된 암호화된 문서를 네트워크(104)를 통해 클라이언트 컴퓨팅 디바이스(102A)에 송신할 수 있다. 클라이언트 컴퓨팅 디바이스(102A)는 랭킹된 쿼리 결과 및 암호화된 문서를 수신하고, 암호화된 문서를 해독하며, 랭킹된 클리어 텍스트 서치 결과를 발생시키며, 클라이언트 컴퓨팅 디바이스(102A)의 디스플레이 영역 상에 랭킹된 클리어 텍스트 서치 결과를 디스플레이하도록 또한 구성될 수 있다.
도 2a 및 도 2b는 각각 여기에 설명된 클라이언트 컴퓨팅 디바이스(200) 및 서버 컴퓨팅 디바이스(220)의 예시적인 다이어그램이다. 클라이언트 컴퓨팅 디바이스(200)는 문서 발생 모듈(202), 암호화 모듈(204), 쿼리 수신 모듈(206), 쿼리 처리 모듈(208) 및 결과 처리 모듈(210)을 포함할 수 있고, 각각은 하나 이상의 추가 컴포넌트를 포함한다. 문서 발생 모듈(202)은 하나 이상의 개인 문서를 발생 및/또는 수신하도록 구성될 수 있다. 예를 들어, 문서 발생 모듈(202)은 워드 프로세싱 애플리케이션을 포함할 수 있거나 워드 프로세싱 애플리케이션과 인터페이스할 수 있다. 워드 프로세싱 애플리케이션은 클리어 텍스트 텍스트-기반 문서를 발생시키는 데 사용될 수 있다. 암호화 모듈(204)은 하나 이상의 개인 문서를 수신하고 암호화하도록 구성될 수 있다. 일부 측면들에서, 암호화 모듈(204)은 하나 이상의 처리 경로를 따라 동작들을 수행한다. 예를 들어, 암호화 모듈(204)은 문서 이해 파이프라인 경로(document understanding pipeline path) 및 문서 암호화 경로를 따라 동작들을 수행할 수 있다.
예에서, 문서 이해 파이프라인 경로는 수신된 개인 문서를 사용하여 개인 문서 내에 포함된 용어들의 클리어 텍스트 문서 다이제스트 및 개인 문서를 기술하는 메타 데이터를 발생시키는 것을 포함할 수 있다. 개인 변환 키(private transform key, PTK)는 불투명 문서 다이제스트를 생성하기 위해 클리어 텍스트 문서 다이제스트에 적용될 수 있다. 본 명세서에서 사용되는 PTK는, 데이터 변환 기술을 사용하여 한 세트의 데이터 값들을 소스의 제1 데이터 포맷으로부터 제2 데이터 포맷으로 변환하는 키 또는 알고리즘을 지칭할 수 있다. 몇몇 측면들에서, 데이터 변환 기술들은 근사 용어 매칭, 상대적 용어 빈도 및 특정 거리 메트릭들이 불투명 문서 다이제스트 내에 보존되도록 개인 문서의 구조를 보존한다(예를 들어, 아이소메트릭 변환(isometric transform)). 개인 인덱스 키(private index key, PIK)가 암호화된 불투명 문서 다이제스트를 발생시키기 위해 불투명 문서 요약에 적용될 수 있다. 여기에 사용된 PIK는, 개인 문서의 내용을 보호하기 위해 지정된 기관(designated authority)이 암호화 키로서 제공한 값을 지칭할 수 있다. PIK는 비대칭 암호화(예를 들어, 공개 키 암호화) 또는 대칭 암호화(예를 들어, 암호-기반(cipher-based) 암호화)의 임의의 공지된 방법을 사용하여 발생될 수 있다. 암호화된 불투명 문서 다이제스트 및 PIK는 그 후 서버 디바이스(220)로의 익스포트(export)를 위해 처리될 수 있고, 이에 의해 문서 이해 파이프라인 경로를 종결 짓는다.
예에서, 문서 암호화 경로는 클리어 텍스트 개인 문서를 사용하여 문서 스니펫을 발생시키는 것을 포함할 수 있다. 개인 문서 키(private document key, PDK)가 암호화된 개인 문서 및/또는 암호화된 문서 스니펫을 포함하는 암호화된 개인 문서를 발생시키기 위해 클리어 텍스트 개인 문서 및/또는 문서 스니펫에 적용될 수 있다. 여기에 사용된 PDK는 개인 문서의 내용을 보호하기 위해 지정된 기관이 암호화 키로서 제공한 값을 지칭할 수 있다. PDK는 비대칭 암호화(예를 들어, 공개 키 암호화) 또는 대칭 암호화(예를 들어, 암호-기반 암호화)의 임의의 공지된 방법을 사용하여 발생될 수 있다. 적어도 하나의 예에서, PDK는 PTK 및 PIK와 상이할 것이다. 그 후, 암호화된 개인 문서는 서버 디바이스(220)로의 익스포트를 위해 처리될 수 있고, 그에 의해 문서 암호화 경로를 종결짓는다.
쿼리 수신 모듈(206)은 하나 이상의 개인 문서에 대한 클리어 텍스트 쿼리를 수신 또는 발생시키도록 구성될 수 있다. 예를 들어, 쿼리 수신 모듈(206)은 사용자 인터페이스를 포함할 수 있거나 또는 사용자 인터페이스와 인터페이스할 수 있다. 사용자 인터페이스는 쿼리를 제출하기 위한 입력 영역을 제공한다. 쿼리 처리 모듈(208)은 클리어 텍스트 쿼리를 사용하여 용어들의 클리어 텍스트 쿼리 다이제스트 및 메타 데이터를 발생시키도록 구성될 수 있다. PTK는 불투명 쿼리 다이제스트를 발생시키기 위하여 클리어 텍스트 쿼리 다이제스트에 적용될 수 있다. 몇몇 측면들에서, 클리어 텍스트 쿼리 다이제스트에 적용되는 PTK는 클리어 텍스트 문서 다이제스트에 적용되는 동일한 PTK일 수 있다. 그 다음, 불투명 쿼리 다이제스트는 서버 디바이스(220)로의 익스포트를 위해 처리될 수 있다.
결과 처리 모듈(210)은 불투명 랭킹된 쿼리 결과 및 암호화된 개인 문서를 수신 및 처리하도록 구성될 수 있다. 예를 들어, 결과 처리 모듈(210)은 불투명 랭킹된 쿼리 결과에 PTK를 적용하여, 클리어 텍스트 랭킹된 쿼리 결과를 생성할 수 있다. 일부 측면들에서, 불투명 랭킹된 쿼리 결과들에 적용된 PTK는 클리어 텍스트 문서 다이제스트 및 클리어 텍스트 쿼리 다이제스트에 적용된 동일한 PTK일 수 있다. 결과 처리 모듈(210)은 또한 클리어 텍스트 문서 및/또는 클리어 텍스트 문서 스니펫을 생성하기 위해 암호화된 개인 문서에 PDK를 적용할 수 있다. 일부 측면들에서, 암호화된 개인 문서에 적용된 PDK는, 클리어 텍스트 개인 문서 및/또는 문서 스니펫에 적용된 동일한 PDK일 수 있다. 클리어 텍스트 랭킹된 쿼리 결과 및 클리어 텍스트 개인 문서 및/또는 문서 스니펫은 그 다음, 랭킹된 클리어 텍스트 서치 결과로 결합될 수 있다. 일 예에서, 랭킹된 클리어 텍스트 서치 결과는 내용, 관련성, 크기 또는 날짜와 같은 하나 이상의 기준에 따라 랭킹이 매겨질 수 있다.
서버 디바이스(220)는 입수(ingest) 모듈(222), 인덱스 서치 모듈(224) 및 문서 검색 모듈(206)을 포함할 수 있으며, 각각은 하나 이상의 추가 컴포넌트를 포함한다. 입수 모듈(222)은 암호화된 불투명 문서 다이제스트, PIK 및 암호화된 개인 문서와 같은 정보를 암호화 모듈(204)로부터 수신하고 처리하도록 구성될 수 있다. 일부 측면들에서, 입수 모듈(222)은 하나 이상의 처리 경로를 따라 동작들을 수행한다. 예를 들어, 입수 모듈(222)은 문서 인덱스화 경로 및 문서 저장 경로를 따라 동작들을 수행할 수 있다.
예에서, 문서 인덱스화 경로는 수신된 PIK를 수신된 암호화된 불투명 문서 다이제스트에 적용하여, 암호화된 불투명 문서 다이제스트를 해독하는 것을 포함할 수 있다. 일부 측면들에서, 결과로 나온 불투명 문서 다이제스트는, 이전에 클라이언트 디바이스(200)로부터 수신된 다른 불투명 문서 다이제스트와 종합되어(aggregated), 불투명 문서 다이제스트 컬렉션을 형성할 수 있다. 인덱스 발생 동작은 불투명 문서 다이제스트 또는 불투명 문서 다이제스트 컬렉션에 대해서 실행되어 개인 서치 인덱스를 구축할 수 있다. 개인 서치 인덱스는 문장들로부터의 불투명 단어 인덱스, 영숫자 문자의 시퀀스 또는 불투명 문서 다이제스트 내의 토큰을 포함할 수 있다.
문서 저장 경로는 저장 관리 유틸리티와 상호 작용하는 입수 모듈(222)을 포함할 수 있다. 예를 들어, 입수 모듈(222)은 암호화된 개인 문서를 데이터 저장소에 저장하기 위해 서버 디바이스(220)에서 실행되는 저장 관리 서비스를 사용할 수 있다. 일부 측면들에서, 저장 관리 서비스 및 데이터 저장소는 서버 디바이스(220) 상에 위치될 수 있다. 다른 측면들에서, 저장 관리 서비스 및 데이터 저장소 중 하나 이상은 서버 디바이스(220)에 의해 액세스 가능한 개별 서버 상에 위치될 수 있다 .
인덱스 서치 모듈(224)은 불투명 쿼리 다이제스트와 같은 정보를 쿼리 처리 모듈(208)로부터 수신하고 처리하도록 구성될 수 있다. 예를 들어, 인덱스 서치 모듈(224)은 불투명 단어 인덱스를 포함하는 개인 서치 인덱스를 서치하기 위해 수신된 불투명 쿼리 다이제스트를 사용할 수 있다. 개인 서치 인덱스를 서치하면, 발견된 최상위 서치 결과들의 랭킹된 쿼리 결과를 생성할 수 있다. 일부 측면에서, 랭킹된 쿼리 결과는 불투명 서치 결과 및 불투명 문서 스니펫의 순서화된 목록을 포함할 수 있다. 그러한 측면들에서, 불투명 서치 결과들 및 불투명 문서 스니펫들은 그 후 클라이언트 디바이스(220)로의 익스포트를 위해 처리될 수 있다.
다른 측면들에서, 랭킹된 쿼리 결과는 불투명 서치 결과의 순서화된 목록을 포함할 수 있지만, 불투명 문서 스니펫을 포함하지 않을 수 있다. 그러한 측면들에서, 문서 검색 모듈(226)은 암호화된 개인 문서들을 데이터 저장소로부터 검색하도록 구성될 수 있다. 예를 들어, 불투명 서치 결과는 저장 관리 유틸리티에 제공될 수 있다. 저장 관리 유틸리티는 불투명 서치 결과의 데이터와 일치하는 데이터(예를 들어, 문자열(strings), 단어, 문자(characters), 토큰 등)를 갖는 암호화된 문서 및/또는 문서 스니펫을 찾기 위해 데이터 저장소를 서치할 수 있다. 데이터 저장소로부터 검색된 암호화된 문서 및/또는 문서 스니펫은 그 후 클라이언트 디바이스(220)로의 익스포트를 위해 처리될 수 있다.
도 3 내지 도 8은 본 명세서에 설명된 클라우드 서비스에 대한 프라이버시가 강화된 개인 서치 인덱스와 관련된 다양한 프로세스 흐름을 도시한다. 측면들에서, 방법들(300-800)은 도 1의 시스템(100)과 같은 예시적인 시스템에 의해 실행될 수 있다. 예에서, 방법들(300-800)은 동작들, 프로그램들 또는 명령어들을 저장하고 실행하도록 구성된 적어도 하나의 프로세서를 포함하는 디바이스 상에서 실행될 수 있다 . 그러나, 방법들(300-800)은 이러한 예들로 제한되지 않는다. 다른 예들에서, 방법들(300-800)은 권고들(recommendations)을 제공하기 위한 애플리케이션 또는 서비스 상에서 수행될 수 있다. 적어도 하나의 예에서, 방법들(300-800)은 분산 네트워크의 하나 이상의 컴포넌트, 예를 들어, 웹 서비스/분산 네트워크 서비스(예를 들어, 클라우드 서비스)에 의해 실행되어(예를 들어, 컴퓨터로 구현된 동작들), 인덱스 서치 및 발생 및 암호화된 문서 처리를 추진(leverage)할 수 있다.
도 3은 본 명세서에 설명된 클라우드 서비스에 대한 프라이버시가 강화된 개인 서치 인덱스와 함께 사용하기 위해 문서를 처리하는 예시적인 방법을 도시한다. 예시적인 방법(300)은 문서가 발생될 수 있는 동작(302)에서 시작한다. 일부 측면에서, 문서는 클라이언트 디바이스 상의 애플리케이션을 사용하여 생성되거나 수신되는 클리어 텍스트 개인 문서이다. 일례에서, 클라이언트 디바이스는 문서의 작성자 또는 특권 사용자 그룹에만 문서가 액세스될 수 있도록 신뢰성 있는 환경을 나타낼 수 있다. 그러나, 당업자는 여기에 기술된 동작들이 신뢰성 있는 환경, 부분적으로 신뢰성 있는 환경, 및 신뢰성 없는 환경에 적용 가능할 수 있다는 것을 인식할 것이다. 클라이언트 디바이스는 클리어 텍스트 개인 문서를 수신하기 전 또는 수신한 후에 하나 이상의 프라이버시 키(예를 들어, PTK, PIK 및 PDK)를 발생시킬 수 있다. 클라이언트 디바이스는 신뢰성 있는 제3자 인증 기관으로부터 하나 이상의 프라이버시 키를 교대로 수신할 수 있다.
동작(304)에서, 불투명 문서 다이제스트가 생성될 수 있다. 예를 들어, 클리어 텍스트 개인 문서는 문서 이해 동작들을 수행하는 프로세스에 제공된다. 일부 측면에서 프로세스는 문서 이해 경로와 같은 경로를 따른다. 본 명세서에서 사용된 문서 이해(document understanding)는 사람이 이해할 수 있는 정보를 추출하고 정보를 머신 판독 가능 형태로 체계화(codify)하기 위한 문서의 의미론적 분석(semantic analysis)을 지칭할 수 있다. 문서 이해 동작들은 클리어 텍스트 개인 문서를 사용하여 용어 및 메타 데이터의 클리어 텍스트 문서 다이제스트를 발생시키는 것, 클리어 텍스트 문서 다이제스트에 PTK를 적용하여 불투명 문서 다이제스트를 발생시키는 것, 및 불투명 문서 다이제스트에 PIK를 적용하여 암호화된 불투명 문서 다이제스트를 발생시키는 것을 포함할 수 있다.
동작(306)에서, 암호화된 개인 문서가 생성될 수 있다. 예에서, 클리어 텍스트 개인 문서가 문서 암호화 동작들을 수행하는 프로세스에 제공된다. 문서 암호화 동작들은 클리어 텍스트 개인 문서로부터 클리어 텍스트 문서 스니펫을 발생시키는 것, 및 클리어 텍스트 개인 문서 및/또는 클리어 텍스트 문서 스니펫에 PDK를 적용하여 암호화된 개인 문서를 발생시키는 것을 포함할 수 있다. 동작(304) 및 동작(306)은 순차적으로 또는 병렬로 수행될 수 있다.
동작(308)에서, 암호화된 불투명 문서 다이제스트, 불투명 문서 다이제스트를 암호화하는데 사용된 PIK 및 암호화된 개인 문서가, 클라이언트 디바이스의 신뢰성 있는 환경으로부터 서버 디바이스의 부분적으로 신뢰성 있는 환경으로 송신된다. 측면들에서, PTK 및 PDK는 클라이언트 디바이스 내에 남아있다. 또한, 클리어 텍스트(예컨대, 문서, 다이제스트, 쿼리 등)가 서버 디바이스로 송신되지 않는다.
도 4a는 본 명세서에 기재된 바와 같이 암호화된 불투명 문서 다이제스트를 생성하는 예시적인 방법(400)을 도시한다. 예시적인 방법(400)은 클리어 텍스트 개인 문서를 사용하여 클리어 텍스트 문서 다이제스트가 발생될 수 있는 동작(402)에서 시작한다. 몇몇 측면들에서, 클리어 텍스트 문서 다이제스트를 발생시키는 것은 클리어 텍스트 개인 문서를 복수의 클리어 텍스트 인덱스 용어들 및 관련 클리어 텍스트 메타 데이터로 파싱(parsing)하는 것을 포함한다. 파싱 동작은 클리어 텍스트 개인 문서를 생성했거나 수신했던 클라이언트 디바이스 상에 위치된 소프트웨어에 의해 또는 다른 신뢰성 있는 환경 내에 위치된 소프트웨어에 의해 수행될 수 있다. 클리어 텍스트 인덱스 용어들 및 메타 데이터는 결합되고/결합되거나 다이제스트 파일로 조직화될 수 있다.
동작(404)에서, 불투명 문서 다이제스트가 클리어 텍스트 개인 문서로부터 발생될 수 있다. 예에서, PTK는 클라이언트 디바이스에 의해 발생되거나 수신될 수 있다. PTK는 데이터 값 세트에 대해 데이터 번역(translation) 동작을 수행하도록 동작 가능할 수 있다. 데이터 번역 동작은 데이터 요소 또는 값을 소스 데이터 포맷으로부터 목적지 데이터 포맷으로 맵핑하는 것, 발생할 수 있는 모든 변환을 로깅하는 것, 로깅된 변환을 수행하는 코드를 발생시키는 것 및 변환 코드를 실행하는 것을 포함할 수 있다. 하나의 특정 예에서, 변환 코드를 실행하는 것은 소스 데이터 포맷으로부터 데이터 요소를 나타내는 토큰을 생성하는 것을 포함할 수 있다. 일부 측면들에서, PTK가 적용되는 임의의 문서 다이제스트는 공통 데이터 변환을 공유하여, 파일(예를 들어, 문서 다이제스트, 쿼리 다이제스트)에 대해 기본 TF-IDF(term frequency-inverse document frequency) 랭킹이 보존된다. 여기서 사용된 TF-IDF는 문서 또는 문서 컬렉션에 있는 단어의 중요성을 반영하기 위한 숫자 통계 또는 가중치 요소를 지칭할 수 있다. PTK는 클리어 텍스트 개인 문서에 적용되어 불투명 문서 다이제스트를 발생시킬 수 있다. 측면들에서, PTK는 클라이언트 디바이스로부터 송신되지 않을 수 있다.
동작(406)에서, 암호화된 불투명 문서 다이제스트가 불투명 문서 다이제스트로부터 발생될 수 있다. 예에서, PIK는 클라이언트 디바이스와 같은 프로세싱 디바이스에 의해 생성되거나 수신될 수 있다. PIK는 하나 이상의 문서에 대해 암호화 동작들을 수행하도록 동작할 수 있다. 암호화 동작들은 일반적으로 일반 정보(예를 들어, 플레인 텍스트(plaintext))를 사람이 판독할 수 없는 텍스트(예를 들어, 암호문)로 변환하는 것을 포함한다. 파일 및 문서를 암호화하는 방법은 당업자에게 잘 알려져 있으므로, 본 명세서에서는 상세히 설명되지 않을 것이다. PIK는 불투명 문서 다이제스트에 적용되어 암호화된 불투명 문서 다이제스트를 발생시킬 수 있다. 일부 측면들에서, PIK는 암호화된 불투명 문서 다이제스트와 함께 하나 이상의 신뢰성 없는 또는 부분적으로 신뢰성 있는 서버 디바이스로 송신될 수 있다. 불투명 문서 다이제스트를 암호화하면, 불투명 용어들과 메타 데이터에 대한 대량 액세스(bulk access)를 기반으로 하는 통계 공격을 방지할 수 있다.
도 4b는 여기에 기술된 암호화된 문서 및 문서 스니펫을 생성하는 예시적인 방법(420)을 도시한다. 예시적인 방법(420)은 클리어 텍스트 문서 스니펫이 클리어 텍스트 개인 문서를 사용하여 발생될 수 있는 동작(422)에서 시작한다. 예를 들어, 문서 스니펫은 클리어 텍스트 개인 문서를 분석하고 다양한 섹션, 문자열 및/또는 메타 데이터를 추출함으로써 생성된 파일일 수 있다. 하나의 특정 측면에서, 문서 스니펫은 문서 제목, 문서의 간략한 설명, 문서 작성자의 이름, 문서의 처음 세 문장, 문서 유형, 문서의 미리보기 이미지 등을 포함할 수 있다.
동작(424)에서, 암호화된 개인 문서가 발생될 수 있다. 일부 예들에서, PDK는 클라이언트 디바이스에 의해 발생되거나 수신될 수 있다. PDK는 하나 이상의 문서에 대해 암호화 연산을 수행하도록 동작할 수 있다. 암호화 동작은 일반적으로 일반 정보를 사람이 읽을 수 없는 텍스트(예를 들어, 암호문)로 변환하는 것을 포함한다. PDK는 클리어 텍스트 개인 문서 및/또는 문서 스니펫에 적용되어 암호화된 개인 문서를 발생시킬 수 있다. 측면들에서, PDK는 클라이언트 디바이스로부터 송신되지 않을 수 있다. 예에서, PDK와 PIK가 유사성(예를 들어, 암호화 기반 키)을 공유할 수 있고 PDK와 PTK가 유사성을 공유할 수 있지만(예를 들어, 키가 클라이언트 디바이스로부터 송신되지 않음), PTK, PIK 및 PDK는 분리된 및/또는 별개의 키이다.
도 5는 본 명세서에 설명된 분산 네트워크 서비스에 대한 프라이버시가 강화된 개인 서치 인덱스를 구축하는 예시적인 방법(500)을 도시한다. 예시적인 방법(500)은 암호화된 문서, 암호화된 불투명 문서 다이제스트 및 PIK가 클라우드 서비스 시스템의 서버 디바이스의 컴포넌트에 의해 수신될 수 있는 동작(502)에서 시작한다. 서버 디바이스는 서버 디바이스 또는 서버 디바이스의 사용자가 문서에 액세스할 수 없도록 신뢰성 없는 또는 부분적으로 신뢰성 있는 환경을 나타낼 수 있다. 암호화된 문서는 암호화된 개인 문서 및 암호화된 문서 스니펫을 포함할 수 있다.
동작 504에서, 개인 서치 인덱스가 생성될 수 있다. 예에서, 암호화된 불투명 문서 다이제스트와 암호화된 불투명 문서 다이제스트를 암호화하는 데 사용된 PIK는 문서 인덱싱을 용이하게 하는 프로세스에 제공될 수 있다. 본 명세서에서 사용되는 문서 인덱싱(document indexing)은 문서의 주제를 기술 및/또는 요약하기 위해 용어들 또는 기호들로 문서를 분류하는 것을 지칭할 수 있다. 프로세스는 PIK를 사용하여 암호화된 불투명 문서 다이제스트를 해독하는 것, 및 불투명 문서 다이제스트 컬렉션을 발생시키기 위해 해독된 불투명 문서 다이제스트를 다른 불투명 문서 다이제스트와 선택적으로 종합하는 것을 포함할 수 있다. 일부 측면들에서, 다른 불투명 문서 다이제스트들은 클라이언트 디바이스로부터 이전에 수신되었을 수 있다. 예를 들어, 다른 불투명 문서 다이제스트는 클라이언트 디바이스상의 특정 사용자 또는 사용자 계정과 연관될 수 있다. 다른 측면들에서, 다른 불투명 문서 다이제스트들은 특정 사용자, 사용자 계정 또는 그룹 계정과 연관된 다양한 클라이언트 디바이스들로부터 이전에 수신되었을 수 있다. 상기 프로세스는 불투명 용어들 및/또는 기호들을 생성하기 위해 불투명 문서 다이제스트 컬렉션을 인덱스화하는 것을 더 포함할 수 있다. 그런 다음 불투명 용어들 및/또는 기호들을 사용하여 개인 서치 인덱스를 구축할 수 있다. 일부 측면들에서, 개인 서치 인덱스는 특정 클라이언트 디바이스와 관련된 정보 또는 특정 사용자 계정과 연관된 정보만을 포함할 수 있다. 동작(504)은 종료 동작(508)으로 진행된다.
동작(506)에서, 수신된 암호화된 문서가 저장될 수 있다. 예를 들어, 서버 디바이스는 저장 관리 유틸리티와 통신할 수 있다. 저장 관리 유틸리티는 암호화된 문서를 하나 이상의 데이터 저장소에 저장하는 것을 용이하게 할 수 있다. 측면들에서, 저장 관리 유틸리티는 서버 디바이스에, 클라우드 서비스 시스템의 다른 컴포넌트에, 또는 클라우드 서비스 시스템에 의해 액세스 가능한 컴퓨팅 디바이스에 위치될 수 있다. 데이터 저장소는 저장 관리 유틸리티와 함께 위치되거나 저장 관리 유틸리티와 별도로 위치되거나 다양한 서버 디바이스들 사이에 분산될 수 있다. 적어도 하나의 예에서, 데이터 저장소는 문서 작성자, 특권 뷰어(viewer) 그룹 또는 서버 디바이스의 특권 사용자 그룹만이 액세스할 수 있는 개인 문서 저장 공간일 수 있다. 동작(506)은 종료 동작(508)으로 진행할 수 있다.
도 6은 본 명세서에 설명된 분산 네트워크 서비스에 대한 프라이버시가 강화된 개인 서치 인덱스와 함께 사용하기 위해 암호화된 문서에 대한 쿼리를 처리하는 예시적인 방법(600)을 도시한다. 예시적인 방법(600)은 클라이언트 디바이스가 서버 디바이스상의 클라우드 서비스들에 의해 저장된 문서들에 대한 서치 쿼리를 수신하거나 생성할 수 있는 동작(602)에서 시작한다. 측면들에서, 쿼리는 클리어 텍스트 또는 플레인 텍스트로 수신되거나 발생될 수 있다. 특정한 일 측면에서, 쿼리는 서치된 문서를 서버 디바이스로 송신하는데 사용된 클라이언트 디바이스와 상이한 클라이언트 디바이스 상에서 발생된다.
동작(604)에서, 클리어 텍스트 쿼리를 사용하여 클리어 텍스트 쿼리 다이제스트가 발생될 수 있다. 측면들에서, 클리어 텍스트 쿼리는 분석되고 파싱되어, 클리어 텍스트 쿼리 용어 및/또는 메타 데이터를 추출할 수 있다. 분석 및 파싱 동작들은 클라이언트 디바이스에 위치한 소프트웨어에 의해 또는 다른 신뢰성 있는 환경에 위치한 소프트웨어에 의해 수행될 수 있다. 클리어 텍스트 쿼리 용어들 및 메타 데이터는 클리어 텍스트 쿼리 다이제스트 파일과 같은 다이제스트 파일로 결합 및/또는 조직화될 수 있다.
동작(606)에서, 불투명 쿼리 다이제스트가 발생될 수 있다. 예들에서, PTK는 클라이언트 디바이스에 의해 발생되거나 수신될 수 있다. PTK는 도 4와 관련하여 상술한 바와 같이, 데이터 값 세트에 대해 데이터 번역 동작을 수행하도록 동작할 수 있다. PTK는 불투명 쿼리 다이제스트를 발생시키기 위해 클리어 텍스트 쿼리 문서에 적용될 수 있다. 일부 측면들에서, 클리어 텍스트 쿼리 다이제스트에 적용된 PTK는 서치된 하나 이상의 문서의 클리어 텍스트 문서 다이제스트에 적용된 동일한 PTK일 수 있다.
동작(608)에서, 암호화된 불투명 쿼리 다이제스트는 클라이언트 디바이스의 신뢰성 있는 환경으로부터 서버 디바이스의 부분적으로 신뢰성 있는 또는 신뢰성 없는 환경으로 송신된다. 측면들에서, 불투명 쿼리 다이제스트를 암호화하는데 사용된 PTK는 클라이언트 디바이스 내에 남아있을 수 있다. 이러한 측면들에서, 클라이언트 디바이스로부터의 클리어 텍스트 정보는 쿼리되는 서버 디바이스로 송신되거나 노출될 수 없다.
도 7은 본 명세서에 설명된 분산 네트워크 서비스에 대한 프라이버시가 강화된 개인 서치 인덱스를 사용하여 암호화된 문서를 검색하기 위한 예시적인 방법(700)을 도시한다. 예시적인 방법(700)은 불투명 쿼리 다이제스트가 분산 네트워크 시스템(예를 들어, 클라우드 서비스 시스템)의 서버 디바이스의 컴포넌트에 의해 수신될 수 있는 동작(702)에서 시작한다. 서버 디바이스는 서버 디바이스 또는 서버 디바이스 사용자가 불투명 쿼리 다이제스트에 액세스할 수 없도록 신뢰성 없는 또는 부분적으로 신뢰성 있는 환경을 나타낼 수 있다.
동작(704)에서, 불투명 쿼리 결과가 발생될 수 있다. 예에서, 불투명 쿼리 다이제스트의 내용은 분석되어 개인 서치 인덱스를 서치하기 위한 입력으로서 사용될 수 있다. 개인 서치 인덱스는 이전에 수신된 불투명 문서 다이제스트로부터의 불투명 데이터를 포함할 수 있다. 일부 측면들에서, 개인 서치 인덱스는 또한 하나 이상의 암호화된 개인 문서로부터의 암호화된 문서 스니펫들을 포함할 수도 있다. 개인 서치 인덱스의 서치는 관련성, 문서 연령, 문서 크기, 사용자 프로파일 정보 등과 같은 기준에 따라 랭킹될 수 있는 불투명 쿼리 결과를 생성할 수 있다. 측면들에서, 불투명 쿼리 결과는 불투명 문서 이름 및/또는 식별자를 포함할 수 있다. 일 측면에서, 불투명 쿼리 결과는 암호화된 문서 스니펫을 교대로 또는 부가적으로 포함할 수 있다. 쿼리 워크플로우(workflow)로부터 문서 저장을 제거할 수 있는 이러한 측면에서, 흐름은 동작(708)으로 진행한다.
선택적인 동작(706)에서, 암호화된 개인 문서를 찾기 위해 데이터 저장소가 서치될 수 있다. 예에서, 불투명 쿼리 결과는 저장 관리 유틸리티에 제공될 수 있다. 저장 관리 유틸리티는 불투명 쿼리 결과 내의 데이터와 일치하는 데이터(예를 들어, 문자열(strings), 단어, 글자(characters), 토큰 등)를 갖는 암호화된 개인 문서 및/또는 문서 스니펫을 찾기 위해 데이터 저장소를 서치하기 위하여, 불투명 쿼리 결과를 분석할 수 있다. 데이터 저장소에서 발견되는 문서는 클라이언트 디바이스로의 익스포트를 위해 처리될 수 있다.
동작(708)에서, 불투명 쿼리 결과, 암호화된 개인 문서 및 암호화된 문서 스니펫, 또는 이들의 조합이 서버 디바이스의 부분적으로 신뢰성 있는 환경 또는 신뢰성 없는 환경으로부터 클라이언트 디바이스의 신뢰성 있는 환경으로 송신될 수 있다.
도 8은 본 명세서에 설명된 분산 네트워크 서비스에 대한 프라이버시가 강화된 개인 서치 인덱스를 사용하여 클리어 텍스트 서치 결과를 발생시키는 예시적인 방법(800)을 도시한다. 예시적인 방법(800)은 쿼리 결과 정보가 클라이언트 디바이스의 컴포넌트에 의해 수신될 수 있는 동작(802)에서 시작한다. 쿼리 결과 정보는 불투명 쿼리 결과, 암호화된 개인 문서 및 암호화된 문서 스니펫을 포함할 수 있다.
동작(804)에서, 불투명 쿼리 결과가 변환될 수 있다. 예에서, 클라이언트 디바이스에 액세스할 수 있는 PTK를 사용하여 불투명 쿼리 결과를 클리어 텍스트 쿼리 결과로 변환할 수 있다. PTK는 도 4a에 기술된 바와 같이 클리어 텍스트 문서 다이제스트 및 클리어 텍스트 쿼리 다이제스트에 적용된 동일한 PTK일 수 있다. 동작(802) 및 동작(804)은 순차적으로 또는 병렬적으로 수행될 수 있다.
동작(806)에서, 암호화된 문서는 해독될 수 있다. 예에서, 암호화된 개인 문서들 및/또는 암호화된 문서 스니펫들은 클라이언트 디바이스에 액세스 가능한 PDK를 사용하여 해독될 수 있다. 몇몇 측면들에서, 암호화된 개인 문서들을 해독하기 위해 적용된 PDK는 도 4b에 설명된 바와 같이 클리어 텍스트 개인 문서 및/또는 문서 스니펫들에 적용된 동일한 PDK일 수 있다.
선택적인 동작(808)에서, 개인 문서가 랭킹된다. 예에서, 랭킹 프로세스는 클라이언트 디바이스와 연관될 수 있다. 랭킹 프로세스는 클리어 텍스트 개인 문서 및/또는 클리어 텍스트 문서 스니펫과 함께 클리어 텍스트 쿼리 결과를 적용할 수 있다. 몇몇 측면들에서, 클리어 텍스트 개인 문서들은 가장 관련성이 높은 문서들이 결과 목록 상에서 더 높게 위치될 수 있도록 또는 덜 관련성이 있는 문서로부터 다른 방식으로 그래픽적으로 기술될 수 있도록(graphically delineated), 몇몇 기준들(예를 들어, 문서 내용, 설명, 연령, 크기, 희소성)에 따라 랭킹될 수 있다.
동작(810)에서, 랭킹된 클리어 텍스트 서치 결과가 발생될 수 있다. 일부 예에서, 동작(808)에서 기술된 랭킹 프로세스는 랭킹된 쿼리 결과를 포함하는 파일을 생성할 수 있다. 그 다음, 파일은 파일에서 참조되는 각각의 문서 또는 문서 스니펫과 일치되어, 랭킹된 클리어 텍스트 서치 결과를 생성할 수 있다. 랭킹 동작(808)이 수행되지 않은 다른 예에서, 클리어 텍스트 서치 결과가 발생되도록 클리어 텍스트 쿼리 결과가 클리어 텍스트 개인 문서 및/또는 클리어 텍스트 문서 스니펫에 적용될 수 있다. 클리어 텍스트 서치 결과는 특정 순서로 랭킹이 매겨지지 않을 수 있다. 측면들에서, 클리어 텍스트 서치 결과들은 클리어 텍스트 문서들 및/또는 문서 스니펫(또는 그것에 대한 링크들)을 포함할 수 있다.
도 9 내지 도 11 및 관련 설명은 본 발명의 예들이 실행될 수 있는 다양한 동작 환경에 대한 논의를 제공한다. 그러나, 도 9 내지 도 11과 관련하여 도시되고 논의된 디바이스 및 시스템은, 예 및 설명의 목적을 위한 것이며, 본 명세서에 기술된 본 발명의 예를 실시하는데 이용될 수 있는 방대한 수의 컴퓨팅 디바이스 구성을 제한하지 않는다.
도 9는 컴퓨팅 디바이스(902)의 물리적 컴포넌트, 예를 들어 본 개시의 예가 실시될 수 있는 시스템의 컴포넌트를 나타내는 블록도이다. 이하에서 설명되는 컴퓨팅 디바이스 컴포넌트는 상술한 컴퓨팅 디바이스에 적합할 수 있다. 기본 구성에서, 컴퓨팅 디바이스(902)는 적어도 하나의 프로세싱 유닛(904) 및 시스템 메모리(906)를 포함할 수 있다. 컴퓨팅 디바이스의 구성 및 유형에 따라, 시스템 메모리(906)는 휘발성 저장 장치(예를 들어, 랜덤 액세스 메모리), 비-휘발성 저장 장치(예를 들어, 판독 전용 메모리), 플래시 메모리, 또는 이러한 메모리의 임의의 조합을 포함할 수 있으나 이에 한정되는 것은 아니다. 시스템 메모리(906)는 운영 체제(907), 및 애플리케이션(928), IO 관리자(924) 및 다른 유틸리티(926)와 같은 소프트웨어 애플리케이션(920)을 실행하기에 적합한 하나 이상의 프로그램 모듈(908)을 포함할 수 있다. 예로서, 시스템 메모리(906)는 실행을 위한 명령어들을 저장할 수 있다. 시스템 메모리(906)의 다른 예들은 예로서, 지식 자원(knowledge resource) 또는 학습된 프로그램 풀(learned program pool)과 같은 컴포넌트일 수 있다. 예를 들어, 운영 체제(907)는 컴퓨팅 디바이스(902)의 동작을 제어하기에 적합할 수 있다. 더욱이, 본 발명의 예들은 그래픽 라이브러리, 다른 운영 체제 또는 임의의 다른 애플리케이션 프로그램과 관련하여 실시될 수 있으며, 임의의 특정 애플리케이션 또는 시스템으로 한정되지 않는다. 이러한 기본 구성은 점선(922) 내의 이들 컴포넌트에 의해 도 9에 도시된다. 컴퓨팅 디바이스(902)는 추가적인 특징 또는 기능을 가질 수 있다. 예를 들어, 컴퓨팅 디바이스(902)는 또한 예를 들어 자기 디스크, 광학 디스크 또는 테이프와 같은 추가 데이터 저장 디바이스(분리형(removable) 및/또는 비-분리형)를 포함할 수 있다. 이러한 추가적인 저장 장치는 분리형 저장 디바이스(909) 및 비-분리형 저장 디바이스(910)에 의해 도 9에 도시된다.
전술한 바와 같이, 많은 프로그램 모듈 및 데이터 파일이 시스템 메모리(906)에 저장될 수 있다. 프로세싱 유닛(904) 상에서 실행되는 동안, 프로그램 모듈(908)(예를 들어, 애플리케이션(928), 입력/출력(I/O) 관리자(924) 및 다른 유틸리티(926))는 예를 들어 도 4에 도시된 동작 방법(400)의 하나 이상의 스테이지를 포함하지만 이에 제한되지 않는 프로세스를 수행할 수 있다. 본 발명의 예에 따라 사용될 수 있는 다른 프로그램 모듈들은 전자 메일 및 연락처 애플리케이션, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 데이터베이스 애플리케이션, 슬라이드 프리젠테이션 애플리케이션, 입력 인식 애플리케이션, 드로잉 또는 컴퓨터 지원(computer-aided) 애플리케이션 프로그램 등을 포함할 수 있다.
또한, 본 발명의 예는 개별 전자 요소, 논리 게이트를 포함하는 패키지 또는 집적 전자 칩, 마이크로프로세서를 이용하는 회로에서, 또는 전자 요소 또는 마이크로프로세서를 포함하는 단일 칩을 포함하는 전기 회로에서 실시될 수 있다. 예를 들어, 본 발명의 예들은 SOC(system-on-a-chip)을 통해 실시될 수 있으며, 여기서도 9에 도시된 컴포넌트들 각각 또는 다수는 단일 집적 회로 상에 통합될 수 있다. 이러한 SOC 디바이스는 단일 집적 회로로서 칩 기판 상에 모두 통합된(또는 "버닝된(burned)") 하나 이상의 프로세싱 유닛, 그래픽 유닛, 통신 유닛, 시스템 가상화 유닛 및 다양한 애플리케이션 기능을 포함할 수 있다. SOC를 통해 동작할 때, 여기에 설명된 기능은 단일 집적 회로(칩) 상의 컴퓨팅 디바이스(902)의 다른 컴포넌트들과 통합된 애플리케이션 특유의 로직을 통해 동작될 수 있다. 본 개시의 예들은 또한 예를 들어 기계적, 광학적, 유체 및 양자 기술을 포함하지만 이에 한정되지 않는 AND, OR, 및 NOT과 같은 논리 연산을 수행할 수 있는 다른 기술들을 사용하여 실시될 수 있다. 또한, 본 발명의 예는 범용 컴퓨터 내에서 또는 임의의 다른 회로 또는 시스템에서 실시될 수 있다.
컴퓨팅 디바이스(902)는 또한 키보드, 마우스, 펜, 사운드 입력 디바이스, 음성 입력/인식 디바이스, 터치 입력 디바이스 등과 같은 하나 이상의 입력 디바이스(들)(912)를 가질 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 디바이스(들)(914)가 또한 포함될 수 있다. 전술한 디바이스는 예이며, 다른 것들도 사용될 수 있다. 컴퓨팅 디바이스(904)는 다른 컴퓨팅 디바이스들(918)과의 통신을 허용하는 하나 이상의 통신 연결부(916)를 포함할 수 있다. 적절한 통신 연결부(916)의 예는 RF 송신기, 수신기 및/또는 송수신기 회로; 범용 직렬 버스(universal serial bus, USB), 병렬 및/또는 직렬 포트를 포함하지만 이에 한정되지는 않는다.
여기에 사용된 컴퓨터 판독 가능 매체(computer readable media)라는 용어는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어들, 데이터 구조들 또는 프로그램 모듈들과 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비-휘발성, 분리형 및 비-분리형 매체를 포함할 수 있다. 시스템 메모리(906), 분리형 저장 디바이스(909), 비-분리형 저장 디바이스(910)는 모두 컴퓨터 저장 매체의 예(즉, 메모리 저장 장치)이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM(electrically erasable read-only memory), 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 정보를 저장하는데 사용될 수 있고 컴퓨팅 디바이스(902)에 의해 액세스될 수 있는 임의의 다른 제조 물품(article of manufacture)을 포함할 수 있다. 그러한 임의의 컴퓨터 저장 매체는 컴퓨팅 디바이스(902)의 일부일 수 있다. 컴퓨터 저장 매체는 반송파 또는 다른 전파되거나 변조된 데이터 신호를 포함하지 않는다.
통신 매체는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호 내의 컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터에 의해 구현될 수 있으며 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호(modulated data signal)"라는 용어는 신호 내의 정보를 인코딩하는 방식으로 하나 이상의 특성이 설정되거나 변경된 신호를 기술할 수 있다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 및 음향, 무선 주파수(radio frequency, RF), 적외선 및 다른 무선 매체와 같은 무선 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다.
도 10a 및 도 10b는 본 발명의 실시 예가 실시될 수 있는 모바일 컴퓨팅 디바이스(1000), 예를 들어 이동 전화, 스마트 폰, 개인 정보 단말기(personal data assistant), 태블릿 개인용 컴퓨터, 랩톱 컴퓨터 등을 도시한다. 예를 들어, 모바일 컴퓨팅 디바이스(1000)는 시스템(100)으로서 구현될 수 있고, 시스템(100)의 컴포넌트는 다른 예들 중에서 도 4에서 설명된 프로세싱 방법을 실행하도록 구성될 수 있다. 도 10a를 참조하면, 예를 구현하기 위한 모바일 컴퓨팅 디바이스(1000)의 일례가 도시되어 있다. 기본 구성에서, 모바일 컴퓨팅 디바이스(1000)는 입력 요소 및 출력 요소를 모두 갖는 핸드 헬드 컴퓨터이다. 모바일 컴퓨팅 디바이스(1000)는 통상적으로 디스플레이(1005) 및 사용자가 모바일 컴퓨팅 디바이스(1000)에 정보를 입력할 수 있게 하는 하나 이상의 입력 버튼(1010)을 포함한다. 모바일 컴퓨팅 디바이스(1000)의 디스플레이(1005)는 또한 입력 디바이스(예를 들어, 터치 스크린 디스플레이)로서 기능할 수 있다. 선택적인 측면 입력 요소(side input element)(1015)가 포함된다면, 추가의 사용자 입력을 허용한다. 측면 입력 요소(1015)는 회전 스위치, 버튼, 또는 임의의 다른 유형의 수동 입력 요소일 수 있다. 대안적인 예들에서, 모바일 컴퓨팅 디바이스(1000)는 더 많거나 적은 입력 요소들을 포함할 수 있다. 예를 들어, 일부 예에서 디스플레이(1005)는 터치 스크린이 아닐 수도 있다. 또 다른 대안적인 예에서, 모바일 컴퓨팅 디바이스(1000)는 셀룰러 폰과 같은 휴대 전화 시스템이다. 모바일 컴퓨팅 디바이스(1000)는 선택적 키패드(1035)를 또한 포함할 수 있다. 선택적 키패드(1035)는 물리적인 키패드 또는 터치 스크린 디스플레이 상에 생성된 "소프트" 키패드일 수 있다. 다양한 예에서, 출력 요소는 그래픽 사용자 인터페이스(graphical user interface, GUI), 시각 표시기(visual indicator)(1020)(예를 들어, 발광 다이오드) 및/또는 오디오 변환기(audio transducer)(1025)(예를 들어, 스피커)를 도시하기 위한 디스플레이(1005)를 포함한다. 일부 예에서, 모바일 컴퓨팅 디바이스(1000)는 촉각 피드백을 사용자에게 제공하기 위한 진동 변환기(vibration transducer)를 포함한다. 또 다른 예에서, 모바일 컴퓨팅 디바이스(1000)는 외부 디바이스로 신호를 발송하거나 외부 디바이스로부터 신호를 수신하기 위한 오디오 입력(예를 들어, 마이크로폰 잭), 오디오 출력(예를 들어, 헤드폰 잭), 및 비디오 출력(예를 들어, HDMI 포트)과 같은 입력 및/또는 출력 포트를 포함할 수 있다.
도 10b는 모바일 컴퓨팅 디바이스의 일례의 아키텍처를 나타내는 블록도이다. 즉, 모바일 컴퓨팅 디바이스(1000)는 몇 가지 예를 구현하기 위해 시스템(즉, 아키텍처)(1002)을 포함할 수 있다. 예에서, 시스템(1002)은 하나 이상의 애플리케이션(예를 들어, 브라우저, 이메일, 입력 처리, 캘린더링, 연락처 관리자, 메시징 클라이언트, 게임 및 미디어 클라이언트/플레이어)을 실행할 수 있는 "스마트 폰"으로서 구현된다. 일부 예에서, 시스템(1002)은 통합된 개인 휴대 정보 단말기(PDA) 및 무선 전화와 같은 컴퓨팅 디바이스로서 통합된다.
하나 이상의 애플리케이션 프로그램(1066)은 메모리(1062)에 로딩되어 운영 체제(1064) 상에서 또는 운영 체제(1064)와 관련하여 실행될 수 있다. 애플리케이션 프로그램의 예는 전화 걸기(phone dialer) 프로그램, 전자 메일 프로그램, 개인 정보 관리(personal information management, PIM) 프로그램 , 워드 프로세싱 프로그램, 스프레드시트 프로그램, 인터넷 브라우저 프로그램, 메시징 프로그램 등을 포함한다. 시스템(1002)은 또한 메모리(1062) 내의 비-휘발성 저장 영역(1068)을 포함한다. 비-휘발성 저장 영역(1068)은 시스템(1002)의 전원이 꺼지면 잃어버려서는 안 되는 영구 정보를 저장하는데 사용될 수 있다. 애플리케이션 프로그램(1066)은 전자 메일 또는 전자 메일 애플리케이션에 의해 사용되는 다른 메시지 등의 정보를 사용하고 비-휘발성 저장 영역(1068)에 저장할 수 있다. 또한, 동기화 애플리케이션(도시되지 않음)은 시스템(1002) 상에 상주하며, 비-휘발성 저장 영역(1068)에 저장된 정보를 호스트 컴퓨터에 저장된 대응 정보와 계속 동기화되도록 호스트 컴퓨터 상에 상주하는 대응 동기화 애플리케이션과 상호 작용하도록 프로그램된다. 이해될 수 있는 바와 같이, 다른 애플리케이션들이 메모리(1062)에 로딩될 수 있고 여기에 기술된 애플리케이션(928), IO 관리자(924) 및 다른 유틸리티(926)를 포함하는 모바일 컴퓨팅 디바이스(1000) 상에서 실행될 수 있다.
시스템(1002)은 하나 이상의 배터리로서 구현될 수 있는 전원(1070)을 갖는다. 전원(1070)은 AC 어댑터 또는 배터리를 보충 또는 재충전하는 파워 도킹 크레이들과 같은 외부 전원을 더 포함할 수 있다.
시스템(1002)은 시스템(1002)과 하나 이상의 주변 디바이스 사이의 접속성을 용이하게 하는 기능을 수행하는 주변 디바이스 포트(1078)를 포함할 수 있다. 외부 디바이스 포트(1072)와 주고 받는 송신은 운영 체제(1064)의 제어 하에 수행된다. 다시 말해서, 주변 디바이스 포트(1078)에 의해 수신된 통신은 운영 체제(1064)를 통해 애플리케이션 프로그램(1066)에 배포될 수 있고, 그 반대도 마찬가지이다.
시스템(1002)은 또한 무선 주파수 통신을 송신 및 수신하는 기능을 수행하는 무선 장치(radio)(1072)를 포함할 수 있다. 무선 장치(1072)는 통신 캐리어 또는 서비스 제공업체를 통하여 시스템(1002)과 "외부 세계(outside world)" 사이의 무선 접속을 용이하게 한다. 무선 장치(1072)와 주고 받는 통신은 운영 체제(1064)의 제어 하에 수행된다. 다시 말해서, 무선 장치(1072)에 의해 수신된 통신은 운영 체제(1064)를 통해 애플리케이션 프로그램(1066)에 배포될 수 있고, 그 반대일 수도 있다.
시각적 표시기(1020)는 시각적인 통지를 제공하기 위해 사용될 수 있고/있거나, 오디오 인터페이스(1074)는 오디오 변환기(1025)를 통해 가청 통지를 생성하기 위해 사용될 수 있다. 도시된 예에서, 시각적 표시기(1020)는 LED(light emitting diode)이고, 오디오 변환기(1025)는 스피커이다. 이들 디바이스는 전원(1070)에 직접 결합될 수 있으므로, 프로세서(1060) 및 다른 컴포넌트가 배터리 전력을 보존하기 위해 셧다운 할지라도, 활성화될 때 통보 메커니즘에 의해 지시된 지속 기간 동안 온 상태를 유지한다. 사용자가 디바이스의 전원이 켜진 상태를 나타내기 위해 조치를 취할 때까지 LED가 무기한으로 켜져 있도록 프로그래밍될 수 있다. 오디오 인터페이스(1074)는 가청 신호를 사용자에게 제공하고 사용자로부터 가청 신호를 수신하는데 사용된다. 예를 들어, 오디오 변환기(1025)에 결합되는 것에 부가하여, 오디오 인터페이스(1074)는 또한 전화 대화를 용이하게 하기 위해, 청각 입력을 수신하기 위해 마이크로폰에 연결될 수 있다. 본 발명의 예에 따르면, 마이크로폰은 또한 후술되는 바와 같이, 통지의 제어를 용이하게 하는 오디오 센서로서의 역할을할 수 있다. 시스템(1002)은 온보드 카메라(1030)의 동작이 정지 영상, 비디오 스트림 등을 기록할 수 있게 하는 비디오 인터페이스(1076)를 더 포함할 수 있다.
시스템(1002)을 구현하는 모바일 컴퓨팅 디바이스(1000)는 추가적인 특징 또는 기능을 가질 수 있다. 예를 들어, 모바일 컴퓨팅 디바이스(1000)는 또한 자기 디스크, 광학 디스크 또는 테이프와 같은 추가 데이터 저장 디바이스(분리형 및/또는 비-분리형)를 포함할 수 있다. 이러한 추가 저장 장치는 비-휘발성 저장 영역(1068)에 의해 도 10b에 도시된다.
모바일 컴퓨팅 디바이스(1000)에 의해 발생되거나 캡쳐되고 시스템(1002)을 통해 저장되는 데이터/정보는 상술한 바와 같이 모바일 컴퓨팅 디바이스(1000)에 국부적으로 저장될 수 있거나, 데이터가 모바일 컴퓨팅 디바이스(1000)와 모바일 컴퓨팅 디바이스(1000)와 연관된 별도의 컴퓨팅 디바이스, 예를 들어, 인터넷과 같이 분산 컴퓨팅 네트워크에서의 서버 컴퓨터 사이의 무선 장치(1072)를 통해 또는 유선 접속을 통해 디바이스에 의해 액세스될 수 있는 임의의 수의 저장 매체에 저장될 수 있다. 알 수 있는 바와 같이, 이러한 데이터/정보는 모바일 컴퓨팅 디바이스(1000)를 통해 무선 장치(1072)를 통해 또는 분산 컴퓨팅 네트워크를 통해 액세스될 수 있다. 유사하게, 이러한 데이터/정보는 전자 메일 및 협업(collaborative) 데이터/정보 공유 시스템을 포함하는 잘 알려진 데이터/정보 전달(transfer) 및 저장 수단에 따라 저장 및 사용을 위해 컴퓨팅 디바이스 간에 용이하게 전달될 수 있다.
도 11은 전술한 바와 같이, 저장 시스템상의 타겟 데이터에 신뢰성 있게 액세스하고 하나 이상의 클라이언트 디바이스로의 통신 실패를 처리하는 애플리케이션을 제공하기 위한 시스템의 아키텍처의 일례를 도시한다. 애플리케이션(928), IO 관리자(924), 다른 유틸리티(926) 및 저장 장치와 관련하여 액세스되거나, 상호 작용되거나 편집되는 타겟 데이터는 상이한 통신 채널 또는 다른 저장 유형에 저장될 수 있다. 예를 들어, 다양한 문서들이 디렉토리 서비스(1122), 웹 포털(1124), 메일 박스 서비스(1126), 인스턴트 메시징 저장소(1128), 또는 소셜 네트워킹 사이트(1130), 애플리케이션(928), IO 관리자(924), 다른 유틸리티(926)를 사용하여 저장될 수 있고, 저장 시스템은 여기서 설명된 바와 같이 데이터 이용을 가능하게 하기 위해 이러한 임의의 유형의 시스템 등을 이용할 수 있다. 서버(1120)는 네트워크(1115)를 통해 일반 컴퓨팅 디바이스(902) 및 모바일 디바이스(들)(1000) 상에서 동작하는 클라이언트에 의한 사용을 위해 저장 시스템을 제공할 수 있다. 예로서, 네트워크(1115)는 인터넷 또는 임의의 다른 유형의 로컬 또는 광역 네트워크를 포함할 수 있고, 클라이언트 노드는 개인용 컴퓨터, 태블릿 컴퓨팅 디바이스에서 및/또는 모바일 컴퓨팅 디바이스(예를 들어, 스마트 폰)(1000)에 의해 구현된 컴퓨팅 디바이스(902)로서 구현될 수 있다. 클라이언트 컴퓨팅 디바이스(902 또는 1000)의 이러한 임의의 예는 저장소(1116)로부터 콘텐츠를 얻을 수 있다.
본 명세서 전체에 걸쳐 "하나의 예(one example)" 또는 "예(an example)"로 언급되었는데, 이는 특정한 설명된 특징, 구조 또는 특성이 적어도 하나의 예에 포함됨을 의미한다. 따라서, 이러한 문구의 사용은 단지 하나보다 많은 예를 의미할 수 있다. 또한, 설명된 특징, 구조 또는 특성은 하나 이상의 예에서 임의의 적절한 방식으로 결합될 수 있다.
그러나, 관련 기술 분야의 당업자는 예들이 하나 이상의 특정 세부 사항 없이 또는 다른 방법, 자원, 재료 등으로 실시될 수 있음을 인식할 수 있다. 다른 경우에, 잘 알려진 구조, 자원, 또는 동작은 단지 예시의 애매한 부분을 주시하기 위해서 상세하게 도시되거나 기술되지는 않았다.
샘플 예들 및 애플리케이션들이 도시되고 설명되었지만, 예들은 상술한 정확한 구성 및 자원들로 제한되지 않는다는 것을 이해해야 한다. 청구된 예의 범위를 벗어나지 않으면서 본 기술 분야의 당업자에게 명백한 다양한 수정(modifications), 변경(changes) 및 변형(variations)이 본 명세서에 개시된 방법 및 시스템의 구성(arrangement), 동작 및 세부 사항에서 이루어질 수 있다.

Claims (19)

  1. 프라이버시가 강화된 개인 서치(search) 인덱스를 생성(create)하는 시스템에 있어서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 결합된 메모리
    를 포함하고,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 방법을 수행하는 컴퓨터 실행 가능한 명령어들을 포함하고, 상기 방법은,
    서버에서, 클라이언트 디바이스로부터 암호화된 불투명 문서 다이제스트(encrypted opaque document digest)를 수신하는 단계 - 상기 암호화된 불투명 문서 다이제스트는 사용자와 연관됨 -;
    상기 서버에서, 상기 클라이언트 디바이스로부터 인덱스 키를 수신하는 단계;
    상기 서버에서, 상기 암호화된 불투명 문서 다이제스트를 상기 인덱스 키로 해독하는 단계;
    상기 서버에서, 상기 해독된 불투명 문서 다이제스트를 인덱스화(indexing)하는 단계; 및
    상기 서버에서, 상기 인덱스화된 해독된 불투명 문서 다이제스트를 사용하여, 사용자-지정 불투명 서치 인덱스를 생성하는 단계 - 상기 사용자-지정 불투명 서치 인덱스는 상기 사용자에게 개인적이며, 상기 사용자-지정 불투명 서치 인덱스에의 인가된 액세스는 상기 사용자로 제한됨 -
    를 포함하는 것인 프라이버시가 강화된 개인 서치 인덱스 생성 시스템.
  2. 제1항에 있어서, 상기 방법은 암호화된 문서를 수신하는 단계를 더 포함하는 것인 프라이버시가 강화된 개인 서치 인덱스 생성 시스템.
  3. 제2항에 있어서, 상기 해독된 불투명 문서 다이제스트는, 상기 암호화된 문서를 기술하는 불투명 메타 데이터(opaque metadata) 및 하나 이상의 불투명 용어(opaque term)를 포함하는 것인 프라이버시가 강화된 개인 서치 인덱스 생성 시스템.
  4. 제3항에 있어서, 상기 해독된 불투명 문서 다이제스트는 상기 암호화된 문서로부터의 문서 스니펫(snippet)들을 더 포함하고, 상기 문서 스니펫들은,
    상기 암호화된 문서의 요약(summary);
    상기 암호화된 문서와 연관된 메타 데이터; 및
    상기 암호화된 문서로부터의 하나 이상의 문장
    중 적어도 하나를 포함하는 것인 프라이버시가 강화된 개인 서치 인덱스 생성 시스템.
  5. 제1항에 있어서, 상기 해독된 불투명 문서 다이제스트를 클리어텍스트(cleartext) 문서 다이제스트로 전환하기 위해 변환(transformation) 키가 사용되는 것인 프라이버시가 강화된 개인 서치 인덱스 생성 시스템.
  6. 제5항에 있어서, 상기 변환 키는 상기 시스템에 의해 액세스 가능하지 않은 것인 프라이버시가 강화된 개인 서치 인덱스 생성 시스템.
  7. 제1항에 있어서, 상기 시스템은 부분적으로 신뢰성있는(trusted) 환경이고, 상기 부분적으로 신뢰성있는 환경에서 상기 해독된 불투명 문서 다이제스트와 연관된 클리어텍스트 데이터는 불투명으로 남아 있는 것인 프라이버시가 강화된 개인 서치 인덱스 생성 시스템.
  8. 프라이버시가 강화된 개인 서치 인덱스를 서치하는 시스템에 있어서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 결합된 메모리
    를 포함하고,
    상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때 방법을 수행하는 컴퓨터 실행 가능한 명령어들을 포함하고, 상기 방법은,
    서버에서, 클라이언트 디바이스로부터, 사용자와 연관된 적어도 하나의 불투명 용어를 포함하는 불투명 쿼리 다이제스트를 수신하는 단계;
    상기 서버에서, 상기 클라이언트 디바이스로부터 인덱스 키를 수신하는 단계;
    상기 서버에서, 암호화된 불투명 문서 다이제스트를 상기 인덱스 키로 해독하는 단계;
    상기 서버에서, 상기 해독된 불투명 문서 다이제스트를 인덱스화하는 단계;
    상기 서버에서, 상기 인덱스화된 해독된 불투명 문서 다이제스트를 사용하여, 사용자-지정 불투명 서치 인덱스를 생성하는 단계 - 상기 사용자-지정 불투명 서치 인덱스는 상기 사용자에게 개인적이며, 상기 사용자-지정 불투명 서치 인덱스에의 인가된 액세스는 상기 사용자로 제한됨 -;
    상기 사용자-지정 불투명 서치 인덱스에서 상기 적어도 하나의 불투명 용어를 식별하는 단계;
    상기 사용자-지정 불투명 서치 인덱스로부터 쿼리 결과들을 검색(retrieve)하는 단계;
    랭킹화된 쿼리 결과들을 생성하기 위하여 상기 적어도 하나의 불투명 용어의 관련성에 따라 상기 쿼리 결과들을 랭킹화하는 단계; 및
    상기 랭킹화된 쿼리 결과들을 상기 사용자와 연관된 프로세싱 디바이스로 송신하는 단계
    를 포함하는 것인 프라이버시가 강화된 개인 서치 인덱스 서치 시스템.
  9. 제8항에 있어서, 상기 방법은,
    상기 쿼리 결과들을 사용하여, 데이터 저장소(store)로부터 암호화된 문서를 검색하는 단계; 및
    상기 암호화된 문서를 상기 프로세싱 디바이스로 송신하는 단계
    를 더 포함하는 것인 프라이버시가 강화된 개인 서치 인덱스 서치 시스템.
  10. 제9항에 있어서, 상기 시스템은 부분적으로 신뢰성있는 환경이고, 상기 부분적으로 신뢰성있는 환경에서 상기 불투명 쿼리 다이제스트, 상기 쿼리 결과들, 및 상기 암호화된 문서와 연관된 클리어텍스트 데이터는 불투명으로 남아 있는 것인 프라이버시가 강화된 개인 서치 인덱스 서치 시스템.
  11. 제9항에 있어서, 상기 쿼리 결과들은 적어도 불투명 문서명을 포함하고, 상기 적어도 불투명 문서명은, 상기 데이터 저장소로부터 상기 암호화된 문서를 검색하는 저장 관리 유틸리티(storage management utility)에 제공되는 것인 프라이버시가 강화된 개인 서치 인덱스 서치 시스템.
  12. 제8항에 있어서, 상기 쿼리 결과들은,
    상기 적어도 하나의 불투명 용어; 및
    복수의 암호화된 문서들 중 적어도 하나의 암호화된 문서로부터의 적어도 하나의 문서 스니펫
    을 포함하는 것인 프라이버시가 강화된 개인 서치 인덱스 서치 시스템.
  13. 제8항에 있어서, 상기 불투명 쿼리 다이제스트는 쿼리를 기술하는 불투명 메타 데이터 및 하나 이상의 불투명 용어를 포함하는 것인 프라이버시가 강화된 개인 서치 인덱스 서치 시스템.
  14. 제13항에 있어서, 상기 불투명 쿼리 다이제스트를 생성하기 위하여 클리어텍스트 쿼리 다이제스트에 변환 키가 적용되는 것인 프라이버시가 강화된 개인 서치 인덱스 서치 시스템.
  15. 제14항에 있어서, 상기 불투명 쿼리 다이제스트를 생성하기 위하여 상기 클리어텍스트 쿼리 다이제스트에 인덱스 키가 적용되는 것인 프라이버시가 강화된 개인 서치 인덱스 서치 시스템.
  16. 프라이버시가 강화된 개인 서치 인덱스를 서치하는 방법에 있어서,
    서버에서, 클라이언트 디바이스로부터 암호화된 불투명 문서 다이제스트를 수신하는 단계 - 상기 암호화된 불투명 문서 다이제스트는 사용자와 연관됨 -;
    상기 서버에서, 상기 클라이언트 디바이스로부터 인덱스 키를 수신하는 단계;
    상기 서버에서, 상기 암호화된 불투명 문서 다이제스트를 상기 인덱스 키로 해독하는 단계;
    상기 서버에서, 상기 해독된 불투명 문서 다이제스트를 인덱스화하는 단계;
    상기 서버에서, 상기 인덱스화된 해독된 불투명 문서 다이제스트를 사용하여, 사용자-지정 불투명 서치 인덱스를 생성하는 단계 - 상기 사용자-지정 불투명 서치 인덱스는 상기 사용자에게 개인적이며, 상기 사용자-지정 불투명 서치 인덱스에의 인가된 액세스는 상기 사용자로 제한됨 -;
    상기 서버에서, 불투명 쿼리 다이제스트를 수신하는 단계 - 상기 불투명 쿼리 다이제스트는 쿼리와 연관된 적어도 하나의 불투명 용어를 포함함 -;
    상기 적어도 하나의 불투명 용어를 사용하여 상기 사용자-지정 불투명 서치 인덱스를 서치하는 단계;
    상기 사용자-지정 불투명 서치 인덱스에서 상기 적어도 하나의 불투명 용어를 식별할 때, 상기 사용자-지정 불투명 서치 인덱스로부터 쿼리 결과들을 검색하는 단계;
    랭킹화된 쿼리 결과들을 생성하기 위하여 상기 적어도 하나의 불투명 용어의 관련성에 따라 상기 쿼리 결과들을 랭킹화하는 단계; 및
    상기 랭킹화된 쿼리 결과들을 상기 클라이언트 디바이스로 송신하는 단계
    를 포함하는 프라이버시가 강화된 개인 서치 인덱스 서치 방법.
  17. 제16항에 있어서, 상기 클라이언트 디바이스는, 상기 랭킹화된 쿼리 결과들 및 암호화된 문서와 연관된 클리어텍스트 데이터를 노출시키도록 구성된 신뢰성있는 환경을 실행하는 것인 프라이버시가 강화된 개인 서치 인덱스 서치 방법.
  18. 제16항에 있어서, 상기 사용자-지정 불투명 서치 인덱스는, 상기 쿼리와 연관된 상기 하나 이상의 불투명 용어 중 적어도 하나의 불투명 용어 및 암호화된 문서를 식별하는 정보를 포함하는 것인 프라이버시가 강화된 개인 서치 인덱스 서치 방법.
  19. 제16항에 있어서,
    상기 적어도 하나의 불투명 용어를 사용하여 데이터 저장소를 서치하는 단계;
    상기 데이터 저장소에서 상기 적어도 하나의 불투명 용어를 식별할 때, 상기 적어도 하나의 불투명 용어와 연관된 암호화된 문서를 검색하는 단계 - 상기 암호화된 문서를 생성하기 위하여 클리어텍스트 문서에 문서 키가 적용되고, 상기 문서 키는 시스템에 의하여 액세스 가능하지 않음 -; 및
    상기 암호화된 문서를 상기 클라이언트 디바이스에 송신하는 단계
    를 더 포함하는 프라이버시가 강화된 개인 서치 인덱스 서치 방법.
KR1020187002619A 2015-06-29 2016-06-24 프라이버시가 강화된 개인 서치 인덱스 KR102517582B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/753,225 2015-06-29
US14/753,225 US10083315B2 (en) 2015-06-29 2015-06-29 Privacy enhanced personal search index
PCT/US2016/039188 WO2017003842A1 (en) 2015-06-29 2016-06-24 Privacy enhanced personal search index

Publications (2)

Publication Number Publication Date
KR20180022889A KR20180022889A (ko) 2018-03-06
KR102517582B1 true KR102517582B1 (ko) 2023-04-03

Family

ID=56369225

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187002619A KR102517582B1 (ko) 2015-06-29 2016-06-24 프라이버시가 강화된 개인 서치 인덱스

Country Status (17)

Country Link
US (1) US10083315B2 (ko)
EP (1) EP3314519A1 (ko)
JP (1) JP6890554B2 (ko)
KR (1) KR102517582B1 (ko)
CN (1) CN107820614B (ko)
AU (1) AU2016285676B2 (ko)
CA (1) CA2986271C (ko)
CL (1) CL2017003277A1 (ko)
CO (1) CO2017013275A2 (ko)
HK (1) HK1246440A1 (ko)
IL (1) IL256210B (ko)
MX (1) MX2017016204A (ko)
MY (1) MY191463A (ko)
PH (1) PH12017550127A1 (ko)
RU (1) RU2724293C2 (ko)
WO (1) WO2017003842A1 (ko)
ZA (1) ZA201707474B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9852337B1 (en) 2015-09-30 2017-12-26 Open Text Corporation Method and system for assessing similarity of documents
US9715546B1 (en) 2016-02-18 2017-07-25 Yahoo! Inc. Method and system for searching encrypted data
EP3388969B1 (en) 2017-04-13 2019-10-16 DSwiss AG Search system
US11222063B2 (en) 2019-04-03 2022-01-11 Microsoft Technology Licensing, Llc Dynamic query adjustment based on data protection configurations
CN110895611B (zh) * 2019-11-26 2021-04-02 支付宝(杭州)信息技术有限公司 基于隐私信息保护的数据查询方法、装置、设备及系统
US11216433B2 (en) * 2019-12-12 2022-01-04 Google Llc Encrypted search with no zero-day leakage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101285A1 (en) 2004-11-09 2006-05-11 Fortiva Inc. Secure and searchable storage system and method
US20130054554A1 (en) 2011-08-31 2013-02-28 International Business Machines Corporation Secured searching

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU8819U1 (ru) * 1998-09-14 1998-12-16 Закрытое акционерное общество "МедиаЛингва" Система поиска информации в компьютерной сети
US6289450B1 (en) * 1999-05-28 2001-09-11 Authentica, Inc. Information security architecture for encrypting documents for remote access while maintaining access control
JP2002278970A (ja) * 2001-03-16 2002-09-27 Ricoh Co Ltd 文書管理システム
US20030177124A1 (en) * 2002-03-18 2003-09-18 Al Sauri System for searching secure servers
US8442994B1 (en) * 2007-09-14 2013-05-14 Google Inc. Custom search index data security
US7853587B2 (en) * 2008-01-31 2010-12-14 Microsoft Corporation Generating search result summaries
US8103652B2 (en) * 2008-02-13 2012-01-24 Microsoft Corporation Indexing explicitly-specified quick-link data for web pages
CN101593196B (zh) * 2008-05-30 2013-09-25 日电(中国)有限公司 用于快速密文检索的方法、装置和系统
CN101436208B (zh) * 2008-12-09 2011-05-11 北京交通大学 一种密文数据库隐私保护查询方法
US9684710B2 (en) * 2009-05-28 2017-06-20 Microsoft Technology Licensing, Llc Extending random number summation as an order-preserving encryption scheme
US20100332401A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US8468345B2 (en) 2009-11-16 2013-06-18 Microsoft Corporation Containerless data for trustworthy computing and data services
US10348693B2 (en) * 2009-12-15 2019-07-09 Microsoft Technology Licensing, Llc Trustworthy extensible markup language for trustworthy computing and data services
US8805833B2 (en) 2010-11-24 2014-08-12 Microsoft Corp. Enhancing personal data search with information from social networks
US9424432B2 (en) 2012-09-20 2016-08-23 Nasdaq, Inc. Systems and methods for secure and persistent retention of sensitive information
CN103345526B (zh) * 2013-07-22 2016-12-28 武汉大学 一种云环境下高效的隐私保护密文查询方法
US9454673B1 (en) * 2013-11-08 2016-09-27 Skyhigh Networks, Inc. Searchable encryption for cloud storage
US9342705B1 (en) * 2014-01-13 2016-05-17 Symantec Corporation Systems and methods for searching shared encrypted files on third-party storage systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101285A1 (en) 2004-11-09 2006-05-11 Fortiva Inc. Secure and searchable storage system and method
US20130054554A1 (en) 2011-08-31 2013-02-28 International Business Machines Corporation Secured searching

Also Published As

Publication number Publication date
US20160379009A1 (en) 2016-12-29
AU2016285676B2 (en) 2021-01-21
RU2724293C2 (ru) 2020-06-22
CO2017013275A2 (es) 2018-03-20
CA2986271C (en) 2023-09-26
CN107820614A (zh) 2018-03-20
IL256210B (en) 2020-07-30
KR20180022889A (ko) 2018-03-06
JP2018526666A (ja) 2018-09-13
MX2017016204A (es) 2018-03-01
RU2017145939A3 (ko) 2019-12-20
US10083315B2 (en) 2018-09-25
IL256210A (en) 2018-02-28
JP6890554B2 (ja) 2021-06-18
ZA201707474B (en) 2019-05-29
EP3314519A1 (en) 2018-05-02
BR112017024360A8 (pt) 2022-09-27
CL2017003277A1 (es) 2018-06-22
HK1246440A1 (zh) 2018-09-07
RU2017145939A (ru) 2019-06-26
CA2986271A1 (en) 2017-01-05
NZ737298A (en) 2021-03-26
PH12017550127A1 (en) 2018-02-26
AU2016285676A1 (en) 2017-11-30
WO2017003842A1 (en) 2017-01-05
CN107820614B (zh) 2022-04-29
BR112017024360A2 (pt) 2018-07-31
MY191463A (en) 2022-06-28

Similar Documents

Publication Publication Date Title
KR102517582B1 (ko) 프라이버시가 강화된 개인 서치 인덱스
US10013574B2 (en) Method and apparatus for secure storage and retrieval of encrypted files in public cloud-computing platforms
US10833870B2 (en) Cryptographic operations in an isolated collection
US9825925B2 (en) Method and apparatus for securing sensitive data in a cloud storage system
US20160299924A1 (en) Search system
US9197613B2 (en) Document processing method and system
US20180054438A1 (en) Proxy service for uploading data from a source to a destination
US20200358850A1 (en) Uploading user and system data from a source location to a destination location
US9847981B1 (en) Encrypted augmentation storage
US20210006403A1 (en) Strong resource identity in a cloud hosted system
US20180219674A1 (en) Successive cryptographic techniques
US20210224242A1 (en) Systems and methods for indexing and searching data
US11803650B1 (en) Column access control
NZ737298B2 (en) Privacy enhanced personal search index
BR112017024360B1 (pt) Sistema para criação de um índice de busca pessoal de privacidade melhorada
WO2016138613A1 (en) Uploading and downloading data between secure data systems and external data systems
Shanthi et al. Efficient top representative for multi-authorship encrypted cloud data to assist cognitive search
Dharini et al. Preserving privacy of encrypted data stored in cloud and enabling efficient retrieval of encrypted data through blind storage
Basha et al. Conserving operative discretion under disclosed limitations using cloud
Pardeshi Enhanced and Efficient Search Multimedia Data by Using Multi-Keyword Synonym Query

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