KR19990022194A - 암호 액세스 및 레이블링 시스템 - Google Patents
암호 액세스 및 레이블링 시스템 Download PDFInfo
- Publication number
- KR19990022194A KR19990022194A KR1019970708673A KR19970708673A KR19990022194A KR 19990022194 A KR19990022194 A KR 19990022194A KR 1019970708673 A KR1019970708673 A KR 1019970708673A KR 19970708673 A KR19970708673 A KR 19970708673A KR 19990022194 A KR19990022194 A KR 19990022194A
- Authority
- KR
- South Korea
- Prior art keywords
- label
- subroutine
- key
- box
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04K—SECRET COMMUNICATION; JAMMING OF COMMUNICATION
- H04K1/00—Secret communication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Radar Systems Or Details Thereof (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
액세스 제어 모듈은 미리 할당된 암호구와 함께한 이용자에게 프로그램의 암호화 내지 해독화 부분에 액세스를 하게 하는 것을 발생된 벡터 내지 키와 플로피 디스크와 같은 휴대용 저장 매체에 저장된 두 번째 벡터 내지 키의 부분적으로 해독된 버젼(version)과의 비교에 의해 승인된다. 만일 성공적이면, 액세스 제어 모듈은 레이블들을 암호화 및 해독하기 위하여 프로그램의 회상이 처음부터 끝까지 이용되는 메인 키를 생성한다. 암호화 내지 해독화 과정의 부분은 초기화 벡터의 바이트가 스핀업 번호로 불리는 입력 숫자와 서로 계속적으로 배타적 논리합 되는 내부적이며, 재생할 수 있고, 그러나 거꾸로 할 수 없는 섞여지는 서브루틴을 이용하며, 진행이 반복되는 횟수를 제어한다.
Description
상용의 개개의 시스템은 정보를 보호하고 거기에 액세스하는 것을 제한하기 위하여 암호 알고리즘을 이용한다. 표준적인 암호 알고리즘은 데이터 암호 표준 (Data Encryption Standard : DES) 이다. 이와 같이 개인용 암호 시스템은 조직 내에 개인들에게 암호 키를 이용하여 평문(plain text)을 암호문으로 보호화하도록 허용한다. 암호문은 섞여 있으며 읽을 수 없다. 암호화된 컴퓨터 시스템에 있어서, 암호문 문자들은 현대 컴퓨터 시스템에 이용되는 표준 아스키 (ASCII)문자들의 임의의 것이 될 것이다.
암호문을 만드는 암호 과정은 거꾸로 할 수 있으며 평문을 암호화하기 위해 이용되는 적절한 키를 이용하여 그 키를 갖고 있는 이용자에 의해 원래의 평문으로 재생될 수도 있다. 읽을 수 없는 것을 제외하고는 암호문은 저장 및 전송될 수 있으며 임의의 다른 파일 또는 데이터와 같이 조작될 수 있다. 그 키와 암호 알고리즘의 실체를 비밀로 유지하는 것에 의해 암호문은 해독되지 않은 상태로 유지된다. 평문을 암호 및 해독하는 어려움에다가 많은 수의 조직에 부서와 조직 그리고 그 부서의 특정인의 어느 누가 쓰여진 정보와 온-라인 통신에 액세스를 제어할 수 있는지 지정하는 문제가 또한 있다. 분명하게, 단일키는 각각의 특별한 문과 각각의 문의 특별한 이용을 위하여 이용되어질 수 있다. 그러나 이것은 단일키의 추적을 유지하기 위해 적용되어져야하는 추적 과정의 문제를 일으킨다. 이러한 기능 또는 역할은 키 관리(key management)로 불린다. 즉, 키 관리는 종종 가격적으로 조직적 안전 시스템의 중요한 부분이 된다.
키 관리 시스템의 수행 값은 올바른 방법으로, 정확한 시간에, 맞는 사람에 도달하는 중요한 조직적인 정보의 값이다. 보호되어져야 하는 개인적 또는 민감한 정보를 통신하는 사람의 많은 그룹이 있을 때, 단일 키 각각의 어느것이 사용되는지 누구에 의해 사용되는지 그리고 특별한 키의 사용근거를 추적하는 것이 키관리 과정의 어려운 부분이다.
이와 같이 다르게 분할된, 종종 중첩되며 종종 그룹을 바꾸는 많은 활성 멀티-미디어 방법들을 통해 다양한 이유로 통신하는 많은 사람에게 필요로 하는 키들의 복잡한 배열의 결과로서, 거의 가능하지 않더라도 키 관리는 극단적으로 어렵게 만들어진다. 추가적으로, 키의 추적은 생성, 발생, 또는 그 키의 이용의 조정의 입증 없이 계획 또는 특별한 스테이션(station)에 대하여 특별한 키를 할당하는 것의 단순한 할당 과정을 대표한다. 다른 말로, 하나의 키가 한번 발생되면, 그 발생에 대한 이유는 종종 잃어버린다. 종래의 키 관리 시스템을 유지하기에 극도로 어렵게 하는 것은 이러한 독립적인 키의 추적이다.
즉, 특별한 메시지와 함께 이용되는 키의 추적 뿐만 아니라 그 키의 이용에 대한 정당화와 다른 분류의 개인적 액세스에 대한 정당화 및 통신 시스템을 선택하기 위해 사용되는 기준을 유지하는 키 관리 시스템이 요구된다.
기존의 암호 시스템의 이용에 있어 오늘날 중요한 문제는 현대 소형의 멀티-미디어 방법을 이용하여 분배되고 저장된 정보의 전후 관계, 의도, 감도와 관계되는 연결되어 있는 사용에 관한 것이다. 그러나, 정보의 이용자의 숙련이 보통 비기술적이기 때문에 매우 단순하고 컴퓨터화된 시스템이 이러한 목적을 이루기 위해 요구된다. 데이터 또는 전송되어진 정보는 합리성의 실질적인 대표성을 갖으나, 자체 기준 설정된 내부 정보를 오직 이동시킬 수 있기 때문에 불완전하다. 데이터는 또한 데이터 및 통신의 근거를 제공하는 추리요소를 전달하기위해 필요한 외부 기준을 제공할 정도로 복잡하지 않아야한다. 즉, 상기 목적과 데이터 또는 정보의 이용을 위하여 외부 합리화를 적용하기 위한 수단이 또한 요구된다.
오늘날의 통신 환경에 있어서, 소형의 멀티-미디어 시스템은 매우 많은양의 정보를 발생시키며, 그들의 많은 부분은 민감하며, 그들의 모두는 내부 조직의 네트워크와 인트라(intra) 구조의 서브 네트워크를 통과되어지는 것을 필요로 한다. 어느 정도, 모든 조직은 정보의 다른 타입의 구획을 요구한다. 상기 구조는 민감한 정보의 일부 또는 모두에 멀티-레벨의 액세스에 대한 요구를 가지며 그러한 액세스 개념은 특별한 정보에 액세스하는 개인의 필요 및 능력의 고려와 관계된다. 한편, 임의의 정보 액세스 제한 시스템은 너무 귀찮거나 이용을 어렵게 할 수 없기 때문에 최소한 이용 내지 정보의 액세스를 방해하고 최대한 그것의 액세스와 이용을 막는다.
즉, 데이터 또는 정보가 그것의 존재하는 이유와 그것에 액세스하는 근본적 이유와 함께 수행되는 키 관리 철학으로 향하는 목적에 대한 필요성이 있다. 이것은 종종 알고리즘에 이용되는 키와 암호문 제품 또는 그것의 이용 사이에 합리적이 문자열의 확실한 서명에 대한 필요성이 요구된다. 표준 암호화 개인용 시스템은 일반적으로 불합리한 키와 그 이용에 있어 종종 약간 엄밀한 이유 사이에 수작업으로 색인된 조합에 기초한다. 키들은 필수적으로 불특정한 번호들로부터 선택되며 암호화 알고리즘에서 초기화 포인터(pointer)를 초기화하기 위해 이용된다. 종종, 이러한 키는 불특정 번호 발생기에 의해 발생되며 이용자에게 알려져 있지 않은 대신에 이용자가 이용하는 특별한 컴퓨터 프로그램에 내장되어 있다. 명백하게, 이러한 시스템 타입은 키가 데이터나 정보가 발생되고 전송하는 시스템에 빠트릴 수 없다는 단점을 갖고 있다. 불합리한 키 즉, 함께로는 의미를 갖지 않는 문자들로 구성된 키에 의해서, 그 키의 존재에 대한 이유의 추적을 유지하기가 매우 어렵다. 시간과 상황적 조건들의 결합으로 상기키와 데이터의 발생에 대한 이유에서 결합이 발생한다.
더군다나, 보통 암호화 키들은 일반적으로 정적인 분배 수단에만 제공하는 시스템 아래 관리된다. 키들은 많은 이유들과 많은 메시지 타입에 대하여 간단한 시간 주기 동안에 재이용 된다. 일반적인 개인용 시스템들은 주기적으로 안전하게 되며 처리되도록 안전하게 안된다. 개인용 키들에 있어서 이러한 결과는 설정된 시간 주기 동안에 통신 노드를 통과한 각 메시지에 대해 동일하게 남는다. 때때로, 키들은 모든 메시지가 저장되거나 이동되는 시간이 같은 키를 이용하는 동안에 키180일에서 수년에 이르기까지 이용되는 것이 예측된다. 만일 누군가 바른 키(들)를 얻으면, 이런 주기 동안에 기회의 창들은 보호되었다 교통을 활용하기 위하여 존재한다. 키들의 개념에 가까이 결합된 것은 암호, 암호구 및 레이블들의 개념이다. 많은 암호 시스템은 키에 대해 불합리한 번호를 이용하며, 다른 시스템들은 부호화 되거나, 조작되며 또는 키로 번역된 암호나 암호구를 입력으로 이용한다. 암호와 암호구는 보통 단어들이나 합리적 의미를 갖는 많은 단어들의 형태이므로 기억하기 쉽다. 게다가, 그들은 문자들의 긴 끈과 같이 될 수 있기 때문에, 함께 일하기 위한 많은 문자가 있기 때문에 암호화 장점을 갖는다. 예로서, 암호구가 The rain in Spain은 THERAININSPAIN으로 연결시켜 간단하게 할 수 있다. 반면, 암호는 단지 단어 Spain 내지 rain 으로 될 수 있다. 앞에서 지시했듯이 암호나 의미를 갖는 암호구 때문에 적어도 여기서는 합리적인으로 있는 것으로서 요구되거나 정의된다. 반면, 은행 계좌번호들과 번호의 그룹과 불특정하게 발생된 문자들 (예로서, OX342PN17)은 그들이 내부적인 의미를 갖고 있지 않기 때문에 적어도 여기서는 비합리적인으로 있는 것으로서 요구되거나 정의된다.
종래의 기술은 하나 내지 그 이상의 상술한 문제점들을 다루기 위해 시도하는 암호화 데이터 관리 시스템으로 가득 찾다. 그러나 일반적으로 이러한 레퍼런스중 아무것도 많은 메시지와, 많은 송수신자들과, 메시지가 보내지는 많은 장소, 그리고 효율성, 및 추적 시스템을 쉽게 이용하기 위한 현대 통신의 요구 사항을 만족시키지 못한다. 더군다나, 이러한 레퍼런스들은 또한 일반적으로 효과에 있어서 이용자가 데이터에 액세스하는 조정의 문제를 아직 비밀 방법으로는 다루지 않았다. 이러한 종래 기술 레퍼런스들의 예는 이하에 언급되어지고 여기서 레퍼런스들에 의해 통합된다. 이러한 레퍼런스들은 또한 본 발명에 관계되는 배경 정보를 보인다.
폰드(Pond)의 미국 특허 제4,864,616호는 복수 개의 키 스트림(stream)들이 이용되는 전자적으로 저장된 데이터를 암호적으로 레이블링하는 방법을 나타낸다. 암호화 및 해독화 방법은 배타적 논리합 수학적 방법론과 같은 재생 가능한 수학적 기능을 이용하며 파일의 표제에 더해지는 암호화 및 해독화 정보를 통합한다. 레이블은 또한 파일에 액세스하는 것을 제어하고 파일의 완전을 입증하기 위해 이용된다. 상기 특허는 또한 파일 그 자체로부터 분리되게 레이블을 암호화 및 해독화 하는 것을 나타낸다.
비슷한 암호화 시스템이 프레스톤(Preston)의 미국 특허 번호 제5,052,040호에 개시되어 있다. 이 특허는 새로운 파일을 생성되고, 파일의 소유주, 파일이 생성되는 기계, 그리고 파일 상에 이용되어지는 임의의 특별한 알고리즘의 배치를 포함하는 복수 개의 레이블을 이용하는 시스템과 방법을 나타낸다. 레이블은 또한 각 이용자에 대하여 파일에 액세스할 수 있는 복수 개의 단일 인식 번호를 포함한다. 명백히, 이러한 시스템은 많은 이용자가 있는 상태에서는 제한들을 갖게 될 것이다. 상기에서 언급한 폰드의 특허에서와 같이, 프레스톤 특허의 방법과 시스템은 레이블 정보를 암호화한다.
키 또는 레이블을 역으로 바꾸는데 유용한 많은 방법이 있다. 보통의 방법은 배타적 논리합 기능을 이용하는 것이며, 종종 간단하게 배타적 논리합 기능으로 불린다. 스미스(Smith, Sr.)의 미국 특허 번호 제5,214,698호는 키를 적절한 제어 벡터와 함께 키 부분이 배타적 논리합된 멀티플(다중) 부분으로 두는 것을 개시한다.
그린버그(Greenberg) 5,220,606 와 매타스 (Metyas) 4,993,069 에 대한 미국 특허들은 암호화된 키와 함께 이용하거나 시스템에 액세스를 제어하기 위한 제어 벡터들 또는 레이블들을 이용하는 암호화 기술이 나타난다.
본 발명자에 대해 최근에 특허 허여된 미국 특허 번호 제5,369,707호는 메시지에 대하여 루트를 정하는 정보를 차례로 포함하는 암호화된 표제를 분리되게 이용하는 다소 다른 합법적인 키 관리를 나타낸다. 표제는 또한 암호화-해독화 과정에서 이용되는 키를 발생시키기 위해 이용된다.
발명의 요약
본 발명은 싸고, 자동화되고, 구조의 직무 수행을 증가시키는 컴퓨터화된 키 관리 시스템을 제공한다. 이는 개인적인 통신 요소들에 분산화되며, 그래도 내부 인트라 구조의 정보 시스템을 통과하는 민감한 데이터를 완전하게 관리 및 최소화시킨다. 유용성의 최대량과 안전성의 최대량으로 낮은 비용의 합리적인 해결책이 제공된다.
본 발명의 주된 목적은 정보의 제어된 구획화 및 독점화를 통해 근거리 통신망 및 모뎀 유지그룹의 비밀을 제공하기 위한 것이다. 주목적은 구조 조직 정보의 감도를 강제적인 정보 설명서와 정보 흐름 제어를 통하여 최소화하기 위한 것이다. 개인 통신에 대한 설정을 지정하는 단일 고객 레이블에 액세스가 부여된 이용자는 수천 개의 레이블들의 사서(dictionary)가 주어진 관리자와 개인적으로 통신할 수 있다. 단일 레이블은 개인과, 전체 조직 내지 이에 따른 임의의 특별한 작은 집단에 비밀 통신을 제공되기 위해 이용된다.
본 발명은 주로 임의의 특별한 암호화한 알고리즘에 완전히 독립적인 레이블 관리 시스템에 관한 것이며, 그러나 그것들과 함께 이용되어질 수 있다. 본 발명의 실시예는 데이터 암호화 표준(Data Encryption Standard : DES)을 이용하며, 그러나 많은 특별한 비밀 알고리즘이 또한 명백하게 이용되어질 수 있다.
본 발명의 중요한 전체의 목적은 평문 파일을 뒤섞거나 암호화하기 위하여 DES 와 같은 암호화 알고리즘에 의해 이용되어지는 단일 처리되는 키의 생성에 의해 암호화된 메시지의 민감도를 최소화할 수 있는 암호화 레이블 키 생성 시스템을 제공하기 위한 것이다. 본 발명의 이용에 의해 처리시키는 키를 이용하는 송수신자 모두는 그 키가 보내질 메시지에 유일할 뿐만 아니라 만일 확실한 조건이 맞지 않으면 그 메시지조차 전송될 수 없었던 것을 안다. 바람직하게 본 발명의 동작 실시예는 마이크로소프트사의 윈도우 동작환경과 호한 가능하다. 단일 정교한 네트워크의 제어와 함께 제공되는 재키(rekey) 능력은 자동화된다.
본 발명은 알려진 키 관리 시스템의 모든 다른 것보다 특별한 장점을 갖는 완전하고 컴퓨터화된 액세스에 관한 것이다. 본 발명의 시스템은 최대의 모안을 제공하기 위한 유일한 액세스 제어 기술과 데이터 조작 기술을 이용하며, 그러나 보통 사람들에게도 그것을 사용할 수 있게하는 허용하는 단순하게 디자인된 용도를 갖는다. 복수 개의 변수 길이의 암호구는 컴퓨터 프로그램에 내장되어지거나 외부 요인으로부터 얻어진 다른 변수들을 변조하기 위해 이용된다. 이러한 방법에 있어서, 각 암호구는 통신 환경의 일면을 제어하기 위해 이용되어질 수 있다. 예로서, 본 발명에서는 일곱 면들 즉, 어떻게, 왜, 어디서, 누구에게, 누구로부터, 무엇을 그리고 언제가 제어된다. 응용 환경의 언어에 있어서, 그것들을 통신이 발생하거나 발생될 네트워크, 통신의 목적, 통신이 발생된 장소, 통신이 존재하거나 보내진 사람, 사람들, 그룹 내지 조직들, 통신의 발생자, 메시지의 파일 이름을 포함하는 통신의 분류, 그리고 메시지의 날짜 확인을 포함하는 통신환경 등의 식별자들이다.
상기의 목적들을 달성하기 위하여, 본 발명은 하나 내지 그 이상의 메시지에 덧붙여지는 레이블들을 이용하는 것이다. 바람직한 실시예에서는, 레이블들은 분리적으로 암호화된 메시지에 암호화되고, 연결 및 덧붙여진다. 이러한 방법에 있어서, 레이블들은 벗겨질 수 있고 분리적으로 해독된다.
통신의 송신 및 수신하는 것에 액세스하는 것은 키를 발생하기 위해 이용되는 단일의 초기화 벡터를 저장하기 위하여 이용되는 휴대용 키 디스크가 있는 단일 액세스 제어 모듈에 의해 제공된다.
본 발명의 이러한 목적과 다른 목적들, 장점, 및 특징은 첨부한 본 발명의 바람직한 실시예의 상세한 설명으로부터 명백하게 설명될 것이다.
본 발명은 일반적으로 암호 제어 시스템에 관한 것이다. 많은 암호화 시스템은 공지된 비밀키(key)나 벡터(vector)로 초기화된 공지의 수학적 암호화 알고리즘을 이용한다. 더욱 상세하게 본 발명은 암호에 의해 보호된 개인 정보에 액세스시키는 수단의 하나인 암호화된 키를 관리하는 시스템에 관한 것이다. 키 또는 벡터는 일반적으로 기억하기 어려운 기다란 문자 숫자이므로, 많은 암호 시스템은 키 발생 시스템을 초기화시키기 위하여 각각 암호나 암호구로 불리는 기억할 만한 단어나 구절을 이용한다. 본 발명은 또한 암호구(passphrase)의 이용에 의해 보호된 데이터에 액세스(access)를 허용 또는 거부하는 컴퓨터 프로그램 및 프로그램된 컴퓨터 시스템에 관한 것이다. 복잡한 암호 시스템은 보통 단어나 암호화된 메시지에 관계된 정보인 레이블을 이용하며, 암호화되며 제거할 수 있게 메시지에 부가된다. 본 발명은 또한 헤더 (표제:header) 또는 이에 의한 트레일러(trailer)로서 메시지에 부가하기 위한 암호화된 레이블을 발생시키는 컴퓨터 프로그램 및 컴퓨터 프로그램된 컴퓨터 시스템에 관한 것이다. 이에 더하여 본 발명은 처리과정을 반전시키고 레이블 정보를 포함하는 메시지를 복호시킬 수 있는 컴퓨터 프로그램 및 컴퓨터 프로그램된 컴퓨터 시스템에 관한 것이다.
도1은 복수 개의 상호 접속 가능한 컴퓨터 시스템의 블록 구성도.
도2는 매우 일반적인 해독 과정의 제어 흐름도.
도3a 및 도3b는 본 발명에 결합된 메시지의 트레일러(trailer)의 구조와 하부구조를 보인 도면.
도4는 일반적인 암호화 과정의 제어 흐름도.
도5는 키 디스크를 발생시키기 위해 이용되는 일반적인 서브루틴의 제어 흐름도.
도6은 초기화 벡터를 암호화하거나 불특정 번호를 발생시키기 위해 이용되는 서브루틴의 블록 구성도.
도7a 내지 7d는 컴퓨터 프로그램 모듈의 서브루틴의 일부 사이에서 상호관계를 도시하는 일반적인 블록 구성도.
도8은 액세스 제어 모듈 내지 서브루틴의 상세한 제어 흐름도.
도9는 이용자가 레이블들을 선택을 허용하는 모듈 내지 서브루틴의 상세한 제어 흐름도.
도10은 암호화된 파일 키와 메시지 트레일러를 생성하기 위해 이용되는 과정의 개요의 제어 흐름도.
도11은 해독화된 파일 키를 생성하기 위해 이용되는 과정의 개요의 제어 흐름도.
도12는 레이블 암호 모듈의 상세한 제어 흐름도.
도13은 레이블 룩업(lookup) 과정을 상세히 하는 구성도.
도14는 메시지의 트레일러를 해독하는 모듈의 상세한 제어 흐름도.
도15는 레이블 선택과 도9의 생성 모듈에 의해 만들어진 레이블들을 이용하며 레이블 트레일키들을 차례로 만드는 모듈의 일반적인 제어 흐름도.
도16은 도15에서 이용된 서브루틴의 제어 흐름도.
도17은 트레일키를 발생시키기 위해 도15에서 이용된 서브루틴의 제어 흐름도.
도18은 문자 숫자 식의 문자열에 있어서 숫자 번호를 재생시키는 방법에서 디지트들의 수를 하나의 정수로 감소시키기 위해 도16에서 이용되는 서브루틴의 제어 흐름도.
도19는 도17에 이용되며 두개의 서로 같거나 다른 길이의 연결을 재생 가능토록 함께 섞기 위해 이용되는 서브루틴의 제어 흐름도.
도20은 암호화 알고리즘에서 벡터로서 이용된 단일 파일 키를 만들기 위해 도16에서 만들어진 트레일키를 재생 가능하게 결합시키기 위해 이용되는 서브루틴의 제어 흐름도.
도21은 메시지의 수용을 자동적으로 재시도 하기 위해 이용되는 서브루틴의 제어 흐름도.
도22는 선택된 레이블의 중요성과 레이블들의 선택된 조합이 받아들여질 것인지를 결정하는데 이용되는 전문 시스템 서브루틴의 제어 흐름도.
본 발명은 컴퓨터 프로그램을 이용하며, 다른 많은 컴퓨터 프로그램과 같이 복잡한 명령, 그들의 일부는 반복해서 다른 시간에 사용되거나 프로그렘 내의 서로 다른 장소에서 불려지는 소위 서브루틴들의 집합을 포함한다. 게다가 많은 복잡한 컴퓨터 프로그램처럼, 본 컴퓨터 프로그램은 서브루틴의 앞단 및/또는 뒷단만 변경되어지면서 다른 환경에서 이용되어질 수 있는 명령의 핵심을 가지는 많은 수의 독립된 모듈 또는 서브루틴을 갖는다. 그러나, 본 설명은 특별한 적용에 대해 진행된바 와 같이 비쥬얼 베이직(Visual Basic)에서 쓰여진 본 발명의 동작 실시예이다. 프로그램에 능숙한 사람이 알 수 있는 바와 같이, 그것에 쓰여진 적용 프로그램으로부터 불려지는 비쥬얼 베이직에는 많은 특징이 있다. 또한, 종래의 기술 분야에 능숙한 사람이 알 수 있는 바와 같이, 본 발명의 컴퓨터 프로그램은 C 및 C++ 언어와 같이 다른 컴퓨터 언어에 쓰여질 수 있다. 이러한 특징은 여기에 기술되지 않았으며, 여기서는 동일 분야에 능숙한 일반인이 알고 있는 바와 같은 레퍼런스에 의해 통합되었다.
본 발명의 다른 변형은 가능하며 일부는 설계되었으며, 이하에서 도시된 본 발명의 실시예는 쓰여진 것에 대한 암호 때문에 최상의 실시예가 됨을 믿는다.
I. 개 요
몇몇 도면을 통하여 번호 같은 것이 요소 같은 것을 나타내는 도면들을 참조하면, 상호 접속 가능한 컴퓨터 통신 조직 (100)이 도1에 도시되었다. 컴퓨터 통신 조직 (100)은 전화 광역 통신망(WAN)(108)에 의해 상호 접속된 복수 개의 근거리 통신망(LAN)(106)으로 구성된다. 컴퓨터 통신 조직 (100)에 대한 다른 연결은 인공위성 연결 (보이지 않음)과 지표기반의 마이크로파 통신망 (보이지 않음)을 포함할 수 있다. 예의 LAN(106)은 이따금 개인용 컴퓨터 내지 PC로 불리는 복수 개의 마이크로 컴퓨터(110)와 IBM AS/400 미니 컴퓨터(112)와 메인프레임 컴퓨터(114)로 구성된다. 각 근거리 통신망(106)은 서버(116)에 의해 제어된다. 또한, LAN(106)에 접속 가능하게 하는 것은 랩탑(laptop) 컴퓨터가 삽입되어 질 수 있는 연결 스테이션(120)과 미니 컴퓨터(112)를 통하여 연결되는 것을 보인 영국의 프시온(Psion)사에 의해 만들어진 타입과 같은 팜탑(palmtop) 내지 손바닥 크기의 컴퓨터(126)이다. 일반적으로 마이크로 컴퓨터(110)는 마이크로 프로세서(130), 램(RAM)(132), 하드 디스크 드라이브(134), 그리고 하나 내지 그이상의 플로피 디스크 드라이브(136)로 구성된다. 게다가, 컴퓨터(110)는 마이크로 프로세서(130)와 비디오 모니터(140) 사이에 연결된 비디오 인터페이스(138)를 포함한다. 외부 통신을 위하여, 마이크로 프로세서(130)는 또한 공통 스위치(144)를 통해 광역 통신망(118)에 차례로 연결되는 모뎀(142)에 연결된다.
컴퓨터 통신 조직 (100)에서의 통신 요소는 파일 내지 데이터가 하나에서부터 다른 것으로 통과할 수 있게 하거나 하나가 다른 것을 제어할 수 있도록 하기 위하여 제거할 수 있거나 영구적으로 서로 다른 통신 링크와 연결될 수 있는 다수의 장치들을 포함한다. 통신 링크는 직접선 내지 섬유 접속(150)과, 전자기파 접속(152) (예로서, 고주파 방사, 적외선의 방사, 빛 방사), 그리고 전화선 접속(154)을 포함할 수 있다. 도1에서 도시된 통신 요소들은 마이크로 컴퓨터(110), 미니 컴퓨터(112), 메인프라임 컴퓨터(114), 랩탑 컴퓨터(122) 그리고 손바닥만한 크기의 컴퓨터(126)이다. 각 통신 요소와 결합되는 것은 플로피 디스크 드라이브(136)와 같은 메모리 장치와 결합된 것에 의해 읽혀질 수 있는 플로피 디스크(FD) (16)0 내지 마그네틱 카드(162)와 같은 제거 및 휴대가 가능한 메모리 저장 매체이다. 컴퓨터 통신 조직 (100)에서 플로피 디스크(160)는 손바닥 크기 만한 컴퓨터(126)를 제외하고 모든 통신하는 요소에서 이용 가능하다. 그 작은 크기 때문에, 손바닥 크기 만한 컴퓨터(126)는 플로피 디스크를 이용하지 않으며, 대신에 거기에 제거되게 삽입될 수 있는 자기 카드(162)와 같은 다른 매체를 이용해야 한다. 이 휴대용 저장 매체는 여기서는 일반적으로 키 디스크라 불리며 지금 파일 이름 keyfile.kbt 및 chkfile.kbt을 갖는 두개의 파일을 포함한다. 각 파일은 80 바이트 내지 문자 길이인 암호화된 불특정하게된 문자열이며 도5에서 도시되고 이하에서 설명될 암호구 키디스크 생성 서브루틴(500)에서 생성된다.
통신 요소의 각 메모리 저장 매체는 본 발명의 컴퓨터 프로그램에 의해 이용되는 일정한 중대 파일과 데이터를 포함한다. 이런 것들은 선택된 키, 암호화 알고리즘, 하나 내지 그 이상의 스핀-업(spin up) 번호들과, 이하에서 더욱 상세하게 설명될 데이터와 정보를 포함한다. 각 메모리 저장 매체는 필요한 키와 암호구 뿐만 아니라 본 발명의 동작을 관리 및 지시하기 위해 제어 서브루틴에서 이용되는 제어 번호를 얻기 위하여 통신 요소가 결합되는 것을 허용한다. 도1에 도시된 통신 요소, 메모리 저장 요소, 그리고 통신 링크들은 단지 실예이다. 지금 존재하는 대용물 내지 기능적으로 동작적으로 동일한 앞으로 발전될 대용물은 또한 정의에 포함된다.
본 발명은 명령들의 계열로 구성되는 복잡한 시스템의 컴퓨터 프로그램(170)을 포함한다. 시스템 프로그램(170)은 보통 개인의 마이크로 컴퓨터(110)의 하드 디스크 드라이브(134)내지 네트워크 서버(116)에 저장되며 도1에서 도형적으로 나타내진다. 명령들은 많은 독립모듈과, 독립 루틴들에 정렬되고 서브루틴으로 불려질 뿐만 아니라 명령들의 세트가 부여된다. 도2 내지 도21은 명령들의 계통의 제어흐름도 내지 명령 세트에 의해 이용되어지는 데이터의 도면을 포함한다. 각 명령들의 세트는 다른 시간과 다른 조합에서 결합된 컴퓨터에 의해 이용된다는 것이 이해되어야한다. 이러한 이유에 대해, 본 발명은 암호화 기능 내지 해독화 기능과 같이 다른 기능들이 동작되거나 실행되므로 그것을 설명하는 것에 의해 최상으로 설명되어질 것으로 믿어진다. 본 발명의 시스템 컴퓨터 프로그램의 해독기능의 전체의 블록 구성도인 도2는 많은 모듈 내지 서브루틴으로 구성된것 같이 도시된다.
이러한 서브루틴은 만일 레이블과 키가 모두 맞으면 암호화된 입력 파일을 취하고 평문을 만드는 것과 함께 기능을 수행한다. 암호화된 메시지는 모뎀(142)상 내지 근거리 통신망(106)으로 부터 컴퓨터에 의해 수신되어 질 수 있으며, 하드 디스크(134), 플로피 디스크(160) 내지 메모리 카드(162)에 저장되어질 수 있다.
이하에서 도8에 대해 설명된 액세스 제어 모듈은 시스템 컴퓨터 프로그램(170)에 액세스를 제어하기 위해 이용되며 시스템 컴퓨터 프로그램(170)이 요구되는 때 이용자에 의해 접하는 첫번째 컴퓨터 프로그램 요소이다. 성공적으로 액세스 제어 모듈(210)을 실행하는 것은 감마 키 내지 벡터라 불리는 80 바이트 내지 문자열을 만들고 211을 나타낸다. 이하에서 보여진 바와 같이, 감마 키(211)는 프로그램의 나머지 전체를 통해 이용된다. 입력 상태(212)는 그 다음에 사용자에게 암호구를 입력할 것을 요구하고 두번째 입력 상태(214)는 사용자에게 해독될 파일을 고르고 해독된 파일에 대해 목적지를 입력하도록 요구한다. 그 다음에 서브루틴(216)은 해독되어질 파일(218)을 취하고 컴퓨터 램 메모리(132)에 입력한다.
파일(218)은 미리 정해진 포맷과 프로토콜로 있어야하며 다음의 부분 즉, 헤더(220), 암호화된 파일부(222), 그리고 복수개의 암호화된 레이블들을 포함하는 트레일러(224)로 구성된다. 트레일러(224)는 도3a 및 3b에서 상세히 도시되어진다.
파일에 대한 특별한 정보를 더하는 기회를 파일(218)의 발생자에게 제공하는 것은 트레일러(224)에서 저장된 정보이다. 본 발명의 실시예에서는 , 트레일러(224)는 네트워크 레이블을 포함하는 네트워크부(330), 목적부를 포함하는 목적 레이블(332)와, 장소 레이블을 포함하는 장소부(334), 수신 레이블을 포함하는 수신부(336)와, 발신 레이블을 포함하는 발신레이블(338), 분류 레이블을 포함하는 분류레이블(340), 환경 레이블을 포함하는 환경 레이블(342) 과같은 일곱 부분을 가지며 각 부분에서의 정보는 레이블로 불리운다. 각 암호화되지 않은 트레일러부는 20개 문자의 미리 결정된 길이와 각각에서 20개 문자까지 증가할 수 있는 레이블을 갖는다. 그러나, 만일 레이블이 20개 문자를 포함하고 있지 않으면, 이하에서 설명한 바와 같이 컴퓨터 프로그램은 도3a에 보인 바와 같이 본 발명에서는 같은 문자이고 글자 X 인 불특정 문자와 함께 레이블을 채운다. 암호화 과정은 각 레이블을 각 암호화한 파일에 대해 실질적으로 암호화된 레이블로서 실행되는 560 문자들 내지 바이트의 전체를 만드는 80개 문자까지 증가시킨다. 종래의 컴퓨터 소프트웨어에서 각 문자의 표준 비트 길이는 8 이기 때문에 각 트레일러는 전체 4480 비트를 갖는다.
트레일러(224)에 대해 프로토콜의 본 실시예에서는 일정한 트레일러부의 일정부분은 정보의 특별한 타입을 나타내기 위해 예약된 일정한 문자위치를 갖는다. 도3b에 보여진 바와 같이, 예로서 분류부(340)는 4부분 즉, 11개 위치 길이를 갖는 평문 파일이름부(352)와, 도3b에서는 X자로 나타내진 임의의 문자로 컴퓨터 프로그램에 의해 채워지는 하나의 위치길이를 갖는 예약부(354)와, 본 발명의 예에서 비밀 분류와 일반적 사용에 대해 SG로 표시되는 두개의 위치길이를 갖는 분류 코드부(356)와, 예로서, 101595 (1995년 10월 15일)와 같이 Orgnanizational Drop Dead 데이터 코드 날짜를 포함할 수 있는 여섯 개의 위치를 갖는 데이터 코드부(358)로 나누어져있다.
트레일러부내에서 하부분할의 다른 예와 같이, 즉, 본 예시에서는 1994년 10월 10일인 암호 날짜부(370)와, 본 예시에서는 오전 9시 15초인 암호 시간부(372)와, 본 예시예서는 DES 알고리즘을 나타내는 D 인 암호는 알고리즘 코드부(374)와, 본 예시에서는 89A3114 인 단일 디지털 파일 서명부(376)로 나뉘어진 4개 부분이 도3b에서의 환경부(342)에 대해 만들어진다.
도2로 돌아가면, 서브루틴(216)은 또한 헤더(220)를 읽고 확인한다. 헤더(220)는 파일문 정보 및 기록자를 포함할 수 있는 고정된 길이의 메시지 헤더이다. 만일 이용되면, 기록자는 복수 개의 파일이 연결되어질 수 있도록 파일의 시작을 지정하고, 이전 파일의 끝은 항상 결정될 수 있다.
헤더와 트레일러를 읽은 다음에, 프로그램은 파일의 끝으로 가고 다음에 마지막 560 바이트를 선택하는 것에 의해 트레일러(224)가 잘려지거나 발생하는 서브루틴(230)으로 진행한다. 헤더는 그 다음에 컴퓨터 램 메모리(132)에서 분리된 저장 위치에 전송된다. 다음 명령 세트, 서브루틴(232)은 그 다음에 트레일러 레이블들을 해독하고 서브루틴 (234)에 정보를 제공한다.
그 다음에 시스템 프로그램(170)은 파일(218)을 적절히 해독하기 위하여 암호화 알고리즘에 입력으로서 필요한 키 결합기를 만드는 서브루틴(234)으로 들어가고, 생성된 파일 키는 수행 루틴(236)으로 보내지고 두번째 발생 서브루틴(238)으로 모든 파일(234)이 보내진다. 서브루틴(238)은 헤더(220)의 고정된 길이, 고정 길이의 트레일러(224)의 위치, 암호화된 파일(222)을 발생시키거나 제거하기 위한 마스크의 정보를 이용한다. 이러한 방법에 있어서, 암호화된 파일(222)은 임의의 길이를 갖으며 결국 파일(218)은 임의의 길이를 가질 수 있다. 요구되는 모든 것은 파일(218)의 처음이 결정되어질 수 있도록 문자들의 단일 문자열을 포함하는 헤더(220)이다.
서브루틴(236)은 어떤 암호화 알고리즘이 암호화 파일(218)에 사용되었는지를 결정하기 위한 헤더(220)의 환경부(342)의 암호화 알고리즘 코드부(374)에서 정보를 사용하며, 저장 디스크에서 그것의 저장 위치부(240)로 부터 알고리즘을 복구하며 저장 디스크는 하드 디스크(134) 내지 적절하게 플로피 디스크(160)로 될 수 있다. 이런 실시예에서는 종래의 DES 알고리즘이 이용되었으며, 어떤 암호화 알고리즘도 사용되어질 수 있다. 서브루틴(242)이 암호화 알고리즘을 수행한 후에 해독 파일(236)은 생성되고 하드 디스크(134) 내지 단지 일시적으로 컴퓨터 램 메모리(132)에서와 같이 임의의 저장 매체 상에서 저장위치(244)에 저장된다.
암호화 과정은 해독 과정과 본질적으로 반대이며, 도4에서 그것을 이루기 위해 사용된 서브루틴이 도시된다. 액세스 제어 모듈(210)은 첫번째 입력 상태 세트(212)에 의해 요구되는 사용자 암호구와 함께 시스템 컴퓨터 프로그램(170)의 나머지에 액세스하는 것을 제어하기 위해 이용된다. 한번 시스템 컴퓨터 프로그램(170)이 개시되어졌으면, 사용되어질 레이블의 원하는 하나(도3a 레퍼런스)와 특별한 레이블에서 이용되어진 레이블 정보를 선택하는데 사용자를 돕기 위해 명령 세트(420)를 제공한다. 예시적인 레이블들이 도3a에 나타내어졌으며 레이블들을 선택하기 위한 서브루틴은 도9를 참조하여 이하에서 설명되었다.
2개의 추가 명령 세트(422,424)는 암호화되어질 입력 파일의 선택과, 출력 파일 이름의 이름과, 암호화에 대해 이용되어지기 위한 알고리즘의 사용자에의한 선택을 요구한다. 이 정보는 분류부(340)와 트레일러(224)의 환경부(342)의 부분을 만들기 위해 이용된다. 그 다음에 서브루틴(426)은 암호화되지 않은 헤더(220)를 만들기 위하여 명령 세트들(212, 420, 422, 424)로 부터 열려진 입력 정보를 이용한다. 같은 정보의 어떤 것은 이하에서 도7d를 참조하여 설명된 필요한 파일 키를 발생시키기 위하여 서브루틴(428)에 의해 이용된다.
그러면 서브루틴(430)은 암호화된 레이블(224)을 만들기 위하여 레이블을 암호화한다. 레이블(224)은 이용자에 의해 입력되고 암호화된 레이블 정보의 모든 것을 결합하는 서브루틴(432)에 의해 수신된다. 서브루틴(428)에 의해 발생된 파일 키는 암호화된 파일(222)을 만들기 위한 종래의 방법에서 선택된 파일(422)을 암호화하기 위해 서브루틴(434)에 의해 이용된다. 헤더(220) 및 트레일러(224)와 연결된 때 비밀 파일(218)은 만들어진다. 파일(218)은 그러면 비밀 파일로서 하드 디스크(440)와 같은 저장 매체에 저장된다. 선택적 내지 추가적으로, 파일(218)은 도1을 참조하여 언급한 것과 같이, 다른 컴퓨터에 전송되어질 수 있다.
II. 키 디스크
본 발명과 함께 사용될 수 있는 휴대용 저장 매체의 예시는 플로피 디스크(160)를 포함하는것 같이 설명되어졌다. 본 발명이 설명되는 목적을 위하여 이 휴대용 저장 매체는 플로피 디스크 내지 키 디스크(160)로 언급될 것이다. 키 디스크(160)는 해독화 스테이션이 이것이 없이는 암호화된 메시지를 해독할 수 없는 절대적으로 필요한 정보를 포함한다. 시스템 컴퓨터 프로그램(170)은 키 디스크(160)에서 정보를 만들고 저장하는 도5에 도시된 암호구 키디스크(Passphrase Keydisk) 생성 서브루틴(500)을 포함한다.
입력 상태(210)에서 사용자에 의해 들어간 사용자의 암호구는 종래의 공지 기술을 사용한 두 번호 아스키 값의 문자열로 암호구의 개별 문자 숫자식의 요소를 변환하는 명령세트에 보내진다. 변환된 암호구는 그 다음에 들어간 암호구에 덧붙이기 위해 덧대지고 이에 따라 베타 1(Beta l)로 불리는 키를 만들기 위해 벡터(526)를 이용하는 진행 박스(524)에서 80개 아스키 문자까지 길어진다. 베타 1은 그러면 키업1(keyup1)로 불리는 발생된 문자열과 함께 베타 1에서 논리적 배타합 동작을 수행하는 진행 박스(528)에서 명령 세트에 의해 수신된다.
잘 알려진 바와 같이, 배타적 논리합 (종종 XOR로 불린다)과정은 섞여진 출력을 역으로 생성하기 위해 암호화 컴퓨터 분야에서 널리 이용된다. 배타적 논리합 과정은 하나의 입력 단어의 모든 비트와 상대적으로 위치한 두번째 입력 단어의 비트와 비교하며 입력 비트들의 하나가 1이고 다른 입력 비트가 0인 경우에만 1의 출력을 만든다. 그렇지않은 경우에는, 출력은 0이다.
키업1 문자열과 XOR 서브루틴(528)에 대한 다른 입력은 도6을 참조하여 이하에서 상세히 설명되고 논의될 스핀업 불특정화 서브루틴(530)으로 부터의 출력이다. 그러나 여기에서는 스핀업 불특정화 서브루틴(530)이 스핀업 번호(534)에 의해 결정되는 서브루틴(530)에서 여러번의 사이클을 행한 내부 초기화 벡터(532)로 부터 문자 숫자 식의 열로 불특정화된 새로운 80개 문자가 생성되는 것을 기술하는 것으로 충분하다. XOR 서브루틴(528)으로 부터 출력은 데이터 박스(535)에 위치하고 감마1으로 표시된 벡터와 함께 논리적 배타합을 출력하는 두번째 XOR 서브루틴(536)에 보내어진다. 본 실시예에서는 감마1은 시스템 컴퓨터 프로그램(170)에서 지정되어지는 벡터이다. 그러나 감마1이 LAN(116)과 같이 통신망에서 단일하게 되어질 수 있으며, 결국 예로서 특별한 LAN에 이 키를 이용하는 암호화된 파일에 액세스하는 것을 제한한다. XOR 서브루틴(536)으로 부터의 출력은 액세스 제어 서브루틴(210)에 의해 발생되는 감마 벡터(211)와 함께 논리적 배타합을 출력하는 세 번째 XOR 서브루틴(538)에 보내어진다. 데이터 출력 박스(542)에 도시된 바와 같이 서브루틴(538)으로부터의 출력은 Key1 으로 표시되며, 키디스크(160)상에 저장된다.
감마 벡터(211)는 또한 세 XOR 서브루틴(550, 552, 554)의 마지막 서브루틴(554)으로 입력된다. 서브루틴(550)에 대한 두 입력의 하나는 두번째 내부 초기화 벡터(556)와 두번째 스핀업 번호(558)를 기초로해 키업2로 표시되는 출력을 생산하는 스핀업 불특정화기 서브루틴(530)으로 부터 나온다. 서브루틴(550)의 다른 입력은 베타2로 표시되고 진행 박스(560)에서 명령 세트에 의해 생산되는 감마 벡터의 반대이다. 서브루틴(550)으로부터의 출력은 XOR 서브루틴(552)에서 벡터 감마2(551)와 배타적 논리 조합되고, 서브루틴(552)의 출력은 감마 벡터(211)와 함께 배타적 논리 조합된다. XOR 서브루틴(554)의 출력은 데이터 박스(560)에서 키2로 표시되고 키디스크(160)에서 저장된다.
스핀업 불특정화기 서브루틴(530)은 도6을 참조하여 이제 설명된다. 본 발명에서는 시스템 컴퓨터 프로그램(170)에 포함되며 문자열로 불려질 수 있는 예시적으로 10 바이트의 저장된 초기화 벡터는 결정되는 명령 세트에 의해 프로그램 박스(610)에 의해 쉬프트 레지스터를 에뮬레이트하는 서브루틴(612)으로 인가된다. 각 초기화 벡터의 문자 및 바이트는 초기에 병렬로 인가되며 자체의 저장 박스(621)부터 저장박스(630)까지에 저장된다. 마지막 저장 박스(629, 630)의 출력은 XOR 서브루틴(640)에서 입력으로서 이용된다. 그러면 각 저장 박스는 도6에 보여진 바와 같이 그것의 문자내용을 한박스 오른쪽으로 쉬프트하면서 그 박스에서 문자를 대체한다. 서브루틴(640)은 저장 박스(629, 630)에 함께 위치한 두 문자의 각각 상응하는 바이트를 배타적 논리합하고 쉬프트 레지스터 서브루틴(612)의 첫번째 지정 박스(621)에 입력으로서 출력을 제공한다. 결정 다이아몬드(642)는 싸이클 번호와 스핀 또는 쉬프트를, 스핀업 번호(644)와 함께 비교하고 번호들이 같을때, 스핀업은 완료되고 출력을 초기화 벡터가 출구 박스(646)에 제공된다. 결과되어지는 스트림은 재생 가능한, 그러나 역으로 할 수 없는, 원래의 문자열의 불특정화한것이다. 단일 초기화 벡터는 시스템 컴퓨터 프로그램(170)에서 내장될 수 있으며 단일 문자 숫자 식의 열로서 발생되어질 수 있거나 키 디스크(160)상에서 시스템에서 저장될 수 있거나 (예로서 수신된 파일과 함께) 특별한 컴퓨터의 외부에서 어떤 다른 제공처로부터 공급된다. 이것은 또한 스핀업 불특정화 서브루틴(530)에 의해 걸리는 시간을 최소화하기 위하여 지금 본 발명에서의 스핀업 번호가 단일 정수인 것을 제외하고는 스핀업 번호의 참값이다. 게다가 이 시스템 컴퓨터 프로그램(170)은 몇몇 위치에서 스핀업 서브루틴을 이용하며 이 서브루틴은 매 시간에 불려지는 것과 같아질 수 있거나 상대적으로 약간의 차이를 갖고 비슷해질 수 있다 (예로서, 스핀업 불특정 문자 서브루틴 (1732)에 대한 논의를 보라). 또한, 초기화 벡터는 모든 사용에 대해 같아질 수 있고, 그것들의 일부만 가지고 사용될 수 있으며, 또는 그 사용에 있어 완전히 다르다. 비슷하게 스핀업 번호는 같아지거나 그것들의 하나 내지 그 이상이 특별한 사용을 위하여 단일해질 수 있다. 비록 도6(예로서 박스 번호)에서 데이터 박스의 문자열 의 길이가 10으로 도시되었을지라도 그 길이는 실재로 1보다 큰 정수일 수 있다. 박스의 큰 번호가 좀더 비밀 시스템을 의미하는 반면, 서브루틴을 실행하는 것은 오래 걸리는 것을 의미한다.
또한, 스핀업 번호가 단일 디지트의 정수로 기술되었으나, 이것은 또한 멀티플 디지트 정수가 될 수 있다. 초기화 벡터 내지 스핀업 번호의 정확한 값을 아는 것은 중요하지 않다. 중요한 것은 만일 같은 스핀업 번호와 초기화 벡터가 이용되면, 같은 결과가 출구 박스(646)에 나타날 것이다라는 것이다.
결정 다이아몬드(642)로 되돌아가서, 만일 스핀의 번호가 스핀업 번호와 같지 않으면 모듈로(modulo) 10 동작이 XOR 서브루틴(640)에 의해 제공되는 숫자의 값에 수행되는 진행 박스(648)로 프로그램이 수행된다. 그 다음에 번호(48)는 결과적인 번호가 항상 2자리 숫자 번호이기 위하여 모듈로에 더해진다. 그러면 모듈로 진행 박스(648)의 출력은 각 숫자가 그것의 동등한 아스키 코드로 변환되는 진행 박스(650)로 들어 가진다.
예로서, 단계(9,10)에서 결과가 각각 28과 4이면 그들의 동등한 이진수는 각각 0001 1100 및 0000 0100 이다. XOR 서브루틴(640)으로부터의 결과는 아래와 같거나 10진수 24이다.
식 1
0001 1100
0000 0100
─────────────
0001 1000
2의 아스키 동일수는 50이고 4의 아스키 동일수는 52이고 단계(621)에서 저장된 수는 바로 이 수이다.
III. 상세한 설명
본 발명의 컴퓨터 프로그램 모듈과 서브루틴의 상세한 설명은 모듈과 서브루틴 사이에서 결합이 도시된 도7a 내지 도7f를 참조하여 설명될 것이다.
도7a는 액세스 제어 모듈(210)에 대한 요소의 결합을 나타내고있다. 시스템 컴퓨터 프로그램(170)이 먼저 시작 되면, 이용자의 권한이 도8에 도시된 액세스 제어 모듈(710)에서 사용자에게 시스템을 사용할 권한이 주어졌는지를 확실하게 하기 위하여 먼저 체크된다. 사용자는 입력 박스(712)에 모듈(710)에서 체크되는 암호구를 입력한다. 체크하는 동안에, 도6을 참조하여 이상에서 설명한 스핀업 불특정화 서브루틴(530)에 의해 불특정 번호가 발생된다. 만일 암호구가 유효하면 사용자에게는 시스템 컴퓨터 프로그램(170)의 나머지에 액세스하는 것이 주어지고 상기에서 설명한 바와 같이 감마 벡터라 불려지는 암호 키가 데이터 출력 박스(211)에서 생산된다.
도7b는 도14에서 도시한 레이블 요소 해독 모듈(720)에 대해 요소의 결합이 나타난다. 들어오는 메시지 내지 파일에서 얻어지는 트레일러는 데이터 입력 박스(722)에 데이터로서 제공된다. 불특정 번호는 스핀업 불특정화 서브루틴(530)에 의해 발생되고, 데이터 출력 박스(726)에서 해독된 레이블을 만들기 위해 모듈(720)의 해독과정에서 이용된다.
도7c는 도12에 도시된 레이블 요소 암호화 모듈 내지 서브루틴(730)에 대한 요소의 결합을 도시한다. 네트워크 내지 어떤 다른 초기화 벡터를 나타내는 일련번호와, 알파(Alpha), 베타(Beta), 그리고 감마 키가 데이터 입력 박스(732)에서 입력 데이터로서 제공된다. 이러한 번호 내지 벡터와 키들은 이하에서 설명된다. 불특정 번호는 스핀업 불특정화기 서브루틴(530)에 의해서 발생되고 선택적 레이블 룩업 프로세서는 서브루틴(734)에 의해 제공된다. 레이블 해독 모듈(730)은 데이터 출력 박스(736)에서 합리적인 고정된 크기의 트레일러 레이블을 생산한다.
도7d는 도20에서 도시한 파일 키 생산 모듈(740)에 대한 요소(도16 내지 도19에서 도시되었음)들의 결합을 나타낸다. 모듈(740)은 데이터 입력 박스(742)에서 입력으로서 트레일러(224)에서 이용되는 레이블을 수신하고 상기의 도4의 설명에서와 같이 파일 암호화 알고리즘을 초기화하는 데이터 출력 박스(744)에서 키 (이따금 벡터로 불려진다)를 만들어낸다. 레이블은 연관된 트레일 키를 생산하는데 이용되는 레이블 키 생성 서브루틴(76)에 제공된다. 멜드(Meld) 키 모듈(746)은 스핀업 불특정화기 서브루틴(530)에 의해 발생된 불특정 번호와 서브루틴(748)에서 몇몇 키로부터 압축된 스핀업 번호를 수신하고 그것을 파일 키 생성 모듈(740)에 공급하는 레이블을 암호화하는 여러 가지 문자열을 결합하기 위해 서브루틴(750)을 이용한다. 서브루틴(746)은 복수개의 트레일 키를 레이블당 하나 만들어내고 그것들을 모듈(740)로 제공한다.
도8을 참조하면, 액세스 제어 모듈 내지 서브루틴(210)이 이제 설명될 것이다. 위에서 언급된 바와 같이, 액세스 제어 모듈은 시스템 컴퓨터 프로그램(170)의 나머지에 액세스를 제어하기 위해 이용되고 시스템 컴퓨터 프로그램(170)이 불려질 때 사용자에 의해 만나게되는 첫 번째 컴퓨터 프로그램 요소이다. 액세스 제어 모듈(210)은 상기의 도5에서 설명된 키 디스크 생성 모듈(500)과 매우 비슷하다. 입력상태(210)는 유효하고 필요한 20 바이트 길이를 가졌는지를 확인하기 위하여 이용자의 암호구를 수신하고 체크한다. 이상에서 설명된 바와 같이, 진행 박스(820)에서 명령은 암호구 문자열을 아스키 값으로 변환한다. 결정 다이아몬드(822)에 의해 대표되는 명령은 아스키 문자열의 길이를 확인하고 만일 문자열이 80개 문자 내지 바이트 길이 미만이면 프로그램은 베타1로 불려지는 80 아스키 문자열을 생성하기 위한 덧붙여지는 벡터(826)를 사용하는 진행 박스(824)에 의해 대표되는 명령에 대해 분기명령을 실행한다. 현재의 바람직한 실시예에서는 덧붙여지는 벡터(826)는 시스템 프로그램(160)에 내장되어있으나 앞에서 진술한 바와 같이 필요 없고 시스템 프로그램에 예로서 제공되어질 수 있거나 생성된다. 만일 변환된 암호구 문자열이 80개 문자 길이와 같으면 프로그램은 그것을 베타1로 규정하고 그것을 입력으로서 진행 박스(828,830,832)에 의해 대표되는 3개 연결된 XOR 서브루틴(XOR)의 첫 번째에 제공된다. XOR 서브루틴(828)에 대한 다른 입력은 키업1로 불리는 문자열이다. 키업1은 앞에서 도5를 참조하여 설명한 바와 같이 같은 내부 입력 내지 내부 초기화 벡터(532)와 도5에 도시된 모듈과 함께 키 디스크(542)를 만드는데 사용되는 바와 같은 스핀업 번호(534)를 사용하는 스핀업 불특정화 서브루틴(530)에 의해 생성된다.
XOR 서브루틴(830, 832)에 대한 두 번째 입력은 데이터 박스(535)로부터나온 감마1과 키 디스크(160)로 부터 얻은 데이터 박스(834)에서의 키1이다. 마지막 결과는 알파로 표시되고 비교 결정 다이아몬드(834)의 하나의 입력으로 보내어진다. 시스템에 액세스를 허용하기 위해 이용되는 감마 벡터는 또한 데이터 박스(542)에서 키1을 만들기 위해 사용되는 같은 벡터인 것이 주목된다. 결국 불특정하고 알려지지 않았지만 재생 가능한 번호 키업1은 오직 암호 구와, 같은 시스템 소프트웨어를 갖는 시스템에만 위치한 번호, 감마1과 함께 배타적 논리 합된 결과와, 사용자만이 가지는 번호, 키1이 배타적 논리 합된 결과가 알려진 덧붙여진 사용자와 함께 배타적 논리합 되어지기 위해 발생되어진다.
XOR 서브루틴(832)으로 부터온 출력은 알파1 벡터를 이루는 문자의 열이 그들의 순서가 거꾸로 되고 벡터 베타2를 이루는 과정 박스(836)에서 명령 세트에 입력된다. 벡터 베타2는 과정 박스들(838, 840, 842)에 의해 대표되는 3개의 연결된 XOR 서브루틴의 두번째 세트의 첫 번째에 대한 입력의 하나이다. XOR 서브루틴(838)에대한 다른 입력은 키업 2로 불려지는 문자열이다. 키업 2는 도5를 참조하여 앞에서 설명한 바와 같이 같은 초기 입력 내지 내부 초기화 벡터(556)와 도5에 도시된 모듈과 함께 키 디스크(160)에 대한 두 번째 입력을 만들기 위해 사용되어지는 것과 같은 스핀 번호(558)를 사용하는 스핀업 불특정화기 서브루틴(530)에 의해 만들어진다. XOR 서브루틴(838)의 결과는 두 번째 XOR 서브루틴(840)의 두 입력의 하나이고, 다른 하나의 입력은 도5에서 설명한 감마2와 동일한 감마 2이다. 감마 1과 마찬가지로 감마 2는 시스템 컴퓨터 프로그램(170)에 의해 제공되며 결국 만일 원한다면 같은 통신 링크 상에 이러한 통신요소들에 한해서 같게 되어질 수 있다.
XOR 서브루틴(840)의 결과는 XOR 서브루틴(842)에 대한 두입력의 하나이고, 다른 하나의 입력은 키 디스크(160)에서 얻어져 데이터 박스(560)에 있는 키2이다. XOR 서브루틴(842)으로 부터의 출력은 알파 2로 표시되고 비교 결정 다이아몬드(834)의 다른 입력이 된다. 만일 비교가 긍정적이면 즉, 만일 알파 1과 알파 2가 같으면 진행 박스(844)에서 감마(즉,감마(211))가 다시 레이블이 되며, 감마(211)가 소프트웨어 모듈과 출구 포트(846)에서의 서브루틴의 나머지에 유용하도록 만들어지고, 액세스는 소프트웨어 모듈의 나머지에 인가된다. 만일 출력이 같지 않으면, 그때 증가 카운터(848)는 증가되고 그 결과는 결정 다이아몬드(850)에 보내어진다. 만일 세번의 시도가 이루어지지 않았으면 이용자는 그의 암호구를 열기 위하여 또다른 기회가 주어진다. 만일 이것이 네 번째 시도이면 프로그램은 심사 트레일 생성하기 위하여 시도가 만들어진 기록이 있는 메모리 박스(852)로 분기하고 프로그램은 출구 포트(852)에서 종료한다.
도9를 참조하면, 레이블 선택 서브루틴(420)이 이제 설명될 것이다. 서브루틴(420)을 이용자가 암호화되지 않은 파일이 암호화 및 전송 또는 저장되어져야함을 지시할 때 선택된다. 서브루틴(210)은 액세스가 입력 박스(910)를 통하여 액세스 제어 서브루틴(210) (도8을 보라)에 의해 허여된 다음 들어가게 된다. 입력 박스(910)는 이용자에게 보통은 평문인 입력파일 내지 출력파일을 선택하기 위하여 메뉴를 제공한다. 메뉴는 모니터 박스(914)에 의해 지시되는 바와 같이 디스크 파일으로부터온 입력 파일의 선택의 모니터 출력 내지 모니터 박스(918)에 의해 지시된 바와 같이 디스크 파일로 부터온 출력 암호화된 파일의 선택의 모니터 출력을 지시한다. 이와 동시에 입력 박스(920)에 지시된 바와 같이 사용자는 출력 파일을 암호화하기 위하여 사용되어질 암호화 파일을 선택한다.
이용자가 이 시점에서 자신의 레이블을 생성하기를 희망한다면 레이블과 같은 것을 이용자가 생성 및 저장하는 것을 허용하는 루틴이 비쥬얼 베이직 소프트웨어에서 제공된다. 결국 이용자는 이 시점에서 루틴을 수행할 수 있으며 그 다음에 새로이 생성된 레이블 내지 레이블들을 선택하기 위하여 서브루틴(420)을 이용한다.
적절하게 지정된 파일만이 프로그램에 의해 이용되는 것을 보장하기위한 안전장치로서, 모든 파일 이름은 확장자 kbt와 같이 미리 설정된 확장자를 갖는 것이 요구된다. 선택된 출력 파일의 확장자는 결정 다이아몬드(922)에서 체크되고 선택된 입력 파일은 결정 다이아몬드(924)에서 체크된다. 만일 확장자가 적절하지 못하면 프로그램은 진행박스(926) 내지 진행박스(928)에서 적절한 에러 메시지를 각각 생성하기위해 분기되며, 프로그램은 출력 디렉토리 파일 (918) 내지 입력 디렉토리 파일(912)을 각각 제공하기 위해 복귀된다. 만일 선택된 파일의 파일 확장자가 적절하면, 프로그램은 모니터 박스(930)에서 선택되어지도록 레이블 타입 메뉴와 함께 이용자에게 계속 유지되고 제공된다. 상기에서 언급된 바와 같이 본 발명에서는 비록 더 크거나 작은 수의 타입이 사용될 수 있지만, 선택된 7개의 레이블 타입을 갖는다. 본 발명에서는 레이블 타입은 네트워크 레이블(932), 목적 레이블(933), 장소 레이블(934), 수신 레이블(935), 발신 레이블(936), 분류 레이블(938), 그리고 환경레이블(939)이다.
이용자는 입력 박스(940)에 있는 관심 있는 레이블 그룹을 선택하고, 각 레이블이 제시된 목록 내지 동시에 사용자에 의해 발생되는 때에, 목록으로부터 선택되며, 선택된 레이블은 네트워크 레이블을 위한 적절한 데이터 출력 박스(942)와, 목적 레이블을 위한 적절한 데이터 출력 박스(943)와, 장소 레이블을 위한 적절한 데이터 출력 박스(944)와, 수신 레이블을 위한 적절한 데이터 출력 박스(945)와, 발신 레이블을 위한 적절한 데이터 출력 박스(946)에 저장된다. 그러나, 도3a 내지 3b에 지시된바와 같이 분류 및 환경 레이블은 또한 일정하게 발생된 정보를 동시적으로 포함한다. 결국 분류 레이블이 입력 박스(940)에서 선택되었을 때, 선택된 분류 레이블은 사용되어지는 환경 코드가 룩업되고 더해지는 진행 박스(950, 952)에 전해지고, 사용되어질 분류 코드는 각각 룩업되고 더해진다. 조직의 드롭(drop) 데드(dead) 날짜 (예로서, 파일이 비밀서류취급이 해제되어지거나 파괴되는 날짜) 는 진행 박스(954)에서 변경된 분류 레이블에 더해지고 그 다음에 추가적으로 변형된 분류 파일은 데이터 출력 박스(956)에 저장된다. 결국, 보내질 파일이 (위에서 언급된 바와 같이 종래의 알고리즘과 종래의 과정을 이용하여) 이용자 입력 박스(958)에서 암호화된 후에 프로그램은 결정 다이아몬드(960)에서 마지막 레이블인 환경 레이블을 제외하고 모든 레이블이 선택되어졌는지를 체크한다. 만일 모든 다른 레이블이 선택되어졌으면 그 다음에 프로그램은 시스템 시간/날짜 스탬프가 환경 레이블에 추가되어지는 진행 박스(962)에 분기되고, 환경레이블은 데이터 출력 박스(962)에 저장된다. 이 시점에서, 프로그램은 선택된 레이블의 모든 것을 갖으며, 그것은 레이블 생성 서브루틴(420)을 떠나고 발생 키 서브루틴(428)으로 들어간다.
본 발명의 설명의 이 시점에서 모든 암호화 레이블 키 생성 프로그램의 개요를 설명하기 위해 충분한 정보가 있어야만 한다.
즉, 도4 및 도8과 비교하여 도10을 참조하면, 레이블 키를 암호화하기 위한 제어흐름도가 도시되었다. 이용자는 시스템 컴퓨터 프로그램(170)을 부르고 입력 박스(212)에서 암호구를 입력한다. 이 프로그램은 스핀업 불특정화기 서브루틴(530)을 이용하고 진행 박스(844)에서 유용하게 만들어진 감마 키(211)를 획득하는 액세스 제어 서브루틴(210)에서 들어간 암호구를 검증하기 위해 진행된다. 이용자는 입력 박스(420)에서 유용하게 만들어진 원하는 레이블을 선택하고 데이터 박스(1020)에서 시스템의 나머지에 선택된 레이블을 제공한다. 감마 키(211)와 함께 선택된 레이블은 데이터 박스(1022)에서 입력 데이터를 나타낸다. 데이터 박스(1022)로부터 프로그램은 암호화된 레이블을 만들어내는 첫번째부와 파일을 코드화하기위한 암호화 알고리즘과 함께 사용될 수 있는 키 파일을 만들어내는 두 번째 부로 나뉘어진다. 본 발명의 특징은 데이터 파일의 암호화가 파일 키와 트레일러가 생성되는 때에 행해질 필요가 없다는 것이다.
트레일러를 생성하기 위하여, 만일 비합리적인 레이블이 요구되면 데이터 박스(1022)에서의 데이터는 스핀업 불특정화기 서브루틴(530)과 레이블 룩업 테이블을 이용하는 레이블 암호화 서브루틴(730)에게 제공된다. 스핀업 번호와 스핀업 불특정화기 서브루틴(530)에 대한 초기화 벡터는, 위에서 설명된 바와 같이 시스템의 외부에서부터 얻어질 수 있을지라도, 시스템 소프트웨어(170)로 부터 얻어지고 내장된다. 암호화 서브루틴(730)으로부터의 출력은 파일에 대해 연결되어지는 트레일러로서 첫 번째 파일 저장소(224)와 비밀 심사 트레일으로서 두 번째 파일 저장소(1028)에 제공된다.
데이터 박스(1022)로 부터온 다른 경로는 레이블 키 생성 루틴(1030)과 멜드 키 서브루틴(1032)으로 제공된다. 멜드 키 서브루틴(1032)은 알파 및 베타 키와 생성된 감마 키(211)가 내장된 소프트웨어를 취하고 스핀업 불특정화기 서브루틴(530)과 레이블 그 자체로 부터온 스쿼시(Squish) 서브루틴(1034)에 의해 계산된 스핀 번호를 이용해 그것들을 코드화시킨다. 코드화된 키 문자열은 그 다음에 멜드인(MeldIn) 서브루틴(1036)에 의해 함께 결합되고 서브루틴(1030)에 제공된다. 서브루틴(1030)은 단일 키업 번호와 데이터 박스(1037)에서 제공되는 초기화 벡터를 이용한다. 그 결과는 각 레이블에 대해 각각 단일한 데이터 박스(1038)에서 서브루틴(1030)에 의해 제공되는 복수 개의 재생 가능한 트레일 키이다.
데이터 박스(1038)로 부터온 트레일키는 이하에서 설명된 멜드인 서브루틴(1036)에서 문자열 결합기 과정에 의해 그것들이 모두 결합된 파일 키 서브루틴(1040)에 제공된다. 결합된 결과는 데이터 박스(1042)에서 제공되는 단일 파일 키이다.
암호화 레이블 키 생성 모듈에 대한 다소 반대과정은 도11에 도시된 레이블 키 생성 해독화 모듈이다. 그러나 해독화 모듈은 분리된 상세한 설명을 필요할 정도로 충분한 차별성을 갖는다. 그러나, 어떤 초기 관찰은 동작의 중요성을 이해하기 위해 필요로 한다. 레이블 해독화 과정이 발생되어지기 위하여, 액세스 제어에 대해 같은 정보가 입력되어야만 한다. 이것은 통과-암호구가 통과 암호구에서의 상이점을 보상하며, 마스크가 동일하고, 동일한 키업변수가 발생되기때문에 통과 암호구가 필연적으로 같아야하는것을 의미하지 않는다. 즉, 키업변수는 레이블 해독화 과정이 정확하게 발생하기 위하여 그것이 스핀업 엔진에 들어갔을 때 동일해져야만 한다. 스핀업(n) 또한 반드시 같아야한다. 동일하게 존재하는 이러한 요소들과 베타(n)와 감마(211)가 갖고있는것을 아는 것에 의해 어떤 알파(n)가 반드시 있어야만 하는지 결정할 수 있고, 그러므로 레이블은 해독되어질 수 있다.
또한, 모든 암호화된 레이블이 고정된 길이를 갖으며 연결된 관계에서 암호화된 메시지의 끝단에 위치된다는 것을 깨닫는 것이 중요하다. 트레일러는 메시지의 몸체에서 이용되는 키를 되찾기 위해 이용된다. 본 실시예에서 n이 7과 같은 암호화된 트레일러(n)는 알려진 고정된 길이를 갖는다. 고정된 길이의 암호화된트레일러의 장점은 각 트레일러가 쉽게 확인, 분리, 및 해독되어질 수 있다는것이다. 본 실시예에서는 각 트레일러의 길이는 80 바이트이고, 이리하여 전체 트레일러의 길이는 80 내지 560 바이트의 7 배이다. 그러므로, 본 발명의 암호화 및 해독화가 증가하거나 분리될 수 있기 때문에, 예로서 트레일러 번호 3 (즉, n = 3)인 장소에 대한 암호화된 트레일러는 정확한 베타(n) 키, 정확한 감마 키(211), 정확한 스핀업 번호, 그리고 정확한 키업 변수 내지 초기 벡터와 분리되어질 수 있다. 그러나, 본 발명에서는 키업 변수의 값은 레이블 요소(n)의 각각에 공통이며, 다른 변수일지라도 각 레이블과 함께 사용되어질 수 있다. 트레일러 시스템의 이러한 타입을 사용하는 다른 장점은 해독하는데 빠르고 헤더 시스템 보다 접근하기 쉽다. 또한, 이러한 시스템은 해독된 메시지 없이 정보의 라우팅을 정하기 위해 이용될 수 있으며, 임의의 수의 레이블들이 이송시스템 디자인에 중대하게 영향 없이 트레일러에 이용될 수 있다. 이 후자의 장점은 헤더 시스템이 파일 내지 트레일러의 일부분을 더하거나 삭제하기 위한 암호화된 메시지의 몸체의 전달을 요구하기 때문에 헤더 시스템에는 해당하지 않는다.
그러므로, 도10, 또한 도2와 도8을 참조하여 도11을 설명하면, 컴퓨터 시스템에 대한 액세스는 입력 박스(212)에서 통과 암호구를 입력하는 사용자에 의해 얻어진다. 프로그램은 도10을 참조하여 설명한 바와 같은 동일한 스핀업 불특정화기 서브루틴(530)을 이용하는 액세스 제어 서브루틴(210)에서 입력된 암호구를 검증하기 위해 진행된다. 그 결과는 진행 박스(844)에서 유용하게 만들어진 감마 키(211)의 생성이다.
일단, 프로그램에 대해 접근하는 것이 허용되어지고 적절한 선택이 이루어지면, 프로그램은 도11에서 디스크 상에 있는것으로 지시된 해독되어야할 메시지의 트레일러부(212)를 얻고, 그러나 상기 메시지는 모뎀(142)으로 부터 나오는 입력으로부터 바로 저장되어진 램(132)에서와 같은 다른 제공처로 부터 얻어질 수 있다. 그 다음에 프로그램은 데이터 박스(1110)에서 나타낸 바와 같이 데이터 박스(1112)에서 데이터를 제공하기위해 암호화된 레이블부를 잘라내고 디스크 상에 저장되어진것 같이 지시되는 비밀 심사 트레일(1114)을 제공한다. 그 다음에 암호화된 레이블부의 요구되는 부분은 프로그램에 의해 선택되며 데이터 박스(1112)에 제공된다.
그 다음에 프로그램은 데이터 박스(116)에서 지시된 바와 같이 해독된 레이블 정보 데이터를 만들어내기위하여 감마 키(211)와 암호화된 데이터(1112)를 사용하는 서브루틴인 레이블 요소 해독화 서브루틴(720)에 대해 분기한다. 레이블 요소 해독화 서브루틴(720)은 도14를 참조하여 이하에서 설명되었다. 프로그램의 나머지 부분은 피일키가 데이터 박스(1042)에서 유용하게 만들어지는 결과와 함께 도10의 것과 동일하다.
도10에서 설명된 암호화 레이블 키 생성 루틴에 의해 불려지는 레이블 요소 암호화 서브루틴(730)이 도12를 참조하여 이제 설명될 것이다. 이용자는 도3a에서 도시한 것과 이용자의 스스로의 합법적인 레이블을 입력하거나 도13에서 개괄적으로 도시되고 이하에서 설명된 레이블 룩업 서브루틴(1212)으로 진행되어지기위해 (도12의 오른쪽 윗부분에서 보여진) 입력 박스(1210)에서 선택이 이루어진 것에 의해 서브루틴에 들어간다. 서브루틴(1212)은 이용자에게 미리 저장된 복수개의 레이블로부터온 합리적인 레이블을 선택하는 것과 그 다음에 도1에서 보인 하드 디스크(134)와 같은 하드 디스크에 저장된 비합법적 키 변수(1214)를 결합하는 것을 허용한다. 결합의 대부분의 경우는 룩업 테이블에서 유용하도록 단순하게 일대일 상응한다. 합리적이고 문자적인 경우 및/또는 이용자에 의해 읽혀지고 기억되어질 수 있는 의미있는 문자열 레이블이 선택되어질 수 있다.
그 다음에 프로그램은 진행 박스(1216)에서 선택된 레이블을 선택하고 그것을 프로그램이 선택된 레이블을 20개 문자에 덧붙여지는 과정 박스(1218)에 아스키 숫자문자식의 문자열로서 제공한다. 덧붙이는 것은 도6을 참조하여 설명된 가짜의 불특정 번호, 스핀업 불특정화기 서브루틴(530)에서 스핀업 키(1220)를 발생시키는 것에 의해 종료된다. 이러한 실시예에서는 레이블 요소 암호화 서브루틴(730)에서 사용된 초기화 벡터가 입력 박스(1222)에 의해 제공되고 네트워크의 일련 번호이며, (만일 특별한 컴퓨터에서 가능하다면) 사용되어질 컴퓨터의 불려진 일련번호가 간단하게 프로그램에서 내장된 번호가 될 수 있다.
이상에서 설명되어진 스핀업 번호는 정수이고 서브루틴(530)에서 이용된 스핀 스텝을 통하는 사이클의 번호이며, 또한 입력 박스(1224)에서 제공된 내장된 번호이다. 앞에서 설명한 바와 같이 그 결과의 출력은 스핀업 키가 아스키 번호와 같은 스핀업 키로서 출력 박스(1220)에서 제공된다. 본 실시예에서는 덧붙이는 것은 도3에 도시된 것처럼 단순한 연결이고, 논리합, 논리곱 내지 배타적 논리합과 같은 수리적인 동작에 의해 종료되어질 수 있다.
덧붙여지는 과정 박스(1218)로 부터, 프로그램은 일렬로 연결된 복수개의 배타적 논리합으로 진행된다. 설명된 바와 같이, 레이블의 목적은 합법성 내지 많은 상황들과 조건들의 속박 내에서 파일을 해독하는 감도를 일일이 열거하기 위하여 호스트 시스템의 암호화에 대한 이유를 유지하기 위해서이다. 이 합리성은 복수개의 암호화된 레이블들을 갖는 고정된 크기의 암호화된 트레일러의 형태의 각 암호화된 파일과 조화된다. 단순화를 위하여, 지정자 n는 취급될 수 있는 명시된 레이블을 확인하기 위해 이용된다. 상이한 레이블에 대해 이용되는 내부지정은 입력 합리적인 레이블, (n)번째 레이블, 알파(n) 키 내지 레이블, 베타(n) 키 내지 레이블, 그리고 감마 키 내지 벡터(211)이다. 알파(n) 키, 베타(n) 키 그리고 감마 키(211)는 스핀 엔진 서브루틴에 의해 만들어지는 생산된 벡터와 모두 함께 배타적 논리합된다. 모든 것이 적절하게 배타적 논리합 되면 암호화된 레이블(n)이 생성된다.
배타적 논리합 암호화 단계의 첫단계에서는 진행 박스(1218)로 부터의 덧붙여진 번호가 알파 키로 표시되고 데이터 박스(1228)에서 제공되는 내장된 키의 아스키 표현과 함께 진행 박스(1228)에서 배타적 논리합된다. 그 다음에 배타적 논리합의 출력은 베타 키로 표시되고 데이터 박스(1232)에서 제공되는 두 번째 내장된 키의 아스키 표현과 함께 진행 박스(1230)에서 배타적 논리합기능이 수행된다. 세 번째 배타적 논리합은 진행 박스(1230)의 출력과 도8의 액세스 제어 서브루틴(210)에서 발생되는 감마 키(211)와 함께 진행 박스(1234)에서 발생한다.
그 다음에, 진행 박스(1234)에서 배타적 논리합실행의 결과는 레지스터 내지 특별한 레이블의 암호화의 결과가 저장되는 출력 데이터 박스(1236)에 입력으로서 이용된다. (도3에 도시된 실시예에서는 7인) 각 레이블에 대해 서브루틴은 반복되고, 결과의 모든 것은 암호화되고 고정된 크기의 합리적인 트레일러 레이블을 이루기 위해 함께 연결된다.
도13을 참조하면, 도12의 레이블 요소 암호화 서브루틴(730)에서 이용되는 레이블 룩업 서브루틴(1212)이 이제 설명될 것이다. 본 실시예에서는 레이블 시스템이 각 레이블을 암호화하거나 만들기 위해 변수들 내지 키들이 결합된 세개를 이용하며, 전체 7개의 다른 레이블들이 있다. 그러므로, 상기 레이블과 결합된 21개의 독립 변수가 있다. 앞에서 설명된 바와 같이, 7개 레이블은 개인 파일을 안전하게 하는 합리성을 나타내고 누구에게, 누구로부터, 메시지 내지 파일의 목적, 파일이 전송되어질 네트워크, 파일의 분류, 파일이 갈 장소, 파일이 나타나도록 허용되는 환경을 설명하는 것에 의해 파일의 감도를 지시한다.
서브루틴(1212)이 서브루틴(730)에 의해 불려졌을 때, 프로그램은 결합 인덱스 맵핑(mapping) 서브루틴(1310)을 개시한다. 서브루틴(1310)은 실제의 합리적인 레이블 대신에 코드화되고, 비합리적이고, 결합된 입력 변수를 사용자가 선택하도록 하기 위하여 각각의 유용한 레이블을 대용하는 레미블 키와 관련짓는 소트된 테이블을 병합한다. 서브루틴(1310)은 먼저 레이블 데이터 파일(1312)을 하드 디스크 메모리(134)로부터 얻으며 그것을 컴퓨터의 램 메모리에 저장한다. 레이블 데이터 파일(1312)은 복수개의 미리 설정되고, 합리적인 레이블들(1314, 1316, 1318, 1320)로 구성된다. 그 다음에 서브루틴(1310)은 사용자에게 그 데이터를 모니터(140)로 나타내며 그리고/또는 (도1에 보이지 않은) 연결된 프린터로 그 데이터를 출력한다. 사용자가 레이블 키 데이터 관리 룩업 테이블(1322)을 이용하여 미리 설정된 레이블을 선택할때 결합 인덱스 맵핑 서브루틴(1310)은 키들(1324, 1326, 1328, 1330)의 하나인 것과 같은 결합된 비합리적인 레이블을 제공한다.
레이블 요소 해독화 서브루틴(720)의 프로그램 흐름은 도7b를 참조하여 설명되어졌으며, 그것에 따른 설명은 도14에 도시되었다. 레이블 요소 해독화 서브루틴(720)에대한 입력은 암호화된 레이블 트레일러(1112)이다. 서브루틴(720)은 먼저 진행 박스(1410)에서 바이트의 수를 계산하는 것에 의해 레이블 트레일러의 길이를 결정하고, 그 다음에 진행 박스(1410)에서 레이블(1112)로부터 첫번째 네 요소를 선택한다. 그 다음에 선택된 4가지 요소는 문자열이 홀수인지 짝수인지를 결정하기 위한 결정 다이아몬드(1414)에서 테스트된다. 만일, 문자열이 짝수이면, 그 다음에 서브루틴(720)은 프로그램이 두 번째 및 세 번째 요소를 선택하고 최하위의 문자를 제거하고 그 결과를 데이터 박스(1418)에 전달하는 진행 박스(1416)로 분기된다. 한편, 만일 선택된 요소의 값이 홀수이면, 그 다음에 프로그램은 최하위요소가 제거되고 첫 번째 세 가지 요소들이 데이터 박스(1418)에 전달되는 진행 박스(1420)로 분기된다.
해독 프로그램 흐름에 대한 합리성은 암호화 단계에 대한 반대되는 단계를 실행하는 것이다. 예로서, 레이블 네트워크부(330) BLUENETWORKEASTXXXXX (도3참조)의 가변적인 문자숫자식의 요소를 암호화하는데, 암호화되고 채워진 문자열은 요소 B, L, U에 대해 9338 1201 5176으로 되어질 수 있다. 암호화시키는 패킹 서브루틴은 요소의 암호화 결과가 3 내지 두개의 숫자인지를 결정한다. 만일 3개의 정수이면, 그 다음에 암호는 불특정의 홀수 최하위 숫자로 채워지고, 만일 2개의 정수이면, 암호는 블특정의 짝수 최하위 숫자로 채워지며 불특정의 최상위 숫자로 채워진다. 그리하여 상기 예시에서는 상기에서 설명된 서브루틴이 산출에 대한 채워진 번호를 33 120 17을 산출하기 위해 채워진 번호를 제거할것이다.
홀수 번호 내지 짝수 번호 경우에 있어서는, 이따금 키업 값으로 불려지는 입력 박스(1418)에서의 값은 직렬로 연결된 3개의 배타적 논리합 게이트들(1420, 1422, 1424)에 가변 입력으로 이용된다. 그러므로, 배타적 논리합 게이트의 출력은 키업값(1418)인 첫 번째 입력과 함께 다음의 배타적 논리합 게이트에 대한 두 입력의 하나로 사용되고, 두 입력중 다른 하나는 각각 알파 키(1228), 베타 키(1232) 및 감마 키(211)이다. 마지막 배타적 논리합 게이트의 출력은 해독된 요소 데이터 입력 박스(1426)에 대한 입력이며, 그 출력은 덧붙여지고 해독되는 레이블의 첫 번째 부분으로서 진행 박스(1428)에서 저장된다. 진행 박스(1428)는 필수적으로 진행되는 요소가 이전의 요소와 연결되어지는 소프트웨어 레지스터이다.
진행 박스(1428)로 부터 프로그램은 해독된 요소의 번호의 카운트가 유지되고 진행 박스(1410)에서 결정된 레이블 트레일러의 길이와 비교되는 결정 다이아몬드(1430)로 진행한다. 또한, 결정 다이아몬드(1430)에서 레이블 요소의 모두가 해독되었는지의 판단을 이룬다. 만일 그렇지 않으면, 프로그램은 레이블 트레일러(1112)로 부터 4가지 요소가 진행을 위해 선택되는 진행 박스(1412)로 다시 분기된다. 만일 레이블 요소의 모두가 해독되었다면, 그 다음에 프로그램은 진행 박스(1428)의 연결된 제품으로부터 덧붙이는 것이 제거되는 진행 박스(1432)에 분기된다. 그 결과는 해독된 레이블로서 데이터 박스(1434)로 제공된다. 연결된 제품으로부터 덧붙여진 것을 제거하기 위하여, (도12를 참조하여 설명한) 레이블 요소 암호화 서브루틴(730)에서 실행된 덧붙이는 과정의 반대과정이 수행된다. 스핀업 번호(1224)는 스핀업 불특정화기 서브루틴(530)에서 실행된 사이클 번호를 판단 하기위해 사용되며, 네트워크 일련번호인 동일한 내부 초기화 벡터가 서브루틴(530)의 입력으로서 이용된다.
암호화 알고리즘에서 이용되는 키의 발생을 도15내지 도20을 참조하여 지금 설명될 것이다. 도15는 레이블 키 발생 서브루틴(746)을 나타낸다. 서브루틴(746)은 복수개의 레이블 서브루틴들(1523, 1524, 1525, 1526, 1527, 1528, 1529)의 각각에 대해 입력 키업을 발생시키기 위해 입력 데이터 박스(1520)로 부터의 단일 키업 내지 초기화 벡터와 스핀업 불특정화기 서브루틴(530)에서 입력 데이터 박스(1522)로 부터의 단일 스핀업 번호를 이용한다.
도16에 도시된 각 레이블 서브루틴은 실질적으로 같으므로 일반적으로 설명되어진다. 필수적으로, 레이블 서브루틴은 4개의 입력과 함께 멜드키 서브루틴(1032)으로 구성된다. 따라서, 도9로 부터의 레이블은 상대적으로 도16의 입력으로서 차례로 이용되며 편의상 도16에서 1610으로 표시된다. 특별한 레이블은 n으로 확인되며, 본 발명에서는 7개 레이블의 각각을 확인하기 위하여 n이 1에서 7까지 간다. 레이블(1610)은 알파 키(1620)로서 도16에서 재 지정된다. 각 레이블 서브루틴들(1523, 1524, 1525, 1526. 1527, 1528, 1529)에서의 두 번째 입력은 각 서브루틴에서 베타(n)로 표시되는 각 서브루틴(1622)에 대한 개별적인 베타 키이며 n은 레이블들에 대해 이용된 것과 동일하다. 바람직한 실시예에서는 이때 베타(n)가 의미가 없으며 내장된 벡터이나, 동일분야에서 능숙한 사람에게 명백한 바와 같이 베타(n)가 어떤 합리적인 의미 내지 목적을 갖는다. 세 번째 입력은 감마 키(211)이므로 각 레이블 서브루틴에 대하여 동일하다. 각 레이블 서브루틴에 대한 마지막 입력은 키업(n)으로 지정된 키업 벡터(1626)이다. 키업(1) 벡터(1626)가 첫 번째 주행 레이블 서브루틴(1523) (네트워크 레이블)에 대한 도15에서의 키업(1520)과 같이 동일하며, 다른 여섯개 레이블 서브루틴에 대한 키업(n) 벡터(1626)는 이전의 레이블 서브루틴에 대해 발생된 트레일키(1533-1538)이다. 예로서, 도16(목적 키)에서의 키업(2)은 네트워크 트레일키(1533)이며 키업(7)은 분류 트레일키(1538)이다.
도17을 참조하여, 멜드 키 서브루틴(1032)을 이제 설명한다. 멜드 키 서브루틴(1032)의 목적은 여기서는 트레일키로 불리며 일 방향 과정을 사용하는 것에 의해 각 레이블(330, 332, 334, 336, 338, 340, 342)의 대표인 일치하는 단일 키 내지 벡터를 생산하는 것이다. 각 트레일키는 유일하며, 재생할 수 있고, 가상으로 불특정하고, 거꾸로 가지 않는 키 내지 입력 값의 적절한 표현을 유지하는 벡터이다.
요약에서와 같이, 멜드 키 서브루틴(1032)은 알파 프라임(1710)으로 불려지는 채워진 레이블이며, 단순히 (비쥬얼 베이직에 대해 명령은 MIDS인) 프로그래밍 명령이 되어질 수 있는 공지의 연결 서브루틴을 이용한 키업(1626)으로 부터의 파일과 함께 80개 문자에 (여기에서는 알파 키(1620)로 불려지는) 각 레이블을 채우는 것에 의해 실행된다. 이 과정은 베타 프레임 벡터(1712)를 생성하는 각 단일 베타(n)키(1622)에 대해 반복되며, 감마 프레임 벡터(1714)를 생성하는 감마키(211)의 각 시간에 다시 반복된다. 그 다음에 각 레이블에 대해 하나의 키, 트레일키(1716)를 만들어내기 위하여 3개 채워진 키, 알파 프라임(1710), 베타 프라임(1712) 그리고 감마 프라임(1714)은 함께 겹쳐진다. 즉, 결합된다. 그 다음에 트레일 키들은 선택된 암호화 알고리즘을 초기화하기 위하여 이용되는 단일 파일 키를 생산하기 위하여 아래에서 도20을 참조하여 설명한 바와 같이 결합된다. 이러한 방법으로, 만들어진 트레일키와 파일 키는 그것들을 발생시킨 레이블에 대하여 100% 관련된다. 즉, 키가 평평한 대표적인 기능을 갖는것이다. 키의 조합이 여러 가지 방법으로 수행될 수 있을지라도, 본 특별한 실시예에서는 베타 프라임 키(1712)와 감마 프라임 키(1714)는 먼저 1720a로 표시되고 이하에서 도18의 설명을 참조하여 설명된 멜드인 서브루틴(1720)에서 한 바이트씩 배타적 논리합 되는 것을 이용하여 결합된다. 멜드인 서브루틴(1720a)은 원래의 키의 하나와 같은 길이를 갖는 중간적인 결과를 만들고, 그 다음에 중간적인 제품과 3가지 키인, 알파의 키(1710), 베타의 키(1712), 그리고 감마의 키(1714)와 같은 길이를 갖는 키(1716)를 생산하기 위해 멜드인 서브루틴(1720b)에서 알파 프라임 키(1710)와 함께 한 바이트씩 배타적 논리합을 이용하여 결합된다.
주입되지 않은 키로부터 주입된 알파, 베타, 그리고 감마키들을 생성하거나만드는 과정이 이제 설명될 것이다. 먼저 알파 키(1620)가 바람직한 본 실시예에서는 1인 내부 정수(1718)에 의해 결정된 스핀의 미리 설정된 수를 위해 스핀업 불특정화기 서브루틴(530)(도6 참조)에 종속되나, 당업자에게 자명하듯이 스쿼시 기능 서브루틴(1034a)에 의해 적절하게 생성되어질 수 있다. 스핀업 불특정화기 서브루틴(530)에서 진행 박스(648)의 동작 때문에 스핀업 불특정화기 서브루틴(530)으로 부터의 출력은 정수의 아스키 표현이 될 것이다. 서브루틴(530)의 출력은 본 프로그램의 이 시점에서는 1732a로 표시되는 스핀랜덤 문자 서브루틴에 입력으로서 이용된다. 스핀랜덤 문자 서브루틴은 모듈로 10 연산이 수행되는 진행 박스(648) (도6 참조)이 사용되지 않는 것을 제외하고 스핀업 불특정화기 서브루틴(530)과 동일하다. 그러므로, 진행 박스(650)(도6참조)에서 모든 아스키 문자가 생성되는 것과 스핀업 불특정화기 서브루틴으로부터의 출력으로서 그것들을 제공하는 것이 가능하다. 서브루틴(1732a)의 스핀 번호는 도18의 설명을 참조하여 이하에서 설명한 스쿼시 서브루틴(1034a)으로 부터 1에서 9까지 의 정수에 의해 결정된다. 스핀 번호는 오직 서브루틴(1732)이 동작하는 시간의 이익에서만 제한되며 빠른 컴퓨터에서는 한자리의 정수 보다 커질 수 있다. 서브루틴(1734a)의 출력은 종래의 연결 서브루틴(1734a)에 입력으로 사용되며 서브루틴(1734)의 입력은 키업(1626)이다. 서브루틴(1734a)으로 부터의 출력은 두 번째 스핀랜덤 문자 서브루틴(1732b)에 입력 벡터로서 제공된다. 서브루틴(1732b)에 대한 스핀번호는 내장된 정수(1736)에의해 결정되어지며 바람직한 본 실시예에서는 1 이므로 내부 정수(1718)와 동일하다. 서브루틴(1732a)으로부터의 출력은 알파 프라임(1710)이다.
채워진 벡터 베타 프라임(1712)과 감마 프라임(1714)은 비슷한 방법으로 생성된다. 키업(1626)은 스핀랜덤 문자 서브루틴(1732c)에 입력으로서 이용된다. (앞에서 커질 수 있다고 언급한 바와 같지만) 본 실시예에서는 단일 자리수의 정수인 스핀업 번호는 여기에서 환경 트레일러(964)로 불리는 안채워진 환경 레이블로부터의 스쿼시 기능(1034b)에 의해 발생된다. 스핀랜덤 문자 서브루틴(1732c)으로 부터의 출력은 연결 서브루틴(1732b) 내지 두 번째 연결 서브루틴(1734c)에 대해 채우는 것 내지 채우는 입력으로서 이용된다. 서브루틴(1734b, 1734c)에 의해 채워지는 벡터는 각각 베타(n)키(1622)와 감마 키(211)이며, 출력은 베타 프라임 키(1712)와 감마 프라임 키(1747)이다. 파일이 암호화되어지는 단일 시간과 날짜를 포함하기 때문에, 환경 레이블은 스핀업 번호를 생성하기 위해 이용되며 그러므로 특별한 암호화된 파일에 대해 합리적인 연결을 나타낸다. 어떤 스핀업값의 변경은 출력키에서 놀란만한 변화를 결과로서 생기게 한다. 이러한 내부 스핀업 정수는 다른것과 독립적으로 지정되고 스쿼시 기능(1034)에 의한 것과 같은 외부 내지 내부 제공처 또는 컴퓨터의 사용으로부터 나올 수 있다. 스쿼시 서브루틴(1034)은 도18에서 도시되었다. 스쿼시 서브루틴의 목적은 멀티 요소 문자열 입력을 취하기 위한 것이고 그것을 재생 가능한 방법으로 단일 정수로 줄이기위한것이다. 입력 문자열은 입력 데이터 박스(1810)에서 수신된다. 그 다음에 진행 박스(1812)에서 (필수적으로 단지 메모리 저장 위치이고 분리하여 도시되지 않음) 반복 카운터는 초기화되고 (필수적으로 단지 메모리 저장 위치이고 분리되게 보여지지 않는) 마지막 누산된 총액 총계계산기(totalizer)의 계산된 총액은 0으로 세트된다. 프로그램은 입력 문자열(1810)에서 요소의 수를 결정하기 위하여 종래의 서브루틴(1818)으로 진행한다. 그 다음에 프로그램은 반복 카운터에서 숫자가 입력 문자열에서 요소의 숫자보다 큰지를 결정하기 위하여 결정 다이아몬드(1820)에서 스쿼시 서브루틴(1034)의 반복부를 개시한다.
초기에, 응답은 아니오로 될 것이므로 서브루틴은 진행 박스(1822)로 분기된다. 진행 박스(1822)에서, 서브루틴(1034) 총계계산기의 수에 반복위치의 정수를 더한다. 다음에 서브루틴은 반복횟수가 입력 문자열에서 요소의 번호보다 큰지를 결정하기 위해 결정 다이아몬드(1826)로 진행한다. 만일 응답이 아니오이면, 서브루틴이 루프를 다시 시작하기 위해 진행 박스(1822)를 향하여 뒤로 분기한다. 만일 결정 다이아몬드(1826)에서의 응답이 예이면, 그 다음에 서브루틴은 현재 계산된 총액과 마지막 계산된 총액을 같게 세트하는 진행 박스(1828)로 분기된다. 그 다음에 스쿼시 서브루틴(1034)은 총액계산기에서의 번호가 1보다 큰지를 결정하는 결정 다이아몬드(1830)로 계속 진행된다. 만일 그렇다면, 서브루틴(1034)은 결정 다이아몬드(1820)를 향하여 뒤로 루프를돈다. 만일 응답이 아니오이면, 그 다음에 진행은 종료되고 결과로서 생기는 정수는 출력 데이터 박스(1834)에 저장된다.
예와 같이, 박스(1810)에서 번호의 입력 문자열이 초기에 3자리 숫자 즉 653을 갖는다고 가정하자. 서브루틴이 결정 다이아몬드(1820)을 개시했을 때, 반복 카운터는 진행 박스(1812)에 의해 1로 초기화되어질 것이고 입력 문자열에서 요소 번호가 3이므로, 서브루틴은 진행 박스(1822)로 떨어질 것이다. 첫 번째 반복위치에서 정수는 6이며 이것은 진행 박스(1822)에서 0으로 초기화되어지는 계산된 총액에 더해진다. 그러므로 새로운 총액은 6이다. 그리고 나서 서브루틴은 반복 카운터를 증가시키는 진행 박스(1824)로 진행하고 그 다음에 반복 카운터가 지금 문자열에서 요소의 번호인 3보다 크지 않은 2이기 때문에 아니오 가지를 취하는 결정 다이아몬드(1826)로 진행된다. 서브루틴은 다시 진행 박스(1822)를 개시하고 지금 (현재 2인) 반복 위치는 번호 5를 갖는다. 이것은 현재 계산된 총액 6에 더하여져 11이산출된다. 비슷한 프로그램 흐름에 있어서, 루프주변의 다음 트립(trip)은 계산된 총액 14(11+3)를 산출할 것이다. 루프 주변을 세 번째 트립한 후에 반복 번호는 3인 문자열 요소의 번호보다 큰 4가 될 것이며 프로그램은 결정 다이아몬드(1830)로 분기된다. 이제 계산된 총액은 두개의 숫자(1 및 4)를 가지므로 프로그램은 결정 다이아몬드(1820)를 향하여 뒤로 분기될 것이다. 리세트되어지지않은 반복 카운터는 이제 3이므로 서브루틴은 진행 박스(1832)로 분기될 것이다. 여기에서 서브루틴은 다시 반복 카운터를 1로 마지막 계산된 총액을 0으로 초기화시키고 결정 다이아몬드(1826)의 아니오 가지를 통하여 진행한다 (이제 반복은 1이고 새로운 문자열 요소의 번호는 2이다.). 두번 루프를 도는 것에 의해 계산된 총액에서의 결과는 5 (1+4)이며 단일 숫자이다. 그러므로, 서브루틴이 다시 결정 다이아몬드(1830)를 개시할 때 그 결과는 아니오로 될 것이고 프로그램은 출력 데이터 박스(1834)에서 최종적으로 종료될 것이다. 그러므로, 입력문자열에서 요소의 연속적인 증가에 의해 결과는 단일 숫자가 될 것이다. 멜드인 서브루틴(1720)이 도19에 도시되었다. 서브루틴(1720)의 기능은 재생 가능한 방법에서 같거나 다른 길이의 두개의 분리된 문자열을 보다 긴 문자열의 길이를 갖는 하나의 문자열로 결합하는 것이다.
초기에, 도시되지 않은 단계에서, 소프트웨어 쉬프트 레지스터는 0으로 초기화되고 서브루틴은 n+1 단계를 갖는 예비 직-병렬 쉬프트 레지스터(1910)에 첫번째, 예비 입력 문자열 그리고 n+1 단계를 갖는 제2 직-병렬 쉬프트 레지스터(1912)에 두번재의 제2입력 문자열을 인가한다. 예로서, 도17에 보여진 바와 같이, 예비 문자열은 알파키(1710) 내지 첫 번째 멜드인 서브루틴(1720)으로부터의 출력이고, 이차의 문자열은 베타키(1712)내지 감마 키(1712)이다. 각 쉬프트 레지스터(1910, 1912)의 데이터(n+1) 단계로부터의 출력은 그것을 아스키 값으로 변환하는 서브루틴(1914, 1916)에 입력으로서 이용된다. 그 다음에 각 쉬프트 레지스터(1910, 1912)에서의 요소는 한 장소만큼 오른쪽으로 이동된다. 그러면 서브루틴(1914, 1916)으로부터의 출력은 진행 박스(1918)에서 함께 배타적 논리합 되고 카운터는 진행 박스(1920)에서 하나가 증가된다. 이것은 초기 루프를 도는 것이므로 배타적 논리합 진행 박스(1918)으로부터의 출력은 1이고 데이터 출력 박스(1922)에서 정수로서 저장된다.
그 다음에 데이터 출력 박스(1922)에서 정수는 진행 박스(1924)에서 그것의 아스키 문자로 변환되고 레지스터 진행 박스(1926)에서 문자열에 연결된다. 그 다음에 결정 다이아몬드(1928)에서의 서브루틴은 카운터에서의 카운트가 쉬프트 레지스터(1910)에서의 문자열의 길이와 같은지를 보기 위하여 체크한다. 멜드 키 서브루틴(1032) (도17참조)에서 사용되고 쉬프트 레지스터(1910)에 들어간 문자열의 길이가 80 이고, 그 길이로 서브루틴(1732)에 의해 채워져으므로, 결정 다이아몬드(1928)에서 테스트의 결과는 첫 번째 루프상에서 아니오가 될 것이다. 그러므로, 서브루틴(1720)은 진행 박스(1924)에서 만들어된 아스키 문자가 2차의 쉬프트 레지스터(1912)의 첫 번째 단계로 인가되는 진행 박스(1930)에 진행되며 쉬프트 레지스터(1912, 1910)는 한 단계 오른쪽으로 이동된다. 80회 반복 후에 진행 박스(1926)에서의 문자열의 길이는 80이 될 것이며 카운터에서의 카운트는 80 될 것이다. 그러므로, 결정 다이아몬드(1928)에서의 결과는 예가 될 것이며, 프로그램은 진행 박스(1926)에서의 출력을 인가하기 위해 출력제품으로서 데이터 출력 박스(1932)로 분기된다. 도17의 멜드 키 서브루틴(1032)에서 두 번째 멜드인 서브루틴(1720)에 의해 만들어진 멜드인 출력은 특별한 레이블에 대한 트레일키이다.
레지스터(1912)로 인가되는 2차의 문자열의 길이는 여분의 문자들이 어떤 길이의 차이에 대해 자동적으로 만회하기 위해 진행 박스(1930)에 의해 2차의 문자열의 끝단에 더해지기 때문에 레지스터(1910)로 인가된 예비 문자열보다 짧아질 수 있는 것을 볼 수 있다.
파일 키(1042)의 생성물은 도20에서 보여졌다. 첫 번째 두 트레일키(1533, 1534)는 멜드인 서브루틴의 첫 번째 사용에서 결합되며 그 다음에 그 결합의 결과는 2차의 문자열 입력이 본 경우에서는 장소 트레일키(1535)인 다음 트레일키인 2차의 멜드인 서브루틴(1720b)에 예비 문자열 입력으로서 이용된다. 다음 멜드인 서브루틴(1720(n+1))에 대해 예비 문자열 입력으로서 이전의 멜드인 서브루틴(1720(n))의 결과를 이용하는 이 과정은 모든 트레일키가 차례로 이용될 때까지 반복된다. 마지막 단계는 파일 키(1042)를 만들어 낸다. 도20에서, 어떤 갯수의 트레일키(2010) (즉, 레이블)라도 사용되어질 수 있고 그 수는 바람직한 본 실시 예에서와 같은 7로 제한되지 않는다는 것을 설명하기 위해 도시되었다. 앞에서 설명한 바와 같이 본 발명은 메시지가 들어오는 것에 의해 키디스크(160)상에 파일의 변화 내지 리키와 키의 변화, 스핀업, 그리고 내장된 초기화 벡터를 예측한다. 이러한 진행은 키의 생명이 짧아지는 것에 의해 전체의 시스템 안전성을 증가시키기 위해 바람직한 것이며, 또한 현재 위임되지 않은 사용자에게 시스템을 사용하는 능력을 무력화하기 위해 바람직한 것이다. 이것을 이루기 위한 소프트웨어는 도21에 도시된 리키 및 재레이블 서브루틴(2100)이다.
서브루틴(2100)은 레이블 해독 서브루틴(232)과 키 생성 결합기 서브루틴(234)사이에서 도2에 도시된 프로그램에 삽입된다. 들어오는 메시지(230)는 해독화 서브루틴(232)에의해 해독되어진다.
트레일러가 해독된 후에, 서브루틴(2100)은 해독된 목적 레이블이 레이블이 REKEYKEYBYTE 와 같은 설정된 문자열을 갖는지를 판단하기 위해 체크되는 결정 다이아몬드(2110)를 개시한다. 만일 설정된 문자열을 갖지않으면, 프로그램은 프로그램이 상기에서 도3을 참조하여 설명한 해독 과정을 계속 수행하도록 지시되는 진행 박스(2112)으로 분기된다. 만일 결정 다이아몬드(2110)에서 비교가 예 이면, 서브루틴은 레이블 요소 해독화 서브루틴(2114)으로 진행하고,디스크(160)상에서 트레일러 파일을 해독한다. 이 해독화과정은 키 디스크(160)로 부터 얻어지는 재키 파일 트레일러 레이블의 이용을 요구한다.
진행 박스(2114)로부터, 서브루틴(2100)은 프로그램이 리키에 대해 적절한 위임을 체크하는 두 결정 다이아몬드(2116, 2118)로 진행된다. 결정 다이아몬드(2116)에서, 서브루틴은 재키 명령 레이블이 목적 레이블과 일치하는지를 결정하며, 만일 일치하면,다음에 서브루틴은 진행하도록 허용된다. 만일 일치되지 않으면, 그 다음에 서브루틴은 프로그램이 사용자에게 리키 에러를 발생시키고 심사 트레일에 그 에러를 기입하는 서브루틴(2120)으로 분기한다. 비슷하게, 결정 다이아몬드(2116)에서, 서브루틴은 리키 메시지의 발신 레이블이 키디스크상에 위치한 리키 파일에서 위임 레이블과 일치하는지를 결정한다. 만일 둘이 같으면, 서브루틴은 해독된 메시지 파일을 키디스크에 기입하는 서브루틴(2122)과, 그 다음에 리키 메시지를 발생시키고 심사 트레일에 메시지를 기입하는 서브루틴(2124)으로 진행한다. 만일 두 레이블이 서로 같지 않으면, 서브루틴은 상기에서 설명한 바와 같이 서브루틴(2120)으로 분기한다.
키 디스크 상에서 파일을 변화시키는 것에 더하여, 서브루틴(2122)은 또한 시스템에서 어떤 내부의 벡터 내지 키를 변경시킬 수 있다. 이러한 방법으로, 이용자는 업데이트 될 수 있고, 부적절한 이용자의 프로그램은 무능력해질 수 있다.
상세한 설명은 단일 처리키가 종래의 암호화 알고리즘을 초기화하기 위해 발생되어질 수 있고, 7개 레이블들은 트레일러로서 암호화된 메시지에 암호화 및 연결되어질 수 있는 본 발명의 바람직한 실시 예를 기술한다. 트레일러를 생성하는데 있어서 네트워크, 목적, 장소, 수신, 발신, 분류, 환경 카테고리의 키 레이블들은 있어야만하거나 먼저 생성되어져야만 한다. 레이블의 어떤 선택에서의 상호관계는 정당화 내지 메시지의 암호화를 둘러싼 스토리를 설명하기 위하여 충분한 정보를 포함한다. 그러나, 어떤 환경에서는 정당화가 받아들여지고 어떤 환경에서는 그것이 받아들여지지 않는다. 예를 들면, 주어진 네트워크를 통하여 주어진 장소로 두 사람 사이에서 통신된 때 메시지는 작은 감도를 갖을 수 있으며 같은 사람사이에 제공되는 같은 메시지는 다른 네트워크를 통하여 다른 장소로 옮겨졌을 때는 높은 감도를 가질 수 있다. 본 발명은 해로운 레이블의 결합을 방지하기 위해 이용되어질 수 있는 감도 요소를 만들어 내는 시스템을 포함하므로 선택된 카테고리의 조합에서 해로운 메시지가 보내어지는 것을 방지한다. 동작 환경에 대해서와 모든 레이블 그들의 각각의 레이블 카테고리 내에서의 모든 레이블의 분석은 미리 특별한 레이블들에 할당된 합법적인 감도 웨이트를 만들어 내기 위하여 만들어질 수 있다. 추가적으로 레이블 카테고리의 분리된 분석은, 네트워크에서 참가자의 조직적인 안정성 정책과 관련하여, 해로운 조합을 방지하기 위해 차례로 이용되어질 수 있는 감도 요소를 만들어내기위해 이용되어질 수 있다.
이러한 체크를 실행하기 위하여 본 발명은 규정-기반(rule-based)하는 전문 시스템 액세스를 이용한다. 두개의 다른 종류의 if-then-else 규정이 분리된 데이터 베이스에 저장된다. 첫 번째 데이터 베이스는 레이블의 초기 웨이트의 함수로서 선택된 레이블의 마지막 웨이트를 계산하기 위해 이용되는 복수 개의 결합된 레이블 웨이트 규정 및 선택되어진 하나 내지 그 이상의 레이블을 저장한다. 두 번째 데이터 베이스는 계산된 마지막 레이블 웨이트의 함수로서 레이블 결합의 전부의 수락을 결정하기 위해 이용되는 복수 개의 레이블 웨이트 수용 규정을 저장한다. 이러한 규정은 레이블 조합의 관계된 웨이트된 값을 계산하기 위해 연속적으로 사용된다.
첫 번째 데이터 베이스에 있어서 규정의 예시는 다음과 같이 표현될 수 있다.
IF [웨이트(레이블 5)] 7 AND [웨이트(레이블 3)] 5,
THEN [웨이트(레이블 3)] = 3 x [웨이트(레이블 3)] AND
[웨이트(레이블 5)] = 2 x [웨이트(레이블 5)]
다른 말로, 이 규정은 선택된 발신 레이블이 할당된 웨이트 8 내지 그 이상을 가지고 선택된 장소 레이블이 0에서 부터 4까지의 할당된 웨이트를 가지게 되면, 이러한 레이블들의 모두의 마지막 웨이트는 양 레이블 웨이트를 증가시키기 위하여 변경되어지는 것으로 번역되어질 수 있다. 발신 레이블의 웨이트는 2인 요소에 의해 증가되어질 것이고 장소 레이블의 웨이트는 3인 요소에 의해 증가되어질 것이다. 그러므로, 발신 및 장소 레이블은 일정한 임계(thresholds)감도를 갖고 양자가 함께 사용된다는 사실이 그들의 마지막 감도를 증가시킨다. 평가 규정과 함께한 결합에 있어서, 이 결합은 특별한 레이블 결합이 허용되는 것을 용이하게 배재할 수 있었다. 그러나 특별한 규정은 하나 내지 양자의 레이블들의 웨이트의감도를 줄일 수 있다.
두 번째 데이터 베이스에서의 규정의 예시는 다음과 같이 표시할 수 있다.
[웨이트 (레이블 5)] 7 AND [웨이트 (레이블 3)] 5,
IF, SUM [웨이트 (레이블 n), n = 1 에서 7 까지] [웨이트 (레이블 4)]
THEN [메시지를 보인다 : 레이블 선택이 허용되지 않음]
AND 레이블 선택을 [Null]으로 리세트
AND 합계를 [0]으로 초기화
AND 레이블 생성 과정을 재출발
ELSE 레이블 조합을 관련된 레이블 데이터 베이스로 기입
다른 말로, 이 규정은 모든 레이블의 마지막 웨이트의 합계가 수신 레이블의 마지막 웨이트보다 크면, 그 다음에 에러 메시지가 모니터의 스크린에 타이핑 (또는 프린트 출력)될 것이며 모든 레이블 선택은 무효로 되며, 마지막 웨이트의 합계는 0으로 초기화될 것이고 레이블 선택 서브루틴은 다시 설명되는 것으로 번역되어질 수 있다. 만일 마지막 웨이트의 합은 수신 레이블의 마지막 웨이트 미만이면, 레이블 결합은 허용되고 그 결합은 관련된 레이블 데이터 베이스로 기입되어질 것이다.
명백하게, 어떤 갯수의 데이터 베이스도 상이한 수의 레이블 카테고리를 만들기 위해 이용되어질 수 있다. 예를 들면, 레이블 결합 과정내에서는 8개의 분리된 데이터베이스가 이용되어질 수 있다. 7개의 데이터베이스는 대응하는 레이블 카테고리에 대해 레이블 레코드를 포함하고 각 레코드는 특별한 레이블에 대한 텍스트 필드와 그 레이블의 웨이트에 대한 정수 필드를 포함한다. 8개의 데이터베이스는 이전에 선택된 레이블의 레코드를 포함한다. 각 레코드는 7개 결합된 레이블들을 저장하기 위해 7개의 텍스트 필드와 레코드의 드롭 데드 날짜와 시간을 저장하기 위해 날짜/시간 필드를 갖는다.
이러한 규정은 국부 조직의 운용 정책에 따라 조직적인 환경에 대해 꼭 맞게 되어질 수 있다. 예로서, 세트되어질 수 있는 합계된 감도 임계는 특정한 날에, 적당한 범위의 특별한 사람에 의해, 상이한 장소에서 특별한 레이블 조합의 이용을 방지하기 위해 이용된다. 개시된 분석 전문 시스템 타입은 오직 하나의 가능성이 있으며, 신경 네트워크, 퍼지(fuzzy) 논리 시스템 내지 제네틱(genetic) 알고리즘 방법과같은 다른 타입이 대신에 사용되어질 수 있다. 또한, 만일 전문 시스템 내지 규정에 기초한 평가 시스템이 이용되면, 규정은 본 시스템의 외부에도 실행되어질 수 있다.
도22를 참조하면, 선택된 레이블의 결합을 체크하기 위한 전문 시스템 서브루틴이 개시되었다. 초기에는 사용자가 수동 진행 박스(2212)에서 결합되지 않은 레이블 데이터 베이스(932,내지 939)의 어떤 것으로부터 제공되는 레이블을 선택한다. 프로그램은 레이블 웨이트의 합계가 0으로 초기화되는 진행 박스(2212)로 상향되게 분기한다. 그 다음에 프로그램은 선택된 레이블에 기초하여 프로그램이 결합된 레이블 웨이트 룰베이스(2216)로 부터 사용할 적절한 규정을 선택하는 서브루틴(2214)으로 진행한다.
아직 다른 결합된 레이블이 없으므로 결합된 레이블 웨이트 룰베이스(2216)내에서의 규정은 발생되지 않는다. 그 다음에 서브루틴(2214)은 지금까지 선택된 모든 레이블에 대해 모든 결합된 레이블 웨이트를 계산하나, 이 첫 번째 라운드에서는 계산되지 않을 것이다. 프로그램은 지금까지 선택된 레이블의 모든 선택된 관련 레이블 웨이트를 합하는 진행 박스(2218)로 진행하고, 진행은 출력 박스(2220)에의해 지시된 바와 같이 터미널에 표시된다. 첫 번째 라운드에서 모든 선택된 레이블 웨이트의 합은 단일 선택된 레이블의 웨이트가 되며, 출력 박스(2220)에의해 제공되는 표시는 간단히 첫 번째 선택된 레이블의 단일 웨이트가 될 것이다. 도9에서 지시된 바와 같이, 첫 번째 선택된 레이블은 시스템 시간/날짜 스탬프가 단일 레이블을 만들기 위해 더해질 수 있도록 선택된 마지막 레이블이 되어야만 하는 환경 레이블을 제외하고, 실제로 7개의 레이블의 임의의 것이 될것이다.
그 다음에 프로그램은 레이블 웨이트 수용 룰베이스(2224)에서 룰 세트업의 세트에 기초한 수용을 위해 지금까지 선택한 레이블 웨이트에 대한 검사가 평가되는 서브루틴(2222)으로 진행된다. 적절한 레이블 웨이트, 레이블 웨이트 합계와 조직의 정책에 의해 세트되는 내부 입계값에의해 의존하여 발생될것이다. 그러나, 첫 번째 라운드에서는 오직 하나의 레이블로 존재하는 전체 웨이트는 최대 허용된 웨이트 내에 있다. 그러므로, 프로그램이 임의의 카테고리로부터의 상이한 레벨은 버리거나 선택 또는 존재하는 결합된 선택을 허용하는 입력 박스(2210)로 후방 분기되는 것으로 사용자에게 선택이 주어진다. 다른 한편으로, 그 결과가 최대 허용된 웨이트 이상으로 초과하게 되면, 프로그램은 에러 메시지를 디스플레이 박스(2226)에의해 지시된 바와 같이 터미널 상에 표시되도록한다. 그럼에도 불구하고, 이 웨이트는 최대 허용된 웨이트를 초과하게 되면, 프로그램은 여전히 사용자에게 빠져나가거나, 새로운 레이블을 선택하거나 입력 박스(2210)에서 존재하는 결합된 레이블 선택을 수용하기 위한 옵션을 부여한다.
만일 사용자가 다른 카테고리로부터 새로운 레이블을 입력 박스(2210)에서 선택하면, 프로그램은 다시 한번 레이블 웨이트의 합계가 0으로 초기화되는 진행 박스(2212)로 진행한다. 이제 두 레이블이 있을 것이며, 서브루틴(2216)에서 어떤 영향이 미치는 규정이 생성되며, 서브루틴(2214)은 그에 의해 지금의 두개의 선택된 레이블의 새로 결합된 웨이트를 계산하게 될 것이다. 그 다음에 프로그램은 웨이트의 새로운 합계가 계산되는 진행 박스(2218)로 진행하고, 다음에 규정이 서브루틴(2224)에서 발생한 웨이트에 기초하여 수용을위해 웨이트가 평가되어지는 서브루틴(2222)에 진행된다. 다시, 만일 그 평가가 수용하지 못하는 것으로 발견되면, 그 다음에 에러 메시지가 박스(2226)에서 지시된 바와 같이 사용자에게 보여지며, 프로그램은 입력 박스(2210)로 복귀된다.
진행은 사용자가 바라던 레이블의 모든 것을 선택하였고 입력 박스(2210)에서 존재하는 레이블을 수용하는 것을 결정했을 때까지 계속된다. 만일 모든 레이블이 이용자에의해 받아들여지면 프로그램은 실제로 각 카테고리로부터 제공된 레이블이 선택되었는지를 판단하기 위해 검사가 행해지는 결정 박스(2228)를 향하여 아래로 분기된다. 만일 그렇지 않으면, 그 다음에 프로그램은 입력 박스(2210)를 향하여 뒤로 분기된다. 만일, 그렇다면, 그 다음에 프로그램은 프로그램이 웨이트가 레이블 웨이트 룰베이스(2224)에의해 수용되어졌는지를 묻는 결정 다이아몬드(2230)로 분기한다. 레이블 웨이트 수용 룰베이스(2224)에서의 규정 및 결정 다이어몬드(2228)가 셋업된 방식에 따라 모든 레이블을 선택하여야 할 요구가 있을수도없을 수도 있다. 만일 웨이트가 받아들여지지 않았으면, 그 다음에 프로그램이 입력 박스(2210)를 향하여 뒤로 분기된다. 만일 받아들여졌으면, 그 다음에 프로그램이 이용자가 드롭 데드 주기를 입력할 수 있는 진행 박스(2232)로 계속 진행된다. 그 다음에 프로그램은 심사 트레일에 대한 레코드 실행이 기록되는 진행 박스와, 프로그램이 다음 유용한 데이터베이스 기록에 대해 결합 드롭 데드 날짜를 가진 결합된 레이블을 기입하는 출력 디스크 박스(2236)와, 그 다음에 프로그램이 메인 프로그램을 향하여 뒤로 분기되는 서브루틴 복귀 박스(2238)로 계속 진행된다.
만일 이용자가 어떤 시간에 박스(2210)에서 빠져나가는 옵션을 수용하면, 프로그램은 레이블 선택 과정을 저지시키는 진행 박스(2240)로 분기하고, 그 다음에 프로그램이 메인 프로그램으로 복귀하는 서브루틴 복귀 박스(2242)로 분기한다.
본 발명은 양자택일의 얼마간의 설명과 함께 바람직한 본 발명의 실시예에 대해 기술되었다. 그러나, 추가적인 실시예와 본 실시예의 변형은 동일 분야에 능숙한자들에게는 명백할 것이다.
Claims (9)
- 복구할 수 있게 데이터 키가 저장되는 휴대용 매체(medium)와,상기 휴대용 매체를 읽고 상기 데이터 키를 복구하기 위한 수단과, 이용자로부터 제공되는 입력을 수신하기 위한 수단과, 정보를 조작하기위한 수단과, 그리고 디지털 정보를 저장하기 위한 수단을 구비하는 통신 구성 요소와,상기 통신 구성 요소에 의해 조작되어질 수 있는 디지털 정보의 메시지와,상기 휴대용 매체를 읽고 상기 데이터 키를 복구하기 위해 상기 통신 구성 요소를 지시(directing)하기 위한 수단과,이용자로부터 제공되는 적어도 하나의 암호로 구성된 입력 암호구를 수신하기 위한 수단과,상기 입력 암호구와 상기 데이터 키에 기초한 상기 프로그램의 일부분에 액세스(access)를 승인하기위한 수단과,엑세스가 컴퓨터 프로그램의 상기 엑세스 승인 수단에 의해 승인되어졌으면 알려진 바이트 숫자(number)를 갖는 메시지 트레일러(trailer)를 생성하기위한 수단과,상기 메시지 트레일러를 상기 메시지에 붙이기 위한 수단을 포함하고, 상기 저장 수단에 저장되어져있으며 상기 통신 구성 요소에 의해 액서스 및 실행되어질 수 있으며, 상기 통신 구성 요소를 제어하는 복수 개의 부분을 갖는 프로그램으로 구성된 것을 특징으로 하는 암호화 시스템.
- 제1항에 있어서, 상기 통신 구성 요소는 컴퓨터이고 상기 프로그램은 상기 컴퓨터에의해 수행되어질 수 있는 컴퓨터 프로그램인 것을 특징으로 하는 암호화 시스템.
- 제2항에 있어서, 상기 컴퓨터 프로그램은 상기 메시지 트레일러 내에 포함된 정보로부터 단일 파일 암호화키를 생성하기 위한 수단을 추가적으로 포함하여 구성된 것을 특징으로 하는 암호화 시스템.
- 제2항에 있어서, 상기 컴퓨터 프로그램은 상기 데이터키의 생성 및 사용을 위한 복수개의 이유들을 나타내는 프로그램 코드를 할당하기위한 수단을 추가적으로 포함하여 구성된 것을 특징으로 하는 암호화 시스템.
- 제4항에 있어서, 상기 컴퓨터 프로그램은 상기키의 생성에 앞서 생성되는 각 키에 대한 상기 이유를 확인하기 위한 수단을 추가로 포함하여 구성된 것을 특징으로 하는 암호화 시스템.
- 제2항에 있어서, 상기 컴퓨터 프로그램은 적어도 하나 이상의 상기 레이블과 파일 키를 암호화하기 위해 이용된 상기 컴퓨터 프로그램에서 적어도 하나 이상의 변수를 다시 키입력을 하기 위한 수단을 추가로 구성한 것을 특징으로 하는 암호화 시스템.
- 제2항에 있어서, 상기 메시지 트레일러는 복수 개의 연결된 증명할 수 있는 레이블부(concatenated identifiable label portion)로 구성된 것을 특징으로 하는 암호화 시스템.
- 제7항에 있어서, 복수 개의 레이블 문자열과 복수 개의 일치하는 웨이팅(weighting) 요소들을 포함하는 데이터 베이스와,상기 암호화 시스템의 이용자에게 상기 데이터 베이스에 엑세스하고 레이블 문자열을 선택하는 것을 승인하기 위한 수단을 포함하는 상기 메시지 트레일러 생성 수단을 추가적으로 포함하고, 상기 레이블부는 암호화된 상기 레이블 문자열인 것을 특징으로 하는 암호화 시스템.
- 제7항에 있어서, 선택된 레이블 문자열의 결합이 승인된 결합인 것을 결정하기 위해 이용자가 선택한 레이블 문자열의 상기 웨이팅 요소를 평가하기 위한 전문 시스템 수단을 추가로 포함하여 구성된 것을 특징으로 하는 암호화 시스템.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US8/457489 | 1995-06-01 | ||
| US08/457,489 US6011847A (en) | 1995-06-01 | 1995-06-01 | Cryptographic access and labeling system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR19990022194A true KR19990022194A (ko) | 1999-03-25 |
Family
ID=23816945
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1019970708673A Withdrawn KR19990022194A (ko) | 1995-06-01 | 1996-06-03 | 암호 액세스 및 레이블링 시스템 |
Country Status (8)
| Country | Link |
|---|---|
| US (2) | US6011847A (ko) |
| EP (1) | EP0870376A4 (ko) |
| JP (1) | JPH11506588A (ko) |
| KR (1) | KR19990022194A (ko) |
| AU (1) | AU6042496A (ko) |
| CA (1) | CA2229026A1 (ko) |
| NO (1) | NO975418L (ko) |
| WO (1) | WO1996038945A1 (ko) |
Families Citing this family (105)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE19625635C1 (de) * | 1996-06-26 | 1997-12-04 | Fraunhofer Ges Forschung | Verschlüsselung und Entschlüsselung von Multimediadaten |
| FI103543B1 (fi) * | 1996-09-30 | 1999-07-15 | Nokia Telecommunications Oy | Elektronisten dokumenttien merkitseminen |
| US7212632B2 (en) | 1998-02-13 | 2007-05-01 | Tecsec, Inc. | Cryptographic key split combiner |
| US6694433B1 (en) * | 1997-05-08 | 2004-02-17 | Tecsec, Inc. | XML encryption scheme |
| US6389535B1 (en) * | 1997-06-30 | 2002-05-14 | Microsoft Corporation | Cryptographic protection of core data secrets |
| US6754820B1 (en) | 2001-01-30 | 2004-06-22 | Tecsec, Inc. | Multiple level access system |
| US8077870B2 (en) * | 1998-02-13 | 2011-12-13 | Tecsec, Inc. | Cryptographic key split binder for use with tagged data elements |
| US7228437B2 (en) * | 1998-08-13 | 2007-06-05 | International Business Machines Corporation | Method and system for securing local database file of local content stored on end-user system |
| US6449656B1 (en) * | 1999-07-30 | 2002-09-10 | Intel Corporation | Storing a frame header |
| US7269261B1 (en) * | 1999-09-22 | 2007-09-11 | Raytheon Company | Key escrow systems |
| US7020843B2 (en) * | 1999-11-30 | 2006-03-28 | Uhc Llc | Method and system for implementing a browser object container |
| US6813716B1 (en) * | 2000-04-24 | 2004-11-02 | At&T Corp. | Secure calling card and authentication process |
| US6947556B1 (en) | 2000-08-21 | 2005-09-20 | International Business Machines Corporation | Secure data storage and retrieval with key management and user authentication |
| US7010689B1 (en) | 2000-08-21 | 2006-03-07 | International Business Machines Corporation | Secure data storage and retrieval in a client-server environment |
| JP4352600B2 (ja) * | 2000-09-01 | 2009-10-28 | ソニー株式会社 | データ改竄チェック装置および方法、ならびに、記録媒体 |
| US7496767B2 (en) * | 2001-01-19 | 2009-02-24 | Xerox Corporation | Secure content objects |
| US7194618B1 (en) * | 2001-03-05 | 2007-03-20 | Suominen Edwin A | Encryption and authentication systems and methods |
| GB0106082D0 (en) | 2001-03-13 | 2001-05-02 | Mat & Separations Tech Int Ltd | Method and equipment for removing volatile compounds from air |
| US20030004946A1 (en) * | 2001-06-28 | 2003-01-02 | Vandenavond Todd M. | Package labeling |
| US8904270B2 (en) * | 2006-11-29 | 2014-12-02 | Omtool Ltd. | Methods and apparatus for enterprise document distribution |
| US8726015B2 (en) * | 2001-10-29 | 2014-05-13 | Omtool, Ltd. | Methods and apparatus for secure content routing |
| WO2003039094A2 (en) * | 2001-10-29 | 2003-05-08 | Omtool, Ltd | Methods and apparatus for securely communicating a message |
| US8732566B2 (en) * | 2006-11-29 | 2014-05-20 | Omtool, Ltd. | Methods and apparatus for digital content handling |
| US7203317B2 (en) * | 2001-10-31 | 2007-04-10 | Hewlett-Packard Development Company, L.P. | System for enabling lazy-revocation through recursive key generation |
| US7370366B2 (en) * | 2001-11-16 | 2008-05-06 | International Business Machines Corporation | Data management system and method |
| US10360545B2 (en) | 2001-12-12 | 2019-07-23 | Guardian Data Storage, Llc | Method and apparatus for accessing secured electronic data off-line |
| US7565683B1 (en) * | 2001-12-12 | 2009-07-21 | Weiqing Huang | Method and system for implementing changes to security policies in a distributed security system |
| US8006280B1 (en) | 2001-12-12 | 2011-08-23 | Hildebrand Hal S | Security system for generating keys from access rules in a decentralized manner and methods therefor |
| US8065713B1 (en) | 2001-12-12 | 2011-11-22 | Klimenty Vainstein | System and method for providing multi-location access management to secured items |
| US7921288B1 (en) | 2001-12-12 | 2011-04-05 | Hildebrand Hal S | System and method for providing different levels of key security for controlling access to secured items |
| US7930756B1 (en) | 2001-12-12 | 2011-04-19 | Crocker Steven Toye | Multi-level cryptographic transformations for securing digital assets |
| US7380120B1 (en) | 2001-12-12 | 2008-05-27 | Guardian Data Storage, Llc | Secured data format for access control |
| US7178033B1 (en) | 2001-12-12 | 2007-02-13 | Pss Systems, Inc. | Method and apparatus for securing digital assets |
| US10033700B2 (en) | 2001-12-12 | 2018-07-24 | Intellectual Ventures I Llc | Dynamic evaluation of access rights |
| US7260555B2 (en) | 2001-12-12 | 2007-08-21 | Guardian Data Storage, Llc | Method and architecture for providing pervasive security to digital assets |
| US7921284B1 (en) | 2001-12-12 | 2011-04-05 | Gary Mark Kinghorn | Method and system for protecting electronic data in enterprise environment |
| US7921450B1 (en) * | 2001-12-12 | 2011-04-05 | Klimenty Vainstein | Security system using indirect key generation from access rules and methods therefor |
| US7950066B1 (en) | 2001-12-21 | 2011-05-24 | Guardian Data Storage, Llc | Method and system for restricting use of a clipboard application |
| KR100463842B1 (ko) * | 2001-12-27 | 2004-12-29 | 한국전자통신연구원 | 파일 보안 시스템의 키 관리 장치와 암호키 관리방법 |
| US8176334B2 (en) | 2002-09-30 | 2012-05-08 | Guardian Data Storage, Llc | Document security system that permits external users to gain access to secured files |
| US20030204718A1 (en) * | 2002-04-29 | 2003-10-30 | The Boeing Company | Architecture containing embedded compression and encryption algorithms within a data file |
| US8010405B1 (en) | 2002-07-26 | 2011-08-30 | Visa Usa Inc. | Multi-application smart card device software solution for smart cardholder reward selection and redemption |
| US7121456B2 (en) | 2002-09-13 | 2006-10-17 | Visa U.S.A. Inc. | Method and system for managing token image replacement |
| US8626577B2 (en) | 2002-09-13 | 2014-01-07 | Visa U.S.A | Network centric loyalty system |
| US8015060B2 (en) | 2002-09-13 | 2011-09-06 | Visa Usa, Inc. | Method and system for managing limited use coupon and coupon prioritization |
| US9852437B2 (en) | 2002-09-13 | 2017-12-26 | Visa U.S.A. Inc. | Opt-in/opt-out in loyalty system |
| US6920611B1 (en) | 2002-11-25 | 2005-07-19 | Visa U.S.A., Inc. | Method and system for implementing a loyalty merchant component |
| US20050235145A1 (en) * | 2002-12-05 | 2005-10-20 | Canon Kabushiki Kaisha | Secure file format |
| US20040111610A1 (en) * | 2002-12-05 | 2004-06-10 | Canon Kabushiki Kaisha | Secure file format |
| US20040158733A1 (en) | 2003-02-11 | 2004-08-12 | Thaddeus Bouchard | Method and system for secure facsimile delivery and registration |
| JP2004295358A (ja) * | 2003-03-26 | 2004-10-21 | Internatl Business Mach Corp <Ibm> | 情報処理装置、その暗号処理システム及び外部記憶装置の制御方法 |
| US7827077B2 (en) | 2003-05-02 | 2010-11-02 | Visa U.S.A. Inc. | Method and apparatus for management of electronic receipts on portable devices |
| US8707034B1 (en) | 2003-05-30 | 2014-04-22 | Intellectual Ventures I Llc | Method and system for using remote headers to secure electronic files |
| US7305557B2 (en) | 2003-06-20 | 2007-12-04 | International Business Machines Corporation | Management and recovery of data object annotations using digital fingerprinting |
| US20050044171A1 (en) * | 2003-08-21 | 2005-02-24 | 3M Innovative Properties Company | Centralized management of packaging data having modular remote device control architecture |
| US20050050052A1 (en) * | 2003-08-20 | 2005-03-03 | 3M Innovative Properties Company | Centralized management of packaging data with artwork importation module |
| US8554610B1 (en) | 2003-08-29 | 2013-10-08 | Visa U.S.A. Inc. | Method and system for providing reward status |
| US7104446B2 (en) | 2003-09-03 | 2006-09-12 | Visa U.S.A., Inc. | Method, system and portable consumer device using wildcard values |
| US7051923B2 (en) | 2003-09-12 | 2006-05-30 | Visa U.S.A., Inc. | Method and system for providing interactive cardholder rewards image replacement |
| US7783637B2 (en) | 2003-09-30 | 2010-08-24 | Microsoft Corporation | Label system-translation of text and multi-language support at runtime and design |
| US8005763B2 (en) | 2003-09-30 | 2011-08-23 | Visa U.S.A. Inc. | Method and system for providing a distributed adaptive rules based dynamic pricing system |
| US8407083B2 (en) | 2003-09-30 | 2013-03-26 | Visa U.S.A., Inc. | Method and system for managing reward reversal after posting |
| US7703140B2 (en) * | 2003-09-30 | 2010-04-20 | Guardian Data Storage, Llc | Method and system for securing digital assets using process-driven security policies |
| US8127366B2 (en) | 2003-09-30 | 2012-02-28 | Guardian Data Storage, Llc | Method and apparatus for transitioning between states of security policies used to secure electronic documents |
| US20050086531A1 (en) * | 2003-10-20 | 2005-04-21 | Pss Systems, Inc. | Method and system for proxy approval of security changes for a file security system |
| US7814101B2 (en) * | 2003-10-30 | 2010-10-12 | Microsoft Corporation | Term database extension for label system |
| US7653602B2 (en) | 2003-11-06 | 2010-01-26 | Visa U.S.A. Inc. | Centralized electronic commerce card transactions |
| US20050138371A1 (en) * | 2003-12-19 | 2005-06-23 | Pss Systems, Inc. | Method and system for distribution of notifications in file security systems |
| JP2005286959A (ja) * | 2004-03-31 | 2005-10-13 | Sony Corp | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム |
| JP4815855B2 (ja) * | 2005-04-20 | 2011-11-16 | ブラザー工業株式会社 | 暗号鍵設定装置 |
| US7992203B2 (en) * | 2006-05-24 | 2011-08-02 | Red Hat, Inc. | Methods and systems for secure shared smartcard access |
| US8098829B2 (en) * | 2006-06-06 | 2012-01-17 | Red Hat, Inc. | Methods and systems for secure key delivery |
| US8332637B2 (en) * | 2006-06-06 | 2012-12-11 | Red Hat, Inc. | Methods and systems for nonce generation in a token |
| US8180741B2 (en) * | 2006-06-06 | 2012-05-15 | Red Hat, Inc. | Methods and systems for providing data objects on a token |
| US8495380B2 (en) | 2006-06-06 | 2013-07-23 | Red Hat, Inc. | Methods and systems for server-side key generation |
| US8364952B2 (en) | 2006-06-06 | 2013-01-29 | Red Hat, Inc. | Methods and system for a key recovery plan |
| US7822209B2 (en) * | 2006-06-06 | 2010-10-26 | Red Hat, Inc. | Methods and systems for key recovery for a token |
| US8707024B2 (en) * | 2006-06-07 | 2014-04-22 | Red Hat, Inc. | Methods and systems for managing identity management security domains |
| US8412927B2 (en) * | 2006-06-07 | 2013-04-02 | Red Hat, Inc. | Profile framework for token processing system |
| US9769158B2 (en) | 2006-06-07 | 2017-09-19 | Red Hat, Inc. | Guided enrollment and login for token users |
| US8589695B2 (en) * | 2006-06-07 | 2013-11-19 | Red Hat, Inc. | Methods and systems for entropy collection for server-side key generation |
| US8099765B2 (en) * | 2006-06-07 | 2012-01-17 | Red Hat, Inc. | Methods and systems for remote password reset using an authentication credential managed by a third party |
| US8806219B2 (en) * | 2006-08-23 | 2014-08-12 | Red Hat, Inc. | Time-based function back-off |
| US8787566B2 (en) * | 2006-08-23 | 2014-07-22 | Red Hat, Inc. | Strong encryption |
| US8074265B2 (en) * | 2006-08-31 | 2011-12-06 | Red Hat, Inc. | Methods and systems for verifying a location factor associated with a token |
| US9038154B2 (en) * | 2006-08-31 | 2015-05-19 | Red Hat, Inc. | Token Registration |
| US8356342B2 (en) * | 2006-08-31 | 2013-01-15 | Red Hat, Inc. | Method and system for issuing a kill sequence for a token |
| US8977844B2 (en) * | 2006-08-31 | 2015-03-10 | Red Hat, Inc. | Smartcard formation with authentication keys |
| US8693690B2 (en) * | 2006-12-04 | 2014-04-08 | Red Hat, Inc. | Organizing an extensible table for storing cryptographic objects |
| US8813243B2 (en) | 2007-02-02 | 2014-08-19 | Red Hat, Inc. | Reducing a size of a security-related data object stored on a token |
| US8639940B2 (en) * | 2007-02-28 | 2014-01-28 | Red Hat, Inc. | Methods and systems for assigning roles on a token |
| US8832453B2 (en) * | 2007-02-28 | 2014-09-09 | Red Hat, Inc. | Token recycling |
| US9081948B2 (en) * | 2007-03-13 | 2015-07-14 | Red Hat, Inc. | Configurable smartcard |
| JP2008270870A (ja) * | 2007-04-16 | 2008-11-06 | Sony Corp | 通信システム、通信装置及び通信方法、並びにコンピュータ・プログラム |
| WO2009054807A1 (en) * | 2007-10-26 | 2009-04-30 | Nanyang Polytechnic | Secure messaging using outband mode authentication |
| US20100235689A1 (en) * | 2009-03-16 | 2010-09-16 | Qualcomm Incorporated | Apparatus and method for employing codes for telecommunications |
| US8256010B2 (en) * | 2009-04-01 | 2012-08-28 | Microsoft Corporation | Providing access to a data item using access graphs |
| US20110145082A1 (en) | 2009-12-16 | 2011-06-16 | Ayman Hammad | Merchant alerts incorporating receipt data |
| US8429048B2 (en) | 2009-12-28 | 2013-04-23 | Visa International Service Association | System and method for processing payment transaction receipts |
| US9444819B2 (en) * | 2014-01-16 | 2016-09-13 | International Business Machines Corporation | Providing context-based visibility of cloud resources in a multi-tenant environment |
| US10963581B2 (en) * | 2015-05-20 | 2021-03-30 | Board Of Regents, The University Of Texas System | Systems and methods for secure file transmission and cloud storage |
| US10372628B2 (en) * | 2017-09-29 | 2019-08-06 | Intel Corporation | Cross-domain security in cryptographically partitioned cloud |
| JP2018092174A (ja) * | 2017-12-22 | 2018-06-14 | 株式会社メガチップス | 乱数生成装置、記憶装置及び情報処理システム |
| EP3671511B1 (en) | 2018-12-19 | 2022-07-06 | Rohde & Schwarz GmbH & Co. KG | Communication system and method |
| CN109787764B (zh) * | 2019-03-25 | 2021-07-06 | 四川九洲空管科技有限责任公司 | 一种密钥的加密方法 |
Family Cites Families (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4218582A (en) * | 1977-10-06 | 1980-08-19 | The Board Of Trustees Of The Leland Stanford Junior University | Public key cryptographic apparatus and method |
| US4424414A (en) * | 1978-05-01 | 1984-01-03 | Board Of Trustees Of The Leland Stanford Junior University | Exponentiation cryptographic apparatus and method |
| US4713753A (en) * | 1985-02-21 | 1987-12-15 | Honeywell Inc. | Secure data processing system architecture with format control |
| US4864616A (en) * | 1987-10-15 | 1989-09-05 | Micronyx, Inc. | Cryptographic labeling of electronically stored data |
| US4984272A (en) * | 1988-11-30 | 1991-01-08 | At&T Bell Laboratories | Secure file handling in a computer operating system |
| US5065429A (en) * | 1989-04-03 | 1991-11-12 | Lang Gerald S | Method and apparatus for protecting material on storage media |
| US5191611A (en) * | 1989-04-03 | 1993-03-02 | Lang Gerald S | Method and apparatus for protecting material on storage media and for transferring material on storage media to various recipients |
| US4993069A (en) * | 1989-11-29 | 1991-02-12 | International Business Machines Corporation | Secure key management using control vector translation |
| ES2042346T3 (es) * | 1990-05-18 | 1993-12-01 | Ascom Tech Ag | Dispositivo para la transformacion de un bloque digital y utilizaciondel mismo. |
| US5052040A (en) * | 1990-05-25 | 1991-09-24 | Micronyx, Inc. | Multiple user stored data cryptographic labeling system and method |
| US5204961A (en) * | 1990-06-25 | 1993-04-20 | Digital Equipment Corporation | Computer network operating with multilevel hierarchical security with selectable common trust realms and corresponding security protocols |
| GB9015799D0 (en) * | 1990-07-18 | 1991-06-12 | Plessey Telecomm | A data communication system |
| US5040210A (en) * | 1990-07-30 | 1991-08-13 | Arena Recreations (Toronto) | Lockable tape cassette control system |
| US5214698A (en) * | 1991-03-20 | 1993-05-25 | International Business Machines Corporation | Method and apparatus for validating entry of cryptographic keys |
| US5319562A (en) * | 1991-08-22 | 1994-06-07 | Whitehouse Harry T | System and method for purchase and application of postage using personal computer |
| US5220606A (en) * | 1992-02-10 | 1993-06-15 | Harold Greenberg | Cryptographic system and method |
| US5276735A (en) * | 1992-04-17 | 1994-01-04 | Secure Computing Corporation | Data enclave and trusted path system |
| US5231666A (en) * | 1992-04-20 | 1993-07-27 | International Business Machines Corporation | Cryptographic method for updating financial records |
| IL102394A (en) * | 1992-07-02 | 1996-08-04 | Lannet Data Communications Ltd | Method and apparatus for secure data transmission |
| IL103062A (en) * | 1992-09-04 | 1996-08-04 | Algorithmic Res Ltd | Data processor security system |
| US5495580A (en) * | 1992-10-20 | 1996-02-27 | Xlnt Designs, Inc. | Ring network security system with encoding of data entering a subnetwork and decoding of data leaving a subnetwork |
| US5369707A (en) * | 1993-01-27 | 1994-11-29 | Tecsec Incorporated | Secure network method and apparatus |
| US5402492A (en) * | 1993-06-18 | 1995-03-28 | Ast Research, Inc. | Security system for a stand-alone computer |
| US5680452A (en) * | 1993-10-18 | 1997-10-21 | Tecsec Inc. | Distributed cryptographic object method |
| US5369702A (en) * | 1993-10-18 | 1994-11-29 | Tecsec Incorporated | Distributed cryptographic object method |
| US6456729B1 (en) * | 1994-04-14 | 2002-09-24 | Lewis J. Moore | Anti-counterfeiting and tracking system |
| US5495533A (en) * | 1994-04-29 | 1996-02-27 | International Business Machines Corporation | Personal key archive |
| US6181837B1 (en) * | 1994-11-18 | 2001-01-30 | The Chase Manhattan Bank, N.A. | Electronic check image storage and retrieval system |
| US5715397A (en) * | 1994-12-02 | 1998-02-03 | Autoentry Online, Inc. | System and method for data transfer and processing having intelligent selection of processing routing and advanced routing features |
| US5615264A (en) * | 1995-06-08 | 1997-03-25 | Wave Systems Corp. | Encrypted data package record for use in remote transaction metered data system |
| US5671283A (en) * | 1995-06-08 | 1997-09-23 | Wave Systems Corp. | Secure communication system with cross linked cryptographic codes |
-
1995
- 1995-06-01 US US08/457,489 patent/US6011847A/en not_active Expired - Lifetime
-
1996
- 1996-06-03 AU AU60424/96A patent/AU6042496A/en not_active Abandoned
- 1996-06-03 JP JP8536809A patent/JPH11506588A/ja active Pending
- 1996-06-03 KR KR1019970708673A patent/KR19990022194A/ko not_active Withdrawn
- 1996-06-03 EP EP96918073A patent/EP0870376A4/en not_active Withdrawn
- 1996-06-03 CA CA002229026A patent/CA2229026A1/en not_active Abandoned
- 1996-06-03 WO PCT/US1996/008851 patent/WO1996038945A1/en not_active Application Discontinuation
-
1997
- 1997-11-25 NO NO975418A patent/NO975418L/no not_active Application Discontinuation
-
1999
- 1999-09-24 US US09/404,794 patent/US6802013B1/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| CA2229026A1 (en) | 1996-12-05 |
| NO975418D0 (no) | 1997-11-25 |
| EP0870376A1 (en) | 1998-10-14 |
| US6011847A (en) | 2000-01-04 |
| EP0870376A4 (en) | 2000-06-21 |
| JPH11506588A (ja) | 1999-06-08 |
| AU6042496A (en) | 1996-12-18 |
| US6802013B1 (en) | 2004-10-05 |
| NO975418L (no) | 1998-02-02 |
| WO1996038945A1 (en) | 1996-12-05 |
| MX9709274A (es) | 1998-10-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR19990022194A (ko) | 암호 액세스 및 레이블링 시스템 | |
| US5369707A (en) | Secure network method and apparatus | |
| US6959086B2 (en) | Cryptographic key management scheme | |
| US9003177B2 (en) | Data security for digital data storage | |
| EP0976049B1 (en) | Method and apparatus for controlling access to encrypted data files in a computer system | |
| US20040101142A1 (en) | Method and system for an integrated protection system of data distributed processing in computer networks and system for carrying out said method | |
| EP0002580B1 (en) | A process for the verification of cryptographic operational keys used in data communication networks | |
| US4218738A (en) | Method for authenticating the identity of a user of an information system | |
| EP0531784B1 (en) | Apparatus for encryption and decryption using split key | |
| EP0002578A1 (en) | Data communication method | |
| US6986044B1 (en) | Method for group unit encryption/decryption, and method and apparatus for writing signature | |
| Fray et al. | Intrusion-tolerance using fine-grain fragmentation-scattering | |
| US7454782B2 (en) | Method and system for camouflaging access-controlled data | |
| EP0773490A1 (en) | Security system for protecting information stored in storage media | |
| JP3453842B2 (ja) | セキュアシステム | |
| JPH10214233A (ja) | 情報処理装置、情報処理システム、情報処理方法、プログラム記憶装置、及び鍵の判定方法及び判定装置 | |
| CN115550058B (zh) | 一种共享式文件透明加密方法及系统 | |
| WO1999010859A2 (en) | Steganographic encryption system for secure data | |
| US6882730B1 (en) | Method for secure distribution and configuration of asymmetric keying material into semiconductor devices | |
| JPH02110491A (ja) | 記憶装置 | |
| JP4350961B2 (ja) | データ処理装置 | |
| AU5500200A (en) | Cryptographic access and labeling system | |
| JP4302076B2 (ja) | 鍵判定装置 | |
| MXPA97009274A (en) | System of cryographic and etiquet access | |
| KR20250001806A (ko) | 블록체인기반 비공개 선행 기술 증명 시스템 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0105 | International application |
Patent event date: 19971201 Patent event code: PA01051R01D Comment text: International Patent Application |
|
| PG1501 | Laying open of application | ||
| PC1203 | Withdrawal of no request for examination | ||
| WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |