KR20070108186A - 보안 암호화 시스템, 장치 그리고 방법 - Google Patents
보안 암호화 시스템, 장치 그리고 방법 Download PDFInfo
- Publication number
- KR20070108186A KR20070108186A KR1020077019372A KR20077019372A KR20070108186A KR 20070108186 A KR20070108186 A KR 20070108186A KR 1020077019372 A KR1020077019372 A KR 1020077019372A KR 20077019372 A KR20077019372 A KR 20077019372A KR 20070108186 A KR20070108186 A KR 20070108186A
- Authority
- KR
- South Korea
- Prior art keywords
- stream
- plain text
- cryptographic
- cipher
- key
- Prior art date
Links
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/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- 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
-
- 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
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- 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/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
본원발명은 평문 정보를 안전하게 암호화하는 시스템, 장치 및 방법에 관한 것이다. 더욱 상세하게는 평문 정보와 제 1 키를 이용해 제 1 암호 스트림을 생성하여 동기화하고, 제 2 동기화된 암호 스트림을 형성하기 위해 제어가능한 명문 스트림을 임의 추출하는 랜덤 함수와 제 2 키를 사용하여 제 2 암호 스트림을 생성하여 동기화하고, 암호문 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 사용해 복수의 제 1 및 제 2 암호 스트림을 연산하는 전송 에이전트와 상기 암호문 스트림을 복호화하는 수신 에이전트를 포함한다.
암호화, 복호화, 평문(plaintext), 암호문(ciphertext)
Description
본원 발명은 일반적으로 평문(plaintext) 정보(읽을 수 있는 메시지)을 안전하게 암호화하는 시스템, 장치 그리고 방법에 관한 것이다. 더욱 상세하게는, 내부 동기 메커니즘(internal synchronous mechanism)을 이용하여 암호화된 정보에 인증받지 못한 접근을 막기 위해 정보를 암호화하는 시스템, 장치 그리고 방법에 관한 것이다.
패스워드(key K)를 이용하여 읽을 수 있는 정보(plaintext P)을 읽을 수 없는 형태로 변환하는 과정은 암호화로 간주된다. 그리고 복호화(decryption)는 암호화의 반대 과정이다. 암호화 및 복호화의 전체적인 과정 혹은 시스템은 종종 사이퍼(cipher)(이하, "암호"라고 한다.)로 간주된다. 암호화와 복호화를 모두를 위해 하나의 키가 사용될 때 사이퍼(cipher)는 도 1에 설명된 것(100)과 같이 대칭키 암호(cipher)로 불린다. 대칭키 암호들은 일반적으로 블록 암호 또는 스트림 암호 중 하나로 분류된다.
도 2에 설명된 바와 같이(200), 일반적인 블록 암호는 각 블록에서 동일 키를 이용하여 동시에 평문 특징에 대하여 하나의 블록에서 작동한다. 오늘날 이용되는 암호 방법의 대부분은 블록 암호이다. 즉, DES(Data Encryption Standard), Tri-DES(Triple Data Encryption Standard), CAST, IDEA(International Data Encryption Algorithm), Blowfish/TwoFish, 그리고 AES(Advanced Encryption Standard) 등이 있다. 대칭 키 암호(block or stream)는 블록 그리고 키 길이에 의해 분류될 수 있다. 예를 들어, Tri-DES 암호는 168 비트 키 길이를 가진 64 블록 암호이고 Tri-DES(64:128)로 적을 수 있다. 유사하게, 다른 암호들은 CAST-128(64:128), RC4(1:var), Blowfish(64:var) 그리고 AES(var:var)로 표현될 수 있다. 동일한 키가 각 평문 블록 Pi에 사용될 때 소위 블록 효과(block effect)가 발생한다. 즉, 동일한 평문 블록은 항상 동일한 암호문 블록 Ci가 생성된다. 블록 효과를 제거 혹은 감소시키기 위해, 오퍼레인션 모드(Operation Modes)라 불리는 많은 피드백 메커니즘들이 사용될 수 있다.
예를 들어, ECB(Electronic Code Book) 모드는 도면부호 300에 의한 도 3에서 설명된다. 여기서 각 평문 블록 P1(302), P2(304) 그리고 P3(306)은 각각의 암호문 블록 C1, C2 그리고 C3 을 형성하기 위해 암호화된다. CBC(Cipher Block Chaining) 모드는 도면부호 400에 의한 도4에서 설명된다. 여기서, 평문 블록P1(402) 그리고 암호문 블록 C0(408), 그리고 유사하게, 평문 블록P2(404)와 암호문 블록C1(412)의 조합 그리고 평문 블록P3(406)과 암호문 블록C2(414)의 조합은 exclusive disjunction operator XOR(418)에 의해 작동되고, 블록 E(410)에서 암호화가 이루어지고, 암호문 블록 C1(412),C2(414),C3(416)을 각각 생성한다.
CFB(Cipher Feedback) 모드는 도면번호 500에 의한 도 5 에서 설명된다. 여기서 암호문 블록 C0(512)는 블록 E(508)에서 암호화가 이루어지고, 암호문 블록 C1(514)을 생성하기 위해 exclusive disjunction operator XOR(510)에 의해 평문 블록 P1(502)와 함께 작동한다. 유사하게, 암호문 블록 C1(514)는 블록 E(508)에서 암호화가 이루어지고, 암호문 블록 C2(516)를 생성하기 위해 exclusive disjunction operator XOR(510)에 의해 평문 블록 P2(504)와 함께 작동한다. 그리고 암호문 블록 C2(516)는 블록 E(508)에서 암호화가 이루어지고, 암호문 블록 C3(518)를 생성하기 위해 exclusive disjunction operator XOR(510)에 의해 평문 블록 P3(506)와 함께 작동한다
OFB(Output Feedback) 모드는 도면번호 600에 의해 도 6에서 설명된다. 여기서 암호문 블록 C0(612)는 블록 E(610)에서 암호화가 이루어지고, 그 출력은 (1)암호문 블록 C1(614)를 생성하기 위해 exclusive disjunction operator XOR(608)에 의 해 평문 블록 P1(602)와 함께 작동한다. 그리고 (2)다음 암호화 블록 E(610)에 입력되고, 다음 암호화 블록 E(610)에서 암화화가 이루어지고, 그 출력은 (3)암호문 블록 C2(616)를 생성하기 위해 exclusive disjunction operator XOR(608)에 의해 평문 블록 P2(604)와 함께 작동한다. 그리고 (4)다음 암호화 블록 E(610)에 입력되고, 다음 암호화 블록 E(610)에서 암화화가 이루어지고, 그 출력은 (5)암호문 블록 C3(618)를 생성하기 위해 exclusive disjunction operator XOR(608)에 의해 평문 블록 P3(606)와 함께 작동한다. 그리고 동일한 형태로 계속된다.
일반적으로, 블록 암호의 블록 길이가 하나로 감소하면 암호는 각 문자(character)들의 스트림을 암호화하는 것과 유사하다. 그리고 또한 스트림 암호로 분류된다. 평문 스트림이 주어지면, 스트림 암화를 위한 전형적인 암호화 과정은 "key-stream"이라 불리는 키 K로부터 임의적인 긴 스트링을 생성하는 것이다. 그때, 키-스트림은 암호문을 생성하는 평문 문자 대 문자와 함께 비트와이즈(bitwise) XOR 작동을 수행하기 위해 사용된다.
도면부호 700과 관련한 도 7에서 설명된 것과 같이, 스트림 암호를 사용하는 암호화(702)는 암호문(712)을 형성하기 위해 "키-스티림"이라 불리는 암호화 문자들의 스트림을 이용하여 동시에 평문의 하나의 독자 문자에서 암호화(710)가 이루 어진다. 암호문(712)가 수신되면, 복호화 과정(704)이 진행되고, 여기서 평문(718)을 제공하기 위해 키-스트림(714)가 역 암호화 과정(716)에 적용된다. 키-스트림을 생성하기 위해, 피드백 메커니즘이 이용되어 그 결과 키는 계속해서 변한다. 현재 사용되는 스트림 암호들 중에는 RC4(RSA Data Security(현재 RSA SECURITY)을 위한 Rivest에 의해 디자인된 스트림 암호로, 이것은 임의 순열(Permutation)의 사용에 기초한 바이트-기반 오퍼레이션들을 가진 가변 키-사이즈 스트림 암호이다.); ISSAAC((Internet Security, Application, Authentication and Crytography), 이것은 시뮬레이션을 위한 스트림 암호로 그리고 일반적인 목적의 의사 난수(pseudorandom numbers) 재생기로 유용하다.); SEAL(Software-optimized Encryption Algorithm), 이것은 Rogaway 그리고 Coppersmith에 의해 디자인된 32-bit 머신을 위한 빠른 스트림 암호이다.)들이 있다.
스트림 암호들은 일반적으로 "동기화(synchronizing)"와 자체-동기화(self-synchronizing)으로 지정되는 두 개의 카테고리로 나누어진다. 스트림 암호의 생성된 키-스트림이 평문과 암호문에 독립적인 경우에, 그것은 동기화(synchronizing) 스트림 암호로 불린다. 동기화된 스티림 암호의 키-스트림은 일반적으로 단지 키(key)에만 의존한다. 이러한 암호화의 하나의 특징은 송신단과 수신단 모두 동기화되어야 한다는 것이다. 다시 말하면, 키-스티림의 같은 키와 같은 위치가 사용되는 한 복호화는 정의가 명확하고 이에 따라 처리된다. 특히, 키-스티림과 평문이 이진 암호문(binary ciphertext)을 생성하기 위해 이진 레벨(또는 비트)에서 XOR될 때 동기화 스트림 암호는 바이너리 애디티브 스트림 암호(binary additive stream cipher)로 불린다. 바이너리 애디티브 스트림 암호(binary additive stream cipher)는 산업분야에서 잘 알려져 있다. 암호의 구조는 복잡하지 않다. 예를 들어, 적절한 의사 난수(pseudorandom numbers) 재생기는 임의 비트의 시퀀스를 재생하기 위한 입력 키와 같이 사용될 수 있다. 대부분의 실질적이고 상업적인 스트림 암호들은 바이너리 애디티브 스트림 암호(binary additive stream cipher)이다.
재생된 키-스트림이 키의 기능이고 이전 암호문의 일부분일 때, 스트림 암호는 자체-동기화(self-synchronizing)로 불린다. 암호화을 위한 암호문 데이터의 일부를 사용하는 것은 블록 암호의 블록 효과를 줄이기 위해 사용된다. 이러한 이유로, CFB(Cipher Feedback) 모드는 동일 키-스트림을 생성하기 위해 암호에서 단지 암호화를 이용하는 것에 의해 스트림 암호로 연산하기 위해 쉽게 변형될 수 있다. 암호화와 복호화를 수행하기 위해 CFB(Cipher Feedback) 모드를 스트림 암호롤 변형하는 것은 도 8과 도9에서 설명된다.
블록 암호는 동일 키-스트림을 재생하기 위해 사용된다. CFB(Cipher Feedback) 모드에서 암호화를 위해, 도 8에서 설명되는 것(800)과 같이, 블록 bi는 암호 블록 ei(804)를 재생하기 위해 블록 암호 E(802)에 전달된다. 그때, ei(804)는 키 스트림{k0, ...., kn}으로 나누어진다. 평문 스트림{P0, .... ,Pn}(810)의 부분과 함께, XOR연산(812)이 수행되고 암호화 스트림{C0, ... Cn}(804)의 부분으로 재생된다. 이러한 부분(814)은 하나의 블록으로 그룹화되고 다음 암호화 수행을 위해 블록 암호 bi(806)에 피드백된다.
CFB(Cipher Feedback) 모드에서 복호화를 위해, 도 9에서 설명되는 것(900)과 같이, 암호문 스트림(912)의 부분은 블록 암호 암호화를 위해 하나의 블록으로 변활 수 있다. 동일한 블록(906)은 동일 블록(906)이 블록 암호 E(902)에 입력되고, 동일한 출력 ei(904)가 얻어진다. 그때, ei(904)는 키 스트림{k0, ...., kn}(908)으로 나누어진다. 이러한 키 스트림(908)은 평문 블록(910)을 생성하기 위해 암호화 스트림{C0, ... Cn}(912)와 함께 XOR된다. 또, 동일 키-스트림을 사용하기 때문에 동일 평문 섹션{P0, .... ,Pn}(910)이 얻어진다.
블록 암호의 "OFB(Output Feedback) 모드"는 암호문과 평문에 독립적이고 동기화 스트림 암호를 수행하기 위해 사용될 수 있다. 도 10에 설명되는 것(1000)과 같이, OFB(Output Feedback) 모드 암호화에 있어서, 사용자 키는 블록 bi(1008)로 고려될 수 있고 블록 암호 E(1006)에 입력될 수 있다. 그 결과가 블록 ei(1012)이다. 블록 ei(1012)는 키-스트림{k0, ...., kn}(1002)로 변하고, 키-스트림{k0, ...., kn}(1002)는 암호문 스트림{C0, ... Cn}(1010)을 생성하기 위해 평문 스트 림{P0, .... ,Pn}(1004)와 함께 XOR(1014)된다. 키 스트림의 다음 섹션을 구하기 위해 블록 ei(1012)는 다시 블록 암호 E(1006)로 피드백된다.
도 11에 설명된 것(1100)과 같이, 부호화 과정을 위해, 동일 블록 bi(1108)(즉, 사용자 키)은 ei(1104)를 생성하기 위해 블록 암호 E(1106)에 입력된다. 동일 스트림{k0, ...., kn}(1102)이 생성된다. XOR 연산(1112)은 키-스트림{k0, ...., kn}(1102)과 암호 스트림{C0, ... Cn}에서 수행된다. 그리고 동일 평문 스트림{P0, .... ,Pn}(1110)이 얻어진다.
그러나, 전통적인 블록 그리고 스트림 암호의 어떤 것도 안전한 암호화 틀을 제공하지는 못했다.
본원발명의 일면에 따라, 평문 정보를 안전하게 암호화하고, 평문 정보와 제 1 키를 이용해 제 1 암호 스트림을 생성하여 동기화하고, 제 2 동기화된 암호 스트림을 형성하기 위해 제어가능한 명문 스트림을 임의 추출하는 랜덤 함수와 제 2 키를 사용하여 제 2 암호 스트림을 생성하여 동기화하고, 암호문 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 사용해 복수의 제 1 및 제 2 암호 스트림을 연산하는 전송 에이전트, 상기 암호문 스트림을 복호화하는 수신 에이전트를 포함한다.
상기 전송 에이전트는 상기 평문 정보를 처리하거나 또는 수신된 암호문 스트림을 복호화 위해 연결된 CPU(Central Process Unit), 메모리부, 전송부를 포함할 수 있다.
본원발명의 일면에 따라 상기 전송부는 상기 수신 에이전트에 암호문 스트림과 제어가능한 평문 스트림을 전송할 수 있다.
상기 시스템은 WAN, LAN 또는 WAN과 LAN의 조합을 통해 링크된 데이터 엔트리 스테이션과 데이티 베이스 서버를 포함한다.
본원발명의 일면에 따라 평문 정보를 안전하게 암호화하는 장치는 데이터 엔트리 스테이션을 포함한다. 상기 데이터 엔트리 스테이션은 평문 정보와 제 1 키를 이용해 제 1 암호 스트림을 생성하여 동기화하는 제 1 암호 스트림 재생기, 제어가능한 평문 스트림을 임의 추출하여 동기화하기 위해 랜덤 함수와 제 2 키를 이용해 제 2 암호 스트림을 생성하여 동기화하는 제 2 암호 스트림 재생기, 암호문 스트림을 얻기 위해 제 1 및 제 2 동기화된 암호 스트림들을 연산하는 EDO(Exclusive Disjunction Operator)를 포함한다.
상기 제 1 암호 스트림 재생기는 상기 평문 정보와 제 1 키의 입력에 따라 상기 제 1 암호 스트림을 생성하기 위해 배열된 블록 암호 암호화 유닛를 포함하고, 여기서 상기 블록 암호 암화 유닛은 제 1 암호 스트림을 생성하는 블록 암호 암호화 장치 및 제 1 암호 스트림을 동기화하는 제 1 동기화 유닛; 또는 제 1 암호 스트림을 생성하여 동기화하는 블록 암호 암호화/동기화 유닛 중에서 하나를 포함한다.
상기 제 2 암호 스트림 재생기는 제 2 암호 스트림을 출력하기 위해 상기 제 2 키와 상기 제어가능한 평문 스트림의 입력에 따라 상기 제어가능한 평문 스트림을 임의 추출한 후 동기화하도 배열된 랜덤 함수를 포함하고, 상기 랜덤 함수는 상기 제어가능한 평문 스트림을 임의 추출하는 랜덤 함수 재생기 및 상기 임의 추출된 제 2 암호 스트림을 동기화하는 제 2 동기화 유닛; 또는 임의 추출한 후에 제 2 암호 스트림을 동기화하는 랜덤 함수 재생기/동기화 유닛 중에서 하나를 포함한다.
상기 EDO(Exclusive Disjunction Operator)는 exclusive OR logical operator이다.
본원발명의 일면에 따라, 평문 정보를 안전하게 암호화하는 방법은 평문 정보와 제 1 키를 이용해 제 1 암호 스트림을 재생하여 동기화하는 단계; 제 2 암호 스트림을 형성하기 위 제어가능한 평문 스트림을 임의 추출하는 랜덤 함수와 제 2 키를 이용해 제 2 암호 스트림을 재생하여 동기화하는 단계; 암호 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 이용해 복수의 제 1 및 제 2 암호 스트림을 연산하는 단계를 포함한다.
평문 정보를 안전하게 암호화하는 방법은 평문 정보와 제 1 키로부터 생성되어 동기화된 제 1 동기 스트림 및 제 2 키를 이용해 제어가능한 평문 스트림으로부터 임의추출한 후에 동기화된 제2 암호 스트림으로부터 암호문 스트림을 생성하는 EDO(Exclusive Disjunction Operator)를 사용하는 것을 특징으로 한다.
본원발명의 일면에 따라, 평문 정보를 안전하게 암호화하는 방법은 제 1 키워드를 이용해 평문 정보를 암호화하여 재생되고 동기화된 적어도 하나의 제 1 암호 스트림 및 제어가능한 평문과 제 2 키워드에 대한 랜덤 함수 연산에 의해 재생되고 동기화된 적어도 하나의 제2 암호 스트림을 포함하는 복수의 동기화된 암호 스트림들을 재생하는 단계; 암호문 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 이용해 동기화된 복수의 암호 스트림들을 연산하는 단계를 포함한다.
본원발명의 일면에 따라, 평문 정보를 안전하게 암호화하는 컴퓨터로 읽을 수 있는 명령어들을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서, 상기 컴퓨터로 읽을 수 있는 명령어들은 상기 평문 정보와 제 1 키를 이용해 제 1 암호 스트림을 재생하고 동기화하고, 제 2 키와 랜덤 함수를 이용해 제어가능한 평문 스트림으로부터 형성된 제 2 암호 스트림을 임의추출하여 동기화하고, 암호문 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 이용해 동기화된 복수의 제 1 및 제 2 암호 스트림들을 연산하는 것을 특징으로 한다.
본원발명의 일면에 따라, 평문 정보를 안전하게 암호화하는 컴퓨터로 읽을 수 있는 명령어들을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서, 상기 컴퓨터로 읽을 수 있는 명령어들은 상기 평문 정보와 제 1 키로부터 재생되고 동기화된 제 1 암호 스트림, 및 제 2 키와 랜덤 함수를 이용해 제어가능한 평문 스트림으로부터 임의 추출되어 동기화된 제 2 암호 스트림으로부터 암호 스트림을 재생하는 EDO(Exclusive Disjunction Operator)을 이용하는 것을 특징으로 한다.
본원발명의 일면에 따라, 평문 정보를 안전하게 암호화하는 컴퓨터로 읽을 수 있는 명령어들을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서, 상기 컴퓨터로 읽을 수 있는 명령어들은 제 1 키를 이용해 평문 정보를 암호화하여 생성되는 적어도 하나의 제 1 동기화된 암호 스트림 및 조절가능한 평문과 제 2 키워드의 랜덤 함수 연산에 의해 생성되는 적어도 하나의 제 2 동기화된 암호 스트림을 포함하는 동기화된 복수의 암호 스트림들을 생성하고, 암호문 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 이용해 동기화된 복수의 암호 스트림들을 연산하는 것을 특징으로 한다.
본원발명의 일면에 따라, 신용카드에서 평문 정보를 안전하게 암호화하는 방법은 사용자가 계정을 지원할 때, 사용자 정보에 기반한 평문 P를 서버/데이터 기록에 의해 선택하는 단계; 신용 카드를 제공하는 사용자 또는 회사의 요구에 따라 상기 서버/데이터 기록에 의해 제 1 키, 제 2 키 그리고 제어가능한 평문 스트림을 생성하는 단계; 암호문 C를 생성하기 위해 상기 서버/데이터 기록에 의해 상기 평문, 상기 제 1 키, 상기 제 2 키 그리고 상기 제어가능한 평문 스트림을 사용하여 암호화를 수행하는 단계; 상기 평문, 상기 제 1 키, 상기 제어가능한 평문 스트림 그리고 상기 제 1 제 1 암호문 스트림의 정보를 상기 신용 카드에 삽입하는 단계; 상기 평문, 상기 제 2 키, 상기 제어가능한 평문 스트림 그리고 제 2 암호문 스트림을 카드 소지자 데이터 베이스 기록에 삽입하는 단계; 상기 제 1 키, 상기 제 2 키 그리고 상기 제어가능한 평문 스트림을 이용해 미리 정해진 틀에 따라 상기 평문을 암호문으로 암호화하는 단계를 포함한다.
상기 평문의 스트링들, 상기 암호문 그리고 상기 제어가능한 평문 스트링 중에서 적어도 하나가 분리되는 것을 특징으로 한다.
본원발명의 일면에 따라, 평문 정보를 안전하게 암호화하는 방법은 제 1 키워드 K1, 제2 키워드 K2, 제어가능한 평문 스트림 F 그리고 랜덤 함수 R을 사용자 입력에 할당하는 단계; 보안 모드를 이용해 K1, K2, F 그리고 R을 수신 에이전트에 전달하는 단계; 암호문 스트림을 형성하기 위해 미리 결정된 틀에 따라 K1, K2, F 그리고 R을 이용해 평문 스트림을 암호화하고 상기 암호문 스트림을 수신 에이전트에 전송하는 단계를 포함한다.
상기 미리 결정된 틀에 따라 K1, K2, F 그리고 R을 이용해 평문 스트림을 암호화하는 단계는 상기 평문을 제 1 암호 스트림으로 변환하기 위해 블록 암호화 K1을 사용하는 단계; 제 2 암호 스트림을 형성하기 위해 R을 이용해 F를 임의 추출하는 단계; 제 1 암호 스트림과 제 2 암호 스트림을 동기화하는 단계; 및 암호문 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 이용해 동기화된 제 1 및 제 2 암호 스트림들을 연산하는 단계를 포함한다.
평문 정보를 안전하게 암호화하는 방법은 상기 동기화된 제 1 암호 스트림으로부터 상기 암호문 스트림에 헤드 정보를 제공하기 위해 벡터 함수를 사용하는 단계를 더 포함한다.
평문 정보를 안전하게 암호화하는 방법은 상기 암호문 스트림에 헤드 정보를 제공하기 위해 상기 동기화된 제 2 암호 스트림을 연산하는 벡터 함수를 사용하는 단계를 더 포함한다.
상기 암호화된 암호문 정보를 복호화하는 방법은 상기 암호문 스트림을 복호화하기 위해 상기 평문 정보를 안전하게 암호화하는 방법의 반대과정으로 K1, K2, F 및 R을 사용하는 것을 특징으로 한다.
상기 평문 정보를 안전하게 암호화하는 방법 신용 카드 거래, 캐쉬 머신 거래, 인터넷상의 차징 거래 또는 온라인 뱅킹 거래 중에서 하나의 거래에 의해 수행된다.
본원발명의 이러한 그리고/또는 다른 일면들 그리고 이점들은 하기하는 도면와 관련하여 설명될 때 본원발명의 이어지는 설명으로부터 명확하고 더욱 빠르게 이해될 수 있다.
도 1은 종래 대칭키 암호의 블록다이어그램을 나타낸다.
도 2는 종래 블록 암호의 블록 다이어그램을 나타낸다.
도 3은 종래 ECB(Electronic Code Book)의 블록 다이어 그램을 나타낸다.
도 4는 종래 CBC(Cipher Block Chaining)의 블록 다이어 그램을 나타낸다.
도 5는 종래 CFC(Cipher Feedback)의 블록 다이어 그램을 나타낸다.
도 6은 종래 OFB(Output Feedback)의 블록 다이어 그램을 나타낸다.
도 7은 종래 OFB(Output Feedback)의 블록 다이어 그램을 나타낸다.
도 8은 종래 CFB 모드에서 암호화를 나타내는 블록 다이어 그램을 나타낸다.
도 9는 종래 CFB 모드에서 복호화를 나타내는 블록 다이어 그램을 나타낸다
도 10은 암호화에 있어서 동기 스트림 암호를 실행하기 위해 종래 블록 암호화의 OFB 모드를 이용하는 경우를 나타내는 도면이다.
도 11은 복호화에 있어서 동기 스트림 암호를 실행하기 위해 종래 블록 암호화의 OFB 모드를 이용하는 경우를 나타내는 도면이다.
도 12A-12B는 본원발명의 두 개의 실시예에 따라 평문 정보를 안전하게 암호화하는 시스템을 나타내는 도면이다.
도 13은 본원발명의 다른 실시예에 따라 평문 정보를 안전하게 암호화하는 시스템을 나타내는 도면이다.
도 14는 본원발명의 실시예에 따라 평문 정보를 안전하게 암호화하기 위한 장치/데이터 엔트리 스테이션을 나타내는 도면이다.
도 15는 본원발명의 실시예에 따라 평문 정보를 안전하게 복호화하기 위한 장치/데이터 엔트리 스테이션을 나타내는 도면이다.
도 16은 본원발명의 실시예에 따라 암호문 C 스트림에 저장된 헤드 정보로 IV 유닛의 정보를 암호화하고 출력하는 것을 나타내는 도면이다.
도 17은 본원발명의 실시예에 따라 암호문 C 스트림에 저장된 헤드 정보로 IV 유닛의 정보를 복호화하고 출력하는 것을 나타내는 도면이다.
도 18은 본원발명의 실시예에 따라 두번째 암호 스트림 C2의 생성을 나타내는 도면이다.
도 19는 본원발명의 실시예에 따라 스트림 C1 과 C2 를 비트와이즈 XOR 연산 을 실행하기 위해 엔타이어 스트림 모드를 사용하는것을 나타내는 도면이다.
도 20은 본원발명의 실시예에 따라 스트림 C1 과 C2 를 비트와이즈 XOR 연산을 실행하기 위해 블록(Block) 대 블록(Block) 모드를 사용하는것을 나타내는 도면이다.
도 21은 본원발명의 실시예에 따라 스트림 C1 과 C2 를 비트와이즈 XOR 연산을 실행하기 위해 문자(character) 대 문자(character) 모드를 사용하는 것을 나타내는 도면이다.
도 22는 본원발명의 실시예의 안전한 암호화/복호화의 입력과 출력을 나타내는 도면이다.
도 23은 본원발명의 실시예에 따라 안전한 메시지의 전달을 나타내는 도면이다.
도 24는 본원발명의 실시예에 따라 메시지를 공중의 또는 개인의 메시지 보드에 브로드케스팅하는 것을 나타내는 도면이다.
도 25는 본원발명의 실시예에 따라 실시간 어플리케이션 채트 룸 혹은 인스턴트 메시징을 나타내는 도면이다.
도 26은 본원발명의 실시예에 따라 웹 페이지의 컨텐츠를 보호하는 것을 나타내는 도면이다.
도 27은 본원발명의 실시예에 따라 소프트웨어 설치를 보호하는 것을 나타내는 도면이다.
도 28은 본원발명의 실시예에 따라 신용 가드 유효성에 관한 것을 나타내는 도면이다.
도 29는 본원발명의 실시예에 따라 신용 카드 검증 머신을 사용하는 것을 나타내는 도면이다.
도 30은 본원발명의 실시예에 따라 도어의 장금과 영역 접근을 제어하는 것을 나타내는 도면이다.
도 31은 본원발명의 실시예에 따라 캐시 머신을 사용하는 것을 나타내는 도면이다.
도 32는 인터넷상의 차징 산업에 본원발명의 실시예를 사용하는 것을 나타내는 도면이다.
도 33은 온-라인 뱅크에서 본원발명의 실시예를 사용하는 것을 나타내는 도면이다.
도 34는 본원발명의 컴퓨터로 실행할 수 있는 명령어를 포함하는 컴퓨터로 읽을 수 있는 매체/방법에 따라 작동하는 것을 설명하는 흐름도이다.
도 35는 본원발명의 컴퓨터로 실행할 수 있는 명령어를 포함하는 컴퓨터로 읽을 수 있는 매체/다른 방법에 따라 작동하는 것을 설명하는 흐름도이다.
도 36은 본원발명의 컴퓨터로 실행할 수 있는 명령어를 포함하는 컴퓨터로 읽을 수 있는 매체/다른 방법에 따라 작동하는 것을 설명하는 흐름도이다.
이하, 본원발명의 실시예에 대하여 상세하게 설명한다.
도 12A에 설명된 것(1200)과 같이, 본원발명의 바람직한 실시예에 따라, 평문 정보를 안전하게 암호화하는 시스템은 전송 에이전트(1202)와 수신 에이전트(1204)을 포함한다. 이것들은 브로드캐스팅 채널(1206) 및/또는 인터랙션 채널(1208)을 사용하여 통신한다. 여기서, 통신은 유/무선의 형태로 이루어질 수 있다. 전송 에이전트(1202)는 평문 정보와 제 1 키를 이용해서 제 1 암호 스트림을 생성하고 동기화한다. 그리고 제 2 키와 제 2 동기화된 암호 스트림을 형성하기 위해 제어할 수 있는 평문 스트림을 임으로 추출하는 randomizing function을 이용해 제 2 암호 스트림을 생성하고 동기화한다. 그리고 암호문 스트림을 얻기 위해 exclusive disjunction operator을 사용해 복수의 제 1 및 제 2 암호 스트림에서 연산한다. 수신 에이전트(1204)는 반대 형태로 암호문 스트림을 복호화한다.
도 12B에서 설명된 것(1250)과 같이, 본원발명의 하나의 실시예에 있어서, 전송 에이전트(1202)는 평문 정보를 처리하고, 주어진 암호문 스트림을 복호화하기 이해 연결된 제 1 CPU(1210), 제 1 메모리(1212) 그리고 제 1 전송부(1214)를 포함한다. 제 1 전송부(1214)는 수신 에이전트(1204)에 암호문 스트림을 더 보낸다. 수신 에이전트(1204)는 수신된 암호문 스트림을 처리하고, 평문 정보를 처리하고 그리고 전송 에이전트(1202)에 처리된 평문 정보의 암호문 스트림을 보내기 위해 일반적으로 제 2 전송부(1216), 제 2 CPU(1218) 그리고 제 2 메모리를 포함한다. 제 1 전송부(1214)는 암호문 스트림과 제어할 수 있는 평문 스트림을 각각 수신 에이전트에 전달한다.
도 13에서 설명된 것(1300)과 같이, 본원발명의 실시예에 있어서, 그 시스템은 WAN/LAN 각각 혹은 이것들의 조합을 통해 연결된 데이터 엔트리 시스템(1304)과 데이터 서버(1308)를 포함한다. 예를 들어, 사용자는 미리 정해진 데이터를 제공하기 위해 데이터 엔트리 스테이션(1304)에 신용카드(1302)를 삽입한다. 이하에서 더욱 상세하게 설명한다.
도 14에서 설명된 것(1400)과 같이, 장치/데이터 엔트리 스테이션(1400)은 평문 정보(1416)와 제 1 키(1418)를 이용해 제 1 암호 스트림을 생성하고 동기화하는 제 1 암호 스트림 생성기(1403); 제어가능한 평문 스트림(1402)을 임의로 추출하여 그때 동기화하는 랜덤 함수(1404)와 제 2 키(1406)를 이용하여 제 2 암호 스트림을 생성하고 동기화하는 제 2 암호 스트림 생성기(1401); 그리고 암호문 스트림(1410)을 얻기 위해 제 1 및 제 2 동기화된 암호 스트림들을 연산하는 exclusive disjunction operator(1420)을 포함한다.
하나의 실시예로, 제 1 암호 스트림 생성기(1403)은 평문 정보(1416)의 입력과 제 1 키 K1(1418)에서 제 1 동기화된 암호 스트림을 생성하고 동기화하기 위해 배열된 볼록 암호 암화화 유닛 E1(1414)을 포함한다. 여기서 블록 암호 암호화 유 닛은 제 1 암호 스트림을 동기화하기 위해 제 1 암호 스트림과 제 1 동기화 유닛 S1(1412)을 생성하는 블록 암호 암호화 장치 E1(1414)와 제 1 동기화된 암호 스트림을 생성하고 동기화하는 블록 암호 암호화/동기화 유닛(1414, 1412) 중에서 하나를 포함한다.
하나의 실시예에 있어서, 제 2 암호 스트림 생성기는 제 2 동기화된 암호 스트림을 출력하기 위해 제 2 키 K2의 입력과 제어가능한 평문 스트림(1402)에서 조절 가능한 평문 스트림(1402)을 임의로 추출하고, 동기화하기 위해 설치된 랜덤 함수 재생기를 포함한다. 여기서, 랜덤 함수 재생기는 제어가능한 평문 스트림을 임의 추출하는 랜덤 함수 재생기 장치 R1(1404)와 임의 추출된 제 2 암호 스트림을 동기화하기 위한 제 2 동기화 유닛 S2(1408) 또는 제 2 암호 스트림을 임의 추출한 후 동기화하는 랜덤 함수 재생기/동기화 유닛 R1(1404, 1408) 중에서 하나를 포함한다. exclusive disjunction operator는 일반적으로 exclusive OR 논리 연산기이다.
도 34에 설명된 것(3400)과 같이, 본원발명의 하나의 실시예에 있어서, 평문 정보를 안전하게 암호화하기 위한 컴퓨터 실행 명령들을 가진 컴퓨터로 읽을 수 있는 매체나 방법(3400)은 평문 정보와 제 1 키를 이용해 제 1 암호 스트림을 생성하고 동기화하는 기능(3402); 제 2 암호 스트림을 형성하기 위해 제어가능한 평문 스트림을 임의로 추출하는 랜덤함수와 제 2 키를 이용해 제 2 암호스트림을 생서하고 동기화하는 기능(1404); 암호문 스트림을 얻기 위해 exclusive disjunction operator를 이용해 동기화된 복수의 제 1 및 제 2 암호 스트림을 연산하는 기능(1406)들을 포함한다.
도 35에 설명된 것(3500)과 같이, 본원발명의 하나의 실시예에 있어서, 평문 정보를 안전하게 암호화하기 위한 컴퓨터 실행 명령들을 가진 컴퓨터로 읽을 수 있는 매체나 방법(3500)은 평문 정보와 제 1 키로부터 생성되고 동기화된 제 1 암호 스트림 그리고 제 2 키를 이용해 제어가능한 평문 스트림으로부터 임의추출하여 동기화된 제 2 암호 스트림으로부터 암호문 스트림을 생성하기 위해 exclusive disjunction operator(3500)을 사용하는 것을 포함한다.
도 36에 설명된 것(3600)과 같이, 본원발명의 하나의 실시예에 있어서, 평문 정보를 안전하게 암호화하기 위한 컴퓨터 실행 명령들을 가진 컴퓨터로 읽을 수 있는 매체나 방법(3600)은 적어도 제 1 암호 스트림이 제 1 키워드를 이용해 평문 정보를 암호화하여 생성되고 동기화되고 그리고 제 2 암호 스트림이 제어가능한 평문과 제 2 키워드에서 랜덤함수 연산에 의해 생성되고 동기화되는 복수의 동기화된 암호 스트림들을 재생하고(3602); 암호문 스트림(3604)을 얻기 위해 exclusive disjunction operator를 이용해 동기화된 복수의 암호 스트림들을 연산하는(3604)를 포함한다.
상기에서 언급된 바와 같이, 본원발명은 또한 컴퓨터로 읽을 수 있는 기록매체에서 컴퓨터로 읽을 수 있는 코드로 구체화될 수 있다. 컴퓨터로 읽을 수 있는 기록매체는 데이터를 저장할 수 있는 어떤 데이터 저장 장치이다. 그 후에 컴퓨터 시스템에 의해 읽을 수 있다. 예를 들어, 컴퓨터로 읽을 수 있는 기록 매체는 ROM, RAM, CD-ROMs, 메그네틱 테이브, 플로피 디스크, 광학 데이터 저장 장치들, 그리고 케리어 웨이브(carrier wave)(인터넷을 통한 데이터 전송과 같은)를 포함한다. 컴퓨터로 읽을 수 있는 기록 매체는 또한 컴퓨터로 읽을 수 있는 코드가 배포되는 형식으로 저장되고 실행되기 위해 컴퓨터 시스템에 연결된 네트워크상에서 배포될 수 있다.
도 14에서 설명된 것(1400)과 같이, 전통적인 스트림 암호가 했던 것과 같이 키 K로부터 키스트림을 생성하는 대신에, 본원발명은 두 개의 암호 스트림들 C1 과 C2 를생성한다. 최종 암호문 스트림(1410)은 두 개의 암호 스트림들 C1 과 C2 의 비트와이즈 XOR 연산의 출력이다. 하나의 실시예에 있어서, 제 1 암호 스트림 C1 은 오리지널 평문 P(1416)과 제 1 키 K1(1418)을 가진 블록 암호 E1(1414)에 의해 재생된다. 그리고 동기화 유닛 S1(1412)를 이용해 동기화된다. 선택적으로, 블록 암호 E1(1414)과 동기화 유닛 S1(1412)은 하나의 조합된 유닛일 수 있다. 하나의 실시예에 있어서, 제 2 암호 스트림 C2는 랜덤 함수 R1(1404)와 제 2 키 K2(1406)을 가진 제어가능한 평문 스트림 F(1402)에 의해 재생되고 동기화 유닛 S2(1408)에 의 해 동기화 된다. 선택적으로, 랜덤함수 R1(1404)와 동기화 유닛 S2(1408)은 조합된 유닛의 형태일 수 있다. 최종 암호문 C(1410)은 C1 과 C2의 비트와이즈(또는 character by character) XOR 연산을 이용하여 얻어진다.
도 15에 설명된 것(1500)과 같이, 복호화 과정의 작동은 암호화와 조금 다르다. 첫째, 제 2 암호 스트림 C2(1508)이 생성되어야 한다. 여기서, 제 2 암호 스트림 C2 는 도 14의 제 2 암호 스트림 C2 과 일치한다. 이를 위해, 제어가능한 평문 F(1402)와 일치하는 제어가능한 평문 F(1502), 랜덤 함수 R1(1404)과 일치하는 랜덤 함수 R1(154), 제 2 키 K2(1406)과 일치하는 제 2 키 K2(1406)이 사용되어야 한다. 이러한 스트림이 이용될 때, 제어가능한 평문 F(1402)와 랜덤 함수 R1(1404)는 전형적으로 전송 에이전트로부터 수신 에이전트레 불리되어 전송된다.(여기서, 제2 키 K2(1406)는 일반적으로 수신 에이전트에게 미리 알려지고, 원하는 형태로 수신되도록 재배열될 수 있다.) 다음 작동은 C2 와 암호문 C를 문자 대 문자 비트와이즈 XOR을 수행 한다. 출력 평문 스트림(1512)는 제 1 암호 스트림 C1 과 동일하다. 이러한 결과는 하기의 비트와이즈 XOR 연산에 의해 증명된다.
Ci = C1 i XOR C2 i => Ci XOR C2 i = C1 i
제 1 암호 스트림 C1 가 한번 생성되면, 원본 평문 P(1416)는 E1(1414)과 키 K1(1418)의 최초 선택과 관련된 복호화 과정 D1에 의해 얻어진다.
제 1 암호 스트림 C1의 구조는 P(1416) 그리고 암호화 장치 E1(1414)과 동기화의 선택에 의존한다. 원하는 경우, 분리된 동기화 장치 S1에 의해 이루어질 수 있다.
제 1 암호 스트림 C1 은 원래 평문 P(1416)와 제 1 키 K1(1418)와 같이 블록 암호 E1에 의해 생성된다. 예를 들어, DES, Tri-DES 그리고 AES 와 같은 블록 암호들은 E1(1414)로 사용될 수 있다. 사실, 블록 암호가 아니라, 하나의 키 또는 심지어 하나의 아이덴티티 암호(a straight through cipher, i.e. no-encryption at all)를 가진 스트림 암호는 E1(1414)로 사용될 수 있다. 암호문 C(1510)의 안전한 특징은 E1(1414)의 선택에 의존하지 않는다. 제어가능한 평문 F(1402)의 적당한 선택에 의해 C(1510)의 안전한 특징이 이루어질 수 있다. E1(1414)를 선택하는데 있어 유일하게 필요한 것은 암호화가 역으로 할 수 있다는 것이다. 다시 말하면, 대응하는 복호화 장치(또는 과정)D1은 동일한 키, 다른 키 또는 관련된 어떤 키도 없이 존재한다.
블록 암호의 사용은 제 1 암호 스트림 C1 이 블록 암호가 효과적인 암호화를 이룬 이후로 효과적이다는 것을 보증한다. 매우 효과적으로 암호화된 제 1 암호 스 트림에 대해, AES(Advanced Encryption Standard)와 같은 블록 암호가 이용될 수 있다. 스피드가 중요한 어플리케이션에 대해, 예를 들어, RC4와 같은 스트림 암호가 E1으로 사용될 수 있다.
Block-Length(or Size) 그리고 암호화 Key-Length와 같은 선택된 블록 암호 E1(1414)의 특징들은 암호화 과정에 직접적으로 영향을 줄 수 있다. S1에서 동기화 과정의 디자인은 E1(1414), S2(1405) 그리고 암호문 C의 헤드 정보 H의 선택에 의존한다. S1(1405)의 기능은 모든 복호화 과정이 효율적으로 유지될 수 있도록, 암호 스트림 C1 가 C2 와 양립할 수 있는 것을 보증하는 것이다. 특히, 블록 암호가 사용될 때, 결과는 block-by-block 출력일 것이다. 이러한 경우에, S1(1405)의 가장 근본적인 기능은 블록 데이터를 스트림(character-by-character)로 qsughks하는 것이다. 하나의 예에 있어서, 스트림 정보와 함께 C1 의 길이는 또한 "Initial Vector(IV)"라 불리는 파라미터에 또한 저장된다. 이 IV는 C의 안전한 특징이 유질되기 위해 S2에 갱신 정보를 제공하기 위해 사용된다.
암호화는 일반적으로 메시지를 비트레벨 이하로 처리하는 것을 포함한다. 컴퓨터들은 복수의 0과 복수의 1로 만들어진 일련의 비트들인 이진수로 데이터를 저장한다. 컴퓨터는 바이트라 불리는 구조로 8개의 이러한 비트들을 저장한다.
빅 에디안 시스템은 가장 중요한 값을 가장 낮은 수 바이트 어드레스에 저장 하고 리틀 에딩안 시스템은 정확히 그 반대로 가장 중요하지 않은 d값을 가장 낮은 어드레스에 저장한다. Window NT와 같은 OS는 리틀 에디안이고, HP-UX와 같은 다을 OS들은 빅 에디안이다. JAVA에서 라이트 되지 않는 몇몇 프로그램 예를 들어, C 프로그램들은 리틀 에디안 순서를 사용할 수 있다. 어떤 플래폼들(MAC, IBM 390)은 내부적으로 빅 에디안 순서를 사용한다. 또 다른 어떤 것(Intel)들은 리틀 에디안 순서를 사용한다. JAVA는 내부 에디안을 숨긴다. JAVA는 이진 데이터가 처음에 가장 중요한 바이트로 저장되는 것을 가정한다. 내부적으로 이것이 그렇지 않다면, JAVA는 그 사실을 완전히 숨긴다. 그것이 만드는 모든 파일들은 빅-에디안, 네트워크 순서이다.
두 에디안 시스템 사이에서 데이터를 변환하는 것은 가끔 NUXI 문제로 불린다. 2-바이트 단어들로 저장된 단어 UNIX를 상상해라. 빅 에디안 시스템에 있어서, 그것은 UNIX로 저장된다. 리틀 에디안 시스템에 있어서, 그것은 NUXI로 저장된다. 상기 예는 단지 빅 그리고 리틀 에디안 바이트 순서들을 보여준다. 각 바이트 안에서의 비느 순서는 단지 빅 또는 리틀 에디안일 수 있다. 그리고 어떤 구조들은 실질적으로 비트에 대한 순서는 빅 에디안을 사용하고, 바이트 혹은 voice versa에 대한 순서는 리틀 에디안을 사용한다.
내부 컴퓨터 구조 또는 시스템을 취급할 때, "빌 에디안" 그리고 "리틀 에디안" 상황, 빅 에디안 그리고 리틀 에디안 상황들이 해결될 필요가 있다. 예를 들 어, 블록 암호는 빅 에디안 구조를 사용하는 것을 선택할 수 있고 랜덤 장치 R1(1404)는 리틀 에디안 구조로 선택될 수 있다. 이러한 경우에 S1(1412)와 S2(1408) 장치들은 호환(양립)성 문제를 다루기 위해 사용된다. 또한 만일, 소리가 P(1402) 전에 E1(1414)으로 들어오면, 소리 데이터는 C1 의 처음에 있을 것이다. 이러한 경우에, IV 유닛으로 카운팅 넘버 혹은 스트링이 출력될 필요가 있을 수 있다.(도 6 참조)
도 16에서 설명되는 것(1600)과 같이, IV 유닛(1608)의 정보는 암호문 C 스트림(1606)에 저장된 헤드 정보로 출력된다. 복호화 과정 동안에, 동기화 과정이 적당하게 수행될 수 있도록 하기 위해 S1(1410)에 입력될 것이다. (도 17 참조)
도 18에 설명되는 것(1800)과 같이, 제 2 암호 스트림 C2 의 생성은 제어 가능한 평문 F(1802), 랜덤 장치 R1(1806)(키 K2(1804)를 가짐), 제 2 동기화 장치 S2(1808) 그리고 내부 벡터 IV 유닛(1807)에 의존한다. 이러한 장치들의 주요한 목적은 F(1802)의 암호 이미지로 C2 는 임의적이고 예측할 수 없도록 하는 것이다. C2 의 문자 세트는 비트들의 완전한 세트를 포함한다. 또한 C2 의 길이는 모든 스트림 C1 과 비트와이즈 XOR을 수행하기에 충분하도록 길어야 한다.
도 18에 설명되는(1800) 실시예에 있어서, 임의의 예측할 수 없는 암호 스트림 C2 를 생성하기 위해, 제어가능한 평문 F(1802)가 사용된다. F(1802)의 주요한 선택들 중에 하나는 F(1802) 그 자체는 임의적인(or pseudo-random) 순자들의 세트라는 것이다. 예를 들어, F(1802)는 RNG(Random Number Generator) 또는 PRND(pseudo-Random Number Generator)에 의해 재생되는 임의의 문자 세트이다. 실질적인 목적을 위해, (a-z)(A-Z)(0-9)와 같은 인쇄될 수 있는 문자 세트는 F(1802)이 손이나 예를 들어, 노트 패드와 같은 에디터에 의해 편집되고 바뀔 수 있다. F(1802)의 예측할 수 없는 특징으로 증가시키기 위해, F는 자주 바뀌어야 한다. 어플리케이션에 따라, F(1802)는 다중 암호화를 생성하기 위해 충분히 길고, 그리고 암호화의 효율성과 실행성을 유지하기 위해 충분히 짧아야 한다. 예를 들어, 암호화는 단문 메시지(600) 문자 이하)를 위해 사용되고, F(1802)의 크기는 2000-6000 문자들일 수 있다.
랜덤 장치 R1(1806)의 주요 기능은 추가적 랜덤 스트림을 만들기 위해 제어가능한 평문으로 F(1802)을 사용하는 것이다. 또한 스트림의 문자 세트는 머신과 작동 플랫폼에 따라 충분한 비트들이어야 한다. 예를 들어, n-비트 플랫폼에 대해, 랜덤 장치 R1(1806)에 의해 만들어지는 스트림의 문자는 n-비트의 조합 가능한 것과 동일(혹은 거의 동일)해야 한다.
예를 들어, 적당한 랜덤 장치 R1(1806)은 DES, Tri-DES, CAST, IDEA, Blowfish/TwoFish, AES, RC4, ISAAC, or SEAL 과 같은 블록 또는 스트림 암호를 사용할 있다. 이것들은 대응하는 평문에 대하여 효율적인 랜덤장치이고 비트-확장 방법들이다. 암호가 R1(1806)에 대해 사용될 때, 키 K2(1804)는 자동적으로 관련되고, 경우에 따라서, 보이지 않는다. R1의 복호화 특징의 존재는 중요하지 않다. 또한, R1(1806)에 대해 사용되는 암호화는 E1과 같을 수도 있고 다를 수도 있다. 예를 들어, AES가 E1, AES, RC4 에 대해 선택되면, 다른 암호는 R1에 대해 선택될 수 있다. 많은 경우에 있어서, 표준 암호화는 복호화와 같이 또는 복호화 없이 변형될 수 있고 여전히 R1에 대해 사용될 수 있다.
R1(1806)에 대해 암호가 사용될 때, 출력 포맷은 선택된 암호에 의해 정해질 것이다 예를 들어, R1(1806)을 위해 스트림 암호가 선택되면, 출력은 문자 스트림일 것이다. 만일, 블록 암호가 선택되면, 출력은 블록 포맷에서 패킷일 것이다. 하나의 경우에 있어서, 출력 스트림은 암호 스트림 C2를 형성하기 위해 동기화 장치 S2(1808)안으로 입력이다. C1 과 연산하는 C2 는 최종 암호문 C(1801)를 재생한다. 그러므로, S2(1808)의 기능은 비트와이즈 XOR 전에 C2 가 C1 과 양립할 수 있는 것을 보증하는 것이다.
암호의 보안 특성을 유지하기 위해, C2는 암호화가 사용될 때 매 시간마다 다르다. 그것을 실현하기 위한 많은 방법들이 존재하고, 그것들 중에서 2 개가 아래에서 소개된다. 매 시간 마다 다른 C2를 재생하기 위한 하나의 방법은 F(1802)의 스타팅 인덱스를 바꾸는 것이다. 예를 들어, 이니셜 벡터 IV 유닛(1807)은 F(1802)의 얼마나 많은 문자들이 이전 암호화에 사용되었는지를 나타내는 숫자 k를 조장할 수 있다. 새로운 암호화가 요구될 때, F(1802)에 저장된 (k+1) 문자는 랜덤(또는, 암호)장치 R1(1806)에 입력이다. 암호화 후에, IV 유닛(1807)은 다음 스타팅 인덱스를 저장하기 위해 사용된다. 제어가능한 평문 F(1802)의 전부가 사용되어 졌을 때, 모든 F(1802)는 새로운 제어가능한 인덱스레 의해 대체된다.
매 시간 다른 C2를 재생하는 다른 방법은 C2의 스타팅 인덱스을 바꾸는 것이다. 예를 들어, IV 유닛(1807)은 C2에서 얼마나 많은 문자들이 이전 암호에서 사용되었는지 나타내는 스타팅 인덱스 k를 저장할 수 있다. 새로운 암호화가 요구될 때, 모든 F(1802)는 R1(1806)으로 입력이다. 동기화 장치 S2(1808)는 출력을 카운트하고, 첫 K 문자를 삭제하기 위해 사용된다. 스트림 C2는 (k+1) 문자로부터 형성된다. 이러한 연산은 특히 작은 메시지 P와 F에 대해 적합하다.
암호화를 위한 최종 연산은 스트림 C1 과 C2 을 비트와이즈 XOR 연산을 수행하는 것이다. 이러한 과정을 위해 사용될 수 있는 세 가지 연산 모드가 있다. 이 세 가지는 entire-stream, character-by-character 그리고 block-by-block로 불린다. 도 19에서 설명된 것(1900)과 같이, entire-stream을 이용한 암호화의 연산은 아래와 같이 설명될 수 있다. 제 1 스트림 암호 C1이 재생될 때, C1의 길이는 장치 IV 유닛(1912)에 전달된다. 그 길이에 기초해서, 똑같은 크기를 가진 C2는 동기화 유닛 S2(1902)에 의해 재생된다. 최종 OXR 연산(1906)은 모든 스트림 C1 과 C2 에 수행된다. 이러한 과정은 특히 단문 메시지를 암호화하기 위해 적합하다. entire-stream 모드의 하나의 이점은 필요한 동기화 피드백이 없다는 것이다. 모든 평문 P가 알려졌을 때, C1 의 크기가 고정되고 또한 C2 의 크기도 고정된다. 그러므로, 실시간으로 C1 과 C2 를 모니터링할 필요가 없다. 반면에, entire-stream 모드는 모든 C1 이 재생될 때, 단지 시작될 수 있고, 실시간 오디오와 비디오 암호화(경찰 군대 라디오, 블로드 캐스팅과 전송을 포함한다.)를 사용하는 어떤 실시간 어플리케이션에 대한 사용은 기대될 수 없다. 연산의 견해에로부터, entire-stream 모드는 정적인 연산이다.
도 20에서 설명되는 것(2000)과 같이, 정적 어플리케이션뿐만 아니라 실시간 어플리케이션을 포함하기 위해, block-by-block 모드가 사용될 수 있다. block-by- block 모드에 있어서, 첫번째 과정은 블록 크기를 정하는 것이다. 그리고 그 다음에 스트림 C1 과 C2를 block-by-block에 의해 XOR 연산을 수행하는 것이다. block-by-block 모드에서 블록의 크기는 암호 디자인 내에서 사용되는 블록 암호에 직접 연관되는 것은 아니고, 장치와 OS에 의존한다. 예를 들어, 32/64 비트 OS 또는 칩에 대해, 많은 경우에 있어서, 블록 길이로 32/64 비트를 사용하는 것이 더욱 효과적이다. block-by-block 모드가 사용될 때, 동기화 장치 S1 과 S2(2002)의 주요한 기능은 스트림 C1 과 C2가 OXR 연산이 수행되기 전에 적당한 크기로 그룹화되는 것을 확실하게 하는 것이다. 이러한 카운팅에 추가해서, S2 장치(2002)의 기능은 또한 암호화가 끝날 때까지 그 과정이 계속 진행될 수 있도록 IV 장치 유닛(2012)에 대한 실시간 피드백을 포함하는 것이다. 예를 들어, C1 의 새로운 블록이 만들어질 때, 그 신호가 IV 장치 유닛(2012)에 전달된다. 이 경우에, IV 장치 유닛(2012)에서 카운팅 특징은 갱신되고, C2 로부터 새로운 블록이 요구된다. 새롭게 재생된 2 개의 블록들은 암호문 C(2010)의 새로운 블록을 형성하기 위해 함께 XOR된다.
어떤 어플리케이션과 작은 장치들에 대해, entire-stream 및/또는 block-by-block 모드들은 암호화를 실행하기 위한 최적의 혹은 적합한 방법이 아닐 수도 있다. 이러한 경우에, chatacter-by-character 모드가 이용될 수 있다. 사실, hatacter-by-character 모드는 block-by-block의 특별한 경우로 고려될 수 있고, 여기서, 블록의 크기는 하나이다. chatacter-by-character 모드가 사용될 때, 암호 스트림 C1 과 C2는 문자(character) 기반이다. 이러한 경우에 있어서, 동기화 장치 S1과 S2의 주요한 기능은 간단히 한번에 암호화 스트림 하나의 문자를 출력하는 것이다. 하나의 문자가 C1 과 C2 의 각각에 대해 재생될 때, 문자들은 암호문 C의 하나의 문자를 형성하기 위해 함께 XOR된다. 이는 도 21에서 설명되는 것(2100)과 같다. 장치 IV(2112)의 기능은 C1 가 끝날 때까지 카운팅을 증가하는 것이다. 암호화 후에, 전체 C1 의 길이는 다음 암호화를 위해 사용될 수 있고 암호 스트림 C1 혹은 제어가능한 평문 F를 오프셋하기 위해 IV 장치 유닛(2112)에 저장된다. chatacter-by-character 모드는 제한된 컴퓨터 위력 및/또는 제한된 메모리를 가진 작은 장치들을 이용하는 실시간 보안 어플리케이션에 특히 적합하다.
도 22에 설명되는 것(2200)과 같이, 안전한 암호화/복호화의의 작동은 다음과 같은 다섯 가지 입력들/출력들에 의존한다. 평문(P)(2204), 암호문(2, 2212, 2214), 제 1 패스워드(K1)(2206, 2220), 제2 패스워드(K2)(2208,2222) 그리고 독립적인 패스워트 파일(제어가능한 평문 스트림 F(2210, 2224)). 일반적으로 K1(2204, 2220)과 K2(2208, 2222)는 기억할 수 있는 패스워드일 수 있다. 패스워드 파일 F는 프린트 인쇄가능한 그리고/또는 인쇄 불가능한 문자들의 충분한 스펙트럼을 포함하는 임의 생성된 파일일 수 있다. 상기 다섯 개 입력들/출력들의 조합은 많은 보안 어플리케이션들을 통해 기능성의 범위를 형성한다. 몇 가지 어플리케이션들/실시예들이 아래에 리스트되어 있다. 암호화의 가장 기본적인 어플리케이션들 중에서 하나는 하나의 장소에서 다른 곳으로 보안 메시지를 전달하는 것이다.
도 23에서 설명되는 것(2300)과 같이, 암호 메시지 전달과정은 파라미터 K1, K2 그리고 F를 사용자 입력에 할당하는 것 그리고 암호화 유닛 E(2304)과 복호화 유닛 D(2314)에 K1, K2 그리고 F에 대한 사용자 입력 과정을 포함하는 것을 포함한다. 여기서, 사용자에 의한 K1, K2 그리고 F 입력은 암호화 과정과 별도로 수신 에이전트(2310)에 전송된다. 전송은 하나의 장소에서 다른 장소로 암호문을 전달하는 적당한 방법일 수 있다. 예를 들어, (전달자를 통한) 핸드, 메일, 전화, 라디오, 전보에 의한 이메일 전송, 이메일 첨부 인터넷 다운로딩, 파일 전송(FTP).
평문 P가 본원발명의 실시예들에 따른 하나일 때, 이메일 메시지, 텍스트 메시지, 도면과 그래프, 사진(위성으로부터 포함된), 뮤직 트랙(CD 혹은 DVDFMF 포함), 비디오, 그리고 다양한 형태의 컴퓨터 파일과 서류들에 대한 안전한 전송이 제공된다. 상기에서 마지막 인용된 네 개의 목록에 대해, 전송 에이전트의 입력은 때때로 UU-encode 혹은 yEnc와 같은 인쇄될 수 있는 혹은 텍스트 형태로 바뀔 수 있고, 그 다음에 수신 에이전트에 전달될 수 있다. 사실 본원발명의 다양한 실시예에 따라, 모든 종류의 평문 형태는 조절될 수 있다. 가끔은 인터페이스 혹은 전송 에이전트가 입력 형태를 조절할 수 없다.
본원발명의 실시예에 따라, 본원발명을 사용하기 위해, 일반적으로 수신자의 이메일 주소와 같은 수신 에이전트가 필요하다. 그러나, 도 24에 설명되는 것(2400)과 같이, 만일 수신 목적지가 명확하게 정해지지 않으면, 보안 메시지는 퍼블릭(public) 또는 프라이비트(private) 메시지 보드(2408)에 메시지들을 브로드캐스팅하여 전달된다. 보안 메시지를 브로드캐스트하기 위해, 암호문 C는 인터넷상의 대응하는 퍼블릭(public) 또는 프라이비트(private) 메시지 보드(2408)에 붙여질 수 있다. 예를 들어, 보안 메시지는 퍼블릭(public) 사이트 또는 프라이비트(private) 사이트의 소위 GUEST BOOK에 남을 수 있다. 공개된 메시지가 누군가에게 보여질 수 있다고 해도, 메시지의 내용은 암호화에 의해 보호된다. 암호화의 관점에서, 암호문의 공개는 인증받지 못한 개인에게 보안 메시지를 공개하지는 않는다. 단지, 알맞은 패스워드와 복호화를 가진 의도된 개인만이 평문을 얻을 수 있다.
브로드캐스팅 방법의 하나의 이점은 특정된 목적지에 대한 전송이 없고 또한 시간 지연이 없다는 것이다. 의도된 수신자는 어떤 시간에 어떤 장소(이 장소는 메시지가 보내지는 사이트에 접근할 수 있는 곳이다.)로부터 메시지에 접근할 수 있다. 본원발명의 브로드캐스트 실시예는 작은 메시지를 위해 가장 유용하고 즉각적이고 실시간적인 토론에 대해서는 편리하지 않다.
도 25에서 설명되는 것(2500)과 같이, 실시간 안전한 토론이나 채트에 대해, 두가지 방법 구조(암화화와 복호화)를 사용하는 본원발명의 다른 실시예는 채트룸 환경과 같이 실행될 수 있다. 채트 룸을 오픈한 후에, 암호문은 상태방의 채트룸 윈도우에 복사되고 붙일 수 있다.
본원발명의 이러한 실시예는 개인 네트워크, LAN 그리고 인터넷과 같은 어떤 네트워크 환경에서 실시간 보안 메시지 교환을 제공한다. 모든 통신 기록들은 자동적으로 동시에 저장될 것이다. 실시간 안전한 토론과 채트는 다음과 같은 당사자 혹은 고객들 사이에서 안전한 통신을 제공한다. 옥션, 입찰, 구매 가격, 비용 , 은행 그리고 모든 기록을 저장하는 안전한 토론, 폭탄을 제거하는 것과 같은 실시간 상호 군사 명령, 컴퓨터 구매와 같은 다양한 온라인 상담, 온라인 쇼핑에 대한 상담, 법률 상담(여기서 수신 영역은 일반적인 모든 채트 룸이고 오고 가는 모든 고객들은 관찰할 수 있고, 그리고 한번, K1, K2 그리고 F가 고객에게 전달되어 상담을 시작하기 위해 개인 채트룸이 열리면 상담자는 인스턴트 메시지를 이메일로 보낼 수 있다.), 즉각적이고, 안전하고 오픈된 온라인 뱅킹(여기서, 은행은 일반 채트룸에서 많은 고객들에게 서비스를 제공할 수 있고, 각각의 개인 고객은 개인 채트룸에서 관련 은행과 통신을 할 수 있다.), 그리고 상호 주문, 구매, 지불과 같은 즉각적이고, 안전하고 오픈된 온라인 비즈니스. 일반적으로, 즉적적으로 교환되는 메지시는 작다.
도 26에서 설명되는 것(2600)과 같이, HTML 그리고 스크립트에 의해 작성된 웹 페이지는 보통 텍스트의 암호화와 유사하게 암호화될 수 있다. 이러한 경우에 암호화된 웹 페이지는 특별하게 디자인된 복호화 페이지에 의해 데이터로 읽을 수 있다. 파라미터 K1, K2 그리고 Fare가 복호화 페이지 D(2608)에 들어올 때, 원래 웹 페이지가 얻어지고 즉각적으로 스크린에 디스플레이된다. 본원발명의 안전한 암호화와 같이, 암호화된 웹페이지의 안전은 보장된다. K1, K2 그리고 Fare가 복호화 페이지 D(2608)에 들어올 때 원래 암호 페이지는 스크린에 디스플레이된다. 다른 웹페이지로 바꾸기 위해, K1, K2 그리고 Fare의 다른 세트가 입력될 수 있고, 그 p이지는 다시 암호화된다. 이러한 실시예는, 예를 들어, "Shares and Investment", "Horse Pacing Tips", "Premium Jobs" 그리고 "Downloadable Song과 같은 어플리케이션에 대해 사용될 수 있다. 웹페이지를 암호화에 직접 입력함으로써, 암호문 데이터 C는 읽을 수 있게 재생될 수 있다. 하나의 실시예에 있어서, 모든 복호화 과정이 자동적으로 처리되기 위해, 파라미터 K1, K2 그리고 Fare가 선택될 수 있고, 정기적으로 파일로 사용자에게 이메일로 보내질 수 있다.
도 27에 설명되는 것(2700)과 같이, 하나의 실시예에 있어서, 본원발명은 일반적인 소프트웨어 그리고 설치를 보호하기 위해 사용될 수 있다. 특별하게 디자인된 복호화 D 소프트웨어(2708)는 암호문 데이터 C(2706)을 읽기 위해 그리고 디자인된 소프트웨어(2710)를 설치하기 위해 사용될 수 있다. 그러나, 그러한 실시예는 그 소프트웨어에 접근하는 또는 소프트웨어가 이용되는 시간동안 정보를 저장하는 사람이 누구인지 확인하지 못한다. 그리고 소프트웨어 정보 사용에 대한 비용을 부과하는 것이 어렵다.
입력 파리미터 P, K1, K2, F and C를 재배열하는 것에 의해, 안전한 차징 설비(charging facility)를 만들 수 있다. 하기와 같은 차징 설비는 다양한 실시예에 따라 본원발명을 사용할 수 있다. 신용 카드 보안, 캐시 머신 카드 보안, 접근 제어, 온라인 뱅킹, 온라인 쇼핑 그리고 온라인 엔터테인먼트 서비스 제공자.
신용 카드 실행에 있어서, 신용카드 사용자는 사전협의된 신용 제안을 가진 제공자(일반적으로 은행)으로부터 승인을 받은 후에 신용카드가 발급된다. 구매가 이루어지면, 신용카드 사용자는 카드의 상세정보와 지불 금액을 나타내는 영수증에 서명을 통해 지불에 대한 동의를 표시한다. 많은 경우에 있어서, 전자 증명 시스템은 카드가 효력이 있고 카드 고객은 구매 거래를 위해 구매 당시에 충분한 신용을 가지고 있다는 것을 상인(전자 테이프 T와 플로피 디스크와 유사한 방법으로 정보를 저장하고 있는 카드에 자기화된 물질의 스트립을 사용하는)이 확인할 수 있도록 사용된다.
그러나, 신용카드는 보안이 거의 안되고, 심지어는 전혀 안된다. 예를 들어, 카드의 유효성 체크는 기본적으로 만료일을 체크한다. 신용 카드 기계가 요구할 때, 추가적인 체크없이 카드소지자 정보 그리고 remaining credit를 보내고, 구체적인 신용 카드 번호와 규칙들이 오픈된다. 그리고 신용 카드 정보는 쉽게 복사되고, 도난되고, 소지자의 동의 없이 복사된다. 데이터 베이스가 해커와 내부자에 의해 불법적으로 접근되는 경우, 모든 카드 소지자 정보와 기록들이 쉽게 손상될 수 있다. 카드 위반과 범죄는 큰 규모로 이루어진다. 조직화된 범죄는 복사된 신용카드들을 팔고 있다는 증거이다.
신용 카드의 보안 문제에 대한 해결책을 제공하기 위해, 본원발명의 실시예에 의한 보안 암호화는 카드의 유효성을 증명하기 위한 강력한 확인 방법, 카드 정보에 대한 안전한 암호화, 신용 카드 데이터베이스 서버에대한 보안 암호화를 제공하기 위해 사용될 수 있고, 카드 정보가 범죄자에 알려지거나 복사될 때 또는 전송시 불법적으로 접근이 이루어질 때 재정적인 손실을 제한할 수 있다. 사용자가 계정을 지원했을 때, 서버는 다음과 같이 실행된다. 사용자 정보에 기반하여 평문 P를 선택한다. 이 P는, 예를 들어, 카드 소지자의 이름, 개시일과 만기일, 신용카드번호, 그리고 다른 기대할만한 정보를 포함하고 있다. 사용자 및/또는 회사의 요구에 따라, 파라미터 K1, K2 그리고 F를 생성하고, 파라미터 K1, K2 그리고 F를 사용해서 암호문 C를 생성하기 위한 암호화를 실행한다. 스트링들 P, C 그리고 F를 P=P1+P2, C=C1+C2 그리고 F=F1+F2와 같이 두 부분으로 나눈다. P1, K1, F1 그리고 C1의 정보를 신용카드에 삽입한다. 그리고 P2, K2, F2 그리고 C2를 카드 소지자의 데이터 데이스 기록에 삽입한다. 추가 보안을 위해, 카드 소지자와 관련된 다른 정 보, 카드 제한 그리고 remaining credit는 암호화되어 카드 소지자의 데이터베이스 기록에 저장될 수 있다.
도 29에 설명된 것(2900)과 같이, 신용 카드 확인 머신(2904)은 본원발명의 실시예에 따라 본원발명을 안전한 신용카드 거래에 사용한다. 신용카드가 신용카드 확인 머신에 삽입되면, 암호화를 실행하기 위해 신용카드 확인 머신은 신용카드(2902)로부터 P1, K1 그리고 F1을와 데이터 베이스 기록(2906)로부터 P2, K1, K2, F2 값을 가져온다. 암호화의 결과는 암호문 C이다. 이러한 새롭게 만들어진 암호문 C는 확인을 위한 암호문 C1(신용카드(2020)의 C1)과 C2(데이터베이스 기록(2906)의 C2)를 확인하기 위해 사용된다. 두 개의 암호문이 일치하면, 신용카드의 유효성이 성공적인 것으로 고려된다. 성공적인 확인 후에, 암호화된 신용 정보는 거래를 진행하기 위해 보내진다. 각 방문 후에(혹은 성공적인 거래 후에), 새로운 F 세트가 임의로 생성되고 새로운 암호문 C가 암호화에 사용되기 위해 얻어진다. F와 C의 정보는 F1, C1, F2 그리고 C2로 나누어지고 갱신을 위해 각각 사용자의 신용 카드(2902)와 데이터베이스 기록(2906)에 다시 저장된다. 또한 암호화된 신용 제한 정보의 새로운 세트가 갱신된다. 모든 필요한 이전의 기록들과 관련 거래는 신용카드 사용자의 계정 히스토리를 만들기 위해 로그된다. 그러므로, 서버 정보로부터 카드 복사는 불가능하다. 카드의 모든 체크와 확인은 카드 머신에서 이루어진다. 인터넷과 네트워크를 통한 모든 정보 전송은 "spyware", "Trojan Horse" 또는 "Insider"와 같은 네트워크 스파이 공격자를 제거하기 위해 암호화된다. 정보 C1, C2, F1 그리고 F2는 각 사용 후에, 바뀌기 때문에 사용자 카드로부터 복사 카드는 쓸모가 없다. 동일한 이유 때문에, 복사 카드의 사용 후에는 원본 ZKEMM가 가치가 없어지고 그러므로, 복사카드를 사용한 불법적인 행동은 더욱 쉽게 모니터링 될 수 있고 검색될 수 있다. 일반적으로, 신용 카드 오퍼레이션에 사용자의 인터랙션은 없고, 그러므로 신용카드 오퍼레인션은 "Non-Interactive Operation"으로 불릴 수 있다.
도 30에서 설명되는 것(3000)과 같이, 본원발명의 실시예에 의한 본원발명은 문의 장금에 그리고 특정 구역의 접근을 통제하기 위해 사용될 수 있다. 일반적으로, 카드 키를 사용해서 문을 열 수 있다. 전통적인 접근 제어 방법(암호와 확인)은 신용카드와 동일한 문제로 어려움을 겪어왔다. 문제는 카드 키가 쉽게 도난 복사될 수 있기 때문에 카드 키의 합법여부를 확인하는 강력한 확인 방법이 부족한점, 그리고 해킹에 대하여 카드 키 서버를 보호하기 위한 강력한 방법의 부재가 있다.(예를 들어, 침입자는 모든 키 기록을 훔치기 위해 카드 키 서버의 데이터 베이스에 불법적으로 접근할 수 있고 어떤 방에 들어가기 위해 훔친 키/훔친 키 카드 정보를 사용할 수 있다고 잘 알려져 있다.) 본원발명의 안전한 암호화를 사용하여, 상기 인용된 문제들이 해결될 수 있다. 도 30에 설명된 것과 같이, 키 카드 정보는 P1, K1, C1 그리고 F1(3002)을 포함한다. 장금(LOCK) 유닛(3004)은 암호화를 위해 사용된다. 그리고 데이터베이스 기록은 P2, K2, F2 그리고 C2(3006)를 포함한다. 키 카드가 장금(LOCK)에 삽입될 때, 확인 과정이 신용카드의 확인 과정에 따라 진 행한다. 기본적으로, 암호화가 동일한 암호문을 만들면, 카드 키는 유효한 것으로 인증되어 문이 열린다. 정보 C1, C2, F1 그리고 ㄹ2는 바뀌고 각 접근 후에 갱신된다. 모든 필요한 이전 기록들과 거래는 계정의 리스토리를 만들기 위해 로그된다. 조직 범죄자와 내부 침입자에 의해 서버가 해커될 때, 서버 기록으로부터 키를 복사하는 것을 막을 수 있다. 분식 키 그리고 복사 키는 각 접근에 대해 C와 F가 변하면 쓸모가 없다. 분실 도난된 키들은 쉽게 대체될 수 있다.
도 31에 설명된 것(3100)과 같이, 캐쉬 머신 작동은 또한 본원발명의 실시예에 따라 안전한 암호화를 이용한다. 일반적으로, 패스워드, 전형적으로 기억할 수 있는 패스워드(3106)은 캐쉬 머신(3104) 거래를 실행하기 위해 입력된다. 캐쉬 머신 보안은 신용 카드 어플리케이션과 같은 문제로 어려움이 있다. 평문 P의 부분은 기억할 수 있는 패스워드 즉, P=P1+P2+P3, 로 신용 카드에서와 같이 추출된다. 일반적으로 파라미터 P3는 숫자와 스트링을 상대적으로 기억하기 뒵도록 그리고 암호화에 입력되기 위해 사용된다. 파라미터 P1, K1, F1 그리고 C1은 캐쉬 머신 카드(3102)에 삽입된다. 파라미터 P2, K2, F2 그리고 C2는 은행의 데이터베이스 기록(3108)에 삽입된다. 안정성을 더욱 강화하기 위해, 계좌 그리고 관련 정보는 동일한 안전한 암호화 혹은 다른 선택된 방법들에 의해 암호화될 수 있다. 각 방문 혹은 각각의 성공적인 거래 후, 파라미터 F1, F2, C1 그리고 C2는 카드와 데이터 베이스에서 재생성되어 갱신된다. 새로운 계정 잔액과 다른 관련 정보는 보호를 위해 암호화되고 갱신된다. 모든 필요한 이전의 기록들과 거래는 계정의 히스토리를 만들기 위해 로그된다. 신용카드와 같이, 캐쉬 머신 카드와 데이터 베이스 기록은 안전한 암호화에 의해 보호된다. 서버가 조직화된 범죄자들 혹은 내부 침입자에 의해 불법적으로 접근될 때, 데이터베이스 기록으로부터 캐쉬 머신 카드 복사는 불가능한다. 복사된 카드는 C와 F가 각각의 접근에 대해 바뀌기 때문에 쓸모가 없다. 동일한 이유로, 복사 카드의 사용 후에, 원본 카드는 효력이 없고, 그러므로, 복사카드에 의한 불법적인 행동이 쉽게 모니터링되고 탐색될 수 있다. 분실 또는 도난된 키들은 F1, F2, C1 그리고 C2를 바꾸는 것에 의해 쉽게 대체될 수 있다. 상기 어플리케이션은 기억할 수 있는 패스워드에 의해 더욱 보호될 수 있다.
도 32에 설명된 것(3200)과 같이, 인터넷으로부터 다운로드될 수 있는 소프트웨어는 본원발명의 실시예에 따른 보안 암호에 의해 보호될 수 있다. 고정된 E, K2, P2, F2는 데이터베이스 기록(3210) 내부의 소프트웨어에 삽입되고 소프트웨어 실행 코드에 의해 보호된다. 암호화의 확인 과정은 소프트웨어 설치에 포함된다. 소프트웨어는 다운로드를 위해 인터넷(3206)에 위치한다. 사용자가 인증 사이트에서 소프트웨어 등록을 할 때, 소프트웨어(3202) 내부의 암호 파라미터에 기반한 파라미터 P1, K2, F1 그리고 C1이 재생된다.("ACTIVATION FILE"(3204)) activation file(3204)은 인증된 소프트웨어 설치를 위해 이메일로 사용자에게 전달된다. 소프트웨어 설치 동안에, activation file(3204)이 요구되고, 안전한 암호화로 입력된다. 파라미터 P1, P2, K1, K2, F1, F2 그리고 암호화 E는 activation file(3204)에서 동일한 암호문을 생성할 때, 소프트웨어 설치는 계속되고 설치가 성공적인 것으 로 고려된다. 다른 등록된 사용자에 대해, P1, K1, F1 그리고 C는 다를 수 있는데, 이는 각 사용자는 적당한 등록된 소프트웨어 버전을 가지기 위해서이다. 소프트웨어를 더욱 보호하기 위해, 때때로, 사용자 패스워드 P3는 소프트웨어 활동 코드로 P1에서 추출되고 인터랙티브 파라미터가 소프트웨어 설치에 필요하도록 서버 웹 페이지(3206)에 제공된다. 모든 필요한 이전 기록들과 거래들은 계정의 히스토리를 만들기위해 로그된다.
본원발명의 실시예에 따라, 보안 암호화는 인터넷상에서 차징 산업에 사용될 수 있다. 예를 들어, 보안 암호화는 사용자가 형식을 채우는 것에 의해 계정을 지원하고, 사용자가 데이터 베이스에 사용자 계정을 설정할 때 사용되고, 일반적인 "사용자 이름" 혹은 "패스워드" 대신에, 제공자가 활성(activation) 파일을 등록된 사용자에게 이메일로 동시에 보낸다. 사용자 이름, 패스워드 그리고 활성(activation) 파일에 기반해서, 사용자는 상기 설명된 것과 같은 암호화 과정을 통해 서버 사이트에 로그온 할 수 있다. 사용자는 로컬 머신(3202)에 서비스 페이지를 다운로드하고 실행한다. 활성(activation) 파일(3202)의 정보는 자동으로 서비스 페이지(3206)에 의해 읽힌다. 사용자는 보안 암호화가 실행될 수 있도록, 사용자 이름과 패스워드 P3를 서비스 페이지(3206)에 입력한다. 사용자 인증 후, 복호화와 고객에 대한 서비스 제공을 위해 암호화된 서비스 데이터 및/또는 웹 페이지는 데이터 베이스 기록(3210)에 의해 로컬 모신(3202)에 보내진다.
추가적인 보호를 위해, P3는 지문 혹은 다른 생체 인증 정보를 포함한다. 어 플리케이션의 휴대를 위해, 활성(activation) 파일은 메로리 스틱의 형태로 저장될 수 있다. 어플리케이션들은 AOL(American On-Line), job hunting, a dating agent, internet TV 그리고 broadband telephone과 같은 ISP(Internet Service Provider)에 의한 사용을 포함한다.
도 33에 설명된 것(3300)과 같이, 본원발명의 실시예에 따른, 보안 암호화는 온라인 뱅킹에 이용될 수 있다. 대부분의 온라인 뱅킹 시스템은 뱅킹 오퍼레이션과 데이터베이스 서버를 가지기 때문에, 보안 암호화는 암호화 레이어를 데이터베이스 서버에 형성하기 위해 현재 프로그램에 추가될 수 있다. 암호화 레이어를 데이터베이스 서버는 물리적으로 인증되지 않은 접근에 대해 보호되어야 하고 인터넷에 직접적으로 연결되지 말아야 한다. 은행 계죄들과 관련정보들은 인터넷 또는 네트워크 환경을 통해 뱅킹 페이지에 전송되기 전에 암호화 레이어에 의해 암호화되어야 한다. 사용자는 로컬 머신에서 온라인 뱅킹 페이지(3306)를 다운로드하고 실행한다. 활성(activation) 파일(3308)의 정보는 뱅킹 페이지(3306)에서 자동으로 읽혀진다. 뱅킹 페이지(3306)에서 사용자 이름과 패스워드 P3(3304)와 함께, 보안 암호화는 사용자 인증을 위해 수행된다. 사용자 인증 후에, 암호화된 뱅킹 오퍼레이션(3312)은 복호화를 위해 암호화 레이어(3310)에 보내진다. 그 다음에, 복호화된 뱅킹 정보는 실질적은 은행 업무를 위해 뱅킹 오퍼레이션과 데이터베이스 서버(3312)에 보내진다. 온라인 뱅킹의 휴대성을 증대하기 위해, 활성(activation) 파일은 로컬 머신, 메모리 스틱 및/또는 하드 디스크 또는 CK와 같은 휴대할 수 있 는 저장 장치들에 저장될 수 있다. 보안성을 증대하기 위해, P3 혹은 활성(activation) 파일은 지문과 같은 생체 인증 정보를 포함할 수 있다. 암호 레이어를 추가하는 것은, 변화를 최소화되도록 유지하기 위해, 모든 존재하는 온라인 뱅킹 오퍼레이션이 변하지 않도록 유지할 것이다.
비록 본원발명의 일부 실시예가 소개되기는 했지만, 본원발명의 원리와 정신을 벗어나지 않는 한 실시예에 있어서 변화는 가능하고 이는 당업자에게 충분히 고려될 수 있다. 또한 그 범위는 청구항에 기재된 내용과 동일성이 있는 범위에서 정해진다.
Claims (22)
- 평문 정보와 제 1 키를 이용해 제 1 암호 스트림을 생성하여 동기화하고, 제 2 동기화된 암호 스트림을 형성하기 위해 제어가능한 명문 스트림을 임의 추출하는 랜덤 함수와 제 2 키를 사용하여 제 2 암호 스트림을 생성하여 동기화하고, 암호문 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 사용해 복수의 제 1 및 제 2 암호 스트림을 연산하는 전송 에이전트;상기 암호문 스트림을 복호화하는 수신 에이전트를 포함하는 평문 정보를 안전하게 암호화하는 시스템.
- 제 1 항에 있어서, 상기 전송 에이전트는상기 평문 정보를 처리하거나 또는 수신된 암호문 스트림을 복호화 위해 연결된 CPU(Central Process Unit), 메모리부, 전송부를 포함하는 평문 정보를 안전하게 암호화하는 시스템.
- 제 2 항에 있어서, 상기 전송부는상기 수신 에이전트에 암호문 스트림과 제어가능한 평문 스트림을 전송하는 것을 특징으로 하는 평문 정보를 안전하게 암호화하는 시스템.
- 제 1 항에 있어서, 상기 시스템은 WAN, LAN 또는 WAN과 LAN의 조합을 통해 링크된 데이터 엔트리 스테이션과 데이티 베이스 서버를 포함하는 평문 정보를 안전하게 암호화하는 시스템.
- 평문 정보와 제 1 키를 이용해 제 1 암호 스트림을 생성하여 동기화하는 제 1 암호 스트림 재생기;제어가능한 평문 스트림을 임의 추출하여 동기화하기 위해 랜덤 함수와 제 2 키를 이용해 제 2 암호 스트림을 생성하여 동기화하는 제 2 암호 스트림 재생기;암호문 스트림을 얻기 위해 제 1 및 제 2 동기화된 암호 스트림들을 연산하는 EDO(Exclusive Disjunction Operator)를 포함하는 데이터 엔트리 스테이션을 포함하는 평문 정보를 안전하게 암호화하는 장치.
- 제 5 항에 있어서, 상기 제 1 암호 스트림 재생기는상기 평문 정보와 제 1 키의 입력에 따라 상기 제 1 암호 스트림을 생성하기 위해 배열된 블록 암호 암호화 유닛를 포함하고, 여기서 상기 블록 암호 암화 유닛은제 1 암호 스트림을 생성하는 블록 암호 암호화 장치 및 제 1 암호 스트림을 동기화하는 제 1 동기화 유닛; 또는제 1 암호 스트림을 생성하여 동기화하는 블록 암호 암호화/동기화 유닛 중에서 하나를 포함하는 평문 정보를 안전하게 암호화하는 장치.
- 제 5 항에 있어서, 상기 제 2 암호 스트림 재생기는제 2 암호 스트림을 출력하기 위해 상기 제 2 키와 상기 제어가능한 평문 스트림의 입력에 따라 상기 제어가능한 평문 스트림을 임의 추출한 후 동기화하도 배열된 랜덤 함수를 포함하고, 상기 랜덤 함수는상기 제어가능한 평문 스트림을 임의 추출하는 랜덤 함수 재생기 및 상기 임의 추출된 제 2 암호 스트림을 동기화하는 제 2 동기화 유닛; 또는임의 추출한 후에 제 2 암호 스트림을 동기화하는 랜덤 함수 재생기/동기화 유닛 중에서 하나를 포함하는 평문 정보를 안전하게 암호화하는 장치.
- 제 5 항에 있어서, 상기 EDO(Exclusive Disjunction Operator)는exclusive OR logical operator인 것을 특징으로 하는 평문 정보를 안전하게 암호화하는 장치.
- 평문 정보와 제 1 키를 이용해 제 1 암호 스트림을 재생하여 동기화하는 단계;제 2 암호 스트림을 형성하기 위 제어가능한 평문 스트림을 임의 추출하는 랜덤 함수와 제 2 키를 이용해 제 2 암호 스트림을 재생하여 동기화하는 단계;암호 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 이용해 복수의 제 1 및 제 2 암호 스트림을 연산하는 단계를 포함하는 평문 정보를 안전하게 암호화하는 방법.
- 평문 정보와 제 1 키로부터 생성되어 동기화된 제 1 동기 스트림 및제 2 키를 이용해 제어가능한 평문 스트림으로부터 임의추출한 후에 동기화된 제2 암호 스트림으로부터 암호문 스트림을 생성하는 EDO(Exclusive Disjunction Operator)를 사용하는 것을 포함하는 평문 정보를 안전하게 암호화하는 방법.
- 제 1 키워드를 이용해 평문 정보를 암호화하여 재생되고 동기화된 적어도 하나의 제 1 암호 스트림 및 제어가능한 평문과 제 2 키워드에 대한 랜덤 함수 연산에 의해 재생되고 동기화된 적어도 하나의 제2 암호 스트림을 포함하는 복수의 동 기화된 암호 스트림들을 재생하는 단계;암호문 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 이용해 동기화된 복수의 암호 스트림들을 연산하는 단계를 포함하는 평문 정보를 안전하게 암호화하는 방법.
- 평문 정보를 안전하게 암호화하는 컴퓨터로 읽을 수 있는 명령어들을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서, 상기 컴퓨터로 읽을 수 있는 명령어들은상기 평문 정보와 제 1 키를 이용해 제 1 암호 스트림을 재생하고 동기화하고,제 2 키와 랜덤 함수를 이용해 제어가능한 평문 스트림으로부터 형성된 제 2 암호 스트림을 임의추출하여 동기화하고,암호문 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 이용해 동기화된 복수의 제 1 및 제 2 암호 스트림들을 연산하는 것을 특징으로 하는 기록매체.
- 평문 정보를 안전하게 암호화하는 컴퓨터로 읽을 수 있는 명령어들을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서, 상기 컴퓨터로 읽을 수 있는 명령어들 은상기 평문 정보와 제 1 키로부터 재생되고 동기화된 제 1 암호 스트림, 및제 2 키와 랜덤 함수를 이용해 제어가능한 평문 스트림으로부터 임의 추출되어 동기화된 제 2 암호 스트림으로부터 암호 스트림을 재생하는 EDO(Exclusive Disjunction Operator)을 이용하는 것을 특징으로 하는 기록매체.
- 평문 정보를 안전하게 암호화하는 컴퓨터로 읽을 수 있는 명령어들을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서, 상기 컴퓨터로 읽을 수 있는 명령어들은제 1 키를 이용해 평문 정보를 암호화하여 생성되는 적어도 하나의 제 1 동기화된 암호 스트림 및조절가능한 평문과 제 2 키워드의 랜덤 함수 연산에 의해 생성되는 적어도 하나의 제 2 동기화된 암호 스트림을 포함하는 동기화된 복수의 암호 스트림들을 생성하고,암호문 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 이용해 동기화된 복수의 암호 스트림들을 연산하는 것을 특징으로 하는 기록매체.
- 사용자가 계정을 지원할 때, 사용자 정보에 기반한 평문 P를 서버/데이터 기 록에 의해 선택하는 단계;신용 카드를 제공하는 사용자 또는 회사의 요구에 따라 상기 서버/데이터 기록에 의해 제 1 키, 제 2 키 그리고 제어가능한 평문 스트림을 생성하는 단계;암호문 C를 생성하기 위해 상기 서버/데이터 기록에 의해 상기 평문, 상기 제 1 키, 상기 제 2 키 그리고 상기 제어가능한 평문 스트림을 사용하여 암호화를 수행하는 단계;상기 평문, 상기 제 1 키, 상기 제어가능한 평문 스트림 그리고 상기 제 1 제 1 암호문 스트림의 정보를 상기 신용 카드에 삽입하는 단계;상기 평문, 상기 제 2 키, 상기 제어가능한 평문 스트림 그리고 제 2 암호문 스트림을 카드 소지자 데이터 베이스 기록에 삽입하는 단계;상기 제 1 키, 상기 제 2 키 그리고 상기 제어가능한 평문 스트림을 이용해 미리 정해진 틀에 따라 상기 평문을 암호문으로 암호화하는 단계를 포함하는 신용카드에서 평문 정보를 안전하게 암호화하는 방법.
- 제 15 항에 있어서, 상기 평문의 스트링들, 상기 암호문 그리고 상기 제어가능한 평문 스트링 중에서 적어도 하나가 분리되는 것을 특징으로 하는 신용 카드에서 평문 정보를 안전하게 암호화하는 방법.
- 제 1 키워드 K1, 제2 키워드 K2, 제어가능한 평문 스트림 F 그리고 랜덤 함수 R을 사용자 입력에 할당하는 단계;보안 모드를 이용해 K1, K2, F 그리고 R을 수신 에이전트에 전달하는 단계;암호문 스트림을 형성하기 위해 미리 결정된 틀에 따라 K1, K2, F 그리고 R을 이용해 평문 스트림을 암호화하고 상기 암호문 스트림을 수신 에이전트에 전송하는 단계를 포함하는 평문 정보를 안전하게 암호화하는 방법.
- 제 17 항에 있어서, 미리 결정된 틀에 따라 K1, K2, F 그리고 R을 이용해 평문 스트림을 암호화하는 단계는상기 평문을 제 1 암호 스트림으로 변환하기 위해 블록 암호화 K1을 사용하는 단계;제 2 암호 스트림을 형성하기 위해 R을 이용해 F를 임의 추출하는 단계;제 1 암호 스트림과 제 2 암호 스트림을 동기화하는 단계; 및암호문 스트림을 얻기 위해 EDO(Exclusive Disjunction Operator)를 이용해 동기화된 제 1 및 제 2 암호 스트림들을 연산하는 단계를 포함하는 평문 정보를 안전하게 암호화하는 방법.
- 제 17 항에 있어서,상기 동기화된 제 1 암호 스트림으로부터 상기 암호문 스트림에 헤드 정보를 제공하기 위해 벡터 함수를 사용하는 단계를 더 포함하는 평문 정보를 안전하게 암호화하는 방법.
- 제 17 항에 있어서,상기 암호문 스트림에 헤드 정보를 제공하기 위해 상기 동기화된 제 2 암호 스트림을 연산하는 벡터 함수를 사용하는 단계를 더 포함하는 평문 정보를 안전하게 암호화하는 방법.
- 청구항 17 항에 따라 암호화된 암호문 정보를 복호화하는 방법에 있어서,상기 암호문 스트림을 복호화하기 위해 청구항 17항의 반대과정으로 K1, K2, F 및 R을 사용하는 것을 특징으로 하는 복호화 방법.
- 제 17항의 방법에 있어서,신용 카드 거래, 캐쉬 머신 거래, 인터넷상의 차징 거래 또는 온라인 뱅킹 거래 중에서 하나의 거래에 의해 수행되는 평문 정보를 안전하게 암호화하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/041,436 | 2005-01-25 | ||
US11/041,436 US7751565B2 (en) | 2005-01-25 | 2005-01-25 | Secure encryption system, device and method |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070108186A true KR20070108186A (ko) | 2007-11-08 |
Family
ID=36740039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077019372A KR20070108186A (ko) | 2005-01-25 | 2006-01-19 | 보안 암호화 시스템, 장치 그리고 방법 |
Country Status (12)
Country | Link |
---|---|
US (2) | US7751565B2 (ko) |
EP (1) | EP1847064A1 (ko) |
JP (1) | JP2008529044A (ko) |
KR (1) | KR20070108186A (ko) |
CN (1) | CN101156347A (ko) |
AU (1) | AU2006208377A1 (ko) |
BR (1) | BRPI0606238A2 (ko) |
CA (1) | CA2595313A1 (ko) |
MX (1) | MX2007008936A (ko) |
RU (1) | RU2007132196A (ko) |
WO (1) | WO2006079277A1 (ko) |
ZA (1) | ZA200707007B (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8971530B2 (en) | 2009-06-24 | 2015-03-03 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
KR101954863B1 (ko) * | 2018-07-09 | 2019-03-06 | 서울대학교산학협력단 | 온라인 월렛 장치 및 이의 생성과 검증 방법 |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060126829A1 (en) * | 2004-11-24 | 2006-06-15 | Binbin Lai | Image encryption method |
EP2424322A3 (en) | 2005-04-26 | 2012-06-13 | Vodafone Group PLC | Telecommunications networks |
JP4596256B2 (ja) * | 2005-08-02 | 2010-12-08 | ソニー株式会社 | 送受信システムおよび方法、送信装置および方法、受信装置および方法、並びにプログラム |
EP1798975A1 (fr) * | 2005-12-15 | 2007-06-20 | Nagra France Sarl | Procede de chiffrement et de dechiffrement d'un contenu a access conditionnel |
US7734044B2 (en) * | 2006-02-23 | 2010-06-08 | Texas Instruments Incorporated | Method and apparatus for synchronous stream cipher encryption with reserved codes |
WO2007133178A2 (en) * | 2006-04-21 | 2007-11-22 | The Trustees Of Columbia University In The City Of New York | Systems and methods for inhibiting attacks on applications |
US8818904B2 (en) | 2007-01-17 | 2014-08-26 | The Western Union Company | Generation systems and methods for transaction identifiers having biometric keys associated therewith |
US7933835B2 (en) | 2007-01-17 | 2011-04-26 | The Western Union Company | Secure money transfer systems and methods using biometric keys associated therewith |
JP2008186289A (ja) * | 2007-01-30 | 2008-08-14 | Ntt Docomo Inc | コンテンツ利用装置及びコンテンツ利用方法 |
KR101421241B1 (ko) * | 2007-11-16 | 2014-07-18 | 삼성전자주식회사 | 네트워크에서의 보안 시스템 및 방법 |
JP2011008701A (ja) * | 2009-06-29 | 2011-01-13 | Sony Corp | 情報処理サーバ、情報処理装置、および情報処理方法 |
US8605897B2 (en) * | 2009-07-28 | 2013-12-10 | Telecom Italia S.P.A. | Symmetric-key encryption method and cryptographic system employing the method |
US20130041797A1 (en) * | 2011-01-12 | 2013-02-14 | James W. Geeslin | Banking location utilizing secure transaction station and method of processing consumer banking transactions |
US9495541B2 (en) | 2011-09-15 | 2016-11-15 | The Trustees Of Columbia University In The City Of New York | Detecting return-oriented programming payloads by evaluating data for a gadget address space address and determining whether operations associated with instructions beginning at the address indicate a return-oriented programming payload |
US8903088B2 (en) | 2011-12-02 | 2014-12-02 | Adobe Systems Incorporated | Binding of protected video content to video player with encryption key |
US8879731B2 (en) * | 2011-12-02 | 2014-11-04 | Adobe Systems Incorporated | Binding of protected video content to video player with block cipher hash |
US8819408B2 (en) * | 2011-12-20 | 2014-08-26 | Industrial Technology Research Institute | Document processing method and system |
US9197613B2 (en) | 2011-12-20 | 2015-11-24 | Industrial Technology Research Institute | Document processing method and system |
US8687808B2 (en) | 2012-04-10 | 2014-04-01 | Comtech Ef Data Corp. | Method and system for self synchronizing cryptographic parameters |
US9064318B2 (en) | 2012-10-25 | 2015-06-23 | Adobe Systems Incorporated | Image matting and alpha value techniques |
US9355649B2 (en) | 2012-11-13 | 2016-05-31 | Adobe Systems Incorporated | Sound alignment using timing information |
US10638221B2 (en) | 2012-11-13 | 2020-04-28 | Adobe Inc. | Time interval sound alignment |
US9201580B2 (en) | 2012-11-13 | 2015-12-01 | Adobe Systems Incorporated | Sound alignment user interface |
US9076205B2 (en) | 2012-11-19 | 2015-07-07 | Adobe Systems Incorporated | Edge direction and curve based image de-blurring |
US8897588B2 (en) | 2012-11-20 | 2014-11-25 | Adobe Systems Incorporated | Data-driven edge-based image de-blurring |
US10249321B2 (en) | 2012-11-20 | 2019-04-02 | Adobe Inc. | Sound rate modification |
US9451304B2 (en) | 2012-11-29 | 2016-09-20 | Adobe Systems Incorporated | Sound feature priority alignment |
US9135710B2 (en) | 2012-11-30 | 2015-09-15 | Adobe Systems Incorporated | Depth map stereo correspondence techniques |
US10455219B2 (en) | 2012-11-30 | 2019-10-22 | Adobe Inc. | Stereo correspondence and depth sensors |
US10249052B2 (en) | 2012-12-19 | 2019-04-02 | Adobe Systems Incorporated | Stereo correspondence model fitting |
US9208547B2 (en) | 2012-12-19 | 2015-12-08 | Adobe Systems Incorporated | Stereo correspondence smoothness tool |
US9214026B2 (en) | 2012-12-20 | 2015-12-15 | Adobe Systems Incorporated | Belief propagation and affinity measures |
US10341110B2 (en) | 2013-03-29 | 2019-07-02 | Hewlett-Packard Development Company, L.P. | Securing user credentials |
US9350714B2 (en) * | 2013-11-19 | 2016-05-24 | Globalfoundries Inc. | Data encryption at the client and server level |
US9953320B2 (en) | 2014-03-20 | 2018-04-24 | Sutherland Global Services, Inc. | System and method for secure payment transactions during a chat session |
CN105306194B (zh) * | 2014-07-22 | 2018-04-17 | 柯呈翰 | 供加密档案和/或通讯协定的多重加密方法与系统 |
US10437288B2 (en) | 2014-10-06 | 2019-10-08 | Fasetto, Inc. | Portable storage device with modular power and housing system |
CN106254327A (zh) * | 2016-07-28 | 2016-12-21 | 努比亚技术有限公司 | 信息处理装置及方法 |
US11784793B2 (en) | 2016-07-29 | 2023-10-10 | Permanent Privacy Ltd. | Applications in connection with secure encryption |
CA3054681A1 (en) | 2017-02-03 | 2018-08-09 | Fasetto, Inc. | Systems and methods for data storage in keyed devices |
CN106953875A (zh) * | 2017-04-26 | 2017-07-14 | 吉林大学珠海学院 | 基于多密钥流密码的顺序加密方法 |
US10860403B2 (en) | 2017-09-25 | 2020-12-08 | The Boeing Company | Systems and methods for facilitating truly random bit generation |
US10924263B2 (en) * | 2017-09-25 | 2021-02-16 | The Boeing Company | Systems and methods for facilitating iterative key generation and data encryption and decryption |
US10965456B2 (en) | 2017-09-25 | 2021-03-30 | The Boeing Company | Systems and methods for facilitating data encryption and decryption and erasing of associated information |
JP2021505938A (ja) * | 2017-12-01 | 2021-02-18 | ファセット・インコーポレーテッド | データ暗号化を改善するシステムおよび方法 |
CN112292708B (zh) | 2018-04-17 | 2022-06-17 | 法斯埃托股份有限公司 | 具有实时反馈的演示系统和方法 |
US11290430B2 (en) | 2018-06-25 | 2022-03-29 | Virtual Software Systems, Inc. | Systems and methods for securing communications |
CN110069906A (zh) * | 2019-03-11 | 2019-07-30 | 平安科技(深圳)有限公司 | 一种电子文件的加密、解密方法及其装置 |
CN111959139B (zh) * | 2020-08-31 | 2022-05-13 | 湖南鼎一致远科技发展有限公司 | 一种热转印打印机的加密系统 |
US20220075877A1 (en) | 2020-09-09 | 2022-03-10 | Self Financial, Inc. | Interface and system for updating isolated repositories |
US11641665B2 (en) | 2020-09-09 | 2023-05-02 | Self Financial, Inc. | Resource utilization retrieval and modification |
CN116319079B (zh) * | 2023-05-16 | 2023-08-01 | 北京赢科天地电子有限公司 | 一种成绩数据的安全加密方法 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3956615A (en) * | 1974-06-25 | 1976-05-11 | Ibm Corporation | Transaction execution system with secure data storage and communications |
US4186871A (en) * | 1978-03-01 | 1980-02-05 | International Business Machines Corporation | Transaction execution system with secure encryption key storage and communications |
US4707592A (en) * | 1985-10-07 | 1987-11-17 | Ware Paul N | Personal universal identity card system for failsafe interactive financial transactions |
US5412730A (en) * | 1989-10-06 | 1995-05-02 | Telequip Corporation | Encrypted data transmission system employing means for randomly altering the encryption keys |
JP2783971B2 (ja) * | 1994-01-26 | 1998-08-06 | 日本信販株式会社 | クレジットカードの発行方法 |
US6163771A (en) * | 1997-08-28 | 2000-12-19 | Walker Digital, Llc | Method and device for generating a single-use financial account number |
US6213391B1 (en) * | 1997-09-10 | 2001-04-10 | William H. Lewis | Portable system for personal identification based upon distinctive characteristics of the user |
US20010037454A1 (en) * | 2000-05-01 | 2001-11-01 | Botti John T. | Computer networked system and method of digital file management and authentication |
US20010034702A1 (en) * | 2000-02-04 | 2001-10-25 | Mockett Gregory P. | System and method for dynamically issuing and processing transaction specific digital credit or debit cards |
AU2001236864A1 (en) * | 2000-02-11 | 2001-08-20 | Arun K. Subramaniam | System and method for providing anonymous internet transaction |
KR100366060B1 (ko) * | 2000-03-16 | 2002-12-28 | 주식회사 하렉스인포텍 | 광지불송수신장치 및 이를 이용한 광결제시스템 |
KR20010112546A (ko) * | 2000-06-08 | 2001-12-20 | 배태후 | 신용카드를 이용한 전자상거래 시스템 및 방법 |
CN1434955A (zh) * | 2000-06-08 | 2003-08-06 | 金晎镒 | 用于基于因特网的商务的支票/卡及其交易方法 |
US20020043566A1 (en) * | 2000-07-14 | 2002-04-18 | Alan Goodman | Transaction card and method for reducing frauds |
US7469233B2 (en) * | 2000-07-24 | 2008-12-23 | American Express Travel Related Services Company, Inc. | Method and system for facilitating the anonymous purchase of goods and services from an e-commerce website |
US20020032662A1 (en) * | 2000-08-30 | 2002-03-14 | Maclin Roland Martin | System and method for servicing secure credit/debit card transactions |
US20020073045A1 (en) * | 2000-10-23 | 2002-06-13 | Rubin Aviel D. | Off-line generation of limited-use credit card numbers |
US6877656B1 (en) * | 2000-10-24 | 2005-04-12 | Capital One Financial Corporation | Systems, methods, and apparatus for instant issuance of a credit card |
US7277543B1 (en) | 2000-11-14 | 2007-10-02 | Honeywell International Inc. | Cryptographic combiner using two sequential non-associative operations |
JP2002207874A (ja) * | 2001-01-09 | 2002-07-26 | Nec Corp | カード発行代行システム |
US7249076B1 (en) * | 2001-05-14 | 2007-07-24 | Compucredit Intellectual Property Holdings Corp. Iii | Method for providing credit offering and credit management information services |
US6857566B2 (en) * | 2001-12-06 | 2005-02-22 | Mastercard International | Method and system for conducting transactions using a payment card with two technologies |
US20030149869A1 (en) * | 2002-02-01 | 2003-08-07 | Paul Gleichauf | Method and system for securely storing and trasmitting data by applying a one-time pad |
US20040139235A1 (en) * | 2002-11-01 | 2004-07-15 | Gus Rashid | Local intelligence, cache-ing and synchronization process |
CN1527531A (zh) | 2003-03-07 | 2004-09-08 | 华为技术有限公司 | 一种数据加密标准或三重数据加密标准的实现方法 |
JP2004347885A (ja) | 2003-05-22 | 2004-12-09 | Nippon Telegr & Teleph Corp <Ntt> | 暗号化装置処理方法、暗号復号装置処理方法、これらの装置及びプログラム |
-
2005
- 2005-01-25 US US11/041,436 patent/US7751565B2/en active Active
-
2006
- 2006-01-19 CN CN200680009707.2A patent/CN101156347A/zh active Pending
- 2006-01-19 WO PCT/CN2006/000086 patent/WO2006079277A1/en active Application Filing
- 2006-01-19 MX MX2007008936A patent/MX2007008936A/es not_active Application Discontinuation
- 2006-01-19 KR KR1020077019372A patent/KR20070108186A/ko not_active Application Discontinuation
- 2006-01-19 ZA ZA200707007A patent/ZA200707007B/xx unknown
- 2006-01-19 JP JP2007551535A patent/JP2008529044A/ja active Pending
- 2006-01-19 AU AU2006208377A patent/AU2006208377A1/en not_active Abandoned
- 2006-01-19 EP EP06705507A patent/EP1847064A1/en not_active Withdrawn
- 2006-01-19 CA CA002595313A patent/CA2595313A1/en not_active Abandoned
- 2006-01-19 BR BRPI0606238-5A patent/BRPI0606238A2/pt not_active IP Right Cessation
- 2006-01-19 RU RU2007132196/09A patent/RU2007132196A/ru not_active Application Discontinuation
-
2010
- 2010-06-14 US US12/815,199 patent/US8595508B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8971530B2 (en) | 2009-06-24 | 2015-03-03 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
US9800409B2 (en) | 2009-06-24 | 2017-10-24 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
US10341099B2 (en) | 2009-06-24 | 2019-07-02 | Intel Corporation | Cryptographic key generation using a stored input value and a stored count value |
KR101954863B1 (ko) * | 2018-07-09 | 2019-03-06 | 서울대학교산학협력단 | 온라인 월렛 장치 및 이의 생성과 검증 방법 |
Also Published As
Publication number | Publication date |
---|---|
EP1847064A1 (en) | 2007-10-24 |
BRPI0606238A2 (pt) | 2009-06-09 |
ZA200707007B (en) | 2008-11-26 |
RU2007132196A (ru) | 2009-03-10 |
CN101156347A (zh) | 2008-04-02 |
US20060193472A1 (en) | 2006-08-31 |
WO2006079277A1 (en) | 2006-08-03 |
MX2007008936A (es) | 2007-12-06 |
CA2595313A1 (en) | 2006-08-03 |
AU2006208377A1 (en) | 2006-08-03 |
US8595508B2 (en) | 2013-11-26 |
US20100257368A1 (en) | 2010-10-07 |
JP2008529044A (ja) | 2008-07-31 |
US7751565B2 (en) | 2010-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8595508B2 (en) | Method of secure encryption | |
US7376624B2 (en) | Secure communication and real-time watermarking using mutating identifiers | |
US6370250B1 (en) | Method of authentication and storage of private keys in a public key cryptography system (PKCS) | |
US20060195402A1 (en) | Secure data transmission using undiscoverable or black data | |
US20080168568A1 (en) | Token passing technique for media playback devices | |
US20130028419A1 (en) | System and a method for use in a symmetric key cryptographic communications | |
CN110289946B (zh) | 一种区块链钱包本地化文件的生成方法及区块链节点设备 | |
JP2013059078A (ja) | マルチメディア・データの保護 | |
US6711553B1 (en) | Method and apparatus for digital content copy protection | |
US6918036B1 (en) | Protected platform identity for digital signing | |
CN103237010B (zh) | 以加密方式提供数字内容的服务器端 | |
JPH1131130A (ja) | サービス提供装置 | |
KR20100114321A (ko) | 디지털 콘텐츠 거래내역 인증확인 시스템 및 그 방법 | |
Bastanta et al. | Image data encryption using DES method | |
CN1558580B (zh) | 一种基于密码技术的网络数据安全防护方法 | |
Wu et al. | A flexible and lightweight user‐demand DRM system for multimedia contents over multiple portable device platforms | |
US11468178B1 (en) | Embedded obfuscated channel cryptography | |
CN108985079B (zh) | 数据验证方法和验证系统 | |
US20070192589A1 (en) | System and method for encrypting webpage logs | |
WO2021044465A1 (ja) | 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造 | |
JPH10228375A (ja) | 電子流通システム | |
Reddy et al. | Data Storage on Cloud using Split-Merge and Hybrid Cryptographic Techniques | |
Shaik et al. | A compatible hexadecimal encryption-booster algorithm for augmenting security in the advanced encryption standard | |
JPH11340971A (ja) | 暗号復号処理装置 | |
CN116527236A (zh) | 一种加密卡的信息变更验证方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |