KR20230024279A - 컴퓨터 네트워크에서 제어된 손상을 이용하여 키를 생성하는 방법 - Google Patents

컴퓨터 네트워크에서 제어된 손상을 이용하여 키를 생성하는 방법 Download PDF

Info

Publication number
KR20230024279A
KR20230024279A KR1020227043195A KR20227043195A KR20230024279A KR 20230024279 A KR20230024279 A KR 20230024279A KR 1020227043195 A KR1020227043195 A KR 1020227043195A KR 20227043195 A KR20227043195 A KR 20227043195A KR 20230024279 A KR20230024279 A KR 20230024279A
Authority
KR
South Korea
Prior art keywords
key
data
server
user
code
Prior art date
Application number
KR1020227043195A
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
Priority claimed from US16/872,127 external-priority patent/US10903997B2/en
Application filed by 오튼하이브 코퍼레이션 filed Critical 오튼하이브 코퍼레이션
Publication of KR20230024279A publication Critical patent/KR20230024279A/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • 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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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/3271Cryptographic 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 using challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Biomedical Technology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Selective Calling Equipment (AREA)

Abstract

본 발명은 데이터, 문서, 장치, 통신 및 트랜잭션을 보호하도록 동작할 수 있는 플랫폼 및/또는 불가지론적 방법 및 시스템이다. 본 발명의 실시예는 사용자를 인증하도록 동작될 수 있고 임의의 클라이언트 시스템과 함께 동작할 수 있다. 방법 및 시스템은 익명 관련 정보의 고유한 부분을 여러 장치 간에 분배하도록 동작 가능하다. 이러한 장치는 익명 정보의 고유한 부분을 분배하고 중요한 데이터 전송을 보호하고 사용자, 데이터, 문서, 장치 및 거래를 인증하기 위해 솔루션에서 활용된다. 인증에 사용되는 경우, 로그인 관련 정보는 솔루션의 어떤 부분에도 저장되지 않으며 사용자 및 장치는 익명으로 인증된다. 이 솔루션은 또한 사용자가 반자동 프로세스를 통해 사용자 키를 공개하지 않고도 클라이언트 시스템의 보안 부분에 액세스할 수 있도록 한다.

Description

컴퓨터 네트워크에서 제어된 손상을 이용하여 키를 생성하는 방법
본 발명은 일반적으로 데이터 보안(data security) 분야에 관한 것으로, 특히 표적 통신(targeted communication)의 보안 및 네트워크 또는 시스템의 사용자 인증(authentication)에 관한 것이다.
모든 조직은 잠재적인 보안 침해(security breach)로부터 데이터를 보호해야 하는 과제를 안고 있다. 데이터 보안을 통해서만 조직은 통신이 안전하고 승인된 사람만 여러 기술에 걸쳐 시스템에 액세스할 수 있도록 보장할 수 있다. 따라서 데이터 보안과 인증된 시스템 액세스는 오늘날 조직이 직면해야 하는 주요 과제 중 하나다.
현재 시스템 및 네트워크 사용자의 다양한 인증 유형에 영향을 미치는 많은 시스템 및 방법이 있다. 이러한 다양한 유형의 인증에는 보안 수준과 안정성이 다르다. 다음은 시스템 및 네트워크를 위한 종래 기술의 인증 방법 유형의 예이다.
2005 년 11 월 8 일에 IGT에 허여된 미국 특허 제6,962,530 호는 게임 코드 및 기타 데이터의 안전한 저장 및 검증을 특징으로 하는 게임 특정 플랫폼을 위한 아키텍처 및 방법을 개시하고 있다. 이 방법은 또한 컴퓨터 화 된 베팅 게임 시스템과 데이터를 안전하게 교환할 수 있는 능력을 사용자에게 제공한다. 본 발명은 다수의 장치들 사이에 로그인 정보를 확산시키는 것을 포함하지 않는다.
2015 년 6 월 9 일 엔이씨 솔루션 이노베이터 사(NEC Solution Innovators, Ltd.)에 허여된 미국 특허 제9,053,306호는 사용자가 입력한 로그인 정보로부터 제1 및 제2 해싱 값을 계산할 수 있는 인증 시스템을 개시하고 있다. 첫 번째와 두 번째 해싱 값이 서로 일치하면 서버와 터미널 간에 세션이 설정된다. 본 발명은 암호화된 세부 사항의 일부를 유지하는 것을 포함하지 않는다.
2015 년 3 월 24 일 마이크로 소프트 사(Microsoft Corporation)에 허여된 미국 특허 제8,989,706호의 장치를 사용한 콘텐츠의 병렬 다운로드와 관련하여 장치의 자동 보안 페어링과 관련된 시스템, 방법 및/또는 기술을 공개한다. 장치를 페어링 하기 위한 툴은 주소 및 키에 기초하여 인증 프로토콜을 수행할 수 있다. 본 발명은 암호화된 세부 사항의 일부를 유지하는 것을 포함하지 않는다.
2013 년 1 월 15 일 코닌클리케 필립스 일렉트로닉스 엔.브이.(Koninklijke Philips Electronics N.V.)에 허여된 미국 특허 제8,356,180호는 심층 공통 보안 영역에서 안전한 통신을 위한 다차원 식별, 인증, 인증 및 키 분배 관계를 위한 방법을 개시하고 있다. 본 발명은 사용자가 시스템에 사용자의 키를 공개하지 않으면 거래를 인증할 수 없다.
2000 년 8 월 25 일 유나이티드 장치 사(United Devices, Inc.)에 허여된 미국 특허 제6,847,995호는 분산 프로세싱 시스템 내에서 보안 전송을 제공하기 위한 보안 아키텍처 및 관련 방법을 개시하고 있다. 본 발명은 다층 암호화 또는 암호화된 세부 사항의 일부를 유지하는 것을 포함하지 않는다.
2016 년 11 월 23 일 야론 크빌리(Yaron Gvili)가 출원한 미국 특허 출원 공개 번호 2017/0149796은 제3 자 검증자가 보안 데이터의 측면을 검증하거나 성공적인 통신을 가능하게 하는 시스템 및 기술을 개시하고 있다. 본 발명은 다층 암호화 또는 암호화된 세부 사항의 일부를 유지하는 것을 포함하지 않는다.
2011 년 6 월 6 일 이사무 테라니시(Isamu Teranishi)가 출원 한 미국 특허 출원 공개 제2011/0246779 호는 이산 로그 제로 지식 증명을 허용하는 제로 지식 증명 시스템을 개시하고 있다. 본 발명은 다층 암호화 또는 암호화된 세부 사항의 일부를 유지하는 것을 포함하지 않는다.
종래 기술의 암호화 방법 및 시스템은 특히 사용자와 사용자 및 시스템 또는 네트워크 사이에서 데이터 및 정보의 전송에 제3자가 개입하는 것에 취약하다. 제3자가 전송 중인 데이터에 액세스 할 수 있는 경우 해당 정보에서 로그인 세부 정보를 추정할 수 있다. 사용자와 시스템 간에 전송된 데이터에서 모든 로그인 정보를 사용할 수 있는 경우 제3자는 사용자의 로그인 정보를 사용하여 시스템에 로그인 할 수 있다. 알려진 인증 방법과 시스템을 사용하는 경우 현재 시스템에 보안 위험이 발생한다.
전송된 데이터와의 제3 자 간섭을 통해 사용자의 로그인 정보를 얻지 못하게 하는 인증 방법 및 시스템이 필요하다.
일부 실시예에 따르면, 제어된 손상(controlled corruption)을 사용하여 생성된 키를 처리하는 방법은 보안 엔진(security engine) 및 액션 엔진(action engine)을 포함하는 하나 이상의 서버에 제1 컴퓨팅 장치(first computing device)를 등록하는 단계; 하나 이상의 서버에서, 제1 컴퓨팅 장치로부터 제1 데이터(first data)와 연관된 제1 개인 코드(first privacy code) 및 하나 이상의 파라미터를 수신하는 단계 - 제1 개인 코드는 제1 컴퓨팅 장치에서의 제1 사용자 입력(first user input)에 기초하고, 제1 데이터는 상기 제1 컴퓨팅 장치에서의 제2 사용자 입력(second user)에 기초함 -; 하나 이상의 서버에서, 청크 카운트(chunk count) 및 공개 키(public key)를 생성하는 단계 - 청크 카운트는 제1 데이터와 연관된 하나 이상의 파라미터에 기초하고 공개 키는 비대칭 암호화 키 쌍(asymmetric cryptographic key pair)의 일부임 - 를 생성하는 단계; 청크 카운트 및 공개 키를 하나 이상의 서버로부터 제1 컴퓨팅 장치로 전송하는 단계; 하나 이상의 서버에서, 제1 컴퓨팅 장치로부터 개인 키의 수량 및 제2 개인 코드와 관련된 데이터를 수신하는 단계 - 개인 키는 제1 데이터, 청크 카운트 및 하나 이상의 손상자(corruptor)에 기초하고, 제2 개인 코드는 제1 개인 코드에 기초하고, 개인 키의 수량은 청크 카운트와 동일함 -; 하나 이상의 서버에서, 개인 키에 기초하여 제2 데이터를 생성하는 단계 - 제2 데이터를 생성하는 단계는: 연결된 키(concatenated key)를 생성하기 위해 개인 키를 연결하는 단계, 및 제2 데이터를 생성하기 위해 연결된 키에서 하나 이상의 손상자를 제거하는 단계를 포함함 - 를 포함한다.
일부 실시예에 따르면, 제어된 손상을 사용하여 생성된 키를 처리하는 방법은 하나 이상의 서버에서, 2개 이상의 청크 이름(chunk name)을 생성하는 단계; 및 2개 이상의 청크 이름을 제1 컴퓨팅 장치에 전송하는 단계를 포함할 수 있다.
일부 실시예에 따르면, 개인 키는 2개 이상의 청크 이름에 더 기초한다.
일부 실시예에 따르면, 연결된 키를 생성하기 위해 개인 키를 연결하는 단계는 2개 이상의 청크 이름에 기초한다.
일부 실시예에 따르면, 하나 이상의 손상자는 3개의 손상자를 포함한다.
일부 실시예에 따르면, 손상자 중 적어도 하나는 제1 개인 코드에 기초한다.
일부 실시예에 따르면, 제2 데이터를 생성하기 위해 하나 이상의 손상자를 제거하는 단계는 제1 클린 데이터를 생성하기 위해 연결된 키로부터 하나 이상의 제1 손상자를 제거하는 단계; 제2 클린 데이터를 생성하기 위해 제1 클린 데이터에서 하나 이상의 제2 손상자를 제거하는 단계; 압축 데이터의 베이스64(base 64)를 생성하기 위해 제2 클린 데이터로부터 하나 이상의 제3 손상자를 제거하는 단계; 압축 데이터를 생성하기 위해 압축 제2 데이터의 베이스를 디코딩하는 단계; 및 제2 데이터를 생성하기 위해 압축 데이터를 압축 해제하는 단계를 포함하고, 개인 코드는 하나 이상의 제1 손상자, 하나 이상의 제2 손상자 및 하나 이상의 제3 손상자 중 적어도 하나를 제거하는 데 사용된다. 일부 실시예에 따르면, 제1 개인 코드는 손상자 중 적어도 하나를 제거하는 데 사용된다.
일부 실시예에 따르면, 제2 개인 코드는 손상자 중 적어도 하나를 제거하는 데 사용된다.
일부 실시예에 따르면, 제1 데이터는 표적 통신을 포함한다. 일부 실시예에 따르면, 제2 사용자 입력은 영숫자 문자열, 생체 데이터(biometric data), 비밀번호, 안구 스캔, 사진 및 지문 중 적어도 하나를 포함한다.
일부 실시예에 따르면, 제어된 손상을 사용하여 키를 생성하는 방법은: 제1 컴퓨팅 장치에서 제1 데이터와 연관된 제1 개인 코드 및 하나 이상의 파라미터를 생성하는 단계 - 제1 개인 코드는 제1 사용자 입력에 기초하고 및 제1 데이터는 제2 사용자 입력에 기초함 -; 제1 데이터와 연관된 상기 제1 개인 코드 및 하나 이상의 파라미터를 제1 컴퓨팅 장치로부터 하나 이상의 서버로 전송하는 단계; 제1 컴퓨팅 장치에서, 하나 이상의 서버로부터 청크 카운트 및 공개 키를 수신하는 단계 - 청크 카운트는 제1 데이터와 연관된 하나 이상의 파라미터에 기초하고 공개 키는 비대칭 암호화 키 쌍의 일부임 -; 제1 컴퓨팅 장치에서, 압축된 제1 데이터를 생성하기 위해 제1 데이터를 압축하는 단계; 제1 컴퓨팅 장치에서, 압축된 제1 데이터 및 하나 이상의 제1 손상자에 기초하여 제1 프리 키를 생성하는 단계; 제1 컴퓨팅 장치에서, 제1 프리 키 및 하나 이상의 제2 손상자에 기초하여 제2 프리 키를 생성하는 단계; 제1 컴퓨팅 장치에서, 제2 프리 키 및 청크 카운트에 기초하여 2개 이상의 청크를 생성하는 단계; 제1 컴퓨팅 장치에서, 2개 이상의 청크에 기초하여 2개 이상의 개인 키를 생성하는 단계; 및 2개 이상의 개인 키를 하나 이상의 서버로 전송하는 단계를 포함한다.
일부 실시예에 따르면, 제2 프리 키 및 청크 카운트에 기초하여 2개 이상의 청크를 생성하는 단계는: 솔트를 사용하여 제3 프리 키를 생성하기 위해 제2 프리 키를 손상시키는 단계; 하나 이상의 제3 손상자를 사용하여 제3 프리 키를 손상시키는 단계; 및 청크 카운트에 기초하여 손상된 제3 프리 키를 2개 이상의 청크로 분할하는 단계를 포함한다.
일부 실시예에 따르면, 제어된 손상을 사용하여 키를 생성하는 방법은 제1 컴퓨팅 장치에서 2개 이상의 청크 이름을 수신하는 단계를 포함할 수 있다.
일부 실시예에 따르면, 2개 이상의 개인 키는 추가적으로 2개 이상의 청크 이름에 기초한다.
일부 실시예에 따르면, 제어된 손상을 사용하여 키를 생성하고 배포하는 방법은 하나 이상의 서버에 제1 컴퓨팅 장치를 등록하는 단계; 하나 이상의 서버에서, 제1 컴퓨팅 장치로부터 제1 데이터(first data)와 연관된 제1 개인 코드(first privacy code) 및 하나 이상의 파라미터를 수신하는 단계 - 제1 개인 코드는 제1 컴퓨팅 장치에서의 제1 사용자 입력(first user input)에 기초하고, 제1 데이터는 상기 제1 컴퓨팅 장치에서의 제2 사용자 입력(second user)에 기초함 -; 하나 이상의 서버에서, 청크 카운트(chunk count) 및 공개 키(public key)를 생성하는 단계 - 청크 카운트는 제1 데이터와 연관된 하나 이상의 파라미터에 기초하고 공개 키는 비대칭 암호화 키 쌍(asymmetric cryptographic key pair)의 일부임 - 를 생성하는 단계; 청크 카운트 및 공개 키를 하나 이상의 서버로부터 제1 컴퓨팅 장치로 전송하는 단계; 하나 이상의 서버에서, 제1 컴퓨팅 디바이스로부터 제1 개인 키의 수량 및 제2 개인 코드와 관련된 데이터를 수신하는 단계 - 제1 개인 키는 제1 데이터, 청크 카운트 및 하나 이상의 손상자(corruptor)에 기초하고; 제2 개인 코드는 제1 개인 코드에 기초하고; 제1 개인 키의 수량은 청크 카운트와 동일함 -; 하나 이상의 서버에서, 제1 개인 키에 기초하여 제2 데이터를 생성하는 단계 - 제2 데이터를 생성하는 단계는 연결된 키를 생성하기 위해 개인 키를 연결하는 단계를 포함함 -; 제2 데이터를 생성하기 위해 연결된 키에서 하나 이상의 손상자를 제거하는 단계; 하나 이상의 서버에서, 제2 데이터에 기초하여 결과를 생성하는 단계; 하나 이상의 서버에서 결과에 기초하여 수신기 식별자(receiver identifier) 및 개인 코드 식별자(privacy code identifier)를 생성하는 단계 - 수신기 식별자는 하나 이상의 노드와 연관되고 개인 코드 식별자는 제2 개인 코드에 기초함 -; 및 제1 개인 키, 수신기 식별자 및 개인 코드 식별자를 하나 이상의 노드에 배포하는 단계를 포함한다.
일부 실시예에 따르면, 제어된 손상을 사용하여 키를 생성하는 방법은 하나 이상의 서버에서, 제1 컴퓨팅 장치로부터의 제3 데이터에 기초한 2개 이상의 개인 키를 수신하는 단계; 및 로그인 데이터를 생성하는 단계를 포함하고, 여기서 로그인 데이터는 제3 데이터에 기초한 2개 이상의 개인 키에 기초한다.
일부 실시예에 따르면, 제어된 손상을 사용하여 키를 생성하는 방법은 수신기 식별자 및 개인 코드 식별자 중 적어도 하나에 기초하여 하나 이상의 노드에 저장된 개인 키를 검색하는 단계; 및 등록 데이터를 생성하는 단계 - 등록 데이터는 하나 이상의 노드로부터 검색된 개인 키에 기초함 - 를 포함할 수 있다.
일부 실시예에 따르면, 제어된 손상을 사용하여 키를 생성하는 방법은 로그인 데이터를 등록 데이터와 비교하는 단계; 및 결과를 생성하는 단계를 포함할 수 있다.
일부 실시예에 따르면, 시스템(system)은 서버(server)를 포함할 수 있고, 서버는: 서버 명령(server instruction)을 포함하는 메모리(memory); 및 서버 명령을 실행하도록 구성된 처리 장치(processing device)로서, 서버 명령은 처리 장치로 하여금: 하나 이상의 서버에 제1 컴퓨팅 장치를 등록하는 단계 - 보안 엔진(security engine), 액션 엔진(action engine), 라이브러리, 및 하나 이상의 서버와 연관된 하나 이상의 노드를 포함하는 하나 이상의 서버 -; 하나 이상의 서버에서, 제1 컴퓨팅 장치로부터 제1 데이터(first data)와 연관된 제1 개인 코드(first privacy code) 및 하나 이상의 파라미터를 수신하는 단계 - 제1 개인 코드는 제1 컴퓨팅 장치에서의 제1 사용자 입력(first user input)에 기초하고, 제1 데이터는 상기 제1 컴퓨팅 장치에서의 제2 사용자 입력(second user)에 기초함 -; 하나 이상의 서버에서, 청크 카운트(chunk count) 및 공개 키(public key)를 생성하는 단계 - 청크 카운트는 제1 데이터와 연관된 하나 이상의 파라미터에 기초하고 공개 키는 비대칭 암호화 키 쌍(asymmetric cryptographic key pair)의 일부임 - 를 생성하는 단계; 청크 카운트 및 공개 키를 하나 이상의 서버로부터 제1 컴퓨팅 장치로 전송하는 단계; 하나 이상의 서버에서, 제1 컴퓨팅 장치로부터 개인 키의 수량 및 제2 개인 코드를 수신하는 단계 - 여기서: 개인 키는 제1 데이터, 청크 카운트 및 하나 이상의 손상자에 기초하고; 제2 개인 코드는 제1 개인 코드에 기초하고; 개인 키의 수는 청크 카운트와 동일함 -; 하나 이상의 서버에서, 개인 키에 기초하여 제2 데이터를 생성하는 단계 - 제2 데이터를 생성하는 단계는 연결된 키를 생성하기 위해 개인 키를 연결하는 단계를 포함함 -; 및 제2 데이터를 생성하기 위해 연결된 키에서 하나 이상의 손상자를 제거하는 단계의 동작을 수행하게 한다.
이와 관련하여, 본 발명의 적어도 하나의 실시예를 상세히 설명하기 전에, 본 발명은 다음의 설명에서 설명되거나 도면에 도시된 구성 요소의 구성 및 구성의 세부 사항에 적용되는 것으로 제한되지 않음을 이해해야 한다. 본 발명은 다른 실시예가 가능하며 다양한 방식으로 실시 및 수행될 수 있다. 또한, 본원에 사용된 어구 및 용어는 설명의 목적을 위한 것이며 제한하는 것으로 간주되어서는 안된다는 것을 이해해야 한다.
본 발명은 더 잘 이해될 것이며, 본 발명의 목적은 다음의 상세한 설명을 고려할 때 명백해질 것이다. 이러한 설명은 첨부 도면을 참조하며, 여기서:
도 1은 본 발명의 인증 시스템의 실시예를 도시한 시스템 도면이다.
도 2는 본 발명의 일 실시예의 클라이언트 시스템과 검증 시스템 사이에서 데이터의 전송을 수행하도록 동작 가능한 요소들의 구성을 도시한 시스템 도면이다.
도 3은 본 발명의 실시예의 등록 프로세스를 수행하도록 동작 가능한 요소의 구성을 도시한 시스템 도면이다.
도 4는 본 발명의 실시예의 액세스 프로세스를 수행하도록 동작 가능한 요소의 구성을 도시한 시스템 도면이다.
도 5는 본 발명의 일 실시예에 따라 해싱 된 OY-패킷 부분을 프로세싱 하도록 동작 가능한 동기화 요소를 도시한 시스템 도면이다.
도 6은 본 발명의 일 실시예의 디코딩 프로세스를 수행하도록 동작 가능한 요소의 구성을 도시한 시스템 도면이다.
도 7은 본 발명의 일 실시예에 따른 사용자 장치의 요소를 도시한 시스템 도면이다.
도 8은 본 발명의 일 실시예에 따른 클라이언트 시스템의 요소를 나타내는 시스템 도면이다.
도 9는 본 발명의 일 실시예에 따른 클라이언트 디스플레이 유닛의 컴포넌트를 나타내는 시스템 도면이다.
도 10은 본 발명의 일 실시예에 따른 검증 시스템의 요소를 도시한 시스템 도면이다.
도 11은 본 발명의 일 실시예에 따라 클라이언트 시스템의 보안 부분(들)에 액세스 하기 위한 사용자 인증 요청의 프로세싱을 수행하도록 동작 가능한 요소들의 구성을 도시한 시스템 도면이다.
도 12는 본 발명의 일 실시예에 따라 사용자 인증을 위한 잡음 및 키의 생성 및 프로세싱을 수행하도록 동작 가능한 요소의 구성을 도시한 시스템 도면이다.
도 13은 본 발명의 일 실시예에 따라 사용자의 인증을 위한 키의 검증을 수행하도록 동작 가능한 요소의 구성을 도시한 시스템 도면이다.
도 14는 본 발명의 일 실시예에 따라 사용자의 인증을 위한 토큰의 검증을 수행하도록 동작 가능한 요소의 구성을 도시한 시스템 도면이다.
도 15는 본 발명의 일 실시예에 따라 사용자의 인증을 위해 클라이언트 디스플레이 시스템을 통해 챌린지의 검증을 수행하도록 동작 가능한 요소의 구성을 도시한 시스템 도면이다.
도 16은 본 발명의 일 실시예에 따른 사용자 인증을 위해 사용자 장치를 통해 챌린지의 검증을 수행하도록 동작 가능한 요소의 구성을 도시한 시스템 도면이다.
도 17은 본 발명의 일 실시예에 따른 등록 방법을 도시한다.
도 18은 본 발명의 일 실시예에 따른 하나 이상의 키를 발생하는 방법을 도시한다.
도 19는 본 발명의 일 실시예에 따라 하나 이상의 키를 분배하는 방법을 도시한다.
도 20은 본 발명의 일 실시예에 따른 로그인 방법을 도시한다.
도 21은 본 발명의 일 실시예에 따른 하나 이상의 키를 발생하는 방법을 도시한다.
도 22는 본 발명의 일 실시예에 따른 하나 이상의 검증 키를 분배하는 방법을 도시한다.
도 23은 본 발명의 일 실시예에 따라 로컬 데이터 베이스에서 검증 키를 검증하는 방법을 도시한다.
도 24는 본 발명의 일 실시예에 따른 검증 프로세스를 검증하는 방법을 도시한다.
도 25는 본 발명의 일 실시예에 따라 하나 이상의 바코드를 생성하는 방법을 도시한다.
도 26은 본 발명의 일 실시예에 따라 하나 이상의 키를 생성하는 방법을 도시한다.
도 27은 본 발명의 일 실시예에 따라 하나 이상의 키를 생성하는 방법을 도시한다.
도 28은 본 발명의 일 실시예에 따라 하나 이상의 키를 생성하는 방법을 도시한다.
도 29는 본 발명의 일 실시예에 따라 웹 세션을 설정하는 방법을 도시한다.
도 30은 일부 실시예에 따라 제어된 손상을 사용하여 키를 생성하는 시스템을 도시한다.
도 31은 일부 실시예에 따라 제어된 손상을 사용하여 키를 생성하는 방법을 도시한다.
도 32는 일부 실시예에 따라 제어된 손상을 사용하여 키를 생성하는 방법을 도시한다.
도 33은 일부 실시예에 따라 제어된 손상을 사용하여 키를 생성하는 방법을 도시한다.
도 34는 일부 실시예에 따라 제어된 손상을 사용하여 키를 생성하는 방법을 도시한다.
도 35는 일부 실시예에 따라 인증을 위해 제어된 손상을 사용하여 생성된 키를 사용하는 방법을 도시한다.
도면에서, 본 발명의 실시예가 예로서 도시되어 있다. 설명 및 도면은 단지 예시의 목적을 위한 것이며 이해를 돕기 위한 것이며, 본 발명의 한계를 정의하기 위한 것이 아님을 명백히 이해해야 한다.
본 발명은 사용자, 데이터, 문서, 장치 및 거래(transaction)를 인증하도록 동작 가능한 인증 방법(authentication method) 및 시스템이다. 본 발명의 실시예는 임의의 조직 또는 개인의 임의의 시스템 또는 네트워크와 동작 가능할 수 있다. 인증 방법 및 시스템은 다수의 장치들 사이에서 로그인 관련 정보의 고유 부분(unique portion)을 분배하도록 동작 가능하다. 로그인 관련 정보(login related information)의 지불된 부분(disbursed portion)은 시스템에 로그인 관련 정보를 공개하지 않고 사용자, 데이터, 문서, 장치 및 거래를 인증하기 위해 시스템에 의해 이용된다. 로그인 관련 정보는 다층 암호화(multi-layer encryption) 및/또는 해싱을 통해 암호화 및/또는 해싱 되며, 및 암호화 및/또는 해싱 된 세부 사항 중 일부는 보류된다. 로그인 관련 정보가 저장되는 장치는 모두 인증 방법 및 시스템에서 이용될 것이다. 사용자에게 제공된 로그인 관련 정보는 시스템 또는 사용자 장치에 공개 및/또는 저장되지 않는다. 데이터, 문서, 장치 및 거래 인증시 시스템에 키를 공개하지 않아도 된다.
본 명세서에서 "클라이언트 시스템(client system)"은 조직 또는 개인의 네트워크 또는 시스템을 의미한다. 본 명세서에서 "사용자 장치(user device)"에 대한 언급은 사용자가 랩톱, 태블릿, 휴대폰, 스마트 폰, 데스크탑 컴퓨터, 스마트 워치, 컴퓨팅 장치와 같은 장치를 이용하여 클라이언트 시스템에 로그인 하는 것을 의미하며, 사용자는 클라이언트 시스템 또는 보안 로그인이 필요한 다른 장치에 로그인 할 수 있다. 사용자와 클라이언트 시스템 사이의 "정보 전송(transfer of information)"에 대한 언급은 시스템과 관련하여 발생하는 정보의 발생, 전송 또는 저장을 포함할 수 있다. 명확성을 위해, 다른 시스템 또는 요소에 "액세스(access)" 하는 인증 시스템의 임의의 장치 또는 요소를 참조할 때, 여기에는 다음 중 하나가 포함될 수 있다:(i) 다른 유닛 또는 요소에 액세스 하여 정보를 획득하는 유닛 또는 요소; 또는(ii) 검색 또는 생성될 정보에 대한 요청을 다른 유닛 또는 요소로 전송하는 유닛 또는 요소, 및 그러한 정보가 요청에 응답하여 검색되거나 생성되면, 그러한 정보는 요청을 전송한 유닛 또는 요소로 전송될 수 있다.
사용자가 사용자 장치를 사용하여 클라이언트 시스템에 로그인 할 때, 사용자 장치와 클라이언트 시스템 간의 로그인 관련 정보의 발생, 전송, 저장 또는 인증은 제3자의 공격에 취약할 수 있다. 사용자 장치 또는 클라이언트 시스템에 대한 제3 자의 공격의 결과로, 로그인 정보를 발생, 전송, 저장 및/또는 인증하는 동안 제3자는 그러한 정보를 악의적인 목적으로 획득 및/또는 사용할 수 있다. 예를 들어, 제3자는 얻은 로그인 정보를 사용하여 클라이언트 시스템에 로그인 할 수 있으며, 따라서 클라이언트 시스템으로부터의 더 많은 로그인 관련 정보를 얻음으로써 클라이언트 시스템에 대한 무단 액세스를 달성하거나 클라이언트 시스템에 연결된 시스템으로 측 방향으로 이동한다. 다른 예로서, 제3자는 다양한 무단 목적으로 공격으로 인해 얻은 데이터, 문서 또는 거래 정보를 활용할 수 있다(즉, 상대방에게 정보를 분배하고, 시장 이점을 얻기 위해 정보를 사용하고, 몸값, 간첩, 전복 등에 대한 정보 인질을 보유하는 등). 본 발명은 클라이언트 시스템 또는 클라이언트 장치와 사용자 장치 사이에서 발생, 전송 및/또는 저장되는 데이터, 문서 또는 거래 정보의 무단 사용에 대한 클라이언트 시스템의 취약성을 감소시킨다.
본 발명의 방법은 조직 또는 개인의 클라이언트 시스템에 로그인 하기 위해 사용자 장치를 이용하는 사용자를 포함한다. 로그인 관련 정보는 단일 또는 다중 계층 해싱 및/또는 암호화 프로세스를 통해 해싱 및/또는 암호화된다. 특히, 암호화 및/또는 해싱 키의 적어도 일부가 생성되어 사용자의 장치에 저장될 수 있다. 로그인 관련 정보의 다른 고유 부분은 그 환경에서 다른 장치에 저장된다. 다수의 장치 사이에서 로그인 관련 정보의 고유 부분의 지불은 클라이언트 시스템과 사용자의 장치 사이에서 전송되는 정보에 액세스 하는 제3자가 클라이언트 시스템에 성공적으로 로그인 하는데 필요한 정보의 일부 또는 전부를 획득할 수 없음을 의미한다. 또한, 현재 시스템의 한 측면에서, 데이터 문서, 장치, 거래 및/또는 사용자를 인증하기 위해, 사용자의 장치는 클라이언트 시스템에 유효한 키가 있거나 장치가 이전에 인증되었음을 증명해야 한다. 이것은 사용자 장치가 클라이언트 시스템에 키를 공개할 필요없이 본 발명에 의해 달성될 것이다. 따라서, 데이터, 문서, 장치, 거래 및 사용자의 인증은 사용자가 자신의 키를 클라이언트 시스템에 공개하지 않고도 발생할 수 있다.
로그인 관련 정보는 고유하게 발생되며 저장 및/또는 전송되지 않는다; 이는 사용자 장치 지원 다 지점 인증과 함께 클라이언트 시스템에 대한 무단 제3자 액세스를 방지한다.
대부분의 종래 기술의 인증 시스템은 사용자의 장치와 클라이언트 시스템 사이에서 로그인 관련 정보의 발생, 저장, 전송 및 단일 지점 인증을 포함하므로, 종래 기술의 시스템은 이러한 정보가 제3 자에 의해 손상되는 것에 취약하다. 이러한 정보가 제3 자에 의해 획득되면, 이 정보는 데이터, 문서 또는 거래 정보의 인증 또는 무단 사용없이 단일 인증 지점에서 시스템 네트워크에 로그인 하는 데 사용될 수 있다. 본 발명은 클라이언트 시스템, 데이터, 문서 또는 거래 정보에 대한 무단 액세스를 허용하는 정보에 대한 제3 자 액세스에 취약하지 않다는 점에서 종래 기술의 시스템에 비해 이점을 제공한다. 본 발명의 인증 시스템은 발생, 저장, 이동(transit) 및 인증 지점에서 손상될 수 있는 종래 기술의 인증 문제를 해결한다.
종래 기술 시스템에 비해 본 발명의 다른 이점의 예로서 종래 기술 시스템은 일반적으로 임의의 유형의 클라이언트 시스템, 또는 임의의 유형의 사용자 장치와 함께 동작할 수 없다는 것이다. 본 발명은 임의의 플랫폼, 솔루션 또는 환경을 통해 조직의 데이터에 액세스하기 위해 사용자에게 필요한 보안 액세스를 제공할 보안 인증 시스템을 조직에 제공한다. 본 발명은 임의의 유형의 클라이언트 시스템 및 임의의 플랫폼상의 임의의 사용자 장치와 함께 사용하기 위해 임의의 조직에 의해 구현될 수 있다.
종래 기술에 비해 본 발명의 이점의 또 다른 예는 본 발명이 환경 내에서 장치의 하이브 인증(hive authorization)을 수행할 수 있다는 것이다. 예를 들어, 지리-시간 영역(geo-temporal zone)에 걸쳐 여러 모바일 및/또는 저장 장치를 하이브 인증 과정에서 인증할 수 있다. 종래 기술의 시스템은 지리-시간 영역에 걸쳐 하이브 인증을 수행하도록 작동될 수 없다.
본 발명의 실시예는 내부에 보안 부분을 갖는 클라이언트 시스템에 대한 사용자 로그인을 위해 또는 사용자가 그러한 시스템의 보안 부분에 액세스하기 위해 사용자를 인증하도록 동작 가능한 다수의 컴포넌트를 포함할 수 있다. 예를 들어, 본 발명의 일 실시예는 다음과 같이 3 가지 주요 컴포넌트를 포함할 수 있다:(1) 동기화 된 다중 얼굴 인증(SMFA);(2) 대화식 반 수동 인증(ISMA);(3) 거래 인증. 본 발명의 이러한 실시예의 예를 제공하기 위해, 본 발명의 실시예의 이들 3 가지 컴포넌트는 모두 후술된다. 숙련된 독자는 이하에 설명된 3 개의 컴포넌트 중 하나 또는 2 개 만을 포함하는 구성, 또는 다른 컴포넌트를 포함하는 구성을 포함하여 본 발명의 다른 구성이 가능하다는 것을 인식할 것이다.
[11]
동기화 된 다중 얼굴 인증(Synchronized Multi-Faceted Authentication)(SMFA)
본 발명의 사용자를 위한 인증 방법 및 시스템은 랜덤 멀티-유닛 로그인 관련 정보의 암호화 및/또는 해싱 된 부분이 장치(예를 들어, 사용자 및/또는 시스템 장치 및 저장 유닛) 사이에 분배되고 및 그러한 장치들 모두는 사용자를 인증하기 위해 이용되어야 한다.
따라서 로그인 데이터가 발생, 전송, 저장 또는 인증시(예를 들어, 제3자의 무단 액세스 등) 손상된 경우, 알 수 없는 사용자(들)의 시간에 민감한 랜덤 로그인 관련 정보의 암호화 및/또는 해싱 부분 만이 얻어질 것이며, 이 데이터는 사용자를 인증하는데 사용될 수 없다.
더 구체적으로, 본 발명은 클라이언트 시스템에 로그인 하기 위하여 사용자가 챌린지, 예를 들어 정적인 챌린지, 핀 및/또는 패턴 챌린지, 애니메이션 및/또는 비 애니메이션 챌린지, 그래픽 및/또는 비 그래픽 챌린지, 2 차원 및/또는 3 차원 챌린지, 이동 및/또는 정적 게임화 된 챌린지, 및/또는 게임화 되지 않은 인터페이스 챌린지에 참여하도록 요구되도록 동작할 수 있다. 시스템은 일련의 단위를 선택할 수 있으며 이를 사용하여 챌린지를 생성할 수 있다. 각 단위에는 랜덤하게 여러 자리가 할당되며 각 로그인 이벤트마다 변경될 수 있다. 사용자는 동일한 인증 이벤트 및 모든 후속 인증 이벤트에서 여러 챌린지를 선택할 수 있다.
챌린지 중에 선택된 일련의 단위는 인증 시스템에 의해 여러 고유 시스템 부분으로 나뉜다. 각 단위 부분의 단위는 단위 결과를 생성하기 위해 개별적으로 해싱 또는 암호화될 수 있고, 각 시스템 부분의 유닛들은 시스템 부분 결과를 생성하기 위해 집합 적으로 해싱 및/또는 암호화된다. 시스템 부분의 각 장치 및 각 시스템 부분에 적용되는 해싱 및/또는 암호화의 수는 변할 수 있다.
해싱 및/또는 암호화된 결과의 일부는 클라이언트 또는 다른 시스템의 분산 아키텍처(distributed architecture)의 다른 장치에 저장되며 일부는 사용자의 장치에 저장된다. 예를 들어, 해싱 및/또는 암호화된 결과의 일부는 다수의 사용자 및 시스템 장치에 저장될 수 있다.
사용자 장치뿐만 아니라 해싱 및/또는 암호화된 부분 데이터를 포함하는 모든 클라이언트 시스템 장치는 자체 검증해야 한다. 장치가 인증되면 사용자를 공동 인증할 수 있다.
본 인증 시스템 발명은 플랫폼에 구애받지 않으므로 임의의 클라이언트 시스템과 함께 사용될 수 있다.
대화식 반 수동 인증(Interactive Semi-Manual Authentication)(ISMA)
본 발명의 사용자에 대한 인증 프로세스는 로그인 정보가 다층 암호화 및/또는 해싱 기능을 사용하여 암호화 및/또는 해싱 되도록 동작한다. 랜덤 암호화 및/또는 해싱 세부 사항의 일부는 클라이언트 시스템 또는 사용자 장치에 저장되지 않고 수동으로 전송되고 보류되므로(held back), 그리하여 전송, 저장 또는 인증 중에 손상될 가능성을 줄인다.
본 발명의 시스템은 키(즉, 키 # 1)를 모바일 장치에 제공한다. 본 발명의 모든 키는 다층 암호화 및/또는 해싱 기능을 사용하여 암호화 및/또는 해싱 된다.
암호화된 키는 본 발명의 인증 프로세스에 사용되어야 하며, 따라서 사용자는 먼저 여기에 설명된 SMFA 프로세스를 사용하여 인증해야 하며, 따라서 키의 유효성을 검사하고 사용자의 장치를 인증해야 한다.
시스템은 각 로그인 이벤트마다 변경되는 랜덤 암호화된 키를 기반으로 챌린지를 생성한다. 인증된 사용자는 인증된 장치를 사용하여 챌린지를 스캔한다. 이 프로세스의 끝에서 랜덤 암호화된 키의 일부 또는 전체가 사용자 장치로 전송된다.
본 발명의 일부 실시예에서, 각 로그인 이벤트에서 변경될 사용자 장치에 의해 생성될 수 있는 암호화된 랜덤 키(random key)의 다른 세트가 있을 수 있다. 암호화된 공유 비밀 키(encrypted shared secret key)를 형성하기 위해 결합될 수 있는 다중 키(Multiple key); 암호화된 공유 비밀 키의 일부 또는 전체가 사용자의 인증을 요청하는 조직(organization)의 클라이언트 시스템으로 전송된다.
사용자 장치에 의해 다수의 암호화 계층이 생성될 수 있다. 이러한 암호화는 요소들에 개별적으로 또는 집합적으로 적용될 수 있다. 예를 들어, 솔트(salt) 및 iv와 함께 랜덤 3 자리 이상의 숫자(각 로그인 이벤트 동안 변경될 수 있음)가 사용자 장치에 의해 생성될 수 있거나, 또는 다른 유형의 암호화 및/또는 해싱이 적용될 수 있다. 다른 암호화 계층이 이전 암호화에 집합적으로 추가될 수 있다.
여러 계층의 암호화로 인해 패키지에서 여러 개의 랜덤 문자가 제거된다. 예를 들어, 6 개의 랜덤 문자가 패키지에서 제거될 수 있다. 다수의 랜덤 숫자 및 문자가 사용자에게 제공될 것이고 암호화된 세부 사항은 사용자 장치의 인증을 요청하는 클라이언트 시스템으로 전송된다.
사용자 장치의 인증을 요청하는 클라이언트 시스템은 사용자에게 사용자 장치에 제공된 정보를 제공하도록 요구할 것이다. 그러한 정보를 제공하는 사용자에게만 클라이언트 시스템은 사용자를 인증할 수 있다. 이 프로세스는 제3자가 사용자의 로그인 정보를 가로채거나 추측하거나 알 수 있는 가능성을 줄인다.
사용자가 인증되면 세션은 시간 및 지리-기반 액세스 코드(geo-based access code)를 통해 인증된다. 예를 들어, 지리-기반 액세스 코드는 토큰(token) 또는 다른 유형의 지리-기반 액세스 코드 일 수 있다. 시간이 만료되거나 지리적 측면이 무효화되면 지리-기반 액세스 코드가 무효화될 수 있다. 예를 들어, 사용자가 지리-기반 액세스 코드와 관련된 지리적 위치 내에 있지 않으면 지리적 특징이 무효화될 수 있다.
거래 인증(Transaction Authentication)
본 발명의 인증 시스템의 사용자에 대한 인증 프로세스는 사용자가 자신의 키를 클라이언트 시스템에 공개할 필요없이 거래가 인증되도록 동작한다. 클라이언트 시스템은 사용자 키를 알지 못하거나 사용자에게 키가 있는지 알 수 없다. 사용자 장치는 시스템에 키를 공개하지 않고 유효한 키가 있고 사용자 및 장치가 인증되었음을 시스템에 증명해야 한다. 이를 달성하기 위해, 사용자 장치는 여기에 설명된 SMFA 프로세스 및/또는 여기에 설명된 ISMA 프로세스를 사용하여 인증해야 할 것이다. 사용자 장치가 인증되면, 사용자 장치는 자신이 가지고 있거나 받은 랜덤 임시 키(temporary key)를 사용할 수 있다.
시스템이 챌린지를 생성한다. 이 과제는 다층 암호화, 디지털 서명 및/또는 해싱과 같은 기능을 사용하여 보호할 수 있다. 보안 패키지는 인증을 요청하는 사용자 장치로 전송된다. 사용자 장치는 패키지를 확인하고 디스플레이에 제공된 암호 해독 키를 사용하거나 문제를 해결할 수 있다.
예로서, 본 발명의 일 실시예는 시스템이 하나 이상의 숫자가 공백인 복수의 랜덤 숫자 알파벳 숫자 코드를 생성하도록 동작 가능할 수 있으며, 블랭크에 기입될 대응하는 알파벳 또는 숫자는 또한 ISMA 프로세스에서 챌린지와 함께 사용자에게 전송될 것이다. 예를 들어, 시스템은 6 개 이상의 복수의 랜덤 알파벳 숫자 코드, 또는 임의의 다른 수의 랜덤 알파벳 숫자 코드를 생성할 수 있다.
시스템은 6 개 이상의 랜덤 숫자 영숫자 코드와 기타 요소를 생성하고 암호화한다. 예를 들어, 시스템은 6 자리 이상의 랜덤 숫자 영숫자 코드를 암호화할 수 있다. 추가 암호화 및 보안 기능(솔트, iv, 보안 키 등을 포함하지만 이에 국한되지 않음)도 클라이언트 시스템에 의해 적용될 수 있다. 그런 다음 시스템은 암호화 결과에 디지털 서명을 추가한다. 이 암호화 및 서명된 패키지는 인증을 요청하는 사용자 장치로 전송된다.
사용자 장치는 디지털 서명을 확인한 다음 제공된 암호 해독 키를 사용하여 해당 알파벳 또는 숫자와 함께 6 자리 이상의 영숫자 코드를 재 발생시킨다.
그런 다음 사용자 장치는 보안 기능과 함께 재 발생된 정보를 암호화한다. 그런 다음 사용자 장치는 암호화 결과에 디지털 서명을 추가한다. 이 암호화되고 서명된 패키지는 인증 프로세스와 관련된 클라이언트 시스템으로 전송된다.
클라이언트 시스템은 사용자 장치로부터 메시지를 수신하고, 수신시 디지털 서명을 확인하고 메시지를 해독한 다음 메시지를 보낸 메시지와 비교한다. 비교 결과 수신된 메시지가 전송된 메시지와 동일하면 클라이언트 시스템은 사용자에게 필요한 키가 있음을 알고 있다. 사용자 장치가 인증되면 세션은 시간 및 지역 기반 액세스 코드를 통해 인증되고, 이들 액세스 코드는 본 명세서에서 전술한 바와 같이 시간이 만료되거나 지리가 무효화되면 무효화될 것이다.
숙련된 독자는 본 발명의 인증 방법 및 시스템이 다양한 방식으로 구현될 수 있음을 인식할 것이다. 도 1 내지 17은 본 발명의 실시예의 일부 예를 제공하며, 이들은 본 명세서에서 설명된다.
도 1에 도시된 바와 같이, 인증 시스템(authentication system)은 클라이언트 시스템, 사용자 시스템, 검증 시스템(verification system) 및 다중 저장 유닛(multiple storage unit)을 포함한 많은 요소를 통합한다. 인증 시스템은 사용자의 로그인을 증명하고 확인하는 등 많은 기능을 수행할 수 있다.
사용자 시스템(user system)(102)은 클라이언트 시스템(client system)(902)에 로그인 하기 위해 사용자에 의해 사용된다. 사용자 시스템은 본 명세서에 설명된 바와 같이, 사용자의 신원(identity) 및 다른 활동을 검증하는 데 관여할 수 있다. 사용자가 클라이언트 시스템의 보안 영역에 액세스하려면 클라이언트 시스템에서 사용자의 신원을 확인해야 한다. 검증 시스템(verification system)(202)은 클라이언트 시스템에 대한 사용자의 신원을 검증하는데 관여할 수 있다.
사용자가 사용자 장치(90)를 통해 클라이언트 시스템의 보안 영역에 액세스하기를 원할 때, 사용자는 먼저 클라이언트 시스템에 대한 사용자의 신원을 증명해야 한다. 클라이언트 시스템이 사용자의 신원에 대한 검증을 수신하면, 시스템은 사용자가 클라이언트 시스템의 보안 컨텐츠에 액세스하는 것을 허용할 수 있다.
사용자는 사용자 시스템을 사용하여 신원을 증명하고 클라이언트 시스템의 보안 영역에 액세스 한다. 검증 시스템(202)은 사용자의 신원의 진위를 검증하도록 작동 가능하다. 동기화 시스템(synchronization system)(300)은 사용자 신원의 진위를 승인하기 위해 동기화된 방식으로 기능하도록 동작 가능한 하나 이상의 동기화 요소(synchronization element)(302A?? 302N)의 집합이다.
사용자 시스템은 다수의 요소를 포함할 수 있다. 본 발명의 일 실시예에서, 사용자 시스템은 증명 유닛(proving unit)(104), 디스플레이 유닛(display unit)(106), 프로세싱 유닛(processing unit)(108), 승인 유닛(approval unit)(112), 저장 유닛(storage unit)(110) 및 통신 유닛(communications unit)(114)을 포함할 수 있다. 증명 유닛은 검증 시스템에 대한 사용자 시스템(102)의 초기 신원을 증명하도록 동작 가능하다. 디스플레이 유닛은 예를 들어, 클라이언트 시스템, 검증 시스템 또는 본 발명의 임의의 다른 시스템 또는 요소로부터 사용자 시스템으로 전송된 챌린지 또는 임의의 다른 정보와 같은 정보를 사용자에게 디스플레이 하도록 동작 가능하다. 디스플레이 유닛은 또한 클라이언트 시스템에 의해 생성된 정보를 사용자에게 디스플레이 하도록 동작 가능하다. 디스플레이 유닛은 또한 입력 유닛에 연결되거나, 터치 스크린 또는 다른 입력 조작성을 가질 수 있어, 사용자는 정보를 입력할 수 있다. 사용자에 의해 입력된 정보는 디스플레이 유닛 상에 디스플레이 될 수 있거나, 그렇지 않으면 사용자 시스템에 의해 수집되어 저장되거나, 클라이언트 시스템 또는 인증 시스템의 다른 시스템 또는 요소로 전송되거나, 사용자 시스템에 의해 프로세싱 될 수 있다. 프로세싱 유닛(processing unit)(108)은 시스템 내의 모든 프로세싱 용량을 담당할 것이다. 승인 유닛(112)은 챌린지 및 응답에 액세스하여 결과를 제공할 책임이 있고, 저장 유닛은 임시 및 영구 데이터를 모두 저장하는 책임을 진다. 통신 유닛(114)은 모든 외부 통신을 담당한다.
검증 시스템(202)은 다수의 요소를 포함할 수 있다. 본 발명의 일 실시예에서, 검증 시스템은 마스커 유닛(masker unit)(204), N-패킷 생성기(N-packet generator)(206), 리포트 생성기(report generator)(208), 프로세싱 유닛(processing unit)(210), 승인 유닛(approval unit)(212), 하나 이상의 저장 유닛(storage unit)(214A?? 214N) 및 통신 유닛(communications unit)(216)을 포함할 수 있다. 마스 커 유닛은 클라이언트 시스템 및 사용자 시스템에 대한 하나 이상의 고유한 비-식별 식별자(unique non-identifying identifier)를 생성하도록 동작 가능하다. 프로세싱 유닛(210)은 인증 시스템에 의해 요구되는 정보 및 데이터의 프로세싱을 수행할 수 있다. 승인 유닛(212)은 시스템에서 내부적으로 수신된 응답에 액세스하고 프로세싱 유닛으로 전송되거나 통신 유닛을 통해 시스템 외부의 수신기로 전송될 수 있는 결과를 제공하도록 동작 가능하다. 하나 이상의 저장 유닛은 임시 및 영구 데이터를 모두 저장하도록 동작 가능하다. N-패킷 생성기(206)는 인증 정보의 패킷을 생성하도록 동작 가능하다. 통신 유닛(216)은 검증 시스템(즉, 클라이언트 시스템, 사용자 시스템 등) 외부의 인증 시스템의 모든 요소와의 모든 통신을 수신 및 전송하도록 동작 가능하다.
숙련된 독자는 본 발명의 실시예에서 도 1의 검증 시스템의 요소로서 기술된 일부 또는 모든 유닛이 클라이언트 시스템과 같은 인증 시스템의 다른 시스템 또는 요소 내에 통합될 수 있음을 인식할 것이다. 본 발명의 일부 실시예에서, 도 1에서 검증 시스템의 요소로서 기술된 일부 또는 모든 유닛은 인증 시스템의 임의의 시스템에 포함되지 않지만 일반적으로 인증 시스템에 통합된 독립형 요소일 수 있다.
동기화 시스템(synchronization system)(300)은 하나 이상의 동기화 요소(synchronization element)(302A?? 302N)를 포함할 수 있고, 각각의 동기화 요소는 다수의 유닛을 포함할 수 있다. 본 발명의 일 실시예에서, 적어도 2 개의 동기화 요소는 증명 유닛(304A?? 304N), 저장 유닛(308A?? 308N), 프로세싱 유닛(306A?? 306N), 승인 유닛(312A?? 312N) 및 통신 유닛(310A?? 310N)을 포함할 수 있다. 증명 유닛(304A)은 동기화 시스템(300)의 초기 신원을 검증 시스템(202)에 증명하도록 동작 가능하다.
사용자 시스템 간 통신, 검증 시스템 및 동기화 요소는 그러한 시스템 및/또는 요소의 통신 유닛에 의해 수신되고 그로부터 전송된다. 시스템 및/또는 요소들 간의 이러한 모든 통신은 하나 이상의 마스킹 기능의 사용에 의해 보호될 수 있고, 하나 이상의 마스킹 기능은 해싱 및/또는 암호화를 포함할 수 있다.
도 2에 도시된 바와 같이, 데이터는 검증 시스템의 통신 유닛(216)을 통해 검증 시스템의 마스 커 유닛(204)과 클라이언트 시스템(902) 사이에서 전송될 수 있다. 클라이언트 시스템을 사용하려는 새로운 사용자의 설정과 관련하여 클라이언트 시스템과 검증 시스템 간의 초기 통신 동안, 클라이언트 시스템은 검증 시스템의 마스커 유닛과 통신하여 새로운 사용자가 클라이언트 시스템과의 보안 연결을 확립하기 위해 요구되는 자격 증명을 요청할 수 있다. 마스커 장치는 클라이언트 시스템이 클라이언트 시스템과 검증 시스템 사이의 링크를 설정하는 데 사용할 수 있는 고유한 보안 자격 증명을 생성한다. 이러한 고유 자격 증명은 예를 들어 클라이언트 ID 또는 다른 형식의 자격 증명을 포함할 수 있다.
클라이언트 시스템과 검증 시스템 간에 신뢰할 수 있는 연결이 설정되면, 마스커 유닛은 계산, 알고리즘 또는 사용자에 대한 비밀인 고유한 비-식별 식별자를 생성할 다른 유형의 프로세스와 같은 프로세스를 수행한다. 고유한 비-식별 식별자는 검증 시스템에 통합된 저장 유닛들(214A)(또는 저장 유닛들(214A ... 214N) 중 임의의 것) 중 하나에 저장될 수 있다.
마스 커 유닛은 비-식별 식별자를 안전하게 하기 위해 해싱, 암호화 및/또는 다른 마스킹 기능과 같은 마스킹 기능을 사용할 수 있다. 클라이언트 시스템은 또한 이용 가능한 모든 동기화 요소의 리스트를 검증 시스템에 제공할 수 있다. 본 발명의 실시예에서, 하나 이상의 동기화 요소는 검증 시스템의 하나 이상의 저장 유닛(214A?? 214N)에 저장될 수 있다.
도 3에 도시된 바와 같이, 본 발명의 등록 프로세스는 사용자가 클라이언트 시스템에 등록하기 위해 인증 시스템과 사용자의 초기 상호 작용 중에 요구되는 인증 시스템의 요소의 동작을 포함할 수 있다. 클라이언트 시스템, 사용자 시스템의 요소, 검증 시스템의 요소 및 동기화 시스템의 요소 사이의 모든 통신은 도 3에 도시된 바와 같이 사용자 시스템, 검증 시스템 및 동기화 시스템의 통신 유닛을 통해 이루어진다. 클라이언트 시스템의 보안 부분에 액세스 할 수 있는 권한을 받으려면 사용자가 클라이언트 시스템에 등록해야 한다. 초기 등록 동안, 증명 유닛(104)은 증명 정보를 검색하기 위해 클라이언트 시스템의 하나 이상의 저장 유닛(110)에 액세스 한다. 증명 정보는 마스커 유닛에 의해 생성된 비-식별 식별자, 마스커 유닛에 의해 생성된 비밀을 포함할 수 있고, 및 또한 사용자 장치, 고유 애플리케이션 넘버, 및 예를 들어, 생체 정보(예를 들어, 사용자의 지문, 사용자의 망막 스캔, 또는 사용자의 다른 생체 정보), 사용 정보 등과 같은 사용자와 관련된 다른 정보를 식별할 수 있는 정보를 포함할 수 있다. 증명 유닛이 모든 증명 정보를 획득하면, 증명 정보는 사용자 시스템의 하나 이상의 저장 유닛에 저장될 수 있다.
증명 유닛(104)에 의해 획득된 증명 정보는 사용자 시스템의 통신 유닛(114)을 통해 검증 시스템의 프로세싱 유닛(210)으로 안전하게 전송된다. 프로세싱 유닛(210)은 검증 시스템의 통신 유닛(216)을 통해 검증 시스템의 하나 이상의 저장 유닛(214A?? 214N)으로부터 사용자에 대한 정보를 검색한다. 프로세싱 유닛(210)은 클라이언트 시스템으로부터 수신한 정보와 검증 시스템의 하나 이상의 저장 유닛으로부터 검색된 정보를 결합하여 정보 패키지를 발생시킨다. 프로세싱 유닛은 이러한 정보 패키지를 승인 유닛(212)에 전송한다.
승인 유닛(212)은 프로세싱 유닛으로부터 수신한 정보 패키지의 값을 클라이언트 시스템으로부터 이전에 수신된 검증 시스템의 하나 이상의 저장 유닛(214A?? 214N)에 저장된 정보와 비교한다. 비교가 성공하면 승인 장치가 사용자 시스템과의 연결을 수락한다. 비교가 성공적이지 않으면, 승인 유닛(212)은 사용자 시스템과의 연결을 거부할 것이다. 승인 시스템의 결과는 N-패킷 생성기(206)로 전송된다.
사용자 시스템과의 연결이 승인되지 않으면 인증 시스템이 사용자 등록을 시도하는 작업이 종료된다. 본 발명의 일 실시예에서, 사용자 시스템과의 연결이 승인되면 N-패킷 생성기는 랜덤 챌린지를 생성한다. 랜덤 챌린지는 다수의 패킷(N-패킷)을 포함할 수 있다. 각 N-패킷에는 여러 개의 랜덤 숫자 또는 영숫자/기타 문자(N-RANC)가 있다.
N-패킷은 사용자 시스템의 디스플레이 유닛(106)으로 안전하게 전송된다. 본 발명의 실시예는 N-패킷 발생기와 디스플레이 유닛 사이에서 전송되는 N-패킷에 보안을 제공하기 위해 암호화, 해싱 및/또는 디지털 서명을 포함하지만 이에 제한되지 않는, 예를 들어, 이동 전에 N-RNAC 및 N-패킷 둘 다의 다층 보호인 다층 보호(multi-layer of protection)를 적용할 수 있다. 본 발명의 다른 실시예에서, N-패킷은 사용자 시스템의 요소 또는 N-RNAC가 있거나 없는 다른 시스템에 의해 생성될 수 있다. 사용자는 이 요소와 상호 작용하여 OY-패킷을 생성한다.
디스플레이 유닛(106)은 N-패킷을 수신하고 N-패킷에 포함된 정보를 사용자에게 디스플레이 한다. 디스플레이 된 N-패킷으로부터 사용자는 하나 이상의 N-패킷을 입력함으로써 선택된 N-패킷과 관련된 N-RANC를 선택한다. 용이한 참조를 위해, 사용자에 의해 선택된 N-패킷은 본원에서 Y-패킷이다. 사용자가 Y-패킷을 선택한 순서는 주문 Y-패킷(OY-패킷)이 되도록 유지된다. OY-패킷은 디스플레이 유닛(106)에 의해 사용자 시스템의 프로세싱 유닛(108)으로 전송된다. 사용자 시스템의 프로세싱 유닛은 OY-패킷을 둘 이상의 부분으로 분할한다. 각 부분은 둘 이상의 N-패킷을 포함할 수 있다.
사용자 시스템의 프로세싱 유닛은 OY-패킷의 각 부분에 마스킹 기능을 적용함으로써 OY-패킷 정보를 마스킹 할 수 있다. 예를 들어, 사용자 시스템의 프로세싱 유닛은 다음 중 하나 이상에 마스킹을 적용할 수 있다: OY-패킷에 통합된 각각의 N-RNAC 및/또는 OY-패킷에 통합된 각각의 Y-패킷 및/또는 각각의 OY-패킷. 하나 이상의 마스킹의 결과는 사용자 시스템의 하나 이상의 저장 유닛(110)에 저장될 수 있다. 저장되지 않은 결과는 검증 시스템의 프로세싱 유닛(processing unit)으로 전송된다.
사용자 시스템의 디스플레이 유닛으로 전송되는 N-패킷 생성기에 의해 생성된 챌린지는 다수의 N-패킷을 포함할 수 있고 각각의 N-패킷은 3 개 이상의 N-RANC를 포함할 수 있다. 사용자는 OY-패킷을 형성하는 다수의 Y-패킷을 선택할 수 있다. OY-패킷은 2 개의 부분(즉, OYA- 부분 및 OYB- 부분)으로 분할될 수 있다.
검증 시스템의 프로세싱 유닛은 해싱 및/또는 암호화를 적용한 다음, 검증 시스템의 하나 이상의 저장 유닛에 저장된 리스트로부터 동기화 시스템의 둘 이상의 랜덤 동기화 요소를 선택할 수 있다. 선택된 랜덤 동기화 요소는 동기화 레지스트리를 형성한다. 검증 시스템의 프로세싱 유닛은 개별적으로 또는 집합 적으로 OY-패킷 부분에 비밀을 추가할 수 있고, 개별적으로 및/또는 집합적으로 OY-패킷 부분에 대해 다층 해싱 및/또는 암호화 기능을 수행할 수 있다. 해싱 및/또는 암호화된 고유 OY-패킷 부분은 하나 이상의 동기화 요소 사이에 분배될 수 있고, OY-패킷 부분이 분배되는 하나 이상의 동기화 요소에서 하나 이상의 저장 유닛에 저장될 수 있다. 그 결과 고유한 OY-패킷 부분이 다른 동기화 요소에 저장된다. 분배 정보 부분은 동기화 요소의 동기화 레지스트리에 저장될 수 있다.
도 4에 도시된 바와 같이, 인증 시스템은 액세스 프로세스를 수행하도록 동작 가능하고, 여기서, 등록된 사용자는 클라이언트 시스템의 보안 부분에 대한 액세스를 얻기 위해 검증 시스템의 동작을 통해 자체 인증을 시도한다. 사용자 시스템의 요소들, 검증 시스템의 요소들 및 동기화 시스템의 요소들 간의 모든 통신은 도 4에 도시된 바와 같이, 사용자 시스템의 통신 유닛, 검증 시스템 및 동기화 시스템의 동기화 요소의 동기화 요소를 통해 이루어진다. 사용자 시스템의 증명 유닛(104)은 증명 정보를 검색하기 위해 사용자 시스템의 하나 이상의 저장 유닛(110)에 액세스한다. 증명 정보는 비-식별 식별자 및 비밀을 포함할 수 있다.
증명 유닛에 의해 획득된 증명 정보의 일부 또는 전부는 검증 시스템의 통신 유닛(216)을 통해, 사용자 시스템의 통신 유닛(114)을 통해 검증 시스템의 프로세싱 유닛(210)으로 안전하게 보내진다. 프로세싱 유닛(210)은 검증 시스템의 하나 이상의 저장 유닛(214A?? 214N)으로부터 사용자에 대한 정보를 검색한다. 프로세싱 유닛(210)은 클라이언트 시스템으로부터 수신된 정보를 검증 시스템의 하나 이상의 저장 유닛으로부터 검색된 정보와 결합하여 정보 패키지를 발생시킨다. 프로세싱 유닛은 이 정보 패키지를 검증 시스템의 승인 유닛(212)에 전송한다.
승인 유닛(212)은 프로세싱 유닛(210)으로부터 수신한 정보 패키지의 값을 클라이언트 시스템으로부터 이전에 수신된 검증 시스템에 저장된 정보와 비교한다. 비교가 성공하면(즉, 비교 결과 비교된 정보가 일 함), 승인 장치는 사용자 시스템과의 연결을 수락한다. 비교에 실패하면, 승인 장치는 사용자 시스템과의 연결을 거부한다. 승인 시스템의 결과는 N-패킷 생성기(206)로 전송된다.
사용자 시스템과의 연결이 승인되지 않은 경우, 사용자 등록을 시도하는 인증 시스템의 작동이 종료된다. 사용자 시스템과의 연결이 승인되면, N-패킷 생성기는 랜덤 챌린지를 생성한다. 랜덤 챌린지는 둘 이상의 패킷(N-패킷)을 포함할 수 있다. 각 N-패킷에는 두 개의 랜덤 또는 영숫자(N-RANC)가 더 있다. 다층 해싱 및/또는 암호화는 디스플레이 유닛으로 전송된 챌린지에 적용될 수 있다. 해싱 및/또는 암호화는 랜덤 생성기에 의해 적용된다.
N-패킷은 사용자 시스템의 디스플레이 유닛(106)으로 안전하게 전송된다. 본 발명의 실시예는 N-패킷 생성기와 디스플레이 유닛 사이에서 전송되는 N-패킷에 보안을 제공하기 위해 다층 해싱 및/또는 암호화를 적용할 수 있다. 예를 들어, 다층 해싱 및/또는 암호화는 이동 전에 N-RNAC 및/또는 N-패킷을 해싱 및/또는 암호화하는 단계를 포함할 수 있다. 디스플레이 유닛(106)는 N-패킷을 수신하여 해당 정보를 사용자에게 디스플레이 한다. 디스플레이 된 대응하는 정보로부터, 사용자는 N-패킷, 및 선택된 N-패킷과 연관된 N-RANC를 선택함으로써 둘 이상의 대응하는 정보를 선택한다. 용이한 참조를 위해, 사용자에 의해 선택된 N-패킷은 본 명세서에서 Y-패킷이며, 이들 Y-패킷은 주문되고 OY-패킷으로 불린다. 본 발명의 다른 실시예에서, N-패킷 발생기는 사용자 시스템 및/또는 사용자 시스템 또는 카메라, 스캐너 등과 같은 다른 시스템으로부터의 임의의 요소를 통해 사용자와의 상호 작용에 의해 Y 및/또는 OY-패킷을 생성할 수 있는 다른 시스템에 존재할 수 있다.
OY-패킷은 디스플레이 유닛(106)에 의해 사용자 시스템의 프로세싱 유닛(108)으로 전송된다. 사용자 시스템의 프로세싱 유닛은 OY-패킷을 여러 부분으로 분할한다. 각 부분에는 여러 개의 N-패킷이 포함된다.
사용자 시스템의 프로세싱 유닛(108)은 이전에 저장된 OY-패킷 부분이 저장된 사용자 시스템의 하나 이상의 저장 유닛으로부터 이전에 저장된 OY-패킷 부분을 검색한다. 프로세싱 유닛은 이전에 저장된 OY-패킷 부분 및 보다 최근에 발생된 OY-패킷 부분을 사용자 시스템의 승인 유닛(110)으로 전송한다. 사용자 시스템의 승인 유닛은 사용자 시스템의 프로세싱 유닛으로부터 수신한 정보를 이전에 저장된 OY-패킷 부분과 비교하여 승인 결과 또는 거부 결과를 생성한다. 사용자 시스템의 승인 유닛에 의해 생성된 결과(즉, 승인 결과 또는 거부 결과)는 사용자 시스템의 프로세싱 유닛으로 전송된다. 사용자 시스템의 승인 단위 결과가 거부 결과인 경우 인증 프로세스가 중지된다.
사용자 시스템의 승인 단위 결과가 승인 결과인 경우, 사용자 시스템의 프로세싱 유닛은 사용자 시스템의 하나 이상의 저장 유닛에서 최근에 생성된 하나 이상의 OY-패킷 부분을 저장할 수 있고, 나머지 OY-패킷 부분을 검증 시스템의 프로세싱 유닛으로 보낸다. 검증 시스템의 프로세싱 유닛은 동기화 레지스트리로부터 사용자에 대한 동기화 시스템 정보를 검색한다. 검증 시스템의 프로세싱 유닛은 수신한 OY-패킷 부분에 비밀을 추가하고 이들 OY-패킷 부분에 대해 다층 해싱 및/또는 암호화 기능을 수행할 수 있다. 해싱 및/또는 암호화 후, 검증 시스템의 프로세싱 유닛은 해싱 및/또는 암호화된 고유 OY-패킷 부분을 동기화 시스템의 동기화 요소 중 하나 이상의 프로세싱 유닛(302A?? 320N)으로 전송할 수 있다. 동기화 요소의 각각의 프로세싱 유닛은 검증 시스템의 프로세싱 유닛(210)으로부터 해싱 및/또는 암호화된 고유 OY-패킷 부분을 수신한다. 해싱 및/또는 암호화된 OY-패킷 부분을 수신하는 동기화 유닛의 각각의 동기화 요소는 도 5에 도시된 바와 같이 프로세스를 수행할 수 있다. 동기화 요소의 프로세싱 유닛(306A?? 306N)은 해싱 및/또는 암호화를 디코딩하여 하나 이상의 N-패킷 및 N-RANC를 결정하고 식별할 수 있다. 동기화 요소의 프로세싱 유닛은 N-패킷 및 N-RANC를 동일한 동기화 요소의 승인 유닛(312A?? 312N)으로 전송할 수 있다.
동기화 유닛의 증명 유닛(304A?? 304N)은 동기화 요소의 저장 유닛(308A?? 308N)으로부터 이전에 저장된 해싱 및/또는 암호화된 OY-패킷 부분을 검색한다. 동기화 유닛의 증명 유닛은 하나 이상의 N-패킷 및 N-RANC를 결정 및 식별하기 위해 해싱 및/또는 암호화를 디코딩 할 수 있으며, 이들은 동기화 요소의 승인 유닛으로 전송된다. 동기화 요소의 승인 유닛은 최근에 생성된 N-패킷 및 N-RANC를 이전에 저장된 N-패킷과 비교한다. 이 비교에 기초하여 통과 값 또는 실패 값이 생성된다. 생성된 통과 값 또는 실패 값은 동기화 요소의 검증 유닛으로 전송된다.
동기화 유닛의 증명 유닛은 동기화 유닛의 하나 이상의 저장 유닛으로부터 증명 정보를 검색하고, 입증 유닛이 수신한 증명 정보 및 통과 값 또는 실패 값은 해싱 및/또는 암호화되어 검증 시스템의 프로세싱 유닛으로 전송될 수 있다.
검증 시스템의 프로세싱 유닛은 그러한 정보를 생성한 각각의 동기화 요소의 각 입증 유닛으로부터 해싱 및/또는 암호화된 결과 및 증명 정보를 수신한다. 명확성을 위해, 다수의 동기화 요소는 고유한 OY-패킷 부분을 수신했을 수 있고, 각각의 이러한 동기화 요소는 본 명세서에서 논의된 방법에 따라 OY-패킷 부분을 프로세싱 할 것이다. 사용자 시스템 요소 간의 모든 통신, 검증 시스템 및 클라이언트 시스템은 도 6에 도시된 바와 같이 사용자 시스템, 클라이언트 시스템 및 검증 시스템의 통신 유닛을 통해 이루어진다. 또한 도 6에 도시된 바와 같이, 검증 시스템(202)의 프로세싱 유닛(210)은 각각의 동기화 요소(302A?? 302N)로부터 수신한 증명 정보를 디코딩하고, 디코딩 된 정보를 검증 시스템의 승인 유닛(212)에 전송할 것이다. 검증 시스템의 프로세싱 유닛(210)은 검증 시스템의 하나 이상의 저장 유닛(214A?? 214N)으로부터 증명 정보를 검색한다. 검증 시스템의 프로세싱 유닛은 검색된 증명 정보를 검증 시스템의 승인 유닛으로 전송한다. 검증 시스템의 승인 유닛은 수신한 정보를 이용하여 동기화 요소를 승인한다.
검증 시스템의 프로세싱 유닛은 동기화 요소로부터 수신한 각각의 통과 및/또는 실패 값을 디코딩 한다. 디코딩 된 값은 검증 결과로서 검증 시스템의 하나 이상의 저장 유닛에 저장된다. 검증 결과 리포트는 검증 시스템의 프로세싱 유닛 또는 리포트 생성기(208)에 의해 생성될 수 있고, 이 보고서에는 다양한 정보, 예를 들어 요청된 총 동기화 요소, 수신된 통과 값 수, 수신된 실패 값 수, 동기화 시스템 신뢰 점수 및 기타 정보가 포함될 수 있다. 검증 시스템의 프로세싱 유닛은 검증 결과를 해싱 또는 암호화하고, 검증 시스템의 통신 유닛(216)을 통해 해싱 및/또는 암호화된 검증 결과를 사용자 시스템(102)의 프로세싱 유닛(108)으로 전송할 수 있다. 사용자 시스템의 프로세싱 유닛은 해싱 또는 암호화된 검증 결과를 클라이언트 시스템(902)에 전송한다. 클라이언트 시스템은 클라이언트 시스템이 수신한 검증 결과에 기초하여 검증 시스템의 통신 유닛(216)을 통해 검증 시스템의 프로세싱 유닛(210)에 인증 요청을 제출한다. 검증 시스템의 프로세싱 유닛은 검증 시스템의 하나 이상의 저장 유닛에 저장된 검증 결과를 검색하고, 검색된 결과를 검증 시스템의 승인 유닛으로 전송한다. 검증 시스템의 승인 유닛은 검색된 결과를 검토하고 이들을 승인하고 검증 결과를 클라이언트 시스템에 전송하여 검증 보고서 결과에 기초하여 사용자를 인증할지 여부를 결정할 것이다.
사용자가 인증되고 클라이언트 시스템의 보안 부분에 대한 액세스 권한이 부여된 후, 사용자는 정보(즉, 데이터, 문서, 거래 정보 등)에 액세스하고 및/또는 사용자 정보(즉, 텍스트, 데이터 등)를 클라이언트 시스템에 제공할 수 있다. 예로서, 사용자는 클라이언트 시스템에 액세스하여 메시지를 보내거나 신용 카드 결제와 관련된 구매를 수행하거나 전자 서명을 문서에 첨부하거나 다양한 기타 목적으로 사용할 수 있다. 사용자 시스템을 통해 사용자와 클라이언트 시스템의 상호 작용 과정에서, 사용자 정보는 클라이언트 시스템과 사용자 시스템간에 전송된다. 본 발명은 발생, 이동, 저장 및 인증 동안 이러한 사용자 및 인증 관련 정보의 보안을 보호하도록 동작 가능하다.
이러한 보안을 달성하기 위해 본 발명의 실시예는 사용자 시스템, 클라이언트 시스템, 클라이언트 디스플레이 유닛 및 검증 시스템을 포함할 수 있다. 사용자 시스템은 클라이언트 시스템과 통신하고 클라이언트 시스템에 액세스하기 위해 사용자에 의해 이용되는 클라이언트 장치에 전체적으로 또는 부분적으로 통합될 수 있다. 숙련된 독자는 사용자 장치 및 클라이언트 시스템 사이에서 전송되는 사용자 및 인증 관련 정보에 대한 보안을 달성하는 본 발명의 실시예가 다른 요소를 포함할 수 있음을 인식할 것이다.
사용자는 사용자 장치를 사용하여 클라이언트 시스템에 대한 사용자 시스템 및 사용자의 자격 증명을 확인한다. 사용자가 클라이언트 시스템의 보안 부분에 액세스 할 권한이 있는지 확인하려면 사용자의 신임 정보 및 사용자 시스템을 확인해야 한다. 사용자는 인증된 경우에만 클라이언트 시스템의 보안 부분을 통해 특정 기능을 수행하거나 특정 정보에 액세스 할 수 있다. 예를 들어, 사용자와 사용자 시스템이 인증된 경우 사용자는 클라이언트 시스템을 통해 특정 거래 만 승인할 수 있다. 클라이언트 시스템은 사용자가 액세스를 시도하는 시스템이므로 인증을 수행해야 한다. 본 발명의 검증 시스템은 본 명세서에 기술된 바와 같이, 사용자 및 사용자 시스템의 신원을 검증하고 클라이언트 시스템이 인증된 것으로 사용자 및 사용자 시스템을 인식하게 할 것이다.
도 7에 도시된 바와 같이, 클라이언트 시스템으로 및 그로부터 사용자 정보를 전송하는데 이용되는 사용자 시스템(101)은 다수의 요소를 포함할 수 있다. 예를 들어, 본 발명의 실시예는 상호 작용 유닛(interaction unit)(103), 검증기 생성기(verifier generator)(105), 노이즈 생성기(noise generator)(107), 프로세싱 유닛(processing unit)(109), 저장 유닛(storage unit)(111) 및 판독기 유닛(reader unit)(113)을 포함하는 사용자 시스템을 포함할 수 있다.
도 8에 도시된 바와 같이, 본 발명의 실시예의 클라이언트 시스템(130)은 다수의 요소를 포함할 수 있다. 예를 들어, 본 발명의 실시예는 CSAP 생성기(131), 저장 유닛(133), 프로세싱 유닛(135), 챌린지 생성기(challenge generator)(137) 및 승인 유닛(139)을 포함하는 클라이언트 시스템을 포함할 수 있다.
도 9에 도시된 바와 같이, 본 발명의 실시예의 클라이언트 디스플레이 유닛(150)은 다수의 요소를 포함할 수 있다. 예를 들어, 본 발명의 실시예는 상호 작용 유닛(151), 프로세싱 유닛(153), 임시 저장 유닛(temporary storage unit)(155) 및 키 생성기(key generator)(157)를 포함하는 클라이언트 디스플레이 유닛을 포함할 수 있다.
도 10에 도시된 바와 같이, 본 발명의 실시예의 검증 시스템(verification system)(140)은 다수의 요소를 포함할 수 있다. 예를 들어, 본 발명의 실시예는 랜덤 키 생성기(random key generator)(141), 랜덤 텍스트 생성기(random text generator)(143), USID 생성기(145) 및 프로세싱 유닛(147)을 포함하는 검증 시스템을 포함할 수 있다.
사용자가 클라이언트 시스템의 보안 부분에 로그인 하려고 할 때, 사용자는 클라이언트 디스플레이 유닛과의 상호 작용을 통해 자신의 의도를 선언하고, 클라이언트 디스플레이 유닛의 상호 작용 유닛을 사용하여 요청을 입력할 것이다. 도 11에 도시된 바와 같이, 상호 작용 유닛(151)은 요청을 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)에 전달할 것이고, 클라이언트 디스플레이 유닛의 프로세싱 유닛은 이어서 요청을 검증 시스템의 프로세싱 유닛(147)에 전달할 것이다. 사용자 시스템의 프로세싱 유닛(109)은 검증 시스템의 프로세싱 유닛(147)을 통해 클라이언트 디스플레이 유닛의 키 생성기(157)에 전송하는 αk1 및 αk2 키로 구성된 알파 키(Alpha Key)(αk) 콤보를 생성하라는 요청을 생성할 것이다. 클라이언트 디스플레이 유닛의 키 생성기는 αk1 및 αk2를 검증 시스템의 프로세싱 유닛(147)으로 전송한다.
[27]
이어서, 검증 시스템의 프로세싱 유닛(147)은 검증 시스템의 랜덤 텍스트 생성기(143)로부터 랜덤 텍스트를 요청하고, 검증 시스템의 USID 생성기(145)로부터 고유 시스템 및 이벤트 식별자(unique system & event identifier)(USID)를 요청한다. 랜덤 텍스트 생성기는 랜덤 텍스트를 생성하고 랜덤 텍스트를 검증 시스템의 프로세싱 유닛(147)으로 전송한다. USID 생성기는 USID를 생성하고 검증 시스템의 프로세싱 유닛으로 USID를 보낸다.  USID 생성기는 클라이언트 시스템의 보안 영역에 연결하려는 검증 시스템, 사용자 장치 및 이벤트를 식별하도록 작동 가능하다. USID는 사용자가 사용하기 위해 열려 있는 브라우저 또는 탭의 수를 식별하고 제어하기 위해 브라우저 또는 여러 브라우저의 각 탭에 고유할 수 있다.
검증 시스템의 프로세싱 유닛(147)은 αk2로 수신한 USID 및 랜덤 텍스트를 데이터 스트링으로 결합하고 데이터 스트링을 기계 판독 가능 포맷으로 변환한 다음, 이를 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)으로 전송한다. 클라이언트 디스플레이 유닛의 상호 작용 유닛(interaction unit)(151)은 정보를 사용자 시스템의 판독기 유닛(reader unit)(113)에 이용 가능하게 한다.
도 12에 도시된 바와 같이, 도 11의 프로세스가 완료된 후, 정보는 판독기 유닛(113)을 통해 사용자 시스템에 이용 가능하게 된다. 판독기 유닛(113)은 클라이언트 장치에 통합되거나 클라이언트 장치 외부에 있을 수 있지만 유선 연결 또는 무선 연결을 통해 연결될 수 있는 다음의 청각, 시각, 촉각, 인쇄, 움직임 및 다른 종류의 센서 중 임의의 것을 포함하는 하나 이상의 센서를 포함할 수 있다. 센서는 사용자와 관련된 정보를 얻기 위해 이용될 수 있다.
판독기 유닛(113)은 그 후 획득된 정보를 사용자 시스템의 프로세싱 유닛(109)에 전송한다. 사용자 시스템의 프로세싱 유닛은 그것이 판독기 유닛으로부터 수신한 정보를 분리하고 그 정보를 보유할 수 있다. 사용자 시스템의 프로세싱 유닛(109)은 사용자 시스템의 노이즈 생성기(noise generator 107)(107)로부터 노이즈를 요청할 것이다. 노이즈 생성기는 노이즈를 생성하고 노이즈를 사용자 시스템의 프로세싱 유닛으로 보냅니다. 소음은 전송중인 정보의 신원을 가리는 데 사용된다.
사용자가 클라이언트 시스템에 의해 이전에 인증된 경우, 사용자 시스템은 랜덤 델타 1 키(Delta 1 Key)(δk1)를 가질 수 있다.
사용자 시스템의 프로세싱 유닛은 αk2 및 δk1을 사용자 시스템의 검증기 생성기(verifier generator)(105)에 전송할 것이다. 프로세싱 유닛은 또한 새로운 베타 키의 생성을 요청하는 요청을 사용자 시스템의 검증기 생성기로 전송할 것이다. 이 요청에 응답하여 검증기 생성기는 αk2 및 δk1을 사용하여 베타 키 1(Beta Key1)(βK1) 및 베타 키 2(βK2)를 생성한다. 검증기 생성기(105)는 βK1 및 βK2를 사용자 시스템의 프로세싱 유닛(109)에 전송할 것이다.
사용자 시스템의 프로세싱 유닛은 또한 사용자 시스템의 저장 유닛(111)에 액세스하고 델타 1 키(Delta 1 Key) 및/또는 세션 코드(session code) 및/또는 세션 코드의 생성을 요청할 것이다. 저장 유닛(111)은 델타 1 키를 사용자 시스템의 프로세싱 유닛에 제공하거나 세션 코드를 생성하여 이를 사용자 시스템의 프로세싱 유닛에 제공할 것이다. 예를 들어, 사용자 시스템의 프로세싱 유닛(109)은 검증 시스템의 랜덤 키 생성기(random key generator)(141)가 랜덤 델타 1 키 및/또는 세션 코드를 생성하도록 요청하고 이를 프로세싱 유닛(109)에 제공하여, 제공되는 δk1 또는 SC을 위한 해싱 값을 생성할 수 있다.
사용자 시스템의 프로세싱 유닛은 노이즈 생성기, 사용자 시스템의 저장 유닛, 및 검증기 생성기 각각으로부터 획득된 정보를 이용하여 수동 상호 작용 코드(MIC)를 생성할 수 있다. 사용자 시스템의 프로세싱 유닛은 MIC를 사용자 시스템의 상호 작용 유닛(103)으로 전송할 수 있다. 클라이언트 디스플레이 유닛의 상호 작용 유닛(103)은 MIC를 사용자에게 디스플레이 할 것이다.
MIC가 생성되면 잔여 데이터("post-MIC data")가 존재한다. 사용자 시스템의 프로세싱 유닛은 포스트-MIC 데이터(post-MIC data)에 대해 대칭 또는 비대칭 암호화를 수행할 수 있다. 사용자 시스템의 프로세싱 유닛은 포스트-MIC 데이터 및 해싱 값을 클라이언트 시스템의 프로세싱 유닛(135)으로 전송할 수 있다.
도 13에 도시된 바와 같이, MIC, 포스트-MIC 데이터 및 해싱 값이 사용자 시스템에 의해 발생되면, 클라이언트 시스템의 프로세싱 유닛(135)은 포스트-MIC 데이터 및 해싱을 수신한다. 클라이언트 시스템의 프로세싱 유닛(135)은 클라이언트 시스템의 저장 유닛(133)에 일시적으로 저장될 해싱 값을 전송한다. 포스트-MIC 데이터는 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)으로 전송된다.
클라이언트 디스플레이 유닛의 프로세싱 유닛(153)은 αk1 및 포스트-MIC 데이터를 패키지로서 결합하고 이 패키지를 클라이언트 디스플레이 유닛의 키 생성기(157)에 전송한다. 프로세싱 유닛(153)은 클라이언트 디스플레이 유닛의 키 생성기(157)가 감마 키(γK)를 생성하도록 요청한다. γK는 클라이언트 디스플레이 유닛의 키 생성기에 의해 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)으로 전송된다.
이제 사용자는 클라이언트 디스플레이 유닛의 상호 작용 유닛(151)과 상호 작용해야 한다. 사용자는 MIC를 수동으로 입력해야 한다. 일단 입력되면, MIC는 클라이언트 디스플레이 유닛의 상호 작용 유닛에 의해 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)으로 전송된다. 프로세싱 유닛(153)은 γK, MIC 및 패키지를 사용하여 SC 또는 δk1이 이용 가능하게 한다. 클라이언트 디스플레이 유닛의 프로세싱 유닛은 SC 또는 δk1에 대한 해싱 값을 계산하고 검증을 위해 해싱 값을 클라이언트 시스템의 승인 유닛(139)으로 전송한다.
클라이언트 디스플레이 유닛의 프로세싱 유닛에 의해 수신되거나 생성된 임의의 정보는 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)의 프로세싱 활동 동안 임의의 시점에서 클라이언트 디스플레이 유닛의 임시 저장 유닛(155)에 일시적으로 저장될 수 있다.
클라이언트 시스템의 프로세싱 유닛(135)은 클라이언트 시스템의 저장 유닛(133)에 임시 저장된 해싱 값을 검색한다. 클라이언트 시스템의 프로세싱 유닛은 SC 또는 δk1의 해싱 값 및 스토리지로부터 검색된 값을 클라이언트 시스템의 승인 유닛(139)으로 전송한다. 승인 유닛(139)은 해싱 값을 비교하여 매칭을 결정한다.
해싱 값이 일치하면 승인 유닛(139)은 클라이언트 시스템의 프로세싱 유닛(135)과의 매칭을 확인한다.
도 14에 도시된 바와 같이, 이 일치 확인을 수신하면, 클라이언트 시스템의 프로세싱 유닛(135)은 CSAP 생성기(131)로부터 클라이언트 세션 액세스 통과(Client Session Access Pass)(CSAP)를 요청한다. CSAP 생성기(131)는 클라이언트 시스템의 저장 유닛(133)으로 전송되어 일시적으로 저장되는 CSAP를 생성한다. CSAP 생성기(131)는 또한 CSAP를 검증 시스템의 프로세싱 유닛(147)으로 전송한다. 검증 시스템의 프로세싱 유닛(147)은 CSAP를 153 클라이언트 디스플레이 유닛의 프로세싱 유닛으로 전송한다. 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)은 CSAP를 사용자 시스템의 프로세싱 유닛(135)으로 전송한다. 사용자 시스템의 프로세싱 유닛(135)은 CSAP를 클라이언트 시스템의 승인 유닛(139)으로 전송한다. 클라이언트 시스템의 승인 장치가 CSAP를 확인한다. 사용자 시스템의 프로세싱 유닛은 그러한 확인의 통지를 수신하고 사용자가 클라이언트 시스템의 보안 부분에 액세스 할 수 있도록 동작한다.
클라이언트 시스템의 승인 유닛(139)이 값이 일치하지 않는다고 결정하면, 사용자, 사용자 시스템 및 클라이언트 디스플레이 유닛은 인증되지 않는다.
클라이언트 시스템의 CSAP 생성기(131)는 사용자의 인증과 관련된 조건을 테스트하는데 이용될 수 있으며; 본 명세서에 기술된 방법에 따르는, CSAP의 생성으로 통한 사용자 시스템 및 클라이언트 디스플레이 유닛의 주기적인, 클라이언트 시스템의 프로세싱 유닛에 의한 프로세싱 및 검증 시스템, 사용자 시스템, 클라이언트 디스플레이 유닛의 그러한 CSAP의 다른 프로세싱 유닛으로의 전송에 의한 프로세싱 및 클라이언트 시스템, 사용자 시스템 및 클라이언트 디스플레이 유닛의 저장 유닛의 그러한 CSAP의 저장.
예를 들어, 클라이언트 시스템의 승인 유닛이 CSAP와 관련하여 인증 조건이 충족되지 않았다고 결정하는 경우, 예를 들어 클라이언트 시스템의 프로세싱 유닛에 의해 수신된 CSAP와 저장된 CSAP가 일치하지 않는다는 결정 다음, 사용자, 사용자 장치 및 클라이언트 디스플레이 유닛의 인증(즉, CSAP 인증)은 취소되고, 사용자, 사용자 장치 및 클라이언트 디스플레이 유닛에 대해 종료된 보안 영역에 대한 액세스가 종료될 것이다.
본 발명의 실시예에서 적용되는 인증을 위한 CSAP 조건은 다음 중 임의의 것과 관련된 조건을 포함할 수 있다: 치수(dimension), 지리-시간(geo-temporal), 기계 학습 인공 지능(machine learnt artificial intelligence), 행동(behavioral) 또는 기타 조건.
본 발명의 다른 실시예는 사용자가 클라이언트 디스플레이 유닛을 사용하여 클라이언트 시스템의 보안 부분에 대한 액세스를 통한 거래를 검증하려고 시도하는 것을 도 15에 도시한다. 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)은 거래를 검증하기 위해 클라이언트 시스템의 프로세싱 유닛(135)에 요청을 전송한다. 그러한 요청에 따라, 클라이언트 시스템의 프로세싱 유닛(135)은 요청을 클라이언트 시스템의 챌린지 생성기(137)에 전송하여 챌린지를 생성한다. 그러한 요청에 따라, 클라이언트 시스템의 챌린지 생성기(137)는 챌린지를 생성하고, 그 챌린지의 결과에 해싱 값을 더 적용할 수 있고, 클라이언트 시스템의 저장 유닛(133)에 솔루션 및/또는 해싱 값을 저장한다. 클라이언트 시스템의 챌린지 생성기는 챌린지를 클라이언트 시스템의 프로세싱 유닛(135)에 전송할 것이다.
클라이언트 시스템의 프로세싱 유닛(135)은 챌린지에 대칭 및/또는 비대칭 암호화를 적용할 수 있다. 프로세싱 유닛(135)은 챌린지를 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)에 전송할 것이다. 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)은 제공된 키를 사용하여 챌린지를 해독할 수 있고, 챌린지를 클라이언트 디스플레이 유닛의 상호 작용 유닛(151)에 전송할 것이다. 본 발명의 일 실시예에서, 사용자는 챌린지에 대한 솔루션을 찾기 위해 클라이언트 디스플레이 유닛의 상호 작용 유닛(151)과 상호 작용할 필요가 있을 수 있다. 본 발명의 다른 실시예에서, 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)은 해독된 챌린지를 해결할 수 있다.
클라이언트 디스플레이 유닛을 사용하는 사용자가 챌린지에 대한 솔루션(solution)을 찾으면, 사용자 솔루션은 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)으로 전송된다. 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)은 사용자 솔루션에 기초하여 해싱 값을 생성할 수 있고, 클라이언트 디스플레이 유닛의 프로세싱 유닛은 대칭 또는 비대칭 암호화를 이 해싱 값 및/또는 솔루션에 추가할 수 있다. 클라이언트 디스플레이 유닛의 프로세싱 유닛(예를 들어, 해싱 값 또는 암호화된 해싱 값, 또는 솔루션 또는 암호화된 솔루션)에 의한 프로세싱 결과는 클라이언트 시스템의 프로세싱 유닛(135)으로 전송될 수 있다. 클라이언트 시스템의 프로세싱 유닛(135)은 저장된 솔루션 및/또는 저장된 해싱 값을 검색하기 위해 클라이언트 시스템의 저장 유닛(133)에 요청을 전송할 수 있다. 그러한 요청에 따라, 클라이언트 시스템의 저장 유닛(133)은 저장된 솔루션 및/또는 저장된 해싱 값을 검색하고, 저장된 솔루션 및/또는 저장된 해싱 값을 클라이언트 시스템의 프로세싱 유닛(135)에 전송할 것이다.
클라이언트 시스템의 프로세싱 유닛(135)은 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)으로부터 수신된 임의의 암호화된 해싱 값 또는 암호화된 솔루션 및/또는 암호화되지 않은 해싱 값을 해독할 것이다. 클라이언트 시스템의 프로세싱 유닛(135)은 클라이언트 디스플레이 유닛의 프로세싱 유닛(153)으로부터 수신된 해싱 값 및/또는 솔루션을(암호화되지 않은 형태로) 전송하고, 저장된 솔루션 및/또는 저장된 값은 승인을 위해 클라이언트 시스템의 승인 유닛(139)에 가치를 가진다. 클라이언트 시스템의 승인 유닛(139)은 수신된 솔루션을 저장된 솔루션 및/또는 수신된 해싱 값을 저장된 해싱 값과 비교할 것이다.
수신된 솔루션 및/또는 해싱 값이 저장된 솔루션 및/또는 해싱 값과 일치하면, 승인 유닛(139)은 매치의 클라이언트 시스템의 프로세싱 유닛(135)에 확인을 전송할 것이다. 매칭이 긍정이면, 클라이언트 시스템의 프로세싱 유닛(135)은 긍정 일치의 확인을 클라이언트 시스템에 전송하여 거래의 인증이 성공적으로 완료되었음을 확인하고 클라이언트 시스템은 거래를 승인할 것이다.
수신된 솔루션 및/또는 해싱 값이 저장된 솔루션 및/또는 해싱 값과 일치하지 않으면, 승인 유닛(139)은 클라이언트 시스템의 프로세싱 유닛(135)에 매치가 없다는 통지를 전송할 것이다. 클라이언트 시스템의 프로세싱 유닛은 통지를 클라이언트 시스템에 전송하고 클라이언트 시스템이 거래를 인증하지 않도록 조언한다.
본 발명의 다른 실시예에서, 검증 시스템의 프로세싱 유닛은 도 14에 따라 클라이언트 시스템의 프로세싱 유닛에 대해 설명된 기능들을 수행할 수 있다. 본 발명의 이러한 실시예에서, 챌린지 생성기 유닛 및 승인 유닛은 클라이언트 시스템 또는 검증 시스템에 통합될 수 있고, 이러한 챌린지 생성기 유닛 및 승인 유닛은 챌린지 생성기(137) 및 승인 유닛(139)의 도 14에 따라 설명된 것과 동일한 기능을 가질 것이다.
본 발명의 다른 실시예, 여기서, 사용자는 사용자 시스템을 사용하여 거래를 검증하려고 시도하는 것이 도 16에 도시되어 있다. 본 발명의 이러한 실시예에서, 사용자 시스템의 프로세싱 유닛(109)은 클라이언트 시스템의 프로세싱 유닛(135)의 요청을 전송하여 거래를 검증한다. 그러한 요청에 따라, 클라이언트 시스템의 프로세싱 유닛(135)은 챌린지를 생성하기 위해 챌린지 생성기(137)에 요청을 전송한다. 그러한 요청에 따라, 챌린지 생성기(137)는 챌린지를 생성하고, 챌린지의 결과(챌린지의 솔루션)에 해싱 값을 추가로 적용하고, 클라이언트 시스템의 저장 유닛(133)에 솔루션 및/또는 해싱 값을 저장한다. 클라이언트 시스템의 프로세싱 유닛(135)은 챌린지에 대칭 및/또는 비대칭 암호화를 적용할 수 있다. 프로세싱 유닛(135)은 암호화될 수 있는 챌린지를 사용자 시스템의 프로세싱 유닛(109)에 전송할 것이다. 사용자 시스템의 프로세싱 유닛(109)은 챌린지를 해독할 수 있고, 챌린지가 암호화되면, 챌린지를 사용자 시스템의 상호 작용 유닛(103)에 전송할 것이다. 본 발명의 일 실시예에서, 사용자는 챌린지에 대한 솔루션을 찾기 위해 사용자 시스템의 상호 작용 유닛(103)과 상호 작용해야 할 수 있다. 본 발명의 다른 실시예에서, 사용자 시스템의 프로세싱 유닛(109)은 해독된 챌린지를 해결할 수 있다.
사용자가 챌린지에 대한 솔루션을 찾으면, 사용자 솔루션은 사용자 시스템의 프로세싱 유닛(109)으로 전송된다. 사용자 시스템의 프로세싱 유닛(109)은 사용자 솔루션에 기초하여 해싱 값을 생성할 수 있고, 사용자 시스템의 프로세싱 유닛(109)은이 해싱 값 및/또는 솔루션에 대칭 또는 비대칭 암호화를 추가할 수 있다. 사용자 시스템의 프로세싱 유닛(109)에 의한 프로세싱 결과(예를 들어, 해싱 값 또는 암호화된 해싱 값, 및 솔루션 또는 암호화된 솔루션)는 클라이언트 시스템의 프로세싱 유닛(135)으로 전송될 수 있다. 클라이언트 시스템의 프로세싱 유닛(135)은 저장된 솔루션 및/또는 저장된 해싱 값을 검색하기 위해 클라이언트 시스템의 저장 유닛(133)에 요청을 전송할 수 있다. 그러한 요청에 따라, 클라이언트 시스템의 저장 유닛(133)은 저장된 솔루션 및/또는 저장된 해싱 값을 검색하고, 저장된 솔루션 및/또는 저장된 해싱 값을 클라이언트 시스템의 프로세싱 유닛(135)에 전송할 것이다.
클라이언트 시스템의 프로세싱 유닛(135)은 사용자 시스템의 프로세싱 유닛(109)으로부터 수신된 임의의 암호화된 해싱 값 또는 암호화된 솔루션을 해독할 것이다. 클라이언트 시스템의 프로세싱 유닛(135)은(암호화되지 않은 형태로) 사용자 시스템의 프로세싱 유닛(109)으로부터 수신한 해싱 값 및 솔루션을 승인을 위해 클라이언트 시스템의 승인 유닛(139)에 전송하고, 저장된 솔루션 및/또는 저장된 것은 값를 가진다. 클라이언트 시스템의 승인 유닛(139)은 수신된 솔루션을 저장된 솔루션 및/또는 수신된 해싱 값을 저장된 해싱 값과 비교할 것이다.
수신된 솔루션이 저장된 솔루션과 일치하거나 수신된 해싱 값이 저장된 해싱 값과 일치하는 경우, 승인 유닛(139)은 매치의 클라이언트 시스템의 프로세싱 유닛(135)으로 확인을 전송할 것이다. 클라이언트 시스템의 프로세싱 유닛(135)은 거래의 인증이 완료되고 성공적인지를 확인하기 위해 클라이언트 시스템에 매칭 확인을 전송한다.
수신된 솔루션이 저장된 솔루션과 일치하거나 수신된 해싱 값이 저장된 해싱 값과 일치하는 경우, 승인 유닛(139)은 클라이언트 시스템의 프로세싱 유닛에 일치하는 것이 없음을 통지할 것이다. 클라이언트 시스템의 프로세싱 유닛은 통지를 클라이언트 시스템에 전송하고 클라이언트 시스템이 거래를 인증하지 않도록 조언한다.
본 발명의 다른 실시예에서, 검증 시스템의 프로세싱 유닛은 도 16에 따라 클라이언트 시스템의 프로세싱 유닛에 대해 설명된 기능들을 수행할 수 있다. 본 발명의 이러한 실시예에서, 챌린지 생성기 유닛 및 승인 유닛은 클라이언트 시스템 또는 검증 시스템에 통합될 수 있고, 이러한 챌린지 생성기 유닛 및 승인 유닛은 챌린지 생성기(137) 및 승인 유닛(139)의 도 16에 따라 설명된 것과 동일한 기능을 가질 것이다.
인증을 위한 시스템 및 네트워크는 각각 적어도 프로세서 및 송신기/수신기를 포함하는 하나 이상의 제1 피어, 하나 이상의 서버 및 하나 이상의 제2 피어를 포함할 수 있다. 하나 이상의 제1 피어 및 하나 이상의 제2 피어는 각각의 메모리를 추가로 포함할 수 있다. 일부 실시예에서, 하나 이상의 제1 피어 및 하나 이상의 제2 피어 각각은 시각적 디스플레이를 포함할 수 있다. 하나 이상의 서버는 데이터 베이스를 추가로 포함할 수 있다. 제1 피어, 제2 피어 및 서버 각각의 송신기/수신기는 외인성 소스로부터 정보를 송수신하도록 구성될 수 있다. 일부 실시예에서, 제1 피어는 서버로부터 정보를 송수신하도록 구성될 수 있고, 서버는 제1 피어 및 제2 피어 모두로부터 정보를 송수신하도록 구성될 수 있고, 제2 피어는 서버로부터 정보를 송수신하도록 구성될 수 있다. 제1 피어 및 제2 피어의 메모리 및 서버의 데이터 베이스는 정보를 저장하고 정보를 검색하도록 구성될 수 있다. 시각적 디스플레이는 사용자가 디스플레이와 상호 작용하기 위한 수단, 예를 들어 데이터 입력, 문자 선택, 객체 선택 등을 포함한다.
제1 피어, 제2 피어 또는 서버의 프로세서는 프로세싱 마이그레이터(processing migrator), 데이터 조작기(data manipulator), 데이터 변환기(data converter), 프로세싱 생성기(processing generator) 및 프로세싱 검증기(processing verifier)를 포함할 수 있다. 프로세싱 마이그레이터는 제1 피어, 제2 피어 또는 서버 내의 하나의 컴포넌트로부터 제1 피어, 제2 피어 또는 서버 내의 다른 컴포넌트로 데이터를 마이그레이션 하도록 구성될 수 있다. 예로서, 비제한적으, 프로세싱 마이그레이터는 제1 피어의 메모리로부터 제1 피어의 프로세서로, 또는 제2 피어의 프로세서로부터 제2 피어의 송신기/수신기로 데이터를 이동시키도록 구성될 수 있다. 데이터 조작기는 예를 들어 데이터를 조작하도록, 예를 들어 결합, 분리, 분리 및 재결합, 재정렬 등으로 구성될 수 있다. 예로서, 비제한적으로, 제1 피어의 데이터 조작기는 하나 이상의 문자열을 제1 부분 및 제2 부분으로 분리하도록 구성될 수 있거나, 서버의 데이터 조작기는 단일 데이터 패킷을 생성하기 위해 데이터의 제1 부분과 데이터의 제2 부분을 결합하도록 구성될 수 있다.
데이터 변환기는 제1 문자열을 제2 문자열로 변환하도록 구성될 수 있고, 여기서, 제1 문자열 및 제2 문자열 각각은 길이, 구성 또는 배열 중 임의의 하나 이상이 상이할 수 있다. 일부 실시예에서, 데이터 변환기는 해싱 알고리즘을 제1 문자열에 적용하도록 구성될 수 있다. 다른 실시예에서, 데이터 변환기는 제1 문자열에 암호화 프로토콜을 적용하도록 구성될 수 있다. 또 다른 실시예에서, 데이터 변환기는 암호 해독 프로토콜을 제1 문자열에 적용하도록 구성될 수 있다. 다른 실시예에서 여전히, 데이터 변환기는 해싱 알고리즘, 암호화 프로토콜, 복호화 프로토콜, 또는 임의의 다른 공지된 데이터 변환 방법을 제1 문자열로 적용하여 제2 문자열을 생성하도록 구성될 수 있다.
프로세싱 생성기(processing generator)는 데이터를 생성하도록 구성될 수 있다. 일부 실시예에서, 데이터는 임의의 길이의 하나 이상의 문자 스트링을 포함할 수 있고 바코드 등을 포함할 수 있다. 일부 실시예에서, 데이터는 랜덤 방식 또는 지시된 방식으로 생성될 수 있다. 프로세싱 검증기는 둘 이상의 데이터를 비교하고 이들 데이터가 동일하거나 다른지를 결정하도록 구성될 수 있다. 일부 실시예에서, 프로세싱 검증기(processing verifier) 및 프로세싱 생성기는 제1 문자열 및 제2 문자열이 동일한지를 결정하고 제1 및 제2 문자열의 신원에 기초하여 응답을 생성하기 위해 쌍을 이룰 수 있다.
인증 방법은 등록 방법(registration method)(1700) 및 사용자 로그인 방법(user log-in method)(2000)을 포함할 수 있다. 일부 실시예에서, 등록 방법(1700)은 하나 이상의 키를 발생시키고, 하나 이상의 키를 분배하고, 하나 이상의 키를 로컬 데이터 베이스에 저장하고, 하나 이상의 키를 서버 데이터 베이스에 저장하는 단계를 포함할 수 있다. 도 17에 도시된 바와 같이, 등록 방법(1700)은 제1 피어(first peer)(1701), 서버(1750), 및 적어도 하나의 제2 피어(second peer)(1775) 간의 통신을 추가로 포함할 수 있다.
등록 방법(registration method)(1700)의 일부 실시예에서, 서버(1750)는 제1 피어(first peer)(1701)로부터 등록 요청(registration request)(1702)을 수신할 수 있다. 서버(server)(1750)는 등록 데이터(registration data)(1751)를 제1 피어(1701)로 전송할 수 있다. 등록 데이터(registration data)(1751)는 등록 방법(1700)에 필요한 임의의 데이터를 포함할 수 있다. 일부 실시예에서, 등록 데이터(1751)는 클라이언트 등록 코드(client registration code)(1703)를 포함할 수 있다. 클라이언트 등록 코드(1703)는 문자, 숫자, 기호 또는 이들의 임의의 조합을 포함하는 하나 이상의 문자로 구성될 수 있으며, 서버(1750)에 의해 생성될 수 있다. 다른 실시예에서, 등록 데이터는 사용자 선택 객체(user selection object)를 포함한다. 또 다른 실시예에서, 등록 데이터는 하나 이상의 클라이언트 등록 코드(1703), 사용자 선택 객체, 및 등록에 필요한 임의의 다른 데이터의 조합을 포함할 수 있다.
등록 방법(1700)은 사용자 입력(user input)(1704)으로부터 서버 키(server key)(1705) 및 클라이언트 키(client key)(1706)를 생성하는 단계를 더 포함할 수 있다. 일부 실시예에서, 서버 키(1705) 및 클라이언트 키(1706)는 등록 키(1707)를 생성하는데 사용된다. 다른 실시예에서, 서버 키(1705), 클라이언트 키(1706) 및 적어도 하나의 클라이언트 등록 코드(1703)는 등록 키(1707)를 생성하는데 사용된다. 다른 실시예는 등록 키(1707)를 생성하기 위해 사용되는 클라이언트 키(1706), 서버 키(1705) 및 클라이언트 등록 코드(1703)의 상이한 조합을 포함할 수 있다. 일부 정보, 예를 들어 클라이언트 키(1706), 클라이언트 등록 코드(1703) 는 제1 피어(1701)의 메모리(1708)에 저장될 수 있다. 또한, 등록 방법(1700)은 제1 피어(1701)로부터 서버(1750)로 정보를 전송하는 단계를 포함할 수 있다. 일부 실시예에서, 등록 키(1707) 및 서버 키(1705)는 서버(1750)로 전송된다.
등록 방법(1700)은 서버(1750)에서 제1 피어(1701)로부터 정보를 수신하는 단계를 포함할 수 있다. 일부 실시예에서, 서버(1750)에서 수신된 정보는 등록 키(1707) 및 서버 키(1705)를 포함할 수 있다. 서버(1750)는 수신자 코드(1752)를 생성할 수 있다. 또한, 서버(1750)는 발신자 코드(sender code)(1754)를 생성할 수 있다. 또한, 서버(1750)는 분배 코드(1756)를 생성할 수 있다. 서버 키(1705), 수신자 코드(1752) 및 발신자 코드(1754)는 분배 키(distribution key)(1753)를 생성하는데 사용될 수 있다. 일부 실시예에서, 분배 키(1753)는 서버 키(1705), 수신자 코드(1752) 또는 발신자 코드(1754) 중 임의의 하나 이상, 또는 그 내부의 임의의 조합으로부터 생성될 수 있다. 일부 정보, 예를 들어 수신자 코드(1752), 분배 키(1753)는 서버(1750)의 데이터 베이스(1757)에 저장될 수 있다. 등록 방법(1700)은 정보를 서버(1750)로부터 적어도 하나의 제2 피어(1775)로 전송하는 단계를 더 포함할 수 있다. 일부 실시예에서, 분배 키(1753) 및 분배 코드(1756)는 적어도 하나의 제2 피어(1775)로 전송된다.
등록 방법(1700)은 하나 이상의 키를 로컬 데이터 베이스에 저장하는 단계를 더 포함할 수 있다. 도 17에 도시된 바와 같이, 적어도 하나의 제2 피어(1775)는 서버(1750)로부터 정보를 수신할 수 있다. 일부 실시예에서, 정보는 분배 키(1753) 및 분배 코드(1756)를 포함할 수 있다. 제2 피어는 보관 코드(deposit code)(1776)를 생성할 수 있다. 또한, 분배 키(distribution key)(1753) 및 보관 코드(1776)는 보관 키(deposit key)(1777)를 생성하는데 사용될 수 있다. 일부 실시예에서, 보관 키(1777)는 단지 분배 키(1753), 단지 보관 코드(1776), 또는 분배 키(1753) 및 보관 코드(1776)의 임의의 조합을 사용하여 생성될 수 있다. 일부 정보, 예를 들어, 분배 키(1753), 보관 키(1777), 분배 코드(1756)는 제2 피어 장치(1775)의 메모리(1758)에 저장될 수 있다. 등록 방법(1700)은 제2 피어(1775)로부터 서버(1750)로 정보를 전송하는 단계를 더 포함할 수 있다. 일부 실시예에서, 보관 키(1777) 및 분배 코드(1756)는 서버(1750)로 전송된다.
등록 방법(1700)은 제2 피어(1775)로부터 정보를 수신하고 그 정보를 로컬 데이터 베이스에 저장하는 단계를 포함할 수 있다. 일부 실시예에서, 일부 실시예에서, 서버(1750)는 제2 피어(1775)로부터 정보를 수신한다. 수신된 정보는 보관 키(1777), 분배 코드(1756), 및 서버(1750)에 의한 정보의 저장 또는 제2 피어(1775)의 식별에 필요한 다른 정보를 포함할 수 있다.
이제 도 18을 참조하면, 일부 실시예에 따라 하나 이상의 키(1800)를 발생시키는 단계는 제1 피어(1801)에서 발생할 수 있다. 제1 피어(1801)는 임의의 IoT 장치, 즉 네트워크에 연결될 수 있고 셀 폰, 개인 비서, 버튼, 홈 보안 시스템, 장치 등을 포함하지만 이에 제한되지 않는 데이터를 전송할 수 있는 임의의 장치일 수 있다. 제1 피어(1801)는 서버(1850)로부터 등록을 요청할 수 있다. 일부 실시예에 따르면, 서버(1850)는 등록 데이터를 제1 피어(1801)로 전송할 수 있다. 등록 데이터는 제1 피어(1801)의 송신기/수신기(1841)에 의해 수신될 수 있고 제1 피어(1801)에서 하나 이상의 키(1800)를 생성하는 데 필요한 임의의 데이터를 포함할 수 있다. 일부 실시예에서, 등록 데이터는 클라이언트 등록 코드(1803)를 포함할 수 있다. 다른 실시예에서, 등록 데이터는 클라이언트 등록 코드(1803) 및 사용자 입력(1804)의 선구자로서 기능할 수 있는 추가 데이터를 포함할 수 있다. 클라이언트 등록 코드(1803)는 임의의 길이의 하나 이상의 문자열을 포함할 수 있다.
사용자 입력(1804)은 신중한 정보 단위를 포함하는 임의 형태의 사용자 생성 데이터를 포함할 수 있다. 일부 실시예에서, 사용자 입력(1804)은 예를 들어 생체 데이터, 예를 들어 지문, 홍채 등을 포함한다. 이들 실시예에서, 생체 데이터는 식별자를 포함하는 신중한 정보 단위로 분할될 수 있다. 식별자는 고유한 선택 코드(1809)로 변환될 수 있다. 다른 실시예에서, 사용자 입력(1804)은 임의의 수의 공간 및/또는 시간 데이터를 포함할 수 있다. 공간 및/또는 시간 데이터는 식별자를 포함하는 신중한 정보 단위로 분할될 수 있다. 식별자는 고유한 선택 코드(1809)로 변환될 수 있다. 또 다른 실시예에서, 사용자 입력(1804)은 생체 데이터 및 공간 및/또는 시간 데이터의 조합을 포함할 수 있으며, 이들 각각은 고유한 선택 코드(1809)를 생성하는데 사용될 수 있다.
다른 실시예에서, 사용자 입력(1804)은 하나 이상의 선택 객체를 포함할 수 있다. 하나 이상의 선택 객체는 이미지, 아이콘, 토큰, 버튼 또는 사용자가 선택 객체 그룹으로부터 하나 이상의 선택 객체를 선택할 수 있게 하는 임의의 다른 객체일 수 있다. 일부 실시예에서, 선택 객체는 송신기/수신기(1841)에서 수신될 수 있고 프로세싱 마이그레이터(1842)는 선택 객체를 시각적 디스플레이(1843)로 마이그레이션 할 수 있다. 시각적 디스플레이(1843)에서 사용자에 의해 선택되면, 선택 객체는 예를 들어 문자, 숫자, 기호의 임의의 수의 문자를 포함할 수 있는 선택 코드(1809)로 변환될 수 있다. 특정 실시예에서, 선택 객체는 서버(1850)로부터 수신될 수 있는 이미지이다. 각 이미지에는 고유한 선택 코드(1809)가 할당되며, 선택 객체의 조합의 사용자 선택은 사용자의 선택 객체의 선택에 고유한 선택 코드의 조합(1809)을 포함하는 사용자 입력(1804)을 생성한다. 일부 실시예에서, 생체 데이터, 공간 및/또는 시간 데이터 및 선택 객체의 임의의 조합은 사용자 입력(1804)을 포함할 수 있다.
일부 실시예에 따르면, 사용자는 둘 이상의 선택 코드(1809)를 포함하는 사용자 입력(1804)을 생성할 수 있고, 선택 코드의 수는 n과 동일하다. 데이터 조작기(1844)는 선택 코드를 둘 이상의 그룹으로 분리하도록 구성될 수 있다. 일부 실시예에서, 데이터 조작기(1844)는 선택 코드(1809)를 제1 그룹(1810) 및 제2 그룹(1811)으로 분리하도록 구성될 수 있고, 여기서, 제1 그룹(1810)은 1 내지 n-1 선택 코드(1809)를 포함하고 제2 그룹(1811)은 1 내지 n-1 선택 코드(1809)를 포함한다. 제1 그룹(1810) 및 제2 그룹(1811)의 각각의 선택 코드(1809)는 데이터 변환기(1845)에 의해 개별적으로 하나 이상의 문자열로 변환되어(1812), 제1 그룹의 변환된 선택 코드(1813) 및 제2 그룹의 변환된 선택 코드(1815)가 생성될 수 있다. 일부 실시예에서, 변환(1812)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(1812)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(1812)을 포함할 수 있다. 변환된 선택 코드(1813)의 제1 그룹은 클라이언트 프리 키(1814)를 생성하는데 사용될 수 있다. 제1 그룹의 변환된 선택 코드(1813)를 포함하는 개별 변환된 선택 코드는 데이터 조작기(1844)에 의해 결합되어 클라이언트 프리 키(1814)를 포함하는 하나 이상의 문자열을 형성할 수 있다. 일부 실시예에서, 개별 변환된 선택 코드는 단위 연관(concatenation of unit)을 통해 결합된다. 연관은 각각의 개별 변환된 선택 코드를 하나의 단위로 사용하는 단계를 포함할 수 있거나 각각의 개별 변환된 선택 코드를 하나의 단위로 사용하는 단계를 포함할 수 있다. 클라이언트 프리 키(1814)는 데이터 변환기(1845)에 의해 클라이언트 키(1806)로 변환될 수 있다(1812). 일부 실시예에서, 변환(1812)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(1812)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(1812)을 포함할 수 있다. 클라이언트 키(1812)는 프로세싱 마이그레이터(1842)에 의해 제1 피어(1801)의 메모리(1808)에 저장될 수 있다.
변환된 선택 코드(1815)의 제2 그룹은 서버 프리 키(1816)를 생성하는데 사용될 수 있다. 제2 그룹의 변환된 선택 코드(1815)를 포함하는 개별 변환된 선택 코드는 데이터 조작기(1844)에 의해 결합되어 서버 프리 키(1816)를 포함하는 하나 이상의 문자열을 형성할 수 있다. 일부 실시예에서, 개별 변환된 선택 코드는 유닛의 연관을 통해 결합될 수 있다. 연관은 각각의 개별 변환된 선택 코드를 하나의 단위로 사용하는 단계를 포함할 수 있거나 각각의 개별 변환된 선택 코드를 하나의 단위로 사용하는 단계를 포함할 수 있다. 서버 프리 키(1816)는 데이터 변환기(1845)에 의해 서버 키(1807)로 변환될 수 있다(1812). 일부 실시예에서, 변환(1812)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(1812)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(1812)을 포함할 수 있다.
일부 실시예에 따르면, 등록 키(1807)가 생성될 수 있다. 클라이언트 키(1806) 및 서버 키(1805) 각각은 데이터 조작기(1844)에 의해 클라이언트 키 제1 파트(1815), 클라이언트 키 제2 파트(1818), 서버 키 제1 파트(1818) 및 서버 키 제2 파트(1820)으로 분리될 수 있다. 일부 실시예에서, 클라이언트 키(1806)는 3 개 이상의 부분으로 분리될 수 있다. 마찬가지로, 서버 키(1805)는 3 개 이상의 부분으로 분리될 수 있다. 클라이언트 키 제1 파트(1817) 및 클라이언트 키 제2 파트(1818)은 클라이언트 키(1806)를 포함하는 문자의 상이한 부분을 포함할 수 있다. 특정 실시예에서, 클라이언트 키 제1 파트(client key first part)(1817) 및 클라이언트 키 제2 파트(client key second part)(1818) 각각은 클라이언트 키(1806)의 절반일 수 있다. 서버 키 제1 파트(server key first part)(1819) 및 서버 키 제2 파트(server key second part)(1820)은 서버 키(1805)를 포함하는 문자의 다른 부분을 포함할 수 있다. 특정 실시예에서, 서버 키 제1 파트(1819) 및 서버 키 제2 파트(1820) 각각은 서버 키(1805)의 절반일 수 있다. 클라이언트 키 제1 파트(1817), 클라이언트 키 제2 파트(1818), 서버 키 제1 파트(1819) 및 서버 키 제2 파트(1820)은 제1 프리 키(1821)를 포함하는 하나 이상의 문자열을 형성하기 위해 유닛들의 연관을 통해 데이터 조작기(1844)에 의해 결합될 수 있다. 데이터 조작기(1844)에 의한 연관은 클라이언트 키 제1 파트(1817), 클라이언트 키 제2 파트(1818), 서버 키 제1 파트(1819) 및 서버 키 제2 파트(1820) 각각을 하나의 단위로서 사용하거나, 또는 클라이언트 키 제1 파트(1817), 클라이언트 키 제2 파트(1818), 서버 키 제1 파트(1819), 및 서버 키 제2 파트(1820)의 조각들을 하나의 유닛으로서 사용하는 단계를 포함할 수 있다. 또한, 연관은 클라이언트 키(1806) 또는 서버 키(1805)의 분리에 의해 생성된 부분의 임의의 조합을 사용하는 단계를 포함할 수 있다. 제1 프리 키(1821)는 데이터 변환기(1845)에 의해 제2 프리 키(1822)를 포함하는 하나 이상의 문자열로 변환될 수 있다(1812). 일부 실시예에서, 변환(1812)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(1812)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(1812)을 포함할 수 있다. 등록 프리 키(1823)를 생성하기 위해 제2 프리 키(1822)가 사용될 수 있다. 일부 실시예에 따르면, 제2 프리 키(1822) 및 클라이언트 등록 코드(1803)는 데이터 조작기(1844)에 의해 연관되어 등록 프리 키(1823)를 포함하는 하나 이상의 문자열을 형성할 수 있다. 연관은 제2 프리 키(1822) 및 클라이언트 등록 코드(1803) 각각을 단위로 사용하거나 제2 프리 키(1822) 및 클라이언트 등록 코드(1803)를 단위로 사용하는 단계를 포함할 수 있다. 등록 프리 키(1823)는 데이터 변환기(1845)에 의해 등록 키(1807)를 포함하는 하나 이상의 문자열로 변환될 수 있다(1812). 일부 실시예에서, 변환(1812)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(1812)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(1812)을 포함할 수 있다.
제1 피어(1801)는 서버(1850)로 정보를 전송할 수 있다. 일부 실시예에 따르면, 제1 피어(1801)의 프로세싱 마이그레이터(1842)는 등록 키(1807) 및 서버 키(1805)를 제1 피어(1801)의 송신기/수신기(1841)로 마이그레이션 할 수 있고, 이는 등록 키(1807) 및 서버 키(1805)를 서버(1850)로 전송할 수 있다. 다른 실시예에서, 제1 피어(1801)의 송신기/수신기(1841)는 등록 키(1807), 서버 키(1805), 및 등록 방법에 필요한 기타 정보를 서버(1850)에 전송할 수 있다.
등록 방법은 하나 이상의 키(1900)를 분배하는 단계를 더 포함할 수 있다. 도 19에 도시된 바와 같이, 서버(1950)의 송신기/수신기(1941)는 제1 피어(1901)로부터 정보를 수신할 수 있다. 일부 실시예에 따르면, 서버(1950)의 송신기/수신기(1941)는 제1 피어(1901)로부터 등록 키(1907)를 수신할 수 있다. 서버(1950)의 송신기/수신기(1941)는 제1 피어(1901)로부터 서버 키(1905)를 수신할 수 있다. 서버(1950)의 송신기/수신기(1941)는 제1 피어(1901)로부터 등록 키(1907) 및 서버 키(1905)를 모두 수신할 수 있다. 프로세싱 마이그레이터(1942)는 등록 키(1907) 및 서버 키(1905)를 서버(1950)의 프로세서로 마이그레이션 할 수 있다. 등록 키(1907)는 프로세싱 마이그레이터(1942)에 의해 서버(1950)의 데이터 베이스(1957)에 저장될 수 있다. 서버(1950)의 프로세싱 생성기(1946)는 피어 리스트(1958)를 생성할 수 있다. 피어 리스트(1958)는 예를 들어 네트워크상의 제1 피어(1901), 제2 피어(1975), 피어 장치의 리스트를 포함할 수 있다. 피어 리스트는 또한 임의의 길이의 하나 이상의 문자열을 포함할 수 있는 수신자 코드(1952) 및 분배 코드(1956)를 포함할 수 있다. 또한, 서버(1950)의 프로세싱 생성기(1946)는 발신자 코드(1954)를 생성할 수 있으며, 이는 또한 임의의 길이의 하나 이상의 문자열을 포함할 수 있다.
일부 실시예에 따르면, 서버(1950)는 제1 피어(1901)로부터 등록 키(1907)를 수신할 수 있다. 등록 키(1907)는 임의의 수의 등록 키 서브 파트를 생성하기 위해 사용될 수 있다. 데이터 조작기는 등록 키(1907)로부터 등록 키 서브 파트를 생성할 수 있다. 이들 실시예에서, 등록 키(1907)는 n과 같은 임의의 수의 문자를 포함할 수 있다. 각 등록 키 서브 파트는 n-1과 동일한 임의의 수 또는 문자 조합을 포함할 수 있다. 서버(1950)는 하나 이상의 랜덤 문자열을 생성할 수 있다. 등록 서브 파트 각각은 데이터 조작기(1944)에 의해 하나 이상의 랜덤 문자열(strings of character)로 연관될 수 있다. 일부 실시예에서, 연관된 열(string)은 변환될 수 있다(1912). 각각의 생성된 연관 문자열 또는 변환된 연관 문자열은 하나 이상의 제2 피어(1975)로 전송될 수 있다. 서버(1950)는 제1 피어(1901)로부터 서버 키(1908)를 수신할 수 있다. 서버 키(1908)는 임의의 수의 서버 키 서브 파트를 생성하는데 사용될 수 있다. 데이터 조작기는 서버 키(1908)로부터 서버 키 서브 파트를 생성할 수 있다. 이들 실시예에서, 서버 키(1908)는 n과 같은 임의의 수의 문자를 포함할 수 있다. 각 서버 키 하위 부분은 n-1과 같은 임의의 수 또는 문자 조합을 포함할 수 있다. 서버(1950)는 하나 이상의 랜덤 문자열을 생성할 수 있다. 서버 키 서브 파트 각각은 데이터 조작기(1944)에 의해 하나 이상의 랜덤 문자열로 연관될 수 있다. 일부 실시예에서, 연관된 문자열은 변환될 수 있다(1912). 각각의 생성된 연관된 문자열 또는 변환된 연관된 문자열은 하나 이상의 제2 피어(1975)로 전송될 수 있다.
서버(1950)의 데이터 조작기(data manipulator)(1944)는 서버 키(1905), 수신자 코드(1952), 발신자 코드(1954), 분배 코드(1956) 또는 등록 키(1907)의 임의의 조합을 조합함으로써 분배 프리 키(1959)를 생성할 수 있다. 일부 실시예에서, 분배 프리 키는 서버 키(1905), 발신자 코드(1954) 및 수신자 코드(1952)로 구성되며, 이는 하나 이상의 문자열을 형성하기 위해 유닛의 연관(concatenation)을 통해 결합될 수 있다. 연관은 서버 키(1905), 발신자 코드(1954) 및 수신자 코드(1952) 각각을 하나의 단위로 사용하거나 서버 키(1905), 발신자 코드(1954) 및 수신자 코드(1952)를 하나의 단위로 사용하는 단계를 포함할 수 있다. 분배 프리 키(1959)는 데이터 변환기(1945)에 의해 분배 키(1953)를 포함하는 하나 이상의 문자열로 변환될 수 있다(1912). 일부 실시예에서, 변환(1912)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(1912)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(1912)을 포함할 수 있다. 분배 키(1953)는 프로세싱 마이그레이터(1942)에 의해 서버(1950)의 데이터 베이스(1957)에 저장될 수 있다. 서버(1950)는 정보를 제2 피어(1975)로 전송하도록 구성될 수 있다. 일부 실시예에서, 서버(1950)의 프로세싱 마이그레이터(1942)는 분배 키(1953) 및 분배 코드(1956)를 서버(1950)의 송신기/수신기(1941)로 마이그레이션 할 수 있다. 다른 실시예에서, 서버(1950)의 송신기/수신기(1941)는 분배 키(1953), 분배 코드(1956) 및 등록 방법에 필요한 다른 정보를 제2 피어(1975)에 전송할 수 있다. 일부 실시예에서, 서버(1950)는 서버(1950)의 데이터 베이스(1957)에 등록 키(1907), 서버 키(1905) 및 분배 키(1953)의 임의의 조합을 저장할 수 있다. 서버(1950)는 하나 이상의 분배 키(1953)를 생성하고 하나 이상의 제2 피어(1975)로 데이터를 전송할 수 있다. 일부 실시예에서, 피어 리스트(1958)는 네트워크상의 하나 이상의 제2 피어(1975)의 리스트를 포함할 수 있다. 제2 피어는 임의의 IoT 장치, 서버 또는 네트워크 상에 있고 서버(1950)로부터 데이터를 송수신할 수 있는 임의의 장치를 포함할 수 있다. 서버(1950)는 각각의 제2 피어(1975)에 대한 고유 분배 코드(1956)를 생성할 수 있다. 서버(1950)는 각각의 제2 피어(1975)에 대해 고유한 수신자 코드(1952)를 생성할 수 있다. 이들 실시예에서, 각각의 제2 피어(1975)에 대해 발생된 분배 키(1953)는 다른 제2 피어(1975)에 대해 발생된 분배 키(1953)와 상이할 수 있지만, 제1 피어(1901)로부터 수신된 기본 서버 키(1905)는 동일할 수 있다.
일부 실시예에 따르면, 등록 키(1907)는 분배 프리 키(1959)를 생성하는데 사용될 수 있다. 이들 실시예에서, 등록 키(1907), 발신자 코드(1954), 수신자 코드(1952) 및 서버 키(1905)의 임의의 조합이 분배 프리 키(1959)를 생성하는데 사용될 수 있다.
이제 도 17을 다시 참조하면, 등록 방법(1700)은 하나 이상의 키를 로컬 데이터 베이스에 저장하는 단계를 포함할 수 있다. 일부 실시예에 따르면, 제2 피어(1775)는 제2 피어(1775)의 송신기/수신기를 통해 서버(1750)로 정보를 수신 및 전송하도록 구성될 수 있다. 제2 피어(1775)는 제2 피어(1775)의 송신기/수신기를 통해 서버(1750)로부터 분배 키(1753)를 수신할 수 있다. 제2 피어(1775)는 서버(1750)로부터 분배 코드(1756)를 수신할 수 있다. 일부 실시예에서, 제2 피어(1775)는 서버(1750)로부터 분배 키(1753) 및 분배 코드(1756)를 수신할 수 있다. 분배 키(1753) 및 분배 코드(1756)는 제2 피어(1775)의 메모리(1778)에 저장될 수 있다. 제2 피어(1775)는 보관 코드(1776)를 생성할 수 있다. 보관 코드(1776)는 임의의 길이의 하나 이상의 문자열(strings of character) 일 수 있고 랜덤 방식으로 생성될 수 있다. 대안적으로, 보관 코드(1776)는 서버(1750)에 의해 생성되고 제2 피어(1775)에 의해 수신될 수 있다. 보관 코드(1776) 및 분배 키(1753)는 유닛의 연관을 통해 결합되어 보관 프리 키(1779)를 포함하는 하나 이상의 문자열을 형성할 수 있다. 연관은 보관 코드(1776) 및 분배 키(1753) 각각을 단위로 사용하는 단계를 포함할 수 있거나, 또는 보관 코드(1776) 및 분배 키(1753)를 단위로서 사용하는 단계를 포함할 수 있다. 보관 프리 키(1779)는 보관 키(1777)를 포함하는 하나 이상의 문자열로 변환될 수 있다(1712). 일부 실시예에서, 변환(1712)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(1712)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(1712)을 포함할 수 있다. 보관 키(1777)는 제2 피어(1775)의 메모리(1778)에 저장될 수 있다. 일부 실시예에서, 제2 피어(1775)는 보관 키(1777) 및 분배 코드(1756)를 서버(1750)로 전송할 수 있다. 다른 실시예에서, 제2 피어(1775)는 보관 키(1777), 분배 코드(1756) 및 등록 방법(1700)에 필요한 임의의 다른 정보를 서버(1750)로 전송할 수 있다.
등록 방법(1700)은 서버 데이터 베이스 상에 하나 이상의 키를 저장하는 단계를 더 포함할 수 있다. 도 19에 도시된 바와 같이, 서버(1950)의 송신기/수신기(1941)는 제2 피어(1975)로부터 정보를 수신할 수 있다. 일부 실시예에서, 서버(1950)의 송신기/수신기(1941)는 분배 코드(1956)를 수신할 수 있다. 일부 실시예에서, 서버(1950)의 송신기/수신기(1941)는 보관 키(1977)를 수신할 수 있다. 다른 실시예에서, 서버(1950)의 송신기/수신기(1941)는 분배 코드(1956) 및 보관 키(1977)를 수신할 수 있다. 또 다른 실시예에서, 서버(1950)의 송신기/수신기(1941)는 분배 코드(1956), 보관 키(1977) 및 등록 방법에 필요한 임의의 다른 정보를 수신할 수 있다. 분배 코드(1956) 및 보관 키(1977)는 프로세싱 마이그레이터(1942)에 의해 서버(1950)의 데이터 베이스(1957)에 저장될 수 있다.
특정 실시예에서, 등록 방법(1700)은 하나 이상의 키를 발생시키는 단계, 하나 이상의 키를 분배하는 단계, 하나 이상의 키를 로컬 데이터 베이스에 저장하는 단계, 하나 이상의 키를 서버 데이터 베이스에 저장하는 단계를 포함할 수 있다. 도 17에 도시된 바와 같이, 등록 방법(1700)은 제1 피어(1701)로부터의 등록 요청(1702)으로 시작할 수 있다.  등록 요청(1702)은 하나 이상의 서버(1750)로 전송 및 수신될 수 있다. 하나 이상의 서버는 등록 데이터(1751)를 제1 피어(1701)로 전송할 수 있다. 이제 도 18을 참조하면, 특정 실시예는 서버(1850)로부터 등록 데이터를 수신하는 제1 피어(1801)를 포함할 수 있다.
등록 데이터는 클라이언트 등록 코드(1803) 및 하나 이상의 선택 객체를 포함할 수 있다. 클라이언트 등록 코드(1803)는 하나의 8 자리 문자열을 포함할 수 있다. 선택 객체는 다수의 이미지를 포함할 수 있다. 특정 실시예에서, 선택 객체는 60과 동일한 다수의 선택 객체를 포함할 수 있다. 각각의 선택 객체는 고유한 선택 코드(1809)를 포함할 수 있다. 선택 코드(1809)는 하나 이상의 문자열을 포함할 수 있고, 특정 실시예에서, 각각의 선택 코드는 5 개의 문자열을 포함할 수 있다. 사용자는 서버(1850)에 의해 수신된 선택 객체로부터 다수의 선택 객체를 선택할 수 있다. 특정 실시예에서, 사용자는 6 개의 선택 객체를 선택할 수 있다. 선택 객체의 사용자의 선택은 각각의 선택 코드(1809)와 연관된 특정 선택 객체를 선택함으로써 선택될 수 있는 선택 코드 모음(1809)을 포함하는 사용자 입력(1804)을 생성할 수 있다. 특정 실시예에서, 사용자 입력(1804)은 6 개, 5 개 문자 선택 코드(1809)를 포함한다.
사용자 입력(1804)은 제1 그룹(1810) 및 제2 그룹(1811)으로 분리될 수 있다. 특정 실시예에서, 제1 그룹(1810) 및 제2 그룹(1811) 각각은 3 개의 상이한 선택 코드(1809)를 포함한다. 제1 그룹(1810) 및 제2 그룹(1811)을 포함하는 각각의 선택 코드(1809)는 하나 이상의 문자열로 변환될 수 있다(1812). 특정 실시예에서, 각각의 선택 코드(1809)는 해싱 알고리즘을 사용하여 변환될 수 있고, 제1 그룹의 변환된 선택 코드(1813) 및 제2 그룹의 변환된 선택 코드(1815)를 각각 포함할 수 있다. 변환된 선택 코드들의 제1 그룹(1813) 및 변환된 선택 코드들의 제2 그룹(1815) 각각은 각각 클라이언트 프리 키(1814) 및 서버 프리 키(1816)를 각각 생성하도록 조합될 수 있다. 특정 실시예에서, 제1 그룹의 변환된 선택 코드(1813)를 포함하는 3 개의 변환된 선택 코드는 클라이언트 프리 키(1814)를 포함하는 하나 이상의 문자열을 생성하도록 연관될 수 있다. 마찬가지로, 제2 그룹의 변환된 선택 코드(1815)를 포함하는 3 개의 변환된 선택 코드는 서버 프리 키(1816)를 포함하는 하나 이상의 문자열을 생성하도록 연관될 수 있다. 클라이언트 프리 키(1814) 및 서버 프리 키(1816)는 각각 클라이언트 키(1806) 및 서버 키(1805)로 변환될 수 있다(1812). 특정 실시예에서, 변환(1812)은 해싱 알고리즘을 사용하는 단계를 포함한다.
등록 키(1807)는 클라이언트 키(1806), 서버 키(1805) 및 클라이언트 등록 코드(1803)의 조합을 사용하여 생성될 수 있다. 특정 실시예에서, 클라이언트 키(1806) 및 서버 키(1805)는 각각 제1 파트(first part)(1817, 1819) 및 제2 파트(second part)(1818, 1820)으로 분리된다. 제1 프리 키(1821)는 하나 이상의 문자열을 형성하기 위해 연관에 의해 클라이언트 키(1806)의 일부와 서버 키(1805)의 일부를 결합함으로써 생성될 수 있다.  제1 프리 키(1821)는 제2 프리 키(1822)를 포함하는 하나 이상의 문자열로 변환될 수 있다(1812). 특정 실시예에서, 변환(1812)은 해싱 알고리즘을 사용하는 단계를 포함한다. 등록 프리 키(1823)는 연관에 의하여 하나 이상의 문자열을 형성하기 위하여 클라이언트 등록 코드(1803)와 제2 프리 키(1822)를 결합하여 하나 이상의 문자열을 형성함으로써 생성될 수 있다. 등록 프리 키(1823)는 등록 키(1807)로 변환될 수 있고(1812), 여기서 변환(1812)은 해싱 알고리즘을 사용하는 단계를 포함한다. 특정 실시예에서, 클라이언트 키(1806) 및 클라이언트 등록 코드(1803)는 제1 피어(1801)의 메모리(1808)에 저장될 수 있다. 또한, 서버 키(1805) 및 등록 키(1807)는 하나 이상의 서버(1850)로 전송될 수 있다.
등록 방법은 하나 이상의 키를 분배하는 단계를 포함할 수 있다. 도 19에 도시된 특정 실시예에서, 서버(1950)는 제1 피어(1901)로부터 등록 키(1907) 및 서버 키(1905)를 수신할 수 있다. 등록 키는 서버(1950)의 데이터 베이스(1957)에 저장될 수 있다. 서버(1950)는 네트워크 상의 제2 피어(1975)의 리스트를 포함할 수 있는 피어 리스트(1958)를 생성할 수 있다. 제2 피어(1975) 각각에 대해, 서버(1950)는 수신자 코드(1952) 및 분배 코드(1956)를 생성할 수 있다. 특정 실시예에서, 수신자 코드(1952) 및 분배 코드(1956)는 특정 제2 피어(1975) 및 특정 거래 모두에 대해 고유할 수 있다.
또한, 서버(1950)는 특정 서버(1950)에 고유한 발신자 코드(1954)를 생성할 수 있다. 특정 실시예에서, 수신자 코드(1952), 발신자 코드(1954), 및 서버 키(1905)는 연결 프리 키(1959)를 포함하는 하나 이상의 문자열을 생성하기 위해 연관을 통해 결합될 수 있다. 분배 프리 키(1959)는 분배 키(1953)로 변환될 수 있다(1912). 특정 실시예에서, 변환(1912)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 일부 실시예에서, 다수의 고유한 분배 키(1953)가 생성될 수 있으며, 각각은 상이한 수신자 코드(1952)를 포함하고 피어 리스트(1958)로부터 상이한 연관된 분배 코드(1956)를 가지며, 각각의 고유한 분배 키(1953)는 궁극적으로 다른 제2 피어(1975)로 전송될 수 있다. 특정 실시예에서, 다수의 고유 분배 키(1953)는 동일한 서버 키(1905)로부터 생성되고 각각의 고유 분배 키(1953)는 네트워크 상에서 별도의 제2 피어(1975)로 전송된다.
등록 방법은 도 17에 도시된 하나 이상의 키를 로컬 데이터 베이스에 저장하는 단계를 더 포함할 수 있다. 특정 실시예에서, 제2 피어(1775)는 서버(1750)로부터 분배 키(1753) 및 분배 코드(1756)를 수신할 수 있다. 이 실시예에서, 제2 피어(1775)는 네트워크에서 제1 피어(1701)와 위에서 논의된 서버(1750) 사이의 동일한 거래로부터 발생하는 분배 키(1753) 및 분배 코드(1756)를 수신하기 위한 네트워크 내의 몇몇 제2 피어(1775) 중 하나 일 수 있다. 제2 피어(1775)는 분배 키(1753) 및 분배 코드(1756)를 제2 피어(1775)의 메모리(1778)에 저장할 수 있다. 또한, 제2 피어(1775)는 보관 코드(1776)를 생성할 수 있다. 특정 실시예에서, 보관 코드(1776)는 8 문자의 단일 문자열을 포함한다. 보관 코드(1776) 및 분배 키(1753)는 보관 프리 키(1779)를 포함하는 하나 이상의 문자열을 생성하기 위해 연관을 통해 결합될 수 있다. 보관 프리 키(1779)는 보관 키(1777)로 변환될 수 있다(1712). 특정 실시예에서, 변환(1712)은 해싱 알고리즘을 사용하는 단계를 포함한다. 제2 피어(1775)는 정보를 하나 이상의 서버(1750)로 전송할 수 있다. 특정 실시예에서, 몇몇 제2 피어(1775)는 정보를 서버(1750)에 전송할 수 있다. 정보는 분배 코드(1756), 보관 키(1777), 및 등록 프로세스(1700)를 수행하는 데 필요한 임의의 다른 정보를 포함할 수 있다.
등록 방법(1700)은 서버 데이터 베이스에 하나 이상의 키를 저장하는 단계를 포함할 수 있다. 일부 실시예에서, 서버(1750)는 하나 이상의 제2 피어(1775)로부터 정보를 수신하도록 구성될 수 있다. 특정 실시예에서, 서버(1750)는 분배 코드(1756) 및 보관 키(1777)를 포함하는 정보를 여러 제2 피어(1775)로부터 수신할 수 있다. 서버(1750)는 분배 코드(1756) 및 보관 키(1977)를 데이터 베이스(1757)에 저장할 수 있다. 이제 도 19를 참조하면, 분배 코드(1956) 및 보관 키(1777)는 데이터 베이스(1957) 내에 저장된 피어 리스트(1958)에 저장될 수 있다. 특정 실시예에서, 분배 코드(1956) 및 보관 키(1977)는 제1 피어(1901), 서버(1950) 및 특정 제2 피어(1975) 사이에서 수행되는 거래에 고유할 수 있는 저장된 분배 키(1953) 및 수신자 코드(1952)와 쌍을 이룬다.
인증 방법은 도 20에 도시된 로그인 방법을 포함할 수 있다. 로그인 방법(2000)은 하나 이상의 로그인 키를 발생시키는 단계, 하나 이상의 검증 키를 분배하는 단계, 로컬 데이터 베이스에서 검증 키를 검증하는 단계, 검증 프로세스를 검증하는 단계를 포함할 수 있다. 또한, 로그인 방법(2000)은 하나 이상의 제1 피어(2001), 하나 이상의 서버(2050) 및 하나 이상의 제2 피어(2075) 사이의 통신을 포함할 수 있다.
로그인 방법(2000)은 제1 피어(2001)를 포함할 수 있고, 제1 피어는 사용자와 상호 작용하도록 구성될 수 있다. 제1 피어(2001)는 로그인(2002)을 요청할 수 있고 로그인 요청(2002)은 하나 이상의 서버(2050)로 전송될 수 있다. 서버(2050)는 로그인 요청(2002)을 수신하고 로그인 데이터(2051)를 생성할 수 있다. 일부 실시예에서, 로그인 데이터(2051)는 로그인 솔트(login salts)(2024)를 포함할 수 있다. 로그인 솔트는 문자, 숫자, 기호 또는 이들의 임의의 조합을 포함하는 하나 이상의 문자로 구성될 수 있다. 일부 실시예에서, 로그인 데이터(2051)는 사용자 선택 객체를 포함할 수 있다. 다른 실시예에서, 로그인 데이터(2051)는 하나 이상의 로그인 솔트(2024) 및 사용자 선택 객체, 및 로그인 방법(2000)에 필요한 임의의 다른 데이터를 포함할 수 있다.
하나 이상의 로그인 키를 생성하는 단계는 사용자 입력(2004)으로부터 서버 키(2005) 및 클라이언트 키(2006)를 발생시키는 단계를 더 포함할 수 있다. 일부 실시예에서, 서버 키(2005) 및 클라이언트 키(2006)는 로그인 키(2099)를 생성하는데 사용될 수 있다. 다른 실시예에서, 서버 키(2005), 클라이언트 키(2006) 및 적어도 로그인 솔트(2024)는 로그인 키(2099)를 생성하는데 사용될 수 있다. 다른 실시예는 로그인 키(2099)를 생성하기 위해 사용되는 클라이언트 키(2006), 서버 키(2005) 및 로그인 솔트(2024)의 상이한 조합을 포함할 수 있다. 일부 정보, 예를 들어 로그인 솔트(2024), 클라이언트 키(2006)는 제1 피어(2001)의 메모리(2008)에 저장될 수 있다. 또한, 하나 이상의 로그인 키를 생성하는 것은 제1 피어(2001)로부터 서버(2050)로 정보를 전송하는 단계를 포함할 수 있다. 일부 실시예에서, 로그인 키(2099) 및 서버 키(2005)는 서버(2050)로 전송된다.
또한 도 20에 도시된 바와 같이, 하나 이상의 검증 키를 분배하는 단계는 서버(2050)에서 제1 피어(2001)로부터 정보를 수신하는 단계를 포함할 수 있다. 일부 실시예에서, 서버(2050)에서 수신된 정보는 로그인 키(2099) 및 서버 키(2005)를 포함할 수 있다. 서버(2050)는 수신자 코드(2052)를 생성할 수 있다. 또한, 서버(2050)는 발신자 코드(2054)를 생성할 수 있다. 또한, 서버(2050)는 분배 코드(2056)를 생성할 수 있다. 서버 키(2005), 수신자 코드(2052) 및 발신자 코드(2054)는 검증 키(2062)를 생성하는데 사용될 수 있다. 일부 실시예에서, 검증 키(2062)는 하나 이상의 서버 키(2005), 수신자 코드(2052), 검증 솔트(verification salt)(2024) 또는 발신자 코드(2054), 또는 이들의 임의의 조합으로부터 생성될 수 있다. 일부 정보, 예를 들어 서버(2050)의 데이터 베이스(2057)에는 검증 키(2062) 인 수신자 코드(2052)가 저장될 수 있다. 일부 실시예에서, 검증 키(2062)는 서버(2050)의 데이터 베이스(2057)에 저장되지 않을 수 있다. 하나 이상의 검증 키를 분배하는 단계는 서버(2050)로부터 적어도 하나의 제2 피어(2075)로 정보를 전송하는 단계를 더 포함할 수 있다. 일부 실시예에서, 검증 키(2062) 및 분배 코드(2056)는 적어도 하나의 제2 피어(2075)로 전송된다.
로그인 방법(2000)은 로컬 데이터 베이스에서 하나 이상의 검증 키를 검증하는 단계를 더 포함할 수 있다. 도 20에 도시된 바와 같이, 적어도 하나의 제2 피어(2075)는 서버(2050)로부터 정보를 수신할 수 있다. 일부 실시예에서, 정보는 검증 키(2062) 및 분배 코드(2056)를 포함할 수 있다. 다른 실시예에서, 정보는 검증 키(2062), 분배 코드(2056) 및 검증 솔트(2063)을 포함할 수 있다. 제2 피어(2075)는 분배 코드(2056)와 검증 키(2062)의 임의의 조합을 사용하여 대응하는 분배 키가 제2 피어(2075)의 메모리(2078)에 저장될 수 있음을 찾아서 확인할 수 있다. 저장된 분배 키는 확인 키(2081)를 생성하는데 사용될 수 있다. 일부 실시예에서, 서버(2050)로부터 수신된 저장된 분배 키(2053) 및 검증 솔트(2063)는 확인 키(2081)를 생성하는데 사용될 수 있다. 제2 피어(2075)는 정보를 서버(2050)로 전송할 수 있으며, 이는 확인 키(2081), 분배 코드(2056) 및 로그인 방법(2000)에 필요할 수 있는 임의의 다른 정보의 임의의 조합을 포함할 수 있다.
검증 프로세스를 검증하는 단계는 제2 피어(2075)로부터 정보를 수신하고 수신된 정보를 서버(2050)의 데이터 베이스(2057)에 저장된 정보와 비교하는 단계를 포함할 수 있다. 일부 실시예에서, 서버(2050)는 제2 피어(2075)로부터 정보를 수신한다. 수신된 정보는 확인 키(2081), 결과, 분배 코드(2056) 및 서버(2050)에 의한 정보의 저장 또는 비교 또는 제2 피어(2075)의 식별을 위해 필요한 다른 정보를 포함할 수 있다.
도 21에 도시된 바와 같이, 일부 실시예에 따라 하나 이상의 로그인 키(2100)를 생성하는 것은 제1 피어(2101)에서 발생할 수 있다. 제1 피어(2101)는 임의의 IoT 장치, 즉 네트워크에 연결될 수 있고 셀폰, 개인 비서, 버튼, 홈 보안 시스템, 장치 등을 포함하지만 이에 제한되지 않는 데이터를 전송할 수 있는 임의의 장치 일 수 있다. 제1 피어(2101)는 서버(2150)로부터 로그인을 요청할 수 있다. 일부 실시예에 따르면, 서버(2150)의 송신기/수신기는 로그인 데이터를 제1 피어(2101)에게 전송할 수 있다. 로그인 데이터는 제1 피어(2101)의 송신기/수신기(2141)에 의해 수신될 수 있고 제1 피어(2101)에서 로그인 방법을 개시하는데 필요한 임의의 데이터를 포함할 수 있다. 일부 실시예에서, 로그인 데이터는 로그인 솔트(2124)를 포함할 수 있다. 다른 실시예에서, 로그인 데이터는 로그인 솔트(2124) 및 사용자 입력(2104)의 전구체(precursor)로서 기능할 수 있는 추가 데이터를 포함할 수 있다. 로그인 솔트(2124)는 임의의 길이의 하나 이상의 문자열을 포함할 수 있다.
또한 도 21에 보이는 바와 같이, 사용자 입력(2104)은 신중한 정보 단위를 포함하는 임의의 형태의 사용자 생성 데이터를 포함할 수 있다. 일부 실시예에서, 사용자 입력(2104)은 생체 데이터, 예를 들어 지문, 홍채 등을 포함한다. 이들 실시예에서, 생체 데이터는 식별자를 포함하는 신중한 정보 단위로 분할될 수 있다. 식별자는 고유한 선택 코드(2109)로 변환될 수 있다.
다른 실시예에서, 사용자 입력(2104)은 하나 이상의 선택 객체를 포함할 수 있다. 하나 이상의 선택 객체는 이미지, 아이콘, 토큰, 버튼 또는 사용자가 선택 객체 그룹으로부터 하나 이상의 선택 객체를 선택할 수 있게 하는 임의의 다른 객체일 수 있다. 선택 객체는 제1 피어(2101)의 시각적 디스플레이(2143) 상에 디스플레이 될 수 있고, 예를 들어 문자, 숫자, 기호의 임의의 수의 문자를 포함할 수 있는 선택 코드(2109)로 변환될 수 있다. 특정 실시예에서, 선택 객체는 서버(2150)로부터 수신될 수 있는 이미지이다. 각 이미지에는 고유한 선택 코드(2109)가 할당되고, 선택 객체의 조합의 사용자 선택은 사용자의 선택 객체의 선택에 고유한 선택 코드(2109)의 조합을 포함하는 사용자 입력(2104)을 생성한다.
일부 실시예에 따르면, 사용자는 둘 이상의 선택 코드(2109)를 포함하는 사용자 입력(2104)을 생성할 수 있고, 선택 코드의 수는 n과 동일하다. 선택 코드(2109)는 데이터 조작기(2144)에 의해 제1 그룹(2110) 및 제2 그룹(2111)으로 분리될 수 있고, 여기서 제1 그룹(2110)은 1 내지 n-1 사이의 선택 코드(2109)를 포함하고 제2 그룹(2111)은 1 내지 n-1 사이의 선택 코드(2109)를 포함한다. 제1 그룹(2110) 및 제2 그룹(2111)에서의 각각의 선택 코드(2109)는 데이터 변환기(2145)에 의해 하나 이상의 문자열로 개별적으로 변환될 수 있고(2112), 제1 그룹의 변환된 선택 코드들(2113) 및 제2 그룹의 변환된 선택 코드들(2115)을 초래한다. 일부 실시예에서, 변환(2112)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(2112)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(2112)을 포함할 수 있다. 변환된 선택 코드(2113)의 제1 그룹은 클라이언트 프리 키(2114)를 생성하는데 사용될 수 있다. 제1 그룹의 변환된 선택 코드(2113)를 포함하는 개별 변환된 선택 코드는 데이터 조작기(2144)에 의해 결합되어 클라이언트 프리 키(2114)를 포함하는 하나 이상의 문자열을 형성할 수 있다. 일부 실시예에서, 개별 변환된 선택 코드는 유닛의 연관을 통해 결합될 수 있다. 연관은 각각의 개별 변환된 선택 코드를 하나의 단위로 사용하는 단계를 포함할 수 있거나 각각의 개별 변환된 선택 코드를 하나의 단위로 사용하는 단계를 포함할 수 있다. 클라이언트 프리 키(2114)는 데이터 변환기(2145)에 의해 클라이언트 키(2106)로 변환될 수 있다(2112). 일부 실시예에서, 변환(2112)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(2112)은 암호화 방법을 사용하는 방법을 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(2112)을 포함할 수 있다. 클라이언트 키(2106)는 프로세싱 마이그레이터(2147)에 의해 제1 피어(2101)의 메모리 유닛(2108)에 저장될 수 있다. 로그인 방법에 의해 생성된 클라이언트 키(2106)는 프로세싱 마이그레이터(2147)에 의해 신원에 대한 등록 프로세스 동안 제1 피어(2101)의 메모리(2108)에 저장된 클라이언트 키(2106)와 비교될 수 있다.
변환된 선택 코드(2115)의 제2 그룹은 서버 프리 키(2116)를 생성하는데 사용될 수 있다. 제2 그룹의 변환된 선택 코드(2115)를 포함하는 개별 변환된 선택 코드는 데이터 조작기(2144)에 의해 결합되어 서버 프리 키(2116)를 포함하는 하나 이상의 문자열을 형성할 수 있다. 일부 실시예에서, 개별 변환된 선택 코드는 유닛의 연관을 통해 결합될 수 있다. 연관은 각각의 개별 변환된 선택 코드를 하나의 단위로 사용하는 단계를 포함할 수 있거나 각각의 개별 변환된 선택 코드를 하나의 단위로 사용하는 단계를 포함할 수 있다. 서버 프리 키(2116)는 데이터 변환기(2145)에 의해 서버 키(2105)로 변환될 수 있다(2112). 일부 실시예에서, 변환(2112)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(2112)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(2112)을 포함할 수 있다.
일부 실시예에 따르면, 로그인 키(2199)가 생성될 수 있다. 클라이언트 키(2106) 및 서버 키(2105) 각각은 데이터 조작기(2144)에 의해 클라이언트 키 제1 파트(2117), 클라이언트 키 제2 파트(2118), 서버 키 제1 파트(2119) 및 서버 키 제2 파트(2120)으로 분리될 수 있다. 클라이언트 키 제1 파트(2117) 및 클라이언트 키 제2 파트(2118)은 클라이언트 키(2106)를 포함하는 문자의 상이한 부분을 포함할 수 있다. 특정 실시예에서, 클라이언트 키 제1 파트(2117) 및 클라이언트 키 제2 파트(2118) 각각은 클라이언트 키(2106)의 절반 일 수 있다. 서버 키 제1 파트(2119) 및 서버 키 제2 파트(2120)은 서버 키(2105)를 포함하는 문자의 상이한 부분을 포함할 수 있다. 특정 실시예에서, 서버 키 제1 파트(2119) 및 서버 키 제2 파트(2120) 각각은 서버 키(2105)의 절반 일 수 있다. 클라이언트 키 제1 파트(2117), 클라이언트 키 제2 파트(2118), 서버 키 제1 파트(2119) 및 서버 키 제2 파트(2120)은 제1 프리 키(2121)를 포함하는 하나 이상의 문자열을 형성하기 위하여 유닛의 연관을 통하여 데이터 조작기(2144)에 의해 결합될 수 있다. 연관은 각각 클라이언트 키 제1 파트(2117), 클라이언트 키 제2 파트(2118), 서버 키 제1 파트(2119) 및 서버 키 제2 파트(2120)을 각각 단위로 사용하거나, 또는 클라이언트 키 제1 파트(2117), 클라이언트 키 제2 파트(2118), 서버 키 제1 파트(2119), 및 서버 키 제2 파트(2120)을 하나의 유닛으로서 사용하는 단계를 포함할 수 있다.
제1 프리 키(2121)는 데이터 변환기(2145)에 의해 제2 프리 키(2122)를 포함하는 하나 이상의 문자열로 변환될 수 있다(2112). 일부 실시예에서, 변환(2112)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(2112)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(2112)을 포함할 수 있다. 등록 프리 키(2123)를 생성하기 위해 제2 프리 키(2122)가 사용될 수 있다. 일부 실시예에 따르면, 제2 프리 키(2122) 및 클라이언트 등록 코드(2103)는 데이터 조작기(2144)에 의해 연관되어 등록 프리 키(2123)를 포함하는 하나 이상의 문자열을 형성할 수 있다. 연관은 제2 프리 키(2122) 및 클라이언트 등록 코드(2103) 각각을 하나의 단위로 사용하는 단계를 포함할 수 있거나, 제2 프리 키(2122) 및 클라이언트 등록 코드(2103)를 하나의 단위로 사용하는 단계를 포함할 수 있다. 클라이언트 등록 코드(2103)는 등록 프로세스 동안 프로세싱 마이그레이터(2142)에 의해 제1 피어(2101)의 메모리(2108)에 저장될 수 있다. 등록 프리 키(2123)는 데이터 변환기(2144)에 의해 등록 키(2107)를 포함하는 하나 이상의 문자열로 변환될 수 있다(2112). 일부 실시예에서, 변환(2112)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(2112)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(2112)을 포함할 수 있다. 일부 실시예에서, 등록 키(2107)는 도 17에 도시된 등록 방법(1700) 동안 제1 피어(1701)에 의해 생성된 등록 키(1707)와 동일할 수 있다. 도 21을 다시 참조하면, 등록 키(2107)는 로그인 키(2199)를 생성하는데 사용될 수 있다. 일부 실시예에서, 등록 키(2107) 및 로그인 솔트(2124)는 로그인 키(2199)를 생성하는데 사용된다. 등록 키(2107) 및 로그인 솔트(2024)는 데이터 조작기(2144)에 의해 연관되어 로그인 프리 키(2198)를 포함하는 하나 이상의 문자열을 형성할 수 있다. 연관은 각각 등록 키(2107) 및 로그인 솔트(2024)를 하나의 단위로 사용하거나 등록 키(2107) 및 로그인 솔트(2024)를 하나의 단위로 사용하는 단계를 포함할 수 있다. 로그인 프리 키(2198)는 로그인 키(2199)를 생성하는데 사용될 수 있다. 일부 실시예에서, 로그인 프리 키(2198)는 데이터 변환기(2145)에 의해 로그인 키(2199)로 변환될 수 있다(2112). 일부 실시예에서, 변환(2112)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(2112)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(2112)을 포함할 수 있다.
제1 피어(2101)는 서버(2150)로 정보를 전송할 수 있다. 일부 실시예에 따르면, 제1 피어(2101)의 송신기/수신기(2141)는 로그인 키(2199) 및 서버 키(2105)를 서버(2150)에 전송할 수 있다. 다른 실시예에서, 제1 피어(2101)의 송신기/수신기(2141)는 로그인 키(2199), 서버 키(2105) 및 로그인 방법에 필요한 다른 정보를 서버(2150)에 전송할 수 있다.
로그인 방법은 하나 이상의 검증 키를 분배하는 단계를 더 포함할 수 있다. 도 22에 도시된 바와 같이, 서버(2250)는 제1 피어(2201)로부터 정보를 수신할 수 있다. 일부 실시예에 따르면, 서버(2250)의 송신기/수신기(2241)는 제1 피어(2201)로부터 로그인 키(login key)(2299)를 수신할 수 있다. 서버(2250)의 송신기/수신기(2241)는 제1 피어(2201)로부터 서버 키(2205)를 수신할 수 있다. 서버(2250)의 송신기/수신기(2241)는 제1 피어(2201)로부터 로그인 키(2299) 및 서버 키(2205)를 모두 수신할 수 있다. 일부 실시예에서, 서버(2250)는 비교 로그인 키(comparison login key)(2260)를 생성할 수 있다. 비교 로그인 키(2260)는 등록 방법 동안 서버(2250)의 데이터 베이스(2257)에 저장된 등록 키(2207)를 사용하여 생성될 수 있다.
서버(2250)의 프로세싱 마이그레이터(2242)는 데이터 베이스(2257)로부터 등록 키(2207) 및 로그인 솔트(2224)를 마이그레이션 할 수 있다. 서버(2250)의 데이터 조작기(2244)는 비교 로그인 프리 키(comparison login pre-key)를 생성하기 위해 연관에 의해 등록 키(2207)와 로그인 솔트(2224)를 결합할 수 있다. 비교 로그인 프리 키는 데이터 변환기(2245)에 의해 비교 로그인 키(comparison login key)(2260)로 변환될 수 있다(2212). 일부 실시예에서, 변환(2212)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(2212)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하여 변환(2212)을 포함할 수 있다. 서버(2250)의 프로세싱 검증기(2247)는 비교 로그인 키(2260)를 제1 피어(2201)에 의해 전송된 로그인 키(2299)와 비교하여 제1 피어(2201)가 통신할 수 있는지를 결정할 수 있다.
로그인 키(2299)는 프로세싱 마이그레이터(2242)에 의해 서버(2250)의 데이터 베이스(2257)에 저장될 수 있다. 서버는 데이터 마이그레이터(2422)를 사용하여 미리 저장된 피어 리스트(2258)에 액세스 할 수 있다. 저장된 피어 리스트(2258)는 예를 들어 네트워크상의 제1 피어(2201), 제2 피어(2275)의 피어 장치의 리스트를 포함할 수 있다. 피어 리스트는 또한 수신자 코드(2252) 및 분배 코드(2256)를 포함할 수 있으며, 이는 임의의 길이의 하나 이상의 문자 스트링을 포함할 수 있다. 부가적으로, 서버(2250)의 프로세싱 생성기(2246)는 발신자 코드(2254)를 생성할 수 있으며, 이는 또한 임의의 길이의 하나 이상의 문자열을 포함할 수 있다.
서버(2250)의 데이터 조작기(2244)는 서버 키(2205), 수신자 코드(2252), 발신자 코드(2254), 분배 코드(2256) 또는 로그인 키(2299)의 임의의 조합을 조합함으로써 분배 프리 키(2259)를 생성할 수 있다. 일부 실시예에서, 분배 프리 키(2259)는 서버 키(2205), 발신자 코드(2254) 및 수신자 코드(2252)로 구성되며, 이는 하나 이상의 문자열을 형성하기 위해 유닛의 연관을 통해 결합될 수 있다. 연관은 서버 키(2205), 발신자 코드(2254) 및 수신자 코드(2252) 각각을 단위로 사용하거나 서버 키(2205), 발신자 코드(2254) 및 수신자 코드(2252)를 하나의 단위로 사용하는 단계를 포함할 수 있다. 분배 프리 키(2259)는 데이터 변환기(2245)에 의해 분배 키(2253)를 포함하는 하나 이상의 문자열로 변환될 수 있다(2212). 일부 실시예에서, 변환(2212)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(2212)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하여 변환(2212)을 포함할 수 있다. 분배 키(2253)는 서버(2250)의 데이터 베이스(2257)에 저장될 수 있다. 검증 프리 키(2261)는 서버(2250)의 데이터 조작기(2244)에 의해 생성될 수 있다. 일부 실시예에서, 서버(2250)의 프로세싱 생성기(2246)에 의해 생성되고 임의의 수의 문자를 포함하는 분배 키(2253) 및 검증 솔트(2263)는 검증 프리 키(2261)를 생성하기 위해 연관될 수 있다. 검증 프리 키(2261)는 데이터 변환기(2245)에 의해 검증 키(2262)로 변환될 수 있다(2212). 일부 실시예에서, 변환(2212)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(2212)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하여 변환(2212)을 포함할 수 있다.
서버(2250)는 정보를 제2 피어(2275)로 전송하도록 구성될 수 있다. 일부 실시예에서, 서버(2250)의 송신기/수신기(2241)는 검증 키(2622) 및 분배 코드(2256)를 제2 피어(2275)로 전송할 수 있다. 다른 실시예에서, 서버(2250)의 송신기/수신기(2241)는 검증 키(2622), 분배 코드(2256), 검증 솔트(2631) 및 로그인 방법(2000)에 필요한 기타 정보를 제2 피어(2275)에게 전송할 수 있다. 일부 실시예에서, 서버(2250)는 분배 키(2253), 검증 솔트(2263) 및 분배 코드(2256)의 임의의 조합을 제2 피어(2275)로 전송할 수 있다.
서버(2250)는 하나 이상의 검증 키(2622)를 생성하고 하나 이상의 제2 피어(2275)로 데이터를 전송할 수 있다. 일부 실시예에서, 피어 리스트(2258)는 네트워크상의 하나 이상의 제2 피어(2275)의 리스트를 포함할 수 있다. 제2 피어는 네트워크 상에 있고 서버(2250)로부터 데이터를 송수신할 수 있는 임의의 IoT 장치, 서버 또는 임의의 장치를 포함할 수 있다. 서버(2250)는 각각의 제2 피어(2275)에 대한 고유 분배 코드(2256)를 생성할 수 있다. 서버(2250)는 각각의 제2 피어(2275)에 대한 고유 수신자 코드(2522)를 생성할 수 있다. 이들 실시예에서, 각각의 제2 피어(2275)에 대해 생성된 검증 키(2622)는 다른 제2 피어(2275)에 대해 생성된 검증 키(2622)와 상이 할 수 있지만, 제1 피어(2201)로부터 수신된 기본 서버 키(2205)는 동일할 수 있다. 검증 키(2622)는 서버(2250)의 데이터 베이스(2257)에 저장되거나 저장되지 않을 수 있다.
이제 도 23을 참조하면, 로그인 방법은 로컬 데이터 베이스에서 하나 이상의 로그인 키를 확인하는 단계를 포함할 수 있다. 일부 실시예에 따르면, 제2 피어(2375)는 정보를 수신하여 서버(2350)에 전송하도록 구성될 수 있다. 제2 피어(2375)의 송신기/수신기(2341)는 서버(2350)로부터 검증 키(2362)를 수신할 수 있다. 제2 피어(2375)의 송신기/수신기(2321)는 서버(2350)로부터 분배 코드(2356)를 수신할 수 있다. 일부 실시예에서, 제2 피어(2375)의 송신기/수신기(2341)는 서버(2350)로부터 검증 키(2362), 분배 코드(2356) 및 검증 솔트(2363)를 수신할 수 있다. 분배 코드(2356)는 제2 피어(2375)의 메모리(2378)에 저장된 모든 분배 코드(2356)에 걸쳐 프로세싱 검증기(2347)에 의해 비교될 수 있다. 서버(2350)로부터 수신된 분배 코드(2356)가 제2 피어(2375)의 메모리(2378)에 저장된 분배 코드(2356)와 동일하면, 제2 피어(2375)의 프로세싱 생성기(2346)는 긍정적 인 결과(2382)를 생성할 수 있다. 제2 피어(2375)에 의해 수신된 분배 코드(2356)가 제2 피어(2375)의 메모리(2378)에 저장된 분배 코드(2356)와 동일하지 않은 경우, 제2 피어(2375)의 프로세싱 생성기(2346)는 부정적인 결과(2382)를 생성할 수 있다. 일부 실시예에서, 검증 키(2362)는 또한 동일한 분배 코드(2356)를 찾는 데 사용된다. 제2 피어(2375)가 제2 피어(2375)의 메모리(2378)에 저장된 하나 이상의 분배 코드(2356)가 서버(2350)로부터 수신된 분배 코드(2356)와 동일하다고 결정하면, 제2 피어(2375)의 프로세싱 마이그레이터(2334)는 매칭 분배 코드(2356)와 연관된 분배 키(2353)를 메모리(2378)로부터 제거할 수 있다. 제2 피어(2375)의 메모리(2378) 및 검증 솔트(2363)로부터 제거된 분배 키(2353)는 데이터 조작기(2344)에 의해 연결에 의해 확인 프리 키(2380)를 생성하기 위해 사용될 수 있다. 확인 프리 키(2380)는 데이터 변환기(2345)에 의해 확인 키(2381)로 변환될 수 있다(2312). 일부 실시예에서, 변환(2312)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(2312)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(2312)을 포함할 수 있다. 일부 실시예에서, 제2 피어(2375)는 서버(2350)로부터 분배 키 및 검증 솔트(2363)를 수신할 수 있다. 제2 피어(2375)는 검증 프리 키를 생성하기 위해 분배 키와 검증 솔트(2363)를 연관함으로써 제2 피어(2375)에서 검증 키(2362)를 생성할 수 있다. 검증 프리 키는 검증 키(2362)로 변환될 수 있다(2312).
일부 실시예에서, 제2 피어(2375)는 비교 검증 키(2383)를 생성할 수 있다. 제2 피어(2375)는 저장된 분배 키(2353)와 서버(2350)로부터 수신된 검증 솔트(2363)를 연관하여 비교 검증 프리 키를 생성함으로써 비교 검증 키(2383)를 생성할 수 있다. 비교 검증 프리 키는 비교 검증 키로 변환될 수 있다(2312). 일부 실시예에서, 비교 검증 키(2383)는 프로세싱 검증기(2347)에 의해 수신된 검증 키(2362)와 비교 될 수 있고 결과(2382)가 생성될 수 있다. 일부 실시예에서, 결과(2382)는 검증 키(2362)를 비교 검증 키(2383)와 비교하여 생성된 결과 및 수신된 분배 코드(2356)를 저장된 분배 코드(2356)와 비교하여 생성된 결과를 포함할 수 있다. 확인 키(2381)는 확인 솔트(2363) 및 제2 피어(2375)의 메모리(2378)로부터 검색된 보관 키(2377)로부터 생성될 수 있다. 보관 키(2377) 및 검증 쏠트(2363)는 확인 프리 키(2380)를 생성하기 위해 데이터 조작기(2344)에 의해 연관될 수 있다. 확인 프리 키(2380)는 2312에서 확인 키(2381)로 변환될 수 있다. 확인 키(2381), 분배 코드(2356) 및 결과(2382)의 임의의 조합은 제2 피어(2375)에서 서버(2350)으로 전송될 수 있다.
제2 피어(2375)는 서버(2350)로 데이터를 전송하도록 구성될 수 있다. 일부 실시예에서, 제2 피어(2375)의 송신기/수신기(2341)는 결과(2382), 분배 코드(2356) 및 확인 키(2381)의 임의의 조합을 서버(2350)에 전송할 수 있다. 일부 실시예에서, 제2 피어(2375)는 거래와 관련된 모든 데이터를 삭제하도록 구성될 수 있다. 특정 실시예에서, 제2 피어(2375)는 제2 피어(2375)의 메모리(2378) 또는 제2 피어(2375)의 프로세서로부터 분배 코드(2356), 보관 키(2377), 분배 키(2353), 검증 키(2362), 검증 솔트(2326), 확인 프리 키(2380) 및 확인 키(2381)의 임의의 조합을 삭제할 수 있다. 일부 실시예에서, 데이터의 삭제는 서버(2350)로 데이터를 전송하는 것과 동시에 발생할 수 있다. 다른 실시예에서, 데이터의 삭제는 서버(2350)로 데이터를 전송한 후에 발생할 수 있다.
이제 도 24를 참조하면, 로그인 방법은 검증 프로세스(2400)를 검증하는 단계를 더 포함할 수 있다. 서버(2450)는 하나 이상의 제2 피어(2475)로부터 데이터를 수신하도록 구성될 수 있다. 일부 실시예에서, 서버(2450)의 송신기/수신기(2441)는 확인 키(2461), 결과(2482) 및 분배 코드(2456)의 임의의 조합을 수신할 수 있다. 서버(2450)는 제2 피어(2475)로부터 수신된 결과(2482)를 확인 응답할 수 있다. 결과가 긍정적인 경우, 서버(2450)의 프로세싱 검증기(2447)는 제2 피어(2475)로부터 수신된 분배 코드(2456)를 서버(2450)의 데이터 베이스(2457)에 저장된 모든 또는 일부 분배 코드(2456)와 비교할 수 있다. 서버(2450)의 데이터 베이스(2457)에 저장된 분배 코드(2456)가 제2 피어(2475)로부터 수신된 분배 코드(2456)와 동일하면, 서버(2450)의 프로세싱 마이그레이터(2402)는 분배 코드(2456)와 연관될 수 있고 서버(2450)의 데이터 베이스(2457)에 저장될 수 있는 검증 솔트(2463) 및 분배 키(2453)의 임의의 조합을 검색할 수 있다. 일부 실시예에서, 검색된 분배 키(2453)는 등록 프로세스 동안 저장된 분배 키(2453) 일 수 있다. 검색된 검증 솔트(2463) 및 검색된 분배 키(2453)는 검증 쏠트(2463)와 분배 키(2453)의 연관을 통해 검증 프리 키(2461)를 생성하기 위해 데이터 조작기(2444)에 의해 사용될 수 있다. 검증 프리 키(2461)는 데이터 변환기(2445)에 의해 검증 키(2442)로 변환될 수 있다(2412). 일부 실시예에서, 변환(2412)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(2412)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(2412)을 포함할 수 있다.
서버(2450)의 프로세싱 검증기(2447)는 생성된 검증 키(2442)를 제2 피어(2475)로부터 수신된 확인 키(2461)와 비교할 수 있고 프로세싱 생성기(2246)는 인증 결과(2464)를 생성할 수 있다. 검증 키(2442)가 제2 피어(2475)로부터 수신된 확인 키(2461)와 동일하면, 예를 들어 인증 성공으로 결과가 긍정적일 수 있다. 확인 키(2442)가 제2 피어(2475)로부터 수신된 확인 키(2461)와 동일하지 않은 경우, 인증 결과(2464)는 예를 들어 인증 실패 또는 위험의 부정적일 수 있다. 서버(2450)의 프로세싱 마이그레이터(2402)는 인증 결과(2464)를 데이터 베이스(2457)에 저장할 수 있다. 일부 실시예에서, 인증 결과(2464)는 등록 방법 동안 생성된 연관된 분배 키(2453)와 함께 저장된다.
서버(2450)는 새로운 분배 키(2453)를 하나 이상의 제2 피어(2475)에게 전송할 수 있다. 이제 도 19를 참조하면, 서버(1950)는 서버(1950)의 데이터 베이스(1957)에서 새로운 피어 리스트(1958)를 생성할 수 있다. 일부 실시예에서, 하나 이상의 분배 키(1900)를 분배하는 것과 동일할 수 있는 방법에서, 서버(1950)는 새로운 수신자 코드(1952) 및 새로운 분배 코드(1956)의 임의의 조합을 할당할 수 있고, 새로운 분배 키(1953)을 생성하기 위하여 새로운 수신자 코드(1952) 및 새로운 분배 코드(1956)의 조합을 사용할 수 있다. 서버(1950)는 새롭게 생성된 분배 키(1953)를 이전에 분배 키(1953)를 저장한 제2 피어(1975)와 상이할 수 있는 제2 피어(1975)로 전송할 수 있다.
웹 인증 방법(web authentication method)은 바코드 생성, 하나 이상의 키 생성 및 웹 세션 설정을 포함할 수 있다. 또한, 웹 인증 시스템은 하나 이상의 제1 장치, 제2 장치, 제1 서버, 제2 서버 및 인터넷 애플리케이션(internet application) 간의 통신을 포함할 수 있다. 하나 이상의 제1 장치, 제2 장치, 제1 서버 및 제2 서버는 적어도 프로세서 및 송신기/수신기를 포함할 수 있다. 하나 이상의 제1 장치 및 하나 이상의 제2 장치는 각각의 메모리를 추가로 포함할 수 있다. 일부 실시예에서, 하나 이상의 제1 장치 및 하나 이상의 제2 장치 각각은 시각적 디스플레이를 포함할 수 있다. 하나 이상의 제1 장치 및 하나 이상의 제2 장치 각각은 바코드를 스캔하는 수단을 포함할 수 있다. 하나 이상의 제1 서버 및 제2 서버는 데이터 베이스를 추가로 포함할 수 있다.
제1 장치, 제2 장치, 제1 서버 및 제2 서버의 송신기는 외인성 소스로부터 정보를 송수신하도록 구성될 수 있다. 일부 실시예에서, 제1 장치는 제2 장치, 제1 서버 및 제2 서버의 임의의 조합으로부터 정보를 송수신하도록 구성될 수 있다. 제1 서버 및 제2 서버는 제1 장치 및 제2 장치 모두로부터 정보를 전송 및 수신하도록 구성될 수 있고, 제2 장치는 제1 서버, 제1 장치 및 제2 서버로부터 정보를 송수신하도록 구성될 수 있다. 제1 장치 및 제2 장치의 메모리 및 서버의 데이터 베이스는 정보를 저장하고 정보를 검색하도록 구성될 수 있다. 시각적 디스플레이는 사용자가 디스플레이와 상호 작용하기 위한 수단, 예를 들어 데이터 입력, 문자 선택, 객체 선택 등을 포함한다. 인터넷 애플리케이션은 제1 서버, 제2 서버, 제1 장치 및 제2 장치의 임의의 조합으로부터 정보를 송신 또는 수신하도록 구성될 수 있다.
제1 장치, 제2 장치, 제1 서버 및 제2 서버의 프로세서는 프로세싱 마이그레이터, 데이터 조작기, 데이터 변환기, 프로세싱 생성기 및 프로세싱 검증기를 포함할 수 있다. 프로세싱 마이그레이터는 제1 장치, 제2 장치, 또는 제1 또는 제2 서버 내의 하나의 컴포넌트로부터 제1 장치, 제2 장치 또는 제1 또는 제2 서버 내의 다른 컴포넌트로 데이터를 마이그레이션 하도록 구성될 수 있다. 예로서, 비 제한적으로, 프로세싱 마이그레이터는 제1 장치의 메모리로부터 제1 장치의 프로세서로, 또는 제2 장치의 프로세서로부터 제2 장치의 송신기/수신기로 데이터를 이동(move)시키도록 구성될 수 있다. 데이터 조작기는 예를 들어 결합, 분리, 분리 및 재결합, 재정렬 등 데이터를 조작하도록 구성될 수 있다. 예로서, 비 제한적으로, 제1 장치의 데이터 조작기는 하나 이상의 문자열을 제1 부분 및 제2 부분으로 분리하도록 구성될 수 있거나, 하나 이상의 문자열을 생성하기 위하여 서버의 데이터 조작기는 데이터의 제1 부분을 제2 부분과 결합하도록 구성될 수 있다.
데이터 변환기는 제1 문자열을 제2 문자열로 변환하도록 구성될 수 있고, 여기서, 제1 문자열 및 제2 문자열은 길이, 구성 또는 배열 중 임의의 하나 이상에서 상이할 수 있다. 일부 실시예에서, 데이터 변환기는 해싱 알고리즘을 제1 문자열에 적용하도록 구성될 수 있다. 다른 실시예에서, 데이터 변환기는 제1 문자열에 암호화 프로토콜을 적용하도록 구성될 수 있다. 또 다른 실시예에서, 데이터 변환기는 암호 해독 프로토콜을 제1 문자열에 적용하도록 구성될 수 있다. 다른 실시예에서 여전히, 데이터 변환기는 해싱 알고리즘, 암호화 프로토콜, 복호화 프로토콜, 또는 임의의 다른 공지된 데이터 변환 방법을 제1 문자열로 적용하여 제2 문자열을 생성하도록 구성될 수 있다.
프로세싱 생성기는 데이터를 생성하도록 구성될 수 있다. 일부 실시예에서, 데이터는 임의의 길이의 하나 이상의 문자 스트링을 포함할 수 있고 바코드 등을 포함할 수 있다. 일부 실시예에서, 데이터는 랜덤 방식 또는 지시된 방식으로 생성될 수 있다. 프로세싱 검증기는 둘 이상의 데이터를 비교하고 이들 데이터가 동일하거나 다른 지를 결정하도록 구성될 수 있다. 일부 실시예에서, 프로세싱 검증기 및 프로세싱 생성기는 제1 문자열 및 제2 문자열이 동일한 지를 결정하고 제1 및 제2 문자열의 신원에 기초하여 응답을 생성하기 위해 쌍을 이룰 수 있다.
웹 인증 방법은 도 25에 도시된 바코드를 생성하는 단계를 포함할 수 있다. 바코드(2500)를 생성하는 것은 인터넷 애플리케이션(2590)에서 개시될 수 있다. 일부 실시예에서, 사용자는 인터넷 애플리케이션(2590)에서 로그인 요청으로 바코드(2500)를 생성할 수 있다. 제1 합의 프로토콜 쌍(2646)은 프로세싱 생성기(2646)에 의해 생성될 수 있다. 일부 실시예에서, 제1 합의 프로토콜 쌍(first agreement protocol pair)(2646)은 인터넷 애플리케이션(2590)에서 프로세싱 생성기(2646)에 의해 생성될 수 있다. 제1 키 합의 프로토콜 쌍(first key agreement protocol pair) (2526)은 당업자에게 쉽게 알려진 임의의 키 합의 프로토콜 쌍을 포함할 수 있다. 일부 실시예에서, 제1 키 합의 프로토콜 쌍 (2526)은 타원-커브 디피-헬만(Elliptic-curve Diffie-Hellman)(ECDH) 쌍을 포함할 수 있다. 일부 실시예에 따르면, 인터넷 애플리케이션(2590)은 정보를 제1 서버(2525)로 전송하도록 구성될 수 있다. 프로세싱 마이그레이터(2642)는 인터넷 애플리케이션(2590)의 송신기/수신기(2541)로 정보를 전송할 수 있다. 인터넷 애플리케이션(2590)은 제1 공개 키(first public key)(2503), 제1 개인 키(first private key)(2504) 및 바코드(2505)를 생성하는데 필요한 임의의 다른 정보의 임의의 조합을 전송할 수 있다.
일부 실시예에서, 제1 서버(2525)는 인터넷 애플리케이션(2590)으로부터 정보를 수신하도록 구성될 수 있다. 제1 서버(2525)의 송신기/수신기(2541)는 인터넷 애플리케이션(2590)으로부터 제1 공개 키(2503), 제1 개인 키(2504) 및 바코드(2500)를 생성하기 위한 임의의 다른 필요한 정보의 임의의 조합을 수신할 수 있다. 제1 서버(2525)는 랜덤 키(2527)를 생성할 수 있고 랜덤 키(2527)는 제1 서버(2525)의 프로세싱 생성기(2646)에 의해 생성될 수 있다. 랜덤 키(2527)는 임의의 길이의 하나 이상의 문자열을 포함할 수 있고 문자는 문자, 숫자 및 기호를 포함할 수 있다. 일부 실시예에서, 바코드(2505)가 생성될 수 있다. 프로세싱 생성기(2546)는 바코드 전구체(precursor)를 사용하여 바코드(2505)를 생성할 수 있다. 바코드(2505)는 임의의 선형 바코드, 2 차원 바코드, 또는 당업자에게 쉽게 알려진 임의의 유형의 판독 가능한 표시(readable indicia)를 포함하지만, 임의의 유형의 바코드(2505)를 포함할 수 있다. 일부 실시예에서, 바코드(2505)는 QR 코드를 포함할 수 있다. 바코드(2505)는 제1 공개 키(2503), 제1 개인 키(2504), 랜덤 키(2527) 및 바코드(2500)를 생성하는데 필요한 임의의 다른 정보의 임의의 조합으로부터 생성될 수 있다. 특정 실시예에서, 바코드(2505)는 제1 서버(2525)의 데이터 조작기(2544)에 의해 생성될 수 있고 제1 공개 키(2503) 및 랜덤 키(2527)에 기초할 수 있다.  제1 서버(2525)는 인터넷 애플리케이션(2590)으로 정보를 전송하도록 구성될 수 있다. 일부 실시예에서, 제1 서버(2525)의 송신기/수신기(2541)는 인터넷 애플리케이션(2590)으로 정보를 전송할 수 있다. 특정 실시예에서, 제1 서버(2525)는 인터넷 애플리케이션(2590)으로 바코드(2505)를 전송할 수 있다. 인터넷 애플리케이션(2590)은 송신기/수신기(2551)에서 바코드(2505)를 수신할 수 있고 인터넷 애플리케이션(2590)의 시각 디스플레이(2590)에서 바코드(2505)를 디스플레이 할 수 있다.
웹 인증 방법은 도 26, 27 및 28에 도시된 하나 이상의 키를 생성하는 단계를 포함할 수 있다. 이제 도 26을 참조하면, 하나 이상의 키(2600)를 생성하는 것은 바코드(2605)를 스캐닝 하는 제1 장치(2650)를 포함할 수 있다. 제1 장치(2650)의 데이터 조작기(2644)는 바코드(2605) 내에 포함된 정보로부터 랜덤 키(2627), 제1 공개 키(2603) 또는 랜덤 키(2627) 및 제1 공개 키(2603)를 생성할 수 있다. 데이터 조작기(2644)는 하나 이상의 키(2600)를 생성하기 위해 바코드(2605) 내에 포함된 임의의 정보를 추정할 수 있다. 또한, 제1 장치(2650)의 프로세싱 생성기(2646)는 제2 키 합의 프로토콜 쌍(2651)을 생성할 수 있다. 제2 키 합의 프로토콜 쌍(2651)은 당업자에게 쉽게 알려진 임의의 키 합의 프로토콜 쌍을 포함할 수 있다. 일부 실시예에서, 제2 키 합의 프로토콜 쌍(2651)은 타원-커브 디피-헬만(Elliptic-curve Diffie-Hellman)(ECDH) 쌍을 포함할 수 있다. 일부 실시예에서, 제2 키 합의 프로토콜 쌍(second key agreement protocol pair)(2651)은 제2 개인 키(2652) 및 제2 공개 키(2653)를 포함할 수 있다. 바코드(2605)로부터 외삽된 제2 개인 키(2652) 및 제1 공개 키(2603)는 비밀 키(2654)를 생성하기 위해 데이터 조작기(2644)에 의해 결합될 수 있다. 제1 장치(2650)의 프로세싱 생성기(2646)는 쏠트(2655), 초기 벡터(initializing vector)(2656) 및 반복 번호(iteration number)(2657)의 임의의 조합을 생성할 수 있다. 특정 실시예에서, 제1 장치(2650)의 프로세싱 생성기(2646)는 솔트(2655), 초기 벡터(2656) 및 반복 번호(2657) 각각을 생성할 수 있다. 쏠트(2655), 초기 벡터(2656) 및 반복 번호(2657)는 각각 임의의 길이의 하나 이상의 문자 스트링을 포함할 수 있고 문자는 문자, 숫자 또는 기호의 임의의 조합을 포함할 수 있다. 초기 벡터(2656)는 n과 동일한 수의 문자를 포함할 수 있고, IV 제1 파트(IV first part)(2658) 및 IV 제2 파트(IV second part)(2765)을 추가로 포함할 수 있다. IV 제1 파트(2658) 및 IV 제2 파트(2659)은 각각 1과 n-1 사이의 다수의 문자를 포함할 수 있다. 반복 번호(2657)는 n과 동일한 문자 수를 포함할 수 있고, IN 제1 파트(2660) 및 IN 제2 파트(2661)을 추가로 포함할 수 있다. IN 제1 파트(2660) 및 IN 제2 파트(2661)은 각각 1과 n-1 사이의 다수의 문자를 포함할 수 있다. 데이터 조작기(2644)는 초기 벡터(2656)로부터 IV 제1 파트(2658) 및 IV 제2 파트(2659)을 생성할 수 있다. 데이터 조작기(2644)는 반복 번호(2657)로부터 IN 제1 파트(2660) 및 IN 제2 파트(2661)을 생성할 수 있다. 일부 실시예에 따르면, 비밀 키(2654), 쏠트(2655), IV 제1 파트(2658) 및 IN 제1 파트(2660)은 데이터 변환기(2645)에 의해 마스크 된 비밀 키(2662), 마스크 된 쏠트(2663), 마스크 된 IV 제1 파트(2664), 및 마스크 된 제1 파트(2665)으로 각각 변환될 수 있다(2612). 일부 실시예에서, 초기 벡터(2656)는 데이터 변환기(2645)에 의해 마스크 된 IV 제1 파트(2664)으로 변환될 수 있다(2612). 마찬가지로, 반복 번호(2657)는 데이터 변환기(2645)에 의해 마스크 된 제1 파트(2665)으로 변환될 수 있다(2612). 일부 실시예에서, 변환(2612)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 다른 실시예에서, 변환(2612)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 또 다른 실시예는 해싱 알고리즘 및 암호화 방법의 조합을 사용하는 변환(2612)을 포함할 수 있다. 일부 실시예에서, 반복 번호(2657)는 IN 제1 파트(2660) 및 IN 제2 파트(2661)을 생성하지 않고 그대로 유지될 수 있고, 결과적인 IN 제1 파트(2660)은 변환되지 않을 수 있다(2612).
제1 장치(2650)의 프로세싱 생성기(2646)는 클라이언트 키(2666)를 생성할 수 있다. 클라이언트 키(2666)는 임의의 길이의 하나 이상의 문자 스트링을 포함할 수 있고 문자는 문자, 숫자 또는 기호의 임의의 조합을 포함할 수 있다. 일부 실시예에 따르면, 클라이언트 키(2666)는 데이터 변환기(2645)에 의해 제1 마스크 된 클라이언트 키(2667)로 변환될 수 있다(2612). 다른 실시예에서, 클라이언트 키(2667)는 데이터 변환기(2645)에 의해 제2 마스크 된 클라이언트 키(2668)로 변환될 수 있다(2612). 또 다른 실시예에서, 클라이언트 키(2666)는 데이터 변환기(2645)에 의해 제1 마스크 된 클라이언트 키(2667) 및 제2 마스크 된 클라이언트 키(2668) 각각으로 변환될 수 있다(2612). 변환(2612)은 해싱 알고리즘을 사용하는 단계를 포함할 수 있다. 또한, 변환(2612)은 암호화 방법을 사용하는 단계를 포함할 수 있다. 일부 실시예에서, 변환(2612)은 해싱 알고리즘과 암호화 방법의 조합을 포함할 수 있다. 제1 장치(2650)는 정보를 제1 서버(2625)로 전송하도록 구성될 수 있다. 일부 실시예에서, 제1 장치(2650)의 송신기/수신기(2631)는 제1 마스크 된 클라이언트 키(2667), 제2 마스크 된 클라이언트 키(2668), 마스크 된 비밀 키(2662), 마스크 된 솔트(2663), 마스크 된 IV 제1 파트(2664) 및 마스크 된 IN 제1 파트(2665)의 임의의 조합을 제1 서버(2625)로 전송할 수 있다. 일부 실시예에서, 제1 장치(2650)는 제1 장치(2650)의 시각적 디스플레이(2669) 상에 IV 제2 파트(2659) 및 IN 제2 파트(2661) 각각을 디스플레이 할 수 있다. 특정 실시예에서, 반복 번호(2657)는 전체적으로 제1 장치(2650)의 시각적 디스플레이(2669) 상에 디스플레이 될 수 있다.
이제 도 27을 참조하면, 하나 이상의 키를 생성하는 단계는 제1 장치(2750)로부터 정보를 수신하는 제1 서버(2725)를 포함할 수 있다. 일부 실시예에서, 제1 서버(2725)의 송신기/수신기(2741)는 마스크 된 비밀 키(2716), 제2 마스크 된 클라이언트 키(2768), 마스크 된 솔트(2763), 마스크 된 IV 제1 파트(2764), 마스크 된 제1 파트(2765) 및 제1 장치(2750)로부터 제1의 마스크 된 클라이언트 키(2767)의 임의의 조합을 수신할 수 있다. 일부 실시예에서, 제1 서버(2725)의 프로세싱 마이그레이터(2722)는 마스크 된 비밀 키(2728), 제2 마스크 된 클라이언트 키(2768), 마스크 된 솔트(2763), 마스크 된 IV 제1 파트(2764), 마스크 된 제1 파트(2765) 및 제1 서버(2725)의 데이터 베이스(2729)에서 제1 장치(2750)로부터 수신된 제1 마스크 된 클라이언트 키(2767) 중 하나 이상을 저장할 수 있다. 특정 실시예에 따르면, 제1 서버(2725)의 프로세싱 마이그레이터(2722)는 제1 마스크 된 클라이언트 키(2767)를 제1 서버(2729)의 데이터 베이스(2729)에 저장할 수 있다.
제1 서버(2725)는 인터넷 애플리케이션(2790)으로 정보를 전송하도록 구성될 수 있다. 일부 실시예에서, 제1 서버(2725)의 송신기/수신기(2741)는 마스크 된 비밀 키(2716), 제2 마스크 된 클라이언트 키(2768), 마스크 된 솔트(2763), 마스크 된 IV 제1 파트(2764), 마스크 된 IN 제1 파트(2765) 및 제1 마스크 된 클라이언트 키(2767)의 임의의 조합을 제1 서버(2725)로 전송할 수 있다. 특정 실시예에서, 제1 서버(2725)의 송신기/수신기(2741)는 마스크 된 비밀 키(2716), 제2 마스크 된 클라이언트 키(2768), 마스크 된 솔트(2763), 마스크 된 IV 제1 파트(2764) 및 마스크 된 IN 제1 파트(2765)을 제1 서버(2725)로 전송할 수 있다. 다른 실시예에서, 제1 서버(2725)의 송신기/수신기(2741)는 마스크 된 비밀 키(2716), 제2 마스크 된 클라이언트 키(2768), 마스크 된 솔트(2763) 및 마스크 된 IV 제1 파트(2764)의 임의의 조합을 인터넷 애플리케이션(2790)으로 전송할 수 있다(이 시점부터 총괄하여 "수신된 데이터(received data)(2728)"라고 함).
도 28에 도시된 바와 같이, 하나 이상의 키를 생성하는 단계(2800)는 제1 서버(2825)로부터 수신된 데이터(2828)를 수신하는 인터넷 애플리케이션(2890)의 송신기/수신기(2841)를 포함할 수 있다. 제1 장치(2850)는 IV 제2 파트(2659) 및 IN 제2 파트(2661)(도 26 참조)을 포함할 수 있는 사용자 입력(2869)을 포함할 수 있으며, 이들은 각각 문자열을 포함할 수 있다. 사용자 입력(2869)은 IV 제1 파트 및 반복 번호를 포함할 수 있다. 일부 실시예에서, 사용자 입력(2869)은 제1 장치(2850)의 그래픽 디스플레이(2869)에 표시될 수 있다. 하나 이상의 키를 생성하는 것은 인터넷 애플리케이션(2890)에 입력되는 사용자 입력(2869)을 포함할 수 있다. 인터넷 애플리케이션(2890)의 데이터 변환기(2844)는 수신된 데이터(2828)를 비밀 키(2854), IN 제1 파트(2860), 솔트(2855), IV 제1 파트(2858) 및 클라이언트 키(2866) 중 하나 이상으로 변환할 수 있다(2812). 변환(2812)은 해싱 알고리즘을 사용하는 것을 포함할 수 있다. 또한, 변환(2812)은 암호화 방법을 사용하는 것을 포함할 수 있다. 변환은 해독 방법을 사용하는 것을 포함할 수 있다. 일부 실시예에서, 변환(2812)은 해싱 알고리즘, 암호화 방법 또는 복호화 방법의 임의의 조합을 포함할 수 있다. 일부 실시예에 따르면, 인터넷 애플리케이션(2890)의 데이터 변환기(2844)는 사용자 입력(2886) 및 수신된 데이터(2828)를 모두 사용하여 2812 수신된 데이터(2828)를 비밀 키(2854), IN 제1 파트(2860), 소금(2855), IV 제1 파트(2858) 및 클라이언트 키(2866) 중 하나 이상으로 변환할 수 있다. 프로세싱 마이그레이터(2842)는 인터넷 애플리케이션(2890)의 스토리지(2891)에 클라이언트 키(2866)를 저장할 수 있다. 인터넷 애플리케이션(2890)의 데이터 변환기(2845)는 클라이언트 키(2866)를 제3 마스크 된 클라이언트 키(2892)로 변환할 수 있다(2812). 일부 실시예에서, 제3 마스크 된 클라이언트 키(2892)는 프로세싱 마이그레이터(2842)에 의해 인터넷 애플리케이션(2890)의 송신기/수신기(2841)로 마이그레이션 될 수 있다. 인터넷 애플리케이션(2890)의 송신기/수신기(2841)는 제3 마스크 된 클라이언트 키(2892)를 제1 서버(2815)로 전송할 수 있다.
웹 인증 방법은 웹 세션을 확립하는 단계를 포함할 수 있다. 도 29에 도시된 바와 같이, 제1 서버(2925)의 송신기/수신기(2941)는 인터넷 애플리케이션(2990)으로부터 제3 마스크 된 클라이언트 키(2998)를 수신할 수 있다. 일부 실시예에 따르면, 제1 서버(2725)의 프로세싱 마이그레이터(2928)는 제1 서버(2725)의 데이터 베이스(2913)로부터 저장된 제1 마스크 된 클라이언트 키(2929)를 검색할 수 있다. 프로세싱 검증기(2947)는 검색된 제1 마스크 된 클라이언트 키(2918)를 인터넷 애플리케이션(2990)으로부터 수신된 제3 마스크 된 클라이언트 키(2998)와 비교할 수 있다. 프로세싱 생성기(2946)는 제1 마스크 된 클라이언트 키(2918) 및 제3 마스크 된 클라이언트 키(2998)의 신원에 기초하여 결과(2930)를 생성할 수 있다. 제1 서버(2925)의 송수신기(2941)는 결과(2930)를 제2 서버(2980)로 전송할 수 있다. 제2 서버(2980)의 송신기/수신기(2941)는 제1 서버(2925)로부터 결과(2930)를 수신하고 웹 토큰(web token)(2931)을 생성할 수 있다. 웹 토큰(2931)은 프로세싱 생성기(2946)에 의해 생성될 수 있다. 일부 실시예에서, 웹 토큰(2931)은 웹 세션의 확립을 승인하기 위해 당 업계에 알려진 임의의 수단 일 수 있다. 제2 서버(2980)는 생성된 웹 토큰(2931)을 제1 서버(2815)로 전송할 수 있다. 제1 서버(2915)의 송신기/수신기(2941)는 제2 서버(2980)로부터 웹 토큰(2931)을 수신하고 인터넷 애플리케이션(2990)으로 수신된 웹 토큰(2931)을 전송할 수 있다. 인터넷 애플리케이션(2990)의 송신기/수신기(2941)는 제1 서버(2825)로부터 웹 토큰(2931)을 수신할 수 있다. 일부 실시예에서, 인터넷 애플리케이션은 수신된 웹 토큰을 제2 서버로 전송할 수 있다. 제2 서버는 웹 브라우저로부터 웹 토큰을 수신하고 웹 세션을 설정할 수 있다. 또한, 제2 서버는 정보를 제1 서버로 전송하도록 구성될 수 있다. 일부 실시예에서, 제2 서버는 인터넷 애플리케이션으로부터 웹 토큰의 수신에 관한 정보를 전송할 수 있다. 인터넷 애플리케이션으로부터 웹 토큰을 수신하는 것에 관한 정보는 인터넷 애플리케이션에 관한 임의의 정보, 인터넷 애플리케이션 사용자에 대한 정보, 웹 세션 액세스에 대한 정보, 본 명세서에 기술된 시스템의 임의의 구성 요소에 관한 공간 및/또는 시간 정보를 포함할 수 있지만 이에 제한되는 것은 아니다. 제1 서버는 제2 서버로부터 웹 토큰의 수신에 관한 정보를 수신할 수 있다. 일부 실시예에서, 제1 서버는 웹 토큰의 수신에 관한 정보를 포함하지만 이에 제한되지 않는 제1 장치에 정보를 전송하도록 구성될 수 있다.
민감한 데이터를 보호하기 위한 키 생성(Generating Keys to Protect Sensitive Data)
본 명세서의 임의의 부분에 나타나는 임의의 방법, 시스템, 구성요소 및/또는 실시예는 본 개시의 임의의 다른 부분에 나타나는 임의의 다른 방법, 시스템, 구성요소 및/또는 실시예와 결합될 수 있음을 이해할 것이다. 생체 인식(Biometrics)은 코드, 정보, 데이터 등으로 여기에 설명된 모든 실시예에 통합될 수 있다.
일부 실시예에서, 민감한 데이터 전송의 내용을 보호하기 위해 키(예를 들어, 개인 키)가 생성될 수 있다. 예를 들어, 제1 데이터가 생체 데이터, 민감한 통신 등과 같은 민감한 정보를 포함하는 경우 제어된 손상을 사용하여 키를 생성하면 민감한 데이터(예를 들어, 제1 데이터)가 3자 가로채기(third-party interception)로부터 보호될 수 있는 우아한 수단을 제공할 수 있다. 민감한 데이터(예를 들어, 제1 데이터)는 예를 들어 제한 없이 생체 데이터, 문서, 문자 메시지, 이메일 메시지 또는 기타 유형의 민감한 통신과 같은 임의의 수의 데이터 유형을 포함할 수 있다.
일부 실시예에 따르면, 제어된 손상을 사용하여 키(예를 들어, 개인 키)를 생성하는 시스템 및 방법은 하나 이상의 컴퓨팅 장치(예를 들어, 제1 컴퓨팅 장치, 제2 컴퓨팅 장치, 제3 컴퓨팅 장치 등) 및 하나 이상의 서버를 포함할 수 있다. 하나 이상의 서버는 보안 엔진, 액션 엔진 및 하나 이상의 라이브러리를 포함할 수 있다. 일부 실시예에서, 하나 이상의 서버는 모바일 플랫폼 및 하나 이상의 라이브러리를 포함할 수 있는 하나 이상의 컴퓨팅 장치(예를 들어, 제1 컴퓨팅 장치, 제2 컴퓨팅 장치 등)를 포함하는 클라이언트 계층을 더 포함할 수 있다. 컴퓨팅 장치(예를 들어, 제1 컴퓨팅 장치, 제2 컴퓨팅 장치 등)는 임의의 서버 또는 임의의 IoT 장치, 즉 네트워크에 연결할 수 있고 데이터를 전송할 수 있는 임의의 장치일 수 있으며, 여기에는 휴대폰, 개인 휴대 단말기, 버튼, 홈 보안 시스템, 가전 제품 등이 포함되지만 이에 제한되지 않는다.
도 30은 제어된 손상(controlled corruption)(3000)을 사용하여 키를 생성하기 위한 특정 실시예에 따른 예시적인 시스템이다. 시스템은 제1 컴퓨팅 장치(3012)를 포함하는 웹 계층(web layer)(3010), 하나 이상의 서버(3022)를 포함하는 관리 계층(administrative layer)(3020) 및 하나 이상의 서버(3022)를 포함하는 클라이언트 계층(client layer)(3030)을 포함할 수 있다. 시스템(3000)은 점선으로 도시된 하나 이상의 통신 채널(예를 들어, 인터넷 게이트웨이 및 하나 이상의 가상 사설망(VPN) 터널)을 추가로 포함할 수 있다.
웹 계층(3010)은 관리 모바일 라이브러리(administrative web library)(AML) 및 파트너 모바일 라이브러리(partner web library)(PML)를 포함하는 관리 모바일 플랫폼(administrative web platform)(AMP)(3014) 및 관리 웹 라이브러리(administrative mobile library)(AWL) 및 파트너 웹 라이브러리(partner mobile library)(PWL)를 포함하는 관리 모바일 플랫폼(administrative mobile platform)(AMP)를 더 포함할 수 있다. 여기에서 사용된 바와 같이, 임의의 라이브러리는 제한 없이 임의의 애플리케이션, 애플리케이션 데이터베이스, 데이터베이스 및/또는 데이터를 의미할 수 있다.
관리 계층(3020)은 관리 보안 엔진(administrative security engine)(ASE)(3024), 액션 엔진(action engine)(AE)(3026), 관리 파트너 라이브러리(administrative partner library)(APL)(3028) 및 관리 계층과 연관된 하나 이상의 노드(node)(3029)를 더 포함할 수 있다. 하나 이상의 노드(3029)는 하나 이상의 데이터베이스, 하나 이상의 사용자 장치(user device)(예를 들어, 컴퓨팅 장치), 또는 하나 이상의 데이터베이스와 하나 이상의 사용자 장치(예를 들어, 컴퓨팅 장치)의 임의의 조합을 포함할 수 있다.
클라이언트 계층(3030)은 관리 클라이언트 라이브러리(administrative client library)(ACL)(3034) 및 클라이언트 서버 애플리케이션(client server application)(CSA)(3036)을 추가로 포함할 수 있다. 일부 실시예에서, 클라이언트 계층(3030) 및 관리 계층(3020)은 VPN 터널을 사용하여 서로 통신할 수 있다.
도 31은, 특정 실시예에 따라, 제어된 손상(controlled corruption)(3100)을 사용하여 키를 생성하는 예시적인 서버측(예를 들어, 관리 계층(3020)에 포함됨) 방법의 예시이고, 이는 하나 이상의 서버(3140)에 제1 컴퓨팅 장치를 등록하는 단계; 하나 이상의 서버에서, 제1 컴퓨팅 장치(3142)로부터의 제1 데이터와 연관된 제1 프라이버시 코드 및 하나 이상의 파라미터를 수신하는 단계; 하나 이상의 서버에서, 청크 카운트 및 공개 키를 생성하는 단계(3143); 청크 카운트 및 공개 키를 제1 컴퓨팅 장치에 전송하는 단계(3144); 하나 이상의 서버에서, 제1 프라이버시 키의 수량 및 제2 프라이버시 코드(3146)를 수신하는 단계; 및 하나 이상의 서버에서, 개인 키(3148)에 기초하여 제2 데이터를 생성하는 단계를 포함할 수 있다.
컴퓨팅 장치(예를 들어, 제1 컴퓨팅 장치)(3140)를 등록하는 것은 컴퓨팅 장치에 하나 이상의 애플리케이션을 설치하는 단계를 포함할 수 있고, 여기서 하나 이상의 애플리케이션은 모바일 플랫폼 및 하나 이상의 라이브러리를 포함할 수 있다. 일부 실시예에서, 컴퓨팅 장치 및 하나 이상의 애플리케이션은 개인 키를 생성하기 위한 시스템의 웹 계층을 포함할 수 있다. 컴퓨팅 장치는 관리 계층을 포함할 수 있는 하나 이상의 서버와 통신(예를 들어, 네트워크 통신, 인터넷 통신, 가상 사설망(VPN 통신))할 수 있다. 서로 다른 통신 방법에 대한 자세한 설명은 본 명세서의 이전 섹션에서 찾을 수 있다. 일부 실시예에 따르면, 웹 계층에 포함된 컴퓨팅 장치의 등록은 관리 계층(예를 들어, ASE), 클라이언트 계층(예를 들어, CSA) 및 웹 계층(예를 들어, 컴퓨팅 장치에 포함된 AML 및/또는 AWL) 사이의 정보의 통신 및 전송을 초기화 하는 단계를 포함할 수 있다.
관리 계층에 포함된 하나 이상의 서버는 컴퓨팅 장치(예를 들어, 제1 컴퓨팅 장치)로부터 제1 데이터(3142)와 연관된 제1 개인 코드 및 하나 이상의 파라미터를 수신할 수 있다. 전술한 바와 같이, 제1 데이터는 사용자가 전송 시 보호하기를 원하는 임의의 데이터(예를 들어, 생체 데이터, 문서, 메시지 등)를 포함할 수 있다. 제1 데이터와 연관된 하나 이상의 파라미터는 장치 식별자, 카메라 식별자, 파일 크기, 데이터 형식, 애플리케이션 식별자, 사용자 식별자, 개인 식별자, 메타데이터 등을 포함하되 이에 제한되지 않는 제1 데이터에 대한 임의의 정보를 포함할 수 있다. 일부 실시예에서, 제1 데이터와 연관된 하나 이상의 파라미터는 파일 크기, 비대칭 암호화 키 쌍(제1 데이터의 출처를 식별할 수 있음)과 연관된 공개 키, 및 제1 데이터의 조작된 버전을 포함할 수 있다(예를 들어, 데이터의 압축 또는 "축약(zipped)" 버전). 일부 실시예에서, 제1 데이터와 연관된 파라미터는 압축된(예를 들어, 축약된) 제1 데이터의 베이스64 버전을 포함할 수 있다. 개인 코드는 컴퓨팅 장치의 사용자 또는 제1 데이터의 출처와 연관된 일련의 영숫자 및/또는 기호 문자를 포함할 수 있다. 특정 실시예에서, 개인 코드는 컴퓨팅 장치의 사용자에 의해 선택된 개인별 식별 번호(예를 들어, PIN)를 포함하는 제1 사용자 입력이다.
개인 코드는 사용자 입력, 예를 들어 사용자 입력의 암호화된 버전(encrypted version), 해시된 버전(hashed version), 잘린 버전(truncated version) 또는 재배치된 버전(rearranged version)에 기초할 수 있다. 일부 실시예에서, 개인 코드는 시스템의 구성요소(예를 들어, 서버, 제1 컴퓨팅 장치 등)에 의해 자동으로 생성될 수 있다. 일부 실시예에서, 개인 코드는 사용자의 디지털 풋프린트를 포함할 수 있고 및/또는 이에 기초할 수 있다. 이러한 실시예에서, 사용자의 디지털 풋프린트는 브라우징 히스토리, 브라우징 시간/기간/빈도, 사용 습관, 애플리케이션 사용, 구매 습관, 지리적 위치 데이터 등을 포함하지만 이에 제한되지 않는 사용자의 디지털 습관에 대한 정보를 포함할 수 있다.
관리 계층에 포함된 하나 이상의 서버는 APL(3143)과 연관된 청크 카운트, 청크 이름 및 공개 키를 생성할 수 있다. 청크 카운트 및 청크 이름은 제1 데이터와 연관된 수신된 파라미터에 적어도 부분적으로 기초할 수 있다. 일부 실시예에 따르면, 청크 카운트는 개인 키를 생성하는 다운스트림 프로세스를 알리는 정수일 수 있다. 청크 이름은 다운스트림 프로세스에서 생성된 하나 이상의 개인 키와 연관될 수 있는 영숫자 및/또는 기호 식별자일 수 있다. 일부 실시예에서, 청크 카운트는 제1 데이터와 연관된 파라미터, 예를 들어, 제1 데이터의 크기, 압축된 제1 데이터의 크기, 또는 베이스64 파일로 변환된 압축된 제1 데이터의 크기 중 하나 이상에 기초하여 생성된다. 청크 이름은 청크 카운트를 기반으로 생성될 수 있다. 예를 들어, 청크 카운트가 3인 정수인 경우, 3개의 청크 이름이 생성되며 각각은 다운스트림 개인 키와 연결되도록 설계된다. 또 다른 예로, 생성된 청크 카운트가 7인 경우 청크 이름도 7개 생성된다. 다운스트림 단계에서 7개의 개인 키가 생성되고 7개의 개인 키 각각에 청크 이름 중 하나가 할당된다. 공개 키는 관리 계층에 포함된 APL과 연관된 비대칭 암호화 키 쌍과 연관될 수 있다. 청크 카운트, 청크 이름 및 공개 키는 관리 계층에 포함된 하나 이상의 서버에서 웹 계층에 포함된 컴퓨팅 장치로 전송될 수 있다.
일부 실시예에 따르면, 일정량의 개인 키(제1 데이터, 청크 카운트, 청크 이름 및 개인 코드 중 하나 이상에 기초함)는 개인 키 생성을 위한 시스템의 웹 계층에 포함된 컴퓨팅 장치에 의해 생성될 수 있습니다. 도 32는 본 실시예에 따른 개인 키(3200)를 생성하는 방법의 컴퓨팅 장치측 도면이다.
시스템의 웹 계층에 포함된 컴퓨팅 장치(3212)(예를 들어, 제1 컴퓨팅 장치)는 시스템의 관리 계층에 포함된 하나 이상의 서버로부터 청크 카운트(3260), 청크 이름(3261) 및 공개 키(3262)를 수신할 수 있다. 전술한 바와 같이, 제1 데이터(3263)는 사용자가 안전하다고 생각할 수 있고 전송 중에 보호하고자 하는 임의의 데이터를 포함할 수 있다. 일부 실시예에서, 컴퓨팅 장치(3212)는 압축된 제1 데이터(3264)를 생성하기 위해 제1 데이터(3263)를 압축(예를 들어, 압축)할 수 있다. 컴퓨팅 장치(3212)는 압축된 제1 데이터(3265)의 베이스64를 생성할 수 있고, 여기서 압축된 제1 데이터(3265)의 베이스64는 압축된 제1 데이터(3264)의 베이스64 버전을 포함한다. 제어된 손상(예를 들어, 제어된 파일 손상)을 사용하여 컴퓨팅 장치(3212)는 압축된 제1 데이터(3265)의 베이스64에 손상자(예를 들어, 제1 손상자(3266))를 추가함으로써 제1 프리 키(3267)를 생성할 수 있다. 전술한 바와 같이, 손상자(3266)는 일련의 영숫자 및/또는 기호 문자를 포함할 수 있다. 특정 실시예에서, 제1 손상자(3266)는 공식에 기초할 수 있다. 예를 들어, 제1 손상자(3266)는 압축된 제1 데이터(3265)의 베이스64에 포함된 처음 30개 문자를 합산함으로써 컴퓨팅 장치(3212)에 의해 생성될 수 있다. 다른 특정 실시예에서, 제1 손상자(3266)는 압축된 제1 데이터(3265)의 베이스64에 포함된 제1 및 제3 문자를 합산하고, 압축된 제1 데이터(3265)의 베이스64에 포함된 제2 및 제4 문자를 합산하고, 압축된 제1데이터(3265) 등의 베이스64에 포함된 제3 및 제5 문자를 합산하고, 제1 손상자(3266)를 포함할 수 있는 일련의 숫자 문자를 생성하기 위해 결과를 연결함으로써 생성될 수 있다. 임의의 수의 공식이 손상자(예를 들어, 제1 손상자(3266), 제2 손상자(3268), 제3 손상자(3273) 등)를 생성하는 데 사용될 수 있으며 가능성은 위의 예에 제한되지 않는다.
컴퓨팅 장치(3212)는 제1 프리 키(3267)에 손상자(예를 들어, 제2 손상자(3268))를 추가함으로써 제2 프리 키(3269)를 생성할 수 있다. 특정 실시예에서, 손상자(예를 들어, 제2 손상자(3268))는 사용자에 의해 입력된 개인 코드에 포함된 하나 이상의 영숫자 및/또는 기호 문자를 포함할 수 있다. 일부 실시예에서, 손상자(예를 들어, 제2 손상자(3268))는 사용자에 의해 입력된 조작된(예를 들어, 해시, 암호화, 재배치, 절단 등) 개인 코드에 포함된 하나 이상의 영숫자 및/또는 기호 문자를 포함할 수 있다. 특정 실시예에서, 제2 손상자(3268)는 공식에 기초할 수 있다.
컴퓨팅 장치(3212)는 솔트(3270) 및 초기화 벡터(initializing vector)(IV)(3271)를 생성할 수 있다. 솔트(3270) 및 IV(3271)에 대한 상세한 논의는 본 명세서의 이전 섹션에서 찾을 수 있다. 솔트(3270) 및 IV(3271)는 제2 프리 키(3269)에 추가되어 제3 프리 키(3272)를 생성할 수 있다. 이러한 추가(예를 들어, 솔트(3270) 및 IV(3271))는 개인 키를 생성할 때 항상 존재하는 것은 아니며, 일부 실시예에 따르면, 염(3270), IV(3271) 또는 제3 손상자(3273)의 추가 없이 청크 카운트에 기초하여 청크(3274)를 생성하기 위해 제2 프리 키(3269)가 사용될 수 있다는 것을 이해해야 한다.
제3 손상자(3273)는 제3 프리 키(3272)에 추가될 수 있다. 제3 손상자(3273)는 손상자(예를 들어, 제1 손상자(3266), 제2 손상자(3268))에 대해 위에서 설명된 임의의 방식으로 컴퓨팅 장치(3212)에 의해 생성될 수 있다. 특정 실시예에서, 제3 손상자(3273)는 공식에 기초할 수 있다. 일부 실시예에서, 제3 손상자(3273)는 제3 프리 키(3272)에 추가되고 결과적인 문자열은 관리 계층으로부터 수신된 청크 카운트(3260)에 기초하여 청크(3274)로 분할된다. 상술한 바와 같이 청크 카운트(3260)는 키 생성 방법(3200)에서 생성되는 청크(3274)의 개수를 지시하는 정수이다. 예를 들어, 청크 카운트(3260)가 3인 경우, 컴퓨팅 장치(3212)는 프리 키(예를 들어, 제3 프리 키(3272), 제2 프리 키(3269), 제3 손상자(3273)를 갖는 제3 프리 키(3272))를 3개의 청크로 분할할 것이다.
일부 실시예에서, 제3 프리 키(3272)는 청크(3274)로 분할될 수 있으며, 이는 제3 손상자(3273)를 사용하지 않고 개인 키(3275)를 생성하는 데 사용될 수 있다. 일부 실시예에서, 제3 프리 키(3272)는 청크(3274)로 분할될 수 있고 하나 이상의 제3 손상자(3273)(또는 제1 손상자, 제2 손상자 등)가 청크(3274)에 추가되어 개인 키를 생성할 수 있다.
청크(3274)는 개인 키(3275)를 생성하기 위해 청크 이름(chunk name)(3261)에 따라 명명될 수 있다. 일부 실시예에 따르면, 청크 이름(3261)은 관리 계층에서 생성되고 웹 계층에 포함된 컴퓨팅 장치(3212)에서 수신될 수 있다. 전술한 바와 같이 청크 이름(3261)은 제1 데이터(예를 들어, 초기 패키지)와 연관된 파라미터의 일부로서 수신된 정보에 적어도 부분적으로 기초할 수 있다. 구체적인 실시예에서 수신된 청크 이름(3261)의 수는 청크 카운트(3260)와 동일하다. 예를 들어, 청크 카운트(3260)가 3인 경우, 3개의 청크 이름(3261)이 관리 계층에서 생성되고 컴퓨팅 장치(3212)에서 수신될 것이다. 따라서, 이 실시예에서, 3개의 청크(3274)가 생성되고(청크 카운트(3260)에 기초하여) 각각의 결과 청크(3274)는 연관된 청크 이름(3261)을 가질 것이다. 일부 실시예에서, 청크(3274)는 청크 이름(3261)을 갖는 청크(3274)를 포함하는 개인 키(3275)를 생성하기 위해 단일 청크 이름(3261)과 연관된다. 이들 실시예에 따르면, 청크 이름(3261)은 서버 측에서 제1 데이터(3263)(예를 들어, 제2 데이터)를 재생성하기 위해 개인 키(3275)를 구성하는 다운스트림 프로세스(downstream process)에서 유용하다.
위의 내용을 설명하기 위해 다음 예제가 제공된다. 제3 프리 키(3272)가 문자열 '123456789'를 포함하고 제3 손상자(3273)가 문자열 '543'을 포함하는 경우, 제어된 손상으로부터 결과 문자열은 문자열 '123455436789'를 포함할 수 있다. 청크 카운트(3260)가 3이고 청크 이름이 '하나(One)', '둘(Two)' 및 '셋(Three)'인 경우 결과로 생성되는 개인 키는 다음을 포함할 수 있다:
Figure pct00001
일부 실시예에 따르면, 청크 이름(3261)은 초기 문자열을 재생성하기 위해 개인 키(3275)의 다운스트림 순서 지정을 용이하게 할 수 있다. 여기서, 청크 이름(3261)(예를 들어, '하나(One)', '둘(Two)', '셋(Three)')에 따라 개인 키(3275)를 정렬함으로써, 초기 문자열 '123455436789'가 서버(예를 들어, 관리 계층) 측에서 재생성될 수 있다.
웹 계층에 포함된 컴퓨팅 장치(3212)는 개인 키(3275)의 수량(청크 카운트(3260)과 동일)을 관리 계층에 포함된 하나 이상의 서버로 전송할 수 있다. 컴퓨팅 장치(3212)는 제1 개인 코드(3276)에 기초하여 제2 개인 코드(3277)를 생성할 수 있다. 일부 실시예에 따른 제2 개인 코드(3277)는 영숫자 및/또는 기호 문자열일 수 있다. 제2 개인 코드(3277)는 조작된(예를 들어, 압축, 해시, 암호화, 재배치, 절단 등) 제1 개인 코드(3276)일 수 있다. 구체적인 실시예에 따르면, 제2 개인 코드(3277)는 해싱된 제1 개인 코드(3276)이다. 개인 코드(예를 들어, 제1 개인 코드 3276, 제2 개인 코드 3277)는 시스템의 웹 계층에 포함된 컴퓨팅 장치(3212)로부터 시스템의 관리 계층에 포함된 하나 이상의 서버로 전송될 수 있다.
이제 다시 도 31을 참조하면, 제어된 손상을 사용하여 키를 생성하는 방법은 컴퓨팅 장치(3146)로부터 개인 키 및 제2 개인 코드의 수량을 수신하는 단계, 및 개인 키(3148)에 기초하여 제2 데이터를 생성하는 단계를 포함할 수 있다.
도 33은 개인 키(3300)에 기초하여 제2 데이터를 생성하는 특정 실시예를 도시한다. 일부 실시예에 따르면, 제2 데이터(3382)는 제1 데이터의 재구성된 버전을 포함할 수 있다. 예를 들어, 제1 데이터는 시스템의 웹 계층에 포함된 컴퓨팅 장치에서 발생할 수 있다. 제1 데이터는 관리 계층에 포함된 하나 이상의 서버에 손상된 청크(예를 들어, 개인 키)로 전송될 수 있는 제1 데이터의 손상된 버전일 수 있는 개인 키(3375)를 생성하는 데 사용될 수 있다. 개인 키(3375)는 연결될 수 있고 손상자(예를 들어, 제1 손상자(3366), 제2 손상자(3368), 제3 손상자(3373) 등)는 결과 제2 데이터(3382)가 원래의 제1 데이터의 재구성된 버전이 되도록 체계적인 방식으로 제거될 수 있다.
시스템의 관리 계층에 포함된 하나 이상의 서버(3322)는 시스템의 웹 계층에 포함된 컴퓨팅 장치로부터 개인 키(3375)의 수량(예를 들어, 하나 이상, 2개 이상, 3개 이상)을 수신할 수 있다. 하나 이상의 서버(3322)는 컴퓨팅 장치로부터 제2 개인 코드(3377)를 수신할 수 있다. 일부 실시예에 따르면, 하나 이상의 서버(3322)는 연결된 키(3376)를 생성하기 위해 개인 키(3375)의 수량(예를 들어, 하나 이상, 2개 이상, 셋 이상)을 연결할 수 있다. 일부 실시예에 따르면, 위에서 논의된 바와 같이, 청크 이름(3361)은 연결 프로세스를 안내할 수 있고, 개인 키(3375)가 결합되어야 하는 순서를 결정할 수 있거나, 연결된 키(3376)를 생성하기 위해 개인 키(3375)의 배치를 지시할 수 있다.
하나 이상의 서버(3322)는 제1 클린 데이터(3377)를 생성하기 위해 제3 손상자(3373)를 제거할 수 있고, 제2 클린 데이터(3378)를 생성하기 위해 솔트(3370) 및 IV(3371)를 제거할 수 있고, 제3 클린 데이터(3379)를 생성하기 위해 제2 손상자(3368)를 제거할 수 있고, 및 압축된 제2 데이터(3380)의 base64 파일을 생성하기 위해 제1 손상자(3366)를 제거할 수 있다. 일부 실시예에 따르면, 손상자의 제거는 제거될 필요가 있는 손상자(예를 들어, 제1 손상자(3366), 제2 손상자(3368), 제3 손상자(3373) 등)의 인식을 요구할 수 있다. 이러한 실시예에서, 하나 이상의 서버는 서로 다른 인식 도구를 사용하여 손상자를 인식할 수 있다. 예를 들어, 개인 코드(또는 절단된 개인 코드와 같은 개인 코드의 파생물)를 사용하여 컴퓨팅 장치에서 손상자가 생성된 경우, 하나 이상의 서버가 수신된 제2 개인 코드(3377)로부터 개인 코드를 생성할 수 있다. 특정 실시예에서, 제2 개인 코드(3377)는 하나 이상의 손상자(예를 들어, 제1 손상자(3366), 제2 손상자(3368), 제3 손상자(3373) 등)를 제거하는 데 사용된다. 일부 실시예에서, 하나 이상의 서버(3322)는 손상자를 생성하기 위해 공식을 사용하고(예를 들어, 컴퓨팅 장치에서 손상자를 생성하는 데 사용된 것과 동일한 공식) 클린 데이터에 내장된 손상자를 인식하기 위해 새로 생성된 손상자를 사용하고(예를 들어, 제1 클린 데이터(3377), 제2 클린 데이터(3378), 제3 클린 데이터(3379) 등) 그리고 그것을 삭제한다. 중요하게도, 하나 이상의 서버(3322)의 특성은 연결된 키(3376) 또는 클린 데이터(예를 들어, 제1 클린 데이터(3377), 제2 클린 데이터(3378), 제3 클린 데이터(3379) 등)에서 손상자(예를 들어, 제1 손상자(3366), 제2 손상자(3368), 제3 손상자(3373) 등)를 인식하는 능력이고 압축된 제2 데이터(3380)의 베이스64를 생성하기 위해 그것들을 체계적으로 제거한다.
일부 실시예에서, 연결된 키(3376)는 해독되어 제1 정리 데이터(3377)를 생성할 수 있다.
압축된 제2 데이터(3380)의 베이스64 파일은 압축된 제2 데이터(3381)로 변환(예를 들어, 디코딩)될 수 있다. 일부 실시예에 따르면, 압축된 제2 데이터(3381)는 제2 데이터(3382)로 변환(예를 들어, 축약해제(unzipped))될 수 있다. 전술한 바와 같이, 제2 데이터(3382)는 제1 데이터의 재구성된 버전일 수 있다. 예를 들어, 제1 데이터가 생체 스캔에 대한 정보인 경우, 제2 데이터는 생체 스캔에 대한 원래 정보의 재구성된 버전이 될 것이다. 제1 데이터가 민감한 이메일, 텍스트 또는 기타 커뮤니케이션인 경우, 제2 데이터는 민감한 이메일, 텍스트 또는 기타 커뮤니케이션의 재구성된 버전이다. 이러한 방식으로, 관리 계층에 포함된 하나 이상의 서버에 의해 수행되는 임의의 방법 또는 동작이 제2 컴퓨팅 장치에 포함된 프로세서에 의해 수행될 수도 있음을 당업자는 이해할 것이다. 예를 들어, 제1 데이터가 제1 컴퓨팅 장치를 포함하는 모바일 장치에서 발생하는 텍스트 메시지인 경우, 제2 데이터(예를 들어, 재구성된 텍스트 메시지)는 제2 모바일 장치(예를 들어, 제2 컴퓨팅 장치)에 포함된 프로세서에서 생성될 수 있다.
개인 키를 사용하여 신원 인증(Using Privacy Keys to Authenticate Identity)
일부 실시예에 따르면, 개인 키는 제1 컴퓨팅 장치(예를 들어, 모바일 컴퓨팅 장치)로부터 신원을 인증하는 데 사용될 수 있다. 일부 실시예에서, 제1 데이터는 생체 스캔, 로그인 비밀번호(login password) 또는 코드, 또는 사용자 입력에 기초할 수 있는 임의의 다른 제1 데이터를 포함할 수 있다. 제어된 손상을 사용하여 개인 키를 생성하고 저장된 개인 키를 배포, 저장 및/또는 검색하여 신원을 인증하는 방법은 등록 모듈 및 로그인 모듈(Sign In Module)을 포함할 수 있다.
등록 모듈(Enrollment Module). 등록 모듈은 제어된 손상을 사용하여 키(예를 들어, 개인 키)를 생성하고 나중에 사용할 수 있도록 키를 배포 및 저장하는 방법을 포함할 수 있다. 본 명세서에 개시된 방법 및 시스템을 사용하여, 제어된 손상을 사용하여 제1 데이터로부터 개인 키를 생성하고, 서버로 전송하고, 서버와 연관된 다수의 노드에 저장할 수 있다. 이후에 사용자가 로그인 모듈의 제1 컴퓨팅 장치에 자신의 사용자 입력(예를 들어, 생체 스캔, 비밀번호, 제1 데이터, 제3 데이터 등)을 입력할 때, 제어된 손상에 의해 생성되고 해당 모듈의 사용자 입력에 기초하는 개인 키는 등록 모듈의 제1 데이터를 사용하여 생성된 개인 키와 비교될 수 있으며 사용자의 신원이 인증될 수 있다. 제어된 손상을 사용하여 개인 키를 생성함으로써 생체 데이터와 같은 사용자 입력을 보호할 수 있다.
도 34는, 특정 실시예에 따라, 제어된 손상(controlled corruption)(3400)을 사용하여 키를 생성하고 분배하는 예시적인 서버측(예를 들어, 관리 계층(3020)에 포함됨) 방법의 예시이고, 이는 하나 이상의 서버(3440)에 제1 컴퓨팅 장치를 등록하는 단계; 하나 이상의 서버에서, 제1 컴퓨팅 장치(3442)로부터의 제1 데이터와 연관된 제1 프라이버시 코드 및 하나 이상의 파라미터를 수신하는 단계; 하나 이상의 서버에서, 청크 카운트 및 공개 키를 생성하는 단계(3443); 청크 카운트 및 공개 키를 제1 컴퓨팅 장치에 전송하는 단계(3444); 하나 이상의 서버에서, 제1 프라이버시 키의 수량 및 제2 프라이버시 코드(3446)를 수신하는 단계; 및 하나 이상의 서버에서, 개인 키(3448)에 기초하여 제2 데이터를 생성하는 단계를 포함할 수 있다. 일부 실시예에 따르면, 개인 키는 나중에 사용하기 위해, 예를 들어 신원을 인증하기 위해 하나 이상의 서버와 연관된 하나 이상의 노드에 저장될 수 있다. 이들 실시예에서, 키(3400)를 생성 및 분배하는 방법은 결과(3450)를 생성하는 단계, 수신기 식별자 및 개인 코드 식별자(3452)를 생성하는 단계, 및 개인 키, 수신기 식별자 및 개인 코드 식별자를 하나 이상의 서버와 연관된 하나 이상의 노드에 배포하는 단계(3454)를 더 포함할 수 있다.
인증 등의 용도로 개인 키를 생성할 때, 하나 이상의 개인 키를 생성하는 방법은 일반적으로 도 31, 32 및 33에 예시되고 위에서 논의된 것과 동일하다. 이러한 방법에 더하여, 방법(3400)은 결과 생성(3450)을 포함할 수 있다. 일부 실시예에 따르면, 압축된 제2 데이터의 베이스64 파일(도 33의 3380과 같은)은 제1 데이터(예를 들어, 도 31의 3142)와 연관된 파라미터로서 수신될 수 있는 압축된 제1 데이터의 베이스64와 비교될 수 있다. 이들 실시예에서, 2개의 베이스64 파일이 비교될 수 있고 결과가 생성될 수 있다(3450). 두 개의 베이스64 파일이 동일한 경우 결과가 긍정적일 수 있다. 두 개의 베이스64 파일이 동일하지 않은 경우 결과가 부정적일 수 있다.
일부 실시예에서, 결과(3450)는 압축된 제2 데이터(3381)를 압축된 제1 데이터와 비교함으로써 생성될 수 있다. 일부 실시예에서, 결과(3450)는 제2 데이터(3382)를 제1 데이터와 비교함으로써 생성될 수 있다. 일부 실시예에서, 다수의 요소(예를 들어, 제1 및 제2 데이터, 압축된 제1 및 압축된 제2 데이터, 압축된 제1의 베이스64 및 압축된 제2 데이터의 베이스64 등)를 비교함으로써 결과가 생성될 수 있다. 반복 학습(Iterative learning)은 결과(3450)를 생성할 때 활용될 수 있다. 예를 들어, 많은 제2 데이터(3382)가 시간에 따라 생성될 수 있고 이러한 제2 데이터(3382)는 결과(3450)를 생성하기 위해 시간에 따라 서로 비교될 수 있다. 예로서 제2 데이터(3382)가 사용되지만, 임의의 요소(예를 들어, 제1 데이터, 압축 데이터, 베이스64 압축 데이터, 개인 코드 등)를 시간에 걸쳐 비교함으로써 결과(3450)가 생성될 수 있다.
일부 실시예에서, 긍정적인 결과는 관리 계층에 포함된 하나 이상의 서버가 수신기 식별자 및 개인 코드 식별자(3452)를 생성하도록 촉구할 수 있다. 긍정적인 결과는 관리 계층에 포함된 하나 이상의 서버가 컴퓨팅 장치(3446)로부터 수신된 각 개인 키의 2개 이상의 사본을 생성하도록 촉구할 수 있다. 개인 키, 수신기 식별자 및 개인 코드 식별자는 저장을 위해 하나 이상의 서버와 연관된 하나 이상의 노드로 전송될 수 있다(3454). 일부 실시예에서, 개인 키, 수신기 식별자 및 개인 코드 식별자는 전송 전에 조작될 수 있다.
저장(3454)을 위한 하나 이상의 노드에 개인 키를 배포하는 것은 원장 없는 설명이 없는 배포를 사용하여 수행될 수 있다. 이 배포 방법은 각각의 개인 키에 대한 고유한 부분 설명(piece description)을 생성하기 위해 수신기 식별자, 개인 코드 및/또는 다른 사용자 특정 코드(예를 들어, 생체 인식 등)와 함께 발신자 식별자를 사용하여 단계를 포함할 수 있다. 일부 실시예에 따르면 발신자 식별자는 사용자, 트랜잭션, 애플리케이션 및/또는 컴퓨팅 장치의 임의의 조합을 식별하는 데 사용되는 일련의 영숫자 및/또는 기호 문자일 수 있다. 이러한 실시예에서, 시스템은 배포된 각각의 개인 키에 대한 고유한 부분 설명을 생성하기 위해 개인 키, 개인 코드, 수신기 식별자 및 발신자 식별자 중 하나 이상을 조작할 수 있다. 일부 실시예에 따르면, 부분 설명(Piece description)은 "필요에 따라" 생성될 수 있어, 원장(ledger) 또는 개인 키 목적지(privacy keys destination)(예를 들어, 노드)의 다른 기록을 서버에 보관할 필요가 없다.
해커/바이러스가 방어 장치(예를 들어, 방화벽 및 기타 보안 기능)를 뚫고 시스템에 진입할 수 있더라도 중앙 위치 또는 중앙 원장에 엔드포인트 어드레스(endpoint address)(데이터가 배포되는 위치)가 저장되어 있지 않으면 해커는 노드가 어디에 있는지 또는 어떤 노드에 특정 데이터가 있는지 알 수 없다.
노드가 손상되더라도 이러한 유형의 배포는 해커가 데이터를 형성하기 위해 함께 가는 부분을 식별할 수 없도록 한다. 이것은 또한 랜섬웨어(ransomware)에 대한 보호를 제공하고 높은 내결함성(fault tolerance)을 가지고 있다. 또한, 조작(예를 들어, 암호화, 해싱, 손상, 청킹, 연결 등) 프로세스는 노드에서 조각을 획득하더라도 승인된 사용자 동의 없이는 원래 형태로 결합할 수 없으므로 또 다른 수준의 보안을 보장한다.
개인 키, 수신기 식별자 및 개인 코드 식별자는 로그인 모듈의 신원 인증(identity authentication)을 포함하여 나중에 사용할 수 있도록 저장될 수 있다.
로그인 모듈(Sign In Module). 사용자(예를 들어, 웹 계층에 포함된 컴퓨팅 장치의 시스템 사용자)가 로그인 모듈에서 신원을 인증하기 위해 저장된 개인 키를 사용하고자 할 때, 사용자는 제1 사용자 입력(예를 들어, 개인 코드) 및 제2 사용자 입력(예를 들어, 생체 스캔, 제3 데이터)을 입력한다. 개인 키를 사용하여 신원을 인증하는 방법이 도 35에 설명되어 있다.
제3 데이터(3590)에 기반한 개인 키는 위에서 설명한 것과 동일한 방식으로 그리고 도 31 및 도 32에 도시된 바와 같이 생성된다. 결과적인 개인 키(3590)는 시스템의 관리 계층에 포함된 하나 이상의 서버로 전송된다. 개인 키, 개인 코드, 제2 개인 코드 및 제1 데이터와 연관된 파라미터 중 하나 이상에 포함된 정보를 사용하여, 하나 이상의 서버는 하나 이상의 서버와 연관된 하나 이상의 노드로부터 저장된 개인 키(3591)를 찾고 검색한다. 일부 실시예에서, 검색은 수신기 식별자 및/또는 개인 코드 식별자에 적어도 부분적으로 기초한다.
제3 데이터(3590)에 기초한 각각의 개인 키(예를 들어, 로그인 모듈 동안 컴퓨팅 장치로부터 수신된 개인 키)는 도 33에 도시된 것과 동일한 방식으로 제4 데이터를 생성하는 데 사용된다. 일부 실시예에 따르면, 제4 데이터는 로그인 데이터(3592)일 수 있다. 하나 이상의 노드로부터 검색된 각각의 저장된 개인 키(3591)는 도 33에 도시된 것과 동일한 방식으로 제5 데이터(3593)를 생성하는 데 사용된다. 일부 실시예에 따르면, 제5 데이터는 등록 데이터(enrollment data)(3593)일 수 있다. 제4 데이터(예를 들어, 로그인 데이터(3592))는 결과(3594)를 생성하기 위해 제5 데이터(예를 들어, 등록 데이터(3593))와 비교될 수 있다. 일부 실시예에 따르면, 제4 데이터(3592)가 제5 데이터(3593)와 동일한 경우, 결과(3594)는 긍정적이다. 데이터(예를 들어, 제1 데이터, 제2 데이터, 제3 데이터, 제4 데이터(3952), 제5 데이터(3593))가 생체 스캔, 개인 코드, 로그인 비밀번호 등 중 어느 하나에 관한 정보인 실시예에서, 그러면, 제4 데이터(3952)(예를 들어, 로그인 시 입력된 데이터)가 제5 데이터(예를 들어, 등록 시 입력되어 개인 키로 저장된 데이터)와 동일하면 신원을 확인할 수 있다. 긍정적인 결과는 사용자가 하나 이상의 보호된 시스템에 액세스하도록 허용할 수 있다.
보안 데이터 저장을 위한 개인 키 사용(Using Privacy Keys for Secure Data Storage)
일부 실시예에서, 개인 키는 안전한 데이터 저장을 위해 사용될 수 있다. 예를 들어, 일부 실시예에서, 제1 데이터는 민감한 문서를 포함할 수 있다. 제1 데이터는 나중에 저장될 수 있는 개인 키를 생성하기 위해 전술한 방식으로 사용될 수 있다. 이러한 실시예에서, 보안 데이터(예를 들어, 제1 데이터, 민감한 문서)를 편집하는 것이 필요할 수 있다. 개인 키는 이들 실시예에서 검색될 수 있고, 제2 데이터는 전술한 방식으로 생성될 수 있다. 시스템은 편집을 위해 랜딩 존(landing zone)에서 데이터(예를 들어, 제1 데이터, 제2 데이터)의 임시 저장을 허용한다. 일부 실시예에서, 랜딩 존은 하나 이상의 서버, 임시 데이터베이스, 제1 컴퓨팅 장치, 제2 컴퓨팅 장치 또는 애플리케이션 중 임의의 하나 이상에 포함될 수 있다. 일부 실시예에서 랜딩 존은 구글 독스(Google Docs), 마이크로소프트 워드(Microsoft Word) 또는 기타 애플리케이션과 같은 외부 애플리케이션을 포함할 수 있다. 그런 다음 편집된 데이터는 나중에 사용하기 위해 저장될 수 있는 새로운 개인 키 세트를 생성하기 위해 위에서 설명한 방식으로 사용될 수 있다.
본 명세서에 기술된 실시예의 다른 변형이 또한 본 발명의 범위를 벗어나지 않고 실행될 수 있음을 당업자는 이해할 것이다. 따라서 다른 수정이 가능하다

