KR102644767B1 - 데이터 보호 및 복구 시스템 및 방법 - Google Patents

데이터 보호 및 복구 시스템 및 방법 Download PDF

Info

Publication number
KR102644767B1
KR102644767B1 KR1020227004232A KR20227004232A KR102644767B1 KR 102644767 B1 KR102644767 B1 KR 102644767B1 KR 1020227004232 A KR1020227004232 A KR 1020227004232A KR 20227004232 A KR20227004232 A KR 20227004232A KR 102644767 B1 KR102644767 B1 KR 102644767B1
Authority
KR
South Korea
Prior art keywords
key
public key
encryption
value
private key
Prior art date
Application number
KR1020227004232A
Other languages
English (en)
Other versions
KR20220025155A (ko
Inventor
조슈아 베델
Original Assignee
에도패스, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에도패스, 엘엘씨 filed Critical 에도패스, 엘엘씨
Priority to KR1020247002284A priority Critical patent/KR20240013292A/ko
Publication of KR20220025155A publication Critical patent/KR20220025155A/ko
Application granted granted Critical
Publication of KR102644767B1 publication Critical patent/KR102644767B1/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/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • 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/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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/08Randomization, e.g. dummy operations or using noise

Abstract

제1 데이터 값을 제2 데이터 값으로 안전하게 대체하는 방법 및 관련 시스템이 개시된다. 방법은 제1 공개 키 및 제1 개인 키를 생성하는 단계, 암호화 시드 값을 생성하는 단계, 및 암호화 시드 값이 타원 곡선을 거치도록 하여 제2 공개 키 및 제2 개인 키를 생성하는 단계를 포함한다. 방법은 공유 암호화 키를 생성하기 위해 공개 키 암호화를 사용하여 제1 공개 키와 제2 개인 키를 결합하는 단계 및 공유 암호화 키가 대칭 알고리즘을 거치도록 하여 암호화 시드 값을 암호화하는 단계를 더 포함한다.

Description

데이터 보호 및 복구 시스템 및 방법
관련 출원들에 대한 상호 참조
본 출원은 2019년 7월 12일에 출원되고 발명의 명칭이 "데이터 보호 및 복구 시스템 및 방법(Data Protection and Recovery Systems and Methods)"인 미국 가출원 제62/873,308호에 대한 우선권을 주장하며, 그 전체 개시는 모든 적절한 목적을 위해 참조로 여기에 포함된다.
본 발명은 컴퓨팅 시스템 보안에 관한 것이다. 구체적으로, 본 발명을 제한하려는 것은 아니지만, 본 발명의 실시예는 사용자 데이터를 안전하게 갱신하는 것과 관련된다.
인터넷 사용과 서비스형 소프트웨어(software as a service)가 확산되면서, 예를 들어, 서비스형 소프트웨어를 제공하는 서비스 제공자와 같은 서비스 제공자는 특히 중간 사람 공격(middle person attacks)과 같은 데이터 보안에 대한 점점 더 복잡한 위협에 직면해 있다. 이러한 위협에 대처하기 위해, 서비스 제공자는 사용자 계정과 연관된 데이터를 갱신하려는 사용자를 인증하는 다양한 단계를 구현했다. 일반적으로 사용자는 비밀번호를 제공하라는 요청을 받는다. 사용자가 자신의 비밀번호를 모르는 경우, 서비스 제공자는 일반적으로 인증 방법으로서 사용자에게 문자, 이메일 또는 메시지를 제3자를 통해 송신할 것이다. 그러나 이 방법은 부분적으로 사용자 이메일이 휴대전화에서 종종 쉽게 액세스될 수 있기 때문에, 그리고 단일 이메일이 단일 사용자가 보유한 수많은 계정을 "해킹"하는 데 사용될 수 있기 때문에 공격에 취약하다. 따라서 사용자가 사용자 계정과 연관된 데이터를 변경할 수 있는 안전한 수단을 서비스 제공자가 제공해야 필요성이 존재한다.
예시적인 시스템은 제1 프로그램을 저장하는 제1 비일시적 컴퓨터 판독가능 매체 및 제2 프로그램을 저장하는 제2 비일시적 컴퓨터 판독가능 매체를 갖는다. 제1 프로그램 및 제2 프로그램은 하나 이상의 프로세서에 의해 실행될 때 제1 데이터 값을 제2 데이터 값으로 안전하게 대체하는 방법을 실행하는 명령어를 포함한다. 방법은 제1 공개 키 및 제1 개인 키를 생성하는 단계, 암호화 시드 값을 생성하는 단계, 암호화 시드 값이 타원 곡선(elliptic curve)을 거치도록 하여 제2 공개 키 및 제2 개인 키를 생성하는 단계를 포함한다. 방법은 공유 암호화 키를 생성하기 위해 공개 키 암호화를 사용하여 제1 공개 키와 제2 개인 키를 결합하는 단계 및 암호화 시드 값을 암호화하기 위해 공유 암호화 키가 대칭 알고리즘을 거치도록 하는 단계를 포함한다.
예시적인 제1 비일시적 컴퓨터 판독 가능 매체는, 프로세서에 의해 실행될 때, 제1 데이터 값을 제2 데이터 값으로 안전하게 대체하는 방법을 실행하는 명령어를 포함하는 프로그램을 저장한다. 방법은 제1 공개 키 및 제1 개인 키를 생성하는 단계, 암호화 시드 값을 생성하는 단계, 및 암호화 시드 값이 타원 곡선을 거치도록 하여 제2 공개 키 및 제2 개인 키를 생성하는 단계를 포함한다. 방법은 공유 암호화 키를 생성하기 위해 공개 키 암호화를 사용하여 제1 공개 키와 제2 개인 키를 결합하는 단계 및 공유 암호화 키가 대칭 알고리즘을 거치도록 하여 암호화 시드 값을 암호화하는 단계를 더 포함한다.
도 1은 예시적인 시스템의 개략도이다.
도 2는 예시적인 방법의 흐름도이다.
도 3은 예시적인 방법의 흐름도이다.
도 4는 예시적인 방법의 흐름도이다.
도 5는 예시적인 방법의 흐름도이다.
본 발명의 세부사항에 대한 도입으로, 프로토콜이 설명된다. ARQ(autonomous request query) 프로토콜은 예를 들어, 새 계정 설정 또는 데이터베이스 입력(entry), 또는 입력 전에 들어오는 데이터의 검증과 같은 4개의 기본 기능을 달성하기 위한 통신 계층을 나타낸다. 레코드가 설정되면, 접속은 레코드에 대해 검증할 수 있다. 통신 파이프라인은 세션 변수를 사용하여 감시될 수 있다. 해당 계정 레코드가 새로운 손상되지 않은 데이터로 재설정될 필요가 있는 경우, 해당 프로세스의 개시자(initiator)는 향상된 검증 프로세스로 레코드를 갱신할 수 있다.
ARQ 프로토콜은 많은 다양한 방식 중 하나로 구성될 수 있는 몇 가지 기본 기술과 함께 작동한다. ARQ는 소프트웨어 개발 키트(software development kit; SDK) 또는 키 설정 및 재설정 프로세스에 필요한 기능적 양상을 처리하는 도구 세트를 나타낸다. 이 SDK의 주요 목적은 사용자를 인증 및 인가하는 것이다.
이는 SDK의 4개의 기본 기능을 발행(issue)하여 작동한다: 새 사용자 레코드를 설정하고 영구 레코드(durable record)에 저장하는 것; 재입력을 위해 사용자 레코드에 대해 검증하는 단계; 탈취 또는 조작에 대해 사용자 세션을 감시하는 것; 위반 시 사용자 정보를 안전하게 갱신하는 것.
1:1 키 재설정은 제3자 서비스를 사용할 필요 없이 한 당사자를 또 다른 당사자에게 안전하게 검증하려고 하는 문제를 해결하므로 사용 사례는 단일 산업에 제한되지 않는다.
접속 초기화. 모든 접속은 메시지 파이프라인을 보호하기 위해 공개 키 교환을 사용하여 초기화될 수 있다. 보안 메시지 파이프라인이 생성되었으면, 메시지 협상이 시작될 수 있다.
또한, 응답 머신의 진위(authenticity)가 검증될 수 없는 경우, 신뢰될 수 있는(trusted) 제3자를 사용하여 메시지 터널을 보호하는 데 사용되는 송신된 공개 키 세트를 검증할 수 있다. 검증된 제3자를 사용하면 키 스푸핑(key spoofing) 또는 송신 중 공격(in-transit attack)에 대해 보호하는 데 도움이 될 수 있다. 초기 키가 악성 키로 교체되면, 공격자는 "중간자 공격"으로 알려진 상황에서 대화를 청취할 수 있다.
메시징 터널은 기술적으로 가장 최신의 모범 사례를 사용하여 보호(secure)될 수 있다. 초기 메시지 파이프라인이 보호되면, 기본 프로세스가 시작될 수 있다. 시스템의 핵심 설계는 송신된 메시지 내용들이 누출되더라도 모든 값이 비대칭 공개 키 또는 사전 암호화된 암호문이므로, 이들이 보안 위험이 없는 것을 보장하도록 구축되었다.
설정. ARQ 프로토콜을 사용하여 새 키저장소를 설정하려면, 3개의 기본 정보가 필요하다: A) 첫 번째 "기본" 비대칭 키, B) 두 번째 "갱신" 비대칭 키, 및 C) 비대칭으로 암호화된 암호문 "갱신 패키지".
첫 번째 "기본" 비대칭 키는 잠재적으로 인증 또는 인가에 사용될 수 있는 임의의 값일 수 있다. 두 번째 "갱신" 비대칭 키는 당업자에게 알려진 많은 타원 곡선 알고리즘 중 하나로 발행될 수 있다.
여기에 설명된 실시예에서 비대칭적으로 암호화된 "갱신 패키지"는 이 프로세스에 고유하다. 갱신 패키지를 생성하는 단계들은 다음과 같다:
대칭 암호화 알고리즘이 선택되어야 한다. 다양한 대칭 암호화 알고리즘은 보안 암호문을 생성하기 위해 상이한 입력 요건들을 가지며, 그 중 일부는 난스(nonce), 즉, '한 번 사용되는 숫자'가 선택되어야 할 수 있다. 난스가 필요한 경우, 대응 난스 크기는 선택된 알고리즘에 대해 정확해야 한다.
무작위로 생성된 의사 값(pseudo randomly generated value)은 암호학적으로 보안화된 해싱 알고리즘에 전달된다. 해싱 알고리즘은 예를 들어, 32 바이트의 최소 길이와 같은 최소 길이로 암호학적으로 보안화된 해시를 출력할 수 있다. 일부 실시예에서, 해싱 알고리즘은 적어도 256 비트의 엔트로피 또는 ~32바이트를 사용할 수 있으며, 보안 해시는 타원 곡선을 거치고 공개 키 세트 및 개인 키 세트가 생성된다. 이 키 세트를 생성하는데 사용된 보안 해시는 대칭 암호화 프로세스를 사용하여 보호될 수 있을 때까지 임시로 보관되어야 한다. 다음으로, 기본 인증/인가 식별 값이 선택되거나 생성되어야 한다. 기본 인증/인가 값은 해싱된 암호 구문, 비대칭 키 세트 또는 허용되는 것으로 간주되는 임의의 다른 값을 포함하지만 이에 제한되지 않는 다수의 유형의 식별자 중 하나일 수 있다.
출력에서, 다음이 있을 수 있다: 0) 기본 인증 값/키, 1) 난스(필요한 경우), 2) 보안 해시, 3) 무작위로 생성된 제1 의사 공개 키 및 대응 개인 키 세트(공유 암호화 키가 생성되면 개인 키는 메모리에서 즉시 제로화됨(zeroed)), 4) 제2 공개 키 및 개인 키 세트.
제1 개인 키와 제2 공개 키는 공개 키 암호화 시스템을 거쳐서 공유 암호화 키를 생성한다. 공유 키가 생성되면, 제1 개인 키가 제거되고 영구적으로 삭제된다. 공유 키, 난스, 및 보안 해시는 대칭 암호화 알고리즘을 거친다. 공유 키는 기본 암호화 키로서 사용되며 필요한 경우 난스를 활용한다. 보안 해시는 암호화되는 값 또는 메시지이다. 결과 암호문이 생성되면, 보안 해시도 메모리에서 제거된다.
다음으로, 제1 공개 키, 난스(사용되는 경우), 및 출력 암호문이 함께 패키징된다.
이를 통해, 암호화된 해시 값을 검색(retrieve)하기 위해 암호문을 복구하거나 복호화하는 유일한 방법은 대응 제2 개인 키를 리콜(recall)하거나 재구축하는 것이다. 일부 실시예에서, 방법은 보안 값을 사용하여 구축된 유효 키 유도 스키마로부터 제2 개인 키를 재생성하는 것을 포함할 수 있다. 제2 개인 키는 보조 디바이스에 저장되거나 안전하고 정확하게 리콜될 수 있는 임의의 형태로 보관될 수도 있다. 제2 개인 키를 계산적으로 '이동(move)'하는 것은 권장되지 않는다. 이것은 포착되거나 유출될(exfiltrated) 수 있는 2차 레코드를 생성할 수 있다.
일부 실시예에서, 프로세스는 키 자료(keying material)에 대한 프로그래밍 방식 액세스로부터 떨어진 '에어 갭(air gapped)' 환경을 유지할 수 있다. 제2 개인 키는 암호문을 성공적으로 복호화하는 데 필요한 유일한 요구 값이다. 제2 개인키가 안전하게 보관되는 경우, 결과 암호문의 성공적인 복호화는 기본 인증/인가 값/키를 갱신하기 위한 검증 가능한 증거로서 사용될 수 있다.
성공적인 협상은 저장된 정보를 리콜하고 이전에 삭제된 키 값을 재생성하는 프로세스이다. 필요한 정확한 값을 생성하기 위해서는 대칭 암호화 알고리즘의 종류와 타원 곡선 알고리즘을 알아야 한다. 알고리즘 유형이 손실되었거나 잘못 해석된 경우, 알고리즘 유형의 무차별 대입 전략(brute-force strategy)이 사용될 수 있다.
일부 실시예에서, 협상 프로세스는 다음과 같다: 1) 암호문, 난스(사용된 경우), 및 제1 공개 키가 메모리로부터 리콜되거나 저장 엔티티로부터 요청된다. 2) 제2 개인 키는 재생성되거나 사용을 위해 리콜된다. 3) 제1 공개키와 제2 개인키가 공개키 암호화 방식을 거쳐서 제2 공유키가 생성된다. 4) 제2 공유 키 및 난스가 정확한 대칭 암호화 알고리즘을 거치도록 하여 암호문을 복호화한다. 성공하면 원래 보안 해시가 반환된다. 5) 그런 다음, 보안 해시는 제1 공개 키를 생성하는 데 사용된 것과 동일한 타원 곡선 알고리즘을 거친다. 6) 제1 개인 키와, 새로 선택되거나 생성된 기본 인증/인가 값/키는 비대칭 암호화 서명 알고리즘을 거쳐서 기본 인증 값/키의 암호화 서명이 생성된다. 7) 그런 다음, 서명된 기본 인증 값/키는 제1 공개 키와 암호문을 저장한 출처(origin)에 의해 검증된다. 암호화 서명이 제1 공개 키에 의해 성공적으로 검증(validate)되면, 새로 선택된 기본 인증 키가 안전하게 갱신될 수 있다.
이 프로세스는 안전한 일대일 갱신 방식이 필요할 수 있는 임의의 데이터 값을 갱신하는 데 사용될 수 있다. 서명 알고리즘을 사용하면, 송신된 임의의 정보가 검증 가능하게 정확하거나, 송신 중 변조되지 않았음을 보장한다.
세션. 키 협상 중에 추가 보안 또는 감시가 필요한 경우. 변조 불가능한 세션이 생성되어, 보안 메시지 터널을 검증하는 데 활용될 수 있다. 많은 상이한 세션 방식들이 추가적인 검증 값으로서 사용될 수 있다. 한 가지 가능한 세션 방식은 1회성 시프팅 세션 값들(one-time shifting session values)이다. 이것은 임의의 송신된 메시지가 완전히 언패킹(unpack)될 수 있기 전에 검증될 추가 값을 추가한다.
처음에는 의사 무작위 바이트 문자열이 선택된다. 바이트 문자열은 베이스-2 또는 이진 형식으로 나뉜다. 메시지가 송신되거나 수신될 때마다, 이진 배열은 사전 정의된 시프트 파라미터 필드에서 '시프팅(shift)'되거나 '스텝핑(step)'된다. 그러면 각 메시지는 고유한 시프트 값을 포함할 수 있다. 임의의 재사용된 값은 가능한 공격 또는 네트워크 오류의 증거가 된다. 값이 두 번 이상 재사용되는 경우, 세션이 중단되고 처음부터 다시 시작된다.
대칭 암호화 계층 세션(Symmetric Encryption Layered Session). 대칭 암호화 계층 세션은 시프팅 '스텝핑된' 세션 키를 기본 암호화/복호화 키로서 사용할 수 있다. 이 프로세스는 송신자/수신자가 필요한 키 값을 성공적으로 그리고 안전하게 협상한 것을 요구하여, 양 당사자가 키 스테퍼 역학(key stepper mechanics), 다항식 필드 크기, 초기 세션 바이트 값, 및 선택된 알고리즘 세트를 알 것을 요구한다. 선택된 대칭 암호화 알고리즘이 난스를 필요로 하는 경우, 양 당사자도 이를 알고 있어야 한다. 필요한 사전 협상 값을 성공적으로 설정하기 위해 공개 키 방식이 사용되어 필요한 값을 안전하게 송신할 수 있다.
대칭 암호화 알고리즘은 송신된 모든 값을 유선으로(across the wire) 비공개(private)로 유지하는 데 사용된다. 메시지가 송신될 때마다, 필요한 암호화/복호화 키는 다음 세션 시프터(shifter) 값일 수 있다. 즉. 한 가지 가능한 방식은, 당사자 A가 키0을 사용하여 첫 번째 메시지를 암호화한 다음 당사자 B가 키0을 사용하여 이를 복호화하는 것일 수 있다. 다음 메시지 시퀀스에서, 키가 시프트되고, 당사자 B는 키1을 사용하여 암호화하고, 당사자 A는 키1을 사용하여 이를 복호화한다. 어느 한쪽 당사자가 언제든지 '카운트(count)'를 잃으면, 프로세스가 중단되고 처음부터 재설정된다. 이것은, 송신된 값이 변조되거나 송신 중에 하이재킹되는(hijacked) 것을 보장한다. 능동 공격 또는 잠재적인 네트워크 오작동에 대한 가능한 증거를 제공하면서 어느 당사자도 중요한 정보를 유출하지 않는다. 이것은 송신된 값이 사용자의 신원을 알아내는데(fingerprint) 사용될 수 있기 때문에 적대적인 환경 내에서 임의의 메시지 협상이 완료되고 있을 때 특히 유용하다. 한 가지 예는 연관된 키 값이 중요한 사람(persona), 머신, 또는 개인 신원에 연결될 수 있는 경우에. 프라이버시가 가장 중요한 문제일 때 유용할 수 있다.
암호화되지 않은 세션. 암호화되지 않은 세션 사용은 기본 송신 계층 보안이 사용되는 수신/발신 메시지에 양 당사자가 서명해야 하는 메시지 서명 스키마를 사용할 수 있다. 시프트 값은 서명된 요청 검증 키로서 사용된다. 송신된 각 메시지가 고유한 시프트된 값을 사용하는 경우, 각 메시지 서명은 고유하고 검증 가능하다. 이를 통해 각 당사자는 메시지가 "재생(replay)"되었는지 또는 추가 검증 매체를 추가하여 변조되었는지 검증할 수 있다. 이는 시간 제약 또는 국제화(internationalization)로 인해 서명된 시간 벡터(signed time vector)가 사용될 수 없거나 사용되어서는 안 되는 경우에 특히 유용하다.
세션 수명 주기. 세션 수명 주기는 취약하고 설계상 약하다. 다음 오류 중 어느 하나가 발생하면 모든 세션이 재설정될 수 있다: 패키지 또는 서명이 두 번 이상 재송신됨, 인코딩이 사양과 매칭되지 않음, 응답자 또는 요청자 서명이 검증될 수 없음, 대칭 암호화 패키지가 복호화될 수 없음, 세션 시간 초과, 송신 계층 보안이 손상되었음. 어떤 이유로 세션이 재설정되면, 물리적 부울 요청(physical boolean request)이 상호 작용을 계속할 수 있다. 인증 또는 인가 요청을 위해 실제 사람이 필요한 경우, 잠재적 침해가 진행 중이면, 이러한 부적격 이벤트들 중 임의의 이벤트가 증가된 로깅 파라미터로 이어질 수 있거나 이어지게 해야 한다.
시스템 복구. 시스템이 침해되고 모든 연관된 계정 레코드가 다시 보호되어야 하면, 수동 또는 능동 복구 프로세스가 발생할 수 있다. 복구 프로세스는 필요한 개인 키 자료가 침해되지 않았다고 가정한다. 필요한 키 자료가 재생성되어야 하는 경우, 이 동작은 손상되지 않은(non-compromised) 머신에서 수행되어야 한다. 필요한 개인 키 자료가 재생성되거나 리콜되었으면, 기본 인증 값/키, 제1 공개 키, 및 관련된 암호문을 저장하는 대응 레코드 보유자 각각은 계정을 가능한 타겟으로서 플래깅(flag) 위해 접촉되어야 한다. 플래깅되었으면 각 계정은 암호문 복호화 프로세스를 시작하여 새로운 기본 인증 값/키에 서명할 수 있다. 이 프로세스의 기본 구성 요소는 각 인증이 재설정되는 것이다. 완전히 새로운 개인/공개 키 세트가 생성되고 사용되어야 한다. 이렇게 하면 대응 개인 키 자료가 포착되었는지를 보장한다. 새로운 값은 더 이상 손상될(compromisable) 수 없다. 이전의 제2 개인 키는 서비스 제공자와의 성공적인 협상이 발생한 후 폐기되어야 한다. 사용할 최적의 전략은 필요한 개인 키 자료를 재생성하기 위해 오프라인 또는 에어 갭 자료를 필요로 하는 키 유도 프로세스를 사용하는 것일 수 있다. 이것은 새 키 세트가 인터넷에 접속된 머신에서 포착되거나 유출되지 않도록 하는 데 도움이 될 수 있다.
복구 네트워크. 복구 네트워크는 특정 최대 메모리 할당 또는 데이터 유형이 제공되는 원격 시스템 내에서/상에서 잠재적 사용자가 자신의 개인 키 자료를 보호하는 데이터베이스 방법이다. 이렇게 하면 저장된 모든 데이터가 손상되지 않도록 하는 데 도움이 될 수 있다. 이 원격 시스템은, 각 메모리 슬롯이 최초 작성자(originator)만 복호화할 수 있는 암호화된 파일만 저장하도록 요구할 수 있다. 또 다른 데이터 저장 매체에 데이터를 "백업"하거나 복제(clone)하는 데 필요한 저장 메커니즘은, 모든 파일이 복사되고 선택적으로 무차별 대입되더라도, 각 메모리 슬롯에 보안 암호화된 자료만 제공되는 한 사용자에게 자신의 암호화된 파일을 리콜하기 위한 다양한 옵션을 제공한다. 임의의 합리적인 시간량 내에 임의의 의미 있는 절도(meaningful theft)를 하는 것은 거의 불가능할 것이다. 이 유형의 데이터베이스는 저장된 모든 자료가 송신 전에 암호화되는 한, 비공개, 반 비공개, 반 공개 또는 공개일 수 있다. 한 가지 옵션은 중앙 합의와 변경 불가능한 레코드 세트를 사용하여 저장하고, 관련된 모든 서버의 데이터 무결성을 검증하는 것일 수 있다. 메모리 할당은 로컬 미디어에 직접 저장할 수도 있다. 기만 시스템(deception system)은 미리 선택된 기만 키를 입력하여 사용되거나 활성화될 수도 있다. 모든 기만 키 세트는 일반 또는 실제 계정처럼 보이는 것을 연다. 원격 개인 키 자료의 어떠한 저장도 권장되지 않지만 사용자가 중요한 개인 키 자료의 안전한 리콜을 돕기 위해 필요할 수 있다.
영역 키(zone keys). 영역 키는 특히 머신 간 상호 작용과 상관된 유사한 비대칭 키잉 스키마(asymmetric keying schemas)를 사용한다. 영역 키의 목적은 시스템 상호 작용을 단순화하고 보호하며, 식별하는 것이다. 영역 키 스키마의 주요 피처(feature)는 영역 키가 서비스나 사람과 구체적으로 연결되지 않는다는 것이다. 영역 키는 등록되지 않고 필요할 때만 생성되고 파기된다. 영역 키는 보호된 내부 서비스들 간의 상호 작용을 안전하게 핸드오프(handoff)하는 데 사용된다. 영역 키는 지속 가능하거나 지속 불가능할 수 있으며, 일회용 또는 재사용 가능할 수 있다. 기본 서비스 통신 계층에 가장 적합한 상황에 대해 옵션이 선택된다. 코덱스(codex). 코덱스는 암호화 키 스키마를 생성, 순환, 및 준비(provision)하는 프로토콜이다. 기본 아이디어는 조직을 보호하기 위해 내부 또는 외부 비즈니스 소유 서비스에 대한 직원 액세스를 생성, 순환 및 공급하는 데 보안 프로세스가 사용되어야 한다는 것이다. 코덱스 체인은 필요한 키 자료를 생성하기 위해, 계형 키 설정 자료의 많은 서브세트 - 무상태(stateless), 유상태(stateful), 구형 결정론(spherical deterministic), 기수(radix) 또는 머클 카운터 기반 키 트리(merkle counter based key trees) - 중 하나에 기초할 수 있다. 특정 모델을 선택하면 준비 및 입력 키 자료가 변경된다. 특정 모델의 선택은 다른 모델보다 일부 조직에 대해 이점을 추가하였는데, 인터넷 회사는 자신의 기본 키 유도 기능으로서 무상태 모델을 선호할 수 있기 때문에 정확한 입력 값을 재생성하려면 암기된 콘텐츠가 필요하다. 대조적으로, 병원은 개별 부서, 서비스, 또는 머신 식별자 코드와 상관된 유상태 모델을 원할 수 있다.
일부 실시예는 의사 무작위로 선택된 니모닉 어구(mnemonic phrase)를 사용하는 것을 포함한다. 이 니모닉 어구는 키 유도 함수, 또는 비가역 출력을 반환하는 암호화 함수에 대한 입력 자료로서 사용된다. 이것은 루트 키 생성 자료를 보호한다. 그런 다음 계정 생성은 루트 값을 활용하여 필요한 개인 키를 생성하기 시작할 수 있다.
생성된 키는 특정 서비스에 등록될 수 있으며 재사용되어서는 안 된다. 각 개인 키 세트는 단일 서비스 키이다. 개인 키 자료는 두 번 이상 사용되어서는 안 된다.
임의의 시스템은 키가 회전될 수 있는 시기를 명시할 수 있다. 이것은 기본 인증 값/키, 제1 공개 키 및 암호문과 연관된 타이밍된 플래그를 설정하여 달성될 수 있다. 사용자가 기본 인증 값/키를 사용하려고 하면, 시스템이 요청을 거부하여 기본적으로 기본 인증 값을 강제로 무효화할 수 있다. 유일한 해결책은 상관된 암호문 자료를 성공적으로 협상하는 것이다. 기본 인증 값/키를 타이밍 기반으로 인가 취소(deauthorize)하는 것을 활용하는 시스템은 잠재적인 침해를 더 빨리 종결할 수 있는 추가적인 이점을 갖는다. 키가 12시간마다 재협상되어야 하는 경우, 손상된 키 세트를 가진 임의의 사용자는 자신이 더 이상 시스템에 액세스할 수 없으므로 능동적으로 알림을 받을 것이다. 공격자가 필요한 키 세트를 유출한 경우, 모든 암호화 기능이 원격 협상 시스템에 개별적으로 분산되기 때문에, 그들의 격리된 머신이 암호문 갱신을 협상하여 두 개의 분기하는 키 분기를 생성하고 하나의 키 분기를 무효화할 수 있다. 계산 오버헤드도 분산되므로 모든 기능 프로세싱을 처리하기 위해 중앙 집중식 서비스가 필요하지 않으므로 단일 암호화 기능 생성 머신이 손상될 수 없는 것을 보장하여 또 다른 단일 장애 지점을 제거한다.
하드웨어 준비 모델(일부 계정 보호). 하드웨어 준비 모델은 "드롭인 설정(drop-in setup)" 또는 특정 하드웨어 키 및 암호화 자료를 위해 머신 또는 디바이스에 설정할 수 있다. 일부 실시예에서, 예를 들어, 물리적 매체가 인터넷에 접속된 머신에 접속되거나 물리적으로 도난당한 경우에만 침해될 수 있는, 액세스 키, 컴퓨터 드라이브 복호화 키와 같은 추가 키 세트가 추가될 수 있도록 하는 하드웨어 키가 사용된다.
복구. 사용자가 액세스를 종료해야 하거나 계정이 침해된 경우, 복구 프로세스가 시작될 수 있다. 키 재생성 프로세스는 에어 갭 오프라인 머신에서 완료될 수 있다. 그런 다음, 필요한 키가 재생성된 후에만 암호문 협상이 시작될 수 있다. 연관된 제1 공개 키 및 관련된 암호문이 로컬에 저장되어 있으면, 인터넷에 접속된 머신에 접속되기 전에 암호문과 새 인증 값이 선택되고 서명되며, '준비'될 수 있다. 에어 갭 프로세스가 사용되는 경우, 키 유도 자료가 포착될 가능성이 훨씬 낮기 때문에 송신된 키 자료는 우수한 보안 상태를 갖는다. 프로세스는 다음을 포함할 수 있다: 0) 복구 드라이브가 보안 위치로부터 풀링됨(pulled) 1) 키 세트를 재생성하고 갱신 패키지를 요청하기 위해 기본 어구(primary phrase)가 사용됨 2) 갱신 패키지(제1 공개 키 및 암호문)가 착탈식 영구 저장소에 저장됨 3) 에어 갭 오프라인 시스템에서 복구 드라이브 및 갱신 패키지가 결합됨 4) 각 개별 시스템에 대해 새로운 키 세트가 생성됨 5) 기본 인증 값이 갱신됨 6) 갱신 패키지가 착탈식 매체에 로딩됨 7) 갱신 패키지가 송신됨.
이 상호 작용의 목표는 사용자가 침해되거나 공격을 받는 경우, 사용자가 보안 키 자료를 재생성하기 위해 특정 조치를 취할 수 있다는 것이다. 이 에어 갭 복구 시스템은 2개의 착탈식 드라이브 또는 원격 데이터베이스 시스템을 필요로 할 수 있다.
복구 분기(Recovery Branch). 키(또는 키들)가 생성되면, '복구 분기'가 생성될 수 있다. 복구 분기는 3개의 정보를 사용하여 키 풀(key pool)을 생성한다. 키 풀은 필요한 제1 및 제2 비대칭 키 세트를 그룹화한 것이다. 복구 분기는 표준화된 초기화된 카운터 시스템을 사용하여 결정론적 키 세트를 생성할 수 있다. 카운트의 길이는 시작점만큼 중요하지는 않는다. 카운터 버전이 갱신되면, 모든 키도 갱신되어야 하며, 각 키 세트가 필요한 제2 개인 키를 재생성하는 데 필요한 자료를 포함한다는 것에 주목한다.
키 풀을 생성하려면, 예를 들어, 카운터 모듈과 함께 시드 키(또는 키들)를 사용하는 것과 같은 다수의 방법들 중 하나가 사용될 수 있다. 예를 들어, 초기 카운터는 0x80000001, 0x80000002, 0x80000003, 0x80000004 등일 수 있다. 스칼라 베이스 8을 유지하는 16진법 카운터를 사용하는 것은 하나의 단순한 가능성이다.
키 분기 메커니즘이 선택되면, 루트 자료는 결합되어 암호학적으로 비가역인 키를 생성할 수 있는 키 유도 기능으로 전달된다. 엔트로피 강화는 해싱 함수에 또한 사용될 수 있고 1회 내지 x회 해싱될 수 있다. 값이 여러 번 해싱되면, 결과적인 엔트로피가 더 크게 생성되어, 복구 시 필요한 재생 시간이 증가한다.
결과적인 출력 해시는 다수의 상이한 타원 곡선 알고리즘 또는 비타원 곡선 알고리즘에 전달될 수 있다. 유일한 요건은 공개 키와 개인 키가 생성된다는 것이다. 그런 다음, 키 자료 생성 즉시 해시 값 또는 시드 값이 덮어쓰여지거나 메모리에서 삭제된다.
계정 경고. 중요한 키 값을 보호하기 위해 내부 기만 프로그램이 사용될 수 있다. 키 인증 모델의 목표는 이러한 암호화 표준을 무차별 대입하는 것을 불가능하게 만드는 것이다. 이렇게 하면 물리적인 사람이 하나의 주요 공격 경로(primary avenue of attack)가 된다. "손톱 테스트(fingernail test)" 또는 "렌치 테스트(wrench test)"라고도 하며, 이는 당신이 당신의 개인 키 자료를 포기할 때까지 누군가가 당신의 손톱을 잡아당기거나 렌치로 당신을 때리는 능력을 가지고 있음을 의미한다.
이 잠재적인 물리적 공격을 피하기 위해, 사용자가 로컬에 보관된 개인 키 자료를 암호화 및 복호화하는 구성인 "암호 구문"을 사용하고 있는 경우 서비스에서 섀도우 프로그램이 활성화될 수 있다. 섀도우 서비스는 특정 데이터 값을 입력하여 활성화될 수 있다. 기본 사용자는 복호화 화면에 암호 구문을 입력하는 사용자이다. 허구의 키 세트(fictional keysets)가 출력된다. 각 키 세트는 원격 시스템에 저장된 유사한 기본 값을 가질 수 있다. 주요 차이점은 기본 인증 값이 액세스될 때 또는 기본 계정 값을 갱신하기 위해 암호문이 요청될 때이다. 모든 동작은 실제처럼 보이거나 심지어 실제 환경인 기만 샌드박스 환경(deceptive sandboxed environment)에 대해 완료된다. 차이점은 이것은 "경고(alert)" 모드가 활성화되고 있다는 것이다. 송신된 모든 계정 통지 또는 수행되는 모든 요청에는 숨겨진 "경고(ALERT)"가 첨부되어 있을 수 있다. 이는 사용자가 문제를 겪고 있거나 가능한 계정 탈취가 강제로 발생했음을 나타낼 수 있다.
이를 달성하기 위해, 계정 생성 시, 추가적인 플래깅된 키 세트가 타겟 서비스에 등록된다. 섀도우 계정은 기본 계정을 미러링할 수 있다. 이는 사용자가 심각한 위험에 처해 있거나 악의적인 키 조작이 발생했음을 다수의 시스템에 동시에 잠재적으로 경고할 수 있는 추가 이점을 제공한다. 공격자가 '섀도우 키' 세트를 사용하여 다수의 시스템에 액세스하려는 경우에, 각 서비스는 최대 효과를 위해 지역 당국에 경고하는 데 도움이 될 수 있다.
맥거핀 박스(MacGuffin Box)TM. "맥거핀 박스"라는 용어는 본 출원인의 상표이다. 다음은 방법의 실시예를 설명한다.
갱신 키는 맥거핀 박스가 정확하게 무효화되었음을 확인하는 검증 매체로서 사용된다. '유효한' 비대칭 서명 값이 정확하게 검증될 수 있는 경우, 공개 키 또는 기본 식별자/인증 매체가 안전하게 재설정될 수 있다. 맥거핀 박스는 암호화된 시드 값을 나타내며, 이 값은 정확한 주요 개인 키 값에 의해서만 복호화될 수 있다. 맥거핀 박스는 시드 값, 또는 공개 키에 대해 1, 개인 키에 대해 2의 출력을 생성하기 위해 타원 곡선 함수에 전달되는 값이다. 공개/개인 키 쌍은 서명 방식으로 사용될 수 있다. 즉, 개인 키는 암호학적으로 고유한 서명 값을 생성하기 위해 데이터 조각과 함께 수학 함수에 전달될 수 있다. 출력 서명 값은 대응 공개 키에 의해 검증될 능력을 갖는다.
출력 공개 키는 갱신 키이다. 공개키(갱신 키)에 대응하는 출력 개인키는 생성 즉시 삭제된다. 대응 개인 키가 성공적으로 삭제되지 않으면, 복구 프로세스가 중단될 수 있다. 맥거핀 박스는 임의의 대칭 암호화 값을 사용하여 암호화될 수 있다. 임의의 대칭 암호화 값이 사용될 수 있는 이유는 두 개의 비대칭 키 그룹을 사용하여 대칭 암호화 키와 유사한 공유 키를 생성하기 때문이다. AES와 같은 인기 있는 암호화 메커니즘은 성공적인 암호화 기능을 완료하기 위해 난스, 즉, '한 번 사용되는 숫자'를 요구한다. 이 경우 난스는 출력되는 암호화된 암호문의 끝에 연결(concatenate)되어야 하며, 이는 출력된 키 생성 그래프가 실행 가능한(viable) 공개 키, 갱신 키 및 맥거핀 박스를 생성하도록 한다. 반대로, 맥거핀 박스를 활용하는 데 필요한 모든 것은 생성자 또는 인증 사용자가 인증 값, 공유 구문, 비대칭 공개 키, 또는 원하는 임의의 인증 값을 생성/사용하는 것이다. 기본 인증 값을 재설정하는 데 필요할 수 있는 모든 것은 소유자가 대응 개인 복구 키를 소유하고, 맥거핀 박스를 암호화하는 데 사용되는 정확한 알고리즘과, 복구/재설정 프로세스를 만드는 대응 갱신 키(공개 키)를 생성하는 데 사용되는 타원 곡선 알고리즘을 알아야 한다는 것이다. 그러면, 개인 복구 키(private rec key)는 맥거핀 박스를 잠금 해제하는 데 필요한 복호화 값이다.
이제 도 1을 보면, 시스템(100)이 설명된다. 시스템(100)은 제1 프로그램을 저장하는 제1 비일시적 컴퓨터 판독가능 매체(102) 및 제2 프로그램을 저장하는 제2 비일시적 매체(104)를 포함할 수 있다. 제1 프로그램 및 제2 프로그램은 하나 이상의 프로세서에 의해 실행될 때 제1 데이터 값을 제2 데이터 값으로 안전하게 대체하는 방법(200)(또한 도 2 참조)을 실행하는 명령어를 포함할 수 있다.
방법(200)은 제1 공개 키 및 제1 개인 키를 생성하는 단계, 암호화 시드 값을 생성하는 단계(204), 및 암호화 시드 값이 타원 곡선을 거치도록 하여 제2 공개 키 및 제2 개인 키를 생성하는 단계(206)를 포함한다. 방법(200)은 공유 암호화 키를 생성하기 위해 공개 키 암호화를 사용하여 제1 공개 키와 제2 개인 키를 결합하는 단계, 및 공유 암호화 키가 대칭 알고리즘을 거치도록 하여 암호화 시드 값을 암호화하는 단계(210)를 포함할 수 있다.
방법은 공유 암호화 키를 생성한 후 그리고 공유 암호화 키가 대칭 알고리즘을 거치기 전에 제2 개인 키를 제거하는 단계(212)를 선택적으로 포함한다.
방법(200)은 암호화된 암호화 시드 값 및 제2 공개 키를 통신 인터페이스(106)를 통해 제1 비일시적 컴퓨터 판독 가능 매체에서 제2 비일시적 컴퓨터 판독 가능 매체로 송신하는 단계(214)를 선택적으로 포함한다.
방법(200)은 제2 비일시적 컴퓨터 판독가능 매체에서 암호화된 암호화 시드 값 및 제2 공개 키를 수신하는 단계(224)를 선택적으로 포함한다. 방법(200)은 제2 공개 키 및 제1 개인 키를 사용하여, 암호화된 암호화 시드 값을 복호화하고 복호화된 암호화 시드 값을 생성하기 위한 제2 공유 키를 생성하는 단계(226)를 선택적으로 포함한다.
방법(200)은 제2 비일시적 컴퓨터 판독가능 매체로부터의 복호화된 암호화 시드 값을 제1 비일시적 컴퓨터 판독가능 매체에서 수신하는 단계(216)를 선택적으로 포함한다. 방법(200)은 제2 개인 키를 재생성하기 위해 복호화된 암호화 시드 값이 타원 곡선을 거치도록 하는 단계(218)를 선택적으로 포함한다. 방법은 재생성된 제2 개인 키를 사용하여 제2 데이터 값에 암호학적으로 서명하는 단계(220)를 선택적으로 포함한다.
방법(200)은 제2 서명된 데이터 값을 통신 인터페이스를 통해 제2 비일시적 컴퓨터 판독가능 매체로 송신하는 단계(222)를 선택적으로 포함한다.
방법(200)은 제2 서명된 데이터 값을 수신하는 단계(228)를 선택적으로 포함한다. 방법(200)은 제2 공개 키를 사용하여, 제1 개인 키가 암호화된 암호화 시드 값을 복호화하는 데 사용되었다고 검증하는 단계(230)를 선택적으로 포함한다.
예를 들어 직원 컴퓨터에만 상주할 수 있는 제1 비일시적 컴퓨터 판독 가능 매체(102)는 방법 단계(202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222)를 수행할 수 있다. 예를 들어 고용주 컴퓨터 또는 제3자 서비스 제공자 네트워크에 상주할 수 있는 제2 비일시적 컴퓨터 판독 가능 매체(104)는 방법 단계(224, 226, 228, 230)를 수행할 수 있다.
도 3 내지 도 5는 여기에 설명된 실시예를 더 잘 시각적으로 이해하기 위해 방법(200)의 특징의 다양한 흐름도를 도시한다.
여기에 개시된 다양한 요소들 각각은 다양한 방식으로 달성될 수 있다. 본 개시는 임의의 장치 실시예, 방법 또는 프로세스 실시예의 변형이거나, 심지어 이들 중 임의의 요소의 단지 변형일지라도, 이러한 각각의 변형을 포함하는 것으로 이해되어야 한다. 특히, 각 요소에 대한 단어는 기능 또는 결과만 동일하더라도 동등한 장치 용어 또는 방법 용어로 표현될 수 있음이 이해되어야 한다. 이러한 동등하거나 더 광범위하거나 훨씬 더 일반적인 용어는 각 요소 또는 동작의 설명에 포함되는 것으로 간주되어야 한다. 이러한 용어는 본 발명이 받을 수 있는 암시적으로 광범위한 범위를 명시하기 위해 원하는 경우 대체될 수 있다.
하나의 예로서, 모든 동작은 그 동작을 취하기 위한 수단으로 또는 그 동작을 유발하는 요소로 표현될 수 있음을 이해해야 한다. 유사하게, 개시된 각각의 물리적 요소는 그 물리적 요소가 용이하게 하는 동작의 개시를 포함하는 것으로 이해되어야 한다. 이 마지막 양상과 관련하여 "프로세서"의 개시는 명시적으로 논의되었는지 여부에 관계없이 "프로세싱" 동작의 개시를 포함하는 것으로 이해되어야 하며, 역으로 "암호화" 동작의 개시만 있었다면, 그러한 개시는 "암호화 메커니즘"의 개시를 포함하는 것으로 이해되어야 한다. 이러한 변경 및 대체 용어는 설명에 명시적으로 포함되는 것으로 이해되어야 한다.
당업자는 본 명세서에 설명된 실시예에 의해 달성된 것과 실질적으로 동일한 결과를 달성하기 위해 본 발명, 그의 용도 및 구성에서 수많은 변형 및 대체가 이루어질 수 있음을 쉽게 인식할 수 있다.
따라서, 본 발명을 개시된 예시적인 형태로 제한하려는 의도는 없다. 많은 변형, 수정 및 대안적인 구성이 청구항들에 표현된 바와 같이 본 발명의 범위 및 사상에 속한다.

