KR20220025155A - 데이터 보호 및 복구 시스템 및 방법 - Google Patents
데이터 보호 및 복구 시스템 및 방법 Download PDFInfo
- Publication number
- KR20220025155A KR20220025155A KR1020227004232A KR20227004232A KR20220025155A KR 20220025155 A KR20220025155 A KR 20220025155A KR 1020227004232 A KR1020227004232 A KR 1020227004232A KR 20227004232 A KR20227004232 A KR 20227004232A KR 20220025155 A KR20220025155 A KR 20220025155A
- Authority
- KR
- South Korea
- Prior art keywords
- key
- seed value
- value
- private key
- readable medium
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000011084 recovery Methods 0.000 title description 19
- 238000004891 communication Methods 0.000 claims description 9
- 230000001172 regenerating effect Effects 0.000 claims description 3
- 230000001052 transient effect Effects 0.000 claims 1
- 239000000463 material Substances 0.000 description 25
- 230000008569 process Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 13
- 230000001010 compromised effect Effects 0.000 description 10
- 230000000875 corresponding effect Effects 0.000 description 10
- 238000013475 authorization Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000009795 derivation Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002427 irreversible effect Effects 0.000 description 2
- 230000001343 mnemonic effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000003339 best practice Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000004905 finger nail Anatomy 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000000282 nail Anatomy 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000007474 system interaction Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/045—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/068—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key 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/0841—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
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는 예시적인 방법의 흐름도이다.
도 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 비일시적 컴퓨터 판독가능 매체 및 제2 프로그램을 저장하는 제2 비일시적 컴퓨터 판독가능 매체를 포함하는 시스템에 있어서,
상기 제1 프로그램 및 상기 제2 프로그램은, 하나 이상의 프로세서에 의해 실행될 때, 제1 데이터 값을 제2 데이터 값으로 안전하게 대체하는 방법을 실행하는 명령어를 포함하고, 상기 방법은,
제1 공개 키 및 제1 개인 키를 생성하는 단계;
암호화 시드 값(cryptographic seed value)을 생성하는 단계;
상기 암호화 시드 값이 타원 곡선(elliptic curve)을 거치도록 하여 제2 공개 키 및 제2 개인 키를 생성하는 단계;
공유 암호화 키를 생성하기 위해 공개 키 암호화를 사용하여 상기 제1 공개 키와 상기 제2 개인 키를 결합하는 단계;
상기 공유 암호화 키가 대칭 알고리즘을 거치도록 하여 상기 암호화 시드 값을 암호화하는 단계
를 포함하는 것인, 시스템. - 제1항에 있어서, 상기 방법은,
상기 공유 암호화 키를 생성한 후 그리고 상기 공유 암호화 키가 상기 대칭 알고리즘을 거치기 전에 상기 제2 개인 키를 제거하는 단계를 더 포함하는 것인, 시스템. - 제1항에 있어서, 상기 방법은,
상기 암호화된 암호화 시드 값 및 상기 제2 공개 키를 통신 인터페이스를 통해 상기 제1 비일시적 컴퓨터 판독 가능 매체로부터 상기 제2 비일시적 컴퓨터 판독 가능 매체로 송신하는 단계를 더 포함하는 것인, 시스템. - 제3항에 있어서, 상기 방법은,
상기 제2 비일시적 컴퓨터 판독 가능 매체 상에서 상기 암호화된 암호화 시드 값 및 상기 제2 공개 키를 수신하는 단계; 및
상기 제2 공개 키 및 상기 제1 개인 키를 사용하여, 상기 암호화된 암호화 시드 값을 복호화하고 복호화된 암호화 시드 값을 생성하기 위한 제2 공유 키를 생성하는 단계
를 더 포함하는 것인, 시스템. - 제4항에 있어서, 상기 방법은,
상기 제2 비일시적 컴퓨터 판독가능 매체로부터의 상기 복호화된 암호화 시드 값을 상기 제1 비일시적 컴퓨터 판독가능 매체 상에서 수신하는 단계;
상기 복호화된 암호화 시드 값이 타원 곡선을 거치도록 하여 상기 제2 개인 키를 재생성하는 단계; 및
상기 재생성된 제2 개인 키를 사용하여, 상기 제2 데이터 값에 암호학적으로 서명(cryptographically sign)하는 단계
를 더 포함하는 것인, 시스템. - 제5항에 있어서, 상기 방법은,
상기 서명된 제2 데이터 값을 통신 인터페이스를 통해 상기 제2 비일시적 컴퓨터 판독가능 매체로 송신하는 단계를 더 포함하는 것인, 시스템. - 제6항에 있어서, 상기 방법은,
상기 서명된 제2 데이터 값을 수신하는 단계;
상기 제2 공개 키를 사용하여, 상기 제1 개인 키가 상기 암호화된 암호화 시드 값을 복호화하는 데 사용되었다는 것을 검증하는 단계
를 더 포함하는 것인, 시스템. - 프로세서에 의해 실행될 때, 제1 데이터 값을 제2 데이터 값으로 안전하게 대체하는 방법을 실행하는 명령어를 포함하는 프로그램을 저장하는 제1 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 방법은,
제1 공개 키 및 제1 개인 키를 생성하는 단계;
암호화 시드 값을 생성하는 단계;
상기 암호화 시드 값이 타원 곡선을 거치도록 하여 제2 공개 키 및 제2 개인 키를 생성하는 단계;
공유 암호화 키를 생성하기 위해 공개 키 암호화를 사용하여 상기 제1 공개 키와 상기 제2 개인 키를 결합하는 단계;
상기 공유 암호화 키가 대칭 알고리즘을 거치도록 하여 상기 암호화 시드 값을 암호화하는 단계
를 포함하는 것인, 제1 비일시적 컴퓨터 판독 가능 매체. - 제1항에 있어서, 상기 방법은,
상기 공유 암호화 키를 생성한 후 그리고 상기 공유 암호화 키가 상기 대칭 알고리즘을 거치기 전에 상기 제2 개인 키를 제거하는 단계를 더 포함하는, 제1 비일시적 컴퓨터 판독 가능 매체. - 제1항에 있어서, 상기 방법은,
상기 암호화된 암호화 시드 값 및 상기 제2 공개 키를 통신 인터페이스를 통해 제2 비일시적 컴퓨터 판독 가능 매체로 송신하는 단계를 더 포함하는 것인, 제1 비일시적 컴퓨터 판독 가능 매체. - 제10항에 있어서, 상기 제2 비일시적 컴퓨터 판독가능 매체는, 제2 프로세서에 의해 실행될 때, 제2 방법을 실행하는 명령어를 포함하고, 상기 제2 방법은,
상기 제2 공개 키 및 상기 제1 개인 키를 사용하여, 상기 암호화된 암호화 시드 값을 복호화하고 복호화된 암호화 시드 값을 출력하기 위한 제2 공유 키를 생성하는 단계를 포함하는 것인, 제1 비일시적 컴퓨터 판독 가능 매체. - 제11항에 있어서, 상기 방법은,
상기 제2 비일시적 컴퓨터 판독 가능 매체로부터 상기 복호화된 암호화 시드 값을 수신하는 단계;
상기 복호화된 암호화 시드 값이 타원 곡선을 거치도록 하여 상기 제2 개인 키를 재생성하는 단계; 및
상기 재생성된 제2 개인 키를 사용하여, 상기 제2 데이터 값에 암호학적으로 서명하는 단계
를 더 포함하는 것인, 제1 비일시적 컴퓨터 판독 가능 매체. - 제12항에 있어서, 상기 방법은,
상기 서명된 제2 데이터 값을 통신 인터페이스를 통해 상기 제2 비일시적 컴퓨터 판독가능 매체로 송신하는 단계를 더 포함하는 것인, 제1 비일시적 컴퓨터 판독 가능 매체. - 제13항에 있어서, 상기 제2 방법은,
상기 서명된 제2 데이터 값을 수신하는 단계;
상기 제2 공개 키를 사용하여, 상기 제1 개인 키가 상기 암호화된 암호화 시드 값을 복호화하는 데 사용되었다는 것을 검증하는 단계
를 더 포함하는 것인, 제1 비일시적 컴퓨터 판독 가능 매체.
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 true KR20220025155A (ko) | 2022-03-03 |
KR102644767B1 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 (7)
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 |
EP4311162A4 (en) * | 2021-08-20 | 2024-10-09 | Samsung Electronics Co Ltd | ELECTRONIC DEVICE FOR GENERATING MNEMONIC WORDS OF A PRIVATE KEY AND METHOD FOR OPERATING THE ELECTRONIC DEVICE |
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 |
US20230291548A1 (en) * | 2022-03-08 | 2023-09-14 | Western Digital Technologies, Inc. | Authorization requests from a data storage device to multiple manager devices |
CN115242468B (zh) * | 2022-07-07 | 2023-05-26 | 广州河东科技有限公司 | 一种基于rs485总线的安全通信系统及其方法 |
CN118051937B (zh) * | 2024-04-16 | 2024-06-21 | 天清数安(天津)科技有限公司 | 一种基于数据加密和覆写的数据安全销毁方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8259947B2 (en) * | 2003-01-07 | 2012-09-04 | Qualcomm Incorporated | Recreating a cryptographic key in a replacement device |
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 (11)
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 |
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 |
EP2884690A4 (en) * | 2012-08-08 | 2016-03-09 | Toshiba Kk | READY KEY GENERATING DEVICE, RECTIFYING DEVICE, ENCRYPTION DEVICE, DECRYPTION DEVICE, AND PROGRAM |
US9525549B2 (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 | 创新先进技术有限公司 | 一种密钥数据处理方法、装置及服务器 |
-
2020
- 2020-07-10 CA CA3141024A patent/CA3141024A1/en active Pending
- 2020-07-10 AU AU2020314540A patent/AU2020314540A1/en not_active Abandoned
- 2020-07-10 WO PCT/US2020/041522 patent/WO2021011343A1/en unknown
- 2020-07-10 EP EP20839917.0A patent/EP3997834A4/en active Pending
- 2020-07-10 JP JP2022502086A patent/JP2022540653A/ja active Pending
- 2020-07-10 KR KR1020247002284A patent/KR20240013292A/ko not_active Application Discontinuation
- 2020-07-10 KR KR1020227004232A patent/KR102644767B1/ko active IP Right Grant
- 2020-07-12 US US17/253,822 patent/US11444761B2/en active Active
-
2022
- 2022-08-17 US US17/889,583 patent/US20220407691A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8259947B2 (en) * | 2003-01-07 | 2012-09-04 | Qualcomm Incorporated | Recreating a cryptographic key in a replacement device |
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 |
---|---|
KR102644767B1 (ko) | 2024-03-06 |
US20220407691A1 (en) | 2022-12-22 |
US20220141012A1 (en) | 2022-05-05 |
EP3997834A1 (en) | 2022-05-18 |
EP3997834A4 (en) | 2023-08-09 |
WO2021011343A1 (en) | 2021-01-21 |
JP2022540653A (ja) | 2022-09-16 |
US11444761B2 (en) | 2022-09-13 |
KR20240013292A (ko) | 2024-01-30 |
AU2020314540A1 (en) | 2022-02-17 |
CA3141024A1 (en) | 2021-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102644767B1 (ko) | 데이터 보호 및 복구 시스템 및 방법 | |
US10482291B2 (en) | Secure field-programmable gate array (FPGA) architecture | |
KR101989450B1 (ko) | 블록체인 기반의 공개 분산 데이터베이스에서 데이터에 대한 보안을 유지하는 방법 및 이를 이용한 블록체인 관리 서버 | |
JP7024563B2 (ja) | 秘密かつ相互認証される鍵交換 | |
CN109150517B (zh) | 基于sgx的密钥安全管理系统及方法 | |
US10880100B2 (en) | Apparatus and method for certificate enrollment | |
US7860254B2 (en) | Computer system security via dynamic encryption | |
CA2747891C (en) | Method for generating an encryption/decryption key | |
CN101800738B (zh) | 一种移动设备安全访问与存储内网数据的实现系统及方法 | |
WO2016065321A1 (en) | Secure communication channel with token renewal mechanism | |
US11005828B1 (en) | Securing data at rest | |
CN107920052B (zh) | 一种加密方法及智能装置 | |
CN108471352A (zh) | 基于分布式私钥的处理方法、系统、计算机设备及存储介质 | |
US11985112B2 (en) | Securing data in motion by zero knowledge protocol | |
CN105871858A (zh) | 一种保证数据安全的方法及系统 | |
Das et al. | A decentralized open web cryptographic standard | |
CN112883396B (zh) | 可信密码模块安全管理方法及系统 | |
US11930117B2 (en) | Method and apparatus for reversible tokenization with support for embeddable role-based access control | |
Hussien et al. | Scheme for ensuring data security on cloud data storage in a semi-trusted third party auditor | |
AU2019101343B4 (en) | A computer system implemented method for generating a symmetric encryption key for encrypting and decrypting secure data | |
Prakash et al. | Data security in wired and wireless systems | |
US12107963B1 (en) | Method and apparatus for reversible tokenization with support for embeddable role-based access control | |
CN112947855B (zh) | 一种基于硬件安全区的高效加密重复数据删除方法 | |
ALnwihel et al. | A Novel Cloud Authentication Framework | |
Pujol et al. | A Secure and User Friendly Multi-Purpose Asymmetric Key Derivation System (MPKDS) |
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 |