Claims (20)

  1. 제어된 손상을 사용하여 생성된 키를 처리하는 방법에 있어서,
    상기 방법은:
    보안 엔진 및 액션 엔진을 포함하는 하나 이상의 서버에 제1 컴퓨팅 장치를 등록하는 단계;
    상기 하나 이상의 서버에서, 제1 컴퓨팅 장치로부터 제1 데이터와 연관된 제1 개인 코드 및 하나 이상의 파라미터를 수신하는 단계 - 상기 제1 개인 코드는 상기 제1 컴퓨팅 장치에서의 제1 사용자 입력에 기초하고, 상기 제1 데이터는 상기 제1 컴퓨팅 장치에서의 제2 사용자 입력에 기초함 -;
    상기 하나 이상의 서버에서, 청크 카운트 및 공개 키를 생성하는 단계 - 상기 청크 카운트는 제1 데이터와 연관된 하나 이상의 파라미터에 기초하고, 상기 공개 키는 비대칭 암호화 키 쌍의 일부임 - 를 생성하는 단계;
    상기 청크 카운트 및 상기 공개 키를 하나 이상의 서버로부터 상기 제1 컴퓨팅 장치로 전송하는 단계;
    상기 하나 이상의 서버에서, 상기 제1 컴퓨팅 장치로부터 개인 키의 수량 및 제2 개인 코드와 연관된 데이터를 수신하는 단계 -
    상기 개인 키는 상기 제1 데이터, 상기 청크 카운트 및 하나 이상의 손상자에 기초하고,
    상기 제2 개인 키는 상기 제1 개인 코드에 기초하고, 상기 개인 키의 수량은 상기 청크 카운트와 동일함 -; 상기 하나 이상의 서버에서, 상기 개인 키에 기초하여 제2 데이터를 생성하는 단계 - 상기 제2 데이터를 생성하는 단계는:
    연결된 키를 생성하기 위해 상기 개인 키를 연결하는 단계; 및 상기 제2 데이터를 생성하기 위해 상기 연결된 키로부터 상기 하나 이상의 손상자를 제거하는 단계를 포함함 - 를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 하나 이상의 서버에서, 2개 이상의 청크 이름을 생성하는 단계; 및 상기 2개 이상의 청크 이름을 상기 제1 컴퓨팅 장치에 전송하는 단계를 더 포함하는
    방법.
  3. 제2항에 있어서,
    상기 개인 키는 또한 상기 2개 이상의 청크 이름에 기초하는
    방법.
  4. 제3항에 있어서,
    상기 연결된 키를 생성하기 위해 상기 개인 키를 연결하는 단계는 상기 2개 이상의 청크 이름에 기초하는
    방법.
  5. 제1항에 있어서,
    상기 하나 이상의 손상자는 3개의 손상자를 포함하는
    방법.
  6. 제5항에 있어서,
    상기 손상자 중 적어도 하나는 상기 제1 개인 코드에 기초하는
    방법.
  7. 제6항에 있어서,
    상기 제2 데이터를 생성하기 위해 상기 하나 이상의 손상자를 제거하는 단계는:
    제1 클린 데이터를 생성하기 위해 상기 연결된 키에서 하나 이상의 제1 손상자를 제거하는 단계;
    제2 클린 데이터를 생성하기 위해 상기 제1 클린 데이터에서 하나 이상의 제2 손상자를 제거하는 단계;
    압축 데이터의 베이스64를 생성하기 위해 상기 제2 클린 데이터로부터 하나 이상의 제3 손상자를 제거하는 단계; 및
    상기 압축 데이터를 생성하기 위해 상기 압축 제2 데이터의 베이스를 디코딩하는 단계; 및
    상기 제2 데이터를 생성하기 위해 상기 압축 데이터를 압축 해제하는 단계 - 상기 개인 코드는 상기 하나 이상의 제1 손상자, 상기 하나 이상의 제2 손상자 및 상기 하나 이상의 제3 손상자 중 적어도 하나를 제거하는 데 사용됨 - 를 포함하는
    방법.
  8. 제6항에 있어서,
    상기 제1 개인 코드는 상기 손상자 중 적어도 하나를 제거하는 데 사용되는
    방법.
  9. 제1항에 있어서,
    상기 제2 개인 코드는 상기 손상자 중 적어도 하나를 제거하는 데 사용되는
    방법.
  10. 제1항에 있어서,
    상기 제1 데이터는 표적 통신을 포함하는
    방법.
  11. 제1항에 있어서,
    상기 제2 사용자 입력은 영숫자 문자열, 생체 데이터, 비밀번호, 안구 스캔, 사진, 지문 중 적어도 하나를 포함하는
    방법.
  12. 제어된 손상을 사용하여 키를 생성하는 방법에 있어서,
    상기 방법은:
    제1 컴퓨팅 장치에서 제1 데이터와 연관된 제1 개인 코드 및 하나 이상의 파라미터를 생성하는 단계 - 상기 제1 개인 코드는 제1 사용자 입력에 기초하고 및 상기 제1 데이터는 제2 사용자 입력에 기초함 -;
    상기 제1 데이터와 연관된 상기 제1 개인 코드 및 상기 하나 이상의 파라미터를 상기 제1 컴퓨팅 장치로부터 하나 이상의 서버로 전송하는 단계;
    상기 제1 컴퓨팅 장치에서, 상기 하나 이상의 서버로부터 청크 카운트 및 공개 키를 수신하는 단계 - 상기 청크 카운트는 상기 제1 데이터와 연관된 상기 하나 이상의 파라미터에 기초하고 상기 공개 키는 비대칭 암호화 키 쌍의 일부임 -;
    상기 제1 컴퓨팅 장치에서, 압축된 제1 데이터를 생성하기 위해 상기 제1 데이터를 압축하는 단계;
    상기 제1 컴퓨팅 장치에서, 상기 압축된 제1 데이터 및 하나 이상의 제1 손상자에 기초하여 제1 프리 키를 생성하는 단계;
    상기 제1 컴퓨팅 장치에서, 상기 제1 프리 키 및 하나 이상의 제2 손상자에 기초하여 제2 프리 키를 생성하는 단계;
    상기 제1 컴퓨팅 장치에서, 상기 제2 프리 키 및 상기 청크 카운트에 기초하여 2개 이상의 청크를 생성하는 단계;
    상기 제1 컴퓨팅 장치에서 상기 2개 이상의 청크에 기초하여 2개 이상의 개인 키를 생성하는 단계; 및
    상기 2개 이상의 개인 키를 하나 이상의 서버로 전송하는 단계를 포함하는 방법.
  13. 제12항에 있어서,
    상기 제2 프리 키 및 상기 청크 카운트에 기초하여 상기 2개 이상의 청크를 생성하는 단계는:
    솔트를 사용하여 제3 프리 키를 생성하기 위해 제2 프리 키를 손상시키는 단계; 하나 이상의 제3 손상자를 사용하여 제3 프리 키를 손상시키는 단계; 및 상기 청크 카운트에 기초하여 상기 손상된 제3 프리 키를 상기 2개 이상의 청크로 분할하는 단계를 포함하는
    방법.
  14. 제12항에 있어서,
    상기 제1 컴퓨팅 장치에서 2개 이상의 청크 이름을 수신하는 단계를 더 포함하는
    방법.
  15. 제14항에 있어서,
    상기 2개 이상의 개인 키는 상기 2개 이상의 청크 이름에 추가로 기초하는
    방법.
  16. 제어된 손상을 사용하여 키를 생성하고 배포하는 방법에 있어서,
    상기 방법은:
    하나 이상의 서버에 제1 컴퓨팅 장치를 등록하는 단계;
    상기 하나 이상의 서버에서, 제1 컴퓨팅 장치로부터 제1 데이터와 연관된 제1 개인 코드 및 하나 이상의 파라미터를 수신하는 단계 - 상기 제1 개인 코드는 상기 제1 컴퓨팅 장치에서의 제1 사용자 입력에 기초하고, 상기 제1 데이터는 상기 제1 컴퓨팅 장치에서의 제2 사용자 입력에 기초함 -;
    상기 하나 이상의 서버에서, 청크 카운트 및 공개 키를 생성하는 단계 - 상기 청크 카운트는 제1 데이터와 연관된 하나 이상의 파라미터에 기초하고, 상기 공개 키는 비대칭 암호화 키 쌍의 일부임 - 를 생성하는 단계;
    상기 청크 카운트 및 상기 공개 키를 하나 이상의 서버로부터 상기 제1 컴퓨팅 장치로 전송하는 단계;
    상기 하나 이상의 서버에서, 상기 제1 컴퓨팅 장치로부터 제1 개인 키의 수량 및 제2 개인 코드와 연관된 데이터를 수신하는 단계 -
    상기 제1 개인 키는 상기 제1 데이터, 상기 청크 카운트 및 하나 이상의 손상자에 기초하고,
    상기 제2 개인 키는 상기 제1 개인 코드에 기초하고, 상기 제1 개인 키의 수량은 상기 청크 카운트와 동일함 -; 상기 하나 이상의 서버에서, 상기 제1 개인 키에 기초하여 제2 데이터를 생성하는 단계 - 상기 제2 데이터를 생성하는 단계는:
    연결된 키를 생성하기 위해 상기 개인 키를 연결하는 단계; 상기 제2 데이터를 생성하기 위해 상기 연결된 키로부터 상기 하나 이상의 손상자를 제거하는 단계를 포함함 -;
    상기 하나 이상의 서버에서, 상기 제2 데이터에 기초하여 결과를 생성하는 단계; 상기 하나 이상의 서버에서 상기 결과에 기초하여, 수신기 식별자 및 개인 코드 식별자를 생성하는 단계 - 상기 수신기 식별자는 하나 이상의 노드와 연관되고 상기 개인 코드 식별자는 상기 제2 개인 코드에 기초함 -; 및
    상기 제1 개인 키, 상기 수신기 식별자 및 상기 개인 코드 식별자를 상기 하나 이상의 노드에 배포하는 단계를 포함하는
    방법.
  17. 제16항에 있어서,
    상기 하나 이상의 서버에서, 상기 제1 컴퓨팅 장치로부터의 제3 데이터에 기초한 2개 이상의 개인 키를 수신하는 단계; 및
    로그인 데이터를 생성하는 단계 - 상기 로그인 데이터는 상기 제3 데이터에 기초한 상기 2개 이상의 개인 키에 기초함 - 를 더 포함하는
    방법.
  18. 제17항에 있어서,
    상기 수신기 식별자 및 상기 개인 코드 식별자 중 적어도 하나에 기초하여, 상기 하나 이상의 노드에 저장된 상기 개인 키를 검색하는 단계; 및
    등록 데이터를 생성하는 단계 - 상기 등록 데이터는 상기 하나 이상의 노드로부터 검색된 상기 개인 키에 기초함 - 를 더 포함하는
    방법.
  19. 제18항에 있어서,
    상기 로그인 데이터를 상기 등록 데이터와 비교하는 단계; 및
    결과를 생성하는 단계를 더 포함하는
    방법.
  20. 서버를 포함하는 시스템에 있어서,
    상기 서버는:
    서버 명령을 포함하는 메모리; 및
    상기 서버 명령을 실행하도록 구성된 처리 장치를 포함하고,
    상기 서버 명령은 상기 처리 장치로 하여금:
    하나 이상의 서버에 제1 컴퓨팅 장치를 등록하는 단계 - 보안 엔진, 액션 엔진, 라이브러리, 및 하나 이상의 서버와 연관된 하나 이상의 노드를 포함하는 하나 이상의 서버 -;
    상기 하나 이상의 서버에서, 제1 컴퓨팅 장치로부터 제1 데이터와 연관된 제1 개인 코드 및 하나 이상의 파라미터를 수신하는 단계 - 상기 제1 개인 코드는 상기 제1 컴퓨팅 장치에서의 제1 사용자 입력에 기초하고, 상기 제1 데이터는 상기 제1 컴퓨팅 장치에서의 제2 사용자 입력에 기초함 -;
    상기 하나 이상의 서버에서, 청크 카운트 및 공개 키를 생성하는 단계 - 상기 청크 카운트는 제1 데이터와 연관된 하나 이상의 파라미터에 기초하고, 상기 공개 키는 비대칭 암호화 키 쌍의 일부임 - 를 생성하는 단계;
    상기 청크 카운트 및 상기 공개 키를 하나 이상의 서버로부터 상기 제1 컴퓨팅 장치로 전송하는 단계;
    상기 하나 이상의 서버에서, 상기 제1 컴퓨팅 장치로부터 개인 키의 수량 및 제2 개인 코드를 수신하는 단계 - 상기 개인 키는 상기 제1 데이터, 상기 청크 카운트 및 하나 이상의 손상자에 기초하고; 상기 제2 개인 키는 상기 제1 개인 코드에 기초하고, 상기 개인 키의 수는 상기 청크 카운트와 동일함 -;
    상기 하나 이상의 서버에서, 상기 개인 키에 기초하여 제2 데이터를 생성하는 단계 - 상기 제2 데이터를 생성하는 단계는: 연결된 키를 생성하기 위해 상기 개인 키를 연결하는 단계; 및 제2 데이터를 생성하기 위해 연결된 키에서 하나 이상의 손상자를 제거하는 단계의 동작을 수행하게 하는
    시스템.

