KR20210139344A - 데이터 기반 활동을 수행하는 방법 및 장치 - Google Patents

데이터 기반 활동을 수행하는 방법 및 장치 Download PDF

Info

Publication number
KR20210139344A
KR20210139344A KR1020217032854A KR20217032854A KR20210139344A KR 20210139344 A KR20210139344 A KR 20210139344A KR 1020217032854 A KR1020217032854 A KR 1020217032854A KR 20217032854 A KR20217032854 A KR 20217032854A KR 20210139344 A KR20210139344 A KR 20210139344A
Authority
KR
South Korea
Prior art keywords
data
network element
role
content
requesting network
Prior art date
Application number
KR1020217032854A
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 KR20210139344A publication Critical patent/KR20210139344A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6236Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database between heterogeneous systems
    • 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/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Storage Device Security (AREA)

Abstract

조정 네트워크 요소는 적어도 부분적으로 수신된 프로토콜 준수 요청의 기초가 되는 데이터 콘텐츠에 상기 조정 네트워크 요소가 실질적으로 액세스하는 것을 금지하는 프로토콜을 관리한다. 하나의 수법에 의해, 이러한 교시들은 토큰화된 형태로 상기 프로토콜 준수 요청 내에 포함된 데이터 정보에 대한 실질적인 액세스를 방지하는 것을 제공하며, 여기서 토큰은 비밀들을 사용하여 생성되며, 상기 비밀들 중 적어도 하나는 상기 조정 네트워크 요소에 이용 불가능하다.

Description

데이터 기반 활동을 수행하는 방법 및 장치
관련 출원들
본원은 2019년 3월 13일자 출원된 미국 임시출원 제62/818,014호, 2019년 3월 18일자 출원된 미국 임시출원 제62/820,151호, 2019년 3월 20일자 출원된 미국 임시출원 제62/821,021호, 2019년 8월 12일자 출원된 미국 임시출원 제62/885,729호, 2019년 11월 8일자 출원된 미국 임시출원 제62/932,730호, 및 2020년 3월 12일자 출원된 미국 임시출원 제62/988,760호를 기초로 우선권을 주장한 것이며, 상기 미국 임시출원들 각각은 전부 본원에 참조로 보완된다.
기술분야
이러한 교시들은 일반적으로는 데이터 액세스에 관한 것이며, 더 구체적으로는 개인 정보 보호에 관한 것이다.
현대의 데이터 통신 시스템들은 다양한 종류의 정보를 신속하고 신뢰성 있게 전송하는 데 능숙하다. 일부 경우들에서 이는 예를 들어 항로 정보(en-route information)를 암호화하는 암호화 기법들을 통한 다양한 종류의 정보의 보안 전송을 제공하는 것도 포함한다.
많은 경우, 이전의 정보 제공에는 정보의 원래 출처 또는 정보의 직접적인 출처를 식별하는 정보가 포함된다. 출처가 누구인지 아는 것이 일부 경우들에서 정보 자체의 진실성에 상응하는 신뢰를 하는 데 중요할 수 있다. 그러나 출처가 수신자에게 알려지지 않은 상태로 남아 있기를 원하는 경우가 있다. 선행 기술은 신원 정보의 은닉을 제공할 수 있지만, 그러한 수법들은 출처를 신뢰할 수 있는 근거가 없기 때문에 수신된 정보에 대해 신뢰를 희생시키면서 그 결과를 달성하는 경향이 있다.
따라서 현재의 데이터 통신 기술에는 정보 출처의 진실성을 수신자에게 보장하는 동시에 신원 정보를 보호하는 방법이 무엇인지과 같은 난제가 있다.
위 요구들은 특히 첨부도면들과 함께 살펴보면 이하의 상세한 설명에 기재되어 있는 데이터 기반 활동을 수행하기 위한 방법 및 장치의 제공을 통해 적어도 부분적으로 충족된다.
도 1은 이러한 교시들의 다양한 실시 예에 따라 구성된 블록도이다.
도 2는 이러한 교시들의 다양한 실시 예에 따라 구성된 흐름도이다.
도 3은 이러한 교시들의 다양한 실시 예에 따라 구성되며 참가자들을 증명자들 또는 요청자들로서 포함하는 제3자 관리 프로토콜을 통한 참가자들 간 블라인드 정보/데이터 교환 또는 확증의 개요를 보여주는 된 블록도이다.
도 4는 이러한 교시들의 다양한 실시 예에 따라 구성되며 증명 활동의 일부로서 예치(deposit)를 위하여 그리고 요청 활동의 일부로서 검색을 위하여 중계자들의 통신을 포함해 확증을 가능하게 하는 증명 및 요청을 보여주는 흐름도이다. 도 4에 도시된 전송들은 명시적으로 도시되지 않은, 후속적으로 복호화되는 암호화와 같은 오버레이를 포함할 수 있다.
도 5는 이러한 교시들의 다양한 실시 예에 따라 구성되며 도 4의 중계자들과 함께 사용하기 위해 참가자 클라이언트들에 대한 조정자 제공 인증들을 보여주는 흐름도이다. 도 5에 도시된 전송들은 명시적으로 도시되지 않은, 후속적으로 복호화되는 암호화와 같은 오버레이를 포함할 수 있다.
도 6은 이러한 교시들의 다양한 실시 예에 따라 구성되며 증명 활동의 일부로서 예치를 위하여 그리고 요청 활동의 일부로서 검색을 위하여 중계자들과의 통신을 포함해 데이터 전송을 가능하게 하기 위한 증명 및 요청을 보여주는 흐름도이다. 도 6에 도시된 전송들은 명시적으로 도시되지 않은, 후속적으로 복호화되는 암호화와 같은 오버레이를 포함할 수 있다.
도 7은 본 발명의 다양한 실시 예에 따라 구성되며 도 6의 중계자들과 함께 사용하기 위해 참가자 클라이언트들에 대한 조정자 제공 인증들을 보여주는 흐름도이다. 도 7에 도시된 전송들은 명시적으로 도시되지 않은, 후속적으로 복호화되는 암호화와 같은 오버레이를 포함할 수 있다.
도 8은 이러한 교시들의 다양한 실시 예에 따라 구성되며 서버(S)가 "위양성(false positive)") 또는 매치의 거짓 표시를 바르게 행동하는 참가자(P)에게 전달하기 위해 데이터 확증 프로토콜 버전의 부적절성을 악용하는 "위양성 경향(False-Positive-Prone) 프로토콜"을 보여주는 흐름도이다. 도 8에 도시된 전송들은 명시적으로 도시되지 않은, 후속적으로 복호화되는 암호화와 같은 오버레이를 포함할 수 있다.
도 9는 본 발명의 다양한 실시 예에 따라 구성되며 서버(S) 및 참가자(P) 모두가 예상대로 행동하게 하는 데이터 확증을 위한 "기본 프로토콜"을 보여주는 흐름도이다. 도 9에 도시된 전송들은 명시적으로 도시되지 않은, 후속적으로 복호화되는 암호화와 같은 오버레이를 포함할 수 있다.
도 10은 이러한 교시들의 다양한 실시 예에 따라 구성되며 참가자(P)가 서버(S)에 2명이 동일한 데이터 값 캡슐화를 공유함을 증명하는 데이터 확증을 위한 "후속 프로토콜, 옵션 1(Follow-On Protocol, Option 1)"을 보여주는 흐름도이다. 도 10에 도시된 전송들은 명시적으로 도시되지 않은 후속적으로 복호화되는 암호화와 같은 오버레이를 포함할 수 있다.
도 11은 이러한 교시들의 다양한 실시 예에 따라 구성되며 참가자(P)가 서버(S)에 자신의 데이터 값 캡슐화(c')를 공개하고 서버(S)가 c'의 진위를 확인하며 c'를 그 자체의 데이터 값 캡슐화(c)와 비교하는 데이터 확증을 위한 "후속 프로토콜, 옵션 2(Follow-On Protocol, Option 2)"를 보여주는 흐름도이다. 도 11에 도시된 전송들은 명시적으로 도시되지 않은 후속적으로 복호화되는 암호화와 같은 오버레이를 포함할 수 있다.
도 12(a), 도 12(b) 및 도 12(c)는 이러한 교시들의 다양한 실시 예에 따라 구성되며 토큰(TOKEN) 생성의 실시 예들을 보여주는 흐름도들이다. 도 12(a)는 2개의 백엔드에 의한 양방향 캐스케이드식 처리를 포함하며, 각각의 백엔드는 비밀 값을 이용하고 상기 비밀 값은 다른 비밀 값과 그리고 후속 번역기의 비밀 값과 구별된다. 도 12(b)는 2개의 백엔드에 의한 일-방향 캐스케이드식 처리를 포함하며, 각각의 벡엔드는 비밀 값을 이용하고 상기 비밀 값은 다른 비밀값과 그리고 후속 번역기의 비밀 값과 구별된다. 도 12(c)는 2개의 벡엔드에 의한 단독적인 독립 처리를 포함하며 상기 백엔드들은 후속 번역기와 구별되는 동일한 비밀 값을 이용한다. 도 12(a), 도 12(b) 및 도 12(c)에 도시된 전송들은 명시적으로 도시되지 않은 후속적으로 복호화되는 암호화와 같은 오버레이를 포함할 수 있다.
도 13은 이러한 교시들의 다양한 실시 예에 따라 구성되며 토큰 생성의 부가적인 실시 예를 보여주는 흐름도이고 이러한 토큰 생성의 부가적인 실시 예는 참가자에 의해 도입된 블라인드 인자가 차후에 변역기에 의해서라기보다는 오히려 참가자에 의해 제거된다는 점에서 도 12(a), 도 12(b) 및 도 12(c)의 토큰 생성의 실시 예들과는 다르다. 도 13에 도시된 전송들은 명시적으로 도시되지 않은 후속적으로 복호화되는 암호화와 같은 오버레이를 포함할 수 있다.
도 14는 이러한 교시들의 다양한 실시 예에 따라 구성되며 사기 속성 토큰(Fraud Attribute Token; FATOKEN) 생성의 실시 예를 보여주는 흐름도이다. 도 14에 도시된 전송들은 명시적으로 도시되지 않은 후속적으로 복호화되는 암호화와 같은 오버레이를 포함할 수 있다.
도 15는 이러한 교시들의 다양한 실시 예에 따라 구성된 흐름도이며 TOKEN 및 FATOKEN의 생성에 적합한 하이브리드 실시 예의 고수준의 개요를 보여준다. 도 15에 도시된 전송들은 명시적으로 도시되지 않은 후속적으로 복호화되는 암호화와 같은 오버레이를 포함할 수 있다.
도 16은 이러한 교시들의 다양한 실시 예에 따라 구성되며 타원 곡선 폴리그 헬만(Pohlig-Hellman) 암호 연산의 인스턴스의 통신 및 처리를 보여주는 흐름도이다.
도 17은 이러한 교시들의 다양한 실시 예에 따라 구성되며 일-방향 타원 곡선 폴리그 헬만 암호 연산의 인스턴스의 통신 및 처리를 보여주는 된 흐름도이다.
도 18은 이러한 교시들의 다양한 실시 예에 따라 구성되며 완전 타원 곡선 폴리그 헬만 암호 프로세스의 인스턴스의 통신 및 처리를 보여주는 흐름도이다.
도 19는 이러한 교시들의 다양한 실시 예에 따라 구성되며 원-패스(One-Pass) 타원 곡선 디피 헬만(Diffie-Hellman) 키 교환의 인스턴스의 통신 및 처리를 보여주는 흐름도이다.
도 20은 이러한 교시들의 다양한 실시 예에 따라 구성되며 타원 곡선 폴리그 헬만의 인스턴스 또는 원-패스 타원 곡선 디피 헬만의 수신자 측의 2-파티션 프로세서에 의한 통신 및 처리를 보여주는 흐름도이다.
도 21은 이러한 교시들의 다양한 실시 예에 따라 구성되며 타원 곡선 폴리그 헬만의 인스턴스 또는 원-패스 타원 곡선 디피 헬만의 수신자 측의 k-파티션 프로세서에 의한 통신 및 처리를 보여주는 흐름도이다.
도 22는 이러한 교시들의 다양한 실시 예에 따라 구성되며 각각의 프로세서가 파티션 쌍을 포함하는 백엔드 프로세서 유형의 다중 프로세서가 있는 경우 백엔드 키 생성을 보여주는 흐름도이다. 도 22는 개인키, 공개키 및 내부(다시 말하면, 상대 프로세서 파티션과 통신하는 프로세서 파티션) 해시 기반 메시지 인증 코드(hash-based message authentication code; HMAC) 키의 생성을 보여준다. 본 도면은 또한 번역기 프로세서 유형에 대한 키 생성을 유사하게 보여준다.
도 23은 이러한 교시들의 다양한 실시 예에 따라 구성되며 백엔드 또는 번역기에 의한 임의의 처리 전에 토큰을 요청할 때 참가자의 초기 프로세스를 보여주는 흐름도이다. 이는 폴리그 헬만 암호화 및 개시자의 원-패스 디피 헬만 단계들을 처리하기 위한 INFO의 모호함을 보여준다.
도 24는 이러한 교시들의 다양한 실시 예에 따라 구성되며 토큰화 프로세스에서 백엔드의 역할을 보여주는 흐름도이다. 이는 원-패스 디피 헬만의 수신자 측과 폴리그 헬만 프로세스의 백엔드 부분을 포함한다.
도 25는 이러한 교시들의 다양한 실시 예에 따라 구성되며 백엔드와 번역기에 의한 처리 간 참가자의 프로세스를 보여주는 흐름도이다. 이는 참가자의 폴리그 헬만 복호화 및 개시자의 원-패스 디피 헬만 단계들을 반영한다.
도 26은 이러한 교시들의 다양한 실시 예에 따라 구성되며 토큰화 프로세스에서 번역기의 역할을 보여주는 흐름도이다. 이는 원-패스 디피 헬만의 수신자 측과 번역기의 폴리그 헬만 프로세스 일부를 포함한다. 이러한 예에서, 이는 토큰 생성의 마지막 단계이다.
첨부도면들의 요소들은 간략화 및 명료화를 위해 예시된 것이며 반드시 축척에 맞게 그려진 것은 아니다. 예를 들어, 첨부도면들의 요소들 중 일부의 치수들 및/또는 상대적 위치는 본 교시들의 다양한 실시 예의 이해를 향상시키는데 도움을 주기 위해 다른 요소들에 비해 과장될 수 있다. 또한, 상업적으로 실현 가능한 실시 예에서 유용하거나 필요한 일반적이지만 잘 이해할 수 있는 요소들은 본 교시들의 이러한 다양한 실시 예들의 뷰를 덜 방해하기 위해 종종 도시되지 않는다. 특정 동작들 및/또는 단계들은 특정 발생 순서로 설명되거나 묘사될 수 있지만, 통상의 기술자는 시퀀스에 대한 이러한 특정성이 실제로 요구되지 않음을 이해할 것이다. 여기에서 사용된 용어들 및 표현들은 다른 특정한 의미가 여기에서 달리 기재된 경우를 제외하고는 상기 기재된 바와 같은 기술분야의 숙련자에 의해 그러한 용어들 및 표현들에 부여된 바와 같은 통상의 기술적 의미를 지닌다. 여기에서 사용되는 "또는"이라는 단어는 달리 특정하게 나타내지 않는 한 접속 구성이라기보다는 분리 구성을 지니는 것으로 해석되어야 한다.
상세한 설명
일반적으로 말하면, 이 같은 다양한 실시 예에 의하면, 조정 네트워크 요소는 적어도 부분적으로 수신된 프로토콜 준수 요청들의 기초가 되는 데이터 콘텐츠에 조정 네트워크 요소가 실질적으로 액세스하지 못하게 하는 프로토콜을 관리한다. 하나의 수법에 의해, 이러한 교시들은 토큰화된 형태로 상기 프로토콜 준수 요청 내에 포함된 데이터 정보에 대한 실질적인 액세스를 방지하는 것을 제공하며, 여기에서 토큰들은 비밀들을 사용하여 생성되며, 그 중 적어도 하나는 조정 네트워크 요소에 이용 가능하지 않다.
이러한 프로토콜 준수 요청들은 예를 들어, 증명자 역할 내에서 작용하는 네트워크 요소를 포함하는 요청 네트워크 요소로부터 또는 요청자 역할 내에서 작용하는 2차 네트워크 요소의 역할을 하는 요청 네트워크 요소로부터 수신될 수 있다. 프로토콜 준수 요청 자체는 예를 들어 참조 데이터 콘텐츠, 참조 데이터 유형, 참조 초기 데이터 소스, 및 초기 데이터 소스에 연관된 데이터 정보 중 적어도 하나를 포함하는 데이터 정보에 속할 수 있다.
하나의 수법에 의해, 상기 요청 네트워크 요소가 위에서 언급한 증명자 역할 내에서 작동하는 네트워크 요소일 때, 이러한 교시들은 적어도 부분적으로 그리고 앞서 언급한 프로토콜을 통해 상기 요청 네트워크 요소가 상기 요청 네트워크 요소를 통해 획득되는 데이터 기반 처리를 위해 비동기식으로 사용 가능하게 함을 승인하는 것을 용이하게 하는 것을 제공한다. 데이터가 간접 데이터로 공급되는 경우 그러한 공급은 초기 데이터 소스로부터 상기 요청 네트워크 요소에 의해 수신된 데이터로부터의 파생을 수반할 수 있다. 그러한 경우에 2차 네트워크 요소의 아이덴티티는 요청 네트워크 요소로부터 블라인드(blind)되고 그럼으로써 이와 관련하여 프라이버시(privacy)를 보호할 수 있게 된다.
하나의 수법에 의해, 위에서 언급한 승인은 적어도 부분적으로 중계자에게 증명자 역할 내에서 작동하는 요청 네트워크 요소가 콘텐츠를 중계자 액세스가능 저장소에 저장하도록 승인됨을 중계자들에게 알리는 검증 가능한 권한들을 생성하는 것을 포함할 수 있으며 상기 콘텐츠는 암호화 매개변수, 데이터, 및 데이터의 이전(transference) 및 확증(corroboration) 중 적어도 하나를 가능하게 하는 메타데이터 중 적어도 하나를 포함한다. 하나의 수법에 의해, 위에서 언급한 중계자 액세스가능 저장소 내 콘텐츠의 저장은 콘텐츠의 일부를 평문 형식 및 암호화된 형식 중 적어도 하나로 저장하는 것을 포함한다.
콘텐츠 자체는 예를 들어 복호화 토큰 및/또는 암호화 매개변수들 및 메타데이터로서의 역할을 할 수 있는 저장된 값들을 포함할 수 있다. 이러한 복호화 토큰은 증명자 역할 내에서 작동할 때 요청 네트워크 요소에 의해 생성된 암호문 및 암호화 매개변수 중 적어도 하나를 나타내는 역할을 할 수 있다. 위에서 언급한 암호화 매개변수 및 메타데이터는 비교 토큰을 구성하도록 데이터와 함께 적용될 수 있다. 이 경우, 증명자 역할 내에서 작동하는 요청 네트워크 요소에 의해 제공되는 처리 데이터의 결과를 나타내는 비교 토큰에 대한, 저장된 값을 사용하여 처리된 후보 데이터를 나타내는 비교 토큰의 매치가 존재하는지에 대한 결정이 내려질 수 있다.
위에서 언급한 결정은 요청자 역할 내에서 작동하는 요청 네트워크 요소에 의해 수신된 잘못된 응답으로 인해 비교 토큰의 매치가 존재하는 요청자 역할 내에서 작동하는 요청 네트워크 요소에 의해 잘못된 결정이 내려질 수 없도록, 다시 말하면 위양성이 회피되도록 구성될 수 있다. 위에서 언급한 결정은 요청자 역할 내에서 작동하는 요청 네트워크 요소에 의해 요청자 역할 내에서 작동하는 요청 네트워크 요소에 의해 생성된 비교 토큰의 함수에 적용되고 조정 네트워크 요소에 의해 요청자 역할 내에서 작동하는 요청 네트워크 요소에 응답할 때 증명자 역할 내에서 작동하는 요청 네트워크 요소들로부터 조정 네트워크 요소에 의해 수신된 비교 토큰에 적용되는 요청자 역할 내에서 작동하는 요청 네트워크 요소에 의해 공급되는 공개키로 가법 및 스칼라 승법 준동형(additive- and scalar multiplicative- homomorphism)을 지원하는 암호화를 더 이용할 수 있다.
다른 한 수법에 의해, 위에서 언급한 것 대신에 또는 그와 조합하여, 위에서 언급한 콘텐츠는 그러한 공유의 임계 개수가 콘텐츠의 재구성을 가능하게 하도록 공유의 집합을 포함할 수 있다. 하나의 수법에 의해 이러한 공유는 증명자 역할 내에서 작동하는 요청 네트워크 요소에 의해 복수의 중계자들 전반에 분배된다.
하나의 수법에 의해, 위에서 언급한 데이터 기반 처리는 증명된 데이터 콘텐츠의 이전 및 이전에 증명된 데이터 콘텐츠에 대한 데이터 콘텐츠의 확증 중 하나 이상을 포함할 수 있다. 위에서 언급한 데이터 콘텐츠의 확증은 요청자 역할 내에서 작동하는 요청 네트워크 요소로부터 데이터를 공급하는 것을 차례로, 그리고 적어도 부분적으로 포함할 수 있으며, 데이터가 간접 데이터로서 공급되는 경우, 그러한 공급은 초기 데이터 소스로부터 요청 네트워크 요소에 의해 수신된 데이터로부터의 파생을 수반한다. 요청자 역할 내에서 작동하는 요청 네트워크 요소가 간접 데이터로서 공급된 데이터를 사용할 때, 참조 초기 데이터 소스의 신원 및 초기 데이터 소스에 연관된 데이터 정보에서 파생된 임의의 토큰은 요청자 역할 또는 증명자 역할 내에서 작동하는 다른 네트워크 요소에서 실질적으로 액세스할 수 없게 될 수 있다.
다른 한 수법에 의해, 그리고 다시 위에서 언급한 것 대신에 또는 이와 조합하여, 요청 네트워크 요소가 요청자 역할 내에서 작동하는 2차 네트워크 요소일 때, 이러한 교시들은 적어도 부분적으로 그리고 위에서 언급한 프로토콜을 통해, 다른 한 요청 네트워크 요소로부터 이전에 공급된 데이터를 처리하도록 하는 2차 네트워크 요소의 승인을 용이하게 하는 것을 제공한다. 이 경우에, 이러한 교시들은 2차 네트워크 요소로부터 다른 한 요청 네트워크 요소의 신원을 블라인드하고 그럼으로써 전자의 프라이버시를 보호하는 것을 제공할 수 있다. 위에서 언급한 승인은 특히 데이터를 처리하기 위한 2차 네트워크 요소의 위에서 언급한 승인의 일부로서 고려대상으로부터 제거하는 효과를 지니기 위해 요청 네트워크 요소가 증명자 역할 내에서 작동하는 것으로 관련된 하나 이상의 이전 증명을 요청 네트워크 요소를 대신하여 철회함을 승인하는 것을 포함할 수 있다.
하나의 수법에 의해, 위에서 언급한 승인은 요청자 역할 내에서 작동하는 요청 네트워크 요소가 중계자 액세스가능 저장소로부터 평문 형식 및 암호화된 형식으로 암호화 매개변수, 데이터 및 메타데이터 중 적어도 하나를 포함하는 콘텐츠를 검색하도록 승인됨을 적어도 하나의 중계자에서 알리는 검증 가능한 권한의 생성을 포함할 수 있다.
토큰화된 형태의 프로토콜 준수 요청 내에 포함된 데이터 정보에 대한 실질적인 액세스를 방지하는 것 - 토큰은 적어도 하나의 비밀이 다른 한 수법에 의해, 그리고 다시 위에서 언급한 것 대신에 또는 이와 조합하여 조정 네트워크 요소가 이용할 수 없는 비밀을 사용하여 생성됨 - 과 관련하여, 비밀은 별개 유형의 복수 개의 프로세서들에서 분리해 유지될 수 있으며, 각각의 유형의 적어도 하나의 프로세서는 토큰 생성에 관여된다. 바람직하게는, 적어도 하나의 프로세서 유형은 조정 네트워크 요소에 의해 제어되거나 실질적으로 액세스할 수 없다. 토큰을 생성하기 위해 집합적으로 사용되는 이러한 비밀 각각은 개별 유형의 복수 개의 프로세서들 각각에 의해 독립적으로 생성되거나 관련 프로세서 유형을 포함하는 복수 개의 프로세서들에 걸친 설정 동안 배포될 수 있으며, 후자의 메커니즘은 로드 밸런싱 및 운영 복구를 가능하게 하도록 각각의 유형의 프로세서들의 다중 복제를 확립하는 것과 일치한다.
하나의 사용 용례는 초기 데이터 소스에 연관된 데이터 정보의 토큰화이며, 토큰 생성 요청은 위에서 언급한 초기 데이터 소스에 의해 데이터가 공급되는 요청 네트워크 요소에 의해 시작된다. 그러한 토큰은 조정 네트워크 요소가 요청자 역할 내에서 작동하는 네트워크 요소에 응답할 때 증명자 역할 내에서 작동하는 네트워크 요소에 의해 완료된 이전 증명에 관한 정보를 조회할 수 있게 하는 데 사용될 수 있으며, 그러한 토큰은 초기 데이터 소스에 연관된 데이터 정보로서 병합된다. 경우에 따라 그러한 토큰은 초기 데이터 소스에 대한 참조의 역할을 할 수 있다.
다른 하나의 사용 용례는 확증을 위해 데이터 콘텐츠를 참조할 목적으로 데이터 콘텐츠를 토큰화하는 것이다. 이러한 사용 용례에서 증명자 역할 내에서 작동하는 요청 네트워크 요소를 승인하는 것은 요청 네트워크 요소 또는 데이터 콘텐츠의 대표자로서 프록시에 의해 제출된 토큰의 조정 네트워크 요소에 의한 승인을 적어도 부분적으로 수반한다. 이러한 프록시는 토큰 생성에 관련된 프로세서일 수 있다. 또한, 이러한 사용 용례에서 요청자 역할 내에서 작동하는 요청 네트워크 요소를 승인하는 것은 요청자 역할 내에서 작동하는 요청 네트워크 요소에 의한 승인 또는 조정 네트워크 요소가 증명자 역할 내에서 작동하는 요청 네트워크 요소에 의해 제출된 것으로 이전에 수락된 보유 토큰의 값을 비교하는 데이터 콘텐츠의 대표자로서의 프록시에 의한 승인을 적어도 부분적으로 수반한다. 이러한 프록시는 토큰 생성에 관련된 프로세서일 수 있다.
또한, 토큰 생성 요청이 위에서 언급한 초기 데이터 소스에 의해 데이터가 공급되는 요청 네트워크 요소에 의해 개시되는 초기 데이터 소스에 관련된 데이터 정보의 토큰화와 관련하여, 증명자 역할 또는 요청자 역할의 전제 조건으로서 또는 증명자 역할 또는 요청자 역할 내에서 이미 작동하는 동안, 요청 네트워크 요소는 제1 프로세서 유형의 제1 프로세서 또는 제1 프로세서 유형의 제1 프로세서로서 집합적으로 지정된 서브-프로세서들의 조합에 의해 토큰 생성 작동을 연속적으로 요청할 수 있으며, 그 다음 별도로 주소지정 가능한 제2 프로세서 유형의 제2 프로세서 또는 제2 프로세서 유형의 제2 프로세서로서 집합적으로 지정된 서브-프로세서들의 조합에 의해 토큰 생성 작동을 연속적으로 요청할 수 있고, 그럼으로써 제 1 프로세서에 대해 이루어진 요청 내 데이터 정보가 요청 네트워크 요소의 블라인딩 인자(blinding factor) 도입에 의해 제1 프로세서로부터 블라인드된다. 또한, 제1 비밀에 대한 집합적 액세스에 기초하여 제1 프로세서에 의해 취해진 작동은 요청 네트워크 요소에 의한 실질적인 액세스로부터 블라인드된 토큰 값을 초래할 수 있는 제2 비밀에 대한 집합적 액세스에 기초하여 제2 프로세서에 의해 취해질 요청 작동 이전에 요청 네트워크 요소가 제1 프로세서에 의한 작동의 결과로부터 요청 네트워크 요소의 이전에 도입된 블라인드 인자를 제거한 후에도 제2 프로세서로부터 데이터 정보를 블라인드하는 역할을 할 수 있다. 제1 비밀 및 제2 비밀은 이전에 생성된 토큰의 유용성을 부정하지 않고 새로운 제1 비밀 및 새로운 제2 비밀로 업데이트될 수 있으며, 바람직하게 무작위로 생성된 수정자(modifier) 또는 승수(multiplier)는 제1 프로세서에 의해 제1 비밀에 적용되고 적절하게 계산된 수정자 또는 승수의 역은 제2 프로세서에 의해 제2 비밀에 적용된다. 서로 독립적으로 고려되는 제1 프로세서 및 제2 프로세서와 관련하여, 제1 프로세서가 2개 이상의 서브-프로세서의 조합으로 구성되는 경우, 제1 프로세서의 이러한 서브-프로세서들은 각각 제1 비밀을 수정하지 않고 제1 프로세서가 집합적으로 액세스할 수 있는 상기 서브-프로세서들이 보유한 제1 비밀의 구성요소 또는 구성요소들을 업데이트할 수 있다. 마찬가지로, 서로 독립적으로 고려되는 제1 프로세서 및 제2 프로세서와 관련하여, 제2 프로세서가 2개 이상의 서브-프로세서의 조합으로 구성되는 경우, 제2 프로세서의 이러한 서브-프로세서들은 각각 제2 비밀을 수정하지 않고 제2 프로세서가 집합적으로 액세스할 수 있는 상기 부분-프로세서들이 보유한 구성요소 또는 구성요소들을 업데이트할 수 있다.
또한, 확증을 위해 데이터 콘텐츠를 참조할 목적으로 데이터 콘텐츠를 토큰화하는 것과 관련하여 그리고 적절한 블라인딩을 달성하기 위해, 토큰 생성 방법은 한 세트의 토큰 값에 대한 액세스 및 상기 토큰 값의 생성에 대한 프로세서들의 기여를 고려해 볼 때 비록 토큰을 생성하기 위해 집합적으로 사용되는 프로세서 비밀들 모두에 대한 액세스가 주어진다 하더라도 프로세서들 각각의 기여가 한 세트의 토큰 값 내 어떤 토큰 값에 매핑되는지를 구별하는 것은 계산적으로 집합 내에서 토큰을 생성하기 위해 집합적으로 사용되는 모든 프로세서 비밀에 대한 액세스 권한이 부여되더라도 각 프로세서의 기여가 집합 내에서 어떤 토큰 값에 매핑되는지 구별하는 것은 계산적으로 실현 불가능하다.
이렇게 구성된 이러한 교시들은 정보 소스들 중 하나 이상의 정보 소스들의 신원을 보호하는 동시에 해당 소스와 관련하여 정보 수신자를 안심시킬 수 있는 수법을 통해 정보 제공(및/또는 정보 확증)을 허용하기 위한 견고한 기반을 제공한다. 그러므로 이러한 교시들은 전형적으로 이용 가능한 데이터 통신 기술에 대한 개선을 포함하는 것으로 이해될 것이다. 이러한 교시들 및 그들의 대응하는 이점은 여러 다양한 상이한 애플리케이션 설정에 적용될 수 있다는 것이 추가로 이해될 것이다. 일부 관련 예들은 의료 서비스 제공 및 의료 기록의 해당 사용, 의약품 처리 및 조제, 위치 및/또는 상태별 모니터링(예를 들어 주변 및/또는 환경 조건과 아울러 질병 관련 지표의 모니터링), 대-테러 활동을 포함한 보안 관련 데이터의 플랫폼 간 그리고/또는 기관/지점 간 교환, 신용 및 대출 처리를 포함하지만 이에 국한되지 않는 경제/재정 관련 목적, 사기 검출 등을 포함하지만, 이들에 국한되지 않는다. 이와 관련하여 통상의 기술자는 다양한 소위 사물 인터넷 장치 및 서비스 중 어느 하나를 포함하는 애플리케이션 설정에서의 사용을 수용하기 위한 이러한 교시들의 준비된 능력을 더 이해할 것이다.
이하의 상세한 설명을 철저히 검토하고 연구하면 이러한 이점과 기타 이점이 더 명확해질 수 있다. 지금부터 첨부도면들, 특히 도 1을 참조하면, 이러한 교시들 대부분과 호환되는 대표적인 장치(100)가 지금부터 제시될 것이다.
이러한 특정 예에서, 인에이블링 장치(100)는 조정 네트워크 요소(101)를 포함한다. 이러한 조정 네트워크 요소는 대응하는 네트워크(105)를 통해 데이터 기반 활동을 수행하도록 구성된다. 여기에서 더 자세히 설명되겠지만, 이러한 조정 네트워크 요소(101)는 적어도 부분적으로 수신된 프로토콜 준수 요청의 기초가 되는 데이터 콘텐츠에 조정 네트워크 요소(101)가 실질적으로 액세스하는 것을 금지하는 프로토콜을 관리한다.
이러한 대표적인 예에서 조정 네트워크 요소(101)는 "회로"인 제어 회로(102)를 포함한다. 그러므로 제어 회로(102)는 순서대로 전기를 전달하는 적어도 하나의 (그리고 전형적으로 많은) 전기 전도성 경로(예컨대, 구리 또는 은과 같은 전도성 금속으로 구성된 경로)를 지니는 구조를 포함하며, 이러한 경로(들)는 또한 전형적으로 회로가 이러한 교시들의 제어 측면에 영향을 미칠 수 있게 하는 해당 전기 구성요소들(해당되는 경우 수동(예컨대, 저항기 및 커패시터) 및 능동(예컨대, 다양한 반도체 기반 장치))를 포함하게 되다.
이러한 제어 회로(102)는 고정 목적의 고정 배선 하드웨어 플랫폼((범용 용도로 의도된 것이라기보다는 전용 용도를 위해 설계에 의해 맞춤화된 집적회로인) 주문형 집적회로(application-specific integrated circuit; ASIC), FPGA(field-programmable gate array) 등을 포함하지만 이에 국한되지 않음)을 포함할 수도 있고 부분적으로나 또는 전체적으로 프로그램가능 하드웨어 플랫폼(마이크로컨트롤러, 마이크로프로세서 등을 포함하지만 이에 국한되지 않음)을 포함할 수도 있다. 이 같은 구조에 대한 이러한 아키텍처 옵션은 당업계에 잘 알려져 있고 이해되고 있으므로 여기에서 더 이상의 설명은 필요하지 않다. 이러한 제어 회로(102)는 (예를 들어, 통상의 기술자에 의해 잘 이해되겠지만 해당 프로그래밍을 사용함으로써) 여기에서 설명되는 단계들, 작동들, 및/또는 기능들 중 하나 이상을 수행하도록 구성된다.
하나의 선택적인 수법에 의해 제어 회로(102)는 메모리(103)에 동작 가능하게 연결된다. 이러한 메모리(103)는 제어 회로(102)에 통합될 수도 있고 필요하면 제어 회로(102)로부터 물리적으로 (전체적으로나 또는 부분적으로) 분리될 수도 있다. 이러한 메모리(103)는 또한 제어 회로(102)에 대해 국부 위치에 있을 수도 있고 (예를 들어 양자 모두 공통 회로 기판, 새시, 전원 공급 장치 및/또는 하우징을 공유함) 제어 회로(102)에 대해 부분적으로 또는 전체적으로 원격 위치에 있을 수도 있다 (예를 들어, 메모리(103)는 제어 회로(102)와 비교하여 물리적으로 다른 시설, 대도시 지역 또는 심지어 국가에 위치하게 됨).
여기에 설명되겠지만 다른 정보를 저장하는 것 외에도, 이러한 메모리(103)는 예를 들어 제어 회로(102)에 의해 실행될 때 제어 회로(102)로 하여금 여기에 설명되는 바와 같이 동작하게 하는 컴퓨터 명령어들을 비-일시적으로 저장하는 역할을 할 수 있다 (여기에서 사용되는 "비-일시적으로"에 대한 이러한 언급은 저장 매체 자체의 휘발성보다는 오히려 저장된 콘텐츠에 대한 비-임시적 상태(결과적으로는 저장된 콘텐츠가 단순히 신호 또는 파를 구성하는 경우를 제외함)를 의미하는 것으로 이해될 것이며 결과적으로는 비휘발성 메모리(예컨대, 판독 전용 메모리(ROM)) 및 휘발성 메모리(예컨대, 동적 랜덤 액세스 메모리(DRAM))를 모두 포함한다.
이러한 예에서 제어 회로(102)는 또한 네트워크 인터페이스(104)에 작동 가능하게 연결된다. 그렇게 구성된 제어 회로(102)는 네트워크 인터페이스(104)를 통해 (장치(100) 내부 및 장치 외부 모두의) 다른 요소들과 통신할 수 있다. 더 구체적으로는, 네트워크 인터페이스(104)는 하나 이상의 네트워크(105)를 통한 호환 가능한 통신을 용이하게 한다. 다수의 예가 당업계에 공지되어 있다. 불완전한 리스팅에는 USB(Universal Serial Bus) 기반 인터페이스, RS232 기반 인터페이스, IEEE 1394(Firewire라고도 함) 기반 인터페이스, 이더넷 기반 인터페이스, 다양한 소위 Wi-FiTM 기반 무선 인터페이스 중 어느 하나, BluetoothTM 기반 무선 인터페이스, 셀룰러 전화 기반 무선 인터페이스, NFC(Near Field Communications) 기반 무선 인터페이스, 표준 전화 지상 통신선 기반 인터페이스, 케이블 모뎀 기반 인터페이스 및 DSL(digital subscriber line) 기반 인터페이스가 포함되게 된다. 이러한 인터페이스는 제어 회로(102)를 다른 한 네트워크 요소, 근거리 통신 네트워크, 또는 임의의 다양한 광역 통신 네트워크 또는 익스트라넷(예를 들어, 인터넷과 같지만 이에 국한되지 않음)에 통신 가능하게 연결하기 위해 선택적으로 채용될 수 있다.
이하의 설명과 관련하여, 그렇게 구성된 조정 네트워크 요소(101)는 위에서 언급한 프로토콜을 통해 복수 개의 네트워크 요소(106)들(도 1에서 제1 네트워크 요소 내지 제N 네트워크 요소로서 예시됨) 중 어느 하나와 호환 가능하게 통신할 수 있다. 이하에서 더 자세히 설명되겠지만, 이러한 네트워크 요소(106)는 소위 증명자 역할 내에서 작동할 수도 있고 소위 요청자 역할 내에서 작동하는 2차 네트워크 요소로서 작동할 수도 있다.
주어진 애플리케이션 설정에서 데이터 기반 활동을 수행하는 데 관여할 수 있는 다른 장치들은 증명자 또는 요청자로서 작동하지 않는 데이터 소스(107) 및/또는 하나 이상의 소위 중계자(108)들과 같은 요소들을 포함한다.
지금부터 도 2를 참조하면, 위에서 언급한 조정 네트워크 요소(101)는 대표적인 예를 위해 예시된 프로세스(200)를 수행하는 것으로 가정되게 된다. 하나의 수법에 의해, 위에서 언급한 제어 회로(102)는 설명한 작동, 활동 및 기능을 수행한다. 또한, 위에서 설명한 바와 같이, 조정 네트워크 요소(101)는 이러한 프로세스(200)를 수행하면서 무엇보다도 적어도 부분적으로 여기에서 설명한 프로토콜 준수 요청의 기초가 되는 데이터 콘텐츠에 조정 네트워크 요소(101)가 실질적으로 액세스하는 것을 금지하는 프로토콜을 관리하게 된다.
블록(202)에서, 조정 네트워크 요소(101)는 위에서 설명한 네트워크(105)를 통해 데이터 정보에 관한 프로토콜 준수 요청을 수신한다. 이러한 프로토콜 준수 요청은 단일 개별 메시지 내에 포함될 수도 있고 원하는 경우 복수 개의 개별 메시지들을 포함할 수도 있다. 이러한 프로토콜 준수 요청은 증명자 역할 내에서 작동하거나 요청자 역할 내에서 작동하는 2차 네트워크 요소로서 작동하는 요청 네트워크 요소(106)로부터 수신된다. 프로토콜 준수 요청에 상응하는 데이터 정보는 다양한 데이터 항목을 구성하거나 구성할 수 있다. 예들에는 참조 데이터 콘텐츠, 참조 데이터 유형, 초기 데이터 소스에 대한 참조, 및 초기 데이터 소스(107)에 연관된 데이터 정보가 포함되지만 이들에 국한되지 않는다.
블록(203)에서 조정 네트워크 요소(101)는 요청 네트워크 요소(106)가 증명자 역할 내에서 작동하는 네트워크 요소인지 여부를 결정한다. 참일 경우, 블록(204)에서 조정 네트워크 요소(101)는 적어도 부분적으로 위에서 언급한 프로토콜을 통해 요청 네트워크 요소가 요청 네트워크 요소를 통해 공급된 데이터 기반 처리 데이터에 대해 비동기식으로 이용 가능한 것을 승인하는 것을 용이하게 한다. 이러한 예에서 데이터는 간접 데이터로서 공급되고 초기 데이터 소스(107)로부터 요청 네트워크 요소에 의해 수신된 데이터로부터의 파생을 수반한다.
중요한 점으로는, 그리고 위에서 언급한 프로토콜에 따라, 이와 관련하여 요청자 역할 내에서 작동하는 해당 2차 네트워크 요소의 신원은 요청 네트워크 요소로부터 블라인드된다.
블록(206)에서, 다른 한 요청 네트워크 요소로부터 이전에 공급된 데이터를 처리하기 위해 요청자 역할 내에서 작용하는 2차 요청 네트워크 요소의 승인은 적어도 부분적으로, 요청자 역할 내에서 작동하는 요청 네트워크 요소가 중계자 액세스가능 저장소로부터 평문 또는 암호화된 형식으로 암호화 매개변수, 데이터 및 메타데이터 중 적어도 하나를 포함하는 콘텐츠를 검색하도록 승인됨을 적어도 하나의 중계자에게 알리는 검증 가능한 권한들을 생성하는 것을 포함할 수 있다.
증명자 역할 내에서 작용하는 요청 네트워크 요소를 통해 공급된 데이터를 데이터 기반 처리에 비동기식으로 이용 가능하도록 하는 요청 네트워크 요소의 블록(204)에서의 위에서 언급한 승인은 적어도 부분적으로 중계자들(108)에게 증명자 역할 내에서 작동하는 요청 네트워크 요소가 암호화 매개변수, 데이터, 및 데이터의 이전(transference) 및 확증(corroboration) 중 적어도 하나를 가능하게 하는 메타데이터 중 적어도 하나를 포함하는 중계자 액세스가능 저장소에 콘텐츠를 저장하도록 승인된다(이러한 교시들은 콘텐츠의 적어도 일부를 평문 형식 및 암호화된 형식 중 적어도 하나로 저장함으로써 중계자 액세스가능 저장소에 위에서 언급한 콘텐츠를 저장하는 것을 수용하게 된다).
하나의 수법에 의해, 위에서 언급한 콘텐츠는 복호화 토큰들 중 적어도 하나 및 암호화 파라미터들 및/또는 메타데이터 중 적어도 하나의 역할을 하도록 구성된 저장 값들을 포함한다. 위에서 언급한 복호화 토큰들은 하나의 수법에 의해 증명자 역할 내에서 작동하는 요청 네트워크 요소에 의해 생성된 암호문 및 암호화 매개변수들 중 적어도 하나를 나타낼 수 있다. 여기서 유념할 점은 이러한 교시들에 의하면, 조정 네트워크 요소(101)가 토큰화된 형태로 프로토콜 준수 요청 내에 포함된 데이터 정보에 실질적으로 액세스하는 것이 금지되고 결과적으로는 실질적으로 액세스할 수 없다는 것이며 여기서 복호화 토큰들은 적어도 하나의 비밀이 조정 네트워크 요소(101)에 이용할 수 없는 비밀들을 사용하여 생성된다. 예를 들어, 그러한 이용 가능하지 않음은 하나 이상의 중계자(108)의 저장소에 대한 조정 네트워크 요소(101)에 의한 실질적인 액세스 불가능성 때문일 수 있다.
위에서 언급한 암호화 매개변수들 및 메타데이터는 다시 증명자 역할 내에서 작동하는 요청 네트워크 요소에 의해 기여되는 처리 데이터의 결과를 나타내는 비교 토큰들에 대한 저장 값을 사용하여 처리된 후보 데이터를 나타내는 비교 토큰들의 매치(match)가 존재하는지에 관한 결정이 내려질 수 있도록 비교 토큰들을 구성하기 위해 데이터와 함께 적용될 수 있다. 여기서 유념할 수 있는 점은 이러한 교시들에 의하면, 조정 네트워크 요소(101)가 토큰화된 형태로 프로토콜 준수 요청 내에 포함된 데이터 정보에 실질적으로 액세스하는 것이 금지되고 결과적으로는 실질적으로 액세스할 수 없다는 것이며 여기서 비교 토큰들은 적어도 하나의 비밀이 조정 네트워크 요소(101)에 이용 가능하지 않는 비밀들을 사용하여 생성된다. 예를 들어, 그러한 이용 가능하지 않음은 하나 이상의 중계자(108)들의 저장소에 대한 조정 네트워크 요소(101)에 의한 실질적인 액세스 불가능성 때문일 수 있다.
하나의 수법에 의해, 위에서 언급한 콘텐츠는 그러한 공유들의 임계 개수가 콘텐츠의 재구성을 가능하게 하도록 하는 공유의 집합을 포함할 수 있다. 하나의 수법에 의해 상기 공유들은 증명자 역할 내에서 작동하는 요청 네트워크 요소에 의해 복수의 중계자(108)들에 걸쳐 분배된다.
위에서 주지한 바와 같이, 조정 네트워크 요소(101)는 증명자 역할 내에서 작동하는 요청 네트워크 요소가 요청 네트워크 요소를 통해 공급된 데이터 기반 처리 데이터에 대해 비동기식으로 이용 가능하게 하는 것을 승인할 수 있다. 하나의 수법에 의해, 그러한 데이터 기반 처리는 증명된 데이터 콘텐츠의 이전 및 이전에 증명된 데이터 콘텐츠에 대한 데이터 콘텐츠의 확증 중 적어도 하나를 포함할 수 있다. 이전에 증명된 데이터 콘텐츠에 대한 데이터 콘텐츠의 확증은 다시 요청자 역할 내에서 작동하는 요청 네트워크 요소로부터 데이터를 공급하는 것을 적어도 부분적으로 포함할 수 있으며, 데이터가 간접 데이터로서 공급될 때 그러한 공급은 초기 데이터 소스(107)로부터 요청 네트워크 요소에 의해 수신된 데이터로부터의 파생을 수반한다.
블록(203)에서 내리진 결정이 거짓일 때, 블록(205)에서 조정 네트워크 요소(101)는 요청 네트워크 요소가 요청자 역할 내에서 작용하는 2차 네트워크 요소인지 여부를 결정한다. 그러한 경우가 아닐 때, 이러한 프로세스(200)는 필요에 따라 임의의 다양한 응답을 수용할 수 있다. 이와 관련하여 일 예로서, 이러한 프로세스(200)는 이러한 프로세스(200)의 시작 부분으로 복귀하고 그럼으로써 차후에 수신된 다른 한 프로토콜 준수 요청을 처리하는 것을 수용하게 된다.
참일 경우, 블록(206)에서 이러한 프로세스(200)는 위에서 언급한 프로토콜을 통해 적어도 부분적으로 2차 네트워크 요소가 다른 한 요청 네트워크 요소로부터 이전에 공급된 데이터를 처리하도록 하는 승인을 용이하게 하는 것을 제공한다. 이러한 승인은 요청자 역할 내에서 작동하는 요청 네트워크 요소가 적절한 경우 평문 또는 암호화된 형식으로 중계자 액세스가능 저장소로부터 암호화 매개변수, 데이터 및 메타데이터 중 적어도 하나를 포함하는 콘텐츠를 검색하도록 승인됨을 적어도 하나의 중계자(108)에서 알리는 검증 가능한 권한의 생성을 포함할 수 있다.
중요하게는 그리고 다시, 다른 한 요청 네트워크 요소의 신원은 2차 네트워크 요소로부터 블라인드된다.
이렇게 구성된 다양한 데이터 유형에 관한 다양한 엔티티로부터의 요청들은 이러한 활동들에 참여하는 다양한 엔티티의 신원들을 반드시 공개하지 않고서도 공유 및/또는 증명될 수 있다. 이러한 블라인딩은 이러한 정보 공유를 용이하게 하는 조정 네트워크 요소(101)를 포함한다.
지금부터 다양한 전형적인 애플리케이션 설정 및 구현 세부사항이 제시될 것이다. 여기서 이해해야 할 점은 이러한 설명들에 제공된 특정 세부사항이 예시 목적을 제공하도록 의도된 것이며 이러한 교시들의 적용을 제한하는 제한적인 예들로서 취해져서는 안 된다는 것이다.
지금부터 도 3을 참조하면, 참가자 P1(310)은 엔티티 Ei(320)로부터 공급된 데이터를 획득하고 증명자 역할 내에서의 작동은 이러한 소스 데이터로부터 파생된 데이터의 증명을 시스템에 제공하기 위해 제3자 관리 프로토콜(350)을 이용한다. 이러한 파생은 소스 데이터의 정규화를 포함할 수 있다. 이러한 증명에는 데이터 유형이 포함될 수 있다. 그러한 증명은 사회 보장 번호 및 생년월일과 같은 엔티티 Ei(320)를 식별하는 정보를 포함할 수 있는 엔티티 Ei(320)에 연관되거나 관련된 정보의 표현을 포함할 수 있다. 그러한 표현은 프로토콜(350) 결과적으로는 프로토콜(350)을 실행하는 서버 또는 서버들에 결과적으로 불투명한 블라인드 엔티티 관련 정보의 형태일 수 있다. 이러한 표현은 가능하면 데이터 유형과 함께 소스 데이터를 분류하는 메커니즘으로서 사용될 수 있다. 프로토콜(350)을 실행하는 서버 또는 서버들은 여러 당사자 또는 회사에 걸쳐 그들의 관리/소유권이 분배될 수 있다. 따라서 프로토콜(350)에 의한 액세스로부터 블라인드하는 효과는 담합 또는 타협 활동에 대한 실질적인 제한에 의존할 수 있다.
사기 속성 레지스트리(fraud attributes registry)와 같은 특정 사용 용례에서, 증명에는 블라인드되거나 또는 블라인드되지 않은 엔티티 관련 정보가 포함되지 않는다. 이는 그러한 증명이 요청자로 하여금 차후에 그러한 데이터를 증명한 시스템 참가자들에게 데이터를 공급한 모든 엔티티에 걸쳐 데이터를 확증하거나 매치시킬 수 있게 하는데 사용되기 때문일 수 있다. 그러한 엔티티들은 사기를 치는 사람이거나 사기꾼일 수 있다. 이러한 데이터는 부분적으로 또는 전체적으로 합성될 수도 있고 합법적인 데이터와 위조되거나 남용된 데이터의 조합을 포함할 수도 있거나, 또는 그러한 데이터 또는 그러한 엔티티는 증명하는 참가자가 사기를 치거나 또는 기타 부적절한 것으로 의심을 받을 수 있다.
게시(post)된 증명을 통해 이전 또는 확증에 이용 가능한 데이터는 프로토콜(350)에 대해 불투명한 블라인드 데이터의 형태로 표시될 수 있다. 요청자 역할 내에서 작동하는 참가자 P2(330)는 증명된 데이터의 이전을 수신하거나 참가자 P2(330)가 엔티티 Ej(340)로부터 획득한 데이터로부터 파생된 데이터를 확증하려고 시도하기 위해 프로토콜(350)을 이용한다. 이러한 증명에는 데이터 유형이 포함될 수 있다. 그러한 증명은 엔티티 Ej(340)에 연관되거나 관련된 정보의 표현을 포함할 수 있으며, 이러한 표현은 블라인드될 수 있다. 바람직하게는, 요청 참가자 P2(330)와 증명 참가자 P1(310)은 서로의 진정한 또는 심지어는 그들의 가명 신원(pseudonymous identity)을 인식하지 못한다. 바람직하게는, 참가자 P1(310)은 심지어 엔티티 Ej(340)가 엔티티 Ei(320)와 동일하더라도 적어도 일부 잠재적 시스템 강제 지연 이전에 엔티티 Ej(340)를 인식하지 못한다. 이러한 지연은 예를 들어 시간, 주기성 또는 거래량으로 측정될 수 있다.
지금부터 도 4를 참조하면, 그리고 필요에 따라 도 5를 참조하면, 상반부에는 참가자에 의해서나 또는 한 명 이상의 참가자를 대신하여 운영되는 컴퓨터, 소프트웨어 및/또는 하드웨어(예컨대, 제3자 관리 프로토콜을 실행하는 하나 이상의 서버들에 대한 클라이언트 게이트웨이)로서 클라이언트(410)(C)를 포함하는 증명 작동 시퀀스가 도시되어 있다. 하반부에는 참가자에 의해서나 또는 한 명 이상의 참가자를 대신하여 운영되는 컴퓨터, 소프트웨어 및/또는 하드웨어(예컨대, 제3자 관리 프로토콜을 관리하는 하나 이상의 서버들에 대한 클라이언트 게이트웨이)로서 클라이언트(455)(C')를 포함하는 요청 작동 시퀀스가 도시되어 있다. 한 세트의 중계자(415)들은 증명 및 증명에 대한 요청에 걸쳐 공용(共用)하게 된다. 중계자 저장소로의 데이터 또는 정보 기탁 또는 중계자 저장소로부터의 데이터 또는 정보 검색은 다수의 중계자(415)에 걸쳐 각각 클라이언트(410) 또는 클라이언트(455)를 포함하는 통신을 수반할 수 있다.
증명: 데이터 소스(405)는 한 세트의 데이터(420)를 클라이언트(410)에 제공한다. 클라이언트(410)는 참조번호 425에서 random으로서 표시된 값을 랜덤하게 또는 의사-랜덤하게 생성하고, 참조번호 430에서 이를 가능하다면 메타데이터와 같은 다른 매개변수들과 함께 분할하고, 결과적으로 획득된 분할을 중계자(415)에게 전송한다. 관련된 각각의 중계자가 자신에게로 전송된 분할(들)을 수락하기 위한 전제조건으로서, 그러한 중계자는 도 5의 참조번호 535에서 클라이언트(410)가 이용할 수 있는 적절한 승인을 요구할 수 있다. 참조번호 430에서, 클라이언트(410)는 DATA 및 random의 함수(f)를 계산하며, 여기서 random은 참조번호 425에서 생성된 바람직하게는 랜덤하거나 의사-랜덤하게 생성된 값을 나타낸다. 예를 들어, DATA는 random과 연결될 수 있으며 그리고 나서 일-방향 해시 함수가 상기 결과에 적용될 수 있다. 다른 일 예로, HMAC 기능을 DATA에 인수로서 적용한 HMAC 키로서 random이 사용될 수 있다. HMAC 대신에 다른 키 해시 함수들이 사용될 수 있다. 함수(f)는 DATA에 적용되는 정규화 함수를 통합할 수 있다. 이러한 정규화는 증명에 대한 요청을 통해 데이터를 확증하거나 매치시키려고 할 때 위음성(false negative)을 회피하기 위해 유용할 수 있다. 함수(f)는 메타데이터와 같은 DATA 및 random 외에 인수를 병합할 수 있다. 참조번호 430에서의 계산의 결과는 도 5의 전송(515)의 적어도 일부를 형성하기 위해 참조번호 440으로서 도 5의 조정자(510)에게 전송된다.
요청: 데이터 소스(450)는 한 세트의 DATA'(460)를 클라이언트(455)에 제공한다. 참조번호 465에서 클라이언트(455)는 중계자(415)로부터 random의 분할을 요청한다. 데이터 유형 및 TOKEN의 동일한 값에 상응하는 random 값이 여러 개 있을 수 있으며, 증명당 하나의 random 값은 증명 참가자가 이전에 게시한 관련 증명에 걸쳐 해당 데이터 유형 값 및 TOKEN 값에 상응한다. 각각의 증명에 병합된 DATA 요소는 서로 매치하거나 매치하지 않을 수 있다. 관련된 각각의 중계자가 증명(들)을 통해 이전에 저장된 분할(들)을 공급하기 위한 전제 조건으로서, 그러한 중계자는 도 5의 참조번호 560에서 클라이언트(455)가 이용할 수 있는 적절한 승인을 요구할 수 있다. 승인에 성공하면, 관련된 각각의 중계자는 응답(470)을 클라이언트(455)에 전송한다. 클라이언트(455)는 참조번호 472에서 가능하다면 메타데이터와 같은 다른 매개변수들과 함께 random(들)을 재구성한다. 참조번호 480에서, 클라이언트(455)는 증명 동안 아마도 적용된 것과 같이 DATA' 값(들) 및 random 값(들)의 동일한 함수(f)를 계산한다. f는 특히 DATA' 값의 정규화를 포함할 수 있다. 메타데이터와 같은 f의 추가 인수가 있을 수 있다. 참조번호 480의 결과(들)는 일부 기능(h)의 적용을 포함할 수 있는 일부 형태(485)로 도 5의 참조번호 565를 통해 조정자(510)에게로 전송된다. 임계값 스킴, 예컨대 Shamir 비밀 공유 스킴(Shamir Secret Sharing scheme)은 참조번호 430에서 random 분할에 사용될 수 있다. 일 예로서, 4개 중 3개의 스킴이 사용될 수 있으며, 여기서 4개의 샤드(shard) 중 임의의 3개는 참조번호 472에서 random의 재구성을 가능하게 한다.
도 5를 지금부터 참조한다:
증명: 클라이언트(505)는 참조번호 515에서 데이터 유형들, g(TOKEN), f(Data, random)를 조정자(510)에게로 전송하며, 여기서 f(Data, random)는 도 4의 참조번호 440에서 전송된 것이다. g(TOKEN)은 이전에 참가자 클라이언트(505)에 공급된 TOKEN의 형태에 상응할 수 있다. 일 예로서, 변환자(translator)는 조정자(510)와 공통으로 보유된 키를 사용하고 일회용 초기화 벡터를 사용하여 고유하게 암호화된 TOKEN을 지닐 수 있으며, 그 결과 암호문과 아마도 초기화 벡터와 함께 클라이언트(505) 또는 클라이언트(505)의 대리인에게 전달된 인증 태그가 궁극적으로 블록체인에 게시되며 도 4의 참조번호 472의 재구성된 random에 대해 참가자 클라이언트(540)에 의해 자신의 요청 역할로 검색 및 검증될 수 있는 random의 함수를 추가로 포함할 수 있다. 그러한 함수는 메타데이터와 같은 추가 인수를 포함할 수 있다. 이러한 함수에는 일방향 해시 함수를 포함될 수 있다. 조정자(510)는 자신의 데이터베이스 관리에 사용하기 위해 참조번호 520에서 어드레스(address)를 생성한다. 참조번호 525에서, 조정자(510)는 데이터 유형(들), TOKEN, f(DATA, random) 및 어드레스 또는 이들의 일부 형태 또는 함수를 저장한다. 참조번호 525의 처리는 이전에 TOKEN에 적용된 함수(g) 함수의 효과를 반전시키거나 제거하는 것을 포함할 수 있다. 참조번호 530에서, 조정자(510)는 참조번호 535에서 클라이언트(505)에게로 전송되는 하나 이상의 승인을 생성한다. 그러한 승인(들)은 도 4의 참조번호 445에서 도 4에서 참조번호 410으로서 표시된 증명 클라이언트로부터 하나 이상의 중계자(415)들에게로 전송된다.
요청: 클라이언트(540)는 참조번호 545에서 데이터 유형 및 g(TOKEN)를 조정자(510)에게로 전송한다. g(TOKEN)은 이전에 참가자 클라이언트(540)에게 공급된 TOKEN의 형태에 상응할 수 있다. 일 예로서, 변환자는 조정자(510)와 함께 보유하고 있는 키를 사용하고 일회용 초기화 벡터를 사용하여 고유하게 암호화된 TOKEN을 지닐 수 있으며, 결과적으로 상기 초기화 벡터와 함께 클라이언트(540) 또는 클라이언트(540)의 대리인에게 전달된 아마도 인증 태그 및 암호문을 생성할 수 있다. 참조번호 550에서, 조정자(510)는 데이터 유형 및 TOKEN에 기초하여 하나 이상의 어드레스를 가져온다. 참조번호 550의 처리는 TOKEN에 이전에 적용된 함수(g)의 효과를 반전시키거나 제거하는 것을 포함할 수 있다. 참조번호 555에서, 조정자(510)는 승인을 생성한다. random의 분할이 도 4의 참조번호 445에서 증명 클라이언트에 의해 중계자(415)들에게 어떻게 분배되었는지에 의존하여, 요청 클라이언트(540)에 의해 테스트되는 각각의 증명에 대한 복수의 인증이 있을 수 있으며, 각각의 그러한 인증은 도 4의 요청(465)에서 중계자(415) 중 적어도 하나와 함께 사용하도록 의도된다. 이러한 인증은 참조번호 560에서 클라이언트(540)에게 전송된다. 도 4의 시퀀스 465, 470, 472, 및 480은 f(DATA', random)의 구성을 초래하며, 이는 도 4의 참조번호 485에 도시된 바와 같이 h(f(DATA', random))를 생성하도록 더 처리되고 참조번호 565에서 조정자(510)에게 전송될 수 있다. 함수(h)의 세부사항은 참조번호 575의 응답(respons)을 초래하는 조정자(510)에 의한 처리 및 DATA에 대한 DATA'의 확증 상태를 결정하는 참조번호 580에서의 클라이언트(540)에 의한 처리로 구성된 서브-프로토콜의 세부사항에 의존할 수 있다. 참조번호 515가 random의 함수 및 아마도 궁극적으로 블록체인에 게시되는 메타데이터와 같은 추가 인수를 포함하는 경우, 이는 도 4의 참조번호 472의 재구성된 random에 대해 클라이언트(540)에 의해 검색 및 검증될 수 있다.
도 6을 지금부터 참조한다:
증명: 데이터 소스(605)는 한 세트의 DATA(620)를 클라이언트(610)에게 제공하고, 그러한 한 세트의 DATA(620)의 하나 이상의 요소들은 도 7의 참조번호 715에서 조정자에게로 전송되며, 결과적으로 참조번호 735의 인증 및 인증 식별자(Authorization Identifier; AI)가 클라이언트(610)에게 제공되어 초기화 벡터(IV)가 참조번호 625에서 증명 식별자(Attestation Identifier; AI)를 사용하여 생성될 수 있고 참조번호 635의 분할 키 및 인증 태그 및 분배 암호문이 참조번호 640에서 중계자(615)들에게 제공될 수 있다. 참조번호 630의 처리에 의해 기밀성을 위한 암호문과 아마도 데이터 무결성을 위한 인증 태그가 생성된다. EKEY(DATA)로 표시되는 키를 이용한 DATA의 암호화는 DATA 뿐만 아니라 메타데이터의 암호화를 포함할 수 있다.
요청: 참조번호 655에서, 클라이언트(650)는 중계자(615)들로부터 분할 키 및 인증 태그 및 분배 암호문 청크(distributed Ciphertext chunk)로 구성된 암호화 자료 구성요소들을 요구한다. 데이터 유형 및 TOKEN의 동일한 값에 상응하는 것이 복수 개 있을 수 있으며, 증명당 하나는 증명 참가자들에 의해 이전에 게시된 관련 증명들에 걸쳐 그러한 데이터 유형 값 및 TOKEN 값에 상응한다. 암호화 하에서 각각의 증명에 병합되는 평문 DATA 요소는 서로 매치하거나 매치하지 않을 수 있다. 관련된 각각의 중계자가 증명(들)을 통해 이전에 저장된 암호화 자료를 제공하기 위한 전제 조건으로서, 그러한 중계자는 도 7의 참조번호 760에서 클라이언트(650)가 이용할 수 있는 적절한 승인을 요구할 수 있다. 승인이 성공하면, 관련된 각각의 중계자는 응답(660)을 클라이언트(650)에게로 전송한다. 클라이언트(650)는 차후에 참조번호 675에서 DATA를 복구하고 검증하는데 사용되겠지만 참조번호 665에서 암호화 자료를 재구성한다. 임계값 스킴, 예를 들어 Shamir 비밀 공유 스킴은 참조번호 635에서 키와 인증 태그의 분할에 사용될 수 있다. 일 예로서, 4개 중 3개의 스킴이 사용될 수 있으며, 여기서 4개의 샤드(shard) 중 임의의 3개는 참조번호 665에서 키 및 인증 태그를 재구성할 수 있다.
도 7을 지금부터 참조한다:
증명: 클라이언트(705)는 참조번호 715에서 데이터 유형, g(TOKEN) 및 길이(DATA)를 조정자(710)에게로 전송하며, 여기서 한 세트의 DATA 요소들은 도 6의 참조번호 620을 통해 클라이언트에 의해 수신된 것이다. g(TOKEN)은 이전에 참가자 클라이언트(705)에 공급된 TOKEN의 형태에 상응할 수 있다. 일 예로서, 변환자는 조정자(710)와 함께 보유한 키를 사용하고 일회용 초기화 벡터를 사용하여 고유하게 암호화된 TOKEN을 지닐 수 있으며, 결과적으로 초기화 벡터와 함께 클라이언트(705) 또는 클라이언트(705)의 대리인에게 전달된 인증 태그 및 암호문을 생성할 수 있다. 조정자(710)는 자신의 데이터베이스 관리에 사용하기 위해 참조번호 720에서 어드레스를 생성한다. 참조번호 725에서, 조정자(710)는 데이터 유형(들), TOKEN 및 어드레스 또는 이들의 일부 형태 또는 기능을 저장한다. 참조번호 725의 처리는 TOKEN에 이전에 적용된 함수 g의 효과를 반전시키거나 제거하는 것을 포함할 수 있다. 참조번호 730에서, 조정자(710)는 참조번호 735에서 클라이언트(705)에게로 전송되는 하나 이상의 승인들을 생성한다. 그러한 승인(들)은 도 6의 참조번호 640에서 도 6에서 참조번호 610으로서 표시된 증명 클라이언트로부터 중계자(615)들 중 하나 이상의 중계자로 전송된다.
요청: 클라이언트(740)는 참조번호 745에서 데이터 유형 및 g(TOKEN)를 조정자(710)에게로 전송한다. g(TOKEN)은 이전에 참가자 클라이언트(740)에게 제공된 TOKEN의 형태에 상응할 수 있다. 일 예로서, 변환자는 조정자(710)와 함께 보유한 키를 사용하고 일회용 초기화 벡터를 사용하여 고유하게 암호화된 TOKEN을 지닐 수 있으며, 결과적으로 초기화 벡터와 함께 클라이언트(740) 또는 클라이언트(740)의 대린에게 전달된 인증 태그 및 암호문을 생성할 수 있다. 참조번호 750에서, 조정자(710)는 데이터 유형 및 TOKEN에 기초하여 하나 이상의 어드레스를 가져온다. 참조번호 750의 처리는 이전에 TOKEN에 적용된 함수(g)의 효과를 반전시키거나 제거하는 것을 포함할 수 있다. 참조번호 755에서, 조정자(710)는 승인을 생성한다. 암호화 자료 구성요소들이 도 6의 참조번호 640에서 증명 클라이언트에 의해 중계자(615)들에게 어떻게 분배되었는지에 의존하여, 요청 클라이언트(740)에 의해 수신되는 각각의 증명에 대한 인증이 복수 개 있을 수 있으며, 각각의 이러한 인증은 도 6의 요청(655)에서 중계자(615)들 중 적어도 하나와 함께 사용하도록 의도된다. 6. 이러한 인증들은 참조번호 760에서 클라이언트(740)에게로 전송된다. 증명 식별자(AI)는 블록체인에 게시될 수 있다. 요청 클라이언트(740)는 그 경우에 도 6의 동작(675)을 수행하는데 필요한 IV를 생성하기 위해 그 블록체인으로부터 AI를 검색할 수 있다. 대안적으로, 또는 추가로, AI는 참조번호 760에서 전송될 수 있다. 참조번호 715 및 760의 길이(DATA)는 잠재적으로 선택적인 필드이다. 암호문이 예컨대 도 6의 중계자(640)들에게 배포되는 암호문 청크들의 길이를 균일하게 하기 위해 EKey(DATA)의 결과에 증명 클라이언트(610)에 의해 첨부되는 패딩(padding)을 포함하는 경우, 그러한 패딩은 도 6의 참조번호 665에서 도 6의 참조번호 675에서의 복호화 이전에 요청 클라이언트(650)에 의해 제거되어야 한다. 도 7의 참조번호 760에서 수신한 길이(DATA)를 이용하여, 요청 클라이언트는 도 6의 참조번호 660에서 수신된 것으로부터 재구성된 암호문의 어느 부분을 도 6의 참조번호 675에서의 복호화에 대한 입력으로서 사용해야 하는지를 결정할 수 있다. 만약, 도 6의 참조번호 630에서 메타데이터와 같은 DATA 이외의 추가 필드에 암호화가 적용된다면, 이는 예컨대 ∥가 연결(concatenation)을 나타내는 경우 길이(DATA) 대신 길이(DATA∥메타데이터)를 이용함으로써 고려되어야 한다.
다음으로는 제1 참가자가 확증을 위해, 다시 말하면 제2 참가자가 동일한 데이터 값이 상기 특정 엔티티에 연관되어 있다고 간주하는지를 결정하기 위해 상기 엔티티의 전화번호와 같은 특정 엔티티에 연관된 것으로 알려진 데이터 값을 테스트하는 사용 용례에 대한 본격적인 솔루션의 원하는 속성들을 고려하기로 하고, 여기서 테스트하는 것은 서버와의 양방향 통신을 수반한다:
1. 피싱 저항(phishing resistance): 제1 참가자는 제출된 데이터 값이 제2 참가자의 데이터 값과 매치되는지 여부만을 학습한다.
2. 서버 망각(server obliviousness): 서버는 제1 참가자의 쿼리(query)를 기반으로 하는 제출된 데이터 값이 제2 참가자의 데이터 값과 매치하는지를 제1 참가자가 선택적인 후속 통신을 보내지 않는 한 그리고 제1 참가자가 선택적인 후속 통신을 보낼 때까지 실현 가능하게 결정할 수 없다.
3. 위양성 방지: 제1 참가자는 암호화 이전에 데이터 값을 캡슐화하는 제1 참가자에 의한 가능한 합법적인 제출의 공간이 추측할 가능성이 없을 만큼 충분히 큰 범위에 이르기까지 서버가 합법적으로 작동하는지에 관한 매치의 위양성 표시를 수신할 가능성이 낮다.
4. 제출된 데이터 값의 프라이버시: 제1 참가자와 서버 간 통신의 도청자는 제1 참가자의 데이터 값을 실현 가능하게 결정할 수 없다.
5. 제2 참가자 데이터 값의 프라이버시: 1차 참가자와 서버 간 통신의 도청자는 2차 참가자의 데이터 값을 실현 가능하게 결정할 수 없다.
선택적인 후속 통신:
바람직하게는 대칭 암호화 함수 또는 서버가 개인 키를 소유하고 제1 참가자가 해당 공개 키를 알고 있는 공개 키 암호화 함수를 사용하여, 제1 참가자는 서버가 제1 참가자에 의해 이전에 보내진 쿼리를 복제할 수 있게 하는 데 필요한 변수들을 서버에 전달한다. 이는 서버가 제1 참가자에 의해 이전에 보내진 데이터 값이 제2 참가자의 데이터 값과 매치하는지를 결정할 수 있게 한 가지 방법이다. 바람직하게는 제1 참가자는 동일한 쿼리를 생성할 수 있게 하는 제2 데이터 값을 실현 가능하게 결정할 수 없다.
속성 1만을 충족하기에 충분한 것으로 간주 되도록 하는 시나리오 내에서 그것은 쿼리 내에 캡슐화된 데이터 값이 제2 참가자에 연관된 데이터 값 캡슐화와 각각 매치하거나 매치하지 않는지에 의존하여 서버(S)가 제1 참가자(P)의 쿼리에 단순히 긍정 또는 부정으로 응답하도록 함으로써 달성할 수 있다는 점에 유념하기로 한다.
프로토콜은
프로토콜은 제1 참가자(P)가 보유하고 있는 데이터 값(P)의 캡슐화를 서버(S)에 저장되거나 서버(S)에 액세스할 수 있는 데이터 값의 캡슐화와 비교하여 측정되는 바와 같이, 제1 참가자(P)가 보유하고 있는 데이터 값이 특정한 제2 참가자에 의해 보유된 것과 매치함을 제1 참가자(P)가 검증하는 것을 허용한다. 민감한 정보의 경우에, 이러한 캡슐화의 암호화되지 않은 평문 표현에 대한 노출을 최소화하는 것이 바람직하다. 그러므로 프로토콜은 이러한 평문을 의도된 수신자 참가자(P)에게 복구할 수 있는 능력을 제한한다. 또한, 상기 프로토콜은 악성 참가자(P)가 참가자(P)의 쿼리 내에서 참가자(P)에 의해 제출된 것과는 다른 데이터 값을 반영하는 악성이 아닌 서버(S)의 캡슐화된 데이터 값에 액세스하는 것을 금지한다. 이는 이러한 캡슐화에 대해 확률적 또는 비-결정적 동형 연산(homomorphic operation)을 수행하여 달성된다. 더욱이, P의 정보에 대한 긍정적인 확증이 그러한 작동의 위험을 감소시키거나 그러한 작동을 취함으로써 발생할 수 있는 역효과의 교정을 돕는 것으로 간주 된다는 것을 근거로 P가 잠재적으로 위험한 작동을 기꺼이 수행할 수 있는 경우가 있다. 그러므로 프로토콜은 특정한 제2 참가자에 연관된 캡슐화 내에서 실제로 매치하지 않는 데이터 값에 기초한 쿼리에 대한 응답으로 매치를 시뮬레이션하기 위해 서버(S)가 자신의 동작을 성공적으로 조작하는 것을 방지하는데 유리한 것으로 간주 된다. 따라서 프로토콜은 위양성을 나타내는 응답들을 저지르는 것을 방지한다.
가법 및 스칼라 승법 동형을 지원하는 암호화/복호화 스킴(Epk, Dsk)의 일 예에 대한 참조: Paillier, Pascal(1999), "Public-Key Cryptosystems Based on Composite Degree Residuosity Classes," EUROCRYPT, Springer, pp. 223-238, doi:10.1007/3-540-48910-X_16; https://crypto.stackexchange.com/questions/36998/equality-checking-using-additive-homomorphic-encryption(이들 모두는 이러한 참조에 의해 본원에 완전히 보완됨).
지금부터 "위양성 프로토콜(False-Positive-Prone Protocol)"에 대해 도 8을 참조하면, 참가자(P)(805)는 다음과 같이 정의되는 (예컨대, 파스칼 페일리어(Pascal Paillier) 스킴을 이용함으로써 이용 가능한) 가법 및 스칼라 승법 동형을 지원하는 일부 암호화/복호화 스킴(E pk , D sk )에 대해 참조번호 810에서 공개/비밀 키 쌍(pk, sk)을 생성한다: 가법 동형 - D sk [ E pk (x) + E pk (y)] = x + y인 연산 + 가 존재하며, 여기서 +는 평문들의 그룹에서 정의된 바와 같은 덧셈이고, 스칼라 승법 동형 - D sk [x * E pk (y)] = x * y인 연산 * 이 존재하며, 여기서 *는 평문들의 그룹에 정의된 바와 같은 곱셈이다. 함수가 단지 + 및 * 만 사용하여 평가될 수 있는 경우 함수는 여기에서 동형 계산 가능한(hom-computable) 것으로 표시된다. 참가자(P)(805)는 참조번호 815에서의 c', 다시 말하면 서버(S)(820)에 의해 보유된 데이터 값 캡슐화(c)에 대한 P의 쿼리를 암호화하며, 여기서 c' 및 c는 각각 PS 데이터 값의 캡슐화를 나타낸다. P(805)는 참조번호 825에서 pkE pk (c')를 서버(S)(820)에 전달하고 비밀 키(sk)는 비공개로 유지된다. S(820)는 참조번호 830에서 r을 생성하며, 이는 바람직하게는 적절하게 큰 세트로부터 무작위로 균일하게 선택된 정수이다. 전형적으로, S(820)는 자신의 데이터 값 캡슐화(c)를 암호화하고 참조번호 835에서 r * g( E pk (c), E pk (c') 를 계산하며, 여기서 gS(820) 및 P(805) 양자 모두에 알려진 동형 계산 가능한 함수이며 그리고 * 는 D sk 하에서의 평문에 대한 스칼라 곱셈의 사전 이미지이다. g의 예들: g(x, y) = x - y 이며 여기서 - 는 동형 가법의 역과 유사하고, g(x, y) = x + y 이며 여기서 + 는 위와 같이 정의된다. 하지만, 도 8은 S가 악성으로 작동하고 그럼으로써 자기 자신의 c 대신에 수신된 E pk (c')를 사용하는 경우를 나타낸다. S(820)는 참조번호 840에서 P(805)에게로 r * g(E pk (c'), E pk (c')) 를 보낸다. 평문 공간에서 함수(g) 또는 D sk 하에서의 g의 이미지가 교번 속성(alternating property)을 지니지 않으면(여기서, 교번 속성은 모든 x에 대해 g(x, x) = 0으로 정의됨) 계속 진행한다. 그러하지 않으면, 다음 기함수(h) 적용을 스킵(skip)한다. S(820)는 참조번호 840에서 h(r)를 또는 대안으로 h(r || c')P(805)에게로 보내며, 여기서 hSP 양자 모두에 의해 효율적으로 계산할 수 있는 일방향 함수, 바람직하게는 임의 크기 또는 비트 길이의 데이터를 고정 크기 또는 비트 길이의 데이터에 매핑하는 함수(예컨대, 암호화 해시 함수)이다. h의 예들: h(x) = H SHA -256 (x) 이고 h(x) = HMAC SHA -256 (key, x) 이며, 여기서 keyP(805)와 S(820) 간에 공유되는 비밀이고 SHA-256은 NIST FIPS-PUB 180-4(보안 해시 표준)에서 지정된 바와 같은 것이다. P(805)는 참조번호 845에서 D sk [r * g(E pk (c'), E pk (c))] = r * g(c, c')를 계산하며, 여기서 g는 평문의 공간에서 D sk 하에서의 g의 이미지로서 정의된다. g에 모든 x에 대해 g(x, x) = 0인 것으로 정의된 교번 속성을 지니는 경우에 참조번호 850으로 진행한다. 그렇지 않으면 참조번호 855로 속행하게 된다. P(805)는 참조번호 845로부터의 결과가 참조번호 850에서 0과 같은지를 검증한다. S가 악성으로 작동하였으므로 c
Figure pct00001
c'이지만, P(810)는 c = c'인 것으로 가정한다. 전형적으로, P(805)는 이때 참조번호 855에서 (g[c, c']) -1 을 계산하고 r' = r * g(c, c') * (g[c, c']) - 1 의 계산을 진행한다. 분명한 점으로는, c' = c 이면 r' = r이라는 것이다. 그렇지 않으면, P(805)는 r과 같지 않은 임의 값을 계산하게 된다. 그러나 S(820)가 악성으로 작동하였으므로, 이는 위양성(false positive)을 획득하고 r' = r 이라고 가정하게 된다. P(805)는 참조번호 840에서 전달된 h(r)(또는 구현 선택에 따라 변형적으로 h(r || c) 가 참조번호 860에서 참조번호 855에서 계산된(잠재적으로는 c'와 연결된) 값에 적용된 h와 매치하는지를 검증한다. 그렇다면, S(820)가 예상대로 동작한 경우에 c = c'이다. 그렇지 않고 S가 예상대로 동작한 경우에 c
Figure pct00002
c'이다. 그러나 S가 악성으로 작동하였으므로, P는 다시 위양성을 받고 매치가 있다고 가정하게 된다. g에 참조번호 840에서 정의된 교번 속성이 없으면 여기에서 종료된다.
"기본 프로토콜(Basic Protocol)"에 대해 지금부터 도 9를 참조하면, 참가자(P)(905)는 (예컨대, 파스칼 페일리어(Pascal Paillier) 스킴을 이용함으로써 이용 가능한) 가법 및 스칼라 승법 동형을 지원하는 일부 암호화/복호화 스킴(E pk , D sk )에 대해 참조번호 910에서 공개/비밀 키 쌍(pk, sk)을 생성한다. 가법 동형: D sk [E pk (x) + E pk (y)] = x + y 인 연산 + 가 존재하며, 여기서 +는 평문들의 그룹에서 정의된 바와 같은 덧셈이다. 스칼라 승법 동형: D sk [x * E pk (y)] = x * y 인 연산 * 이 존재하며, 여기서 *는 평문들의 그룹에 정의된 바와 같은 곱셈이다. 함수가 단지 + 및 * 만 사용하여 효율적으로 계산될 수 있는 경우 함수가 여기에서 동형 계산 가능한(hom-computable) 것으로 표시된다는 점에 유념하기로 한다. P(905)는 f k (c')를 계산하고 그 결과를 참조번호 915에서 암호화하며, 여기서 c'는 S(920) 데이터 값 캡슐화에 대한 P의 쿼리의 데이터 값의 캡슐화이고 f k 는 일부 키 함수이며 비밀(k)는 P(905)에 의해 소유되는 것이고 암호화 해시 함수를 선호하는 경우 일방향이며 S(920) 및 P(905) 양자 모두에 의해 효율적으로 계산 가능한 적절하게 큰 세트로부터 무작위로 균일하게 선택되는 것이 바람직하다. f k 의 예들: f k (x) = H SHA -256 (x || k) 이고 f k :f k (x) = HMAC SHA -256 (k, x) 이다. P(905)는 pk를 서버(S)(920)에 전달하고 비밀 키(sk)는 참조번호(925)에서 비공개로 유지된다. P(905)는 참조번호 925에서 E pk [ f k (c')] S(920)에게로 보낸다. S(920)는 참조번호 930에서 r을 생성하며, 이는 적절하게 큰 세트로부터 무작위로 균일하게 선택된 정수인 것이 바람직하다. S(920)는 제2 참가자에 연관된 데이터 값 캡슐화(c)를 암호화하고 참조번호 935에서 r * g( E pk (c), E pk [ f k (c')])를 계산하며, 여기서 gS(920) 및 P(905) 양자 모두에 알려진 동형 계산 가능한 함수이고 *는 D sk 하에서의 평문에 대한 스칼라 곱셈의 사전 이미지이다. g의 예들: g(x, y) = x - y 이며 여기서 - 는 동형 덧셈의 역과 유사하고 g: g(x, y) = x + y 이며 여기서 + 는 이전과 같이 정의된다. S(920)는 참조번호 940에서 r * g( E pk (c), E pk [ f k (c')])P(905)에게로 보낸다. S(920)는 또한 참조번호 940에서 h(r) 또는 대안으로 h(r || c)P(905)에게로 전송하며, 여기서 hS(920) 및 P(905) 양자 모두에 의해 효율적으로 계산 가능한 일-방향 함수, 바람직하게는 암호화 해시 함수이다. h의 예들: h(x) = H SHA -256 (x) 이고 h: h(x) = HMAC SHA -256 (key, x) 이며, 여기서 keyP(905)와 S(920) 간에 공유되는 비밀이다. P(905)는 참조번호 945에서 D sk [r * g( E pk (c), E pk [ f k (c')])] = r * g(c, f k (c'))를 계산하며, 여기서 g는 평문들의 공간에서 D sk 하에서의 g의 이미지이다. 이때, P(905)는 (g[c',f k (c')]) -1 을 계산하고 참조번호 950에서 r' = r * g(c, f k (c')) * (g[c', f k (c')]) - 1 의 계산을 진행한다. c' = c이면 r' = r이다. 그러하지 않으면, P(905)는 r과 같지 않은 임의 값을 계산하게 된다. P(905)는 참조번호 940에서 전달된 h(r)(또는 변형적으로는 구현 선택에 따라 h(r || c))이 참조번호 955에서 (잠재적으로 c'와 연결되는) h(r')와 매치되는 지를 검증한다. 그러하다면, 확실히 c = c'이다. 그러하지 않으면 S(920)가 예상대로 동작한 것으로 가정하여 c
Figure pct00003
c'이다.
"후속 프로토콜(Follow-on Protocol) - 옵션 1"에 대해 지금부터 도 10을 참조하면, 한 수법에 의해 이는 준수 참가자의 c'가 서버(S)로부터의 응답의 기초가 되는 c와 매치하는 경우에만 실행되어야 한다. 참가자(P)(1005)는 참조번호 1015에서 r'를 도 9의 참조번호 950으로부터 서버(S)(1010)로 전송한다. S(1010)는 참조번호 1020에서 r'를 도 9의 참조번호 930에서 생성된 그의 r과 비교한다. 이러한 값들이 매치하게 되면, 도 9에서의 P(1005)의 쿼리는 S(1010)에서의 제2 참가자에 연관된 데이터 값 캡슐화(c)에 대한 적중을 초래한다. 그러하지 않으면, P(1005)의 쿼리와 데이터 값 캡슐화(c) 간의 관계에 대해 아무것도 결정될 수 없으며 P(1005)는 악성 동작을 나타낸다.
"후속 프로토콜(Follow-on Protocol) - 옵션 2"에 대해 지금부터 도 11을 참조하면, 이는 어떠한 시나리오에서도 실행될 수 있다. 서버(S)(1105)는 가능하면 pk* = sk*가 되도록 참조번호 1110에서 암호화 스킴(E pk *, D sk *)을 생성한다. S(1105)는 참조번호 1120에서 참가자(P)(1115)에게 pk*를 전달한다. P(1115)는 참조번호 1125에서 E pk *(c'), E pk *(k), E pk *(r 1 ), … E pk *(r n )을 계산하고, 여기서 c'는 도 9의 참조번호 915에서와 같은 것이며, k는 도 9의 참조번호 915에서 f k (c')를 계산하기 위해 P(905)에 의해 사용되는 키이고, r 1 , …, r n 은 도 9의 참조번호 915에서 E pk [ f k (c')] 의 계산에 포함된 모든 임의 값들이다. r 1 , …, r n 에 대한 계산은 E pk 가 확률적일 경우에만 관련이 있다. P(1115)는 참조번호 1130에서 모든 계산을 참조번호 1125로부터 S(1105)로 전송한다. S(1105)는 참조번호 1135에서 sk*를 사용하여 참조번호 1130에서 수신된 모든 자료를 복호화한다. S(1105)는 관련되는 경우 r 1 , …, r n 을 사용하여 참조번호 1140에서 E pk [ f k (c')] 를 계산하고 이러한 값을 참조번호 1145에서 도 9의 참조번호 925에서 수신된 것과 비교한다. 이러한 값들ㅇ이 매치하면, 도 9에서의 P(905)의 쿼리는 참조번호 1135에서 복호화를 통해 계산된 c'가 S(1105)에 의해 보유된 c와 같을 경우 및 그러한 경우에만 정확하게 된다. 그러하지 않으면 P(1115)의 쿼리와 데이터 값 캡슐화(c) 간의 관계에 대해 아무것도 결정될 수 없으며, P(1115)는 악성 동작을 나타낸다.
초기 데이터 소스에 연관된 데이터 정보에서 파생된 앞서 언급한 토큰들 또는 초기 데이터 소스에 연관된 데이터 정보의 앞서 언급한 토큰화, 다시 말하면 이러한 것을 INFO를 TOKEN으로 변환할 수 있는 데이터 토큰화 시스템을 통해 가능하게 하는 것에 관련하여: 참가자에게 엔티티에 연관된 데이터에 대한 액세스가 부여되며, 여기서 데이터 또는 데이터의 조합 및 데이터에 대한 엔티티의 연관은 INFO로 표시된다. 비록 이하의 토큰화 실시 예들이 2개의 서버 또는 프로세서를 고려한 사용 용례만을 포함하지만, 다른 실시 예들이 다른 개수의 서버를 사용할 수 있다.
TOKEN들을 생성하는 본격적인 솔루션의 원하는 속성들 - 백엔드(Backend)라는 용어는 제1 서버 또는 프로세서를 지정하고 변환자(Translator)라는 용어는 제2 서버 또는 프로세서를 지정함 -:
1. 주어진 INFO 값은 TOKEN 생성 처리 중 또는 후에 참가자 외부에 노출되어서는 아니 된다.
2. INFO → TOKEN의 매핑은 (a) INFO 값으로 시작하든 TOKEN 값으로 시작하든 모든 프로세서 비밀에 대한 액세스 없이 수동적 공격자에 의해 재생산할 수 없어야 하고, (b) 일대일 대응이어야 하며, 그리고 (c) 백엔드와 변환자의 조합에 의해 지속적으로 재계산 가능하여야 한다.
3. 주어진 INFO 값에 대해, TOKEN의 표현은 참가자 데이터베이스들에 걸쳐 상관되지 않아야 한다. 다시 말하면, 추가 정보 없이 이는 개별 참가자들에 저장된 TOKEN 표현 리스트들 간의 교차(intersection)들을 결정하는 것이 계산적으로 실행 불가능하여야 한다.
4. 프로세서의 구성요소별 절충은 구성요소 절충 시간들 간에 공격자에 의해 연속성이 유지되지 않는 한 비효율적이어야 한다. 이러한 프로세서 구성요소들은 그의 상응하는 파티션들에 이용할 수 없는 암호화 키 자료를 각각 사용하는 프로세서의 파티션 형태를 취할 수 있다.
5. INFO → TOKEN의 매치 리스트를 공식화하는 공격자로부터 보호하는 것이 바람직하다.
6. INFO를 "평문"으로서, TOKEN을 "암호문"으로서 간주할 때, 알려지거나 선택된 평문 공격과 알려지거나 선택된 암호문 공격에 대한 복원력을 보장하는 것이 바람직하다. 다시 말하면, 일부 INFO-TOKEN 쌍들에 대한 지식은 다른 한 INFO 값을 그의 TOKEN 값으로 매핑하거나 다른 한 TOKEN 값을 그의 INFO 값으로 반전하는 데 도움이 되지 않아야 한다. 이는 심지어 TOKEN의 끝에서 두 번째 형식, 다시 말하면 TOKEN을 공식화하는 데 일-방향 해싱이 사용되는 경우 이러한 일-방향 해싱을 적용하기 직전의 그의 값이 공급되는 경우라도 마찬가지이어야 한다.
7. 어떠한 참가자 또는 프로세서도 INFO 값과 그의 상응하는 TOKEN 값에 모두 액세스할 수 없도록 해야 한다. 또한, 어떠한 참가자나 프로세서도 INFO 값과 그러한 INFO에 대해 TOKEN을 요청한 참가자의 신원 또는 가명에 모두 일방적으로 액세스할 수 없도록 해야 한다.
(결과적으로 획득된 INFO 사전 이미지를 정확하게 나타내는) 결과적으로 획득된 TOKEN은 증명 및 증명에 대한 요청을 위한 후속 트랜잭션 처리에 유용하다. 동일한 INFO의 반복 발생은 실제 트랜잭션 처리(조정자를 포함함)의 시점에서 (INFO 노출 없이) 매치 될 수 있지만 다른 곳(변환자를 제외함)에서 매치 될 수 없다. TOKEN들의 참가자 고유 암호화된 선행 작업들만이 변환자 및 실제 트랜잭션 처리 외부에 나타난다.
제안된 토큰 생성 프로토콜의 목표: 한 세트의 합법적인 INFO 값들을 소진하는 것이 계산상 실현 가능하다는 사실에도 불구하고 INFO를 효과적으로 삭제하기 위한 것. 이러한 토큰화를 이루기 위해 토큰 생성자 백엔드 프로세서와 변환자로서 표시된 조정자 프론트-엔드(front-end) 프로세서가 도입될 수 있다. 조정자는 여기에서 자세히 설명된 제안을 통해 생성된 TOKEN 값을 사용하는 트랜잭션 처리를 다루는 기능을 지닌다.
하나의 바람직한 실시 예에서, 주어진 INFO 값을 그의 TOKEN 값으로 매핑하는 것은 백엔드의 2개의 쌍을 이루는 파티션과 변환자의 2개의 쌍을 이루는 파티션에 보유한 폴리그 헬만 키들의 누적에 의존한다. 더 일반적으로는, 서로 그리고/또는 참가자 그리고/또는 번환자와 통신하는 2개의 백엔드 프로세서와 같은 주어진 유형의 다중 프로세서가 있을 수 있다.
도 12(a)를 지금부터 참조하면, 2개의 백엔드 프로세서, 다시 말하면 백엔드 1(1207) 및 백엔드 2(1209)는 각각 2개의 개별 참가자(1201)에 의해 제공된 입력 각각에 대해 서로 다른 폴리그 헬만 키들을 사용하여 작동하는 경우를 고려하기로 한다. 이른바, 백엔드 1(1207)은 참조번호 1203에서 수신된 jP 상에서 동작하고 백엔드 2(1209)는 참조번호 1205에서 수신된 (1-j)P 상에서 동작하며, 여기서 P는 INFO 값을 나타낸다. 이때 백엔드 1(1207) 및 백엔드 2(1209)는 참조번호 1211에서 bb 1 jP와 참조번호 1213에서 bb 2 (1-j)P로 구성된 중간 결과들을 교환한다. 그리고 나서 각각은 이전과 동일한 폴리그 헬만 키들, 다시 말하면 bb 1 bb 2 를 각각 사용하여 다시 동작한다. 변환자(1220)가 참조번호 1219를 통해 2개의 백엔드 프로세서, 다시 말하면 참조번호 1215에서 참가자(1201)에게로 전송된 bb 1 bb 2 (1-j)P 및 참조번호 1217에서 참가자(1201)에게로 전송된 bb 2 bb 1 jP의 최종 결과를 수신하는 경우, 가능하다면 자기 자신의 폴리그 헬만 키(tt)를 적용하기 전에, 변환자(1220)는 참조번호 1221에서 그들을 추가하여 P 상에서 캐스케이드 방식으로 동작하지만, P가 어느 한 백엔드 프로세서에 노출되지 않는 양자 모두의 백엔드 프로세서의 결과, 다시 말하면 bb 1 bb 2 P 를 파생할 수 있다. 또한, 참조번호 1221에 도시된 바와 같이, 변환자(1220)는 참조번호 1223에서 상기 결과를 조정자(1225)에게 전달하기 전에 바람직하게는 일-방향 해시 함수를 적용할 수 있다. 백엔드 1(1207) 및 백엔드 2(1209) 각각은 변환자(1220)에 의한 종단 간 액세스에 대한 그의 최종 결과를 암호화할 수 있으며, 이 경우에 비록 백엔드로부터 변환자(1220)로의 전달이 참가자(1201)를 통해 수행되더라도 참가자(1201)는 이러한 최종 결과들에 액세스하지 않는다. 대안으로, 백엔드 1(1207) 및 백엔드 2(1209)는 비록 참가자(1201)에게로의 전송 중에 상기 최종 결과들이 암호화되더라도 참가자(1201)가 이들에 액세스할 수 있는(그리고 그들을 함께 추가할 수 있는) 방식으로 상기 최종 결과들을 참가자(1201)에게 전달할 수 있다. 여기서 부가적으로 유념할 점은 백엔드 1(1207) 및 백엔드 2(1209)가 양자 모두 참가자(1201) 또는 변환자(1220)와 직접 통신하지 않는다는 것이며, 그 이유는 백엔드 1(1207)가 백엔드 2(1209)를 통해 통신할 수 있기(또는 이의 역도 성립함) 때문이다. 이 경우에, 기본 결과들/데이터/메타데이터가 통과되는 백엔드에 액세스할 수 없도록 전송이 보호될 수 있다.
도 12(b)를 지금부터 참조하면, 여기에 도시된 프로세스는 도 12(a)의 것과 동일한 결과를 산출하지만, 여기에서 백엔드 2(1235)는 참조번호 1237에서 참가자(1227)에 전송되는 bb 2 bb 1 P를 생성하도록 참조번호 1229를 통해 참가자(1227)로부터 백엔드 1(1231)에 의해 수신된 바와 같이 P 상에서 직접 동작하는 백엔드 1(1231)의 참조번호 1233에서의 중간 결과 bb 1 P 상에서 동작한다. 그러므로 여기서는 도 12(a)에서와는 달리, P는 백엔드 1(1231)에 노출된다. 변환자(1240)는 참조번호 1239를 통해 bb 2 bb 1 P를 수신하고 참조번호 1241에서 TOKEN을 생성한다. TOKEN은 참조번호 1243을 통해 조정자(1245)에게 제공된다. 여기서 부가적으로 유념할 점은 도 12(a) 및 도 12(a)에서 상기 백엔드들 중 하나와 변환자가 동일한 권한하에 있을 수 있으며 그러한 권한이 INFO 값 또는 P 값을 학습하지 않는다는 것이다. 도 12(c)에 도시된 바와 같이 순차적인 처리를 회피하기 위해 2개의 백엔드가 동일한 폴리그 헬만 키들을 소유한 경우에는 그러하지 않다.
도 12(c)를 참조하면, 변환자(1262)는 참조번호 1261을 통해 bbjPbb(1-j)P를 수신하거나 참가자(1259)가 암호화되지 않은 형태로 bbjPbb(1-j)P 양자 모두를 복구하고 결과적으로는 그들을 합산할 수 있는 경우 이러한 2개의 타원 곡선 점의 합, 다시 말하면 bbP를 잠재적으로 수신하고 참조번호 1263에서 TOKEN을 생성한다. TOKEN은 참조번호 1265를 통해 조정자(1267)에 제공된다. 참가자(1259)는 참조번호 1247에서 백엔드 1(1251)에 jP를 제공한 후에 백엔드 1(1251)로부터 참조번호 1255에서 bbjP를 수신한다. 마찬가지로, 참가자(1259)는 참조번호 1249에서 백엔드 2(1253)에 (1-j)P를 제공한 후에 백엔드 2(1253)로부터 참조번호 1257에서 bb(1-j)P를 수신한다. 참가자(1259)는 변환자(1262)에 의해 궁극적으로 사용하도록 의도되고 참가자(1259)가 실제 값(들)을 복구하는 것을 허용하지 않는 형식으로 값들 bbjPbb(1-j)P 중 하나 또는 양자 모두를 수신할 수 있다.
도 13, 도 14 및 도 15는 도 12(a), 도 12(b) 및 12(c)에 도시된 실시 예들과는 달리, 동일한 P 값의 여러 인스턴스를 구별하는 무작위 블라인딩 인자들이 참가자에 의해 제거(및 시작)되는 실시 예들을 보여준다. 또한, 도 12(a), 도 12(b) 및 12(c)에 도시된 실시 예들과는 달리, 도 13에는 단일 백엔드만이 표시된다.
토큰들의 생성에 대한 대안적인 실시 예로서 도 13을 지금부터 참조하면, 엔티티 또는 데이터 소유자(1310)는 참가자(1315)에게 정보를 제공하고 이로부터 참가자(1315)가 타원 곡선 점(P)를 파생한다. P는 이전에 논의된 바와 같이 INFO를 나타낼 수 있다. 참가자(1315)는 참조번호 1320에서 백엔드(1325)로 전송되는 lP를 생성하기 위해 블라인드/은닉 인자(l)를 사용하여 P를 블라인드한다. 참조번호 1330에서 백엔드(1325)로부터 bblP를 수신하면, 참가자(1315)는 블라인딩 인자(l)를 제거하고 참조번호 1335에서 결과적인 값(bbP)을 변환자(1340)에게로 전송한다. 참가자(1315)는 참조번호 1345에서 변환자(1340)로부터 Enc_TOKEN을 수신한다. Enc_TOKEN은 조정자(1350)와 함께 사용될 수 있으며, 여기에서 바람직하게는 조정자(1350)는 Enc_TOKEN으로부터 TOKEN을 복구하도록 장착된다. 여기서 유념할 점은TOKEN이 참조번호 1342에서 변환자(1340)에 의해 파생되고 Enc_TOKEN이 암호화 메커니즘을 통해 TOKEN으로부터 변환자(1340)에 의해 파생된다. 참조번호 1330에 대해, bblP는 인스턴스에 대해 고유한 반면에, 참조번호 1335에 대해, bbP는 그러하지 않다. 바람직하게는 참가자(1315)에 의해 bblP로부터 l가 제거된 직후에 bbP가 생성되고, bbP는 참조번호 1335에서 변환자(1340)로의 전송을 위해 고유하게 암호화된다. 이러한 암호화된 버전은 참가자(1315)에 연관된 데이터베이스에 저장될 수 있으며, 각각의 참가자에 다르게 나타난다. 이러한 암호화된 버전은 필요한 경우 변환자(1340)에게로 재전송될 수 있다. 이러한 필요성은 예를 들어 Enc_TOKEN을 공식화하기 위해 변환자(1340)에 의해 사용된 암호화 키가 업데이트된 경우에 발생할 수 있다. 비록 암호화 키가 재사용되더라도 참조번호 1345의 Enc_TOKEN은 예컨대 고유한 초기화 벡터의 사용에 기초하여 각각의 인스턴스에서 고유하게 변환자(1340)에 의해 계산될 수 있다. Enc_TOKEN을 공식화하는 데 사용되는 암호화 키, 및 상기 키가 업데이트되는 경우 그의 후임자들은 참가자(1315)가 이용할 수 없는 동안 변환자(1340)와 조정자(1350) 간에 공유될 수 있다. 여기서 유념할 점은 변환자(1340)와 조정자(1350)가 결합되는 경우(이는 암호화의 사용 또는 미사용 및/또는 흐름에 영향을 미칠 수 있음)와 같은 변형이 가능하다는 것이다.
사기 속성 토큰(FATOKEN)들에 대한 요구사항이 TOKEN에 대한 것과 다르기 때문에, FATOKEN들은 순차적인 처리가 아닌 병렬 처리를 통해 생성될 수 있는데, 그이유는 참가자에 의해 블라인딩 인자(l)가 제거되는 것이 토큰 생성 절차 또는 프로토콜의 확인된 보안 레벨에 악영향을 미치지 않고 안전하게 지연될 수 있기 때문이다. 이 경우에, 도 13의 TOKEN 생성 절차 또는 프로토콜의 그러한 보안 레벨과 달리, FATOKEN의 최종 값들의 생성은 변환자가 아닌 참가자에 발생한다.
FATOKEN들의 생성에 대해 도 14를 지금부터 참조하면, 데이터의 소유자인 것처럼 가장하는 사기꾼일 수 있는 엔티티 또는 데이터 소유자(1410)는 데이터를 참가자(1415)에게 제공한다. 이러한 수신된 데이터의 하나 이상의 요소들은 P 1 ,…, P k 로 표시되는 데이터 속성들을 나타내는 P 값들을 생성하기 위해 참가자(1415)에 의해 사용될 수 있다. 참조번호 1420을 통해, 참가자(1415)는 P 1 ,…, P k , 다시 말하면 IP 1 ,…, IP k 를 참조번호 1425에 공동으로 표시된 백엔드 X 및 백엔드 Y에 전송한다. 백엔드 X 및 백엔드 Y는 참조번호 1430에서 참가자(1415)에게로 전송된 바와 같은 bb X lP 1 ,…, bb X lP k bb Y lP 1 ,…, bb Y lP k 를 각각 생성하기 위해 병렬로 작동할 수 있다. 참조번호 1435에서, 참가자(1415)는 FATOKEN 값들을 생성하기 위해 i = 1 내지 k일 경우 대해 bb X lP i bb Y lP i 의 각 쌍에 대해 계산한다. 여기서 유념할 점은 단독으로 작동하는 백엔드 X와 백엔드 Y, 또는 심지어는 블라인딩 인자(l)가 그들에게 알려져 있지 않을 경우 함께 작동하는 백엔드 X와 백엔드 Y가 참조번호 1430에서 FATOKEN들을 그의 기여도에 상관시키는 기능이 없다는 것이다. FATOKEN들은 이러한 문맥에서 사기 속성 레지스트리(Fraud Attributes Registry)로서 간주 될 수 있는 레지스트리(1440)와 함께 참가자(1415)에 의해 사용될 수 있다. 그러한 사용 중 하나는 참가자(1415)가 FATOKEN들에 대해 증명하거나 요청하는 것을 수반한다. 요청을 처리하는 동안, 레지스트리(1440)는 증명자 역할 내에서 작동하는 요청 네트워크 요소에 의해 또는 이를 대신하여 게시된 이전에 제출된 증명을 통해 요청자 역할 내에서 작동하는 요청 네트워크가 이루어진 요청의 일부로 제출된 FATOKEN 값의 확증을 나타내는 정보를 반환할 수 있다. 여기서 유념할 점은 도 5 및 도 7에 도시된 증명들 및 요청들과는 달리, 요청들이 TOKEN 값들의 임의의 함수를 병합할 필요가 없다는 것이다. 또한, 여기에서 데이터 유형들은 레이블 되거나 레이블 되지 않은 것으로 지정될 수 있다.
하이브리드 토큰 생성 절차 또는 하이브리드 토큰 생성 프로토콜에 대해 도 15를 지금부터 참조하면, TOKEN 생성과 FATOKEN 생성 양자 모두가 수용된다. 참조번호 1510은 합법적인 엔티티 또는 데이터 소유자 또는 잠재적으로는 사기용으로, 다시 말하면 사기꾼으로 작동하는 것에 상응할 수 있다. 참가자(1515)는 TOKEN들의 획득 또는 사용에 관련된 참가자를 나타내고, 참가자(1520)는 FATOKEN들의 획득 또는 사용에 관련된 참가자를 나타낸다. 참조번호 1535 및 1540은 도 13의 백엔드(1325)의 역할을 하거나 도 14의 참조번호 1425에서 백엔드 X의 역할을 하는 프로세서를 각각 나타낸다. 참조번호 1560 및 1540은 도 13의 변환자(1340)의 역할을 하거나 도 14의 참조번호 1425에서 백엔드 Y의 역할을 하는 프로세서를 각각 나타낸다. 참조번호 1570 및 1575는 도 13의 조정자(1350)의 역할을 하거나 도 14의 레지스트리(1440)의 역할을 하는 프로세서를 각각 나타낸다. 참조번호 1525 및 1555는 TOKEN 생성에 관련된 참가자로부터의 전송을 나타내고 참조번호 1530은 FATOKEN 생성에 관련된 참가자로부터의 전송을 나타낸다. 참조번호 1545 및 1565는 백엔드 또는 변환자의 역할을 각각 하는 발신 프로세서로부터의 TOKEN 생성에 관련된 전송을 나타낸다. 참조번호 1550은 백엔드 X 또는 백엔드 Y의 역할을 하는 발신 프로세서로부터의 FATOKEN 생성에 관련된 전송들을 나타낸다.
후속 논의는 보다 구체적으로 TOKEN 생성에 초점을 맞춘 것이다. 그러나 주요 원칙은 FATOKEN 생성에도 적용 가능하다. 디피 헬만 또는 폴리그 헬만 개인 키들을 통해 동작 되게 하는 값의 수신자는 NIST Special Publication 800-56Ar3 사양에 따라 적절한 공개 키 유효성 검사 루틴을 실행한다. 한 가지 수법에 의해, 공개 키 유효성 검사는 기계가 외부 소스(예컨대, 프로세서 파티션 대 프로세서 파티션, 참가자 대 프로세서 또는 프로세서 대 참가자)로부터 알려진 타원 곡선 점을 (가능하다면 국부 복호화 후에) 수신할 때마다 수행되어야 하며, 이를 스칼라 곱셈을 통해 연산하려고 한다. 여기에서 고려되는 문맥 내에서 P-256의 사양(여기에서 예로 사용된 타원 곡선) 때문에 수신된 값이 특정 의도된 곡선상의 한 점에 상응하는지를 확인하는 것이 유일한 필연적인 검사이다. ECDSA 디지털 서명의 수신자는 바람직하게는 (예컨대, 요청 유형에 의해 표시된 바와 같이) 참가자로부터 시작된 것으로 알려진 요청에 대해 조치를 취하기 전에 서명 및 서명자의 의도된 승인을 검증한다. 일 예로서, 프로세서 파티션은 공개 키 인증서가 현재 유효하고 참가자에 의해 소유된 것으로 주제 공개 키를 식별하는 신뢰할 수 있는 루트에 이르기까지 연결하는 공개 키 인증서를 검증할 수 있으며, 그러한 주제 공개 키는 요청 서명을 검증하는 데 사용된다. HMAC 값이 수신될 때마다, 이러한 값은 국부적으로 계산된 HMAC 값에 대한 매치에 대해 독립적으로 검사된다. HMAC(Hashed Message Authentication Code)는 HMAC 키를 알고 있는 것으로 엔티티의 데이터 무결성 및 인증을 검증하기 위한 한 대표적인 대칭 키 기반 메커니즘이다. 토큰 생성 프로토콜은 아마도 존재한다면 프로세서 파티션들 간에 직접적으로 (또는 중개 게이트웨이를 통해) 그리고/또는 참가자와 (프로세서(들) 또는 프로세서(들)에 대한 프런트 엔드로서의) 토큰 생성자 간에 직접적으로 그리고/또는 참가자와 조정자 또는 레지스트리 간에 직접적으로 전송 수준 보안에만 의존하지 않도록 심층 보안을 제공하도록 한다. 폴리그 헬만 암호 및 단일 패스(One-Pass) 디피 헬만 키 교환은 이하에서 가장 많이 사용된다. 토큰 생성 프로토콜 전반에 걸쳐, 달성해야 하는 것의 특성으로 인해 무작위 및 결정적 동작들의 조합이 배포된다. TOKEN 생성일 경우에, 목표는 토큰 생성 프로토콜의 전체 효과가 결정적이어서 각각의 INFO가 매번 동일한 TOKEN으로 끝나도록 하는 것이다. 그러나 무작위화가 다음과 같은 이유로 배포된다: (백엔드 파티션들에 의한 변환 후에 이러한 무작위화를 제거하는 것이 안전할 때까지) 백엔드로부터 INFO를 숨기기 위함; 도청자들로부터 파티션 간 통신을 모호하게 하기 위함; 프로세서 파티션의 일회성 타협(one-time-compromise)을 통해 이용할 수 없는 랜덤마이저(randomizer) 출력들에 대한 지식에 따라 파티션 간 키 확인 키에 대한 지식을 만들기 위함. 파티션 간 통신의 도청자는 이전에 처리된 입력들의 처리와 이전에 처리된 적이 없는 입력들의 처리를 구별할 수 없다. 참가자에 의한 INFO를 무작위로 은닉하는 것은 백엔드가 이전에 "본" INFO를 처리하는 것인지 여부를 의식하지 못하게 하는 데에도 잠재적으로 유용하다. 예를 들어, 다른 결과들을 초래하는 동일한 INFO의 백엔드에 의한 처리는 감사(audit) 중에 비정상적인 것으로 플래그가 지정될 수 있다. 일반적으로 각각의 프로세서는 모놀리식일 수도 있고 둘 이상의 파티션으로 분할될 수도 있다. 여기에서 프로세서들(백엔드 및 변환자)를 각각 2개의 파티션으로 분할할 수 있으며, 여기서 파티션들은 바람직하게는 설정 중에 상대 파티션들과 쌍을 이루는 독립적으로 보안된 모듈들이다. 악성이 아닌 경우, 양자 모두의 파티션들은 동일한 결과를 생성하게 된다. 이는 서비스의 품질에 대해 검사될 수 있다. 그러나 이는 참가자가 반드시 데이터 사본 2개를 수신한다는 의미가 아니다. 구현에는 2개의 프로세서, 다시 말하면 백엔드와 변환자가 포함되는 경우, 주어진 INFO를 그의 TOKEN에 매핑하는 것은 백엔드의 2개의 쌍으로 이루어진 파티션과 변환자의 2개의 쌍으로 이루어진 파티션에 보유된 폴리그 헬만 키들의 누적 지식에 따라 달라질 수 있다.
앨리스(Alice)는 타원 곡선 폴리그 헬만 암호를 사용하여 궁극적으로 공개 타원 곡선상에 주어진 (평문) 타원 곡선 점(P)를 밥(Bob)에게 전달하기를 원한다. 도 16을 지금부터 참조하면, 앨리스와 밥은 공유 비밀(l)을 지니며, 여기서 l은 1과 n - 1 사이의 정수이고, 여기서 n은 P의 소수(prime order)이다. 이것이 앨리스와 밥 간에 공유 비밀이 필요하기 때문에, 폴리그 헬만은 대칭 키 암호이지만 ECDH(Elliptic Curve Diffie-Hellman) 키 합의 및 ECDSA(Elliptic Curve Digital Signature Algorithm)과 같은 비대칭/공개 키 암호화 알고리즘에 공통적인 타원 곡선 스칼라 곱셈을 사용한다. 참조번호 1610에서, 앨리스는 P를 선택하고 Q = lP를 계산하며 그 값을 밥에게 보낸다. 참조번호 1620에서 밥은 수신된 값(Q)를 복호화하여 l -1 mod n을 적용함으로써 P를 복구한다.
도 17를 지금부터 참조하면, 앨리스는 밥에게 암호문(Q)를 전달하기를 원하지만 밥은 평문(P)를 복구하는 것을 원하지 않는다. 여기서 정수(k)는 앨리스만이 알고 있는 비밀이다. 참조번호 1710에서 앨리스는 P를 선택하고 Q = kP 를 계산하고 Q를 밥에게 보낸다. 참조번호 1720에서, 밥은 값(Q)를 받지만 k에 대한 지식이 없으면 Q를 해독할 수 없다.
도 18을 지금부터 참조하면, 3가지의 작동자(actor), 다시 말하면, 참가자, 백엔드 및 변환자가 있다. 3가지 작동자는 토큰을 생성하거나 만들어내기 위해 상호 작용할 수 있다. 참가자는 도 16의 타원 곡선 폴리그 헬만 암호를 적용하고, 참조번호 1810에서 P의 선택, 생성 또는 파생된 값에 대해 암호화 역할을 수행하고 참조번호 1830에서 참조번호 1820의 결과에 대한 암호 복호화 역할을 수행한다. 백엔드와 변환자 양자 모두가 도 17의 일-방향 타원 곡선 폴리그 헬만 암호를 적용하고, 이를 참조번호 1820에서 참조번호 1810의 결과 및 참조번호 1840에서 참조번호 1830의 결과를 각각 적용한다. 참가자에의 암호화 및 복호화 동작들의 효과는 궁극적으로 그의 값에 영향을 미치지 않으면서 INFO를 나타내는 P를 백엔드로부터 블라인드하는 것이다. 다시 말하면, 참조번호 1810, 1820 및 1830으로 구성된 3가지 부분 동작을 동일한 참가자에 의해서나 또는 여러 참가자에 걸쳐 독립적으로 매번 시작한 특정 INFO 값에 대해 여러 번 실행하면 단지 백엔드만이 INFO 값에 대해 직접 동작한 것과 같은 값이 된다. 일-방향 타원 곡선 폴리그 헬만은 발신 INFO 값이 상응하는 TOKEN으로부터 실행 가능하게 검색 가능하지 않게 하기 위해 INFO 값들로부터 TOKEN들을 만들어내는 데 사용된다.
앨리스와 밥은 그들 간에 공유 비밀을 확립하기를 원한다. 밥은 먼저 작동하고 공개 키를 생성하며 이를 게시한다. 이러한 시점 이후에는 언제든지, 앨리스는 이러한 프로세스의 결과를 사용하여 원-패스 타원 곡선 디피 헬만 키 교환을 통해 그들 중 둘 간에 공유 비밀을 만들어 낸다. 도 19를 지금부터 참조하면, 그리고 원-패스 타원 곡선 디피 헬만을 더 구체적으로 설명하기 위해, 참조번호 1910에서 밥은 비교적 정적인 개인-공개 키 쌍 [n B , n B G]을 설정한다. 참조번호 1920에서, 앨리스는 임시 개인-공개 키 쌍[n A , n A G]을 계산하고 nA를 밥의 공개 키에 적용하여 밥과 공유되는 비밀을 계산한다. 참조번호 1930에 도시된 바와 같이 밥이 공유 비밀을 복구하는 메커니즘은 밥이 앨리스의 임시 공개 키에 n B 를 적용하는 것이다. 도 19에는 도시되어 있지 않지만, 앨리스는 신뢰할 수 있는 메커니즘을 통해 밥의 공개 키를 수신할 수 있으며 그럼으로써 밥에 실제로 연관된 것으로 알려지게 되고 밥은 앨리스에 연관된 것으로 알려진 임시 공개 키가 실제로 있음을 보장할 수 있게 된다. 밥이 이러한 보장을 획득하기 위한 메커니즘 중 하나는 앨리스가 앨리스에 연관되기 위해 밥에 의해 신뢰 되는 서명 검증 공개 키에 연관된 비교적 정적인 서명 생성 개인 키를 사용하여 임시 공개 키에 서명하는 것이다. 토큰 생성 프로토콜 동안, 프로세서들은 도 19의 밥의 역할을 하며 설정 동안 그들의 공개 키들을 만들어낸다. 참가자들은 도 19의 앨리스의 역할을 하며 그럼으로써 프로세서와의 공유 비밀을 이용하여 정보를 프로세서에 안전하게 전달하고 프로세서로부터 정보를 안전하게 수신하는 데 사용되게 할 키(들)를 파생하거나 전송한다(여기서, 관련 초기화 벡터와 함께, 기밀성 보호를 위한 암호문에 추가하여 무결성 검증을 위한 인증 태그들의 사용이 이루어질 수 있음). 이러한 정보의 예들에는 참가자로부터 백엔드 프로세서로 전송되는 INFO의 블라인드 버전 및 종단 간 암호화의 의도된 타깃에 관련된 트랜잭션 처리를 위해 참가자에 의해 차후에 사용하도록 종단 간 암호화된 TOKEN 값으로 구성된 정보로 참가자에게 응답하는 변환자 프로세서에 참가자에 의해 보내진 백엔드로부터의 정보로서 참가자에 의해 수신된 중간 TOKEN 값의 블라인드되지 않은 버전을 포함하는 타원 곡선 점이 포함된다. 이러한 의도된 타깃은 예를 들어 조정 네트워크 요소의 역할을 하는 조정자일 수 있다. 바람직하게는 검증 가능한 복호화의 결과로서 참가자에 의해 복구된 중간 TOKEN 값은 예컨대 바람직하게는 참가자로부터 검증 가능하게 발생하는 것으로서의 변환자에게로의 타깃된 전달을 위해 암호화되기 전에 블라인딩 인자를 제거하도록 처리될 수 있다.
RSSD(Randomized Shared Secret Derivation) 알고리즘은 분할된 백엔드 또는 변환자에서 폴리그 헬만 계산 또는 원-패스 디피 헬만의 수신자 측을 수행할 때마다 사용된다:
Figure pct00004
상기 알고리즘은 RSSD[x; Q; 2] 로서 표기됨;
Figure pct00005
상기 알고리즘을 수행하는 프로세서(백엔드 또는 변환자)는 2개의 파티션으로 분할되게 됨;
Figure pct00006
각각의 파티션(i)는 r i € [1, n - 1] 을 생성함;
Figure pct00007
각각의 파티션(i)는 x = (x 1, x 2)일 경우 x i를 소유하게 됨;
Figure pct00008
곡선(E) 상의 점(Q)의 사용이 이루어짐.
도 20을 지금부터 참조하면, 프로세서가 2개의 서브-프로세서로 분할되는 경우에 RSSD의 단계들이 도시된다. 참조번호 2020에서, 각각의 파티션(i)은 참조번호 2010의 그의 r i Q에 적용하고 그 결과를 다른 파티션으로 전달한다. 참조번호 2030에서, 각각의 파티션(i)은 참조번호 2020으로부터 받은 값에 그의 x i 를 적용하고 그 결과를 다른 파티션에 전달한다. 참조번호 2040에서, 각각의 파티션(i)은 참조번호 2030으로부터 받은 값에 그의 r i - 1 x i mod n을 개인적으로 적용한다. 여기서 유념할 점은 동일한 프로세서 유형에 로드 밸런싱 및/또는 시스템 복구 기능의 인스턴스에서 주어진 유형의 프로세서를 각각 포함하는 여러 파티션 쌍이 있는 경우 각각의 파티션 쌍에는 연관된 번호가 있어야 한다는 것이다. 프로세서 파티션은 그의 파티션 번호, {1} 또는 {2}, 및 그것이 속한 파티션 쌍 번호로 구성된 ID로 식별된다.
RSSD를 실행할 때 프로세서 내 통신을 보호하기 위해 이하의 프로세스가 사용될 수 있다. 프로세서 파티션 ID 및 패스 유형(폴리그 헬만의 경우 PH 그리고 디피 헬만의 경우 DH) 및 패스 번호(예컨대, {PH2} 또는 {DH1})를 포함하는 헤더가 전달되는 데이터에 추가된다. 이는 이러한 프로세서 내 현재 h-키를 사용하여 HMAC 된다. 그 결과는 데이터와 함께 전달되는 HMAC 태그:(data, HMAC h-key (data || 프로세서 파티션 ID || PH 또는 DH 및 전달 #))이다. 예를 들어, 파티션 1로부터 파티션 2로 전송된 폴리그 헬만 계산의 두 번째 패스는 (x 1 r 2 Q, HMAC h-key (x 1 r 2 Q||{1}||{PH2}))와 같다.
위의 예에서는 동일한 프로세서 유형의 파티션 쌍이 여러 개 없다고 가정한다. 한 파티션이 다른 한 파티션에 의해 상기 한 파티션에 제공되거나 한 참가자에 의해 제공된 임의의 점상에서 작동하기 전에, 이는 공개 키 유효성 검사를 수행해야 하며, 이 경우에 그 점이 타원 곡선상에 있는지를 확인하기만 하면 된다.
여기서 r 1r 2에 의해 제공되는 통신 블라인드의 최대 효과(차후에 논의되겠지만 구성 r 1 r 2 Q를 사용하여 키 확인 HMAC 키를 공식화할 때 r 1r 2 의 사용)를 위해, r 1r 2 값들은 각각 임의 비트 생성자(random bit generator; RBG)의 출력이어야 하며, 이는 라이브 엔트로피 소스(Live Entropy Source)의 그의 일관된 사용을 통해 예측 저항(Prediction Resistance)을 제공한다.
RSSD 알고리즘은 다음과 같은 특징으로 요약될 수 있다: 정적 수신자 측 원-패스 DH 또는 정적 PH 암호화를 수행하는 SMC(Secure Multi-party Computation) 방법 그에 의해 각각의 파티션은 (1) 임시 폴리그 헬만 암호화를 수행한 다음에, (2) 정적-임시 디피 헬만 통신의 정적 측면에 이어, (3) 동시 적용된 임시 폴리그 헬만 복호화와 정적-임시 디피 헬만 공유 비밀 파생의 정적 측면을 수행한다. (3)에서, 폴리그 헬만 및 디피 헬만은 이러한 결합 계산이 x 2 r 1 Q의 스칼라 승수로서 예를 들어 r 1 -1 x 1 mod n을 사용함으로써 가장 효율적으로 수행된다는 점에서 "동시 적용"된다. 2개의 스칼라의 모듈식 곱셈은 (비록 (r 1 -1 x 1 mod n)(x 2 r 1 Q) = r 1 - 1(x 1(x 2 r 1 Q))) 이더라도) 타원 곡선 점의 스칼라 곱셈보다 계산상 훨씬 더 효율적이다.
백엔드 또는 변환자의 k개의 파티션을 다루는 일반화된 무작위 공유 비밀 파생 알고리즘의 사용이 이루어질 수 있다. 그 구현에서:
Figure pct00009
이러한 알고리즘의 입력은 RSSD[x; Q; k] 로서 표기되고;
Figure pct00010
상기 알고리즘을 수행하는 프로세서(백엔드 또는 변환자)는 k개의 파티션으로 분할되게 되며;
Figure pct00011
각각의 파티션(i)은 ri € [1, n - 1] 을 생성하고;
Figure pct00012
각각의 파티션(i)는 x = (x 1, x 2, …, x k)일 경우 x i를 소유하게 되며;
Figure pct00013
곡선(E) 상의 점(Q)의 사용이 이루어진다.
도 21을 지금부터 참조하면, RSSD의 단계들은 프로세서가 k개의 서브-프로세서로 분할되는 경우로 나타나 있다. 참조번호 2120에서, 각각의 파티션(i)는 참조번호 2110의 그의 r iQ에 적용하고 그 결과를 파티션 i+1 mod k에 전달한다. 참조번호 2130에서, 각각의 파티션(i)은 그의 x i를 참조번호 2120으로부터 받은 값에 적용하고, 그 결과를 파티션 i+1 mod k에 전달한다. 이 다음에는 k-2번의 반복이 뒤따르며, 각각의 파티션(i)은 그의 x i를 참조번호 2130으로부터 받은 마지막 값에 적용하고, 그 결과를 파티션 i+1 mod k에 전달한다. 참조번호 2140에서, 각각의 파티션(i)은 그의 r i - 1 x i mod n을 참조번호 2130으로부터 받은 마지막 값에 개인적으로 적용한다.
시스템 설정을 위한 계산들은 TOKEN 또는 TOKEN들의 배치(batch)가 생성될 때마다 수행되어야 할 토큰 생성 프로토콜의 단계들을 설명하기 전에 이하에서 설명된다.
백엔드(2230)의 경우에 대해 도 22를 지금부터 참조하면, 초기 키 자료, 다시 말하면 바람직하게는 무작위로나 또는 의사-무작위로 선택된
Figure pct00014
Figure pct00015
, 다시 말하면 한 쌍의 각각의 값이 [1, n-1]의 요소로 간주되는 경우 참조번호 2210에서 안전하게 생성되는 것이 바람직하며 참조번호 2220에서 제어된 환경 내에서 프로세서 파티션들을 프로비저닝하고 페어링하는데 사용하기 위해 안전하게 유지되는 것이 바람직하다. 그러한 통제된 환경은 예컨대 통신이 국부화 되는 시나리오에서 물리적 보안 조치 및/또는 다중 사람 통제를 포함할 수 있다. 그러한 제어된 환경은 대안으로 또는 추가로 미리 배치된 키들의 사용을 포함할 수 있으며, 예컨대 이러한 경우는 설정 통신들이 잠재적인 개방 채널을 통해 원격으로 수행되는 경우이다. 도 22에 도시된 경우 - 파티션들 자체가 공동으로 초기 키 자료를 생성하지 않는 경우 - 는 여러 파티션 쌍이 독립적으로 동작할 수 있고 각각의 파티션 쌍이 TOKEN 값에 대한 INFO 값의 고유한 매핑을 희생하지 않으면서 (변환자 프로세서 유형이 유사하게 다루어질 수 있음을 이해할 수 있으므로 도 22에 백엔드 프로세서 유형이 도시되어 있는) 주어진 프로세서 유형의 프로세서로서 동작한다는 점에서 로드 밸런싱을 가능하게 하고 가용성 및 복구 가능성을 보장하는 데 유용한다. 키들이 복원되게 할 필요가 없는 단일 파티션 쌍만이 있는 경우 분배 단계가 불필요한 것으로 간주 될 수 있다. 참가자들은 실제로 그들의 요청들을 처리하는 파티션 쌍을 인식하지 못한 채로 있을 수 있다. 파티션 보안을 위해, 각각의 파티션 쌍은 프로세서 쌍 내부 공유 비밀을 만들어내기 위해 참조번호 2240에서 RSSD[e;G;2] 를 실행할 수 있고, 여기서
Figure pct00016
는 각각의 임시 형태가
Figure pct00017
을 이루는 무작위로 선택된 임시 형태들
Figure pct00018
Figure pct00019
로 구성된다. RSSD의 퇴화 형태 [e; G; 2]가 사용되는 경우, 다시 말하면
Figure pct00020
이고
Figure pct00021
일 경우,
Figure pct00022
는 파티션들이 그러한 전달을 제거하도록 프로그램된 경우에 통신될 필요가 없다. 참조번호 2250에서는, (예컨대, 표준 추출 및 확장 방법을 사용함으로써) 각각의 파티션 내 이러한 공유 비밀로부터 HMAC 키(h-key)가 파생된다. 이는 내부 HMAC 키이며 정기적으로 업데이트되게 되고 쌍을 이루는 파티션들 간 프로세서 내 엔티티 인증 및 데이터 무결성에 사용되게 된다. 추출 및 확장은 또한 참조번호 2260에서
Figure pct00023
,
Figure pct00024
,
Figure pct00025
Figure pct00026
를 업데이트하도록 설정 동안 사용될 수 있다. 도 24의 참조번호 2440에는 업데이트 프로세스가 도시되어 있다. 파티션 쌍이 하나만 있는 경우, 참조번호 2260에서 이하의 상황이 발생할 수 있다: 각각의 파티션(i)은
Figure pct00027
에서 선택된 무작위(
Figure pct00028
)를 생성하며,
Figure pct00029
는 복구에 필요한 경우 보안 오프라인 저장소에 백엔드의 i번째 파티션에 의해 보관되고, 이러한
Figure pct00030
들은 나중에 변경될 수 있도록 국부적으로 보관되고 그럼으로써 결과물들
Figure pct00031
을 손상시키지 않게 되며, 백엔드 파티션 쌍의 i번째 파티션도 참조번호 2260에서
Figure pct00032
에서 선택된 개인 키(
Figure pct00033
)를 생성 및 유지한다. 이러한
Figure pct00034
들은 폴리그 헬만 암호화를 수행하는 데 사용된다. 이를 안전하게 보관하면 필요할 때 이전 세대의 TOKEN 값과의 일관성이 유지되어야 하는 경우 시스템 복구 시 폴리그 헬만 암호문을 복제할 수 있게 된다. 임의의 백엔드 파티션 쌍(하나만이든 그 이상이든)은 참조번호 2270에서 RSSD[b;G;2]를 실행하며 그럼으로써 공개 키
Figure pct00035
를 생성할 수 있다. 이러한 공개 키는 원-패스 디피 헬만 교환을 위해 개시자에 의해 사용된다. 여기서 유념할 점은 공유 비밀을 재구성하기 위해 원-패스 디피 헬만의 수신자 측 상에서 b가 사용된다는 것이다. 임시 공유 비밀 생성과 관련하여 위에서 설명한 바와 같이, RSSD[b; G; 2] 는 여기에 적용될 수 있다. 백엔드 공개 키
Figure pct00036
는 신뢰 당사자들이 이러한 책임을 다하는 것으로 인정되는 기관에 의해 서명되어 있는 제출된 트랜잭션들을 수반하는 블록체인에 관한 게시와 같은 표준 공개 키 인증서 또는 기타 메커니즘을 사용하여 공개된다. 도 22는 적절한 키 생성을 위해 변환자의 경우에도 적용될 수 있다.
도 23을 지금부터 참조하면, 참가자(2310)는 참조번호 2320에서 다음과 같은 방식으로 타원 곡선(E) 상의 점(P)을 INFO로부터 생성한다: (1) INFO를 받아들임; (2) INFO에 모두 0으로 시작하는 16비트 패드를 추가함, 다시 말하면
Figure pct00037
임; (3)
Figure pct00038
임을 생성하는 256비트 해시 값을 계산함; (4)
Figure pct00039
가 2차 잔차(quadratic residue), 이른바
Figure pct00040
인지를 결정함. 그러하지 않을 경우, 상기 패드에 1을 추가하고 이러한 단계를 수행함; (5) 일단 유효한
Figure pct00041
가 발견되면
Figure pct00042
임을 정의하기로 함. (0을 포함하는) 2차 잔차가
Figure pct00043
존재함. 결과적으로,
Figure pct00044
가 시도될 때마다,
Figure pct00045
가 2차 잔차를 생성할 가능성이
Figure pct00046
존재함.
Figure pct00047
가 2차 잔차를 생성할 확률이 대략
Figure pct00048
존재하므로, 이러한 루프는 광범위하지 않아야 함. 이러한 것이 2차 잔차를 발견하기 전에 모든 16비트를 통해 실행되는 경우 해시를 해시(해시)로 바꾸고 (c) 및 (d)를 다시 실행하기로 함. 이러한 잠재적으로 반복적인 기술(예컨대, "해시(해시(해시(INFO || 패드)))을 사용하는 대신에, 패드의 비트 크기는 더 크게 이루어질 수 있음, 예컨대 32비트 패드; (6) 바이어스(bias)를 회피하기 위해 이하와 같은 추가 검사가 추가되어야 함. 모듈로 p 랩어라운드를 포함하는 임의의 후보 x-좌표 값들을 배제하기로 함, 다시 말하면,
Figure pct00049
(또는 반복 해싱이 필요한 경우
Figure pct00050
). 이러한 바이어스 회피 기법은,
Figure pct00051
이므로, 계산시에 무시할 수 있는 영향을 미침; (7)
Figure pct00052
이도록
Figure pct00053
Figure pct00054
감소된
Figure pct00055
중 더 작은 값인
Figure pct00056
로 표시하기로 함. 이때, 점(P)는
Figure pct00057
로서 정의된다. 참가자(2310)는 이제 참조번호 2330에서
Figure pct00058
로 랜덤(l)을 생성하고
Figure pct00059
임을 계산함으로써 폴리그 헬만 암호를 수행한다. 백엔드로부터의 응답에 (복호화 이후) 적용될 때까지
Figure pct00060
을 계산 및 유지하기로 한다. 참가자(2310)는 참조번호 2340에서 원-패스 디피 헬만의 개시자 역할을 한다. 먼저, 그들은 원-패스 디피 헬만 계산을 위한 다음 단계에서 사용되어야 할 임시 개인 키에 대한 임의의 정수(
Figure pct00061
)를 생성한다. 참가자(2310)는 이제 원-패스 디피 헬만 공유 비밀
Figure pct00062
Figure pct00063
인 것임을 만들어 내도록 B
Figure pct00064
와 승산한다. 참가자(2310)는 원-패스 디피 헬만용으로 사용되는 공개 키
Figure pct00065
Figure pct00066
를 만들어내도록 G
Figure pct00067
와 승산한다. 이는 백엔드가 공유 비밀을 계산할 수 있게 하도록 백엔드에 전달되게 된다. 참가자(2310)는 참조번호 2350에서
Figure pct00068
을 사용하여 암호화한다. 그들은
Figure pct00069
Figure pct00070
Figure pct00071
에 대해 추출 및 확장한다. 키에 대해
Figure pct00072
을 사용하여
Figure pct00073
를 AES-GCM 모드로 암호화하게 한다.
Figure pct00074
키는 정보를 반환할 때 백엔드로부터 자료를 복호화하는 데 사용된다. AES-GCM 모드에 대한 IV는 암호화에서 사용하기 위해 무작위로 생성되고 백엔드에 의한 복호화에서 사용하기 위해 전송된다. 대안으로, IV 값들은, 바람직하게는 동일한 키를 사용하여 차후의 메시지들을 암호화하기 위해 동일한 IV 값을 사용하지 않는 것으로 보장되는 한 추출 및 확장을 통해 생성될 수 있다.
Figure pct00075
,
Figure pct00076
및 임시 개인 키(
Figure pct00077
)는 폐기되어야 한다. 참가자(2310)는
Figure pct00078
를 만들어내도록 참조번호 2360에서 그들의 ECDSA 서명 생성 개인 키를 사용하여
Figure pct00079
임을 서명한다. 참가자(2310)는 도 24 상에서
Figure pct00080
을 백엔드(2410)에게로 전송한다.
도 24를 지금부터 참조하면, 백엔드(2410)는 참조번호 2420에서
Figure pct00081
가 유효한 서명임을 검증한다. 백엔드(2410)는 참조번호 2430에서 원-패스 디퍼 헬만의 수신자 역할을 한다. 먼저, 그들은
Figure pct00082
가 타원 곡선상에 있는지를 검사함으로써 공개 키 유효성 검사를 수행하여야 한다. 이제 백엔드(2410)는 원-패스 디퍼 헬만에서 사용하기 위한 공유 비밀
Figure pct00083
Figure pct00084
를 복구하도록
Figure pct00085
를 실행한다. 이러한 알고리즘 동안 검출 가능한 오류가 발생하면, 이러한 알고리즘을 다시 시작하게 한다. 백엔드 및 변환자의 지속적인 오류가 선택된 최대 오류 이상으로 발생할 때마다, 그 TOKEN의 처리가 종료되고 오류 메시지가 다시 시도하기 위해 참가자에게 보내진다. 백엔드(2410)는 참조번호 2440에서
Figure pct00086
,
Figure pct00087
,
Figure pct00088
로 [
Figure pct00089
을 추출 및 확장하고,
Figure pct00090
,
Figure pct00091
.
Figure pct00092
,
Figure pct00093
는 개인 키
Figure pct00094
Figure pct00095
의 업데이트를 위해 사용된다. 이는 백엔드(2410)에 연관된 비밀들, 특히 폴리그 헬만의 집합적으로 액세스 가능한 비밀
Figure pct00096
mod n에 대한 위에서 언급한 집합적 액세스에 영향을 주지 않고
Figure pct00097
,
Figure pct00098
,
Figure pct00099
Figure pct00100
의 업데이트를 초래한다.
Figure pct00101
는 백엔드(2410) 내에서 내부 HMAC 키를 업데이트하는 데 사용된다. 양자 모두의 파티션들은 새로운 내부 HMAC 키들을 생성한다:
Figure pct00102
. 파티션 1은
Figure pct00103
Figure pct00104
을 계산한다. 파티션 2는
Figure pct00105
Figure pct00106
을 계산한다. 파티션 1 및 파티션 2(소프트)는 개인 키의 모듈로 n 곱들을 불변으로 유지하기 위해 동시에 업데이트한다: 파티션 1 -
Figure pct00107
;
Figure pct00108
그리고 파티션 2 -
Figure pct00109
;
Figure pct00110
. 백엔드(2410)는 참조번호 2450에서
Figure pct00111
를 복구하도록
Figure pct00112
를 수행함으로써
Figure pct00113
을 사용하여 복호화한다. 백엔드(2410)는 참조번호 2460에서 그들의 폴리그 헬만을 수행한다. 먼저, 그들은
Figure pct00114
가 타원 곡선상에 있는지를 검사함으로써 공개 키 유효성 검사를 수행해야 한다. 백엔드(2410)는 이제
Figure pct00115
를 실행하여
Figure pct00116
를 만들어 낸다. 상기 알고리즘의 첫 번째 패스 동안 오류가 발생한 경우, 이것은 HMAC 태그가 거부되었기 때문임을 의미할 수 있다. 이것이 사실이라면 소프트 업데이트 섹션에서 수행된 모든 동작들을 역전시키고 디피 헬만을 다시 수행하게 한다. 두 번째 패스 동안 오류가 발생한 경우, 폴리그 헬만을 다시 시작하게 한다(이는 상기 알고리즘을 실행하는 것임). 백엔드(2410)는 이제 참조번호 2470에서 키 확인을 실행한다. 이렇게 하려면 이는 키 확인 및 IV 생성: K를 위해
Figure pct00117
로부터 HMAC 키를 추출 및 확장해야 한다. 백엔드(2410)는 1회용 키 확인 HMAC 키:
Figure pct00118
을 생성하며, 여기서
Figure pct00119
는 폴리그 헬만용으로 사용된 RSSD, 다시 말하면
Figure pct00120
동안 교환되는
Figure pct00121
Figure pct00122
로부터 (파티션 1은
Figure pct00123
을 사용하고 파티션 2는
Figure pct00124
를 사용함으로써) 계산 가능하다.
Figure pct00125
를 생성하기로 한다. 사용된 실제 IV를 형성하기 위해 원하는 비트 수로
Figure pct00126
를 트렁케이트(truncate)하게 한다. 백엔드(2410)에서의 파티션들은 위에서 마지막으로 성공한 디피 헬만과 마지막으로 성공한 폴리그 헬만의 기록에 대해 키 확인 절차를 실행하게 된다. 키 확인이 거부되면, 폴리그 헬만 알고리즘을 다시 시작하게 한다. 일단 이것이 확인되면, 참조번호 2440의 소프트 업데이트를 하드 변경하게 한다. 백엔드(2410)는 이제 상기 키 및 상기 새로이 생성된 IV에 대해
Figure pct00127
를 사용하여 AES-GCM로 참조번호 2480에서
Figure pct00128
를 암호화한다. 백엔드(2410)는
Figure pct00129
를 도 25 상의 참가자(2510)에게 보낸다.
도 25를 지금부터 참조하면, 참가자(2510)는
Figure pct00130
, 연관된 IV 및 인증 태그를 사용하여 참조번호 2520에서 복호화한다.
Figure pct00131
를 복구하기 위해
Figure pct00132
를 수행하게 한다. 참가자(2510)는 참조번호 2530에서 그들의 폴리그 헬만을 수행한다. 먼저, 그들은
Figure pct00133
가 타원 곡선상에 있는지를 검사함으로써 공개 키 유효성 검사를 수행해야 한다. 참가자(2510)는 이제
Figure pct00134
를 계산한다. 이는 폴리그 헬만 복호화 프로세스이다. 이러한 결과는 변환자에 대해 암호화되게 된다. 참가자(2510)는 참조번호 2540에서 원-패스 디피 헬만의 개시자 역할을 한다. 먼저, 그들은 원-패스 디피 ㅎ헬만 계산을 위한 다음 단계에서 사용되게 할 임시 개인 키에 대해
Figure pct00135
내 임의의 정수(
Figure pct00136
)를 생성한다. 참가자(2510)는 이제 변환자의 디피 헬만 공개 키(T)에
Figure pct00137
를 곱하여
Figure pct00138
를 만들어 내고, 이는 원-패스 디피 헬만 공유 비밀
Figure pct00139
이다. 참가자(2510)는 이제 G
Figure pct00140
를 곱하여
Figure pct00141
를 만들어 내고, 이는 원-패스 디피 헬만에 대해 사용되는 공개 키
Figure pct00142
이다. 이는 변환자에게로 전달되어 변환자가 공유 비밀을 계산하게 된다. 참가자(2510)는
Figure pct00143
를 사용하여 참조번호 2550에서 암호화한다. 그들은
Figure pct00144
Figure pct00145
Figure pct00146
를 추출 및 확장한다. 상기 키에 대해
Figure pct00147
를 사용하여 AES-GCM 모드로
Figure pct00148
를 암호화하게 한다. 상기 [key; Back → Par] 키는 정보를 반환할 때 변환자로부터 자료를 복호화하는 데 사용된다. AES-GCM 모드에 대한 IV는 암호화에 사용하기 위해 무작위로 생성되고 변환자에 의한 복호화에 사용하기 위해 전송된다. Enc_TOKEN이 업데이트되어야 할 때마다
Figure pct00149
를 사용되어야 할 참가자 데이터베이스에 저장하게 한다.
Figure pct00150
,
Figure pct00151
및 임시 개인 키(
Figure pct00152
)는 (참가자 불변 중간 TOKEN 값
Figure pct00153
의 국부 노출을 가능하게 하지 않도록) 폐기되어야 한다. 참가자(2510)는
Figure pct00154
를 만들어 내기 위해 참조번호 2560에서 그들의 ECDSA 서명 생성 개인 키를 사용하여
Figure pct00155
임을 서명한다. 참가자(2510)는
Figure pct00156
를 도 26 상의 변환자(2605)에게로 보낸다.
도 26을 지금부터 참조하면, 변환자(2605)는 참조번호 2610에서
Figure pct00157
가 유효한 서명인지를 검증한다. 변환자(2605)는 참조번호 2615에서 원-패스 디피 헬만의 수신자 역할을 한다. 먼저, 그들은
Figure pct00158
가 타원 곡선상에 있는지를 검사함으로써 공개 키 유효성 검사를 수행한다. 변환자(2605)는 이제
Figure pct00159
를 실행하여 원-패스 디피 헬만에서 사용하기 위한 공유 비밀
Figure pct00160
Figure pct00161
를 복구한다. 이러한 알고리즘 동안에 검출 가능한 오류가 발생하면 이러한 알고리즘을 다시 시작하게 한다. 백엔드와 변환자의 지속적인 오류가 선택된 최대 오류 이상으로 발생할 때마다 그 TOKEN의 처리가 종료되고 오류 메시지가 다시 시도하기 위해 참가자에게로 전송된다. 변환자(2605)는 참조번호 2620에서
Figure pct00162
,
Figure pct00163
,
Figure pct00164
로 [
Figure pct00165
를 추출 및 확장하고,
Figure pct00166
,
Figure pct00167
.
Figure pct00168
Figure pct00169
는 개인 키들
Figure pct00170
Figure pct00171
의 업데이트를 위해 사용된다.
Figure pct00172
는 변환자(2605) 내에서 내부 HMAC 키를 업데이트하는 데 사용된다. 양자 모두의 파티션들은 새로운 내부 HMAC 키를 생성한다:
Figure pct00173
. 파티션 1은
Figure pct00174
Figure pct00175
을 계산한다. 파티션 2는
Figure pct00176
Figure pct00177
을 계산한다. 파티션 1과 파티션 2(소프트)는 개인 키들의 모듈로 n 곱들을 불변으로 유지하기 위해 동시에 업데이트한다: 파티션 1 -
Figure pct00178
;
Figure pct00179
그리고 파티션 2 -
Figure pct00180
;
Figure pct00181
. 변환자(2605)는
Figure pct00182
를 복구하기 위해
Figure pct00183
를 수행함으로써 참조번호 2625에서
Figure pct00184
를 사용하여 복호화한다. 변환자(2605)는 참조번호 2630에서 그들의 폴리그 헬만을 수행한다. 먼저, 그들은
Figure pct00185
가 타원 곡선상에 있는지를 검사함으로써 공개 키 유효성 검사를 수행해야 한다. 변환자(2605)는 이제
Figure pct00186
를 실행하여 폴리그 헬만 암호문을 생성한다:
Figure pct00187
. 상기 알고리즘의 첫 번째 패스 동안에 오류가 발생하면 이는 HMAC 태그가 거부되었기 때문임을 의미한다. 이것이 사실이라면 소프트 업데이트 섹션에서 수행된 모든 동작들을 역전시키고 디피 헬만을 다시 수행하게 한다. 두 번째 패스 동안에 오류가 발생하면 폴리그 헬만을 다시 시작하게 한다(이는 상기 알고리즘을 실행하는 것임). 변환자(2605)는 이제 참조번호 2635에서 키 확인을 실행한다. 이렇게 하려면, 이는 키 확인 및 IV 생성: K를 위해
Figure pct00188
로부터 HMAC 키를 추출 및 확장해야 한다. 변환자(2605)는 일회용 키 확인 HMAC 키:
Figure pct00189
을 생성하며, 여기서
Figure pct00190
는 폴리그 헬만용으로 사용되는 RSSD 프로세스로부터 계산 가능하다.
Figure pct00191
을 생성하게 한다. 사용된 실제 IV1을 형성하기 위해 원하는 비트 수로
Figure pct00192
를 트렁케이트(truncate)하게 한다.
Figure pct00193
을 생성하게 한다. 사용된 실제 IV2를 형성하기 위해 원하는 비트 수로
Figure pct00194
를 트렁케이트하게 한다. 변환자(2605)의 파티션들은 위에서 마지막으로 성공한 디피 헬만과 마지막으로 성공한 폴리그 헬만의 기록에 대해 키 확인 절차를 실행하게 된다. 키 확인이 거부되면 폴리그 헬만 알고리즘을 다시 시작하게 한다. 이것이 확인되면 참조번호 2620의 소프트 업데이트를 하드 변경하게 한다. 마지막으로, 변환자(2605)는 해시 함수가 타원 곡선 점으로부터 파생된 비트 문자열에 적용되는 참조번호 2640에서 해시를 수행한다:
Figure pct00195
. 변환자(2605)는 조정자(C)와 공유되는 대칭 키를 사용하고
Figure pct00196
을 사용하여 참조번호 2645에서 AES-GCM 모드로 TOKEN을 암호화한다: Enc_TOKEN
Figure pct00197
. 여기서 유념할 점은 C가 적어도
Figure pct00198
번 사용할 때마다 변경되는 것이 바람직하다는 것이다. 변환자(2605)는 이제
Figure pct00199
Figure pct00200
를 사용하여 참조번호 2650에서 AES-GCM으로 Enc_TOKEN을 암호화한다:
Figure pct00201
. 이는 참가자에게로 전송된다. 참가자는 Enc_TOKEN을 복구하기 위해 복호화를 수행한다. 이는 참가자의 데이터베이스에 저장되며 그들이 트랜잭션이나, 또는 요청에 TOKEN을 포함하기를 원할 때마다 조정 네트워크 요소로 조정자에게로 제출된다. 이전에 언급된 도면들에 관련된 Enc_TOKEN과 관련하여: 참가자는 도 13의 참조번호 1345에 도시된 바와 같이 (ECDH 공유 비밀의 추출 및 확장으로부터의 대칭 키를 사용하여 암호화된) 변환자로부터 Enc_TOKEN을 수신하며; Enc_TOKEN은 도 5 및 도 7의 참조번호 515 및 715의 g(TOKEN)에 상응한다.
TOKEN들에 대한 배치 요청(batched request)을 수행하는 참가자와 관련하여, 도 23, 도 24, 도 25 및 도 26에 도시된 절차는 다음과 같은 방식으로 수행될 수 있다:
참가자는 각각의 INFO를 대표하는 점들을 만들어 내기 위해 참가자가 처리하기를 원하는 각각의 INFO에 대해 도 23의 참조번호 2320을 통해 실행된다. 참가자는 도 23의 참조번호 2330에서와같이 매번 무작위로 선택된 동일한 l을 사용하여 모든 점에 대해 그들의 폴리그 헬만 암호를 수행한다. 참가자는 도 23의 참조번호 2340, 2350, 2360에서 요약된 프로세스를 실행한다. 하나의 디피 헬만 공유 비밀이 만들어져서
Figure pct00202
의 전체 배치(whole batch)를 함께 암호화하는 데 사용된다. 암호화된 배치(batch)는 서명되어 백엔드에게로 전송된다. 백엔드는 도 24의 참조번호 2420, 2430, 2440, 2450에서 요약된 프로세스를 실행한다. 복호화된 배치(batch)는
Figure pct00203
의 리스트이다. 백엔드는 도 24의 참조번호 2460에 요약된 바와 같이 모든
Figure pct00204
에 대해 공개 키 유효성 검사를 실행한다. 백엔드는 폴리그 헬만 프로세스로 진행된다. 배치 처리할 때, 도 24의 참조번호 2460에서의 폴리그 헬만에 대한 RSSD는 다음과 같이 실행된다: (1) RSSD의 전체 실행을 위해 각각의 파티션에서 무작위로 선택된
Figure pct00205
가 사용된다. (2) 전체 배치가 각각의 패스 동안 실행되어 상대 파티션으로 다 함께 전송된다. (3) 그 결과: 모든 주어진
Figure pct00206
에 대해, 생성된
Figure pct00207
가 존재한다. 도 24의 참조번호 2470에서 요약된 키 확인은
Figure pct00208
의 전체 리스트에 대해 수행된다. 백엔드는 도 24의 참조번호 2480에서 요약된 바와 같이 공유 비밀로부터 파생된 암호화 키로 배치를 암호화한다. 참가자는 도 25의 참조번호 2520에서와같이 배치를 복호화한다. 참가자는 (동일한
Figure pct00209
을 사용하는) 배치 내 모든
Figure pct00210
에 대해 도 25의 참조번호 2530에서와같이 그들의 공개 키 유효성 검사 및 폴리그 헬만 복호화를 수행한다. 참가자는 도 25의 참조번호 2540, 2550, 2560에서 요약된 프로세스를 실행한다. 하나의 디피 헬만 공유 비밀이 만들어져서
Figure pct00211
의 전체 배치를 함께 암호화하는 데 사용된다. 암호화된 배치는 서명되어 변환자에게로 전송된다. 이러한 암호화된 배치는 단일 pre-TOKEN이 도 25의 참조번호 2550에 있으므로 참가자 데이터베이스에 저장되지 않다. 변환자는 도 26의 참조번호 2610, 2615, 2620, 2625에서 요약된 프로세스를 실행한다. 복호화된 배치는
Figure pct00212
의 리스트이다. 변환기는 도 26의 참조번호 2630에서 요약된 바와 같이 모든
Figure pct00213
에 대한 공개 키 유효성 검사를 실행한다. 변환기는 폴리그 헬만 프로세스로 진행된다. 배치 처리할 때, 폴리그 헬만용 RSSD는 다음과 같이 실행된다: (1) RSSD의 전체 실행에 대해 각각의 파티션에서 무작위로 선택된
Figure pct00214
가 사용된다. (2) 전체 배치가 각각의 패스 동안 실행되어 상대 파티션으로 다 함께 전송된다. (3) 그 결과: 주어진 모든
Figure pct00215
에 대해 해시되지 않은 TOKEN이 만들어진다. 도 26의 참조번호 2635에서 요약된 키 확인은 해시되지 않은 TOKEN의 전체 리스트에 대해 수행된다. 변환자는 도 26의 참조번호 2635에서와같이 충분한
Figure pct00216
를 생성하여 모든 TOKEN을 다른 IV로 암호화한다. 단일 TOKEN 케이스에서 사용된
Figure pct00217
의 말미에 연결된 비트들은 처리되고 있는 TOKEN들의 수를 수용하도록 확장되어야 한다. 이러한 비트 필드 내에 삽입된 값들은 모든
Figure pct00218
에 대해서와 아울러 키 확인 HMAC 키 및
Figure pct00219
에 대해서 별개의 것이어야 한다. 변환자는 해시되지 않은 모든 TOKEN에 대해 도 26의 참조번호 2640 및 2645에서와같이 TOKEN들 및 Enc_TOKEN을 만들어 낸다. 변환자는 도 26의 참조번호 2650에서 요약된 바와 같이 공유 비밀로 참가자에 대한 배치를 암호화한다. 참가자는 배치를 복호화하고 그들의 데이터베이스에 Enc_TOKEN들을 저장한다. 데이터베이스 내 Enc_TOKEN들의 리스트는 그들이 획득한 시퀀스를 은닉하기 위해 스크램블(scramble)될 수 있다. 여기서 유념할 점은 참가자로부터의 트랜잭션 처리 요청에 대한 조정자 응답이 인증 태그 실패를 나타내는 경우 참가자가 관련 INFO를 개별적으로 재처리하거나 이를 향후 배치 요청에 병합할 수 있다는 것이다. 이러한 선택은 시나리오별 구현 전략들에 의해 제한될 수 있다. 이러한 인증 태그 실패는 변환자와 조정자 간에 공유되는 대칭 암호화 키의 업데이트에 기인한 것일 수 있다.
더 구체적으로는 배치 처리된 경우에 백엔드의 파티션 1에서의 키 확인과 관련하여 예를 들면, 추출 및 확장은 한 세트의
Figure pct00220
를 사용하여 적용되어 키 확인 키 및 초기화 벡터 값들을 파생하도록
Figure pct00221
타원 곡선 점 값들의 합과 함께 사용되는 키를 생성한다. 여기서 유념할 점은 파티션 1이 폴리그 헬만에 대한 RSSD 프로세스를 실행하는 동안 파티션 2로부터 수신한
Figure pct00222
타원 곡선 점 값들의 합을 먼저 계산한 다음에 자기 자신의
Figure pct00223
값을 사용함으로써 그 중간 합에 스칼라 곱을 적용하여 이러한 합을 구성할 수 있다는 것이다. 파티션 2는 유사한 동작들을 수행한다.
프로세서 내(파티션 간) 통신 패스들의 엔티티 인증 및 데이터 무결성을 다루는 대체 메커니즘과 관련하여:
이하의 방법은 비대칭 전자 서명 생성 및 검증에 의존하므로, HMAC의 대칭 사용보다 처리 비용이 높다. 그러나 이는 손상된 파티션이 다른 파티션으로서 서명하는 데 필요한 키에 액세스할 수 없다는 점에서 프로세서 쌍 내에서의 한 파티션의 손상이 다른 파티션으로서 성공적으로 가장하는 데 필요한 정보를 누출하지 않는다는 이점을 제공한다. 2개의 파티션 간에 확립된 공유 비밀에 대한 추출 및 확장 동작을 통해 초기 HMAC 키가 생성되는 방식과 마찬가지로, 이러한 추출 및 확장은 파티션 1에 의해 사용되어야 할 초기
Figure pct00224
서명 생성 개인 키 및 파티션 2에 의해 사용되어야 할 초기
Figure pct00225
키를 추가로나 또는 대신 생성하는 데 사용될 수 있다. 파티션 1은
Figure pct00226
(다시 말하면,
Figure pct00227
)에 상응하는 공개 키(
Figure pct00228
)를 생성하고, 파티션 2는
Figure pct00229
을 생성한다. ECDSA와 같은 디지털 서명 스킴의 사용 하에서는,
Figure pct00230
,
Figure pct00231
,
Figure pct00232
Figure pct00233
의 업데이트는 다음과 같이 발생한다: (참가자에서 시작된 공유 비밀로부터 파생된 것과 같은) 계산된 공유 비밀의 추출 및 확장은
Figure pct00234
Figure pct00235
를 초래한다. 이때,
Figure pct00236
이고,
Figure pct00237
이다(그리고
Figure pct00238
Figure pct00239
에 대해서도 마찬가지이다). 여기서 유념할 점은 이러한 방법의 한 대표적인 예시가 이전과 같이 프로세서 내 통신에 대해 HMAC를 계속 사용하는 것이지만 키 확인 구성을 각각
Figure pct00240
Figure pct00241
로 대체하는 것이라는 것이다. 키 확인의 이러한 공식화는 이른바 파티션 1을 은밀하게 손상시켜 파티션 1의 랜덤 비트 생성자(RBG1)의 전체 상태를 학습한 공격자가 차후에 이용할 수 없는
Figure pct00242
에 대한 종속성을 지니지 않는다(적어도 RBG1이 파티션 1을 "탈출(exit)"한 후에 공격자가 이용할 수 없는 라이브 엔트로피 소스의 활용 방안을 만들 때까지).
통상의 기술자는 본 발명의 범위를 벗어남이 없이 위에서 설명한 실시 예들에 대해 매우 다양한 수정, 변경 및 조합이 이루어질 수 있으며, 이러한 수정, 변경 및 조합이 본 발명의 개념 범위 내에 있는 것으로 간주 되어야 함을 인식할 것이다.

Claims (20)

  1. 네트워크를 통해 데이터 기반 활동을 수행하는 방법으로서,
    상기 방법은, 프로토콜을 관리하는 조정 네트워크 요소에 의해:
    - 증명자 역할 내에서 작동하는 네트워크 요소; 및
    - 요청자 역할 내에서 작동하는 적어도 하나의 2차 네트워크 요소;
    중의 하나를 포함하는 요청 네트워크 요소로부터 그리고
    - 참조된 데이터 콘텐츠;
    - 참조된 데이터 유형;
    - 참조된 초기 데이터 소스; 및
    - 초기 데이터 소스에 연관된 데이터 정보;
    중의 적어도 하나를 포함하는 데이터 정보에 관한 프로토콜 준수 요청을 통해 수신하는 단계 - 상기 프로토콜은 상기 조정 네트워크 요소가 적어도 부분적으로 상기 프로토콜 준수 요청의 기초가 되는 데이터 콘텐츠에 실질적으로 액세스하는 것을 금지하는 것임 -;
    상기 요청 네트워크 요소가 상기 증명자 역할 내에서 작동하는 네트워크 요소일 경우, 상기 프로토콜을 거쳐 적어도 부분적으로, 상기 요청 네트워크 요소가 상기 요청 네트워크 요소를 통해 공급되는 데이터 기반 처리 데이터에 대해 비동기식으로 이용 가능한 것을 승인함을 용이하게 하는 단계 - 데이터가 간접 데이터로서 공급될 때 그러한 공급은 초기 데이터 소스로부터 상기 요청 네트워크 요소에 의해 수신된 데이터로부터의 파생을 수반하고, 상기 2차 네트워크 요소의 신원은 상기 요청 네트워크 요소로부터 블라인드됨; 및
    상기 요청 네트워크 요소가 상기 요청자 역할 내에서 작동하는 2차 네트워크 요소일 때, 상기 프로토콜을 거쳐 적어도 부분적으로, 상기 2차 네트워크 요소가 다른 한 요청 네트워크 요소로부터 이전에 공급된 데이터를 처리하는 것을 승인함을 용이하게 하는 단계 - 상기 다른 한 요청 네트워크 요소의 신원은 상기 2차 네트워크 요소로부터 블라인드됨 -;
    를 포함하는, 데이터 기반 활동의 수행 방법.
  2. 제1항에 있어서,
    상기 데이터 기반 처리는,
    증명된 데이터 콘텐츠의 이전; 및
    이전에 증명된 데이터 콘텐츠에 대한 데이터 콘텐츠의 확증;
    중의 적어도 하나를 포함하는, 데이터 기반 활동의 수행 방법.
  3. 제2항에 있어서,
    이전에 증명된 데이터 콘텐츠에 대한 데이터 콘텐츠의 확증은 상기 요청자 역할 내에서 작동하는 요청 네트워크 요소로부터 데이터를 공급하는 것을 적어도 부분적으로 포함하고, 데이터가 간접 데이터로서 공급되는 경우, 그러한 공급은 초기 데이터 소스로부터 상기 요청 네트워크 요소에 의해 수신된 데이터로부터의 파생을 수반하는, 데이터 기반 활동의 수행 방법.
  4. 제1항에 있어서,
    상기 프로토콜 준수 요청은 복수 개의 개별 메시지들을 포함하는, 데이터 기반 활동의 수행 방법.
  5. 제1항에 있어서,
    상기 승인하는 것은 상기 증명자 역할 내에서 작동하는 요청 네트워크 요소가 암호화 매개변수, 데이터, 및 데이터의 확증 및 이전 중 적어도 하나를 가능하게 하는 메타데이터 중 적어도 하나를 포함하는 콘텐츠를 중계자 액세스가능 저장소에 저장하도록 승인됨을 중계자들에게 알리는 검증 가능한 권한들을 생성하는 것을 적어도 부분적으로 포함하는, 데이터 기반 활동의 수행 방법.
  6. 제5항에 있어서,
    상기 중계자 액세스가능 저장소에 콘텐츠를 저장하는 것은,
    평문 형태; 및
    암호화된 형태;
    중의 적어도 하나로 상기 콘텐츠의 일부를 저장하는 것을 포함하는, 데이터 기반 활동의 수행 방법.
  7. 제5항에 있어서,
    상기 콘텐츠는,
    상기 증명자 역할 내에서 작동하는 요청 네트워크 요소에 의해 생성된 암호문 및 암호화 매개변수 중 적어도 하나를 나타내는 복호화 토큰; 및
    상기 증명자 역할 내에서 작동하는 요청 네트워크 요소에 의해 제공된 처리 데이터의 결과를 나타내는 비교 토큰에 대해 저장된 값을 사용하여 처리된 후보 데이터를 나타내는 비교 토큰이 매치(match)하는지에 관한 결정이 내려질 수 있도록 비교 토큰을 구성하기 위해 데이터와 함께 적용되는 메타데이터 및 암호화 매개변수 중의 적어도 하나;
    중의 적어도 하나로서의 역할을 하도록 구성되는 저장된 값을 포함하는, 데이터 기반 활동의 수행 방법.
  8. 제5항에 있어서,
    상기 콘텐츠는 공유의 임계 개수가 상기 콘텐츠의 재구성을 가능하게 하는 공유의 집합을 포함하고, 상기 공유는 상기 증명자 역할 내에서 작용하는 요청 네트워크 요소에 의해 복수의 중계자들에 걸쳐 분배되는, 데이터 기반 활동의 수행 방법.
  9. 제1항에 있어서,
    상기 승인은, 상기 요청자 역할 내에서 작동하는 요청 네트워크 요소가 암호화 매개변수, 데이터 및 메타데이터 중의 적어도 하나를 포함하는 콘텐츠를 평문 또는 암호화된 형태로 중계자 액세스가능 저장소로부터 검색하도록 승인됨을 적어도 하나의 중계자에게 알리는 검증 가능한 권한들의 생성을 적어도 부분적으로 포함하는, 데이터 기반 활동의 수행 방법.
  10. 제1항에 있어서,
    상기 조정 네트워크 요소는 토큰화된 형태로 상기 프로토콜 준수 요청 내에 포함된 데이터 정보에 실질적으로 액세스할 수 없으며, 상기 토큰은, 적어도 하나가 상기 조정 네트워크 요소에 이용 불가능한 비밀들을 사용하여 생성되는, 데이터 기반 활동의 수행 방법.
  11. 네트워크를 통해 데이터 기반 활동을 수행하도록 구성된 장치로서,
    상기 장치는,
    네트워크 인터페이스;
    상기 네트워크 인터페이스를 통해 그리고
    - 증명자 역할 내에서 작동하는 네트워크 요소; 및
    - 요청자 역할 내에서 작동하는 적어도 하나의 2차 네트워크 요소;
    중의 하나를 포함하는 요청 네트워크 요소로부터 그리고
    - 참조된 데이터 콘텐츠;
    - 참조된 데이터 유형;
    - 참조된 초기 데이터 소스; 및
    - 초기 데이터 소스에 연관된 데이터 정보;
    중의 적어도 하나를 포함하는 데이터 정보에 관한 프로토콜 준수 요청을 통해 수신하는 동작 - 프로토콜은 조정 네트워크 요소가 적어도 부분적으로 상기 프로토콜 준수 요청의 기초가 되는 데이터 콘텐츠에 실질적으로 액세스하는 것을 금지하는 것임 -;
    상기 요청 네트워크 요소가 상기 증명자 역할 내에서 작동하는 네트워크 요소일 경우, 상기 프로토콜을 거쳐 적어도 부분적으로, 상기 요청 네트워크 요소가 상기 요청 네트워크 요소를 통해 공급되는 데이터 기반 처리 데이터에 대해 비동기식으로 이용 가능한 것을 승인함을 용이하게 하는 동작 - 데이터가 간접 데이터로서 공급될 때 그러한 공급은 초기 데이터 소스로부터 상기 요청 네트워크 요소에 의해 수신된 데이터로부터의 파생을 수반하고, 상기 2차 네트워크 요소의 신원은 상기 요청 네트워크 요소로부터 블라인드됨; 및
    상기 요청 네트워크 요소가 상기 요청자 역할 내에서 작동하는 2차 네트워크 요소일 때, 상기 프로토콜을 거쳐 적어도 부분적으로, 상기 2차 네트워크 요소가 다른 한 요청 네트워크 요소로부터 이전에 공급된 데이터를 처리하는 것을 승인함을 용이하게 하는 동작 - 상기 다른 한 요청 네트워크 요소의 신원은 상기 2차 네트워크 요소로부터 블라인드됨 -;
    을 수행함으로써 프로토콜을 관리하는 조정 네트워크 요소로 구성된 제어 회로:
    를 포함하는, 장치.
  12. 제11항에 있어서,
    상기 데이터 기반 처리는,
    증명된 데이터 콘텐츠의 이전; 및
    이전에 증명된 데이터 콘텐츠에 대한 데이터 콘텐츠의 확증;
    중의 적어도 하나를 포함하는, 장치.
  13. 제12항에 있어서,
    이전에 증명된 데이터 콘텐츠에 대한 데이터 콘텐츠의 확증은 상기 요청자 역할 내에서 작동하는 요청 네트워크 요소로부터 데이터를 공급하는 것을 적어도 부분적으로 포함하고, 데이터가 간접 데이터로서 공급되는 경우, 그러한 공급은 초기 데이터 소스로부터 상기 요청 네트워크 요소에 의해 수신된 데이터로부터의 파생을 수반하는, 장치.
  14. 제11항에 있어서,
    상기 프로토콜 준수 요청은 복수 개의 개별 메시지들을 포함하는, 장치.
  15. 제11항에 있어서,
    상기 승인하는 것은 상기 증명자 역할 내에서 작동하는 요청 네트워크 요소가 암호화 매개변수, 데이터, 및 데이터의 확증 및 이전 중 적어도 하나를 가능하게 하는 메타데이터 중 적어도 하나를 포함하는 콘텐츠를 중계자 액세스가능 저장소에 저장하도록 승인됨을 중계자들에게 알리는 검증 가능한 권한들을 생성하는 것을 적어도 부분적으로 포함하는, 장치.
  16. 제15항에 있어서,
    상기 중계자 액세스가능 저장소에 콘텐츠를 저장하는 것은,
    평문 형태; 및
    암호화된 형태;
    중의 적어도 하나로 상기 콘텐츠의 일부를 저장하는 것을 포함하는, 장치.
  17. 제15항에 있어서,
    상기 콘텐츠는,
    상기 증명자 역할 내에서 작동하는 요청 네트워크 요소에 의해 생성된 암호문 및 암호화 매개변수 중 적어도 하나를 나타내는 복호화 토큰; 및
    상기 증명자 역할 내에서 작동하는 요청 네트워크 요소에 의해 제공된 처리 데이터의 결과를 나타내는 비교 토큰에 대해 저장된 값을 사용하여 처리된 후보 데이터를 나타내는 비교 토큰이 매치(match)하는지에 관한 결정이 내려질 수 있도록 비교 토큰을 구성하기 위해 데이터와 함께 적용되는 메타데이터 및 암호화 매개변수 중의 적어도 하나;
    중의 적어도 하나로서의 역할을 하도록 구성되는 저장된 값을 포함하는, 장치.
  18. 제15항에 있어서,
    상기 콘텐츠는 공유의 임계 개수가 상기 콘텐츠의 재구성을 가능하게 하는 공유의 집합을 포함하고, 상기 공유는 상기 증명자 역할 내에서 작용하는 요청 네트워크 요소에 의해 복수의 중계자들에 걸쳐 분배되는, 장치.
  19. 제11항에 있어서,
    상기 승인은, 상기 요청자 역할 내에서 작동하는 요청 네트워크 요소가 암호화 매개변수, 데이터 및 메타데이터 중의 적어도 하나를 포함하는 콘텐츠를 평문 또는 암호화된 형태로 중계자 액세스가능 저장소로부터 검색하도록 승인됨을 적어도 하나의 중계자에게 알리는 검증 가능한 권한들의 생성을 적어도 부분적으로 포함하는, 장치.
  20. 제11항에 있어서,
    상기 조정 네트워크 요소는 토큰화된 형태로 상기 프로토콜 준수 요청 내에 포함된 데이터 정보에 실질적으로 액세스할 수 없으며, 상기 토큰은, 적어도 하나가 상기 조정 네트워크 요소에 이용 불가능한 비밀들을 사용하여 생성되는, 장치.
KR1020217032854A 2019-03-13 2020-03-13 데이터 기반 활동을 수행하는 방법 및 장치 KR20210139344A (ko)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201962818014P 2019-03-13 2019-03-13
US62/818,014 2019-03-13
US201962820151P 2019-03-18 2019-03-18
US62/820,151 2019-03-18
US201962821021P 2019-03-20 2019-03-20
US62/821,021 2019-03-20
US201962885729P 2019-08-12 2019-08-12
US62/885,729 2019-08-12
US201962932730P 2019-11-08 2019-11-08
US62/932,730 2019-11-08
US202062988760P 2020-03-12 2020-03-12
US62/988,760 2020-03-12
US16/817,483 US11374910B2 (en) 2019-03-13 2020-03-12 Method and apparatus for effecting a data-based activity
US16/817,483 2020-03-12
PCT/US2020/022625 WO2020186156A1 (en) 2019-03-13 2020-03-13 Method and apparatus for effecting a data-based activity

Publications (1)

Publication Number Publication Date
KR20210139344A true KR20210139344A (ko) 2021-11-22

Family

ID=72427061

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217032854A KR20210139344A (ko) 2019-03-13 2020-03-13 데이터 기반 활동을 수행하는 방법 및 장치

Country Status (6)

Country Link
US (1) US11374910B2 (ko)
EP (1) EP3939202A4 (ko)
JP (1) JP2022525137A (ko)
KR (1) KR20210139344A (ko)
BR (1) BR112021018016A2 (ko)
WO (1) WO2020186156A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240039724A1 (en) * 2022-07-29 2024-02-01 Springcoin, Inc. Method and apparatus for reversible tokenization with support for embeddable role-based access control

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405365B2 (en) 2019-03-13 2022-08-02 Springcoin, Inc. Method and apparatus for effecting a data-based activity
US11265144B2 (en) * 2020-03-09 2022-03-01 International Business Machines Corporation Consistent ciphertext creation
US11368287B2 (en) 2020-05-19 2022-06-21 International Business Machines Corporation Identification of a creator of an encrypted object
US11777720B2 (en) * 2020-06-12 2023-10-03 Nagravision Sàrl Distributed anonymized compliant encryption management system
US11743039B2 (en) * 2021-04-20 2023-08-29 Coinbase Il Rd Ltd. System and method for data encryption using key derivation

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4200770A (en) 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
EP0085130A1 (en) 1982-02-02 1983-08-10 Omnet Associates Method and apparatus for maintaining the privacy of digital messages conveyed by public transmission
US8145897B2 (en) 2008-09-29 2012-03-27 Intel Corporation Direct anonymous attestation scheme with outsourcing capability
EP2472820B1 (en) 2010-12-31 2016-04-20 Regify S.A. Network, node and method for anonymizing and routing a user request
US8862871B2 (en) 2011-04-15 2014-10-14 Architecture Technology, Inc. Network with protocol, privacy preserving source attribution and admission control and method
US9876823B2 (en) 2015-06-09 2018-01-23 Intel Corporation System, apparatus and method for privacy preserving distributed attestation for devices
AU2017225928A1 (en) 2016-02-29 2018-09-20 Securekey Technologies Inc. Systems and methods for distributed data sharing with asynchronous third-party attestation
PT3440823T (pt) * 2016-04-05 2020-12-04 Zamna Tech Limited Método e sistema para gestão de informações pessoais dentro de sistemas informáticos independentes e redes digitais
CN109716345B (zh) 2016-04-29 2023-09-15 普威达有限公司 计算机实现的隐私工程***和方法
US10616186B2 (en) * 2017-04-14 2020-04-07 International Business Machines Corporation Data tokenization
CN117579281A (zh) * 2017-06-02 2024-02-20 维萨国际服务协会 用于使用区块链的所有权验证的方法和***
DE112018002942T5 (de) 2017-07-06 2020-03-05 Robert Bosch Gmbh Verfahren und System zur datenschutzwahrenden Social-Media-Werbung
GB201803706D0 (en) * 2018-03-08 2018-04-25 Nchain Holdings Ltd Computer-implemented system and method
US10673626B2 (en) * 2018-03-30 2020-06-02 Spyrus, Inc. Threshold secret share authentication proof and secure blockchain voting with hardware security modules
US10841100B2 (en) 2018-08-07 2020-11-17 The Toronto-Dominion Bank Dynamically managing exchanges of data using a distributed ledger and homomorphic commitments
US11115206B2 (en) * 2018-08-23 2021-09-07 International Business Machines Corporation Assymetric structured key recovering using oblivious pseudorandom function
US11176571B2 (en) * 2018-09-06 2021-11-16 MadHive, Inc. Methods and system for serving targeted advertisements to a consumer device
US20200126075A1 (en) * 2018-10-18 2020-04-23 Temujin Labs, Inc. Confidential transaction auditing using an authenticated data structure
WO2020082078A1 (en) * 2018-10-19 2020-04-23 Digital Asset (Switzerland) GmbH Privacy preserving validation and commit architecture
US10721217B2 (en) * 2018-11-08 2020-07-21 Accenture Global Solutions Limited Cryptographic datashare control for blockchain
US11405365B2 (en) 2019-03-13 2022-08-02 Springcoin, Inc. Method and apparatus for effecting a data-based activity

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240039724A1 (en) * 2022-07-29 2024-02-01 Springcoin, Inc. Method and apparatus for reversible tokenization with support for embeddable role-based access control
US11930117B2 (en) * 2022-07-29 2024-03-12 Springcoin, Inc. Method and apparatus for reversible tokenization with support for embeddable role-based access control

Also Published As

Publication number Publication date
WO2020186156A1 (en) 2020-09-17
BR112021018016A2 (pt) 2021-11-23
JP2022525137A (ja) 2022-05-11
EP3939202A1 (en) 2022-01-19
EP3939202A4 (en) 2022-12-07
US20200336470A1 (en) 2020-10-22
US11374910B2 (en) 2022-06-28

Similar Documents

Publication Publication Date Title
TWI748853B (zh) 用於基於區塊鏈的系統結合錢包管理系統中的安全多方防遺失儲存及加密金鑰轉移
US11405365B2 (en) Method and apparatus for effecting a data-based activity
US11895231B2 (en) Adaptive attack resistant distributed symmetric encryption
JP4639084B2 (ja) セキュア認証の暗号方法および暗号装置
KR20210139344A (ko) 데이터 기반 활동을 수행하는 방법 및 장치
JP5562687B2 (ja) 第1のユーザによって第2のユーザに送信される通信の安全化
CN112889047A (zh) 利用多个装置以增强生物计量认证安全
JP2023500570A (ja) コールドウォレットを用いたデジタルシグニチャ生成
JP2003536320A (ja) 複数のサーバを使用した遠隔パスワード認証のためのシステム、方法およびソフトウェア
US11637817B2 (en) Method and apparatus for effecting a data-based activity
US11595365B1 (en) Method and apparatus for third-party managed data transference and corroboration via tokenization
De Smet et al. Lightweight PUF based authentication scheme for fog architecture
Farash Cryptanalysis and improvement of ‘an improved authentication with key agreement scheme on elliptic curve cryptosystem for global mobility networks’
CN115336224A (zh) 自适应抗攻击分布式对称加密
Daddala et al. Design and implementation of a customized encryption algorithm for authentication and secure communication between devices
US20230188330A1 (en) System and method for identity-based key agreement for secure communication
Gasti et al. Privacy-preserving user matching
CN113794570B (zh) 一种基于零知识证明的私钥管理方法及***
CN116599771B (zh) 数据分级保护传输方法及装置、存储介质和终端
CN111541538A (zh) 数据传输方法及装置、服务器、计算机设备和存储介质
Zhang et al. CKAA: Certificateless key‐agreement authentication scheme in digital twin telemedicine environment
Sivanandam et al. Stronger public key encryption system withstanding RAM scraper like attacks
JP2024018058A (ja) 機械学習システム
Drosatos Utilization and protection of personal data in ubiquitous computing environments
WO2023183760A1 (en) Threshold searchable symmetric encryption