Claims (14)

  1. 제1 프로그램을 저장하는 제1 비일시적 컴퓨터 판독가능 매체 및 제2 프로그램을 저장하는 제2 비일시적 컴퓨터 판독가능 매체를 포함하는 시스템에 있어서,
    상기 제1 프로그램 및 상기 제2 프로그램은, 하나 이상의 프로세서에 의해 실행될 때, 제1 데이터 값을 제2 데이터 값으로 안전하게 대체하는데 사용하기 위한 방법을 실행하는 명령어를 포함하고, 상기 방법은, 상기 제1 비일시적 컴퓨터 판독가능 매체 상에서,
    제1 공개 키 및 제1 개인 키를 생성하는 단계;
    암호화 시드 값(cryptographic seed value)을 생성하는 단계;
    상기 암호화 시드 값이 타원 곡선(elliptic curve) 알고리즘을 거치도록 하여 제2 공개 키 및 제2 개인 키를 생성하는 단계;
    공유 암호화 키를 생성하기 위해 공개 키 암호화를 사용하여 상기 제1 공개 키와 상기 제2 개인 키를 결합하는 단계;
    상기 공유 암호화 키가 대칭 알고리즘을 거치도록 하여 상기 암호화 시드 값을 암호화하는 단계
    를 포함하는 것인, 시스템.
  2. 제1항에 있어서, 상기 방법은, 상기 제1 비일시적 컴퓨터 판독가능 매체 상에서,
    상기 공유 암호화 키를 생성한 후 그리고 상기 공유 암호화 키가 상기 대칭 알고리즘을 거치기 전에 상기 제2 개인 키를 제거하는 단계를 더 포함하는 것인, 시스템.
  3. 제1항에 있어서, 상기 방법은, 상기 제1 비일시적 컴퓨터 판독가능 매체 상에서,
    상기 암호화된 암호화 시드 값 및 상기 제2 공개 키를 통신 인터페이스를 통해 상기 제1 비일시적 컴퓨터 판독가능 매체로부터 상기 제2 비일시적 컴퓨터 판독가능 매체로 송신하는 단계를 더 포함하는 것인, 시스템.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 프로세서에 의해 실행될 때, 제1 데이터 값을 제2 데이터 값으로 안전하게 대체하는데 사용하기 위한 방법을 실행하는 명령어를 포함하는 프로그램을 저장하는 제1 비일시적 컴퓨터 판독가능 매체에 있어서, 상기 방법은,
    제1 공개 키 및 제1 개인 키를 생성하는 단계;
    암호화 시드 값을 생성하는 단계;
    상기 암호화 시드 값이 타원 곡선 알고리즘을 거치도록 하여 제2 공개 키 및 제2 개인 키를 생성하는 단계;
    공유 암호화 키를 생성하기 위해 공개 키 암호화를 사용하여 상기 제1 공개 키와 상기 제2 개인 키를 결합하는 단계;
    상기 공유 암호화 키가 대칭 알고리즘을 거치도록 하여 상기 암호화 시드 값을 암호화하는 단계
    를 포함하는 것인, 제1 비일시적 컴퓨터 판독가능 매체.
  9. 제8항에 있어서, 상기 방법은,
    상기 공유 암호화 키를 생성한 후 그리고 상기 공유 암호화 키가 상기 대칭 알고리즘을 거치기 전에 상기 제2 개인 키를 제거하는 단계를 더 포함하는, 제1 비일시적 컴퓨터 판독가능 매체.
  10. 제8항에 있어서, 상기 방법은,
    상기 암호화된 암호화 시드 값 및 상기 제2 공개 키를 통신 인터페이스를 통해 제2 비일시적 컴퓨터 판독가능 매체로 송신하는 단계를 더 포함하는 것인, 제1 비일시적 컴퓨터 판독가능 매체.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
KR1020227004232A 2019-07-12 2020-07-10 데이터 보호 및 복구 시스템 및 방법 KR102644767B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247002284A KR20240013292A (ko) 2019-07-12 2020-07-10 데이터 보호 및 복구 시스템 및 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962873308P 2019-07-12 2019-07-12
US62/873,308 2019-07-12
PCT/US2020/041522 WO2021011343A1 (en) 2019-07-12 2020-07-10 Data protection and recovery systems and methods

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247002284A Division KR20240013292A (ko) 2019-07-12 2020-07-10 데이터 보호 및 복구 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20220025155A KR20220025155A (ko) 2022-03-03
KR102644767B1 true KR102644767B1 (ko) 2024-03-06

Family

ID=74210894

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020247002284A KR20240013292A (ko) 2019-07-12 2020-07-10 데이터 보호 및 복구 시스템 및 방법
KR1020227004232A KR102644767B1 (ko) 2019-07-12 2020-07-10 데이터 보호 및 복구 시스템 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020247002284A KR20240013292A (ko) 2019-07-12 2020-07-10 데이터 보호 및 복구 시스템 및 방법

Country Status (7)

Country Link
US (2) US11444761B2 (ko)
EP (1) EP3997834A4 (ko)
JP (1) JP2022540653A (ko)
KR (2) KR20240013292A (ko)
AU (1) AU2020314540A1 (ko)
CA (1) CA3141024A1 (ko)
WO (1) WO2021011343A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11537740B2 (en) * 2021-01-04 2022-12-27 Bank Of America Corporation System for enhanced data security using versioned encryption
CN114039727A (zh) * 2021-12-09 2022-02-11 施耐德电气(中国)有限公司 一种数据传输方法、装置、智能终端及网关设备
US11948144B2 (en) * 2022-02-07 2024-04-02 Capital One Services, Llc Knowledge-based authentication for asset wallets
CN115242468B (zh) * 2022-07-07 2023-05-26 广州河东科技有限公司 一种基于rs485总线的安全通信系统及其方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130227279A1 (en) 2012-02-29 2013-08-29 Good Technology Corporation Method of operating a computing device, computing device and computer program

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19935285B4 (de) 1999-07-27 2012-07-05 Deutsche Telekom Ag Verfahren zur Generierung/Regenerierung eines Chiffrierschlüssels für ein Kryptographieverfahren
US7318235B2 (en) * 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
ATE444617T1 (de) * 2003-01-07 2009-10-15 Qualcomm Inc System, vorrichtung und verfahren zum auswechseln eines kryptographischen schlüssels
US8842833B2 (en) * 2010-07-09 2014-09-23 Tata Consultancy Services Limited System and method for secure transaction of data between wireless communication device and server
JP5932040B2 (ja) * 2012-08-08 2016-06-08 株式会社東芝 再暗号化鍵生成装置及びプログラム
US9525550B2 (en) * 2014-12-29 2016-12-20 Vasco Data Security, Inc. Method and apparatus for securing a mobile application
US10644885B2 (en) * 2015-07-14 2020-05-05 Fmr Llc Firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems
CN107404461B (zh) * 2016-05-19 2021-01-26 阿里巴巴集团控股有限公司 数据安全传输方法、客户端及服务端方法、装置及系统
US10057061B1 (en) * 2016-09-13 2018-08-21 Wells Fargo Bank, N.A. Secure digital communications
CN107040369B (zh) * 2016-10-26 2020-02-11 阿里巴巴集团控股有限公司 数据传输方法、装置及系统
US10615970B1 (en) * 2017-02-10 2020-04-07 Wells Fargo Bank, N.A. Secure key exchange electronic transactions
CN107465505B (zh) * 2017-08-28 2021-07-09 创新先进技术有限公司 一种密钥数据处理方法、装置及服务器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130227279A1 (en) 2012-02-29 2013-08-29 Good Technology Corporation Method of operating a computing device, computing device and computer program