KR1020227043195A 2020-05-11 2021-05-10 컴퓨터 네트워크에서 제어된 손상을 이용하여 키를 생성하는 방법 KR20230024279A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/872,127 US10903997B2 (en) 2017-10-19 2020-05-11 Generating keys using controlled corruption in computer networks
US16/872,127 2020-05-11
PCT/IB2021/053964 WO2021229410A1 (en) 2020-05-11 2021-05-10 Generating keys using controlled corruption in computer networks

Publications (1)

Publication Number Publication Date
KR20230024279A true KR20230024279A (ko) 2023-02-20

Family

ID=78525415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227043195A KR20230024279A (ko) 2020-05-11 2021-05-10 컴퓨터 네트워크에서 제어된 손상을 이용하여 키를 생성하는 방법

Country Status (9)

Country Link
EP (1) EP4150858A1 (ko)
JP (1) JP2023525774A (ko)
KR (1) KR20230024279A (ko)
CN (1) CN116018592A (ko)
AU (1) AU2021272736A1 (ko)
BR (1) BR112022023105A2 (ko)
CA (1) CA3178613A1 (ko)
MX (1) MX2022014179A (ko)
WO (1) WO2021229410A1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2348447B1 (en) * 2009-12-18 2014-07-16 CompuGroup Medical AG A computer implemented method for generating a set of identifiers from a private key, computer implemented method and computing device
US10103885B2 (en) * 2016-01-20 2018-10-16 Mastercard International Incorporated Method and system for distributed cryptographic key provisioning and storage via elliptic curve cryptography
CN111630811A (zh) * 2017-10-19 2020-09-04 奥特海威公司 生成和寄存用于多点认证的密钥的系统和方法

