KR20130045333A - 비대칭 카오스 암호화 - Google Patents

비대칭 카오스 암호화 Download PDF

Info

Publication number
KR20130045333A
KR20130045333A KR1020137001366A KR20137001366A KR20130045333A KR 20130045333 A KR20130045333 A KR 20130045333A KR 1020137001366 A KR1020137001366 A KR 1020137001366A KR 20137001366 A KR20137001366 A KR 20137001366A KR 20130045333 A KR20130045333 A KR 20130045333A
Authority
KR
South Korea
Prior art keywords
determined
encrypted
logistic map
determining
block
Prior art date
Application number
KR1020137001366A
Other languages
English (en)
Other versions
KR101502930B1 (ko
Inventor
씽위안 왕
Original Assignee
엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 filed Critical 엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Publication of KR20130045333A publication Critical patent/KR20130045333A/ko
Application granted granted Critical
Publication of KR101502930B1 publication Critical patent/KR101502930B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/001Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Storage Device Security (AREA)

Abstract

비대칭 카오스 암호화에 대한 구현예 및 기법이 일반적으로 개시된다. 비대칭 암호화를 위한 하나의 개시된 방법은 하나 이상의 체비셰프 다항식에 적어도 부분적으로 기초하여 암호문 제어 블록을 데이터로부터 결정하는 단계를 포함한다. 방법은 또한 데이터의 적어도 일부를 암호화된 암호문 블록으로 암호화하는 단계를 포함하며, 암호화된 암호문 블록은 로지스틱 매핑에 적어도 부분적으로 기초하고, 최종 암호문은 암호화된 암호문 블록 및 암호문 제어 블록을 포함한다.

Description

비대칭 카오스 암호화{ASYMMETRICAL CHAOTIC ENCRYPTION}
카오스 역학(chaotic dynamics) 기법은 암호화에 이용되어왔다. 이러한 카오스 역학 기법은 초기 조건에 대한 민감한 의존성, 에르고딕성(ergodicity) 및/또는 무한에 가까운 순환주기와 같은 일부 특징들을 가진다. 그러한 카오스 역학 기법은 특정 파라미터의 제어 하에서 의사 랜덤 수를 생성하는데 이용될 수 있다. 따라서, 카오스 암호학은 폭넓은 관심을 받아왔으며, 많은 학자들이 최근에 그들의 카오스 암호 체계를 제안해왔다. 그러나, 이러한 카오스 역학 기법에 기초한 일부 카오스 암호 체계는 비교적 긴 암호화 시간을 가질 수 있고/거나 초기 평문 파일에 비해 수배는 길 수 있는 결과 암호문을 생성할 수 있다.
비대칭 암호화 프로세스의 일 실시예에서, 데이터로부터 암호문 제어 블록이 결정될 수 있다. 그러한 암호문 제어 블록은 하나 이상의 체비셰프 다항식(Chebyshev polynomials)에 적어도 부분적으로 기초하여 결정될 수 있다. 그러한 체비셰프 다항식은 공개 키(public key) 및 변수 파라미터(variable parameter)와 연관된 랜덤으로 생성된 정수 초기 값에 적어도 부분적으로 기초할 수 있다. 추가적으로, 데이터의 적어도 일부는 로지스틱 매핑(Logistic Mapping)에 적어도 부분적으로 기초하여 암호화된 암호문 블록으로 암호화될 수 있다. 그러한 비대칭 암호화 프로세스는 하나 이상의 암호화된 암호문 블록 및 하나 이상의 암호문 제어 블록을 포함할 수 있는 최종 암호문을 생성하는 데에 활용될 수 있다.
전술한 요약은 예시적인 것일 뿐이고, 어떤 방식으로든 제한을 의도한 것은 아니다. 상술한 예시적인 태양, 실시예 및 특징들에 더하여, 추가의 태양, 실시예 및 특징들은 도면과 이하의 상세한 설명을 참조함으로써 분명하게 될 것이다.
도 1은 본 개시의 적어도 일부 실시예에 따라 배열되는 비대칭 카오스 암호화를 위한 예시적인 프로세스를 도시하고;
도 2는 본 개시의 적어도 일부 실시예에 따라 배열되는 비대칭 카오스 암호화를 위한 다른 예시적인 프로세스를 도시하고;
도 3은 본 개시의 적어도 일부 실시예에 따라 배열되는 비대칭 카오스 복호화를 위한 예시적인 프로세스를 도시하고;
도 4는 본 개시의 적어도 일부 실시예에 따라 배열되는 예시적인 컴퓨터 프로그램 제품을 도시하며;
도 5는 본 개시에 따라 배열된 컴퓨팅 장치의 예시적인 실시예의 블록도이다.
이하의 설명은 구체적인 세부 사항과 함께 다양한 예시를 제시하여 청구된 대상의 전반적인 이해를 제공한다. 그러나, 청구된 대상은 여기에서 개시된 구체적인 세부 사항 중 일부 또는 그 이상이 없이도 실시될 수 있다는 것이 당업자에 의해 이해될 것이다. 또한, 일부 환경에서, 잘 알려진 방법, 절차, 시스템, 컴포넌트 및/또는 회로는 청구된 대상을 불필요하게 모호하게 하는 것을 피하기 위하여 상세하게 설명하지 않았다. 이하의 상세한 설명에서, 여기의 일부를 구성하는 첨부 도면에 대한 참조가 이루어진다. 도면에서, 유사한 부호는, 문맥에서 다른 지시가 없다면, 일반적으로 유사한 구성요소를 식별한다. 상세한 설명, 도면, 및 청구항에서 기술된 예시적인 실시예들은 제한하는 것으로 의미되지 않는다. 여기에 제시된 대상의 범위와 사상을 벗어나지 않고, 다른 실시예가 이용될 수 있고, 다른 변형이 이루어질 수 있다. 여기에서 일반적으로 기술되고 도면에서 도시된 바와 같은 본 개시의 태양들이 다양한 다른 구성으로 배열, 대체, 조합, 분리, 및 설계될 수 있음과, 이 모두가 여기에서 명확히 고려됨이 쉽게 이해될 것이다.
본 개시는, 그 중에서도, 비대칭 카오스 암호화에 관한 방법, 기기 및 시스템에 관련된다.
체비셰프 다항식 및 로지스틱 매핑에 기반한 보안 통신을 위한 비대칭 카오스 암호화 알고리즘이 이하에서 기술된다. 여기에서 사용되는 "비대칭"이라는 용어는 공개 키 및 개인 키(private key)가 비대칭이고 동일하지 않은 프로세스를 지칭할 수 있다. 예컨대, 비대칭 키 암호화 기법은 누구든지 공개 키를 이용하여 메시지를 암호화할 수 있으나 쌍을 이루는 개인 키의 소유자 만이 복호화할 수 있도록 설계될 수 있다. 여기에서 사용된 "카오스"라는 용어는 초기 조건에 매우 민감할 수 있는 동적 시스템을 포함하는 프로세스를 지칭할 수 있다.
일 예시에서, 이러한 비대칭 카오스 암호화 알고리즘은 암호화 연산을 위하여 공개 키를 이용할 수 있다. 추가적으로 또는 대안적으로, 그러한 비대칭 카오스 암호화 알고리즘은 복호화 연산을 위한 개인 키를 포함할 수 있다. 추가적으로 또는 대안적으로, 그러한 비대칭 카오스 암호화 알고리즘은 키 암호화 및 블록 암호화의 혼합을 포함할 수 있다.
도 1은 본 개시의 적어도 일부 실시예에 따라 배열되는 비대칭 암호화를 위한 예시적인 프로세스를 도시한다. 도시된 예시에서, 프로세스(100) 및 여기에서 개시된 기타 프로세스는 하드웨어, 소프트웨어 및/또는 펌웨어에 의해 수행될 수 있는 처리 단계, 기능적인 동작, 이벤트 및/또는 작용 등으로 설명될 수 있는 다양한 기능 블록 또는 작용을 제시한다. 당업자는 본 개시에 비추어, 도 1에 도시된 기능 블록에 대한 많은 대안이 다양한 구현으로 실시될 수 있다는 것을 인식할 것이다. 예컨대, 프로세스(100)는, 도 1에서 도시된 바와 같이, 특정한 순서의 블록 또는 작용을 포함하지만, 이러한 블록 또는 작용이 나타내는 순서는 청구된 대상을 임의의 특정한 순서로 반드시 제한하는 것은 아니다. 마찬가지로, 청구된 대상의 범위를 벗어나지 않으면서, 도 1에 도시되지 않은 중간의 작용들 및/또는 도 1에 도시되지 않은 추가적인 작용들이 사용될 수 있고/있거나 도 1에 도시된 작용들 중 일부가 제거될 수 있다. 프로세스(100)는 블록(102 및/또는 104)으로 도시되는 바와 같은 동작 중 하나 이상을 포함할 수 있다.
도시된 바와 같이, 비대칭 암호화를 위한 프로세스(100)가 구현될 수 있다. 프로세스는 "암호문 제어 블록을 결정"하는 동작(102)에서 시작할 수 있으며, 여기서 암호문 제어 블록이 결정될 수 있다. 예컨대, 암호문 제어 블록이 데이터(예컨대, 평문 파일)로부터 결정될 수 있으며 하나 이상의 체비셰프 다항식에 적어도 부분적으로 기초할 수 있다. 암호문 제어 블록 및 체비셰프 다항식의 예시적인 구현예에 관한 추가적인 세부 사항은 이하 도 2의 논의에서 찾을 수 있다. 도 2와 함께 더 세부적으로 논의될 바와 같이, 하나 이상의 체비셰프 다항식은 공개 키 및 변수 파라미터와 연관된 랜덤으로 생성된 정수 초기 값에 적어도 부분적으로 기초할 수 있다.
프로세스는 동작(102)에서 "데이터 중 적어도 일부를 암호화된 암호문 블록으로 암호화"하는 동작(104)으로 계속될 수 있으며, 여기서, 데이터 중 적어도 일부가 암호화된 암호문 블록으로 암호화된다. 예컨대, 데이터 중 적어도 일부는 로지스틱 매핑에 적어도 부분적으로 기초하여 암호화된 암호문 블록으로 암호화될 수 있다. 암호화된 암호문 블록 및 로지스틱 매핑의 예시적인 구현예에 관한 추가적인 세부 사항은 이하 도 2의 논의에서 찾을 수 있다.
일 예시에서, 프로세스(100)는 하나 이상의 암호화된 암호문 블록 및 하나 이상의 암호문 제어 블록을 포함하는 최종 암호문을 생성하는 데 이용될 수 있다. 예컨대, 변수 파라미터가 수정될 수 있으며, 수정된 변수 파라미터에 적어도 부분적으로 기초하여 하나 이상의 후속의 체비셰프 다항식 및 후속의 최종 암호화된 암호문 블록이 결정될 수 있다. 일 예시에서, 수정된 변수 파라미터는 암호화된 암호문 블록의 형성 중에 수행되는 로지스틱 매핑에 적어도 부분적으로 기초하여 수정될 수 있다. 변수 파라미터를 수정하는 것에 대한 한번 이상의 반복(iteration)이 모든 데이터가 암호화되는 때까지 수행될 수 있다.
도 2는 본 개시의 적어도 일부 실시예에 따라 배열되는 비대칭 카오스 암호화를 위한 다른 예시적인 프로세스를 도시한다. 프로세스(200)는 블록(202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 224, 226 및/또는 228)에 의해 도시된 바와 같은 동작 중 하나 이상을 포함할 수 있다.
프로세스(200)는 도 1의 프로세스(100)의 구현예 중 하나 이상의 예시를 제공할 수 있다. 도시된 바와 같이, 비대칭 카오스 암호화를 위한 프로세스(200)가 구현될 수 있다. 프로세스는 "공개 키를 결정"하는 동작(202)에서 시작할 수 있으며, 여기서 공개 키가 결정될 수 있다. 예컨대, 공개 키는 개인 키에 적어도 부분적으로 기초하여 결정될 수 있다.
일 예시에서, 공개 키 (x, PK)는 개인 키 SK에 적어도 부분적으로 기초한 체비셰프 다항식에 적어도 부분적으로 기초하여 결정될 수 있다. 본 예시에서, 랜덤으로 생성된 정수 SK(SK
Figure pct00001
1) 및 랜덤으로 생성된 정수 x(x
Figure pct00002
Fp, x
Figure pct00003
I)는 다음을 연산하는 데 이용될 수 있다.
PK =TSK (x)(mod P)
상기 계산에서, Fp는 유한 필드(finite field)를 나타낼 수 있고, Tsk는 SK 차수(degree)의 체비셰프 다항식을 나타낼 수 있고, P는 소수(prime number)를 나타낼 수 있다. 유한 필드 Fp는 체비셰프 다항식 Tsk을 이러한 유한 필드 Fp로 확장하는 데 활용될 수 있다. 소수 P는 체비셰프 다항식 TSK 및 공개 키 (x, PK)를 연산하는데 사용될 수 있는, 비교적 큰 소수일 수 있다. 평문이 암호화되는 동안, 암호화 키로서 이용되는 공개 키 (x, PK)는 결과 암호문을 복호화하지 않을 수 있으므로, 프로세스(200)에 의해 나타내어진 비대칭 카오스 암호화 알고리즘은 복호화 연산을 위하여 개인 키 SK를 포함할 수 있다.
프로세스는 동작(202)에서 "하나 이상의 체비셰프 다항식을 결정"하는 동작(204)으로 계속될 수 있으며, 여기서 하나 이상의 체비셰프 다항식이 결정될 수 있다. 예컨대, R0 차수의 하나 이상의 체비셰프 다항식(TR0)이 결정될 수 있다.
일 예시에서, R0 차수의 하나 이상의 체비셰프 다항식(TR0)은 결정된 공개 키 (x, PK)에 적어도 부분적으로 기초하여 결정될 수 있다. 이러한 예시에서, (변수 파라미터 Ri에 대한 초기 값으로서 고려될 수 있는) 랜덤으로 생성된 정수 R0 및 결정된 공개 키 (x, PK)는 제1 체비셰프 다항식(TR0(PK) mod P) 및 제2 체비셰프 다항식(TR0(x) mod P)을 연산하는 데에 활용될 수 있다. 상기 계산에서, R0는 랜덤으로 생성된 정수를 나타낼 수 있으며, 그러한 랜덤으로 생성된 정수는 예컨대, 10,000보다 크게 정해질 수 있다.
프로세스는 동작(204)에서 "암호문 제어 블록을 결정"하는 동작(206)으로 계속될 수 있으며, 여기서 암호문 제어 블록이 결정될 수 있다. 이하에서 더 상세히 설명될 바와 같이, 예컨대, 제1 암호문 제어 블록 CC0이 결정된 공개 키 (x, PK) 및/또는 결정된 R0 차수의 하나 이상의 체비셰프 다항식에 적어도 부분적으로 기초하여 결정될 수 있다.
일 예시에서, 평문 파일은 하나 이상의 서브시퀀스(subsequence)로 분할될 수 있다. 그러한 서브시퀀스는 L 바이트의 지정된 길이를 가질 수 있다. 도시된 예시에서, L에 대하여 값 8이 사용되었으나, 다른 값이 이용될 수 있다. 따라서, 평문 파일이 p0 p1 ... pL-1 pL ... p2L-1 p2L ...로 표현될 수 있는 경우, 평문 파일은 하나 이상의 서브시퀀스로 분할될 수 있다. 예컨대, 평문 파일은 제1 서브시퀀스 ω0(p0 p1 ... pL-1), 제2 서브시퀀스 ω1(pL ... p2L-1) 등으로 분할될 수 있다.
추가적으로, 개별 서브시퀀스의 바이트들은 이진 평문 메시지 블록을 형성하도록 조합될 수 있다. 예컨대, pj는 주어진 서브시퀀스 ω0의 j번째 바이트의 값을 나타낼 수 있다. L에 대하여 값 8이 사용된 예시에서, 평문(pj + pj+1 +...+ pj+7)의 8개 바이트는 이진 평문 메시지 블록 Pj를 형성하도록 조합될 수 있다.
추가적으로, 블록 수(M)가 결정될 수 있다. 예컨대, 블록 수 M는 암호화될 평문 파일의 길이 및 서브시퀀스 ω0의 길이 L에 적어도 부분적으로 기초하여 결정될 수 있다. L에 대하여 값 8이 사용된 예시에서, 블록 수 M = (l/8)+1이고, 여기서 l은 암호화될 평문 파일의 길이를 나타낼 수 있다.
추가적으로, 암호문 제어 파라미터(m0)가 결정될 수 있다. 예컨대, 암호문 제어 파라미터 m0가 블록 수 M 및/또는 랜덤으로 생성된 정수 R0에 적어도 부분적으로 기초하여 결정될 수 있다. 일 예시에서, 암호문 제어 파라미터는 m0 = R0 (mod M)이다. 그러한 암호문 제어 파라미터 m0는 로지스틱 맵 초기 값 k0의 계산을 제어하는 데 이용될 수 있다. 로지스틱 매핑의 동작 및 로지스틱 맵 초기 값 k0는 이하에서 동작(208)에 관하여 더 상세히 논의될 것이다.
위에서 논의된 바와 같이, 제1 암호문 제어 블록 CC0은 결정된 공개 키 (x, PK) 및/또는 결정된 R0 차수의 하나 이상의 체비셰프 다항식에 적어도 부분적으로 기초하여 결정될 수 있다. 예컨대, 결정된 공개 키 (x, PK) 및/또는 결정된 R0 차수의 하나 이상의 체비셰프 다항식은 다음과 같이 제1 암호문 제어 블록 CC0을 연산하는데 활용될 수 있다.
Figure pct00004
프로세스는 동작(206)에서 "로지스틱 맵 값을 결정"하는 동작(208)으로 계속될 수 있으며, 여기서 로지스틱 맵 값이 결정될 수 있다. 여기에서 사용된 "로지스틱 맵"이라는 용어는 비선형 동적(dynamical) 방정식을 통하여 복잡한 카오스 거동(chaotic behavior)을 모방할 수 있는 2차의 다항식 매핑의 유형을 지칭할 수 있다. 예컨대, 로지스틱 맵 초기 값 k0(예컨대, 로지스틱 매핑으로부터 계산되는 초기 값)은 결정된 암호문 제어 파라미터 m0에 적어도 부분적으로 기초하여 결정될 수 있다. (예컨대, 암호문 제어 파라미터 m0 자체는 위에서 더 상세히 논의된 바와 같이, 변수 파라미터 R0에 적어도 부분적으로 기초할 수 있다.) 일 예시에서, 암호문 제어 파라미터 m0는 다음과 같이, 로지스틱 맵 초기 값 k0을 연산하는데 이용될 수 있다.
k0 = m0/P (m0 < P), P/ m0 (m0 > P), 0.1666666667 (m0 = P)
로지스틱 맵 초기 값 k0는 로지스틱 맵의 후속의 반복에서 이용될 수 있다. 그러한 로지스틱 맵의 후속의 반복은, 아래에서 동작(218)에서 더 상세히 설명되는 바와 같이, 하나 이상의 추가적인 평문 블록을 암호화하는 데에 이용될 수 있다. 예컨대, 후속의 반복에서, 로지스틱 맵 반복 값 ω(예컨대, 동작(218)에 의해 나타내어진 반복과 연관된 로지스틱 매핑으로부터 결정된 후속 값)은 결정된 로지스틱 맵 초기 값 k0에 적어도 부분적으로 기초하여 결정될 수 있다. 일 예시에서, 로지스틱 맵 초기 값 k0은 다음과 같이 로지스틱 맵 반복 값 ω을 연산하는데 이용될 수 있다.
ω =τN0 (k0)
상기 계산에서, 로지스틱 맵 반복 값 ω은 N0 반복 이후에 로지스틱 맵 초기 값 k0의 값을 나타낼 수 있다. 또한, 상기 계산에서, τ는 로지스틱 맵 함수 τ(x)를 나타낼 수 있다. 로지스틱 맵 함수 τ(x)는 다음과 같이, 의사 랜덤 시퀀스를 생성하는데 이용될 수 있다.
τ(x) = μx(1-x), x
Figure pct00005
[0,1], μ
Figure pct00006
[3.5699456,4]
프로세스는 동작(208)에서 "비밀 키를 결정"하는 동작(210)으로 계속될 수 있으며, 여기서 비밀 키가 결정될 수 있다. 예컨대, 비밀 키(Aj)는 로지스틱 맵 함수 τ(x) 및/또는 로지스틱 맵 반복 값 ω(예컨대, 로지스틱 맵 반복 값 ω은 N0 반복 이후에 로지스틱 맵 초기 값 k0의 값을 나타낼 수 있음)에 적어도 부분적으로 기초하여 결정될 수 있다.
일 예시에서, 이진 시퀀스는 일차원 로지스틱 맵 함수 τ(x)에 기초하여 생성될 수 있다. 예컨대, 로지스틱 맵 함수 τ(x)는 수 차례(예컨대, 70회) 반복되어 이진 시퀀스(예컨대, Bi 1 Bi 2 Bi 3 ... Bi 64 Bi 65 ... Bi 69 Bi 70)를 획득할 수 있다. 그러한 이진 시퀀스 (예컨대, Bi 1 Bi 2 Bi 3 ... Bi 64 Bi 65 ... Bi 69 Bi 70)는 로지스틱 맵 함수 τ(x)의 각각의 반복에서 선택된 i번째 비트를 추가함으로써 형성될 수 있다.
비밀 키(Aj) 및 시프트 정수(shift integer)(Dj)는 이진 시퀀스(예컨대, Bi 1 Bi 2 Bi 3 ... Bi 64 Bi 65 ... Bi 69 Bi 70)에 적어도 부분적으로 기초하여 결정될 수 있다. 일 예시에서, 이진 시퀀스(예컨대, Bi 1 Bi 2 Bi 3 ... Bi 64 Bi 65 ... Bi 69 Bi 70)는 부분들로 분할될 수 있다. 이진 시퀀스(예컨대, Bi 1 Bi 2 Bi 3 ... Bi 64 Bi 65 ... Bi 69 Bi 70)의 그러한 한 부분은 다음과 같이 비밀 키 Aj를 결정하는 데 이용될 수 있는, 첫번째 64 비트(또는 일부 다른 적절한 수의 비트)일 수 있다.
Aj = Bi 1 Bi 2 Bi 3 ... Bi 64
이진 시퀀스(예컨대, Bi 1 Bi 2 Bi 3 ... Bi 64 Bi 65 ... Bi 69 Bi 70)의 그러한 다른 부분은 부분 A'j = Bi 65 ... Bi 69 Bi 70을 결정하는데 이용될 수 있는 마지막 6 비트(또는 일부 다른 적절한 수의 비트)일 수 있다. 부분 A'j은 64 비트보다 작을 수 있고 이진 시퀀스(예컨대, Bi 1 Bi 2 Bi 3 ... Bi 64 Bi 65 ... Bi 69 Bi 70)의 그러한 부분의 십진의 형태를 나타낼 수 있는 시프트 정수 Dj로 전환될 수 있다.
프로세스는 동작(210)에서 "암호화된 보통의 평문 블록을 결정"하는 동작(212)으로 계속될 수 있으며, 여기서 암호화된 보통의(ordinary) 평문 블록이 결정될 수 있다. 예컨대, 암호화된 보통의 평문 블록(Cj)은 시프트 정수(Dj) 및/또는 비밀 키(Aj)에 적어도 부분적으로 기초하여 결정될 수 있다.
일 예시에서, 이진 평문 메시지 블록(Pj)이 시프트 정수(Dj) 비트에 기초하여 (예컨대, 왼쪽 순환 시프트(left cycle shifting)로) 시프트되어 새로운 시프트된 메시지 블록(P'j)을 획득할 수 있다. 비밀 키(Aj)는 시프트된 메시지 블록(P'j)에 기초하여 다음과 같이 암호화된 보통의 평문 블록(Cj)을 연산하는 데 이용될 수 있다.
Cj = P'j
Figure pct00007
Aj
상기 계산에서,
Figure pct00008
는 XOR형 연산을 나타낼 수 있다. 결과적으로, 이진 평문 메시지 블록(Pj)의 암호화된 보통의 평문 블록(Cj)이 획득될 수 있다.
프로세스는 동작(212)에서 "최종 암호화된 암호문 블록을 결정"하는 동작(214)으로 계속될 수 있으며, 여기서 최종 암호화된 암호문 블록이 결정될 수 있다. 예컨대, 최종 암호화된 암호문 블록(C"j)은 시프트 정수(Dj) 및/또는 비밀 키(Aj)에 적어도 부분적으로 기초하여 결정될 수 있다.
일 예시에서, 암호화된 보통의 평문 블록(Cj)은 하나 이상의 파티션(예컨대, 8비트 파티션)으로 분할될 수 있다. 예컨대, 암호화된 보통의 평문 블록(Cj)은 첫번째 암호화된 파티션(c0 c1 ... cL-1), 두번째 암호화된 파티션(cL ... c2L-1) 등으로 분할될 수 있다. 따라서, 대응하는 평문 서브시퀀스(pj + pj+1 +...+ pj+7)의 암호화된 파티션 (cj + cj +1 +...+ cj +7)이 획득될 수 있다. 이후, 암호화된 보통의 평문 블록(Cj)의 모든 암호화된 파티션 부분이 다음과 같이 함수 매핑으로 연산될 수 있다.
f(Cj) = cj + cj+1 +...+ cj+7
상기 계산에서, 함수 매핑 f(Cj)은 암호화된 보통의 평문 블록(Cj)을 통합시키는 데 이용될 수 있으며, 이는 정보 저장을 하게 할 수 있다. 함수 매핑 이후에, 다음의 연산이 수행될 수 있다.
D* = Dj + f(Cj) mod 64,
C'j =F(Cj, Dj)
Figure pct00009
Aj,
D* =Dj +f(C'j) mod 64,
C"j =F(C'j, Dj)
Figure pct00010
Aj.
상기 계산에서, 암호화된 보통의 평문 블록(Cj)은 중간 암호화된 보통의 평문 블록(C'j)의 계산 중에 시프트 정수(Dj) 비트에 기초하여 (예컨대, 왼쪽 순환 시프트로) 시프트될 수 있으며, 이는 결과적으로 최종 암호화된 암호문 블록(C"j)의 계산 중에 시프트 정수(Dj) 비트에 기초하여 (예컨대, 왼쪽 순환 시프트로) 시프트될 수 있다. 유사하게, 암호화된 보통의 평문 블록(Cj)은 중간 암호화된 보통의 평문 블록(C'j)의 계산 중에 비밀 키(Aj)에 기초하여 암호화될 수 있고, 이는 결과적으로 최종 암호화된 암호문 블록(C"j)의 계산 중에 비밀 키(Aj)에 기초하여 암호화될 수 있다. 상기 계산에서, D*는 시프트 정수(Dj) 변수의 변환과 연관되는 변수를 나타낼 수 있다.
추가적으로, 상기 계산에서, 수정된 시프트 정수(D*)가 결정될 수 있다. 예컨대, 수정된 시프트 정수(D*)는 시프트 정수(Dj) 및 중간 암호화된 보통의 평문 블록(C'j)의 함수 매핑에 적어도 부분적으로 기초하여 결정될 수 있다. 그러한 수정된 시프트 정수(D*)는 로지스틱 맵의 반복 횟수를 제어하는 데 이용될 수 있다.
프로세스는 동작(214)에서 "주어진 수의 평문 블록이 암호화되었는지를 결정"하는 동작(216)으로 계속될 수 있고, 여기서 주어진 수의 평문 블록이 암호화되었는지에 대한 결정이 이루어질 수 있다. 주어진 수의 평문 블록(예컨대, mi-1 (i > 2))이 암호화되었다고 결정되지 않는 경우, 프로세스는 동작(216)에서 "로지스틱 맵 반복 값을 갱신"하는 동작(218)으로 계속될 수 있으며, 여기서 로지스틱 맵 반복 값이 갱신될 수 있다. 예컨대, 로지스틱 맵 반복 값 ω은 다음과 같이 갱신될 수 있다.
ω=τD*+70(ki)
상기 계산에서, 갱신된 로지스틱 맵 반복 값 ω은 현재 반복과 연관된 로지스틱 맵 값 ki 및/또는 수정된 시프트 정수 D*(예컨대, 수정된 시프트 정수 D* 자체는, 위에서 더 상세히 논의된 바와 같이, 시프트 정수 Dj에 적어도 부분적으로 기초할 수 있음)에 기초하여 갱신될 수 있다. 갱신된 로지스틱 맵 반복 값 ω은 로지스틱 맵의 후속의 반복에서 이용될 수 있다. 프로세스는 동작(218)에서 이전에 설명된 동작(208-216)으로 돌아가 계속될 수 있다. 동작(208-216)은 갱신된 로지스틱 맵 반복 값 ω으로 하나 이상의 추가적인 평문 블록을 처리하도록 진행될 수 있다.
주어진 수의 평문 블록(예컨대, mi-1 (i > 2))이 암호화되었다고 결정된 경우에, 프로세스는 동작(216)에서 "모든 평문 파일이 암호화되었는지를 결정"하는 동작(220)으로 계속될 수 있으며, 여기서 모든 평문 파일이 암호화되었는지 여부에 대한 결정이 이루어질 수 있다. 모든 평문 파일이 암호화되었다고 결정된 경우에, 프로세스(200)는 완료한다.
모든 평문 파일이 암호화되지 않았다고 결정되는 경우에, 프로세스(200)는 동작(220)에서 "하나 이상의 후속의 체비셰프 다항식을 결정"하는 동작(224)으로 진행할 수 있고, 여기서 하나 이상의 체비셰프 다항식이 결정될 수 있다. 예컨대, Ri 차수의 하나 이상의 후속의 체비셰프 다항식(TRi)이 수정된 변수 파라미터 Ri에 적어도 부분적으로 기초하여 결정될 수 있다. 일 예시에서, 수정된 변수 파라미터 Ri는 종전의 변수 파라미터 Ri-1(예컨대, 초기 변수 파라미터 R0) 및/또는 수정된 시프트 정수 D*(예컨대, 수정된 시프트 정수 D* 자체는, 위에서 더 상세히 논의된 바와 같이, 시프트 정수 Dj에 적어도 부분적으로 기초할 수 있음)에 적어도 부분적으로 기초하여 결정될 수 있다. 수정된 변수 파라미터 Ri는 종전의 변수 파라미터 Ri-1(예컨대, 초기 변수 파라미터 R0) 및 수정된 시프트 정수 D*에 기초하여 다음과 같이 결정될 수 있다:
Ri = Ri-1 + D*
상기 계산에서, 수정된 변수 파라미터 Ri는 랜덤 섭동(perturbation)의 대상일 수 있다. 일 예시에서, Ri 차수의 하나 이상의 후속의 체비셰프 다항식(TRi)은 결정된 공개 키 (x,PK)에 적어도 부분적으로 기초하여 결정될 수 있다. 본 예시에서, 수정된 변수 파라미터 Ri 및 결정된 공개 키 (x, PK)는 첫번째 후속의 체비셰프 다항식(TRi (PK) mod P) 및 두번째 후속의 체비셰프 다항식(TRi (x) mod P)을 연산하는 데에 이용될 수 있다.
프로세스는 동작(224)에서 "후속의 암호문 제어 블록을 결정"하는 동작(226)으로 계속될 수 있으며, 여기서 후속의 암호문 제어 블록이 결정될 수 있다. 예컨대, 후속의 암호문 제어 블록(CCi)은, 이하에서 더 상세히 설명될 바와 같이, 결정된 공개 키 (x, PK) 및/또는 결정된 Ri 차수의 하나 이상의 체비셰프 다항식에 적어도 부분적으로 기초하여 결정될 수 있다.
일 예시에서, 후속의 암호문 제어 파라미터(mi)가 결정될 수 있다. 예컨대, 후속의 암호문 제어 파라미터 mi는 블록 수 M 및/또는 수정된 변수 파라미터 Ri에 적어도 부분적으로 기초하여 결정될 수 있다. 일 예시에서, 후속의 암호문 제어 파라미터는 mi = (mi-1 + D*) mod M 이다. 그러한 후속의 암호문 제어 파라미터 mi는 로지스틱 맵 후속 값 ki의 계산을 제어하는 데 이용될 수 있다. 로지스틱 맵 후속 값 ki 및 로지스틱 매핑의 동작이 동작(228)에 대하여 아래에서 더 상세히 논의될 것이다.
위에서 논의된 바와 같이, 후속의 암호문 제어 블록 CCi은 결정된 공개 키 (x, PK) 및/또는 결정된 Ri 차수의 하나 이상의 체비셰프 다항식에 적어도 부분적으로 기초하여 결정될 수 있다. 예컨대, 결정된 공개 키 (x, PK) 및/또는 결정된 Ri 차수의 하나 이상의 체비셰프 다항식은 다음과 같이 후속의 암호문 제어 블록 CCi을 연산하는 데 이용될 수 있다.
Figure pct00011
프로세스는 동작(226)에서 "후속의 로지스틱 맵 값을 결정"하는 동작(228)으로 계속될 수 있으며, 여기서 후속의 로지스틱 맵 값이 결정될 수 있다. 예컨대, 로지스틱 맵 후속 값 ki은 결정된 후속의 암호문 제어 파라미터 mi에 적어도 부분적으로 기초하여 결정될 수 있다. 일 예시에서, 후속의 암호문 제어 파라미터 mi는 다음과 같이 로지스틱 맵 후속 값 ki을 연산하는 데 이용될 수 있다.
ki = mi/P (mi < P), P/ mi (mi > P), 0.1666666667 (mi = P)
로지스틱 맵 후속 값 ki은 로지스틱 맵의 후속의 반복에서 이용될 수 있다. 후속의 반복에서, 갱신된 로지스틱 맵 반복 값 ω이 결정된 로지스틱 맵 후속 값 ki에 적어도 부분적으로 기초하여 결정될 수 있다. 일 예시에서, 로지스틱 맵 후속 값 ki은 다음과 같이 갱신된 로지스틱 맵 반복 값 ω을 연산하는 데 활용될 수 있다.
ω =τN0 (ki)
프로세스는 동작(228)에서 앞서 설명된 동작(208-216)으로 돌아가서 계속될 수 있다. 동작(208-216)은 갱신된 로지스틱 맵 반복 값 ω으로 하나 이상의 추가적인 평문 블록을 처리하도록 진행될 수 있다.
동작에 있어서, 프로세스(200)는 체비셰프 다항식의 사용에 의해 생성된 암호문 제어 블록(CCi) 및 로지스틱 매핑의 사용에 의해 생성된 최종 암호화된 암호문 블록(C"j)을 이용하여 이진 평문 메시지 블록(Pj)을 암호화할 수 있다. 프로세스(200)는 암호문 제어 블록(CCi)을 이용하여 암호문 제어 파라미터(mi) 및 로지스틱 맵 값(ki)을 은폐할 수 있다. 마찬가지로, 프로세스(200)는 로지스틱 매핑에 의해 암호화된 최종 암호화된 암호문 블록(C"j)을 이용하여 평문 자체를 은폐할 수 있다. 암호문 제어 블록(CCi) 및 최종 암호화된 암호문 블록(C"j) 양자를 포함하는 최종 암호문에 대하여, 암호문 제어 블록(CCi) 및 최종 암호화된 암호문 블록(C"j) 양자의 구성은 사실상 유사할 수 있다(예컨대, 고유치(Eigen value)가 분명하지 않을 수 있음). 예컨대, 암호문 제어 블록(CCi)의 분포가 랜덤일 수 있으며, 이에 따라 프로세스(200)는 최종 암호화된 암호문 블록(C"j)의 연속성을 차단할 수 있다.
프로세스(200)는 최종 암호화된 암호문 블록(C"j)이 원본 평문 파일에 의존할 수 있는 방식으로 동작할 수 있다. 또한, 프로세스(200)는 동일한 초기 값에 의해 생성된 비밀 키(Aj)의 키 스트림이 동일하지 않은 방식으로 동작할 수 있다. 프로세스(200)는 유한 필드(Fp)로 확장되는 공개 키 (x, PK)의 생성을, 비밀 키(Aj)의 키 스트림을 생성하는 초기 값을 연속적으로 변경하도록 평문 파일에 의존할 수 있는, 상이한 비밀 키(Aj)의 키 스트림의 생성과 조합하도록 동작할 수 있다. 또한, 비밀 키(Aj)의 초기 키 값은 암호화 측이나 복호화 측의 사용자에게는 드러나지 않고 암호화 및 복호화 절차에서만 드러나, 정보의 은폐 성능을 향상시킬 수 있다.
또한, 프로세스(200)는 로지스틱 매핑에 의해 생성된 비밀 키(Aj)가 이진 평문 메시지 블록(Pj)을 암호화하도록 이용되면 통계적인 특성이 사라지거나 감소하고, 그러한 로지스틱 매핑의 카오스적인 무질서가 비밀 키(Aj)의 키 스트림의 차이를 꽤 분명하게 만들 수 있도록 로지스틱 매핑을 이용할 수 있다. 그러한 로지스틱 매핑의 카오스적인 무질서에 관하여, 비밀 키(Aj)의 키 스트림의 히스토그램은 비교적 균일할 수 있으며, 다른 키 스트림의 그것과는 상당히 상이할 수 있다. 이러한 두 가지 특징(즉, 통계적 특성의 감소와 카오스적 무질서)은 (암호문 제어 블록(CCi) 및 최종 암호화된 암호문 블록(C"j)을 포함하는) 최종 암호문을 복호화하기 어렵게 만들 수 있다. 예컨대, 프로세스(200)는 이러한 알고리즘의 특징으로서 랜덤 변수 섭동 파라미터(Ri)를 이용할 수 있다. 위에서 논의된 바와 같이, 랜덤 변수 섭동 파라미터(Ri)는 랜덤으로 생성될 수 있다. 추가적으로, 각각의 이진 평문 메시지 블록(Pj)은 다수 횟수로 암호화되어 최종 암호화된 암호문 블록(C"j)에 도달할 수 있다. 각각의 이진 평문 메시지 블록(Pj)의 다중 암호화와 랜덤 변수 섭동 파라미터(Ri)의 랜덤 생성을 이용하는 프로세스(200)의 조합은 일관된 길이가 아닌 최종 암호화된 암호문 블록(C"j)의 길이가 되게 할 수 있다. 따라서, 랜덤 변수 섭동 파라미터(Ri)의 값이 상이할 때마다, 개별의 최종 암호화된 암호문 블록(C"j)이 마찬가지로 상이할 수 있기 때문에, 프로세스(200)는 종래 암호학의 분석적인 방식에 대항할 수 있으며, 따라서 선택된 암호문 공격 또는 선택된 평문 공격을 통하여 (암호문 제어 블록(CCi) 및 최종 암호화된 암호문 블록(C"j)을 포함하는) 최종 암호문을 복호화하기에 어려울 수 있다.
도 3은 본 개시의 적어도 일부 실시예에 따라 배열되는 비대칭 카오스 복호화를 위한 예시적인 프로세스를 도시한다. 프로세스(300)는 블록(302, 304, 306 및/또는 308)에 의해 도시되는 바와 같은 동작 중 하나 이상을 포함할 수 있다.
도시된 바와 같이, 비대칭 카오스 복호화를 위한 프로세스(300)가 구현될 수 있다. 위에서 논의된 바와 같이, 프로세스(200)(도 2)는 암호문 제어 블록(CCi)을 이용하여 암호문 제어 파라미터(mi) 및 로지스틱 맵 값(ki)을 은폐할 수 있으며, 로지스틱 매핑에 의해 암호화된 최종 암호화된 암호문 블록(C"j)을 이용하여 평문 자체를 은폐할 수 있다. 유사하게, 프로세스(300)는 암호문 제어 블록(CCi)을 이용하여 암호문 제어 파라미터(mi) 및 로지스틱 맵 값(ki)을 검색(retrieve)할 수 있으며, 로지스틱 매핑에 의해 암호화된 최종 암호화된 암호문 블록(C"j)을 이용하여 평문 자체를 검색할 수 있다.
프로세스는 "암호문 제어 파라미터 및/또는 로지스틱 맵 값을 검색"하는 동작(302)에서 시작할 수 있으며, 여기서 암호문 제어 파라미터 및/또는 로지스틱 맵 값이 검색될 수 있다. 예컨대, 암호문 제어 파라미터(m0) 및/또는 로지스틱 맵 초기 값(k0)이 제1 암호문 제어 블록(CC0)으로부터 검색될 수 있다. 일 예시에서, 제1 암호문 제어 블록(CC0)이 개인 키(SK)를 이용하여 복호화되어 다음을 연산할 수 있다.
m0 = m0 ·TR0 (PK) mod P / TSK (TR0(x) mod P) mod P
k0 = m0/P (m0 < P), P/m0 (m0 > P), 0.1666666667 (m0 = P)
상기 계산에서, 암호문 제어 파라미터(m0) 및/또는 로지스틱 맵 초기 값(k0)은 제1 암호문 제어 블록(CC0)으로부터 검색될 수 있다. 검색된 암호문 제어 파라미터(m0) 및/또는 로지스틱 맵 초기 값(k0)은 후속의 암호문 제어 블록(CCi)을 복호화하도록 이용될 수 있다.
프로세스는 동작(302)에서 "평문 블록을 검색"하는 동작(304)으로 계속될 수 있으며, 여기서 평문 블록이 검색될 수 있다. 예컨대, 하나 이상의 최종 암호화된 암호문 블록(C"j)으로부터 평문 블록을 검색하는 것은 검색된 로지스틱 맵 초기 값(k0)에 적어도 부분적으로 기초할 수 있다. 위에서 논의된 바와 같이, 비밀 키(Aj)는 로지스틱 맵 함수(τ(x)) 및/또는 로지스틱 맵 반복 값(ω)(예컨대, 로지스틱 맵 반복 값(ω)은 N0 반복 후의 로지스틱 맵 초기 값(k0)의 값을 나타낼 수 있음)에 적어도 부분적으로 기초하여 결정될 수 있다. 암호화된 보통의 평문 블록(Cj)은 이진 평문 메시지 블록(Pj)을 획득하도록 시프트 정수(Dj) 및/또는 비밀 키(Aj)에 적어도 부분적으로 기초하여 복호화될 수 있다.
일 예시에서, 비밀 키(Aj)는 다음과 같이 암호화된 보통의 평문 블록(Cj)에 기초하여 시프트된 메시지 블록(P'j)을 연산하는데 이용될 수 있다.
P' = Cj
Figure pct00012
Aj
상기 계산에서, 이진 평문 메시지 블록(Pj)의 암호화된 보통의 평문 블록(Cj)은 시프트된 메시지 블록(P'j)을 연산하도록 복호화될 수 있다. 시프트된 메시지 블록(P'j)은 이진 평문 메시지 블록(Pj)을 획득하도록 시프트 정수(Dj) 비트에 기초하여 (예컨대, 오른쪽 순환 시프트(right cycle shifting)로) 언시프트(un-shift)될 수 있다. 로지스틱 매핑은 이후 m1 블록에 도달할 때까지 반복(예컨대, D* 회 반복)될 수 있다.
프로세스는 동작(304)에서 "주어진 수의 평문 블록이 복호화되었는지를 결정"하는 동작(306)으로 계속될 수 있으며, 여기서 주어진 수의 평문 블록이 복호화되었는지에 대한 결정이 이루어질 수 있다. 주어진 수의 평문 블록(예컨대, mi-1(i > 2))이 복호화되었다고 결정되지 않는 경우에, 프로세스는 동작(306)에서 앞서 설명된 "평문 블록을 검색"하는 동작(304)으로 돌아가 계속될 수 있다. 예컨대, 로지스틱 맵 값(ki)은 시프트 정수(Dj)에 적어도 부분적으로 기초하여 갱신될 수 있고 추가적인 평문 블록을 검색하도록 이용될 수 있다. 로지스틱 맵 값(ki)을 갱신하는 것에 대한 반복은 주어진 수의 평문 블록이 복호화될 때까지 수행될 수 있다.
주어진 수의 평문 블록(예컨대, mi-1 (i > 2))이 복호화되었다고 결정되는 경우에, 프로세스는 동작(306)에서 "모든 평문 파일이 복호화되었는지 결정"하는 동작(308)으로 계속될 수 있으며, 여기서 모든 평문 파일이 복호화되었는지에 대한 결정이 이루어질 수 있다. 모든 평문 파일이 복호화되었다고 결정된 경우에, 프로세스(300)는 완료한다.
모든 평문 파일이 복호화되었다고 결정되지 않는 경우에, 프로세스(300)는 동작(308)에서 앞서 설명된 "암호문 제어 파라미터 및/또는 로지스틱 맵 값을 검색"하는 동작(302)으로 돌아가 진행될 수 있다. 예컨대, 후속의 암호문 제어 블록으로부터의 후속의 로지스틱 맵 값의 검색에 대한 반복은 모든 평문 파일이 복호화되는 때까지 수행될 수 있다.
도 1, 도 2 및 도 3에 관하여, 프로세스(300)에 관한 특정 태양은 상세히 설명되지 않았다. 예컨대, 동작(302 및/또는 304)은 프로세스(200)의 전부 또는 일부를 이용하여 복호화 프로세스(300)를 수행할 수 있다는 점이 인식될 것이다. 복호화 프로세스(300)는 암호화 프로세스(200)와 유사한 방식으로 동작할 수 있다. 예컨대, 복호화 프로세스(300)는 암호화 프로세스(200)에 의해 수행되는 암호화를 반전(reverse)시키도록 동작(208, 210, 212, 214 및/또는 218)에서 설명되는 바와 동일 또는 유사한 동작의 반전을 이용할 수 있다.
동작에 있어서, 프로세스(100, 200 및/또는 300)는 임베디드 기기, 모바일 전화, 휴대용 장치 등에서 이용될 수 있다. 프로세스(100, 200 및/또는 300)는 개인 프라이버시를 보호하도록 이용되고/거나 보안 통신에 응용될 수 있다. 예컨대, 프로세스(100, 200 및/또는 300)는 이미지 파일의 개인 프라이버시를 보호하는데 이용될 수 있다. 또한, 프로세스(100, 200 및/또는 300)는 비교적 빠른 속도의 암호화 및 복호화로 인하여, 비교적 낮은 연산 성능을 지닐 수 있는 장치에서 이용될 수 있다.
도 4는 본 개시의 적어도 일부 실시예에 따라 배열되는 예시적인 컴퓨터 프로그램 제품(400)을 도시한다. 컴퓨터 프로그램 제품(400)은 신호 베어링 매체(signal bearing medium)(402)를 포함할 수 있다. 신호 베어링 매체(402)는 하나 이상의 프로세서에 의하여 실행되면, 컴퓨팅 장치로 하여금 도 1, 도 2 및/또는 도 3에 대하여 상술한 기능을 제공하는 것을 동작적으로 가능하게 할 수 있는 하나 이상의 머신 판독 가능 명령(404)을 포함할 수 있다. 따라서, 예컨대, 도 1, 도 2 및/또는 도 3에서 도시된 작용 중 하나 이상은 매체(402)에 의해 전달되는 명령(404)에 응답하여 착수될 수 있다.
일부 구현예에서, 신호 베어링 매체(402)는 하드 디스크 드라이브, CD(Compact Disk), DVD(Digital Video Disk), 디지털 테이프, 메모리 등과 같은 컴퓨터 판독 가능 매체(406)를 포함할 수 있으나, 이에 제한되지는 않는다. 일부 구현예에서, 신호 베어링 매체(402)는 메모리, 읽기/쓰기(R/W) CD, R/W DVD 등과 같은 기록 가능 매체(408)를 포함할 수 있으나, 이에 제한되지는 않는다. 일부 구현예에서, 신호 베어링 매체(402)는 디지털 및/또는 아날로그 통신 매체(예컨대, 광섬유 케이블, 도파관(waveguide), 유선 통신 링크, 무선 통신 링크 등)와 같은 통신 매체(410)를 포함할 수 있으나, 이에 제한되지는 않는다.
도 5는 본 개시에 따라 배열되는 컴퓨팅 장치(500)의 예시적인 실시예의 블록도이다. 일 예시적인 기초적인 구성(501)에서, 컴퓨팅 장치(500)는 하나 이상의 프로세서(510) 및 시스템 메모리(520)를 포함할 수 있다. 프로세서(510) 및 시스템 메모리(520) 사이의 통신을 위하여 메모리 버스(530)가 이용될 수 있다.
요구되는 구성에 따라, 프로세서(510)는 마이크로 프로세서(μP), 마이크로 컨트롤러(μC), 디지털 신호 프로세서(DSP), 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 프로세서(510)는 레벨 1 캐시(511), 레벨 2 캐시(512)와 같은 하나 이상의 레벨(level)의 캐시(cache), 프로세서 코어(513), 및 레지스터(514)를 포함할 수 있다. 프로세서 코어(513)는 산술 논리 연산장치(arithmetic logic unit; ALU), 부동 소수점 장치(floating point unit; FPU), 디지털 신호 처리 코어(DSP Core), 또는 그들의 임의의 조합을 포함할 수 있다. 메모리 컨트롤러(515)는 또한 프로세서(510)와 함께 사용될 수 있거나, 또는 일부 구현예에서 메모리 컨트롤러(515)는 프로세서(510)의 내적인 일부일 수 있다.
요구되는 구성에 따라, 시스템 메모리(520)는 (RAM과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비휘발성 메모리, 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 시스템 메모리(520)는 운영 체제(521), 하나 이상의 어플리케이션(application)(522), 및 프로그램 데이터(524)를 포함할 수 있다. 어플리케이션(522)은 도 1의 프로세스(100), 도 2의 프로세스(200) 및/또는 도 3의 프로세스(300)에 대하여 설명된 기능 블록, 작용 및/또는 동작을 포함하는 여기에서 기술된 바와 같은 기능, 작용 및/또는 동작을 수행하도록 배열될 수 있는 비대칭 카오스 암호화 알고리즘(523)을 포함할 수 있다. 프로그램 데이터(524)는 비대칭 카오스 암호화 알고리즘(523)과 이용하기 위한 평문 파일 데이터(525)를 포함할 수 있다. 일부 예시적인 실시예에서, 어플리케이션(522)은 평문 파일 데이터의 비대칭 카오스 암호화의 구현이 여기에서 설명되는 바와 같이 제공될 수 있도록 운영 체제(521) 상에서 프로그램 데이터(524)와 동작하도록 배열될 수 있다. 이러한 설명된 기초적인 구성은 파선(501) 내의 이러한 컴포넌트들에 의하여 도 5에서 도시된다.
컴퓨팅 장치(500)는 기초적인 구성(501) 및 임의의 요구되는 장치 및 인터페이스(interface) 사이의 통신을 용이하게 하도록 추가적인 특징 또는 기능, 및 추가적인 인터페이스를 가질 수 있다. 예를 들어, 버스/인터페이스 컨트롤러(540)는 저장 인터페이스 버스(541)를 통한 기초적인 구성(501) 및 하나 이상의 데이터 저장 장치(550) 사이의 통신을 용이하게 하도록 사용될 수 있다. 데이터 저장 장치(550)는 이동식 저장 장치(551), 고정식 저장 장치(552), 또는 그 조합일 수 있다. 이동식 저장 장치 및 고정식 저장 장치의 예를 몇 가지 들자면, 플렉서블 디스크 드라이브(flexible disk drive) 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다목적 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 고체 상태 드라이브(SSD), 및 테이프 드라이브 등을 포함한다. 예시적인 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈(program module), 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술에서 구현되는 휘발성 및 비휘발성의 이동식 및 고정식 매체를 포함할 수 있다.
시스템 메모리(520), 이동식 저장 장치(551) 및 고정식 저장 장치(552)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 요구되는 정보를 저장하도록 사용될 수 있고, 컴퓨팅 장치(500)에 의해 액세스될 수 있는 임의의 기타 매체를 포함하나, 이에 제한되지는 않는다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(500)의 일부일 수 있다.
컴퓨팅 장치(500)는 또한 버스/인터페이스 컨트롤러(542)를 통한 다양한 인터페이스 장치(예컨대, 출력 인터페이스, 주변 인터페이스, 및 통신 인터페이스)로부터 기초적인 구성(501)으로의 통신을 용이하게 하기 위한 인터페이스 버스(542)를 포함할 수 있다. 예시적인 출력 인터페이스(560)는 그래픽 처리 유닛(561) 및 오디오 처리 유닛(562)을 포함할 수 있으며, 이는 하나 이상의 A/V 포트(563)를 통하여 디스플레이 또는 스피커와 같은 다양한 외부 장치로 통신하도록 구성될 수 있다. 예시적인 주변 인터페이스(570)는 직렬 인터페이스 컨트롤러(571) 또는 병렬 인터페이스 컨트롤러(572)를 포함할 수 있으며, 이는 하나 이상의 I/O 포트(573)를 통하여 입력 장치(예컨대, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 기타 주변 장치(예컨대, 프린터, 스캐너 등)와 같은 외부 장치와 통신하도록 구성될 수 있다. 예시적인 통신 인터페이스(580)는 네트워크 컨트롤러(581)를 포함하며, 이는 하나 이상의 통신 포트(582)를 통한 네트워크 통신 상에서의 하나 이상의 다른 컴퓨팅 장치(590)와의 통신을 용이하게 하도록 배열될 수 있다. 통신 연결은 통신 매체의 일 예시이다. 통신 매체는 일반적으로 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 기타 수송 메커니즘(transport mechanism)과 같은, 변조된 데이터 신호에서의 기타 데이터에 의해 구현될 수 있고 임의의 정보 전달 매체를 포함할 수 있다. "변조된 데이터 신호"는 신호 내에 정보를 인코딩하는 방식으로 설정되거나 변경된 하나 이상의 특성을 갖는 신호일 수 있다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접 유선 연결(direct-wired connection)과 같은 유선 매체, 및 음향, 라디오 주파수(RF), 적외선(IR) 및 기타 무선 매체와 같은 무선 매체를 포함할 수 있으나, 이에 제한되지 않는다. 여기에서 사용된 컴퓨터 판독 가능 매체라는 용어는 저장 매체 및 통신 매체 둘 다를 포함할 수 있다.
컴퓨팅 장치(500)는 휴대 전화기, 개인 휴대용 단말기(PDA), 개인 미디어 재생 장치, 무선 웹워치 장치, 개인 헤드셋 장치, 특정 용도 장치, 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 소형 폼팩터 휴대용(모바일) 전자 장치의 일부로 구현될 수 있다. 컴퓨팅 장치(500)는 또한 랩탑 컴퓨터와 랩탑이 아닌 컴퓨터 구성 둘 다를 포함하는 개인 컴퓨터로 구현될 수 있다. 또한, 컴퓨팅 장치(500)는 무선 기지국 또는 기타 무선 시스템 또는 장치의 일부로서 구현될 수 있다.
전술한 상세한 설명의 일부분은 컴퓨터 메모리와 같은 컴퓨팅 시스템 메모리 내에 저장된 데이터 비트 또는 이진 디지털 신호 상에서의 동작의 알고리즘 또는 기호적 표현의 관점에서 제시된다. 이러한 알고리즘적인 설명 또는 표현은 데이터 프로세싱 분야의 당업자가 그들 연구의 실체를 다른 당업자에게 전달하기 위하여 사용하는 기법의 예시이다. 여기에서, 그리고 일반적으로, 알고리즘은 요구되는 결과로 이끄는 일관된 일련의 동작이나 유사한 프로세싱으로 간주된다. 이러한 맥락에서, 동작 또는 프로세싱은 물리량의 물리적 조작을 수반한다. 보통, 반드시 그러한 것은 아니지만, 그러한 양은 저장, 전송, 조합, 비교 또는 조작될 수 있는 전기 또는 자기 신호의 형태를 취할 수 있다. 주로 통상적인 사용의 이유에서, 비트, 데이터, 값, 요소, 심볼, 문자, 용어, 숫자 또는 번호 등으로 그러한 신호를 지칭하는 것이 때때로 편리함이 입증되었다. 그러나, 이들 및 유사한 용어 모두는 적절한 물리량과 연관될 것이고, 단지 편리한 라벨(label)임이 이해되어야 한다. 달리 구체적으로 언급하지 않는다면, 이하의 논의로부터 분명하게 될 바와 같이, 본 명세서의 논의에 걸쳐 "프로세싱", "컴퓨팅", "계산", "결정" 등과 같은 용어를 사용하는 것은, 컴퓨팅 장치의 메모리, 레지스터, 또는 기타 정보 저장 장치, 전송 장치, 또는 디스플레이 장치 내의 물리적인 전자적 또는 자기적 양으로 표현된 데이터를 조작하거나 변환하는 컴퓨팅 장치의 작용이나 프로세스와 관련 있음이 인정된다.
대상은 여기에서 기술된 특정 구현예로 범위가 제한되지 않는다. 예컨대, 일부 구현예는 장치 또는 장치의 조합 상에서 동작하도록 사용될 수 있는 것과 같은 하드웨어로 있을 수 있는 반면, 예컨대, 다른 구현예는 소프트웨어 및/또는 펌웨어로 있을 수 있다. 마찬가지로, 청구된 대상은 이러한 점에서 범위가 제한되지 않지만, 일부 구현예는 신호 베어링 매체, 저장 매체와 같은 하나 이상의 물품을 포함할 수 있다. CD-ROM, 컴퓨터 디스크, 플래시 메모리 등과 같은 이러한 저장 매체는, 예컨대, 컴퓨팅 시스템, 컴퓨팅 플랫폼 또는 기타 시스템과 같은 컴퓨팅 장치에 의하여 실행되면, 예컨대, 앞서 설명된 구현예 중 하나와 같은 청구된 대상에 따라 프로세서의 실행을 야기시킬 수 있는 명령을 저장할 수 있다. 하나의 가능성으로서, 컴퓨팅 장치는 하나 이상의 처리 유닛 또는 프로세서, 디스플레이, 키보드 및/또는 마우스와 같은 하나 이상의 입/출력 장치, 및 정적 랜덤 액세스 메모리, 동적 랜덤 액세스 메모리, 플래시 메모리 및/또는 하드 드라이브와 같은 하나 이상의 메모리를 포함할 수 있다.
시스템의 양상들의 하드웨어 및 소프트웨어 구현 사이에는 구별이 거의 없다; 하드웨어 또는 소프트웨어의 사용은 일반적으로 (그러나 어떤 맥락에서 하드웨어 및 소프트웨어 사이의 선택이 중요할 수 있다는 점에서 항상 그런 것은 아니지만) 비용 대비 효율의 트레이드오프(tradeoff)를 나타내는 설계상 선택(design choice)이다. 본 개시에서 기재된 프로세스 및/또는 시스템 및/또는 다른 기술들이 영향 받을 수 있는 다양한 수단(vehicles)(예를 들어, 하드웨어, 소프트웨어 및/또는 펌웨어)이 있으며, 선호되는 수단은 프로세스 및/또는 시스템 및/또는 다른 기술이 사용되는 맥락(context)에 따라 변경될 것이다. 예를 들어, 구현자가 속도 및 정확성이 가장 중요하다고 결정한다면, 구현자는 주로 하드웨어 및/또는 펌웨어 수단을 선택할 수 있으며, 유연성이 가장 중요하다면, 구현자는 주로 소프트웨어 구현을 선택할 수 있으며; 또는, 다른 대안으로서, 구현자는 하드웨어, 소프트웨어 및/또는 펌웨어의 어떤 결합을 선택할 수 있다.
전술한 상세한 설명은 블록도, 흐름도, 및/또는 예시를 통해 장치 및/또는 프로세스의 다양한 실시예를 설명하였다. 그러한 블록도, 흐름도, 및/또는 예시는 하나 이상의 기능 및/또는 동작을 포함하는 한, 당업자라면 그러한 블록도, 흐름도, 또는 예시 내의 각각의 기능 및/또는 동작은 하드웨어, 소프트웨어, 펌웨어, 또는 그들의 실질적으로 임의의 조합의 넓은 범위에 의해 개별적으로 및/또는 집합적으로 구현될 수 있다는 것이 이해할 것이다. 일 실시예에서, 본 개시에 기재된 대상의 몇몇 부분은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 또는 다른 집적의 형태를 통해 구현될 수 있다. 그러나, 당업자라면, 본 개시의 실시예의 일부 양상은, 하나 이상의 컴퓨터 상에 실행되는 하나 이상의 컴퓨터 프로그램(예를 들어, 하나 이상의 컴퓨터 시스템 상에 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램(예를 들어, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 이들의 실질적으로 임의의 조합으로써, 전체적으로 또는 부분적으로 균등하게 집적 회로에서 구현될 수 있다는 점, 소프트웨어 및/또는 펌웨어를 위한 코드의 작성 및/또는 회로의 설계는 본 개시에 비추어 당업자의 기술 범위 내라는 점을 알 수 있을 것이다. 또한, 당업자라면, 본 개시의 대상의 매커니즘(mechanism)들이 다양한 형태의 프로그램 제품으로 분배될 수 있음을 이해할 것이며, 본 개시의 대상의 예시는, 분배를 실제로 수행하는데 사용되는 신호 베어링 매체의 특정 유형과 무관하게 적용됨을 이해할 것이다. 신호 베어링 매체의 예는, 플렉서블 디스크, 하드 디스크 드라이브(HDD), CD, DVD, 디지털 테이프, 컴퓨터 메모리 등과 같은 기록 가능 유형의 매체, 디지털 및/또는 아날로그 통신 매체(예를 들어, 섬유 광학 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등)와 같은 전송 유형 매체를 포함할 수 있으나, 이에 제한되지는 않는다.
당업자라면, 여기서 설명된 형식으로 장치 및/또는 프로세스를 기술하고, 이후, 공학 실무를 사용하여 그러한 기술된 장치(예를 들면, 전송기, 수신기, 컴퓨팅 플랫폼, 컴퓨팅 장치 등) 및/또는 방법을 데이터 처리 시스템에 통합한다는 것은 당해 분야에서는 일반적이란 것을 인식할 것이다. 즉, 여기서 기술된 장치 및/또는 방법의 적어도 일부는 합당한 실험량을 통해 데이터 처리 시스템에 통합될 수 있다. 당업자라면, 전형적인 데이터 처리 시스템은 일반적으로 하나 이상의 시스템 유닛 하우징, 비디오 디스플레이 장치, 휘발성 및 비휘발성 메모리 같은 메모리, 마이크로프로세서 및 디지털 신호 프로세서 같은 프로세서, 운영 체제, 드라이버, 그래픽 사용자 인터페이스 및 애플리케이션 프로그램과 같은 컴퓨터 엔티티(computational entities), 터치 패드 또는 스크린 같은 하나 이상의 상호작용 장치, 및/또는 피드백 루프 및 제어 모터(예를 들면, 위치 및/또는 속도를 감지하기 위한 피드백; 컴포넌트 및/또는 양(quantities)을 이동하고 및/또는 조정하기 위한 제어 모터)를 포함하는 제어 시스템을 일반적으로 포함한다는 것을 인식할 것이다. 전형적인 데이터 처리 시스템은 데이터 컴퓨팅/통신 및/또는 네트워크 컴퓨팅/통신 시스템에서 전형적으로 발견되는 바와 같은 임의의 적절한 상업적으로 이용가능한 컴포넌트를 이용하여 구현될 수 있다.
여기서 기술된 대상은 때때로 상이한 다른 컴포넌트 내에 포함되거나 접속된 상이한 컴포넌트를 도시한다. 도시된 그러한 아키텍처는 단순히 예시적인 것이고, 사실상 동일한 기능을 달성하는 다른 많은 아키텍처가 구현될 수 있다는 것이 이해되어야 한다. 개념적으로, 동일한 기능을 달성하기 위한 컴포넌트의 임의의 배치는 원하는 기능이 달성되도록 유효하게 "연관"된다. 이에 따라, 특정 기능을 달성하기 위해 여기서 결합된 임의의 두 개의 컴포넌트는, 아키텍처 또는 중간 컴포넌트와는 무관하게, 원하는 기능이 달성되도록 서로 "연관"된 것으로 볼 수 있다. 마찬가지로, 연관된 두 개의 컴포넌트는 또한 원하는 기능을 달성하기 위해 서로 "동작적으로 접속"되거나 또는 "동작적으로 연결"되는 것으로 간주될 수 있고, 그와 같이 연관될 수 있는 임의의 두 개의 컴포넌트는 또한 원하는 기능을 달성하기 위해 서로 "동작적으로 연결가능"한 것으로 볼 수 있다. 동작적으로 연결 가능하다는 것의 특정 예는 물리적으로 양립가능(mateable)하고 및/또는 물리적으로 상호작용하는 컴포넌트 및/또는 무선으로 상호작용이 가능하고 및/또는 무선으로 상호작용하는 컴포넌트 및/또는 논리적으로 상호작용하고 및/또는 논리적으로 상호작용이 가능한 컴포넌트를 포함하지만, 이에 한정되는 것은 아니다.
여기에서 실질적으로 임의의 복수 및/또는 단수의 용어의 사용에 대하여, 당업자는 맥락 및/또는 응용에 적절하도록, 복수를 단수로 및/또는 단수를 복수로 해석할 수 있다. 다양한 단수/복수의 치환은 명확성을 위해 여기에서 명시적으로 기재될 수 있다.
당업자라면, 일반적으로 본 개시에 사용되며 특히 첨부된 청구범위(예를 들어, 첨부된 청구범위)에 사용된 용어들이 일반적으로 "개방적(open)" 용어(예를 들어, 용어 "포함하는"은 "포함하지만 이에 제한되지 않는"으로, 용어 "갖는"는 "적어도 갖는"으로, 용어 "포함하다"는 "포함하지만 이에 한정되지 않는" 등으로 해석되어야 함)로 의도되었음을 이해할 것이다. 또한, 당업자라면, 도입된 청구항의 기재사항의 특정 수가 의도된 경우, 그러한 의도가 청구항에 명시적으로 기재될 것이며, 그러한 기재사항이 없는 경우, 그러한 의도가 없음을 또한 이해할 것이다. 예를 들어, 이해를 돕기 위해, 이하의 첨부 청구범위는 "적어도 하나" 및 "하나 이상" 등의 도입 구절의 사용을 포함하여 청구항 기재사항을 도입할 수 있다. 그러나, 그러한 구절의 사용이, 부정관사 "하나"("a" 또는 "an")에 의한 청구항 기재사항의 도입이, 그러한 하나의 기재사항을 포함하는 실시예로, 그러한 도입된 청구항 기재사항을 포함하는 특정 청구항을 제한함을 암시하는 것으로 해석되어서는 안되며, 동일한 청구항이 도입 구절인 "하나 이상" 또는 "적어도 하나" 및 "하나"("a" 또는 "an")과 같은 부정관사(예를 들어, "하나"는 "적어도 하나" 또는 "하나 이상"을 의미하는 것으로 일반적으로 해석되어야 함)를 포함하는 경우에도 마찬가지로 해석되어야 한다. 이는 청구항 기재사항을 도입하기 위해 사용된 정관사의 경우에도 적용된다. 또한, 도입된 청구항 기재사항의 특정 수가 명시적으로 기재되는 경우에도, 당업자라면 그러한 기재가 일반적으로 적어도 기재된 수(예를 들어, 다른 수식어가 없는 "두개의 기재사항"을 단순히 기재한 것은, 일반적으로 적어도 두 개의 기재사항 또는 두 개 이상의 기재사항을 의미함)를 의미하도록 해석되어야 함을 이해할 것이다. 또한, "A, B 및 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 및 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템을 포함하지만 이에 제한되지 않음). "A, B 또는 C 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 또는 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템을 포함하지만 이에 제한되지 않음). 또한 당업자라면, 실질적으로 어떠한 이접 접속어(disjunctive word) 및/또는 두 개 이상의 대안적인 용어들을 나타내는 구절은, 그것이 상세한 설명, 청구범위 또는 도면에 있는지와 상관없이, 그 용어들 중의 하나, 그 용어들 중의 어느 하나, 또는 그 용어들 두 개 모두를 포함하는 가능성을 고려했음을 이해할 것이다. 예를 들어, "A 또는 B"라는 구절은 "A" 또는 "B" 또는 "A 및 B"의 가능성을 포함하는 것으로 이해될 것이다.
명세서에서 "구현예", "일 구현예", "일부 구현예", 또는 "기타 구현예"에 대한 참조는 하나 이상의 구현예와 관련하여 설명된 특정한 특징, 구조 또는 특성이 적어도 일부의 구현예에 포함될 수 있으나, 반드시 모든 구현예에 포함될 필요는 없다는 것을 의미할 수 있다. 앞의 설명에서, "구현예", "일 구현예" 또는 "일부 구현예"의 다양한 등장은 반드시 모두 동일한 구현예를 지칭할 필요가 없다.
특정 예시적 기법이 다양한 방법 및 시스템을 이용하여 여기에서 기술되고 도시되었으나, 청구된 대상에서 벗어나지 않고, 다양한 기타의 수정이 이루어질 수 있고, 등가물이 대체될 수 있음이 당업자에 의해 이해되어야 한다. 추가적으로, 여기에 기술된 중심 개념으로부터 벗어남이 없이 특정 상황을 청구된 대상의 교시로 적응시키도록 많은 수정이 이루어질 수 있다. 따라서, 청구된 대상이 개시된 특정 예시로 제한되지 않으나, 그러한 청구된 대상은 또한 첨부된 청구범위 및 그 균등의 범위 내에 들어가는 모든 구현예를 포함할 수 있음이 의도된다.

Claims (24)

  1. 비대칭 암호화를 위한 방법으로서,
    하나 이상의 체비셰프 다항식(Chebyshev polynomials)에 적어도 부분적으로 기초하는 암호문 제어 블록을 데이터로부터 결정하는 단계; 및
    상기 데이터의 적어도 일부를 로지스틱 매핑(Logistic Mapping)에 적어도 부분적으로 기초하는 암호화된 암호문 블록으로 암호화하는 단계
    를 포함하며,
    최종 암호문은 상기 암호화된 암호문 블록 및 상기 암호문 제어 블록을 포함하는, 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 체비셰프 다항식은 공개 키 및 변수 파라미터와 연관된 랜덤으로 생성된 정수 초기 값에 적어도 부분적으로 기초하는, 방법.
  3. 제2항에 있어서,
    상기 변수 파라미터를 수정하고, 상기 수정된 변수 파라미터에 적어도 부분적으로 기초하여 하나 이상의 후속의 체비셰프 다항식 및 후속의 최종 암호화된 암호문 블록을 결정하는 단계 - 상기 수정된 변수 파라미터는 상기 로지스틱 매핑에 적어도 부분적으로 기초하여 수정됨 -; 및
    상기 데이터의 전부가 암호화되는 때까지 상기 변수 파라미터의 상기 수정을 반복(iterating)하는 단계
    를 더 포함하는 방법.
  4. 비대칭 카오스 암호화(asymmetrical chaotic encryption)를 위한 방법으로서,
    개인 키에 적어도 부분적으로 기초하여 공개 키를 결정하는 단계;
    상기 결정된 공개 키 및 변수 파라미터와 연관된 랜덤으로 생성된 정수 초기 값에 적어도 부분적으로 기초하여 하나 이상의 체비셰프 다항식을 결정하는 단계;
    상기 결정된 하나 이상의 체비셰프 다항식에 적어도 부분적으로 기초하여 암호문 제어 블록을 결정하는 단계;
    상기 변수 파라미터에 적어도 부분적으로 기초하여 로지스틱 맵 값을 결정하는 단계;
    상기 로지스틱 맵 값에 적어도 부분적으로 기초하여 비밀 키 및 시프트 정수를 결정하는 단계;
    상기 결정된 비밀 키 및 상기 결정된 시프트 정수에 적어도 부분적으로 기초하여 평문 파일의 암호화된 보통의 평문 블록 부분을 결정하는 단계; 및
    상기 결정된 암호화된 보통의 평문 블록, 상기 결정된 비밀 키 및 상기 결정된 시프트 정수에 적어도 부분적으로 기초하여 최종 암호화된 암호문 블록을 결정하는 단계
    를 포함하고,
    최종 암호문은 상기 결정된 최종 암호화된 암호문 블록 및 상기 결정된 암호문 제어 블록을 포함하는, 방법.
  5. 제4항에 있어서,
    상기 로지스틱 맵 값을 갱신하고, 상기 갱신된 로지스틱 맵 값에 적어도 부분적으로 기초하여 추가적인 최종 암호화된 암호문 블록을 결정하는 단계 - 상기 갱신된 로지스틱 맵 값은 상기 시프트 정수에 적어도 부분적으로 기초하여 갱신됨 -; 및
    상기 로지스틱 맵 값의 상기 갱신을 주어진 수의 평문 블록이 암호화되는 때까지 반복하는 단계
    를 더 포함하는 방법.
  6. 제4항에 있어서,
    상기 변수 파라미터를 수정하고, 상기 수정된 변수 파라미터에 적어도 부분적으로 기초하여 하나 이상의 후속의 체비셰프 다항식 및 후속의 최종 암호화된 암호문 블록을 결정하는 단계 - 상기 수정된 변수 파라미터는 상기 결정된 시프트 정수에 적어도 부분적으로 기초하여 수정됨 -; 및
    상기 변수 파라미터의 상기 수정을 상기 평문 파일의 전부가 암호화되는 때까지 반복하는 단계
    를 더 포함하는 방법.
  7. 제4항에 있어서,
    상기 로지스틱 맵 값을 갱신하고, 상기 갱신된 로지스틱 맵 값에 적어도 부분적으로 기초하여 추가의 최종 암호화된 암호문 블록을 결정하는 단계 - 상기 갱신된 로지스틱 맵 값은 상기 시프트 정수에 적어도 부분적으로 기초하여 갱신됨 -;
    상기 로지스틱 맵 값의 상기 갱신을 주어진 수의 평문 블록이 암호화되는 때까지 반복하는 단계;
    상기 변수 파라미터를 수정하고, 상기 수정된 변수 파라미터에 적어도 부분적으로 기초하여 하나 이상의 후속의 체비셰프 다항식 및 후속의 최종 암호화된 암호문 블록을 결정하는 단계 - 상기 수정된 변수 파라미터는 상기 결정된 시프트 정수에 적어도 부분적으로 기초하여 수정됨 -; 및
    상기 변수 파라미터의 상기 수정을 상기 평문 파일의 전부가 암호화되는 때까지 반복하는 단계
    를 더 포함하는 방법.
  8. 제4항에 있어서,
    상기 공개 키는 상기 개인 키에 적어도 부분적으로 기초한 체비셰프 다항식에 적어도 부분적으로 기초하여 결정되는, 방법.
  9. 제4항에 있어서,
    상기 개인 키는 이진 시퀀스를 획득하도록 로지스틱 맵 함수를 수 차례 반복하는 것에 적어도 부분적으로 기초하여 결정되는, 방법.
  10. 제4항에 있어서,
    상기 시프트 정수는 이진 시퀀스를 획득하도록 로지스틱 맵 함수를 수 차례 반복하는 것에 적어도 부분적으로 기초하여 결정되는, 방법.
  11. 제4항에 있어서,
    상기 최종 암호화된 암호문 블록은 상기 비밀 키에 적어도 부분적으로 기초하여 두 번 이상 암호화된 상기 평문 파일의 평문 블록 부분을 포함하는, 방법.
  12. 제4항에 있어서,
    상기 최종 암호화된 암호문 블록은 상기 시프트 정수에 적어도 부분적으로 기초하여 두 번 이상 시프트된 상기 평문 파일의 평문 블록 부분을 포함하는, 방법.
  13. 제4항에 있어서,
    상기 최종 암호화된 암호문 블록은 상기 비밀 키에 적어도 부분적으로 기초하여 두 번 이상 암호화된 상기 평문 파일의 평문 블록 부분을 포함하고, 상기 평문 파일의 상기 평문 블록 부분은 상기 시프트 정수에 적어도 부분적으로 기초하여 두 번 이상 시프트된, 방법.
  14. 비대칭 카오스 복호화(asymmetrical chaotic decryption)를 위한 방법으로서,
    하나 이상의 암호문 제어 블록 및 하나 이상의 최종 암호화된 암호문 블록을 포함하는 최종 암호문의 암호문 제어 블록 부분으로부터 로지스틱 맵 값을 검색(retrieving)하는 단계; 및
    상기 검색된 로지스틱 맵 값에 적어도 부분적으로 기초하여 상기 하나 이상의 최종 암호화된 암호문 블록으로부터 평문 블록을 검색하는 단계
    를 포함하는 방법.
  15. 제14항에 있어서,
    상기 로지스틱 맵 값에 적어도 부분적으로 기초하여 비밀 키 및 시프트 정수를 결정하는 단계를 더 포함하고,
    상기 하나 이상의 최종 암호화된 암호문 블록으로부터 상기 평문 블록을 검색하는 단계는 상기 결정된 비밀 키 및 시프트 정수에 적어도 부분적으로 기초하는, 방법.
  16. 제14항에 있어서,
    상기 로지스틱 맵 값을 갱신하고, 상기 갱신된 로지스틱 맵 값에 적어도 부분적으로 기초하여 추가적인 평문 블록을 검색하는 단계 - 상기 갱신된 로지스틱 맵 값은 상기 시프트 정수에 적어도 부분적으로 기초하여 갱신됨 -; 및
    상기 로지스틱 맵 값의 상기 갱신을 주어진 수의 평문 블록이 복호화되는 때까지 반복하는 단계
    를 더 포함하는 방법.
  17. 제14항에 있어서,
    후속의 암호문 제어 블록으로부터의 후속의 로지스틱 맵 값의 상기 검색을 상기 평문 파일의 전부가 복호화되는 때까지 반복하는 단계를 더 포함하는 방법.
  18. 제14항에 있어서,
    상기 로지스틱 맵 값을 갱신하고, 상기 갱신된 로지스틱 맵 값에 적어도 부분적으로 기초하여 추가적인 평문 블록을 검색하는 단계 - 상기 갱신된 로지스틱 맵 값은 상기 시프트 정수에 적어도 부분적으로 기초하여 갱신됨 -;
    상기 로지스틱 맵 값의 상기 갱신을 주어진 수의 평문 블록이 복호화되는 때까지 반복하는 단계; 및
    후속의 암호문 제어 블록으로부터의 후속의 로지스틱 맵 값의 상기 검색을 상기 평문 파일의 전부가 복호화되는 때까지 반복하는 단계
    를 더 포함하는 방법.
  19. 제14항에 있어서,
    상기 개인 키는 이진 시퀀스를 획득하도록 수 차례 로지스틱 맵 함수를 반복하는 것에 적어도 부분적으로 기초하여 결정되는, 방법.
  20. 제14항에 있어서,
    상기 시프트 정수는 이진 시퀀스를 획득하도록 수 차례 로지스틱 맵 함수를 반복하는 것에 적어도 부분적으로 기초하여 결정되는, 방법.
  21. 컴퓨팅 장치로서,
    프로세서; 및
    상기 프로세서와 동작적으로 연관된 비대칭 카오스 암호화 알고리즘을 포함하는 메모리를 포함하고,
    상기 프로세서는 상기 비대칭 카오스 암호화 알고리즘에 의해 상기 컴퓨팅 장치로 하여금,
    개인 키에 적어도 부분적으로 기초하여 공개 키를 결정하는 것,
    상기 결정된 공개 키 및 변수 파라미터와 연관된 랜덤으로 생성된 정수 초기 값에 적어도 부분적으로 기초하여 하나 이상의 체비셰프 다항식을 결정하는 것,
    상기 결정된 하나 이상의 체비셰프 다항식에 적어도 부분적으로 기초하여 암호문 제어 블록을 결정하는 것,
    상기 변수 파라미터에 적어도 부분적으로 기초하여 로지스틱 맵 값을 결정하는 것,
    상기 로지스틱 맵 값에 적어도 부분적으로 기초하여 비밀 키 및 시프트 정수를 결정하는 것,
    상기 결정된 비밀 키 및 상기 결정된 시프트 정수에 적어도 부분적으로 기초하여 평문 파일의 암호화된 보통의 평문 블록 부분을 결정하는 것, 및
    상기 결정된 암호화된 보통의 평문 블록, 상기 결정된 비밀 키 및 상기 결정된 시프트 정수에 적어도 부분적으로 기초하여 최종 암호화된 암호문 블록을 결정하는 것을 동작적으로 가능하게 하도록 구성되는, 컴퓨팅 장치.
  22. 제21항에 있어서,
    상기 프로세서는, 상기 비대칭 카오스 암호화 알고리즘에 의해 상기 컴퓨팅 장치로 하여금,
    상기 로지스틱 맵 값을 갱신하고, 상기 갱신된 로지스틱 맵 값에 적어도 부분적으로 기초하여 추가적인 최종 암호화된 암호문 블록을 결정하는 것 - 상기 갱신된 로지스틱 맵 값은 상기 시프트 정수에 적어도 부분적으로 기초하여 갱신됨 -;
    상기 로지스틱 맵 값의 상기 갱신을 주어진 수의 평문 블록이 암호화되는 때까지 반복하는 것;
    상기 변수 파라미터를 수정하고, 상기 수정된 변수 파라미터에 적어도 부분적으로 기초하여 하나 이상의 후속의 체비셰프 다항식 및 후속의 최종 암호화된 암호문 블록을 결정하는 것 - 상기 수정된 변수 파라미터는 상기 결정된 시프트 정수에 적어도 부분적으로 기초하여 수정됨 -; 및
    상기 변수 파라미터의 상기 수정을 상기 평문 파일의 전부가 암호화되는 때까지 반복하는 것을 동작적으로 가능하게 하도록 더 구성되는, 컴퓨팅 장치.
  23. 저장된 머신 판독 가능 명령을 포함하는 신호 베어링 매체를 포함하는 물품으로서,
    상기 머신 판독 가능 명령은 하나 이상의 프로세서에 의하여 실행되면, 컴퓨팅 장치로 하여금,
    개인 키에 적어도 부분적으로 기초하여 공개 키를 결정하는 것;
    상기 결정된 공개 키 및 변수 파라미터와 연관된 랜덤으로 생성된 정수 초기 값에 적어도 부분적으로 기초하여 하나 이상의 체비셰프 다항식을 결정하는 것;
    상기 결정된 하나 이상의 체비셰프 다항식에 적어도 부분적으로 기초하여 암호문 제어 블록을 결정하는 것;
    상기 변수 파라미터에 적어도 부분적으로 기초하여 로지스틱 맵 값을 결정하는 것;
    상기 로지스틱 맵 값에 적어도 부분적으로 기초하여 비밀 키 및 시프트 정수를 결정하는 것;
    상기 결정된 비밀 키 및 상기 결정된 시프트 정수에 적어도 부분적으로 기초하여 평문 파일의 암호화된 보통의 평문 블록 부분을 결정하는 것; 및
    상기 결정된 암호화된 보통의 평문 블록, 상기 결정된 비밀 키 및 상기 결정된 시프트 정수에 적어도 부분적으로 기초하여 최종 암호화된 암호문 블록을 결정하는 것을 동작적으로 가능하게 하는, 물품.
  24. 제23항에 있어서,
    상기 머신 판독 가능 명령은 상기 컴퓨팅 장치로 하여금,
    상기 로지스틱 맵 값을 갱신하고, 상기 갱신된 로지스틱 맵 값에 적어도 부분적으로 기초하여 추가적인 최종 암호화된 암호문 블록을 결정하는 것 - 상기 갱신된 로지스틱 맵 값은 상기 시프트 정수에 적어도 부분적으로 기초하여 갱신됨 -;
    상기 로지스틱 맵 값의 상기 갱신을 주어진 수의 평문 블록이 암호화되는 때까지 반복하는 것;
    상기 변수 파라미터를 수정하고, 상기 수정된 변수 파라미터에 적어도 부분적으로 기초하여 하나 이상의 후속의 체비셰프 다항식 및 후속의 최종 암호화된 암호문 블록을 결정하는 것 - 상기 수정된 변수 파라미터는 상기 결정된 시프트 정수에 적어도 부분적으로 기초하여 결정됨 -; 및
    상기 변수 파라미터의 상기 수정을 상기 평문 파일의 전부가 암호화되는 때까지 반복하는 것을 더 동작적으로 가능하게 하는, 물품.
KR1020137001366A 2010-06-18 2010-06-18 비대칭 카오스 암호화 KR101502930B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2010/074034 WO2011156962A1 (en) 2010-06-18 2010-06-18 Asymmetrical chaotic encryption

Publications (2)

Publication Number Publication Date
KR20130045333A true KR20130045333A (ko) 2013-05-03
KR101502930B1 KR101502930B1 (ko) 2015-03-16

Family

ID=45328686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137001366A KR101502930B1 (ko) 2010-06-18 2010-06-18 비대칭 카오스 암호화

Country Status (4)

Country Link
US (2) US8917871B2 (ko)
JP (1) JP5629823B2 (ko)
KR (1) KR101502930B1 (ko)
WO (1) WO2011156962A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190104728A (ko) * 2018-03-02 2019-09-11 인천대학교 산학협력단 신체 영역 네트워크에서 카오스에 기반한 암호화 장치 및 방법

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8917871B2 (en) * 2010-06-18 2014-12-23 Empire Technology Development Llc Asymmetrical chaotic encryption
CN102693523B (zh) * 2012-05-09 2014-05-07 华南理工大学 一种基于双混沌系统的图像二级加密方法
US9425799B2 (en) * 2014-03-05 2016-08-23 University Of Hawaii Reconfigurable logic gates using chaotic dynamics
US9639912B2 (en) * 2014-12-30 2017-05-02 University Of Macau Method for reversible image data hiding
CN105005961B (zh) * 2015-06-30 2018-02-02 中国人民解放军信息工程大学 适用于不规则三角网数字高程模型的信息伪装及还原方法
CN105117326A (zh) * 2015-07-01 2015-12-02 湖州师范学院 一种基于组合混沌序列的测试用例集生成方法
CN106327414B (zh) * 2016-08-16 2019-10-22 广东工业大学 一种基于明文自身特性的双混沌图像加密方法
US11184147B2 (en) * 2016-12-21 2021-11-23 University Of Hawaii Hybrid encryption for cyber security of control systems
CN108090369B (zh) * 2017-12-29 2021-06-08 南京师范大学 一种基于Chebyshev多项式的GIS矢量数据脱密与恢复方法
CN110601821B (zh) * 2019-08-07 2022-03-01 中国人民解放军战略支援部队信息工程大学 Ofdm通信信号物理层加密方法及装置
CN110324147B (zh) * 2019-08-08 2023-05-23 黑龙江大学 基于混沌模型的gan博弈对抗加密方法
CN110768784B (zh) * 2019-10-22 2023-07-18 广州酷旅旅行社有限公司 密码传输方法、装置、计算机设备和存储介质
CN112258520B (zh) * 2020-10-16 2022-03-29 齐鲁工业大学 基于二维滞后复Logistic映射的图像加解密通信方法
US11734435B2 (en) 2020-10-16 2023-08-22 Qilu University Of Technology Image encryption and decryption communication algorithm based on two-dimensional lag complex logistic map
CN113965312B (zh) * 2021-10-22 2023-06-09 常州京信新一代信息技术研究院有限公司 基于三维cap星座的空间加密方法
CN114025054B (zh) * 2022-01-05 2022-05-20 国网山东省电力公司无棣县供电公司 一种智能电网图像加密传输方法和系统
CN114866811B (zh) * 2022-03-31 2023-04-28 广州科拓科技有限公司 视频加密方法、装置及视频解密方法、装置
CN116644457B (zh) * 2023-07-21 2023-09-29 中珀(北京)新材料科技有限公司 一种内微凝胶氟硅自交联涂料的生产数据加密方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3557037B2 (ja) * 1996-04-22 2004-08-25 株式会社東芝 乱数生成装置及び方法、鍵系列生成装置及び方法、暗号化装置及び方法、並びに復号装置及び方法
US6014445A (en) * 1995-10-23 2000-01-11 Kabushiki Kaisha Toshiba Enciphering/deciphering apparatus and method incorporating random variable and keystream generation
US8161565B1 (en) 2000-12-26 2012-04-17 Entrust, Inc. Key release systems, components and methods
JP3633886B2 (ja) * 2001-06-21 2005-03-30 独立行政法人情報通信研究機構 鍵共有システム、鍵共有装置、鍵共有方法、プログラム、ならびに、情報記録媒体
JP3606835B2 (ja) * 2001-12-11 2005-01-05 独立行政法人情報通信研究機構 光信号発生装置および方法、送信装置および送信方法、受信装置および受信方法、並びに送受信装置および送受信方法
DE60322338D1 (de) 2003-04-07 2008-09-04 St Microelectronics Srl Verschlüsselungsverfahren unter Verwendung von chaotischen Abbildungen und digitale Unterschriftsverfahren
CN100512104C (zh) * 2005-03-03 2009-07-08 北京交通大学 一种用于信息加密的公钥加密方法
CN101355684B (zh) 2007-07-24 2010-10-20 中国移动通信集团公司 图像类数字内容发送、接收方法及其发送器和接收器
CN101739695B (zh) * 2009-11-26 2011-09-14 西北工业大学 一种基于三维Arnold映射的图像分组加密方法
US8917871B2 (en) * 2010-06-18 2014-12-23 Empire Technology Development Llc Asymmetrical chaotic encryption

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190104728A (ko) * 2018-03-02 2019-09-11 인천대학교 산학협력단 신체 영역 네트워크에서 카오스에 기반한 암호화 장치 및 방법

Also Published As

Publication number Publication date
JP2013528837A (ja) 2013-07-11
KR101502930B1 (ko) 2015-03-16
WO2011156962A1 (en) 2011-12-22
US20160352513A1 (en) 2016-12-01
US20110311054A1 (en) 2011-12-22
US8917871B2 (en) 2014-12-23
US9742558B2 (en) 2017-08-22
JP5629823B2 (ja) 2014-11-26

Similar Documents

Publication Publication Date Title
KR101502930B1 (ko) 비대칭 카오스 암호화
JP6964688B2 (ja) 暗号文に対する近似演算を行う装置及び方法
KR101226167B1 (ko) 암호 함수 모호화 방법 및 시스템
JP6345237B2 (ja) 平文データを暗号化するための方法および装置
JP4575283B2 (ja) 暗号装置、復号装置、プログラム及び方法
JP5599728B2 (ja) ホワイトボックス実装
US20120269340A1 (en) Hierarchical encryption/decryption device and method thereof
CN106878013B (zh) 一种文件的加密、解密方法和装置
EP2920908A2 (en) Method for secure substring search
JP2003134103A (ja) 情報処理装置
JP5929905B2 (ja) 順序保存暗号化システム、装置、方法及びプログラム
WO2016088453A1 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
JP5852518B2 (ja) 認証暗号化装置、認証復号装置、およびプログラム
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
WO2019043921A1 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
WO2020044748A1 (ja) Idベースハッシュ証明系構成装置、idベース暗号装置、idベースハッシュ証明系構成方法及びプログラム
JP2022513185A (ja) 暗号文に対する非多項式演算を行う装置及び方法
KR101440680B1 (ko) 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
US8731187B2 (en) Computing genus-2 curves using general isogenies
JP6203387B2 (ja) 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム
KR101971001B1 (ko) 화이트박스 암호가 적용된 블록 암호 기반의 난수 생성 방법 및 장치
JP2011119985A (ja) 暗号復号方法
CN116961908B (zh) 加密方法、电子装置、电子设备及计算机存储介质
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム
JP2015135363A (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 5