KR20200015605A - 임시 공유 데이터 세트 관리 및 통신 보호를 위한 시스템 및 방법 - Google Patents

임시 공유 데이터 세트 관리 및 통신 보호를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20200015605A
KR20200015605A KR1020197038671A KR20197038671A KR20200015605A KR 20200015605 A KR20200015605 A KR 20200015605A KR 1020197038671 A KR1020197038671 A KR 1020197038671A KR 20197038671 A KR20197038671 A KR 20197038671A KR 20200015605 A KR20200015605 A KR 20200015605A
Authority
KR
South Korea
Prior art keywords
data set
computing device
processor
shared data
instructions
Prior art date
Application number
KR1020197038671A
Other languages
English (en)
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 KR20200015605A publication Critical patent/KR20200015605A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • 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/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity

Landscapes

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

Abstract

다양한 실시 예는 임시 공유 데이터 세트를 동적으로 변경하기 위한 방법을 구현하도록 구성된 방법 및 컴퓨팅 디바이스를 제공한다. 다양한 실시 예는 동적으로 변경된 임시 공유 데이터 세트에 기초하여 통신을 보호하기 위해 사용될 수 있는 값의 동적 생성을 위한 방법을 구현하도록 구성된 방법 및 컴퓨팅 디바이스를 제공한다. 다양한 실시 예는 신뢰할 수 있는 시스템이 궁극적으로 안전하지 않다는 가정을 포함하며, 이는 이러한 시스템은 침투 가능하고 취약하기 때문이다. 다양한 실시 예는 적어도 디지털 환경이 본질적으로 신뢰할 수 없기 때문에 다양한 네트워크 요소들 사이에서 신뢰를 갖지 않는 디지털 통신 시스템을 제공한다.

Description

임시 공유 데이터 세트 관리 및 통신 보호를 위한 시스템 및 방법
관련 출원에 대한 상호 참조
본 출원은 2017년 10월 20일 출원된 "임시 동적 공유 데이터 세트 관리 및 통신 보호를 위한 시스템 및 방법"이라는 명칭의 미국 정규 특허 출원 번호 제15/788,981의 우선권의 이점을 주장하며, 이는 2017년 5월 31일 출원된 "동적 공유 데이터 세트 관리 및 통신 보호를 위한 시스템 및 방법"이라는 명칭의 미국 가출원 번호 제62/513,047의 우선권을 주장한다.
디지털 환경의 발달로 무엇보다도 빠른 통신 및 정보 거래가 크게 확장되었다. 그러나, 이 새로운 환경에서 과거에 사용되었던 보안 패러다임에는 공유 비밀의 개념과 수반되는 신뢰라는 고유한 취약점이 있다. 공유 비밀의 패러다임은 사용자와 시스템 간의 통신을 보호하기 위해 사용자 이름과 비밀번호에서 다양한 방식으로 디지털 환경에 통합되었다. 예를 들어, 이 개념은 보안 소켓 계층(Secure Socket Layer, SSL), 인증 기관, 공개 키 정보 보안 인프라의 기본이다.
그러나, 디지털 환경은 비밀을 단기간 이상 유지하기 어려운 환경이며, 일단 비밀이 손실되면 이전의 비밀 정보는 신속하고 완전한 충실도로 확산될 수 있다. 디지털 환경은 또한 공유 비밀과 자격 증명이 "해킹"의 주요 대상이 되어 많은 "비밀"(예를 들어, 비밀번호, 디지털 인증서, 개인 정보 및 기타 유형의 인증 데이터)을 회색과 암시장에서 자유롭게 거래되는 상품으로 변형시켰고, 디지털 교환을 위한 비밀의 이점을 파괴한다. 그러나 디지털 환경의 기본 보안 메커니즘은 비밀이 여전히 비밀이라는 이 잘못된 가정의 안전한 작동에 의존합니다.
컴퓨팅 디바이스의 제시된 아이덴티티 및 인증의 검증은 수많은 전자 통신의 중요한 측면이다. 그러나, 공유 비밀의 취약성과 전송 통신의 취약성은 신뢰할 수 있는 디바이스 신원 확인을 위한 디지털 인증서 또는 기타 유사한 정보의 신뢰성과 보안을 크게 약화시킨다.
다양한 실시 예들은 공유 데이터 세트의 연속적인 리프레쉬 및 변경을 위한 방법을 구현하도록 구성된 방법 및 컴퓨팅 디바이스를 제공한다. 다양한 실시 예들은 동적으로 변경된 (예를 들어, 임시) 공유 데이터 세트에 기초하여 통신을 보호하기 위해 사용될 수 있는 값의 동적 생성을 위한 방법을 구현하도록 구성된 방법 및 컴퓨팅 디바이스를 제공한다. 다양한 실시 예들은 신뢰할 수 있는 시스템이, 이러한 시스템은 침투 가능하고 취약하기 때문에, 궁극적으로 안전하지 않다는 가정을 포함한다. 다양한 실시 예들은 적어도 디지털 환경이 본질적으로 신뢰할 수 없기 때문에 다양한 네트워크 요소들 사이에서 신뢰를 갖지 않는 디지털 통신 시스템을 제공한다.
다양한 실시 예들은 컴퓨팅 디바이스(예를 들어, 데이터 세트 관리 디바이스)의 프로세서에서 구현될 수 있는 방법을 포함한다. 다양한 실시 예들은 데이터 세트 관리 디바이스로부터 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스로 임시 공유 데이터 세트를 제공하는 단계, 임시 공유 데이터 세트를 변경하기 위한 명령어 생성단계 및 생성된 명령어를 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스로 전송하여 생성된 명령어에 따라 제1 및 제2 컴퓨팅 디바이스에서 임시 공유 데이터 세트를 변경하여 제1 컴퓨팅 디바이스에 저장된 임시 공유 데이터 세트가 제2 컴퓨팅 디바이스에 저장된 임시 공유 데이터 세트와 동일하게 되는 단계를 포함한다.
일부 실시 예들에서, 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계는 데이터 세트 업데이트 트리거가 발생했는지를 결정하는 단계, 및 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계를 포함할 수 있다. 일부 실시 예들에서, 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계는 임시 공유 데이터 세트를 데이터 세트 관리 디바이스에 의해 결정된 대체 데이터 세트(replacement data set)로 교체하기 위한 명령어를 생성하는 단계를 포함할 수 있다.
일부 실시 예에서, 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계는 데이터 세트 관리 디바이스에서 수신된 데이터 입력에 기초하여 임시 공유 데이터 세트에 새로운 부분을 추가하기 위한 명령어를 생성하는 단계를 포함할 수 있다. 일부 실시 예들에서, 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계는 공유 데이터 세트의 일부를 감산하기 위한 명령어를 생성하는 단계를 포함할 수 있다. 일부 실시 예에서, 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계는 임시 공유 데이터 세트를 재정렬(re-order)하기 위한 명령어를 생성하는 단계를 포함할 수 있다. 일부 실시 예에서, 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계는 임시 공유 데이터 세트를 변환하기 위한 명령어를 생성하는 단계를 포함할 수 있다. 일부 실시 예에서, 방법은 제1 컴퓨팅 디바이스에 저장된 변경된 데이터 세트가 제2 컴퓨팅 디바이스에 저장된 변경된 데이터 세트와 동일하도록 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스와의 동기화 동작을 수행하는 단계를 더 포함할 수 있다.
다양한 실시 예는 통신을 보호하는 컴퓨팅 디바이스의 프로세서에서 구현될 수 있는 방법을 포함한다. 다양한 실시 예는 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 저장된 임시 공유 데이터 세트로부터 요소들을 선택하는 단계, 선택된 요소들을 나타내는 규칙 세트를 생성하는 단계, 생성된 규칙 세트를 제2 컴퓨팅 디바이스에 전송하는 단계, 선택된 요소들에 기초하여 결과를 생성하는 단계, 제2 컴퓨팅 디바이스로부터 암호화된 통신을 수신하는 단계, 생성된 결과를 이용하여 암호화된 통신을 해독하려고 시도하는 단계, 및 시도된 암호 해독이 성공했는지 여부를 결정하는 단계를 포함할 수 있다.
일부 실시 예에서, 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 저장된 임시 공유 데이터 세트로부터 요소들을 선택하는 단계는 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 저장된 임시 공유 데이터 세트로부터 요소를 추출하기 위해 데이터 세트 관리 디바이스로부터 명령어를 수신하는 단계, 및 명령어에 따라 공유 데이터 세트로부터 요소들을 추출하는 단계를 포함할 수 있다. 이러한 실시 예에서, 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 저장된 공유 데이터 세트로부터 요소들을 선택하는 단계는 추출된 요소들 중에서 요소들을 선택하는 단계를 포함할 수 있다. 일부 실시 예들에서, 방법은 시도된 해독이 성공했다고 결정한 것에 응답하여 제1 결과를 사용하여 통신을 암호화하는 단계 및 암호화된 통신을 제2 컴퓨팅 디바이스로 전송하는 단계를 더 포함할 수 있다.
추가의 실시 예는 위에서 요약된 방법의 동작을 수행하기 위해 프로세서-실행 가능 명령어로 구성된 컴퓨팅 디바이스를 포함할 수 있다. 다른 실시 예는 컴퓨팅 디바이스의 프로세서로 하여금 전술한 방법의 동작을 수행하도록 구성된 프로세서-실행 가능 명령어가 저장된 프로세서-판독 가능 저장 매체를 포함할 수 있다. 다른 실시 예는 전술한 방법의 기능을 수행하기 위한 수단을 포함하는 컴퓨팅 디바이스를 포함할 수 있다.
본 명세서에 포함되고 본 명세서의 일부를 구성하는 첨부 도면은 본 발명의 예시적인 실시 예를 도시하고, 상기 제공된 일반적인 설명 및 하기의 상세한 설명과 함께 본 발명의 특징을 설명하는 역할을 한다.
도 1은 다양한 실시 예와 함께 사용하기에 적합한 통신 시스템의 구성 요소 블록도이다.
도 2는 다양한 실시 예와 함께 사용하기에 적합한 통신 디바이스의 구성 요소 블록도이다.
도 3은 다양한 실시 예에 따른 임시 공유 데이터 세트를 관리하는 방법(300)을 나타내는 프로세스 흐름도이다.
도 4는 다양한 실시 예에 따른 데이터 세트(500)의 일부의 요소들 간의 관계를 도시한다.
도 5a 내지 도 5d는 다양한 실시 예에 따른 임시 공유 데이터 세트들(500a-500d)의 일부의 요소들 간의 관계를 도시한다.
도 6a 내지 도 6c는 다양한 실시 예에 따른 임시 공유 데이터 세트를 관리하는 방법의 표현을 도시한다.
도 6d는 제1 데이터 포맷 또는 타입을 제2 데이터 포맷 또는 타입으로 변환하는 것을 도시한다.
도 7은 다양한 실시 예에 따른 임시 공유 데이터 세트의 동기화를 관리하는 방법(700)을 도시한다.
도 8a는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(800A)을 도시한다.
도 8b는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(800B)을 도시한다.
도 9a는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(900A)을 도시한다.
도 9b는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(900B)을 도시한다.
도 10a는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(1000A)을 도시한다.
도 10b는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(1000B)을 도시한다.
도 11a는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(1100A)을 도시한다.
도 11b는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(1100B)을 도시한다.
도 12a는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(1200A)을 도시한다.
도 12b는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(1200B)을 도시한다.
도 13은 다양한 실시 예를 구현하기에 적합한 모바일 무선 컴퓨팅 디바이스의 구성 요소 블록도이다.
도 14는 다양한 실시 예를 구현하기에 적합한 휴대용 무선 통신 디바이스의 구성 요소 블록도이다.
도 15는 다양한 실시 예를 구현하기에 적합한 서버 디바이스의 구성 요소 블록도이다.
다양한 실시 예들이 첨부된 도면들을 참조하여 상세히 설명될 것이다. 가능하다면, 동일하거나 유사한 부분을 지칭하기 위해 도면 전체에 걸쳐 동일한 참조 번호가 사용될 것이다. 특정 예 및 구현에 대한 언급은 예시를 위한 것이며, 본 발명의 범위 또는 청구 범위를 제한하려는 것이 아니다.
다양한 실시 예는 공유 데이터 세트의 관리를 가능하게 하는 방법 및 방법을 구현하도록 구성된 컴퓨팅 디바이스(또는 다른 디지털 또는 프로그램 가능 디바이스)를 제공한다. 다양한 실시 예에서, 공유 데이터 세트는 둘 이상의 컴퓨팅 디바이스들에 저장될 수 있다. 일부 실시 예에서, 공유 데이터 세트는 동적일 수 있고, 때때로 변경될 수 있다. 다양한 실시 예들에서, 공유 데이터 세트는 임시적일 수 있고, 비교적 짧은 시간 후에 변경될 수 있다. 일부 실시 예에서, 동적으로 변경된 공유 데이터 세트는 비교적 작은 시작 데이터 세트를 사용하여 방대한 양의 복잡한 랜덤 데이터를 제공할 수 있다. 다양한 실시 예에서, 임시 공유 데이터 세트는 동적 값을 생성하기 위해 둘 이상의 컴퓨팅 디바이스들에 의해 사용될 수 있다. 일부 실시 예에서, 동적으로 생성된 값은 둘 이상의 컴퓨팅 디바이스들 사이의 통신을 보호하기 위해 사용될 수 있다.
다양한 실시 예들에서, 통신 시스템은 공유 비밀 및 정적 정보의 패러다임에 의존하지 않는 방식으로 통신을 보호하기 위해 동적으로 변경되는 공유 데이터 및 동적으로 생성된 값을 이용할 수 있다.
임시 공유 데이터 세트는 때때(예를 들어, 트리거 이벤트 발생시 주기적, 비 주기적으로 등)로 동적으로 변경될 수 있고, 동적으로 생성된 값은 동적으로 변경되는 임시 공유 데이터 세트를 기반으로 할 수 있기 때문에, 다양한 실시 예는 통신의 보안을 개선함으로써 임의의 통신 네트워크 또는 임의의 전자 통신 시스템의 보안 기능을 향상시킨다. 다양한 실시 예는 또한, 액세스 및/또는 복사에 의한 공격에 취약할 수 있는 공유 비밀(예를 들어, 공공 키 인프라(PKI)에서 사용될 수 있는 공유 키에 대한 공유 인증서)과 같은 쉽게 손상되는 정적 식별 정보에 의존하지 않고, 임시 (동적으로 변하는) 공유 데이터 세트 및 동적으로 생성된 값을 사용함으로써 임의의 통신 네트워크 또는 시스템의 보안 기능을 개선한다. 다양한 실시 예는 또한 동적 공유 데이터 세트가 하나의 컴퓨팅 디바이스로부터 다른 컴퓨팅 디바이스로 전송되지 않기 때문에 임의의 통신 네트워크 또는 시스템의 보안 기능을 향상시킨다. 다양한 실시 예는 또한 동적으로 생성된 값이 하나의 컴퓨팅 디바이스로부터 다른 컴퓨팅 디바이스로 전송되지 않기 때문에 임의의 통신 네트워크 또는 시스템의 보안 기능을 향상시킨다.
"컴퓨팅 디바이스(computing device)"라는 용어는 다양한 실시 방법을 수행하기 위해 프로그램 가능한 명령어로 구성될 수 있는 임의의 프로그램 가능한 컴퓨터 또는 프로세서를 지칭한다. 컴퓨팅 디바이스는 개인용 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 휴대폰, 스마트 폰, 인터넷 지원 휴대 전화, Wi-Fi 지원 전자 디바이스, 개인 데이터 보조기기(PDA), 웨어러블 컴퓨팅 디바이스(스마트 워치, 목걸이, 메달 및 착용, 웨어러블 아이템에 부착되거나 웨어러블 아이템에 내장되도록 구성된 컴퓨팅 디바이스 포함), 무선 액세서리 디바이스, 메모리 스틱, 동글, 무선 주변 디바이스, 사물 인터넷(IoT) 디바이스, 자율 주행 차, 반 자율 차량 및 원격 지향 차량, 스마트 총기, 서버, 라우터, 게이트웨이 등(소위 "클라우드" 컴퓨팅 디바이스 포함)과 같은 네트워크 요소, 근거리 라디오가 장착된 유사한 전자 디바이스(예를 들어, 블루투스(Bluetooth), 피넛(Peanut), 지그비(ZigBee) 및/또는 Wi-Fi 라디오 등) 및/또는 광역 네트워크 연결(예를 들어, 하나 이상의 셀룰러 무선 액세스 기술을 사용하여 무선 광역 네트워크 송수신기 또는 통신 네트워크에 대한 유선 연결을 사용하여 통신) 중 하나 또는 모두를 포함할 수 있다.
"구성 요소", "시스템" 등의 용어는, 이에 제한되는 것은 아니지만, 특정 작업이나 기능을 수행하도록 구성되어 있는 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어 또는 소프트웨어의 실행과 같은 컴퓨터 관련 개체를 포함하는 것으로 의도된다. 예를 들어, 구성 요소는, 이에 제한되는 것은 아니지만, 프로세서 상에서 실행되는 프로세스, 오브젝트, 실행 파일, 실행 스레드, 프로그램 및/또는 컴퓨터일 수 있다. 예를 들어, 무선 디바이스에서 실행되는 어플리케이션과 무선 디바이스 자체는 모두 구성 요소라고 할 수 있다. 하나 이상의 구성 요소들은 프로세스 및/또는 실행 스레드 내에 상주할 수 있으며, 구성 요소는 하나의 프로세서 또는 코어에 로컬화되고 및/또는 둘 이상의 프로세서들 또는 코어들 사이에 분배될 수 있다. 또한, 이들 구성 요소들은 다양한 명령어 및/또는 데이터 구조가 저장된 다양한 비 일시적 컴퓨터 판독 가능 매체로부터 실행될 수 있다. 구성 요소는 로컬 및/또는 원격 프로세스, 기능 또는 프로시저 호출, 전자 신호, 데이터 패킷, 메모리 판독/기록 및 기타 알려진 컴퓨터, 프로세서 및/또는 프로세스 관련 통신 방법을 통해 통신할 수 있다.
무엇보다도 디지털 환경은 전 세계적으로 빠른 통신 및 정보 거래를 가능하게 한다. 그러나 현재의 디지털 환경은 불안정한 보안 기반: 즉 정적 공유 비밀의 오래된 패러다임에 있다. 우리가 20 세기 후반까지 수 천년 동안 운영한 순수한 인간 환경과 오늘날 우리가 운영하는 디지털 환경 사이에는 근본적인 차이점이 많이 있다.
또한, 디지털 환경은 시간이 지남에 따라 비밀을 유지하기 어려운 환경이다. 보안이 손실되면 이전의 비밀 정보가 신속하고 완전 충실도로 확산되어 공격자가 사용할 수 있게 된다. 디지털 시스템 보안의 고장으로 인해 대규모 데이터 유출이 발생하고 거의 일반화되어 발생 빈도가 가속화되었다.
실제로, 급속도로 확장되고 있는 수십억 달러 규모의 사이버 보안 산업의 출현은 디지털 환경 전체에서 일반적으로 고유한 보안 실패를 나타낸다. 일례로, 신원 사기와 같은 사이버 범죄는 가장 빠르게 성장하는 범죄 중 하나이며, 위협은 기능과 규모가 계속 가속화되고 있다. 스마트 폰, 웨어러블 컴퓨터, 게임 시스템, 사물 인터넷 디바이스 등을 포함한 네트워크 연결 디바이스의 확산으로 인해 디지털 보안 위험의 규모와 범위가 악화되고 있다. 예를 들어, 이러한 디바이스들 중 다수는 자체적으로 신뢰할 수 없거나 신뢰할 수 없는 모바일 네트워크와 상호 작용하고 있으며, 이러한 디바이스들 중 친숙한 데스크톱 및 랩톱의 기존 보안 기능을 수행할 수 있는 컴퓨팅 성능을 갖춘 장치는 거의 없다.
대부분의 위반 사고에서 신뢰 위반 또는 공유 비밀(예를 들어, 자격 증명)의 오용은 실패의 근원이다. 경우에 따라 특정 보안 실패는 신뢰와 보안을 제공하는 데 사용된 기술력이 부족하여 발생할 수 있지만, 일반적으로 디지털 환경의 보안 실패는 다양한 기술 배포를 사용하는 다양한 산업에서 발생했다. 보안 장애는 전반적으로 발생하며 배포된 특정 기술뿐만 아니라 해당 어플리케이션 및 사용에 고유한 관행 및 절차로 인해 발생한다. 따라서 디지털 환경의 보안 실패는 실패한 공유 비밀의 신뢰 패러다임의 근본 전략에서 보다 근본적이고 고유한 것으로 인해 발생한다.
현재 사용되지 않는 디지털 보안 패러다임은 적어도 세 가지 기본 이유로 실패한다: (1) 현재의 패러다임은 신뢰에 기초하며, 신뢰는 종종 위반되거나 잘못 배치된다; (2) 현재 패러다임은 안정 또는 정적 공유 비밀 유지에 기반을 두고 있으며, 그러나 비밀은 비밀로 유지되지 않으며 인증된 사용자만큼이나 공격자에게 유용하다; 그리고 (3) 대부분의 정보 거래는 익명 당사자(방문자)간에 이루어진다. 따라서 "신뢰된 시스템"은 침투 가능하고 취약하기 때문에 작동하지 않는다. 더욱이, 현재의 "신뢰된 시스템"은 시간(또는 기간)에 따라 변하지 않는 정적 또는 내구성 정보의 사용으로 인해; 그리고 정책 및 인적 요소의 실패에 인해(예를 들어, 사회 공학, 태만 등) 대부분 침투 및 악용에 취약하다. 공유 비밀의 취약성은 통신을 보호하기 위해 디지털 인증서 또는 기타 유사한 정보의 안정성이 크게 저하된다.
본 출원에 개시된 다양한 실시 예는 디지털 시스템의 보안 취약성을 해결하고 디바이스 간 통신을 위한 전자 보안을 향상시킨다. 다양한 실시 예는 임시 공유 데이터 세트의 연속적인 리프레시 및 변경을 제공하기 위해 컴퓨터로 구현되는 방법을 제공한다. 다양한 실시 예는 동적으로 변경된 임시 공유 데이터 세트에 기초하여 통신을 보호하기 위해 사용될 수 있는 값의 동적 생성을 제공하기 위해 컴퓨터로 구현되는 방법을 제공한다. 다양한 실시 예는 신뢰된 시스템이, 이러한 시스템은 침투 가능하고 취약하기 때문에, 궁극적으로 안전하지 않다는 가정을 포함한다. 다양한 실시 예는, 적어도 디지털 환경이 본질적으로 신뢰할 수 없기 때문에, 다양한 네트워크 요소들 사이에서 신뢰를 갖지 않는 디지털 통신 시스템을 제공한다.
다양한 실시 예는 비교적 작은 초기 정보 세트로부터 방대한 양의 랜덤 데이터를 생성할 수 있게 한다. 다양한 실시 예는 데이터 세트가 예측 불가능하게 변경되도록 데이터 세트의 동적 변경을 가능하게 한다. 일부 실시 예에서, 동적으로 변경된 데이터 세트 또는 그 서브 세트는 둘 이상의 컴퓨팅 디바이스들에 제공되거나 그에 의해 얻어질 수 있어서, 둘 이상의 컴퓨팅 디바이스는 각각 임시적인 공유 데이터 세트를 저장한다. 일부 실시 예에서, 둘 이상의 컴퓨팅 디바이스의 임시 공유 데이터 세트는 동적으로 변경될 수 있다. 일부 실시 예에서, 임시 공유 데이터 세트의 변경은 변경된 데이터 세트가 둘 이상의 컴퓨팅 디바이스에 의해 공유된 상태로 유지되도록 동기화 될 수 있다.
다양한 실시 예는 둘 이상의 컴퓨팅 디바이스에 의해 동적 값을 생성할 수 있게 한다. 일부 실시 예들에서, 동적 값은 임시 공유 데이터 세트에 기초하여 생성된다. 일부 실시 예에서, 동적 값은 둘 이상의 컴퓨팅 디바이스들의 통신을 암호화하는데 사용될 수 있다.
다양한 실시 예는 또한 동적 공유 데이터 세트가 하나의 컴퓨팅 디바이스로부터 다른 컴퓨팅 디바이스로 전송되지 않기 때문에 임의의 통신 네트워크 또는 시스템의 보안 기능을 향상시킨다. 다양한 실시 예는 또한 동적으로 생성된 값이 하나의 컴퓨팅 디바이스로부터 다른 컴퓨팅 디바이스로 전송되지 않기 때문에 임의의 통신 네트워크 또는 시스템의 보안 기능을 향상시킨다.
일반적인 위협 벡터는 일반적으로 인코딩된 인증 정보를 해독하기 위해 컴퓨팅 파워를 사용하지 않고 인증서 및 키 정보와 같은 자격 증명을 도용하기 때문에 다양한 실시 예는 통신 네트워크에서 통신의 보안을 향상시킨다. 일부 실시 예에서, 동적 공유 데이터 세트는 비교적 짧은 시간 동안 하나의 상태로 존재할 수 있으며, 이는 몇 분 또는 심지어 몇 초일 수 있다. 일부 실시 예들에서, 동적 값은 단지 하나의 통신을 암호화 및 해독하는데 사용될 수 있다. 이는 경우에 따라 수십 년까지 지속될 수 있는 기존 인증 기관(CA)의 유효 인증서 기간과 대조적이다. 유효 기간이 비교적 짧고 임시 공유 데이터 세트의 고유한 복잡성과 동적 값은 그러한 정보가 추측, 접근 또는 "해킹"되어 시스템을 공격하는 수단으로 사용될 가능성을 몇 배나 줄인다.
다양한 실시 예와 관련된 추가 세부 사항은 2016년 11월 17일자로 출원된 "다경로 인증을 위한 시스템 및 방법"이라는 미국 가출원 제62/423,593호, 2016년 12월 30일자로 출원된 "다경로 인증 시스템 및 방법"이라는 미국 특허 출원 제15/395,336호 및 2017년 4월 21일자로 출원된 "디바이스 검증 및 인증을 위한 시스템 및 방법"이라는 미국 특허 출원 제15/493,572호에 개시되어 있으며, 이들 모두는 그 전문이 본원에 참조로 포함된다.
다양한 실시 예는 둘 이상의 컴퓨팅 디바이스들에 의해 저장된 임시 공유 데이터 세트를 관리하기 위한 시스템 및 방법을 포함한다. 다양한 실시 예에서, 둘 이상의 컴퓨팅 디바이스들은 사용자 디바이스, 네트워크 서버, 인증 서버 또는 다른 컴퓨팅 디바이스와 같은 컴퓨팅 네트워크 내의 임의의 두 개의 엔드 포인트 디바이스들을 포함할 수 있다. 임시 공유 데이터 세트는 시간이 지남에 따라 컴파일 될 수 있으며, 때때로, 주기적으로 및/또는 트리거링 이벤트가 발생하면 컴퓨팅 디바이스에 의해 변경될 수 있다. 임시 공유 데이터 세트를 변화 또는 변경하는 것은 데이터 세트의 하나 이상의 부분들을 재정렬하고, 데이터 세트에 정보를 추가하고, 데이터 세트로부터 정보를 빼고, 및/또는 임시 공유 데이터 세트의 하나 이상의 부분들을 변환하는 것을 포함할 수 있다. 임시 공유 데이터 세트는 둘 이상의 부분들을 포함할 수 있다. 데이터 세트의 각 부분은 둘 이상의 요소들을 포함할 수 있다. 일부 실시 예에서, 컴퓨팅 디바이스는 임시 공유 데이터 세트의 둘 이상의 요소들 사이의 관계를 결정할 수 있다. 둘 이상의 요소들 간의 관계는 시간 차이, 위치 차이, 배치의 차이, 색상 차이, 피치 차이, 주파수 차이 또는 다른 차이와 같은 둘 이상의 요소들 간의 비교되는 차이를 포함할 수 있다. 둘 이상의 요소들 사이의 관계는 또한 둘 이상의 요소들 각각과 상대 시간, 위치, 배치, 색, 피치, 주파수 또는 다른 차이와 같은 제3 요소 사이의 비교 차이를 포함할 수 있다.
일부 실시 예에서, 복수의 파일들은 복수의 이미지 파일들을 포함할 수 있다. 다양한 실시 예에서, 컴퓨팅 디바이스는 동일한 임시 임시 데이터 세트를 유지하면서 두 컴퓨팅 디바이스들이 임시 공유 데이터 세트를 변경할 수 있게 하는 임시 공유 데이터 세트를 변경하기 위해 합의된 방법을 사용할 수 있다. 일부 실시 예에서, 임시 공유 데이터 세트를 변경하기 위한 명령어는 데이터 세트 관리자(예를 들어, 데이터 세트 관리 디바이스)와 같은 네트워크 요소에 의해 컴퓨팅 디바이스에 제공될 수 있다. 일부 실시 예에서, 임시 공유 데이터 세트의 변경은 데이터 세트 관리자 및/또는 컴퓨팅 디바이스에 의해 동적으로 결정될 수 있다(예를 들어, "즉석에서").
일부 실시 예들에서, 데이터 세트 관리자는 임시 공유 데이터 세트를 변경하기 위해 하나 이상의 명령어를 동적으로 생성할 수 있다. 일부 실시 예에서, 명령어는 임시 공유 데이터 세트를 교체하기 위한 명령어를 포함할 수 있다. 일부 실시 예들에서, 명령어는 새로운 데이터 세트 부분을 추가하기 위한 명령어를 포함할 수 있다. 일부 실시 예들에서, 명령어는 임시 공유 데이터 세트의 일부를 감산하기 위한 명령어를 포함할 수 있다. 일부 실시 예들에서, 명령어는 임시 공유 데이터 세트를 재정렬하기 위한 명령어를 포함할 수 있다. 일부 실시 예들에서, 명령어는 임시 공유 데이터 세트를 변환하기 위한 명령어를 포함할 수 있다.
다양한 실시 예들에서, 임시 공유 데이터 세트에 대한 하나 이상의 변환을 수행하는 것은 비교적 적은 수의 부분들로부터 매우 많은 수의 예측할 수 없는 요소 값 및 데이터 요소들 간의 관계의 생성을 가능하게 한다. 다양한 실시 예들에서, 간단한 계산, 또는 프로세서 집약적이 아닌 계산은 비교적 작고 및/또는 간단한 시작 데이터 세트로부터 막대한 복잡성을 생성할 수 있다. 기존의 비밀 정보(예를 들어, 1 차원 선형 계산을 나타내는 PKI 인증서와 같은)와 달리, 동적 데이터 세트는 다차원(n- 차원)일 수 있고, 훨씬 더 큰 복잡성 및 종래의 비밀 정보를 수십 배만큼 제공할 수 있다. 또한, 다양한 실시 예들은 임시 공유 데이터 세트의 요소들 사이 및 요소들 간의 관계를 결정할 수 있다. 데이터 세트에서 변환을 수행하면 데이터 요소들 간의 다양한 관계가 변경될 수 있다. 하나의 예로서, 이미지 파일은 다수의 픽셀을 포함할 수 있고, 각각의 픽셀은 이미지 파일 내 위치 정보, 색상, 색조, 채도, 흑백 값 및 기타 픽셀 정보 등과 같은 다수의 상이한 값과 연관될 수 있다. 변환하지 않아도 이미지 파일에는 고유한 정보 세트가 포함될 수 있다. 그러면 프로세서는 하나 이상의 이미지 파일들에 대해 변환을 수행할 수 있고, 그에 따라 변환된 이미지 파일 내의 다양한 픽셀의 값뿐만 아니라, 변환된 이미지 파일의 데이터 요소와 데이터 세트의 다른 부분 사이의 수 많은 관계를 변환시킨다.
일부 실시 예들에서, 컴퓨팅 장치들 중 하나(제1 컴퓨팅 디바이스)는 컴퓨팅 장치가 제2 컴퓨팅 디바이스로 전송하기 위한 통신을 갖는다는 표시를 데이터 세트 관리자에게 전송할 수 있다. 제1 컴퓨팅 디바이스로부터의 지시에 응답하여, 데이터 세트 관리자는 임시 공유 데이터 세트로부터 하나 이상의 요소들을 추출하기 위한 명령어를 생성하고, 추출 명령어를 제1 및 제2 컴퓨팅 디바이스에 전송할 수 있다. 명령어에 따르면, 제1 및 제2 컴퓨팅 디바이스는 임시 공유 데이터 세트로부터 요소를 추출할 수 있다. 일부 실시 예에서, 추출 명령어는 추출될 요소(들)의 표시를 포함할 수 있다. 일부 실시 예에서, 추출 명령어는 제1 및 제2 컴퓨팅 디바이스 각각이 추출될 임시 공유 데이터 세트의 요소(들)를 식별할 수 있게 하는 규칙 세트를 포함할 수 있다. 일부 실시 예에서, 추출 명령어는 하나 이상의 추출된 요소들에 대해 변환 동작을 수행하기 위한 명령어를 포함할 수 있다. 다양한 실시 예에서, 임시 공유 데이터 세트의 요소를 기반으로 하여 추출 명령어는 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스가 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 의해 공유되는 고유한 요소 세트를 동적으로 생성할 수 있게 할 수 있다(즉, 추출된 요소는 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스 각각에 저장됨).
일부 실시 예들에서, 제1 컴퓨팅 디바이스는 추출된 요소들 중에서 요소를 선택할 수 있다. 일부 실시 예에서, 제1 컴퓨팅 디바이스는 선택된 요소를 나타내는 규칙 세트를 생성할 수 있다. 규칙 세트는 임시 공유 데이터 세트의 추출된 데이터 요소들 중에서 선택된 요소를 식별할 수 있다. 일부 실시 예들에서, 컴퓨팅 디바이스는 선택된 데이터 요소들 사이에서 또는 선택된 데이터 요소들 사이의 하나 이상의 관계에 기초하여 규칙 세트를 생성할 수 있다. 일부 실시 예에서, 제1 요소의 아이덴티티 및 다른 데이터 요소와의 하나 이상의 관계에 기초하여 규칙 세트는 컴퓨팅 디바이스가 추출된 요소들로부터 요소를 선택할 수 있게 하는 제1 요소 및 제1 요소와 다른 데이터 요소 사이의 하나 이상의 관계를 식별할 수 있다. 제1 컴퓨팅 디바이스는 생성된 규칙 세트를 제2 컴퓨팅 디바이스에 전송할 수 있다.
일례로서, 임시 공유 데이터 세트는 둘 이상의 이미지 파일들을 포함할 수 있고, 각각의 이미지 파일은 다수의 픽셀들(화상 요소)을 포함할 수 있다. 각각의 이미지 파일은 타임 스탬프 또는 다른 시간 정보, 위치 정보 및/또는 이미지가 획득된 지리적 위치 정보, 날씨 정보 등과 같은 추가 데이터와 연관될 수 있다. 각 픽셀은 이미지의 좌표 위치, 색상, 강도, 광도 등과 같은 다수의 정보 요소와 연관될 수 있다. 각 픽셀은 또한 각각의 이미지 파일의 정보와 관련될 수 있다. 따라서, 각 픽셀은 다수의 정보 요소와 연관될 수 있으며, 이는 변수로 간주될 수 있다. 일부 실시 예들에서, 규칙 세트는 임시 공유 데이터 세트의 하나 이상의 픽셀을 식별하는 정보를 포함할 수 있다. 일부 실시 예에서, 규칙 세트는 임시 공유 데이터 세트의 하나의 픽셀을 식별하는 정보, 및 식별된 제1 픽셀 및 관계 정보를 사용하여 하나 이상의 다른 픽셀을 식별할 수 있게 하는 관계 정보를 포함할 수 있다.
임시 공유 데이터 세트는 이미지 파일로 제한되지 않으며, 식별 가능한 데이터 요소를 포함할 수 있고/있거나 2 개 이상의 데이터 요소들 간의 관계가 결정될 수 있는 데이터를 사용하여 공유 데이터 세트가 생성 또는 컴파일될 수 있다. 이러한 데이터의 예는 비디오 파일, 오디오 파일, 생체 샘플, 위치 데이터(예를 들어, 글로벌 포지셔닝 위성(GPS) 시스템 데이터) 등을 포함한다. 또한, 규칙 세트는 임시 공유 데이터 세트의 구성 요소의 하나 이상의 데이터 요소를 식별하는 정보를 포함할 수 있다. 일부 실시 예에서, 규칙 세트는 하나의 데이터 요소를 식별하는 정보 및 데이터 세트에서 하나 이상의 다른 데이터 요소를 식별할 수 있는 관계 정보를 포함할 수 있다(예를 들어, 추출된 데이터 요소에서 선택된 요소).
일부 실시 예에서, 제1 컴퓨팅 디바이스는 선택된 요소에 기초하여 제1 결과를 생성할 수 있다. 일부 실시 예에서, 생성된 결과는 데이터 스트링을 포함할 수 있다. 일부 실시 예에서, 생성된 결과는 임시 공유 데이터 세트의 추출된 요소로부터 선택된 요소의 정보에 기초한 값을 포함할 수 있다. 일부 실시 예들에서, 제1 컴퓨팅 디바이스는 정보의 값들의 해시를 생성하는 것과 같이 선택된 요소들의 정보의 변환을 수행할 수 있다. 일부 실시 예들에서, 제1 컴퓨팅 디바이스는 선택된 요소의 정보에 기초하여 데이터 스트링을 생성할 수 있고 선택된 요소의 정보의 변환을 수행하여(예를 들어, 해시 생성) 제1 결과를 생성할 수 있다.
다양한 실시 예에서, 임시 공유 데이터 세트로부터 추출된 요소를 갖는 제2 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스로부터 규칙 세트를 수신할 수 있고, 규칙 세트 및 임시 세트 공유 데이터 세트의 추출된 요소를 사용하여 추출된 요소로부터 요소를 선택할 수 있다. 예를 들어, 제2 컴퓨팅 디바이스는 규칙 세트를 그의 저장된 추출된 데이터 요소에 적용하여, 예를 들어 픽셀 및 이들의 관련 위치, 데이터 세트에서의 순서, 색상, 밀도에 대한 수치 값 등을 식별할 수 있다. 일부 실시 예들에서, 제2 컴퓨팅 디바이스는 규칙 세트의 어플리케이션으로부터 데이터 스트링을 생성할 수 있다.
일부 실시 예에서, 제2 컴퓨팅 디바이스는 선택된 요소에 기초하여 제2 결과를 생성할 수 있다. 일부 실시 예에서, 생성된 결과는 데이터 스트링을 포함할 수 있다. 일부 실시 예들에서, 생성된 결과는 임시 공유 데이터 세트의 선택된 요소의 정보에 기초한 값을 포함할 수 있다. 일부 실시 예에서, 제2 컴퓨팅 디바이스는 정보의 값의 해시를 생성하는 것과 같이 선택된 요소의 정보의 변환을 수행할 수 있다. 일부 실시 예들에서, 제2 컴퓨팅 디바이스는 선택된 요소들의 정보 또는 그 내에 있는 정보에 기초하여 데이터 스트링을 생성할 수 있고, 제2 결과를 생성하기 위해 데이터 스트링의 변환(예를 들어, 해시 생성)을 수행할 수 있다.
일부 실시 예에서, 제2 컴퓨팅 디바이스는 제2 결과를 이용하여 메시지를 암호화 할 수 있고, 제2 컴퓨팅 디바이스는 암호화 된 메시지를 제1 컴퓨팅 디바이스에 전송할 수 있다. 일부 실시 예들에서, 메시지는 매우 적은 양의 데이터를 포함할 수 있다. 일부 실시 예에서, 암호화된 메시지는 제1 통신 디바이스로 전송하기 위한 테스트 메시지로서 기능하여, 제1 통신 디바이스가 제2 통신 디바이스에 의해 생성된 제2 결과가 제1 통신 디바이스에 의해 생성된 제1 결과와 일치하는지 여부를 판정할 수 있게 한다.
일부 실시 예들에서, 제1 통신 디바이스는 제2 디바이스로부터 암호화된 메시지를 수신 할 수 있고, 제1 결과를 이용하여 메시지를 해독하려고 시도할 수 있다. 예를 들어, 제1 통신 디바이스는 메시지의 암호 해독 프로세스를 개시할 수 있다. 제1 통신 디바이스는 암호 해독 성공 여부를 판단할 수 있다. 일부 실시 예들에서, 암호 해독이 성공적이지 않다는 결정에 응답하여, 제1 통신 디바이스는 제2 컴퓨팅 디바이스가 인증되지 않았다고 결정할 수 있다. 일부 실시 예들에서, 암호 해독이 성공적이지 않다는 결정에 응답하여, 제1 통신 디바이스는 동기화 쿼리를 데이터 세트 관리자에게 전송할 수 있다. 일부 실시 예에서, 동기화 쿼리에 응답하여, 데이터 세트 관리자는 새로운 추출 명령어를 생성하고 새로운 추출 명령을 제1 및 제2 통신 디바이스에 전송할 수 있다. 일부 실시 예에서, 동기화 쿼리에 응답하여, 제1 및 제2 통신 디바이스뿐만 아니라 데이터 세트 관리자는 임시 공유 데이터 세트를 동기화하기 위해 동기화 동작을 수행할 수 있다.
다양한 실시 예들에서, 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스 각각은 추출된 요소들 중에서 요소들을 선택할 수 있고, 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스 각각은 규칙 세트를 생성할 수 있다. 일부 실시 예에서, 제1 컴퓨팅 디바이스에 의해 선택된 요소는 제2 컴퓨팅 디바이스에 의해 선택된 요소와 상이할 수 있다. 예를 들어, 일부 실시 예에서, 제1 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스에 의해 선택된 요소를 나타내는 제1 규칙 세트를 생성할 수 있다. 일부 실시 예에서, 제2 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스에 의해 선택된 요소를 나타내는 제2 규칙 세트를 생성할 수 있다. 일부 실시 예에서, 제1 컴퓨팅 디바이스는 제1 규칙 세트를 제2 컴퓨팅 디바이스로 전송할 수 있고, 제2 컴퓨팅 디바이스는 제2 규칙 세트를 제1 컴퓨팅 디바이스로 전송할 수 있다.
일부 실시 예에서, 제1 및/또는 제2 규칙 세트는 선택된 요소들(즉, 각 디바이스에서 선택한 요소와 다른 컴퓨팅 디바이스에서 규칙 세트를 사용하여 선택한 요소)을 결합하여 선택된 요소의 조합된 세트를 생성하는 방법에 대한 명령어/규칙을 포함할 수 있다.
일부 실시 예에서, 제1 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스에 의해 선택된 요소에 기초하여 제1 결과를 생성할 수 있다. 일부 실시 예들에서, 제1 컴퓨팅 디바이스는 제2 규칙 세트(제 2 컴퓨팅 디바이스로부터의)를 사용하여 추출된 요소들 중에서 요소들을 선택할 수 있다. 제1 컴퓨팅 디바이스는 제2 규칙 세트를 사용하여 선택된 요소들로부터 제2 결과를 생성할 수 있다. 일부 실시 예들에서, 제1 컴퓨팅 디바이스는 제1 결과 및 제2 결과를 결합하여 결합된 결과를 생성할 수 있다.
일부 실시 예에서, 제2 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스에 의해 선택된 요소에 기초하여 제3 결과를 생성할 수 있다. 일부 실시 예들에서, 제1 컴퓨팅 디바이스는 제1 규칙 세트(제1 컴퓨팅 디바이스로부터의)를 사용하여 추출된 요소들 중에서 요소들을 선택할 수 있다. 제2 컴퓨팅 디바이스는 제1 규칙 세트를 사용하여 선택된 요소들로부터 제4 결과를 생성할 수 있다. 일부 실시 예들에서, 제2 컴퓨팅 디바이스는 제3 결과 및 제4 결과를 결합하여 결합된 결과를 생성할 수 있다. 다양한 실시 예에서, 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스 각각에 의해 생성된 결합된 결과는 동일하다.
일부 실시 예들에서, 제1 및/또는 제2 규칙 세트는 조합된 규칙 세트를 생성하기 위해 제1 및 제2 규칙 세트를 결합하기 위한 명령어/규칙을 포함할 수 있다. 각각의 컴퓨팅 디바이스는 결합된 규칙 세트를 사용하여 추출된 요소들 중에서 요소들을 선택하고, 선택된 요소들을 사용하여 결합된 결과를 생성할 수 있다.
일부 실시 예에서, 제2 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스에 의해 생성된 결합된 결과를 이용하여 메시지를 암호화 할 수 있고, 제2 컴퓨팅 디바이스는 암호화된 메시지를 제1 컴퓨팅 디바이스에 전송할 수 있다. 일부 실시 예들에서, 제1 통신 디바이스는 제2 디바이스로부터 암호화된 메시지를 수신할 수 있고, 제1 컴퓨팅 디바이스에 의해 생성된 결합된 결과를 이용하여 메시지를 해독하려고 시도할 수 있다. 암호 해독이 성공적이라고 결정한 것에 응답하여, 제1 컴퓨팅 디바이스는 결합된 결과를 사용하여 통신을 암호화하고, 암호화된 통신을 제2 컴퓨팅 디바이스에 전송할 수 있다. 제2 컴퓨팅 디바이스는 결합된 결과를 이용하여 통신을 암호 해독화 할 수 있다.
다양한 실시 예가 다양한 통신 시스템(100) 내에서 구현될 수 있으며, 그 예는 도 1에 도시되어 있다. 통신 시스템(100)은 컴퓨팅 디바이스들(102 및 106) 및 네트워크 요소(110)를 포함할 수 있다. 일부 실시 예에서, 컴퓨팅 디바이스들(102 및 106)은 스마트 폰, 랩톱 컴퓨터, 데스크탑 컴퓨터 등과 같은 사용자에 의해 직접 사용되는 컴퓨팅 디바이스를 포함할 수 있다. 일부 실시 예에서, 컴퓨팅 디바이스들(102 및 106)는 라우터, 스마트 스위치, IoT 라우터 또는 허브 또는 다른 유사한 디바이스와 같은 네트워크 디바이스를 포함할 수 있다. 컴퓨팅 디바이스(102)는 데이터 저장소(104)를 포함하거나 이와 통신하도록 구성될 수 있고, 컴퓨팅 디바이스(106)는 데이터 저장소(108)를 포함하거나 이와 통신하도록 구성될 수 있다. 사용자는 컴퓨팅 디바이스들(102 및 106)와 유사한 하나 이상의 그러한 컴퓨팅 디바이스를 조작할 수 있다는 것이 이해될 것이다. 일부 실시 예에서, 컴퓨팅 디바이스(102 및 106)는 하나 이상의 IoT 디바이스들을 포함할 수 있다. IoT 디바이스의 비-제한적 예시들은 개인 또는 모바일 멀티미디어 플레이어, 게임 시스템 및 컨트롤러, 스마트 텔레비전, 셋톱 박스, 똑똑한 부엌 가전 용품, 스마트 조명 및 조명 시스템, 스마트 전기 미터, 스마트 난방, 환기 및 에어컨(HVAC) 시스템, 스마트 보온 장치, 문 및 창 잠금 장치를 포함한 빌딩 보안 시스템, 차량 엔터테인먼트 시스템, 차량 진단 및 모니터링 시스템, 기계 대 기계 디바이스, 무선 통신 경로를 설정하고 무선 통신 경로를 통해 데이터를 송수신하기 위한 프로그램 가능 프로세서 및 메모리 및 회로를 포함하는 유사한 디바이스를 포함할 수 있다. 컴퓨팅 디바이스들(102 및 106)은 또한 육상, 해상, 항공 또는 우주 여행을 할 수 있는 무인, 자율, 반자율 또는 로봇 차량을 포함할 수 있다. 컴퓨팅 디바이스들(102 및 106)은 스마트 총기 또는 다른 프로세서 장착 무기 또는 무기 시스템을 더 포함할 수 있다.
일부 실시 예에서, 네트워크 요소(110)는 서버와 같은 백엔드 컴퓨팅 디바이스를 포함할 수 있다. 네트워크 요소(110)는 데이터 저장소(112)를 포함하거나 이와 통신하도록 구성될 수 있다.
컴퓨팅 디바이스들(102 및 106) 및 네트워크 요소(110) 각각은 각각의 통신 링크(122, 124 및 126)를 통해 통신 네트워크(114)와 통신할 수 있다. 일부 실시 예에서, 통신 네트워크(112)는 둘 이상의 통신 네트워크를 포함할 수 있다. 통신 링크들(122, 124 및 126)은 유선 또는 무선 통신 링크들을 포함할 수 있고, 컴퓨팅 디바이스들(102 및 106), 네트워크 요소(110) 및 통신 네트워크(114) 사이의 통신을 용이하게 하기 위한 추가 디바이스를 더 포함할 수 있다. 이러한 추가 디바이스의 예는 액세스 포인트, 기지국, 라우터, 게이트웨이, 유선 및/또는 무선 통신 디바이스뿐만 아니라 광섬유 백홀 링크, 마이크로파 백홀 링크 및 다른 적절한 통신 링크를 포함할 수 있는 백홀 통신 링크를 포함할 수 있다.
일부 실시 예들에서, 네트워크 요소(110)는 데이터 저장소(112)에 저장될 수 있는 데이터 세트를 관리하도록 구성될 수 있다. 일부 실시 예들에서, 네트워크 요소(110)는 아래에 더 설명되는 바와 같이 컴퓨팅 디바이스(102)의 데이터 저장소(104) 및 컴퓨팅 디바이스(106)의 데이터 저장소(108)에 저장될 수 있는 임시 공유 데이터 세트를 관리하도록 구성될 수 있다.
다양한 실시 예에서, 네트워크 요소(110)는 시간에 따라 데이터 입력(130)을 수신할 수 있다. 데이터 입력(130)은 컴퓨팅 디바이스(130)가 다른 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106))와 공유될 수 있는 데이터 세트를 생성, 변경 및/또는 관리하기 위해 사용할 수 있는 정보를 포함할 수 있다. 데이터 입력(130)은 예를 들어, 이미지, 사진, 비디오, 음원(예를 들어, 음악, 주변 음원 또는 이와 같은 다른 음원), 생체 정보 입력(예를 들어, 얼굴 인식 스캔, 홍채 스캔, DNA 샘플, 보이스 프린트 기록, 지문 등), 또는 기타 다른 데이터 입력을 포함할 수 있다.
통신 네트워크(112)는 엔티티 또는 기업 내의 통신 네트워크, 및 외부 통신 네트워크, 공개적으로 이용 가능한 통신 네트워크, 및 네트워크의 조합 및 인터넷을 포함한 인터네트워크를 포함하는 다양한 통신 네트워크를 포함할 수 있다. 통신 네트워크(112)는 하나 이상의 유선 및 무선 통신 프로토콜을 사용하는 통신을 지원할 수 있다. 통신 링크들(120, 122, 124 및 126) 각각은 양방향 유선 또는 무선 통신 링크일 수 있다. 무선 통신 프로토콜은 하나 이상의 무선 액세스 기술(RAT)을 포함할 수 있다. 무선 RAT의 예시는 3GPP LTE(Long Term Evolution), WiMAX (Worldwide Waveoper for Microwave Access), 코드 분할 다중 액세스(CDMA), 시분할 다중 접속(TDMA), 광대역 CDMA(WCDMA), 글로벌 이동 시스템(GSM), 그리고 다른 RAT를 포함한다. RAT의 예는 또한 와이파이, 블루투스, 지그비, 비면허 스펙트럼의 LTE(LTE-U), 라이센스 지원 액세스(LAA), 및 MuLTEfire(라이센스가 없는 반송파 대역에서 LTE를 사용하는 시스템)을 포함할 수 있다. 유선 통신 프로토콜은 하나 이상의 유선 통신 프로토콜을 사용할 수 있는 이더넷, 포인트 투 포인트 프로토콜, 하이-레벨 데이터 링크 제어(HDLC), 고급 데이터 통신 제어 프로토콜(ADCCP), 및 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP)과 같은 다양한 유선 네트워크(예를 들어, 이더넷, TV 케이블, 전화 통신, 광섬유 및 기타 형태의 물리적 네트워크 연결)를 사용할 수 있다.
일부 실시 예들에서, 컴퓨팅 디바이스들(102 및 106) 및 네트워크 요소(110)는 내부 엔터프라이즈 네트워크, 정부 기관 보안 네트워크, 가상 사설망(VPN) 또는 다른 유사한 네트워크 환경과 같은 보안 네트워크의 일부일 수 있다. 이러한 보안 네트워크에서, 통신 링크들(122, 124 및 126)은 하나 이상의 계층(즉, OSI(Open Systems Interconnection) 계층)에서의 암호화와 같은 추가 보안 및 통신 링크들(122, 124 및 126을를 따라 통신을 보안하기 위한 다른 구현을 포함할 수 있다.
통신 링크들(122, 124 및 126)이 단일 링크로서 도시되어 있지만, 각각의 통신 링크는 복수의 주파수 또는 주파수 대역과 같은 복수의 유선 또는 무선 링크를 포함할 수 있으며, 이들 각각은 복수의 논리 채널을 포함할 수 있다. 또한, 다양한 통신 링크들(122, 124 및 126) 각각은 하나 이상의 통신 프로토콜을 이용할 수 있다.
도 2는 다양한 실시 예를 구현하기에 적합한 컴퓨팅 디바이스(200)의 구성 요소 블록도이다. 도 1 및 도 2를 참조하면, 다양한 실시 예에서, 컴퓨팅 디바이스(200)는 컴퓨팅 디바이스(102, 106 및 110)와 유사할 수 있다.
컴퓨팅 디바이스(200)는 프로세서(202)를 포함할 수 있다. 프로세서(202)는 다양한 실시 예의 동작을 실행하기 위해 프로세서 실행 가능 명령어로 구성될 수 있고, 주요 기능 외에 다양한 실시 예의 동작을 실행하기 위해 프로세서 실행 가능 명령으로 구성 가능한 모뎀 프로세서와 같은 특수 프로세서, 다양한 실시 예들의 동작들을 수행하도록 구성된 전용 하드웨어 회로(예를 들어, "펌웨어"), 또는 전용 하드웨어/펌웨어 및 프로그램 가능 프로세서의 조합일 수 있다.
프로세서(202)는 메모리(204)에 연결될 수 있으며, 이는 프로세서 실행 가능 명령어를 저장하는 비-일시적 컴퓨터 판독 가능 저장 매체일 수 있다. 메모리(204)는 사용자 어플리케이션 소프트웨어 및 실행 가능한 명령어뿐만 아니라 운영 체제를 저장할 수 있다. 메모리(204)는 또한 어레이 데이터 구조와 같은 어플리케이션 데이터를 저장할 수 있다. 메모리(204)는 하나 이상의 캐시, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 전기적으로 소거 가능한 프로그램 가능 ROM(EEPROM), 정적 RAM(SRAM), 동적 RAM(DRAM) 또는 다른 유형의 메모리를 포함할 수 있다. 프로세서(202)는 메모리(204)와 정보에 정보를 기록하고 이로부터 정보를 판독할 수 있다. 메모리(204)는 또한 하나 이상의 프로토콜 스택과 관련된 명령어를 저장할 수 있다. 프로토콜 스택은 일반적으로 무선 액세스 프로토콜 또는 통신 프로토콜을 이용한 통신을 가능하게 하는 컴퓨터 실행 가능 명령어를 포함한다.
프로세서(202)는 또한 후술하는 바와 같이 다양한 동작을 수행하도록 구성된 유닛을 위한 다양한 모듈과 통신할 수 있다. 예를 들어, 프로세서(202)는 통신 인터페이스(206), 공유 데이터 세트 모듈(208), 및 요소 추출/선택 모듈(210), 규칙 세트 모듈(212) 및 데이터 변환 모듈(214)과 통신할 수 있다. 모듈/유닛들(206-214)은 컴퓨팅 장치(200)에서 소프트웨어, 하드웨어 또는 펌웨어 칩, 시스템 온 칩(SOC), 다양한 실시 예들의 동작들을 수행하도록 구성된 전용 하드웨어(즉, 펌웨어) 회로, 또는 전용 하드웨어/펌웨어 및 프로그램 가능 프로세서의 조합을 포함하는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 프로세서(202), 메모리(204) 및 다양한 모듈/유닛(206-214)은 통신 버스 또는 임의의 다른 통신 회로 또는 인터페이스를 통해 통신할 수 있다.
통신 인터페이스(206)는 통신 네트워크(예를 들어, 통신 네트워크(114))와의 통신을 가능하게 할 수 있는 네트워크 인터페이스를 포함할 수 있다. 통신 인터페이스(206)는 이더넷 연결, 광섬유 연결, 광대역 케이블 연결, 전화선 연결과 같은 연결을 통해 하나 이상의 입출력(I/O) 포트를 포함할 수 있고, 또는 다른 유형의 유선 통신 연결이 제공될 수 있다. 통신 인터페이스(206)는 또한 무선 주파수 통신을 가능하게 할 수 있는 무선 유닛을 포함할 수 있다.
공유 데이터 세트 모듈(208)은 공유 데이터 세트(예를 들어, 네트워크 요소(110)로부터)로서 사용하기 위한 정보를 통신 인터페이스(206)로부터 수신할 수 있다. 공유 데이터 세트 모듈(208)은 프로세서(202)로부터의 명령에 따라 공유 데이터 세트를 변경하도록 구성될 수 있다.
요소 추출/선택 모듈(210)은 공유 데이터 세트로부터 하나 이상의 데이터 요소를 추출 및/또는 선택하도록 구성될 수 있다.
규칙 세트 모듈(212)은 하나 이상의 데이터 요소들을 식별하는 규칙 세트를 생성하도록 구성될 수 있다. 규칙 세트 모듈(212)은 또한 다른 컴퓨팅 디바이스로부터 수신된 규칙 세트를 분석하여 요소 추출/선택 모듈이 수신된 규칙 세트를 사용하여 공유 데이터 세트로부터 하나 이상의 데이터 요소를 추출 및/또는 선택하도록 구성될 수 있다.
데이터 변환 모듈(214)은 공유 데이터 세트의 하나 이상의 요소, 하나 이상의 추출된 요소 및/또는 하나 이상의 선택된 요소에 대해 하나 이상의 데이터 변환을 수행하도록 구성될 수 있다. 데이터 변환 모듈(214)은 또한 공유 데이터 세트를 변경하기 위한 동작을 수행하도록 구성될 수 있다.
도 3은 다양한 실시 예에 따른 임시 공유 데이터 세트를 관리하는 방법(300)을 도시한다. 도 1 내지 도 3을 참조하면, 방법(300)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스들(102 및 106) 및 네트워크 요소(110))의 프로세서(예를 들어, 프로세서(202) 등)에 의해 구현될 수 있다.
블록(302)에서, 프로세서는 데이터 세트를 확립할 수 있다. 예를 들어, 프로세서는 데이터 입력(예를 들어, 데이터 입력(130))을 수신하고 하나 이상의 데이터 입력에 기초하여 데이터 세트를 확립할 수 있다. 데이터 입력 및 데이터 세트는 아래에 더 설명된다.
데이터 세트가 확립된 후, 프로세서는 데이터 세트를 변경하기 위해 하나 이상의 동작을 수행할 수 있다.
블록(304)에서, 프로세서는 수신된 데이터 입력에 기초하여 새로운 데이터 세트 부분 및/또는 새로운 데이터 요소를 추가할 수 있다.
추가적으로 또는 대안적으로, 프로세서는 블록(306)에서 데이터 세트의 하나 이상의 부분 및/또는 하나 이상의 요소를 감산할 수 있다.
추가적으로 또는 대안적으로, 프로세서는 블록(308)에서 데이터 세트의 하나 이상의 부분 및/또는 하나 이상의 요소를 재정렬할 수 있다.
추가적으로 또는 대안적으로, 프로세서는 블록(310)에서 데이터 세트의 하나 이상의 부분 및/또는 하나 이상의 요소의 변환을 수행할 수 있다.
요소 및/또는 부분을 변환하는 것은 요소 및/또는 부분의 하나 이상의 값을 변경하기 위해 하나 이상의 동작을 수행하는 것을 포함할 수 있다. 예를 들어, 이미지 또는 비디오 파일의 요소 및/또는 일부를 변환하는 것은 부분을 회전, 뒤집기, 반전, 이동시키는 것, 색상을 바꾸는 것, 필터 또는 사전 설정 변환 적용(예를 들어, 사진 또는 비디오 편집 소프트웨어 프로그램에서 사용 가능)하는 것 또는 다른 유사한 작업을 포함할 수 있다. 다른 예로서, 음악 또는 오디오 파일의 요소 및/또는 일부를 변환하는 것은 피치를 올리거나 내리는 것, 파일 내용 반전시키는 것, 오디오 파일의 내용을 인버팅하는 것(즉, 선택된 축을 따라 내용을 변환), 리버브, 디스토션, 플랜징 등과 같은 오디오 효과를 추가하는 것, 또는 다른 유사한 작업을 포함할 수 있다. 다른 예로서, 임시 공유 데이터 세트의 요소 및/또는 일부를 변환하는 것은 데이터 요소를 트랜스코딩하는 것을 포함할 수 있다(예를 들어, 오디오 데이터를 시각적 데이터 또는 텍스트로 변환). 다른 예로서, 임시 공유 데이터 세트의 요소 및/또는 일부를 변환하는 것은 요소 및/또는 부분을 변환하기 위해 하나 이상의 수학적 기능을 수행하는 것을 포함할 수 있다.
도 4는 일부 실시 예에 따른 데이터 세트(400)의 일례를 도시한다. 도 1 내지 도 4를 참조하면, 일부 실시 예에서, 데이터 세트는 둘 이상의 부분들을 포함할 수 있다. 데이터 세트의 각 부분은 하나 이상의 요소들을 포함할 수 있다. 일부 실시 예에서, 데이터 세트의 부분은 이미지, 사진, 비디오, 녹음, 생체 입력 또는 또 다른 이산적 구성 요소와 같은 개별 구성 요소를 포함할 수 있다. 다양한 실시 예에서, 데이터 세트, 또는 데이터 세트의 하나 이상의 부분들 및/또는 요소들은 둘 이상의 컴퓨팅 디바이스들(예를 들어, 컴퓨팅 디바이스들(102 및 106))에 저장될 수 있는 임시 공유 데이터 세트를 생성하는데 사용될 수 있다.
데이터 세트(400)는 부분들(402, 404 및 406)과 같은 하나 이상의 부분들을 포함할 수 있다. 부분들(402, 404 및 406) 각각은 하나 이상의 요소를 포함할 수 있다. 예를 들어, 부분(402)은 요소들(420 및 422)을 포함할 수 있고, 부분(404)은 요소(424)를 포함할 수 있고, 부분(406)은 요소들(426 및 428)을 포함할 수 있다. 일부 실시 예에서, 부분들(402, 404 및 406)은 사진, 녹음, 지문, 생체 데이터 또는 다른 개별 부분과 같은 개별 구성 요소를 포함할 수 있다.
일부 실시 예들에서, 데이터 세트(400)는 시간이 지남에 따라 구축될 수 있다. 예를 들어, 컴퓨팅 디바이스(예를 들어, 네트워크 요소(110))는 데이터 입력(예를 들어, 데이터 입력(130))을 수신할 수 있고 수신된 데이터 입력을 사용하여 시간에 따라 데이터 세트(400)를 구축할 수 있다. 일부 실시 예들에서, 프로세서는 임시 공유 데이터 세트로서 사용하기 위해 데이터 세트(400) 중 일부 또는 전부를 둘 이상의 컴퓨팅 디바이스들에 제공할 수 있다.
다양한 실시 예들에서, 요소들(420-428)은 부분 내의 각각의 요소의 식별 또는 색인화를 가능하게 하는 정보를 포함할 수 있다. 예를 들어, 요소는 그 부분 내에서 요소의 위치, 배치 및/또는 시간을 식별하는 정보, 또는 각각의 선택된 요소의 색인화 또는 식별을 허용하는 임의의 다른 정보를 포함할 수 있다.
다양한 실시 예들에서, 부분들(402-406) 및/또는 요소들(420-428)은 적어도 하나의 다른 데이터 요소와의 하나 이상의 관계가 결정될 수 있는 데이터를 포함할 수 있다. 예를 들어, 부분들(402-406) 및/또는 요소들(420-428)은 타임 스탬프와 관련될 수 있다. 다른 예로서, 부분들 및/또는 요소들은 장소, 위치, 색, 피치, 빈도, 생체 인식 측면, 또는 부분 및/또는 요소의 다른 양태와 같은 다양한 데이터와 관련될 수 있다. 둘 이상의 요소 사이의 관계는 시차, 위치 차이, 장소 차이, 색 차이, 피치 차이, 주파수 차이, 생체 인식 차이, 또는 다른 차이와 같은 둘 이상의 요소 사이의 비교 차이를 포함할 수 있다.
다른 예로서, 요소들(420-428)은 한 부분 내에서, 또는 다른 부분들 사이에서 다른 위치 또는 장소를 가질 수 있다. 요소들(420-428)은 또한 둘 이상의 다른 요소들에 대하여 다른 시간뿐만 아니라 다른 위치 또는 장소와 관련될 수 있다. 일부 실시 예에서, 3 개 이상의 요소들은 하나의 요소와 둘 이상의 다른 요소들의 관계를 정의할 수 있다. 예를 들어, 요소들(420, 422 및 424) 사이의 위치/장소 차이는 3 개의 각도, 각도 A, 각도 B 및 각도 D를 정의할 수 있다. 유사하게, 요소들(420, 422, 424, 426 및 428) 사이의 상대 위치/장소 및/또는 시간 차이는 추가 각도, 각도 C, E, F, G, H, I 및 J를 정의할 수 있다. 다양한 실시 예들에서, 관계는 부분 내에서, 둘 이상의 부분들 사이에서 및/또는 데이터 세트(400) 내에서 시간, 공간, 거리의 상대 차이 또는 다른 정보 차이일 수 있다.
데이터 세트(400)와 같은 데이터 세트는 광범위한 부분들 및/또는 요소들로 구성될 수 있다. 도 5a 내지 도 5d는 예시적인 데이터 세트들(500a, 500b, 500c 및 500d)을 도시한다. 데이터 세트는 다양한 유형의 데이터 중 하나 이상을 포함할 수 있으며, 도 5 및 도 5a 내지 5d에 도시된 예시는 다양한 데이터 유형을 예시하기 위한 것이며 제한이 아니다.
예를 들어, 데이터 세트(500a)는 지문(502a, 504a 및 505a)을 포함할 수 있다. 지문(502a-505a)은 예를 들어 지문 스캐너와 같은 생체 스캐닝 디바이스에 의해 캡처될 수 있다. 지문(502a-506a)은 시간이 지남에 따라 캡처될 수 있어서, 지문(502a-506a) 각각은 데이터 세트(500a)의 일부를 구성한다. 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102-108))의 프로세서는 요소들(520a-538a)과 같은 데이터 세트(500a)의 부분들(예를 들어, 지문(502a-506a))로부터 요소들을 선택할 수 있다. 일부 실시 예들에서, 요소들(520a-538a)은 지문 축소를 포함할 수 있다. 요소들(520a-538a)은 컴퓨팅 장치의 프로세서가 그 부분 내의 요소의 위치 또는 장소를 식별하는 정보와 같은 부분 내(예를 들어, 지문(502a-506a) 중 하나 내)의 각 요소를 식별하거나 색인화할 수 있게 하는 정보를 포함할 수 있다. 또한, 각 부분은 타임 스탬프 또는 다른 시간 요소와 관련될 수 있다.
부분들(예를 들어, 지문들(502a-506a)) 및/또는 요소들(520a-538a)은 위치, 장소 및/또는 시간 정보와 같은 적어도 하나의 다른 데이터 요소와의 하나 이상의 관계가 결정될 수 있는 데이터를 포함할 수 있다. 일부 실시 예들에서, 부분들 및/또는 요소들은 요소들 중 하나 이상의 관계가 결정될 수 있는 데이터를 포함할 수 있다. 일부 실시 예에서, 관계는 둘 이상의 요소들 사이의 하나 이상의 비교 차이에 기초할 수 있다.
다른 예로서, 데이터 세트(500b)는 음원(502b, 504b 및 506b)을 포함할 수 있다. 음원은 예를 들어 마이크로폰 또는 유사한 디바이스에 의해 캡처될 수 있거나, 음원은 이러한 디바이스로부터의 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스들(102-108))의 프로세서에 의해 전자적으로 수신될 수 있다. 음원은(502b-506b)은 시간에 따라 캡처될 수 있고, 시간 정보를 포함하거나 이와 관련될 수 있다. 음원(502b-506b) 각각은 데이터 세트(500b)의 일부를 구성할 수 있다. 추가적으로 또는 대안적으로, 단일 기록(예를 들어, 502b, 504b 또는 506b 중 하나)은 예를 들어, 특정 시간 지속 시간의 부분들, 주파수 범위로 분할된 부분들, 진폭 범위로 분할된 부분들 및 다른 분할로 분할될 수 있다.
컴퓨팅 디바이스의 프로세서는, 요소들(520b-530b)과 같은, 음원(502b-506b)의 부분으로부터 요소를 선택할 수 있다. 요소(520b-530b)는 그 부분 내에서 요소의 위치 또는 장소를 식별하는 정보와 같은 음원 내의 각 요소의 식별 또는 색인을 가능하게 하는 정보를 포함할 수 있다. 각각의 요소(520b-530b)는 타임 스탬프 또는 주파수, 피치 및 진폭, 공격 속도, 붕괴 속도, 지속 시간과 같은 다른 시간 요소 및/또는 다른 정보와 연관될 수 있다.
부분들(예를 들어, 하나 이상의 음원(502b)) 및/또는 요소들(520b-530b)은 위치, 장소 및/또는 시간 정보와 같은 적어도 하나의 다른 데이터 요소에 대한 하나 이상의 관계가 결정될 수 있는 데이터를 포함할 수 있다. 일부 실시 예들에서, 부분들 및/또는 요소들은 컴퓨팅 디바이스의 프로세서가 요소들 중 하나 이상의 관계를 결정할 수 있는 데이터를 포함할 수 있다. 일부 실시 예에서, 관계는 둘 이상의 요소들 사이의 하나 이상의 비교 차이에 기초할 수 있다.
다른 예로서, 데이터 세트(500c)는 이미지들(502c, 504c 및 506c)을 포함할 수 있다. 이미지들(502c-5 06c)은 예를 들어 도 5c에 도시된 바와 같은 얼굴일 수 있지만, 다양한 실시 예들에서 이미지들(502a-506c)은 임의의 이미지일 수 있다. 이미지들(502a-506c)은 예를 들어 카메라 또는 다른 이미지 수신 디바이스에 의해 캡처될 수 있다. 이미지들(502a-506c)은 시간이 지남에 따라 캡처될 수 있어서, 이미지들(502a-506c) 각각은 데이터 세트(500a)의 일부를 구성한다. 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스들(102-108))의 프로세서는 요소들(520c-536c)과 같은 데이터 세트(500c)의 부분들(예를 들어, 이미지들(502a-506c))로부터 요소들을 선택할 수 있다. 예를 들어, 컴퓨팅 디바이스의 프로세서는 얼굴 인식 또는 다른 유사한 시스템을 사용하여 요소들(520c-536c)을 선택할 수 있다. 요소들(520c-536c)은 컴퓨팅 장치의 프로세서가 그 부분 내(예를 들어, 이미지들(502a-506c) 중 하나 내)의 요소의 위치 또는 장소를 식별하는 정보와 같은 부분 내의 각 요소를 식별하거나 색인화 할 수 있게 하는 정보를 포함할 수 있다. 또한, 각 부분은 타임 스탬프 또는 다른 시간 요소와 관련될 수 있다.
부분들(예를 들어, 이미지(502a-506c)) 및/또는 요소들(520c-536c)은 장소, 위치 및/또는 시간 정보와 같은 적어도 하나의 다른 데이터 요소와의 하나 이상의 관계가 결정될 수 있는 데이터를 포함할 수 있다. 일부 실시 예에서, 요소들(520c-536c)은 색깔, 색조, 빛깔, 회색조, RGB 정보, 팬톤 컬러 번호, 디지털 컬러 코드(예를 들어, 하이퍼 텍스트 마크업 언어 컬러 코드), 포화, 명도, 대조 또는 다른 이미지 정보와 같은 이미지 정보와 관련될 수 있다. 일부 실시 예들에서, 부분들 및/또는 요소들은 요소들 중 하나 이상의 관계가 결정될 수 있는 데이터를 포함할 수 있다. 일부 실시 예에서, 관계는 둘 이상의 요소들 사이의 하나 이상의 비교 차이에 기초할 수 있다. 일부 실시 예에서, 비교 차이는 색상, 색조, 빛깔 등을 나타내는 정보의 상대, 선형 및/또는 수치적 차이를 포함하는 이미지 정보의 차이를 포함할 수 있다.
다른 예로서, 데이터 세트(500d)는 DNA 샘플들(502d, 504d 및 506d)과 같은 하나 이상의 생체 데이터 유닛 또는 구성 요소를 포함할 수 있다. 생체 데이터는 적절한 스캐너 또는 캡처 디바이스에 의해 캡처되고 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스들(102-108))의 프로세서에 의해 수신될 수 있다. 생체 데이터는 시간에 따라 캡처될 수 있고, 시간 정보를 포함하거나 이와 관련될 수 있다. 데이터 세트(500d)는 둘 이상의 생체 데이터 구성 요소 또는 유닛을 포함할 수 있으며, 이들 각각은 데이터 세트의 일부(예를 들어, 둘 이상의 개별 생체 샘플)를 구성할 수 있다. 추가적으로 또는 대안적으로, 생체 샘플은 부분으로 분할될 수 있고, 이 분할은 생체 샘플에서 이용 가능한 정보에 기초하여 결정될 수 있다. 예를 들어, DNA 샘플(502d, 504d 및 506d)은 특정 염기쌍 길이 또는 수, DNA 백본의 특정 길이의 일부, 뉴클레오티드의 종류(예를 들어, 아데닌, 구아닌, 시토신 또는 티민), 염기쌍의 종류(예를 들어, 아데닌-티민, 사이토 신-구아닌) 또는 다른 구분의 부분으로 분할될 수 있다.
컴퓨팅 디바이스의 프로세서는 요소들(520d-530d)과 같은 생체 데이터 유닛(500d)의 부분들로부터 요소들을 선택할 수 있다. 요소들(520d-530d)은 DNA 스트랜드(502d)를 따른 위치와 같은 그의 부분 내의 요소의 위치 또는 장소를 식별하는 정보와 같은 생체 데이터 내의 각 요소의 식별 또는 색인을 가능하게 하는 정보를 포함할 수 있다. 각 요소(520d-530d)는 타임 스탬프 또는 다른 시간 요소와 관련될 수 있다.
부분들(예를 들어, 하나 이상의 생체 데이터 유닛(502d)) 및/또는 요소들(520d-530d)은 위치, 장소 및/또는 시간 정보와 같은 적어도 하나의 다른 데이터 요소에 대한 하나 이상의 관계가 결정될 수 있는 데이터를 포함할 수 있다. 일부 실시 예들에서, 부분들 및/또는 요소들은 컴퓨팅 디바이스의 프로세서가 요소들 중 하나 이상의 관계를 결정할 수 있는 데이터를 포함할 수 있다. 일부 실시 예에서, 관계는 둘 이상의 요소들 사이의 하나 이상의 비교 차이에 기초할 수 있다.
도 6a 내지 도 6c는 다양한 실시 예에 따른 데이터 세트를 관리하는 방법의 표현을 도시한다. 도 1 내지 도 6c를 참조하면, 데이터 세트(600)는 둘 이상의 부분들(602, 606, 606 및 608)을 포함할 수 있다. 부분들(602-608)은 데이터 요소들(예를 들어, 요소들(420-428, 520a-538a, 520b-530b, 520c-536c 및 520d-530d))을 포함할 수 있다. 또한, 부분들(602, 606, 606 및 608)은 상이한 시간과 관련될 수 있다(예를 들어, 다른 시간에 얻었거나 다른 타임 스탬프 정보와 관련됨).
컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106) 및 네트워크 요소(110))의 프로세서(예를 들어, 프로세서(202) 및/또는 이와 유사한 것)는 데이터 세트 내의 데이터 요소의 하나 이상의 값을 변경하기 위해 데이터 세트(600)에 대한 변환을 수행할 수 있다. 일례로서, 부분들(602, 606, 606 및 608)은 이미지 파일일 수 있다. 프로세서는 하나 이상의 축들(620, 624 및 626)을 따라 데이터 세트(600) 또는 부분들(602-608) 중 임의의 것을 회전시킬 수 있다. 프로세서는 또한 에지(628)를 따라 데이터 세트(600)를 회전시킬 수 있다. 프로세서는 또한 데이터 세트의 "코너"로부터 데이터 세트의 "중심"으로 연장되는 축(630)을 따라 데이터 세트(600)를 회전시킬 수 있다. 임의의 회전은 부분들(602-608)의 요소의 하나 이상의 값을 변경할 수 있다. 회전(들)은 부분들(602-608)의 요소들의 값들 사이의 하나 이상의 관계를 변경할 수도 있다. 데이터 세트(600)에 대한 변환을 수행함으로써, 프로세서는 부분들(602-608) 각각의 데이터 요소의 값에 대한 다수의 변경을 생성할 수 있다. 변경된 값은 비교적 작은 데이터 세트에서도 예측할 수 없는 많은 수의 값을 제공할 수 있다.
일부 실시 예들에서, 프로세서는 데이터 세트(600)에 새로운 부분을 추가하거나 데이터 세트에 존재하는 부분을 수정할 수 있다. 일부 실시 예들에서, 프로세서는 추가/수정 부분의 요소들과 데이터 세트의 다른 부분들 사이의 관계가 불규칙하고 따라서 예측하기 어렵도록 부분을 추가 또는 수정할 수 있다. 예를 들어, 일부 실시 예들에서, 프로세서는 추가/수정 부분이 상이한 상대 배향 또는 데이터 세트의 다른 부분과의 다른 관계를 갖도록 부분을 추가 또는 수정할 수 있다. 예를 들어, 프로세서는, 예를 들어, 부분(602-608)에 수직인 방향으로 데이터 세트(600)에 부분(610)을 추가할 수 있다. 다른 예로서, 프로세서는 부분(612)을 부분들(602-608)에 예각인 배향으로 데이터 세트(600)에 추가할 수 있다. 부분들(602 내지 612)의 데이터 요소들 사이의 불규칙하고 예측 불가능한 관계는 심지어 비교적 작은 데이터 세트로부터 다수의 매우 예측 불가능한 값을 제공할 수 있다.
위에서 언급한 바와 같이, 요소 및/또는 부분을 변환하는 것은 요소 및/또는 부분의 하나 이상의 값을 변경하기 위해 하나 이상의 동작을 수행하는 것을 포함할 수 있다. 예를 들어, 이미지 또는 비디오 파일의 요소 및/또는 일부를 변환하는 것은 부분의 회전, 뒤집기, 반전, 위치 이동하는 것, 색상을 변경하는 것, 필터 또는 사전 설정 변환 적용하는 것(예를 들어, 사진 또는 비디오 편집 소프트웨어 프로그램에서 사용 가능) 또는 다른 유사한 작업을 포함할 수 있다. 다른 예로서, 음악 또는 오디오 파일의 요소 및/또는 일부를 변환하는 것은 피치를 올리거나 내리는 것, 파일 내용 반전시키는 것, 오디오 파일의 내용을 반전시키는 것(즉, 선택된 축을 따라 내용을 변환), 리버브, 디스토션, 플랜징 등과 같은 오디오 효과 추가하는 것, 또는 다른 유사한 작업을 포함할 수 있다. 다른 예로서, 임시 공유 데이터 세트의 요소 및/또는 일부를 변환하는 것은 데이터 요소를 트랜스코딩하는 것을 포함할 수 있다(예를 들어, 오디오 데이터를 시각적 데이터 또는 텍스트로 변환). 다른 예로서, 임시 공유 데이터 세트의 요소 및/또는 일부를 변환하는 것은 요소 및/또는 부분을 변환하기 위해 하나 이상의 수학적 기능을 수행하는 것을 포함할 수 있다. 다른 예로서, 임시 공유 데이터 세트의 요소 및/또는 일부를 변환하는 것은 크기 또는 형상 변경, 공유를 왜곡, 요소 및/또는 데이터 세트의 일부에 대해 스큐, 스트레치 또는 다른 치수 변화를 수행하는 것을 포함할 수 있다. 위에서 언급한 바와 같이, 데이터 세트의 요소 및/또는 일부를 변환하는 것은 요소 및/또는 부분의 값을 변경하는 것뿐만 아니라, 이들은 또한 변환된 요소 및/또는 부분의 하나 이상의 관계를 데이터 세트의 다른 요소 및/또는 부분으로 변경할 수 있다.
다른 예로서, 데이터 세트(예를 들어, 데이터 세트(600))의 요소 및/또는 일부를 변환하는 것은 하나의 데이터 포맷 또는 타입으로부터 다른 데이터 포맷 또는 타입으로 데이터 요소를 트랜스코딩하기 위한 하나 이상의 동작을 수행하는 것을 포함할 수 있다. 도 6d는 제1 데이터 포맷 또는 타입을 제2 데이터 포맷 또는 타입으로 변환하는 2 개의 표현(650 및 660)을 도시한다. 표현들(650 및 660)은 오디오 데이터를 시각적 데이터, 특히 NASA 카시니 우주선(Cassini spacecraft)이 토성의 고리의 평면을 가로 지르면서 수집한 데이터의 스펙트로그램으로의 변환을 도시한다. 스펙트로그램(650 및 660)은 오디오 데이터를 시각적 데이터로 변환하는 것을 예시한다. 이것은 단지 하나의 예이고, 다양한 실시 예에서, 임의의 데이터 형식 또는 유형이 다른 데이터 형식 또는 유형으로 변환될 수 있다.
다양한 실시 예에서, 데이터 세트(600)에 대한 하나 이상의 변환을 수행하는 것은 프로세서가 비교적 적은 수의 부분들로부터 매우 많은 수의 예측 불가능한 요소 값 및 데이터 요소 사이의 관계를 생성할 수 있게 한다. 예를 들어, 부분들(602-612)이 이미지 파일을 나타내는 경우, 각각의 이미지 파일은 다수의 픽셀을 포함할 수 있고, 각각의 픽셀은 이미지 파일 내의 위치 정보, 컬러, 색조, 채도, 흑백 값, 및 다른 이러한 픽셀 정보와 같은 다수의 상이한 값과 관련될 수 있다. 변환하지 않아도, 시리즈 이미지 파일의 각 이미지 파일에는 고유한 정보 세트가 포함될 수 있다. 예를 들어, 고속도로를 겨냥한 카메라에서 캡처된 일련의 이미지의 각 이미지에는 다양한 환경 조건(예를 들어, 구름 형성, 햇빛, 어둠, 태양 섬광, 그림자 등)을 가진 도로의 다른 위치에 있는 고유한 차량 선택이 포함된다. 그 후 프로세서는 하나 이상의 이미지 파일에 대해 변환을 수행할 수 있으며, 이에 의해, 변환된 이미지 파일 내의 다양한 픽셀의 값뿐만 아니라, 변환된 이미지 파일의 데이터 요소와 데이터 세트의 다른 부분 사이의 수많은 관계가 변경된다.
도 7은 다양한 실시 예에 따른 임시 공유 데이터 세트의 동기화를 관리하는 방법(700)을 도시한다. 도 1 내지 도 7을 참조하면, 방법(700)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106) 및 네트워크 요소(110))의 프로세서(예를 들어, 프로세서(202) 등)에 의해 구현될 수 있다. 다양한 실시 예들에서, 동적 (예를 들어, 임시) 공유 데이터 세트는 비교적 짧은 시간 동안 하나의 상태로 존재할 수 있으며, 예를 들어, 이는 분 또는 초일 수 있다. 동적 공유 데이터 세트 상태의 상대적으로 짧은 지속 시간과 본질적인 복잡성으로 인해 이러한 정보가 추측, 접근 또는 "해킹"된 후 시스템을 공격하는 수단으로 사용될 가능성이 몇 배나 줄어든다.
블록(702)에서, 제1 컴퓨팅 디바이스(CD1)(예를 들어, 컴퓨팅 디바이스(102, 106))의 프로세서는 임시 공유 데이터 세트를 획득할 수 있다.
블록(704)에서, 제2 컴퓨팅 디바이스(CD2)(예를 들어, 컴퓨팅 디바이스(102, 106))의 프로세서는 임시 공유 데이터 세트를 획득할 수 있다.
블록(706)에서, 데이터 세트 관리자(예를 들어, 데이터 세트 관리 디바이스, 예를 들어 네트워크 요소(110))의 프로세서는 임시 공유 데이터 세트를 CD1 및 CD2에 제공할 수 있다. 일부 실시 예들에서, 임시 공유 데이터 세트는 데이터 세트 관리자에 저장되고 그에 의해 관리되는 데이터 세트의 일부 또는 전부를 포함할 수 있다(예를 들어, 데이터 세트(400, 500a, 500b, 50c, 500d 및 600)).
블록(708)에서, CD1의 프로세서는 임시 공유 데이터 세트를 저장할 수 있다(예를 들어, 저장소(104)에). 블록(710)에서, CD2의 프로세서는 임시 공유 데이터 세트를 저장할 수 있다(예를 들어, 저장소(108)에).
선택적인 블록(712)에서, 데이터 세트 관리자의 프로세서는 임시 공유 데이터 세트를 동기화하기 위한 하나 이상의 동작을 수행할 수 있다. 선택적 블록(714)에서, CD1의 프로세서는 임시 공유 데이터 세트를 동기화하기 위한 하나 이상의 동작을 수행할 수 있다. 선택적 블록(716)에서, CD2의 프로세서는 임시 공유 데이터 세트를 동기화하기 위한 하나 이상의 동작을 수행할 수 있다. 다양한 실시 예에서, 블록들(712, 714 및 716)의 동기화 동작은 데이터 세트 관리자, CD1 또는 CD2에 의해 개시될 수 있다. 블록들(712, 714 및 716)의 동기화 동작은 각각의 데이터 세트 관리자, CD1 및 CD2에 저장된 임시 공유 데이터 세트의 지위 및/또는 상태를 나타내는 하나 이상의 메시지들의 전송 및/또는 교환을 포함할 수 있다. 블록들(712, 714 및 716)의 동기화 동작은 데이터 세트 관리자, CD1 및 CD2의 프로세서에 의해 체크섬 결정, 해시 수행 등과 같은 그들의 각각의 저장된 임시 공유 데이터 세트의 하나 이상의 분석을 수행하는 단계를 포함할 수 있다.
결정 블록(718)에서, 데이터 세트 관리자의 프로세서는 데이터 세트 업데이트 트리거가 발생했는지 여부를 결정할 수 있다. 예를 들어, 프로세서는 시간이 경과했는지 여부를 결정할 수 있다. 다른 예로서, 프로세서는 트리거 이벤트가 발생했는지 여부를 결정할 수 있다. 트리거 이벤트는 예를 들어 아래에 더 설명된 바와 같이 임시 공유 데이터 세트에서 요소(들) 추출하는 것, 요소(들)로부터 값을 결정하는 것 등과 같은 인증 프로세스에서 임시 공유 데이터 세트를 사용하는 것을 포함할 수 있다. 일부 실시 예들에서, 트리거 이벤트는 예를 들어 아래에 더 설명되는 바와 같이, 암호화 프로세스에서 임시 공유 데이터 세트를 사용하는 것을 포함할 수 있다. 트리거 이벤트는 예를 들어 임시 공유 데이터 세트를 업데이트하기 위한 하나 이상의 컴퓨팅 디바이스로부터의 요청을 포함할 수 있다.
데이터 세트 업데이트 트리거가 발생하지 않았다는 결정에 응답하여(즉, 결정 블록(718) = "아니오"), 데이터 세트 관리자의 프로세서는 선택적 블록(712)에서 임시 공유 데이터 세트를 동기화하기 위한 동작을 다시 수행할 수 있다. CD1 및 CD2의 프로세서는 또한 선택적인 블록(714 및 716)에서 임시 공유 데이터 세트를 각각 동기화하기 위한 동작을 수행할 수 있다.
데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여(즉, 결정 블록(718) = "예"), 프로세서는 임시 공유 데이터 세트를 동적으로 변경하기 위한 하나 이상의 동작을 수행할 수 있다.
예를 들어, 데이터 세트 관리자의 프로세서는 블록(720)에서 임시 공유 데이터 세트를 교체하기 위한 명령어를 생성할 수 있다. 일부 실시 예들에서, 데이터 세트 관리자의 프로세서는 교체(신규) 데이터 세트를 결정할 수 있다. 일부 실시 예들에서, 교체 데이터 세트는 데이터 세트 관리자에 의해 관리되는 데이터 세트의 하나 이상의 부분을 포함할 수 있다.
추가적으로 또는 대안적으로, 데이터 세트 관리자의 프로세서는 블록(722)에서 새로운 데이터 세트 부분을 추가하기 위한 명령어를 생성할 수 있다. 일부 실시 예에서, 새로운 데이터 세트 부분은 수신된 데이터 입력(예를 들어, 데이터 입력(130))에 기초할 수 있다. 일부 실시 예들에서, 데이터 세트 관리자의 프로세서는 추가될 새로운 데이터 세트 부분을 생성할 수 있다. 일부 실시 예에서, 생성된 명령어는 새로운 데이터 세트 부분(이는, 예를 들어, 아래 설명된 대로 CD1 및 CD2로 전송될 수 있음)의 생성을 가능하게 하는 명령어를 포함할 수 있다.
추가적으로 또는 대안적으로, 데이터 세트 관리자의 프로세서는 블록(724)에서 임시 공유 데이터 세트의 일부를 감산하기 위한 명령어를 생성할 수 있다.
추가적으로 또는 대안적으로, 프로세서는 블록(726)에서 임시 공유 데이터 세트를 재정렬하기 위한 명령어를 생성할 수 있다. 예를 들어, 임시 공유 데이터 세트를 재정렬 하는 것은 임시 공유 데이터 세트의 하나 이상의 부분을 임시 공유 데이터 세트의 다른 부분과 다른 시간, 위치, 장소 또는 다른 차이로 배치하는 것을 포함할 수 있다.
추가적으로 또는 대안적으로, 프로세서는 블록(728)에서 임시 공유 데이터 세트를 변환하기 위한 명령어를 생성할 수 있다. 예를 들어, 프로세서는 임시 공유 데이터 세트의 하나 이상의 요소 및/또는 하나 이상의 부분을 변환하기 위한 명령어를 생성할 수 있다. 다양한 실시 예에서, 임시 공유 데이터 세트 부분의 일부 및/또는 요소를 변환하는 것은 요소 및/또는 부분의 하나 이상의 값을 변경하기 위해 하나 이상의 동작을 수행하는 것을 포함할 수 있다. 예를 들어, 이미지 또는 비디오 파일의 요소 및/또는 일부를 변환하는 것은 부분의 회전, 뒤집기, 반전, 위치 이동하는 것, 색상을 바꾸는 것, 필터 또는 사전 설정 변환을 적용하는 것(예를 들어, 사진 또는 비디오 편집 소프트웨어 프로그램에서 사용 가능), 또는 다른 유사한 작업을 포함할 수 있다. 다른 예로서, 음악 또는 오디오 파일의 요소 및/또는 일부를 변환하는 것은 피치를 올리거나 내리는 것, 파일 내용 반전시키는 것, 오디오 파일의 내용을 반전시키는 것(즉, 선택된 축을 따라 내용을 변환), 리버브, 디스토션, 플랜징 등과 같은 오디오 효과 추가하는 것, 또는 다른 유사한 작업을 포함할 수 있다. 다른 예로서, 임시 공유 데이터 세트의 요소 및/또는 일부를 변환하는 것은 데이터 요소를 트랜스코딩하는 것을 포함할 수 있다(예를 들어, 오디오 데이터를 시각적 데이터 또는 텍스트로 변환). 다른 예로서, 임시 공유 데이터 세트의 요소 및/또는 일부를 변환하는 것은 요소 및/또는 부분을 변환하기 위해 하나 이상의 수학적 기능을 수행하는 것을 포함할 수 있다.
블록(730)에서, 프로세서는 임시 공유 데이터 세트를 변경하기 위한 하나 이상의 명령어를 생성할 수 있다. 하나 이상의 명령어는 임시 공유 데이터 세트를 교체하기 위한 명령어, 새로운 데이터 세트 부분(및/또는 생성된 새로운 데이터 세트 부분)을 추가하기 위한 명령어, 임시 공유 데이터 세트의 일부를 빼기 위한 명령어, 임시 공유 데이터 세트를 재정렬하기 위한 명령어, 및/또는 임시 공유 데이터 세트를 변환하기 위한 명령어에 기초할 수 있다.
블록(732)에서, 제2 컴퓨팅 디바이스의 프로세서는 임시 공유 데이터 세트를 변경하기 위한 하나 이상의 명령어를 CD1 및 CD2로 전송할 수 있다. 블록(734)에서, CD1의 프로세서는 임시 공유 데이터 세트를 변경하기 위한 하나 이상의 명령어를 수신할 수 있다. 블록(736)에서, CD1의 프로세서는 수신된 하나 이상의 명령어에 기초하여 임시 공유 데이터 세트의 저장된 사본을 변경할 수 있다. 블록(738)에서, CD2의 프로세서는 임시 공유 데이터 세트를 변경하기 위한 하나 이상의 명령어를 수신할 수 있다. 블록(740)에서, CD2의 프로세서는 수신된 하나 이상의 명령어에 기초하여 임시 공유 데이터 세트의 저장된 사본을 변경할 수 있다. 그 후, 데이터 세트 관리자, CD1 및 CD2의 프로세서는 선택적인 블록(712, 714 및 716)에서 임시 공유 데이터 세트를 동기화하기 위한 동작을 수행할 수 있다.
일부 실시 예들에서, 컴퓨팅 디바이스(예를 들어, CD1, CD2)는 그의 임시 공유 데이터 세트가 동기화되지 않은 것으로 결정할 수 있고, 컴퓨팅 디바이스는 컴퓨팅 디바이스에 저장된 임시 공유 데이터 세트를 동기화하는 동작을 수행할 수 있다. 예를 들어, 컴퓨팅 디바이스는 일정 기간 동안 네트워크 연결이 끊어 지거나, 전원이 꺼지거나, 네트워크 통신이 없거나 네트워크 통신을 벗어날 수 있다. 일부 실시 예들에서, 데이터 세트 관리자는 임시 공유 데이터 세트를 변경하기 위해 하나 이상의 이전 명령어들을 저장할 수 있다. 일부 실시 예에서, 컴퓨팅 디바이스에 의해 수행되는 동기화 동작은 컴퓨팅 디바이스가 임시 공유 데이터 세트를 변경하기 위해 하나 이상의 명령어를 수행하지 않았다고 결정하는 것을 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스가 통신 네트워크와의 통신 링크를 재설정 할 때 컴퓨팅 디바이스는 하나 이상의 동기화 메시지를 데이터 세트 관리자와 교환할 수 있으며, 하나 이상의 동기화 메시지의 정보에 기초하여 컴퓨팅 디바이스는 그 저장된 버전의 임시 공유 데이터 세트가 동기화되지 않은 것으로 결정할 수 있다. 일부 실시 예들에서, 컴퓨팅 디바이스는 데이터 세트 관리자가 임시 디바이스 데이터 세트를 변경하기 위해 수행되지 않은 명령들을 컴퓨팅 디바이스에 전송하도록 요청할 수 있다. 컴퓨팅 디바이스는 컴퓨팅 디바이스에 저장된 임시 공유 데이터 세트를 동기화시키기 위해 수신되고 아직 수행되지 않은 명령어를 수행하여 그의 임시 버전 공유 데이터 세트의 버전을 변경시킬 수 있다.
도 8a는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(800A)을 도시한다. 도 1 내지 도 8a를 참조하면, 방법(800A)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106) 및 네트워크 요소(110))의 프로세서(예를 들어, 프로세서(202) 및/또는 이와 유사한 것)에 의해 구현될 수 있다.
블록(802)에서, 제1 컴퓨팅 디바이스(CD1)(예를 들어, 컴퓨팅 디바이스(102))의 프로세서는 제2 컴퓨팅 디바이스(CD2)(예를 들어, 컴퓨팅 디바이스(106)) 및 데이터 세트 관리자(예를 들어, 데이터 세트 관리 디바이스, 예를 들어 네트워크 요소(110))를 인증하기 위한 동작을 수행할 수 있다. 블록(804)에서, CD2의 프로세서는 CD1 및 데이터 세트 관리자를 인증하기 위한 동작을 수행할 수 있다. 블록(806)에서, 데이터 세트 관리자는 CD1 및 CD2를 인증하기 위한 동작을 수행할 수 있다. 적용 가능한 동작의 예는 2017년 4월 21일자로 출원된 "디바이스 검증 및 인증을 위한 시스템 및 방법"이라는 미국 특허 출원 제15/493,572호에 개시되어 있다.
블록(808)에서, CD1의 프로세서는 CD1이 CD2로 송신하기 위한 통신을 갖는다는 지시를 데이터 세트 관리자에게 송신할 수 있다.
블록(810)에서, 데이터 세트 관리자의 프로세서는 CD1로부터 지시를 수신할 수 있다.
블록(812)에서, 데이터 세트 관리자의 프로세서는 공유 데이터 세트로부터 요소를 선택할 수 있다. 공유 데이터 세트는 CD1 및 CD2 각각이 공유 데이터 세트의 사본을 갖도록 데이터 세트 관리자 및 CD1 및 CD2에 저장될 수 있다. 일부 실시 예들에서, 데이터 세트 관리자의 프로세서는 공유 데이터 세트의 하나 이상의 부분들 중에서 둘 이상의 요소들을 선택할 수 있다. 예를 들어, 제1 컴퓨팅 디바이스의 프로세서는 공유 데이터 세트들(400 및 500a-500d 및 600)(예를 들어, 요소들(420-428, 520a-538a, 520b-530b, 520c-536c 및 520d-530d)) 중에서 둘 이상의 요소들을 선택할 수 있다.
블록(814)에서, 데이터 세트 관리자의 프로세서는 추출 명령어를 생성할 수 있다. 추출 명령어는 공유 데이터 세트로부터 데이터 요소를 추출하기 위해 다른 컴퓨팅 디바이스(예를 들어, CD1, CD 2)에 명령어를 제공할 수 있다. 일부 실시 예에서, 추출 명령어는 수신 컴퓨팅 디바이스(예를 들어, CD1, CD2)의 프로세서가 수신 컴퓨팅 디바이스에 저장된 공유 데이터 세트로부터 데이터 세트 관리자의 프로세서에 의해 선택된 요소(들)를 식별할 수 있게 하는 규칙 세트를 포함할 수 있다. 일부 실시 예에서, 추출 명령어는 하나 이상의 추출된 요소들에 대해 변환 동작을 수행하기 위한 명령어를 포함할 수 있다. 일부 실시 예에서, 추출 명령어는 공유 데이터 세트로부터 데이터 요소를 추출하기 전 또는 후에, 공유 데이터 세트의 하나 이상의 부분들 또는 전체 공유 데이터 세트에 대해 변환 동작을 수행하기 위한 명령어를 포함할 수 있다. 일 예로서, 명령 명령어는 제1 요소를 선택하기 위한 제1 명령어, 제1 요소에 대해 지정된 변환을 수행하기 위한 제2 명령어, 공유 데이터 세트의 변환을 수행하기 위한 제3 명령어, 제2 요소를 선택하기 위한 제4 명령어, 제2 요소의 변환을 수행하기 위한 제5 명령어 등을 포함할 수 있다.
일부 실시 예에서, 추출 명령어는 수신 컴퓨팅 디바이스(예를 들어, CD1, CD2)의 프로세서가 요소들 간의 관계에 기초하여 요소를 추출할 수 있게 하는 규칙 세트를 포함할 수 있다. 예를 들어, 데이터 세트 관리자의 프로세서는 선택된 둘 이상의 요소들 사이의 하나 이상의 관계를 결정할 수 있다. 일부 실시 예들에서, 관계(들)는 데이터 세트들(400 및 500a-500d)과 관련하여 위에서 설명된 것들과 같은 둘 이상의 요소들 사이의 하나 이상의 비교 또는 상대적 차이에 기초할 수 있다.
다양한 실시 예에서, 추출 명령어는 CD1 및 CD2가 공유 데이터 세트의 요소에 기초하여 CD1 및 CD2에 의해 고유하게 공유되는 고유한 요소 세트(추출된 데이터 요소)를 동적으로 생성하게 할 수 있다.
블록(816)에서, 데이터 세트 관리자의 프로세서는 추출 명령어를 CD1 및 CD2에 전송할 수 있다.
블록(818)에서, CD1의 프로세서는 데이터 세트 관리자로부터 추출 명령어를 수신할 수 있다. 블록(820)에서, CD2의 프로세서는 데이터 세트 관리자로부터 추출 명령어를 수신할 수 있다.
블록(822)에서, CD1의 프로세서는 명령어에 따라 CD1에 저장된 임시 공유 데이터 세트로부터 요소를 추출할 수 있다. 블록(824)에서, CD2의 프로세서는 명령어에 따라 CD2에 저장된 임시 공유 데이터 세트로부터 요소를 추출할 수 있다.
일부 실시 예에서, 블록(822 및 824)의 동작은 추출된 요소의 변환을 수행하는 단계를 포함할 수 있다. 예를 들어, CD1 및/또는 CD2의 프로세서는 이미지 또는 비디오 파일의 요소를 변환할 수 있다(예를 들어, 부분의 회전, 뒤집기, 반전, 위치 이동시키는 것, 색상을 바꾸는 것, 필터 또는 사전 설정 변환 적용하는 것, 또는 다른 유사한 작업을 포함). 다른 예로서, CD1 및/또는 CD2의 프로세서는 음악 또는 오디오 파일의 요소를 변환할 수 있다(예를 들어, 피치 높이기 또는 내리기, 파일 내용 반전, 선택한 축을 따라 내용을 변환, 리버브, 디스토션, 플랜징 등과 같은 오디오 효과 추가 또는 다른 유사한 작업). 다른 예로서, CD1 및/또는 CD2의 프로세서는 하나의 포맷 또는 데이터 타입으로부터 다른 포맷 또는 데이터 타입으로 데이터 요소를 트랜스코딩 할 수 있다. 다른 예로서, CD1 및/또는 CD2의 프로세서는 요소를 변환하기 위해 하나 이상의 수학적 기능을 수행할 수 있다.
블록(826)에서, CD1의 프로세서는 추출된 요소들 중에서 하나 이상의 요소를 선택할 수 있다.
블록(828)에서, CD1의 프로세서는 선택된 요소들을 나타내는 규칙 세트를 생성할 수 있다. 예를 들어, CD1의 프로세서는 공유 데이터 세트의 하나 이상의 부분들로부터 하나 이상의 요소를 선택할 수 있고, 선택된 둘 이상의 요소들을 식별하는 규칙 세트를 생성할 수 있다. 일부 실시 예들에서, CD1의 프로세서는 선택된 둘 이상의 요소들 사이의 하나 이상의 관계를 결정할 수 있고, 선택된 둘 이상의 요소들 사이의 결정된 하나 이상의 관계에 기초하여 규칙 세트를 생성할 수 있다. 일부 실시 예들에서, 관계(들)는 공유 데이터 세트들(400 및 500a-500d)과 관련하여 위에서 설명된 것들과 같은 요소들 사이의 하나 이상의 비교 또는 관계적 차이에 기초할 수 있다. 일부 실시 예들에서, 규칙 세트는 십진, 8 진, 16 진 등과 같은 공유 데이터 세트로부터 요소들을 식별하고 선택하는데 사용될 수 시스템을 나타낼 수 있다. 일부 실시 예들에서, 규칙 세트는 CD1 및 CD2에 의해 사용될 암호화 프로토콜을 나타낼 수 있다. 다양한 실시 예들에서, 규칙 세트는 사용될 둘 이상의 암호화 프로토콜들을 표시할 수 있어서, CD1 및 CD2에 의해 사용되는 암호화 프로토콜은 시간에 따라 변한다.
블록(830)에서, CD1의 프로세서는 규칙 세트를 CD2로 전송할 수 있다.
블록(832)에서, CD1의 프로세서는 선택된 요소에 기초하여 제1 결과를 생성할 수 있다.
블록(834)에서, CD2의 프로세서는 CD1로부터 규칙 세트를 수신할 수 있다.
블록(836)에서, CD2의 프로세서는 규칙 세트를 사용하여 추출된 요소들부터 요소를 선택할 수 있다. 예를 들어, CD2의 프로세서는 선택된 요소들(예를 들어, 하나 이상의 요소들(420-428) 또는 하나 이상의 공유 데이터 세트 (500a-500d)의 요소) 각각의 식별자들을 사용하여 CD2에 저장된 임시 공유 데이터 세트로부터 추출된 요소들 중에서 요소들을 선택할 수 있다. 다른 예로서, CD2의 프로세서는 추출된 요소들 중에서 요소들을 선택하기 위해 요소들 중 하나의 하나 이상의 식별자 및 선택된 요소들 중 하나 이상의 관계를 사용할 수 있다.
블록(838)에서, CD2의 프로세서는 선택된 요소에 기초하여 제2 결과를 생성할 수 있다. 일부 실시 예에서, 제2 결과는 데이터 스트링을 포함할 수 있다. 일부 실시 예에서, 제2 결과는 공유 데이터 세트의 선택된 요소의 정보에 기초한 값을 포함할 수 있다. 일부 실시 예들에서, CD2의 프로세서는 정보 내에 값들의 해시를 생성하는 것과 같이 선택된 요소들의 정보의 변환을 수행할 수 있다. 일부 실시 예들에서, CD2의 프로세서는 선택된 요소들의 정보에 기초하여 데이터 스트링을 생성할 수 있고, 선택된 요소들의 정보의 변환(예를 들어, 해시 생성)을 수행하여 제1 결과를 생성할 수 있다. 다양한 실시 예들에서, CD2의 프로세서는 CD1이 제1 결과를 생성하기 위해 사용하는 제2 결과를 생성하는 동일한 방법을 사용할 수 있다.
블록(840)에서, CD2의 프로세서는 제2 결과를 이용하여 메시지를 암호화 할 수 있다. 예를 들어, CD2의 프로세서는 MD5, SHA2, SHA256, BLAKE2 등과 같은 암호화 방법을 제2 결과와 함께 사용하여 메시지를 암호화 할 수 있다. 일부 실시 예들에서, 메시지는 CD1의 프로세서가 CD2의 프로세서에 의해 생성된 제 2 결과가 CD1의 프로세서에 의해 생성된 제1 결과와 일치하는지 여부를 결정할 수 있게 하는 테스트 메시지로서 기능할 수 있다.
블록(842)에서, CD2의 프로세서는 암호화된 메시지를 CD1에 전송할 수 있다.
블록(844)에서, CD1의 프로세서는 암호화된 메시지를 수신할 수 있다.
블록(846)에서, CD1의 프로세서는 제1 결과를 이용하여 메시지의 암호 해독을 시도할 수 있다. 예를 들어, CD1의 프로세서는 메시지의 암호 해독 프로세스를 개시할 수 있다. 다양한 실시 예들에서, CD1의 프로세서는 메시지의 암호 해독을 시도하기 위해 MD5, SHA2, SHA256, BLAKE2 등과 같은 해독 포맷을 사용할 수 있다.
결정 블록(848)에서, CD1의 프로세서는 CD2로부터의 메시지의 해독이 성공적인지 여부를 결정할 수 있다. 일부 실시 예들에서, CD2로부터의 암호화된 메시지의 성공적인 해독은 제1 결과 및 제2 결과가 일치함을 나타낼 수 있다.
암호 해독이 성공적이지 않다는 결정에 응답하여(즉, 결정 블록(848) = "아니오"), 일부 실시 예들에서, CD1의 프로세서는 CD2가 선택적 블록(850)에서 인증되지 않았다고 결정할 수 있다.
암호 해독이 성공적이지 않다는 결정에 응답하여(즉, 결정 블록(848) = "아니오"), 일부 실시 예들에서, CD1의 프로세서는 선택적 블록(852)에서 동기화 쿼리를 데이터 세트 관리자에게 전송할 수 있다.
일부 실시 예들에서, 동기화 쿼리의 전송 후에, 데이터 세트 관리자의 프로세서는 블록(812)에서 임시 공유 데이터 세트로부터 요소들을 다시 선택할 수 있다.
일부 실시 예들에서, 동기화 쿼리의 전송에 이어서, 데이터 세트 관리자, CD1, 및 CD2의 프로세서들은 각각 선택적 블록(712, 714 및 716)에서 공유 데이터 세트를 동기화하기 위한 동작들을 수행할 수 있다.
암호 해독이 성공적이라고 결정한 것에 응답하여(즉, 결정 블록(848) = "예"), CD1의 프로세서는 블록(854)에서 제1 결과를 사용하여 통신을 암호화 할 수 있다. 예를 들어, CD1의 프로세서는 블록(808)에서 CD1의 프로세서가 표시를 데이터 세트 관리자에게 전송한 통신을 암호화 할 수 있다.
블록(856)에서, CD1의 프로세서는 암호화된 통신을 CD2에 전송할 수 있다. 일부 실시 예들에서, CD1의 프로세서는 CD1이 CD2로 송신하기 위한 통신을 갖는다는 다른 표시를 데이터 세트 관리자에게 전송할 수 있다.
블록(858)에서, CD2의 프로세서는 CD1로부터 암호화된 통신을 수신할 수 있다.
블록(860)에서, CD2의 프로세서는 제2 결과를 사용하여 통신을 암호 해독할 수 있다. 일부 실시 예에서, CD2의 프로세서는 데이터 세트 관리자로부터 추출 명령을 다시 수신할 수 있다.
다양한 실시 예들에서, CD1의 프로세서는 블록(808)에서 CD2를 위한 통신의 다른 표시를 데이터 세트 관리자에게 전송할 수 있다. 다양한 실시 예에서, CD2의 프로세서는 블록(820)에서 데이터 세트 관리자로부터 추출 명령을 수신할 수 있다.
방법(800A)은 CD1에서 CD2로 통신을 전송하는 것으로 제한되지 않으며, 다양한 실시 예들에서, CD2의 프로세서는 CD1의 프로세서와 관련하여 전술한 동작들을 수행할 수 있으며, 그 역도 마찬가지이다. 일부 실시 예에서, CD1 및 CD2의 프로세서들은 방법(800A)의 각각의 동작을 수행하여 CD 1가 암호화된 통신을 CD2로 전송할 수 있으며, 이후에 역할을 전환하여 CD2가 암호화된 통신을 CD1에 보낼 수 있다.
다양한 실시 예들에서, 임시 공유 데이터 세트는 비교적 짧은 시간 동안 하나의 상태로 존재할 수 있으며, 예를 들어, 이는 분 또는 초일 수 있다.
다양한 실시 예들에서, 동적 값은 하나의 통신만을 암호화 및 암호 해독하는데 사용될 수 있다. 이는 경우에 따라 수십 년까지 지속될 수 있는 기존 인증 기관(예를 들어, PKI 인증서)의 유효 인증서 기간과 대조된다. 유효 기간이 비교적 짧고 임시 공유 데이터 세트의 고유한 복잡성과 동적 값이 추측되고, 액세스되고 또는 "해킹"된 후에 시스템을 공격하는 수단으로 사용되는 이러한 정보의 가능성을 몇 배나 줄인다.
도 8b는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(800B)을 도시한다. 도 1 내지 도 8b를 참조하면, 방법(800B)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106) 및 네트워크 요소(110))의 프로세서(예를 들어, 프로세서(202) 및/또는 이와 유사한 것)에 의해 구현될 수 있다. 블록들(822 내지 860)에서, 데이터 세트 관리자, 제1 통신 디바이스(CD1) 및 제2 통신 디바이스(CD2) 의 디바이스 프로세서는 방법(800A)의 동일 번호의 블록의 동작을 수행할 수 있다.
블록(870)에서, 데이터 세트 관리자의 프로세서는 CD1 및/또는 CD2와의 핸드셰이크(handshake) 동작을 수행할 수 있다. 블록들(872 및 874)에서, CD1의 프로세서 및 CD2의 프로세서는 데이터 세트 관리자와의 각각의 핸드셰이크 동작을 수행할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 데이터 세트 관리자와 CD1 사이 및/또는 데이터 세트 관리자와 CD2 사이의 통신 링크를 설정하기 위한 하나 이상의 동작을 포함할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD1 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 임시 공유 데이터 세트를 제공/취득하는 하나 이상의 동작을 포함할 수 있다(예를 들어, 방법(700)과 관련하여 설명된 바와 같이). 일부 실시 예들에서, 데이터 세트 관리자, CD1 및/또는 CD2의 프로세서들에 의해 수행되는 핸드셰이크 동작은 임시 공유 데이터 세트를 동기화하기 위한 하나 이상의 동기화 동작을 포함할 수 있다(예를 들어, 방법(700)과 관련하여 설명된 바와 같이). 일부 실시 예에서, 데이터 세트 관리자, CD1 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 데이터 세트 관리자, CD1 및/또는 CD2를 인증하기 위한 하나 이상의 동작을 포함할 수 있다. 적용 가능한 동작의 예는 2017년 4월 21일자로 출원된 "디바이스 검증 및 인증을 위한 시스템 및 방법"이라는 미국 특허 출원 제15/493,572호에 개시되어 있다.
일부 실시 예들에서, 동기화 쿼리의 전송(블록 852) 후에, 데이터 세트 관리자의 프로세서는 블록(870)에서 핸드셰이크 동작들을 다시 수행할 수 있다.
일부 실시 예들에서, 블록(856)의 동작에 이어서, CD1의 프로세서는 블록(872)에서 핸드셰이크 동작을 다시 수행한다.
일부 실시 예에서, 블록(860)의 동작에 이어서, CD2의 프로세서는 블록(874)에서 핸드셰이크 동작을 다시 수행할 수 있다.
도 9a는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(900A)을 도시한다. 도 1 내지 도 9를 참조하면, 방법(900A)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106) 및 네트워크 요소(110))의 프로세서(예를 들어, 프로세서(202) 및/또는 이와 유사한 것)에 의해 구현될 수 있다. 블록들(818 내지 858)에서, 데이터 세트 관리자, 제1 통신 디바이스(CD1) 및 제2 통신 디바이스(CD2)의 장치 프로세서는 방법(800A)의 동일 번호의 블록의 동작을 수행할 수 있다.
블록(902)에서, CD2의 프로세서는 추출된 요소들 중에서 하나 이상의 요소를 선택할 수 있다.
블록(904)에서, CD2의 프로세서는 선택된 요소를 나타내는 제2 규칙 세트를 생성할 수 있다. 예를 들어, CD2의 프로세서는 공유 데이터 세트의 하나 이상의 부분들로부터 하나 이상의 요소를 선택할 수 있고, 선택된 둘 이상의 요소들을 식별하는 제2 규칙 세트를 생성할 수 있다. 일부 실시 예들에서, CD2의 프로세서는 선택된 둘 이상의 요소들 사이의 하나 이상의 관계를 결정할 수 있고, 선택된 둘 이상의 요소들 사이의 결정된 하나 이상의 관계에 기초하여 제2 규칙 세트를 생성할 수 있다. 일부 실시 예들에서, 관계(들)는 공유 데이터 세트들(400 및 500a-500d)과 관련하여 위에서 설명된 것들과 같은 요소들 사이의 하나 이상의 비교 또는 상대적 차이에 기초할 수 있다.
블록(906)에서, CD1의 프로세서는 선택된 요소를 나타내는 제1 규칙 세트를 생성할 수 있다. 일부 실시 예에서, 제1 규칙 세트는 블록(826)의 동작에서 CD1의 프로세서에 의해 선택된 요소를 나타낼 수 있다.
다양한 실시 예들에서, 제1 규칙 세트는 제1 규칙 세트를 사용하여 생성된 결과와 제2 규칙 세트를 사용하여 생성된 결과를 결합하기 위한 명령어를 포함할 수 있다. 유사하게, 다양한 실시 예에서, 제2 규칙 세트는 제1 규칙 세트를 사용하여 생성된 결과와 제2 규칙 세트를 사용하여 생성된 결과를 결합하기 위한 명령어를 포함할 수 있다.
블록(908)에서, CD1의 프로세서는 제1 규칙 세트를 CD2에 전송할 수 있다.
블록(910)에서, CD2의 프로세서는 제1 규칙 세트를 수신할 수 있다.
블록(912)에서, CD2의 프로세서는 제2 규칙 세트를 CD1에 전송할 수 있다.
블록(914)에서, CD1의 프로세서는 제2 규칙 세트를 수신할 수 있다.
블록(916)에서, CD1의 프로세서는 선택된 요소에 기초하여 제1 결과를 생성할 수 있다.
블록(918)에서, CD1의 프로세서는 제2 규칙 세트를 사용하여 추출된 요소들로부터 요소를 선택할 수 있다. 예를 들어, CD1의 프로세서는 선택된 요소들(예를 들어, 하나 이상의 요소들(420-428) 또는 하나 이상의 공유 데이터 세트(500a-500d)의 요소) 각각의 식별자를 사용하여 CD1에 저장된 공유 데이터 세트로부터 추출된 요소들 중에서 요소들을 선택할 수 있다. 다른 예로서, CD1의 프로세서는 추출된 요소들 중에서 요소들을 선택하기 위해 요소들 중 하나의 하나 이상의 식별자들 및 선택된 요소들 중 하나 이상의 관계를 사용할 수 있다.
블록(920)에서, CD1의 프로세서는 선택된 요소들에 기초하여 제2 결과를 생성할 수 있다.
일부 실시 예에서, 제1 결과 및 제2 결과 각각은 데이터 스트링을 포함할 수 있다. 일부 실시 예에서, 제1 결과 및 제2 결과는 각각 공유 데이터 세트의 선택된 요소의 정보에 기초한 값을 포함할 수 있다. 일부 실시 예들에서, CD1의 프로세서는 정보 내에 값들의 해시를 생성하는 것과 같이 선택된 요소들의 정보의 변환을 수행할 수 있다. 일부 실시 예들에서, CD1의 프로세서는 선택된 요소들의 정보에 기초하여 데이터 스트링을 생성할 수 있고 선택된 요소들의 정보의 변환(예를 들어, 해시 생성)을 수행하여 제1 결과 및 제2 결과 각각을 생성할 수 있다.
블록(922)에서, CD1의 프로세서는 제1 결과 및 제2 결과를 결합할 수 있다. 일부 실시 예들에서, CD1의 프로세서는 제1 규칙 세트의 명령에 따라 제1 결과 및 제2 결과를 결합할 수 있다. 일부 실시 예들에서, CD1의 프로세서는 제2 규칙 세트의 명령에 따라 제1 결과 및 제2 결과를 결합할 수 있다.
블록(924)에서, CD2의 프로세서는 선택된 요소에 기초하여 제3 결과를 생성할 수 있다. 일부 실시 예들에서, CD2의 프로세서는 추출된 요소들 중에서(예를 들어, 블록(902)의 동작에서) CD2의 프로세서에 의해 선택된 요소들에 기초하여 제3 결과를 생성할 수 있다.
블록(926)에서, CD2의 프로세서는 CD1로부터 수신된 제1 규칙 세트를 사용하여 추출된 요소들부터 요소를 선택할 수 있다. 블록(928)에서, CD2의 프로세서는 선택된 요소에 기초하여 제4 결과를 생성할 수 있다.
일부 실시 예에서, 제3 결과 및 제4 결과 각각은 데이터 스트링을 포함할 수 있다. 일부 실시 예에서, 제3 결과 및 제4 결과는 각각 공유 데이터 세트의 선택된 요소에서의 정보에 기초한 값을 포함할 수 있다. 일부 실시 예들에서, CD2의 프로세서는 정보 내에 값들의 해시를 생성하는 것과 같이 선택된 요소들의 정보의 변환을 수행할 수 있다. 일부 실시 예들에서, CD2의 프로세서는 선택된 요소들의 정보에 기초하여 데이터 스트링을 생성할 수 있고 선택된 요소들의 정보의 변환(예를 들어, 해시 생성)을 수행하여 제3 결과 및 제4 결과 각각을 생성할 수 있다.
블록(930)에서, CD2의 프로세서는 제3 결과 및 제4 결과를 결합할 수 있다. 일부 실시 예에서, CD2의 프로세서는 제1 규칙 세트의 명령에 따라 제3 결과 및 제4 결과를 결합할 수 있다. 일부 실시 예에서, CD2의 프로세서는 제2 규칙 세트의 명령에 따라 제1 결과 및 제2 결과를 결합할 수 있다.
블록(932)에서, CD2의 프로세서는 결합된 결과를 사용하여 메시지를 암호화 할 수 있다. 일부 실시 예들에서, 메시지는 CD1의 프로세서가 CD2의 프로세서에 의해 생성된 결합된 결과가 CD1의 프로세서에 의해 생성된 결합된 결과와 일치하는지 여부를 결정할 수 있게 하는 테스트 메시지로서 기능할 수 있다.
블록(842)에서, CD2의 프로세서는 암호화된 메시지를 CD1에 전송할 수 있다.
블록(844)에서, CD1의 프로세서는 암호화된 메시지를 수신할 수 있다.
블록(938)에서, CD1의 프로세서는 결합된 결과(즉, 블록(922)의 동작에서 CD1의 프로세서에 의해 생성된 결합된 결과)를 사용하여 메시지의 암호 해독을 시도할 수 있다.
결정 블록(940)에서, CD1의 프로세서는 CD2로부터의 메시지의 해독이 성공적인지 여부를 결정할 수 있다. 일부 실시 예들에서, CD2로부터의 암호화된 메시지의 성공적인 해독은 CD1에 의해 결정된 결합 결과와 CD2에 의해 결정된 결합 결과가 일치함을 나타낼 수 있다.
해독이 성공적이지 않다는 결정에 응답하여(즉, 결정 블록(940) = "아니오"), CD1의 프로세서는 블록(850 또는 852)의 동작을 수행할 수 있다(도 8).
해독이 성공적이라고 결정한 것에 응답하여(즉, 결정 블록(940) = "예"), CD1의 프로세서는 블록(942)에서 결합된 결과를 사용하여 통신을 암호화 할 수 있다. 예를 들어, CD1의 프로세서는 블록(808)에서 CD1의 프로세서가 표시를 데이터 세트 관리자에게 전송한 통신을 암호화할 수 있다(도 8).
블록 944)에서, CD2의 프로세서는 결합된 결과를 사용하여 통신을 해독할 수 있다. 일부 실시 예에서, 블록(944)의 동작에 이어서, CD의 프로세서는 블록(820)에서 추출 명령어를 수신할 수 있다.
방법(900A)은 CD1에서 CD2로 통신을 전송하는 것으로 제한되지 않으며, 다양한 실시 예에서 CD2의 프로세서는 CD1의 프로세서와 관련하여 전술한 동작을 수행할 수 있으며, 그 역도 마찬가지이다. 일부 실시 예에서, CD1 및 CD2의 프로세서는 방법(900A)의 각각의 동작을 수행하여 CD1가 암호화된 통신을 CD2로 전송할 수 있고, 이어서 역할을 전환하여 CD2가 암호화된 통신을 CD1로 전송할 수 있다.
도 9b는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(900B)을 도시한다. 도 1 내지 도 9b를 참조하면, 방법(900B)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106) 및 네트워크 요소(110))의 프로세서(예를 들어, 프로세서(202) 및/또는 이와 유사한 것)에 의해 구현될 수 있다. 블록들(822 내지 858 및 902 내지 944)에서, 데이터 세트 관리자, 제1 통신 디바이스(CD1) 및 제2 통신 디바이스(CD2)의 장치 프로세서들은 방법(800A 및 900A)의 동일 번호의 블록의 동작을 수행할 수 있다.
블록(950)에서, 데이터 세트 관리자의 프로세서는 제1 컴퓨팅 디바이스(CD1) 및/또는 제2 컴퓨팅 디바이스(CD2)와의 핸드셰이크 동작을 수행할 수 있다. 블록들(952 및 954)에서, CD1의 프로세서 및 CD2의 프로세서는 데이터 세트 관리자와의 각각의 핸드셰이크 동작을 수행할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 데이터 세트 관리자와 CD1 사이 및/또는 데이터 세트 관리자와 CD2 사이의 통신 링크를 확립하기 위한 하나 이상의 동작을 포함할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 임시 공유 데이터 세트를 제공/획득하는 하나 이상의 동작을 포함할 수 있다(예를 들어, 방법(700)과 관련하여 설명된 바와 같이). 일부 실시 예들에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서들에 의해 수행되는 핸드셰이크 동작은 임시 공유 데이터 세트를 동기화하기 위한 하나 이상의 동기화 동작을 포함할 수 있다(예를 들어, 방법(700)과 관련하여 설명된 바와 같이). 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 데이터 세트 관리자, CD1 및/또는 CD2를 인증하기 위한 하나 이상의 동작을 포함할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 블록들(802-820)의 하나 이상의 동작을 포함할 수 있다(예를 들어, 방법(800A)과 관련하여 설명된 바와 같이).
일부 실시 예들에서, 동기화 쿼리의 전송(블록 852) 후에, 데이터 세트 관리자의 프로세서는 블록(870)에서 핸드셰이크 동작들을 다시 수행할 수 있다.
도 10a는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(1000A)을 도시한다. 도 1 내지 도 10a를 참조하면, 방법(1000A)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106) 및 네트워크 요소(110))의 프로세서(예를 들어, 프로세서(202) 및/또는 이와 유사한 것)에 의해 구현될 수 있다. 블록들(818 내지 858 및 902 내지 914)에서, 데이터 세트 관리자, 제1 통신 디바이스(CD1) 및 제2 통신 디바이스(CD2)의 장치 프로세서는 방법(800A 및 900A)의 동일 번호의 블록의 동작을 수행할 수 있다.
블록(1002)에서, CD1의 프로세서는 제1 및 제2 규칙 세트를 결합하여 결합 규칙 세트를 생성할 수 있다. 일부 실시 예에서, 제1 규칙 세트는 제1 및 제2 규칙 세트를 결합하기 위한 명령어를 포함할 수 있다. 일부 실시 예에서, 제2 규칙 세트는 제1 및 제2 규칙 세트를 결합하기 위한 명령어를 포함할 수 있다.
블록(1004)에서, CD1의 프로세서는 결합된 규칙 세트를 사용하여 그 추출된 요소들부터 요소를 선택할 수 있다. 예를 들어, CD1의 프로세서는 선택된 요소들((예를 들어, 하나 이상의 요소들(420 내지 428) 또는 하나 이상의 공유 데이터 세트(500a 내지 500d)의 요소)) 각각의 식별자를 사용하여 CD1에 저장된 공유 데이터 세트로부터 추출된 요소 중에서 요소를 선택할 수 있다. 다른 예로서, CD1의 프로세서는 추출된 요소들 중에서 요소를 선택하기 위해 요소들 중 하나의 하나 이상의 식별자 및 선택된 요소들 중 하나 이상의 관계를 사용할 수 있다.
블록(1006)에서, CD1의 프로세서는 선택된 요소에 기초하여 제1 결과를 생성할 수 있다.
블록(1008)에서, CD2의 프로세서는 제1 및 제2 규칙 세트를 결합하여 결합된 규칙 세트를 생성할 수 있다. 일부 실시 예에서, 제1 규칙 세트는 제1 및 제2 규칙 세트를 결합하기 위한 명령어를 포함할 수 있다. 일부 실시 예에서, 제2 규칙 세트는 제1 및 제2 규칙 세트를 결합하기 위한 명령어를 포함할 수 있다.
블록(1010)에서, CD2의 프로세서는 결합된 규칙 세트를 사용하여 추출된 요소들로부터 요소를 선택할 수 있다. 예를 들어, CD2의 프로세서는 선택된 요소들(예를 들어, 하나 이상의 요소들(420 내지 428) 또는 하나 이상의 공유 데이터 세트(500a 내지 500d)의 요소) 각각의 식별자를 사용하여 CD2에 저장된 공유 데이터 세트로부터 추출된 요소들 중에서 요소를 선택할 수 있다. 다른 예로서, CD2의 프로세서는 추출된 요소들 중에서 요소들을 선택하기 위해 요소들 중 하나의 하나 이상의 식별자 및 선택된 요소들 중 하나 이상의 관계를 사용할 수 있다.
블록(1012)에서, CD2의 프로세서는 선택된 요소들에 기초하여 제2 결과를 생성할 수 있다.
블록(1014)에서, CD1의 프로세서는 제1 결과를 이용하여 메시지(CD2로부터의)의 암호 해독을 시도할 수 있다.
결정 블록(1016)에서, CD1의 프로세서는 CD2로부터의 메시지의 해독이 성공적인지 여부를 결정할 수 있다. 일부 실시 예들에서, CD2로부터의 암호화된 메시지의 성공적인 해독은 제1 결과 및 제2 결과가 일치함을 나타낼 수 있다.
해독이 성공적이라고 결정한 것에 응답하여(즉, 결정 블록(1016) = "예"), CD1의 프로세서는 블록(1018)에서 제1 결과를 사용하여 통신을 암호화할 수 있다. 예를 들어, CD1의 프로세서는 블록(808)에서 CD1의 프로세서가 표시를 데이터 세트 관리자에게 전송한 통신을 암호화 할 수 있다(도 8).
블록(1020)에서, CD2의 프로세서는 제2 결과를 사용하여 통신을 해독할 수 있다.
방법(1000A)은 CD1에서 CD2로 통신을 전송하는 것으로 제한되지 않으며, 다양한 실시 예에서, CD2의 프로세서는 CD1의 프로세서와 관련하여 전술한 동작을 수행할 수 있으며, 그 역도 마찬가지이다. 일부 실시 예에서, CD1 및 CD2의 프로세서는 방법(1000A)의 각각의 동작을 수행하여 CD1이 암호화된 통신을 CD2에 전송할 수 있고, 이어서 역할을 전환하여 CD2가 암호화된 통신을 CD1에 전송할 수 있다.
도 10b는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(1000B)을 도시한다. 도 1 내지 10b를 참조하면, 방법(1000B)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106) 및 네트워크 요소(110))의 프로세서(예를 들어, 프로세서(202) 및/또는 이와 유사한 것)에 의해 구현될 수 있다. 블록들(822 내지 858, 902 내지 914 및 1002 내지 1020)에서, 데이터 세트 관리자, 제1 통신 디바이스(CD1) 및 제2 통신 디바이스(CD2)의 장치 프로세서는 방법(800A, 900A 및 1000A)의 동일 번호의 블록의 동작을 수행할 수 있다.
블록(1030)에서, 데이터 세트 관리자의 프로세서는 제1 컴퓨팅 디바이스(CD1) 및/또는 제2 컴퓨팅 디바이스(CD2)와 핸드셰이크 동작을 수행할 수 있다. 블록들(1032 및 1034)에서, CD1의 프로세서 및 CD2의 프로세서는 데이터 세트 관리자와의 각각의 핸드셰이크 동작을 수행할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 데이터 세트 관리자와 CD1 사이 및/또는 데이터 세트 관리자와 CD2 사이의 통신 링크를 설정하기 위한 하나 이상의 동작을 포함할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 임시 공유 데이터 세트를 제공/획득하는 하나 이상의 동작을 포함할 수 있다(예를 들어, 방법(700)과 관련하여 설명된 바와 같이). 일부 실시 예들에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서들에 의해 수행되는 핸드셰이크 동작은 임시 공유 데이터 세트를 동기화하기 위한 하나 이상의 동기화 동작을 포함할 수 있다(예를 들어, 방법(700)과 관련하여 설명된 바와 같이). 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 데이터 세트 관리자, CD1 및/또는 CD2를 인증하기 위한 하나 이상의 동작을 포함할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 블록(802 내지 820)의 하나 이상의 동작을 포함할 수 있다(예를 들어, 방법 800A와 관련하여 설명된 바와 같이).
일부 실시 예들에서, 블록(1020)에서 제2 결과를 사용하여 통신의 암호 해독 후에, CD2의 프로세서는 블록(1034)에서 다시 핸드셰이크 동작들을 수행할 수 있다.
도 11a는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(1100A)을 도시한다. 도 1 내지 도 11a를 참조하면, 방법(1100A)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106) 및 네트워크 요소(110))의 프로세서(예를 들어, 프로세서(202) 및/또는 이와 유사한 것)에 의해 구현될 수 있다. 블록(818 내지 858)에서, 데이터 세트 관리자, 제1 통신 디바이스(CD1) 및 제2 통신 디바이스(CD2)의 장치 프로세서는 방법(800A)의 동일 번호의 블록의 동작을 수행할 수 있다. 다양한 실시 예에서, 방법(1100A)은 제한된 처리 및/또는 메모리 자원을 갖는 하나 이상의 컴퓨팅 디바이스를 포함하는 구현에 유용할 수 있다. 이러한 컴퓨팅 디바이스의 일례는 IoT 디바이스 또는 다른 유사한 디바이스를 포함한다.
다양한 실시 예에서, 방법(1100A)은 제한된 처리 및/또는 메모리 자원을 갖는 하나 이상의 컴퓨팅 디바이스를 포함하는 구현에 유용할 수 있다. 이러한 컴퓨팅 디바이스의 일례는 IoT 디바이스 또는 다른 유사한 디바이스를 포함한다.
블록(1102)에서, CD1의 프로세서는 제1 결과를 사용하여 메시지를 암호화 할 수 있다. 예를 들어, CD1의 프로세서는 MD5, SHA2, SHA256, BLAKE2 등과 같은 암호화 방법을 제1 결과와 함께 사용하여 메시지를 암호화 할 수 있다.
블록(1104)에서, CD1의 프로세서는 암호화된 메시지를 제2 컴퓨팅 디바이스에 전송할 수 있다.
블록(1106)에서, CD2의 프로세서는 암호화된 메시지를 수신할 수 있다.
블록(1108)에서, CD2의 프로세서는 제2 결과를 이용하여 메시지를 해독할 수 있다. 예를 들어, CD1의 프로세서는 메시지의 암호 해독 프로세스를 개시할 수 있다. 일부 실시 예들에서, CD2의 프로세서는 제2 결과를 이용하여 메시지를 해독하려고 시도할 수 있다. 다양한 실시 예들에서, CD1의 프로세서는 메시지의 해독을 시도하기 위해 MD5, SHA2, SHA256, BLAKE2 등과 같은 해독 포맷을 사용할 수 있다.
블록(1110)에서, 프로세서 CD2는 확인 응답 메시지를 CD1에 전송할 수 있다. 일부 실시 예들에서, 확인 응답 메시지는 CD2의 프로세서가 제2 결과를 이용하여 암호화된 메시지를 성공적으로 해독했음을 CD1으로 다시 표시하는 역할을 할 수 있다.
블록(1112)에서, CD1의 프로세서는 CD2로부터의 응답 및 메시지를 기다릴 수 있다. 예를 들어, 블록(1104)에서 암호화된 메시지를 전송한 프로세서 CD1은 CD2로부터 확인 응답 메시지를 수신할 것으로 예상할 수 있다.
결정 블록(1114)에서, CD1의 프로세서는 CD2로부터 수신된 메시지의 응답을 판단할 수 있다. 확인 메시지가 수신되었다는 결정에 응답하여(즉, 결정 블록(1114) = "예"), CD1의 프로세서는 블록(854)(도 8)의 동작을 수행할 수 있다.
확인 응답 메시지가 수신되지 않았다는 결정에 응답하여(즉, 결정 블록(1114) = "아니오"), CD1의 프로세서는 판정 블록(1116)에서 타임 아웃 기간이 경과했는지 여부를 판정할 수 있다. 일부 실시 예들에서, CD1의 프로세서는 일정 기간(예를 들어, 타임 아웃 기간) 동안 CD2로부터의 확인 응답 메시지를 기다릴 수 있다.
타임 아웃 기간이 경과하지 않았다는 결정에 응답하여(즉, 결정 블록(1116) = "아니오"), CD1의 프로세서는 확인 블록(1114)에서 확인 응답 메시지가 수신되었는지를 다시 결정할 수 있다.
타임 아웃 기간이 경과되었다는 결정에 응답하여(즉, 결정 블록(1116) = "예"), CD1의 프로세서는 블록(850) 또는 블록(852)(도 8)의 동작을 수행할 수 있다.
도 11b는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(1100B)을 도시한다. 도 1 내지 도 11B를 참조하면, 방법(1100B)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106) 및 네트워크 요소(110))의 프로세서(예를 들어, 프로세서(202) 및/또는 이와 유사한 것)에 의해 구현될 수 있다. 블록들(822 내지 860 및 1102 내지 1116)에서, 데이터 세트 관리자, 제1 통신 디바이스(CD1) 및 제2 통신 디바이스(CD2)의 장치 프로세서는 방법(800A 및 1100A)의 동일 번호의 블록의 동작을 수행할 수 있다.
블록(1120)에서, 데이터 세트 관리자의 프로세서는 제1 컴퓨팅 디바이스(CD1) 및/또는 제2 컴퓨팅 디바이스(CD2)와의 핸드셰이크 동작을 수행할 수 있다. 블록(1122 및 1124)에서, CD1의 프로세서 및 CD2의 프로세서는 데이터 세트 관리자와의 각각의 핸드셰이크 동작을 수행할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 데이터 세트 관리자와 CD1 사이 및/또는 데이터 세트 관리자와 CD2 사이의 통신 링크를 설정하기 위한 하나 이상의 동작을 포함할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 임시 공유 데이터 세트를 제공/획득하는 하나 이상의 동작을 포함할 수 있다(예를 들어, 방법(700)과 관련하여 설명된 바와 같이). 일부 실시 예들에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서들에 의해 수행되는 핸드셰이크 동작은 임시 공유 데이터 세트를 동기화하기 위한 하나 이상의 동기화 동작을 포함할 수 있다(예를 들어, 방법(700)과 관련하여 설명된 바와 같이). 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 데이터 세트 관리자, CD1 및/또는 CD2를 인증하기 위한 하나 이상의 동작을 포함할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 블록들(802 내지 820)의 하나 이상의 동작을 포함할 수 있다(예를 들어, 방법(800A)과 관련하여 설명된 바와 같이).
일부 실시 예들에서, 동기화 쿼리의 전송(블록(852))에 이어, 데이터 세트 관리자의 프로세서는 블록(870)에서 다시 핸드셰이크 동작을 수행할 수 있다.
일부 실시 예들에서, 블록(856)의 동작에 이어서, CD1의 프로세서는 블록(1122)에서 핸드셰이크 동작을 수행할 수 있다.
일부 실시 예들에서, 블록(860)의 동작에 이어서, CD2의 프로세서는 블록(1124)에서 핸드셰이크 동작을 수행할 수 있다.
도 12a는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(1200A)을 도시한다. 도 1 내지 도 12a를 참조하면, 방법(1200A)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106) 및 네트워크 요소(110))의 프로세서(예를 들어, 프로세서(202) 및/또는 이와 유사한 것)에 의해 구현될 수 있다. 블록들(818 내지 838)에서, 데이터 세트 관리자, 제1 통신 디바이스(CD1) 및 제2 통신 디바이스(CD2)의 장치 프로세서는 방법(800A)의 동일 번호의 블록의 동작을 수행할 수 있다.
일부 실시 예들에서, 방법(1200A)의 동작들은 IoT 시스템에서 이용될 수 있다. 예를 들어, CD1 및 CD2는 각각 IoT 디바이스의 구성 요소이거나 이를 포함하거나 구성 요소일 수 있다. 일부 실시 예들에서, CD1은 IoT 허브, 제어기, 라우터 또는 다른 유사한 IoT 디바이스로서 기능할 수 있다. 일부 실시 예들에서, CD2는, 예를 들어, 스마트 전구 또는 전등 스위치, 스마트 도어락 또는 도어 노브 또는 다른 유사한 IoT 디바이스와 같은, CD1보다 적은 프로세싱 능력 및/또는 메모리 능력을 갖는 IoT 디바이스로서 기능할 수 있다. 일부 실시 예에서, 방법(1200A)에 기술된 CD2의 동작은 비교적 제한된 처리 능력 및/또는 메모리를 갖는 IoT 디바이스 또는 다른 유사한 디바이스에 의한 성능을 용이하게 하기 위해 비교적 단순화된다(예를 들어, 방법(800A 및 800B)와 관련하여 전술한 동작과 비교하여).
블록(1202)에서, CD1의 프로세서는 제1 결과를 사용하여 메시지를 암호화 할 수 있다. 예를 들어, CD1의 프로세서는 MD5, SHA2, SHA256, BLAKE2 등과 같은 암호화 방법을 제2 결과와 함께 사용하여 메시지를 암호화 할 수 있다. 일부 실시 예에서, 메시지는 CD1의 프로세서가 CD2의 프로세서에 의해 생성된 제 2 결과가 CD1의 프로세서에 의해 생성된 제1 결과와 일치하는지 여부를 판정할 수 있게 하는 테스트 메시지로서 기능할 수 있다. 일부 실시 예에서, 예를 들어, CD2가 처리 능력 및/또는 메모리가 비교적 제한된 컴퓨팅 디바이스인 경우, CD1의 프로세서는 비교적 짧은 메시지를 생성할 수 있다.
블록(1204)에서, CD1의 프로세서는 암호화된 메시지를 CD2에 전송할 수 있다.
블록(1206)에서, CD2의 프로세서는 암호화된 메시지를 수신할 수 있다.
블록(1208)에서, CD2의 프로세서는 제1 결과를 사용하여 메시지의 암호 해독을 시도할 수 있다. 예를 들어, CD2의 프로세서는 메시지의 암호 해독 프로세스를 개시할 수 있다. 다양한 실시 예들에서, CD2의 프로세서는 MD5, SHA2, SHA256, BLAKE2 등과 같은 해독 포맷을 사용하여 메시지의 해독을 시도할 수 있다.
블록(1210)에서, CD2의 프로세서는 확인 응답 메시지를 CD1에 전송할 수 있다.
결정 블록(1212)에서, CD1의 프로세서는 확인 응답 메시지가 수신되는지를 결정할 수 있다(예를 들어, 블록(1210)에서 CD2에 의해 전송된 확인 응답 메시지).
확인 응답 메시지가 수신되었다는 결정에 응답하여(즉, 결정 블록(1212) = "예"), CD1의 프로세서는 CD2가 블록(1214)에서 인증된 것으로 결정할 수 있다. CD1의 프로세서는 블록(808)의 동작을 수행할 수 있다.
확인 응답 메시지가 수신되지 않았다는 결정에 응답하여(즉, 결정 블록(1212) = "아니오"), CD1의 프로세서는 선택적 블록(850 또는 852)의 동작을 수행할 수 있다.
도 12b는 다양한 실시 예에 따른 통신을 보호하기 위한 방법(1200B)을 도시한다. 도 1 내지 도 12b를 참조하면 방법(1200B)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(102 및 106) 및 네트워크 요소(110))의 프로세서 (예를 들어, 프로세서 (202) 및/또는 이와 유사한 것)에 의해 구현될 수 있다. 블록들(822 내지 852 및 1202 내지 1214)에서, 데이터 세트 관리자, 제1 통신 디바이스(CD1) 및 제2 통신 디바이스(CD2)의 장치 프로세서는 방법(800A 및 1200A)의 동일 번호의 블록의 동작을 수행할 수 있다.
블록(1220)에서, 데이터 세트 관리자의 프로세서는 제1 컴퓨팅 디바이스(CD1) 및/또는 제2 컴퓨팅 디바이스(CD2)와 핸드셰이크 동작을 수행할 수 있다. 블록들(1222 및 1224)에서, CD1의 프로세서 및 CD2의 프로세서는 데이터 세트 관리자와의 각각의 핸드셰이크 동작을 수행할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 데이터 세트 관리자와 CD1 사이 및/또는 데이터 세트 관리자와 CD2 사이의 통신 링크를 설정하기 위한 하나 이상의 동작을 포함할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 임시 공유 데이터 세트를 제공/획득하는 하나 이상의 동작을 포함할 수 있다(예를 들어, 방법(700)과 관련하여 설명된 바와 같이). 일부 실시 예들에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서들에 의해 수행되는 핸드셰이크 동작은 임시 공유 데이터 세트를 동기화하기 위한 하나 이상의 동기화 동작을 포함할 수 있다(예를 들어, 방법(700)과 관련하여 설명된 바와 같이). 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 데이터 세트 관리자, CD1 및/또는 CD2를 인증하기 위한 하나 이상의 동작을 포함할 수 있다. 일부 실시 예에서, 데이터 세트 관리자, CD2 및/또는 CD2의 프로세서에 의해 수행되는 핸드셰이크 동작은 블록들(802 내지 820)의 하나 이상의 동작을 포함할 수 있다(예를 들어, 방법(800A)과 관련하여 설명된 바와 같이).
일부 실시 예들에서, 동기화 쿼리의 전송에 이어서(블록(852)), 데이터 세트 관리자의 프로세서는 블록(870)에서 다시 핸드셰이크 동작을 수행할 수 있다.
일부 실시 예들에서, 블록(856)의 동작에 이어서, CD1의 프로세서는 블록(1122)에서 핸드셰이크 동작을 수행할 수 있다.
일부 실시 예들에서, 블록(860)의 동작에 이어서, CD2의 프로세서는 블록(1124)에서 핸드셰이크 동작을 수행할 수 있다.
도 13은 다양한 실시 예를 구현하기에 적합한 이동 무선 통신 디바이스(1300)의 구성 요소 블록도이다. 도 1 내지 도 13을 참조하면, 모바일 무선 통신 디바이스(1300)는 터치 스크린 제어기(1306) 및 내부 메모리(1304)에 연결된 프로세서(1302)를 포함할 수 있다. 프로세서(1302)는 일반적인 또는 특정 처리 작업을 위해 지정된 하나 이상의 멀티 코어 집적 회로일 수 있다. 내부 메모리(1304)는 휘발성 또는 비 휘발성 메모리일 수 있으며, 보안 및/또는 암호화된 메모리, 또는 비보안 및/또는 암호화되지 않은 메모리, 또는 이들의 임의의 조합일 수도 있다. 터치 스크린 제어기(1306) 및 프로세서(1302)는 또한 저항 감지 터치 스크린, 용량 감지 터치 스크린, 적외선 감지 터치 스크린 등과 같은 터치 스크린 패널(1312)에 결합될 수 있다. 또한, 이동 무선 통신 디바이스(1300)의 디스플레이는 터치 스크린 능력을 가질 필요가 없다.
모바일 무선 통신 디바이스(1300)는 서로 및/또는 프로세서(1302)에 연결된 통신을 송수신하기 위한 둘 이상의 무선 신호 송수신기(1308)(예를 들어, 블루투스, 지그비, Wi-Fi, 무선 주파수(RF) 등) 및 안테나(1310)를 가질 수 있다. 송수신기(1308) 및 안테나(1310)는 다양한 무선 전송 프로토콜 스택 및 인터페이스를 구현하기 위해 상술한 회로와 함께 사용될 수 있다. 모바일 무선 통신 디바이스(1300)는 프로세서 및 안테나(1310)에 연결된 하나 이상의 셀룰러 네트워크 무선 모뎀 칩(들)(1316)을 포함할 수 있고, 이는 둘 이상의 무선 액세스 기술을 통해 둘 이상의 셀룰러 네트워크를 통한 통신을 가능하게 한다.
모바일 무선 통신 디바이스(1300)는 프로세서(1302)에 연결된 주변기기 무선 디바이스 연결 인터페이스(1318)를 포함할 수 있다. 주변기기 무선 디바이스 연결 인터페이스(1318)는 한 유형의 연결을 수용하도록 단일 구성될 수 있으며, 또는 USB, Fire Wire, Thunderbolt 또는 PCIe와 같은 다양한 유형의 물리적 및 통신 연결, 공통 또는 독점을 수용하도록 구성될 수 있다. 주변기기 무선 디바이스 연결 인터페이스(1318)는 유사하게 구성된 주변기기 무선 디바이스 연결 포트(도시되지 않음)에 연결될 수도 있다.
모바일 무선 통신 디바이스(1300)는 또한 오디오 출력을 제공하기 위한 스피커(1310)를 포함할 수 있다. 이동 무선 통신 디바이스(1300)는 또한 본 명세서에서 논의된 구성 요소들의 전부 또는 일부를 포함하기 위해 플라스틱, 금속 또는 재료의 조합으로 구성된 하우징(1320)을 포함할 수 있다. 이동 무선 통신 디바이스(1300)는 일회용 배터리 또는 재충전 가능한 배터리와 같은 프로세서(1302)에 연결된 전원(1322)을 포함할 수 있다. 충전식 배터리는 또한 주변 무선 디바이스 연결 포트에 연결되어 모바일 무선 통신 디바이스(1300) 외부의 소스로부터 충전 전류를 수신할 수 있다. 모바일 무선 통신 디바이스(1300)는 또한 사용자 입력을 수신하기 위한 물리적 버튼(1324)을 포함할 수 있다. 이동 무선 통신 디바이스(1300)는 또한 이동 무선 통신 디바이스(1300)를 켜고 끄는 전원 버튼(1326)을 포함할 수 있다.
다른 형태의 컴퓨팅 디바이스도 다양한 측면으로부터 이익을 얻을 수 있다. 이러한 컴퓨팅 디바이스는 전형적으로 예시적인 랩톱 컴퓨터(1400)를 도시하는 도 14에 도시된 구성 요소를 포함한다. 도 1 내지 도 14를 참조하면, 컴퓨터(1400)는 일반적으로 휘발성 메모리(1402) 및 디스크 드라이브(1403)와 같은 대용량 비 휘발성 메모리에 연결된 프로세서(1401)를 포함한다. 컴퓨터(1400)는 또한 프로세서(1401)에 연결된 CD 및/또는 DVD 드라이브(1404)를 포함할 수 있다. 컴퓨터(1400)는 또한 프로세서(1401)를 네트워크에 연결하기 위한 네트워크 연결 회로(1405)와 같은 데이터 연결을 설정하거나 외부 메모리 디바이스를 수신하기 위해 프로세서(1401)에 연결된 다수의 커넥터 포트를 포함할 수 있다. 컴퓨터(1400)는 또한 디스플레이(1407), 키보드(1408), 트랙 패드(1410)와 같은 포인팅 디바이스 및 다른 유사한 디바이스를 포함할 수 있다.
다양한 실시 예는 통신 네트워크의 네트워크 요소로서 컴퓨팅 디바이스를 이용할 수 있다. 그러한 네트워크 요소는 전형적으로 예시적인 네트워크 요소, 서버 디바이스(1500)를 도시하는 도 15에 도시된 적어도 하나의 구성 요소를 포함할 수 있다. 도 1 내지 도 15를 참조하면, 서버 디바이스(1500)는 전형적으로 휘발성 메모리(1502) 및 디스크 드라이브(1503)와 같은 대용량 비 휘발성 메모리에 연결된 프로세서(1501)를 포함할 수 있다. 서버 디바이스(1500)는 또한 프로세서(1501)에 연결된 플로피 디스크 드라이브, CD 또는 DVD 드라이브(1506)와 같은 주변기기 메모리 액세스 디바이스를 포함할 수 있다. 서버 디바이스(1500)는 또한 인터넷과 같은 네트워크 및/또는 다른 시스템 컴퓨터 및 서버에 연결된 근거리 네트워크와의 데이터 연결을 설정하기 위해 프로세서(1501)에 연결된 네트워크 액세스 포트(1504)(또는 인터페이스)를 포함할 수 있다. 유사하게, 서버 디바이스(1500)는 주변기기, 외부 메모리 또는 다른 디바이스에 연결하기 위한 USB, Firewire, Thunderbolt 등과 같은 추가 액세스 포트를 포함할 수 있다.
프로세서(1302, 1401, 1501)는 후술할 다양한 양상의 기능을 포함하여 다양한 기능을 수행하도록 소프트웨어 명령어(어플리케이션)에 의해 구성될 수 있는 임의의 프로그램 가능한 마이크로 프로세서, 마이크로 컴퓨터 또는 다중 프로세서 칩 또는 칩들일 수 있다. 일부 모바일 디바이스에서, 무선 통신 기능 전용의 하나의 프로세서 및 다른 어플리케이션의 실행 전용의 하나의 프로세서와 같은 다수의 프로세서(1302)가 제공될 수 있다. 일반적으로, 소프트웨어 어플리케이션은 프로세서(1302, 1401, 1501)로 액세스되고 로딩되기 전에 내부 메모리(1304, 1402, 1502)에 저장될 수 있다. 프로세서(1302, 1401, 1501)는 어플리케이션 소프트웨어 명령어를 저장하기에 충분한 내부 메모리를 포함할 수 있다.
다양한 실시 예는 동적으로 변경되는 공유 정보 컨텍스트를 활용하여 통신 보안을 개선함으로써 임의의 통신 네트워크 또는 임의의 전자 통신 시스템의 보안 기능을 강화 및 향상시킨다, 다양한 실시 예는 또한 동적으로 변화하는 공유 정보 컨텍스트에 기초하여 동적으로 생성된 결과를 이용함으로써 통신 네트워크 상에서 통신의 보안을 강화 및 향상시킨다. 정보 컨텍스트는 예를 들어 동적으로 변화하는 공유 데이터 세트를 포함할 수 있다. 다양한 실시 예는 또한, 무단 액세스 및 복사에 취약할 수 있는 쉽게 손상된 정적 식별 정보(예를 들어, 공유 비밀)에 의존하지 않으면서, 동적 공유 데이터 세트 및 동적 공유 데이터 세트에 기초하여 동적으로 생성된 값을 사용함으로써, 임의의 통신 네트워크의 보안 기능을 향상시킨다. 다양한 실시 예는 공유 비밀 및 정적 정보의 패러다임에 의존하지 않는 방식으로 통신을 보호하기 위해 동적으로 변경되는 공유 데이터 및 동적으로 생성된 값을 사용한다.
예시되고 설명된 다양한 실시 예는 단지 청구항의 다양한 특징을 설명하기 위한 예로서 제공된다. 그러나, 임의의 주어진 실시 예와 관련하여 도시되고 설명된 특징은 반드시 관련 실시 예에 한정되는 것은 아니며 도시되고 설명된 다른 실시 예와 함께 사용되거나 조합될 수 있다. 또한, 청구 범위는 임의의 하나의 예시적인 실시 예에 의해 제한되도록 의도되지 않는다. 예를 들어, 방법(300, 700, 800A, 800B, 900A, 900B, 1000A, 1000B, 1100A, 1100B, 1200A 및 1200B)의 하나 이상의 동작들은 방법(300, 700, 800A, 800B, 900A, 900B, 1000A, 1000B, 1100A, 1100B, 1200A 및 1200B)의 하나 이상의 동작으로 대체되거나 조합될 수 있다.
다양한 실시 예는 임의의 수의 단일 또는 다중 프로세서 시스템에서 구현될 수 있다. 일반적으로 프로세스는 짧은 시간 조각으로 프로세서에서 실행되므로 여러 프로세스가 단일 프로세서에서 동시에 실행되는 것처럼 보인다. 타임 슬라이스 끝에서 프로세서에서 프로세스가 제거되면, 프로세스의 현재 작동 상태와 관련된 정보는 메모리에 저장되므로 프로세스가 프로세서에서 실행으로 돌아갈 때 프로세스가 원활하게 작업을 재개할 수 있다. 이 동작 상태 데이터는 프로세스의 어드레스 공간, 스택 공간, 가상 어드레스 공간, 레지스터 세트 이미지(예를 들어, 프로그램 카운터, 스택 포인터, 명령 레지스터, 프로그램 상태 워드 등), 계정 정보, 권한, 액세스 제한 및 상태 정보를 포함할 수 있다.
프로세스는 다른 프로세스를 생성할 수 있으며, 생성된 프로세스(즉, 자식 프로세스)는 생성 프로세스(즉, 부모 프로세스)의 일부 권한 및 액세스 제한(즉, 컨텍스트)을 상속할 수 있다. 프로세스는 컨텍스트(예를 들어, 어드레스 공간, 스택, 권한 및/또는 액세스 제한 등)의 일부 또는 전부를 다른 프로세스/스레드와 공유하는 프로세스인 여러 개의 경량 프로세스 또는 스레드를 포함하는 헤비급 프로세스일 수 있다. 따라서, 단일 프로세스는 단일 컨텍스트(즉, 프로세서의 컨텍스트) 내에서 공유, 액세스 및/또는 동작하는 다수의 경량 프로세스 또는 스레드를 포함할 수 있다.
전술한 방법 설명 및 프로세스 흐름도는 단지 설명적인 예로서 제공되며, 다양한 실시 예의 블록이 제시된 순서로 수행되어야 한다는 것을 요구하거나 암시하도록 의도되지 않는다. 당업자라면 이해할 수 있는 바와 같이, 전술한 실시 예에서의 블록 순서는 임의의 순서로 수행될 수 있다. "그 후", "그리고", "다음" 등과 같은 단어는 블록의 순서를 제한하려는 것이 아니다; 이 단어들은 단순히 방법의 설명을 통해 독자를 안내하는 데 사용된다. 또한, 예를 들어, 관사("일", "하나" 또는 "상기")를 사용하는 단수의 청구항 요소에 대한 임의의 언급은 요소를 단수로 제한하는 것으로 해석되지 않아야 한다.
본 명세서에 개시된 실시 예와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 회로 및 알고리즘 블록은 전자 하드웨어, 컴퓨터 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 하드웨어와 소프트웨어의 이러한 호환성을 명확하게 설명하기 위해, 다양한 예시적인 구성 요소들, 블록들, 모듈들, 회로들 및 블록들이 일반적으로 그들의 기능성 측면에서 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로 구현되는지 여부는 전체 시스템에 부과된 특정 어플리케이션 및 설계 제약 조건에 따라 다르다. 당업자는 설명된 기능을 각각의 특정 어플리케이션에 대해 다양한 방식으로 구현할 수 있지만, 그러한 구현 결정이 청구항의 범위를 벗어나는 것으로 해석되어서는 안 된다.
본 명세서에 개시된 실시 예들과 관련하여 설명된 다양한 예시적인 논리, 논리 블록, 모듈 및 회로를 구현하는데 사용되는 하드웨어는 범용 프로세서, 디지털 신호 프로세서(DSP), ASIC(application specific integrated circuit), FPGA(Field Programmable Gate Array) 또는 기타 프로그램 가능 논리 디바이스, 이산 게이트 또는 트랜지스터 로직, 개별 하드웨어 구성 요소 또는 본원에 기술된 기능을 수행하도록 설계된 이들의 임의의 조합으로 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로 프로세서일 수 있지만, 대안적으로 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로 제어기 또는 상태 머신일 수 있다. 프로세서는 또한 예를 들어, DSP 및 마이크로 프로세서, 복수의 마이크로 프로세서, DSP 코어와 함께 하나 이상의 마이크로 프로세서, 또는 임의의 다른 구성의 조합과 같은 통신 디바이스의 조합으로 구현될 수 있다. 대안적으로, 일부 블록 또는 방법은 주어진 기능에 특정한 회로에 의해 수행될 수 있다.
다양한 실시 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능은 비 일시적 컴퓨터 판독 가능 매체 또는 비 일시적 프로세서 판독 가능 매체 상에 하나 이상의 명령 또는 코드로서 저장될 수 있다. 본 명세서에 개시된 방법 또는 알고리즘의 동작은 비 일시적 컴퓨터 판독 가능 또는 프로세서 판독 가능 저장 매체 상에 상주할 수 있는 프로세서 실행 가능 소프트웨어 모듈로 구현될 수 있다. 비 일시적 컴퓨터 판독 가능 또는 프로세서 판독 가능 저장 매체는 컴퓨터 또는 프로세서에 의해 액세스 될 수 있는 임의의 저장 매체일 수 있다. 예를 들어, 비 제한적으로, 이러한 비 일시적 컴퓨터 판독 가능 또는 프로세서 판독 가능 매체는 RAM, ROM, EEPROM, FLASH 메모리, CD-ROM, 또는 다른 광 디스크 저장 디바이스, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스 될 수 있는 임의의 다른 매체를 포함할 수 있다. 본 명세서에서 사용되는 디스크(disk) 및 디스크(disc)는 CD(compact disc), 레이저 디스크, 광 디스크, DVD(digital versatile disc), 플로피 디스크(floppy disk) 및 디스크가 일반적으로 자기적으로 데이터를 재생하는 디스크 및 레이저로 광학적으로 데이터를 재생하는 Blu-ray 디스크를 포함한다. 상기의 조합은 또한 비 일시적 컴퓨터 판독 가능 매체 및 프로세서 판독 가능 매체의 범위 내에 포함된다. 또한, 방법 또는 알고리즘의 동작은 비 일시적 프로세서 판독 가능 매체 및/또는 컴퓨터 판독 가능 매체 상에 하나 또는 임의의 조합 또는 코드 및/또는 명령 세트로서 상주할 수 있고, 이는 컴퓨터 프로그램 제품에 통합될 수 있다.
개시된 실시 예들의 전술한 설명은 당업자가 청구 범위를 이해하거나 이용할 수 있도록 제공된다. 이들 실시 예에 대한 다양한 변형은 당업자에게 용이하게 명백할 것이며, 여기에 정의된 일반적인 원리는 청구 범위의 범주를 벗어나지 않고 다른 실시 예에 적용될 수 있다. 따라서, 본 개시는 여기에 도시된 실시 예들로 제한되도록 의도되지 않으며, 다음의 청구항들 및 여기에 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위에 따라야 한다.