Also Published As

Publication number Publication date
JP2023525774A (ja) 2023-06-19
MX2022014179A (es) 2022-12-02
CN116018592A (zh) 2023-04-25
AU2021272736A1 (en) 2023-01-19
EP4150858A1 (en) 2023-03-22
CA3178613A1 (en) 2021-11-18
BR112022023105A2 (pt) 2023-01-17
WO2021229410A1 (en) 2021-11-18

Similar Documents

Publication Publication Date Title
JP7448220B2 (ja) マルチポイント認証のためのキー生成・預託システム及び方法
US11652629B2 (en) Generating keys using controlled corruption in computer networks
US8132020B2 (en) System and method for user authentication with exposed and hidden keys
WO2019199288A1 (en) System and method for secure storage of electronic material
JP2016502377A (ja) 安全計算を用いて安全性を提供する方法
Kaur et al. A Secure Two‐Factor Authentication Framework in Cloud Computing
CN112425118A (zh) 公钥-私钥对账户登录和密钥管理器
US11329817B2 (en) Protecting data using controlled corruption in computer networks
Kang et al. Efficient and robust user authentication scheme that achieve user anonymity with a Markov chain
Khan et al. A brief review on cloud computing authentication frameworks
AU2018100503A4 (en) Split data/split storage
JPWO2019077581A5 (ko)
KR20230024279A (ko) 컴퓨터 네트워크에서 제어된 손상을 이용하여 키를 생성하는 방법
US20240214197A1 (en) System and method for generating and depositing keys for multi-point authentication
AU2018352026B2 (en) System and method for generating and depositing keys for multi-point authentication
US20240121098A1 (en) Scalable Authentication System with Synthesized Signed Challenge
WO2023052845A2 (en) Protecting data using controlled corruption in computer networks
Atzeni et al. Authentication

Legal Events

Date Code Title Description
A201 Request for examination