Also Published As

Publication number Publication date
KR20220025155A (ko) 2022-03-03
KR20240013292A (ko) 2024-01-30
CA3141024A1 (en) 2021-01-21
US20220141012A1 (en) 2022-05-05
JP2022540653A (ja) 2022-09-16
WO2021011343A1 (en) 2021-01-21
AU2020314540A1 (en) 2022-02-17
US20220407691A1 (en) 2022-12-22
US11444761B2 (en) 2022-09-13
EP3997834A1 (en) 2022-05-18
EP3997834A4 (en) 2023-08-09

Similar Documents

Publication Publication Date Title
US10482291B2 (en) Secure field-programmable gate array (FPGA) architecture
KR102644767B1 (ko) 데이터 보호 및 복구 시스템 및 방법
US7860254B2 (en) Computer system security via dynamic encryption
WO2016065321A1 (en) Secure communication channel with token renewal mechanism
US11595203B2 (en) Systems and methods for encrypted content management
US10057060B2 (en) Password-based generation and management of secret cryptographic keys
US11588627B2 (en) Systems and methods for utilizing quantum entropy in single packet authorization for secure network connections
CN107453880B (zh) 一种云数据安全存储方法和系统
US11005828B1 (en) Securing data at rest
CN108471352A (zh) 基于分布式私钥的处理方法、系统、计算机设备及存储介质
US20200195617A1 (en) Securing data in motion
CN107483388A (zh) 一种安全通信方法及其终端和云端
Das et al. A decentralized open web cryptographic standard
Hussien et al. Scheme for ensuring data security on cloud data storage in a semi-trusted third party auditor
Prakash et al. Data security in wired and wireless systems
ALnwihel et al. A Novel Cloud Authentication Framework
Mantoro et al. Preventing Cyber Crime in Electronic Medical Records Using Encryption Data
Nishchal Enhanced lightweight encryption algorithm for smartphone
CN117615471A (zh) 一种基于fpga的无线通信数据安全传输系统及方法
CN113794570A (zh) 一种基于零知识证明的私钥管理方法及系统
Karavasilev et al. Securing Sensitive Digital Data Techniques

Legal Events

Date Code Title Description
A302 Request for accelerated examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
E801 Decision on dismissal of amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
A107 Divisional application of patent
GRNT Written decision to grant