Claims (36)

  1. 제1 컴퓨팅 디바이스(computing device) 및 제2 컴퓨팅 디바이스에 저장된 임시 공유 데이터 세트의 동기화를 관리하기 위한 데이터 세트 관리 디바이스에 있어서,
    메모리(memory); 및
    상기 메모리에 결합되고 동작을 수행하기 위해 프로세서(processor) 실행 가능 명령어로 구성되는 프로세서를 포함하고, 상기 동작은:
    임시 공유 데이터 세트를 상기 제1 컴퓨팅 디바이스 및 상기기 제2 컴퓨팅 디바이스에 제공하는 단계;
    상기 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계; 및
    상기 생성된 명령어를 상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스에 전송하여 상기 생성된 명령어에 따라 상기 제1 및 제2 컴퓨팅 디바이스들에서 상기 임시 임시 데이터 세트를 변경하여 상기 제1 컴퓨팅 디바이스에 저장된 상기 임시 공유 데이터 세트를 상기 제2 컴퓨팅 디바이스에 저장된 상기 임시 공유 데이터 세트와 동일하게 하는 단계를 포함하는, 데이터 세트 관리 디바이스.
  2. 제1항에 있어서, 상기 프로세서는 동작을 수행하도록 프로세서 실행 가능 명령어로 구성되어 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계가:
    데이터 세트 업데이트 트리거가 발생했는지 여부를 결정하는 단계; 및
    상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 임시 공유 데이터 세트를 변경하기 위한 상기 명령어를 생성하는 단계를 포함하는, 데이터 세트 관리 디바이스.
  3. 제1항에 있어서, 상기 프로세서는 동작을 수행하도록 프로세서 실행 가능 명령어로 구성되어 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계가:
    상기 임시 공유 데이터 세트를 상기 데이터 세트 관리 디바이스에 의해 결정된 대체 데이터 세트로 교체하기 위한 명령어를 생성하는 단계를 포함하는, 데이터 세트 관리 디바이스.
  4. 제1항에 있어서, 상기 프로세서는 동작을 수행하도록 프로세서 실행 가능 명령어로 구성되어 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계가:
    상기 데이터 세트 관리 디바이스에서 수신된 데이터 입력에 기초하여 상기 임시 공유 데이터 세트에 새로운 부분을 추가하기 위한 명령어를 생성하는 단계를 포함하는, 데이터 세트 관리 디바이스.
  5. 제1항에 있어서, 상기 프로세서는 동작을 수행하도록 프로세서 실행 가능 명령어로 구성되어 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계가:
    상기 공유 데이터 세트의 일부를 빼기 위한 명령어를 생성하는 단계를 포함하는, 데이터 세트 관리 디바이스.
  6. 제1항에 있어서, 상기 프로세서는 동작을 수행하도록 프로세서 실행 가능 명령어로 구성되어 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계가:
    상기 임시 공유 데이터 세트를 재정렬하기 위한 명령어를 생성하는 단계를 포함하는, 데이터 세트 관리 디바이스.
  7. 제1항에 있어서, 상기 프로세서는 동작을 수행하도록 프로세서 실행 가능 명령어로 구성되어 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계가:
    상기 임시 공유 데이터 세트를 변환하기 위한 명령어를 생성하는 단계를 포함하는, 데이터 세트 관리 디바이스.
  8. 제1항에 있어서, 상기 프로세서는 동작을 수행하도록 프로세서 실행 가능한 명령어로 구성되며 상기 동작은:
    상기 제1 컴퓨팅 디바이스에 저장된 상기 변경된 데이터 세트가 상기 제2 컴퓨팅 디바이스에 저장된 상기 변경된 데이터 세트와 동일하도록 상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스와의 동기화 동작을 수행하는 단계를 더 포함하는, 데이터 세트 관리 디바이스.
  9. 제1 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 저장된 임시 공유 데이터 세트의 동기화를 관리하는 방법에 있어서,
    데이터 세트 관리 디바이스로부터 상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스로 임시 공유 데이터 세트를 제공하는 단계;
    상기 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계; 및
    상기 생성된 명령어를 상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스로 전송하여 상기 생성된 명령어에 따라 상기 제1 및 제2 컴퓨팅 디바이스들에서 상기 임시 임시 데이터 세트를 변경하여 상기 제1 컴퓨팅 디바이스에 저장된 상기 임시 공유 데이터 세트를 상기 제2 컴퓨팅 장치에 저장된 임시 공유 데이터 세트와 동일하게 하는 단계를 포함하는, 방법.
  10. 제9항에 있어서, 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계는:
    데이터 세트 업데이트 트리거가 발생했는지 여부를 결정하는 단계; 및
    상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계를 포함하는, 방법.
  11. 제9항에 있어서, 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계는:
    상기 임시 공유 데이터 세트를 상기 데이터 세트 관리 디바이스에 의해 결정된 대체 데이터 세트로 교체하기 위한 명령어를 생성하는 단계를 포함하는, 방법.
  12. 제9항에 있어서, 상기 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계는:
    상기 데이터 세트 관리 디바이스에서 수신된 데이터 입력에 기초하여 상기 임시 공유 데이터 세트에 새로운 부분을 추가하기 위한 명령어를 생성하는 단계를 포함하는, 방법.
  13. 제9항에 있어서, 상기 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계는:
    상기 공유 데이터 세트의 일부를 빼기 위한 명령어를 생성하는 단계를 포함하는, 방법.
  14. 제9항에 있어서, 상기 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계는:
    상기 임시 공유 데이터 세트를 재정렬하기 위한 명령어를 생성하는 단계를 포함하는, 방법.
  15. 제9항에 있어서, 상기 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계는:
    상기 임시 공유 데이터 세트를 변환하기 위한 명령어를 생성하는 단계를 포함하는, 방법.
  16. 제9항에 있어서,
    상기 제1 컴퓨팅 디바이스에 저장된 상기 변경된 데이터 세트가 상기 제2 컴퓨팅 디바이스에 저장된 상기 변경된 데이터 세트와 동일하도록 상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스와의 동기화 동작을 수행하는 단계를 더 포함하는, 방법.
  17. 데이터 세트 관리 디바이스의 프로세서로 하여금 동작을 수행하도록 구성된 프로세서 실행 가능 명령어를 저장한 비 일시적 프로세서 판독 가능 저장 매체로서, 상기 동작은:
    상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스로 임시 공유 데이터 세트를 제공하는 단계;
    상기 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계; 및
    상기 생성된 명령어를 상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스로 전송하여 상기 생성된 명령어에 따라 상기 제1 및 제2 컴퓨팅 디바이스들에서 상기 임시 임시 데이터 세트를 변경하여 상기 제1 컴퓨팅 디바이스에 저장된 상기 임시 공유 데이터 세트를 상기 제2 컴퓨팅 장치에 저장된 임시 공유 데이터 세트와 동일하게 하는 단계를 포함하는, 비 일시적 프로세서 판독 가능 저장 매체.
  18. 제17항에 있어서, 상기 저장된 프로세서 실행 가능 명령어는 상기 데이터 세트 관리 디바이스의 프로세서가 동작을 수행하게 하도록 구성되어 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계가:
    데이터 세트 업데이트 트리거가 발생했는지 여부를 결정하는 단계; 및
    상기 데이터 세트 업데이트 트리거가 발생했다는 결정에 응답하여 상기 임시 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계를 포함하는, 비 일시적 프로세서 판독 가능 저장 매체.
  19. 제17항에 있어서, 상기 저장된 프로세서 실행 가능 명령어는 상기 데이터 세트 관리 디바이스의 프로세서가 동작을 수행하게 하도록 구성되어 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계가:
    상기 임시 공유 데이터 세트를 상기 데이터 세트 관리 디바이스에 의해 결정된 대체 데이터 세트로 교체하기 위한 명령어를 생성하는 단계를 포함하는, 비 일시적 프로세서 판독 가능 저장 매체.
  20. 제17항에 있어서, 상기 저장된 프로세서 실행 가능 명령어는 상기 데이터 세트 관리 디바이스의 프로세서가 동작을 수행하게 하도록 구성되어 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계가:
    상기 데이터 세트 관리 디바이스에서 수신된 데이터 입력에 기초하여 상기 임시 공유 데이터 세트에 새로운 부분을 추가하기 위한 명령어를 생성하는 단계를 포함하는, 비 일시적 프로세서 판독 가능 저장 매체.
  21. 제17항에 있어서, 상기 저장된 프로세서 실행 가능 명령어는 상기 데이터 세트 관리 디바이스의 프로세서가 동작을 수행하게 하도록 구성되어 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계가:
    상기 공유 데이터 세트의 일부를 빼기 위한 명령어를 생성하는 단계를 포함하는, 비 일시적 프로세서 판독 가능 저장 매체.
  22. 제17항에 있어서, 상기 저장된 프로세서 실행 가능 명령어는 상기 데이터 세트 관리 디바이스의 프로세서가 동작을 수행하게 하도록 구성되어 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계가:
    상기 임시 공유 데이터 세트를 재정렬하기 위한 명령어를 생성하는 단계를 포함하는, 비 일시적 프로세서 판독 가능 저장 매체.
  23. 제17항에 있어서, 상기 저장된 프로세서 실행 가능 명령어는 상기 데이터 세트 관리 디바이스의 프로세서가 동작을 수행하게 하도록 구성되어 상기 공유 데이터 세트를 변경하기 위한 명령어를 생성하는 단계가:
    상기 임시 공유 데이터 세트를 변환하기 위한 명령어를 생성하는 단계를 포함하는, 비 일시적 프로세서 판독 가능 저장 매체.
  24. 제17항에 있어서, 상기 저장된 프로세서 실행 가능 명령어는 상기 데이터 세트 관리 디바이스의 프로세서가 동작을 수행하게 하도록 구성되며, 상기 동작은:
    상기 제1 컴퓨팅 디바이스에 저장된 상기 변경된 데이터 세트가 상기 제2 컴퓨팅 디바이스에 저장된 상기 변경된 데이터 세트와 동일하도록 상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스와의 동기화 동작을 수행하는 단계를 더 포함하는, 비 일시적 프로세서 판독 가능 저장 매체.
  25. 컴퓨팅 디바이스에 있어서:
    메모리; 및
    상기 메모리에 결합되고 동작을 수행하기 위해 프로세서 실행 가능 명령어들로 구성되는 프로세서를 포함하고, 상기 동작은:
    상기 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 저장된 임시 공유 데이터 세트로부터 요소들을 선택하는 단계;
    상기 선택된 요소들을 나타내는 규칙 세트를 생성하는 단계;
    상기 생성된 규칙 세트를 상기 제2 컴퓨팅 디바이스로 전송하는 단계;
    상기 선택된 요소들에 기초하여 결과를 생성하는 단계;
    상기 제2 컴퓨팅 디바이스로부터 암호화된 통신을 수신하는 단계;
    상기 생성된 결과를 이용하여 상기 암호화된 통신을 해독하려고 시도하는 단계; 및
    상기 시도된 암호 해독이 성공했는지 여부를 결정하는 단계를 포함하는, 컴퓨팅 디바이스.
  26. 제25항에 있어서, 상기 프로세서는 동작을 수행하기 위해 프로세서 실행 가능 명령어로 구성되어, 상기 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스에 저장된 상기 임시 공유 데이터 세트로부터 요소들을 선택하는 단계가:
    상기 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 저장된 상기 임시 공유 데이터 세트로부터 요소들을 추출하기 위해 데이터 세트 관리 디바이스로부터 명령어를 수신하는 단계; 및
    상기 명령어에 따라 상기 공유 데이터 세트로부터 요소들을 추출하는 단계를 포함하는, 컴퓨팅 디바이스.
  27. 제26항에 있어서, 상기 프로세서는 동작을 수행하기 위해 프로세서 실행 가능 명령어로 구성되어, 상기 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스에 저장된 상기 공유 데이터 세트로부터 요소들을 선택하는 단계가:
    상기 추출된 요소들 중에서 요소들을 선택하는 단계를 포함하는, 컴퓨팅 디바이스.
  28. 제25항에 있어서, 상기 프로세서는 동작을 수행하기 위한 프로세서 실행 가능 명령어로 구성되며, 상기 동작은:
    상기 시도된 암호 해독이 성공했다고 결정한 것에 응답하여 상기 제1 결과를 사용하여 통신을 암호화하는 단계; 및
    상기 암호화된 통신을 상기 제2 컴퓨팅 디바이스로 전송하는 단계를 더 포함하는, 컴퓨팅 디바이스.
  29. 통신을 보호하는 방법에 있어서:
    컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 저장된 임시 공유 데이터 세트로부터 요소들을 선택하는 단계;
    상기 선택된 요소들을 나타내는 규칙 세트를 생성하는 단계;
    상기 생성된 룰 세트를 상기 제2 컴퓨팅 디바이스로 전송하는 단계;
    상기 선택된 요소들에 기초하여 결과를 생성하는 단계;
    상기 제2 컴퓨팅 디바이스로부터 암호화된 통신을 수신하는 단계;
    상기 생성된 결과를 이용하여 상기 암호화된 통신을 암호 해독하려고 시도하는 단계; 및
    상기 시도된 암호 해독이 성공했는지 여부를 결정하는 단계를 포함하는, 방법.
  30. 제29항에 있어서, 상기 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스에 저장된 상기 임시 공유 데이터 세트로부터 요소들을 선택하는 단계는:
    상기 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 저장된 상기 임시 공유 데이터 세트로부터 요소들을 추출하기 위해 데이터 세트 관리 디바이스로부터 명령어를 수신하는 단계; 및
    상기 명령어에 따라 상기 공유 데이터 세트로부터 요소들을 추출하는 단계를 포함하는, 방법.
  31. 제30항에 있어서, 상기 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스에 저장된 상기 공유 데이터 세트로부터 요소들을 선택하는 단계는:
    상기 추출된 요소들 중에서 요소들을 선택하는 단계를 포함하는, 방법.
  32. 제29항에 있어서,
    상기 시도된 암호 해독이 성공했다고 결정한 것에 응답하여 상기 제1 결과를 사용하여 통신을 암호화하는 단계; 및
    상기 암호화된 통신을 상기 제2 컴퓨팅 디바이스로 전송하는 단계를 더 포함하는, 방법.
  33. 컴퓨팅 디바이스의 프로세서로 하여금 동작을 수행하도록 구성된 프로세서 실행 가능 명령어를 저장한 비 일시적 프로세서 판독 가능 저장 매체에 있어서, 상기 동작은:
    상기 컴퓨팅 디바이스 및 제2 컴퓨팅 디바이스에 저장된 임시 공유 데이터 세트로부터 요소들을 선택하는 단계;
    상기 선택된 요소들을 나타내는 규칙 세트를 생성하는 단계;
    상기 생성된 규칙 세트를 상기 제2 컴퓨팅 디바이스로 전송하는 단계;
    상기 선택된 요소들에 기초하여 결과를 생성하는 단계;
    상기 제2 컴퓨팅 디바이스로부터 암호화된 통신을 수신하는 단계;
    상기 생성된 결과를 이용하여 상기 암호화된 통신을 암호 해독하려고 시도하는 단계; 및
    상기 시도된 암호 해독이 성공했는지 여부를 결정하는 단계를 포함하는, 비 일시적 프로세서 판독 가능 저장 매체
  34. 제33항에 있어서, 상기 저장된 프로세서 실행 가능 명령어는 상기 컴퓨팅 디바이스의 프로세서로 하여금 동작을 수행하게 하도록 구성되어 상기 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스에 저장된 상기 임시 공유 데이터 세트로부터 요소를 선택하는 단계가:
    상기 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스에 저장된 상기 임시 공유 데이터 세트로부터 요소들을 추출하기 위해 데이터 세트 관리 디바이스로부터 명령어를 수신하는 단계; 및
    상기 명령어에 따라 상기 공유 데이터 세트로부터 요소를 추출하는 단계를 포함하는, 비 일시적 프로세서 판독 가능 저장 매체.
  35. 제34항에 있어서, 상기 저장된 프로세서 실행 가능 명령어는 상기 컴퓨팅 디바이스의 프로세서로 하여금 동작을 수행하게 하도록 구성되어 상기 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스에 저장된 상기 임시 공유 데이터 세트로부터 요소를 선택하는 단계가:
    상기 추출된 요소들 중에서 요소들을 선택하는 단계를 포함하는, 비 일시적 프로세서 판독 가능 저장 매체.
  36. 제33항에 있어서, 상기 저장된 프로세서 실행 가능 명령어는 상기 컴퓨팅 디바이스의 프로세서로 하여금 동작을 수행하게 하도록 구성되며, 상기 동작은:
    상기 시도된 암호 해독이 성공했다고 결정한 것에 응답하여 상기 제1 결과를 사용하여 통신을 암호화하는 단계; 및
    상기 암호화된 통신을 상기 제2 컴퓨팅 디바이스로 전송하는 단계를 포함하는, 비 일시적 프로세서 판독 가능 저장 매체.
KR1020197038671A 2017-05-31 2018-04-12 임시 공유 데이터 세트 관리 및 통신 보호를 위한 시스템 및 방법 KR20200015605A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762513047P 2017-05-31 2017-05-31
US62/513,047 2017-05-31
US15/788,981 US10122699B1 (en) 2017-05-31 2017-10-20 Systems and methods for ephemeral shared data set management and communication protection
US15/788,981 2017-10-20
PCT/US2018/027316 WO2018222281A1 (en) 2017-05-31 2018-04-12 Systems and methods for ephemeral shared data set management and communication protection

Publications (1)

Publication Number Publication Date
KR20200015605A true KR20200015605A (ko) 2020-02-12

Family

ID=63964588

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197038671A KR20200015605A (ko) 2017-05-31 2018-04-12 임시 공유 데이터 세트 관리 및 통신 보호를 위한 시스템 및 방법

Country Status (6)

Country Link
US (2) US10122699B1 (ko)
EP (1) EP3642752A4 (ko)
KR (1) KR20200015605A (ko)
AU (1) AU2018275999A1 (ko)
EA (1) EA201992874A1 (ko)
WO (1) WO2018222281A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11463439B2 (en) 2017-04-21 2022-10-04 Qwerx Inc. Systems and methods for device authentication and protection of communication on a system on chip
US11716312B1 (en) * 2018-06-22 2023-08-01 Hopr Corporation Platform for optimizing secure communications
CN110070586B (zh) * 2019-02-27 2020-04-03 北京字节跳动网络技术有限公司 色卡的生成方法、装置和电子设备
CN112231235B (zh) * 2020-12-10 2021-03-30 广东睿江云计算股份有限公司 基于多方协作的测试用例编写及测试方法及其系统
US20230095149A1 (en) * 2021-09-28 2023-03-30 Fortinet, Inc. Non-interfering access layer end-to-end encryption for iot devices over a data communication network

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US6295541B1 (en) 1997-12-16 2001-09-25 Starfish Software, Inc. System and methods for synchronizing two or more datasets
US7062656B2 (en) 2002-02-22 2006-06-13 International Busness Machines Corporation Method for providing secure access to information held in a shared respiratory
US7715565B2 (en) * 2004-07-29 2010-05-11 Infoassure, Inc. Information-centric security
US20070186115A1 (en) 2005-10-20 2007-08-09 Beijing Watch Data System Co., Ltd. Dynamic Password Authentication System and Method thereof
WO2007069737A1 (ja) * 2005-12-15 2007-06-21 Matsushita Electric Industrial Co., Ltd. ネットワーク機器検証装置
US8375086B2 (en) 2007-05-31 2013-02-12 International Business Machines Corporation Shared state manager and system and method for collaboration
US8452017B2 (en) 2007-12-21 2013-05-28 Research In Motion Limited Methods and systems for secure channel initialization transaction security based on a low entropy shared secret
CN106230872A (zh) * 2009-11-25 2016-12-14 安全第公司 对移动中数据进行保护的系统和方法
US8839357B2 (en) * 2010-12-22 2014-09-16 Canon U.S.A., Inc. Method, system, and computer-readable storage medium for authenticating a computing device
US8837741B2 (en) * 2011-09-12 2014-09-16 Qualcomm Incorporated Systems and methods for encoding exchanges with a set of shared ephemeral key data
US8676757B2 (en) 2011-10-18 2014-03-18 Microsoft Corporation Application of a differential dataset to a data store using sequential change sets
WO2013086532A1 (en) * 2011-12-09 2013-06-13 Echarge2 Corporation Systems and methods for using cipher objects to protect data
EP2817917B1 (en) * 2012-02-20 2018-04-11 KL Data Security Pty Ltd Cryptographic method and system
US9021269B2 (en) 2012-07-18 2015-04-28 TapLink, Inc. Blind hashing
US8964947B1 (en) * 2013-03-11 2015-02-24 Amazon Technologies, Inc. Approaches for sharing data between electronic devices
US9922102B2 (en) * 2013-07-31 2018-03-20 Splunk Inc. Templates for defining fields in machine data
US20150286719A1 (en) 2014-04-03 2015-10-08 Sony Corporation Recognizing and registering faces in video
EP3860041B1 (en) * 2014-06-18 2023-03-15 Visa International Service Association Efficient methods for authenticated communication
US20150371611A1 (en) * 2014-06-19 2015-12-24 Contentguard Holdings, Inc. Obscurely rendering content using masking techniques
AU2015308608B2 (en) * 2014-08-29 2019-07-04 Visa International Service Association Methods for secure cryptogram generation
US10382210B2 (en) * 2016-01-10 2019-08-13 Apple Inc. Secure device pairing
US10367640B2 (en) * 2016-05-04 2019-07-30 Securerf Corporation Shared secret data production system

Also Published As

Publication number Publication date
US20190036899A1 (en) 2019-01-31
US10122699B1 (en) 2018-11-06
WO2018222281A1 (en) 2018-12-06
EA201992874A1 (ru) 2020-05-08
EP3642752A1 (en) 2020-04-29
US10541989B2 (en) 2020-01-21
EP3642752A4 (en) 2021-04-07
AU2018275999A1 (en) 2020-01-30

Similar Documents

Publication Publication Date Title
US10057269B1 (en) Systems and methods for device verification and authentication
US10541989B2 (en) Systems and methods for ephemeral shared data set management and communication protection
US10021100B2 (en) Systems and methods for device authentication
WO2018024056A1 (zh) 用户口令管理的方法和服务器
CN109495251B (zh) 基于密钥卡的抗量子计算智能家庭云存储方法和系统
WO2023083007A1 (zh) 物联网设备身份认证方法、装置、系统及存储介质
US20160292446A1 (en) Data encryption and compression
US10885525B1 (en) Method and system for employing biometric data to authorize cloud-based transactions
US11463439B2 (en) Systems and methods for device authentication and protection of communication on a system on chip
US20160292447A1 (en) Multi-layered encryption
US20190149552A1 (en) Systems and Methods for Dynamic Authentication and Communication Protection Using an Ephemeral Shared Data Set
SE542460C2 (en) Improved security through authenticaton tokens
US20160294876A1 (en) Unique graphic identifier
US20200111091A1 (en) Systems and Methods for Certifying Authenticated Transaction Information
US11777724B2 (en) Data fragmentation and reconstruction
Kim et al. Puf-based iot device authentication scheme on iot open platform
US11240661B2 (en) Secure simultaneous authentication of equals anti-clogging mechanism
WO2016026429A1 (zh) 无线网络配置、接入和访问方法、装置及设备
WO2022001272A1 (zh) 一种设备防伪方法及装置
WO2019126823A1 (en) Systems and methods for dynamic authentication and communication protection using an ephemeral shared data set
WO2020092886A1 (en) Systems and methods for device authentication and protection of communication on a system on chip
US20210218733A1 (en) Client Side OTP Generation Method
US20210218732A1 (en) Client Side OTP Generation Method
Moldamurat et al. Enhancing cryptographic protection, authentication, and authorization in cellular networks: a comprehensive research study.
CA2950955C (en) System and method for secure remote access