KR20090133109A - 데이터 블록의 암호화를 위한 방법 및 시스템 - Google Patents

데이터 블록의 암호화를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20090133109A
KR20090133109A KR1020097020846A KR20097020846A KR20090133109A KR 20090133109 A KR20090133109 A KR 20090133109A KR 1020097020846 A KR1020097020846 A KR 1020097020846A KR 20097020846 A KR20097020846 A KR 20097020846A KR 20090133109 A KR20090133109 A KR 20090133109A
Authority
KR
South Korea
Prior art keywords
random numbers
random number
block
previous
current
Prior art date
Application number
KR1020097020846A
Other languages
English (en)
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 KR20090133109A publication Critical patent/KR20090133109A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

데이터 블록들(201-206)을 암호화하기 위한 방법으로서, 데이터 블록을 상기 데이터 블록(201-206)을 위해 생성된 현재 난수(211-216)를 사용하여 암호화하는 단계(301); 상기 현재 난수를 이전 난수들의 세트 중 하나 이상을 사용하여 인코딩하는 단계(303) - 상기 이전 난수들의 세트의 각각은 이전에 전송된 데이터 블록을 암호화하는데 사용되었음 - ; 및 상기 암호화된 데이터 블록(241-246)을 상기 인코딩된 현재 난수(272-276)의 하나 이상의 버전과 함께 송신하는 단계(304) - 각각의 버전은 상기 이전 난수들 중 서로 다른 것에 대한 것임 - 를 포함하는 방법이 제공된다. 데이터 블록들을 복호화하기 위한 방법으로서, 암호화된 데이터 블록(241-246)을 인코딩된 현재 난수의 하나 이상의 버전과 함께 수신하는 단계(401) - 각각의 버전은 이전에 사용된 난수들(272-276) 중 서로 다른 것에 대한 것임 - ; 난수가 이용가능한(291-296) 이전에 수신된 데이터 블록들의 세트 중 하나를 선택하는 단계(402); 상기 현재 난수를 상기 선택된 이전에 수신된 데이터 블록의 상기 난수를 사용하여 디코딩하는 단계(403); 및 상기 수신된 암호화된 데이터 블록(241-246)을 상기 디코딩된 현재 난수를 사용하여 복호화하는 단계(404)를 포함하는 방법이 제공된다.
Figure P1020097020846
데이터 블록, 암호화, 복호화, 비신뢰적 연결, 초기화 벡터, 의사 난수, 암호화 알고리즘

Description

데이터 블록의 암호화를 위한 방법 및 시스템{METHOD AND SYSTEM FOR ENCRYPTION OF BLOCKS OF DATA}
본 발명은 데이터 블록의 암호화 분야에 관한 것이다. 구체적으로, 본 발명은 모든 선행 블록의 수신이 보장되지 않는 환경에서 사용하기 위한 블록 암호(block cipher)에 관한 것이다.
암호화 방법에 있어서, 블록 암호는 종종 64 또는 128 비트의 고정된 길이의 블록들에 대해 동작한다. 메시지는 임의의 길이일 수 있고, 동일한 평문(plaintext)을 동일한 키에 따라 암호화하면 항상 동일한 결과를 만들어내기 때문에, 블록 암호에 의해 임의의 길이의 메시지에 대해 비밀성이 제공되는, 몇몇 동작 모드가 개발되어 왔다.
CBC(cipher-block chaining) 모드에서, 평문의 각각의 블록은 암호화되기 전에 이전의 암호문(ciphertext) 블록과 XOR된다(XOR 연산이 이루어짐). 각각의 암호문 블록은 그 시점까지 처리된 모든 평문 블록들에 의존한다. 각각의 메시지를 고유하게 만들기 위해, 초기화 벡터(initialization vector: IV)가 제1 블록에 사용되어야 한다.
IV는 제1 실제 블록에 대한 처리를 시작하기 위한 더미 블록이다. CBC에서, IV는 암호화 시점에 무작위로 생성된다. 대부분의 경우 IV가 비밀일 필요는 없지만, 동일한 키와 함께 다시 사용되지 않는 것은 중요하다.
도 1a 및 1b는 CBC를 사용한 암호화 및 복호화의 과정을 도시한다. 도 1a에서, 암호화될 평문의 블록들은 p1, p2, ...(101-106)으로 제공된다. IV(110)가 생성되고 평문의 제1 블록 p1(101)과 XOR된다(120). 이 결과는 키(131)와 함께 블록 암호 암호화(130)를 사용하여 암호화된다. 이 결과는 수신자에게 전송되는 암호문의 제1 블록 c1(141)이다. 암호문의 제1 블록 c1(141)은 평문의 제2 블록 p2(102)과 XOR되고(120), 이 결과는 키(131)와 함께 블록 암호 암호화(130)를 사용하여 암호화된다. 이 결과는 수신자에게 전송되는 암호문의 제2 블록 c2(142)이다. 이 체인은 그 후의 암호문 블록들 c3, c4, c5, c6(143-146)을 남아있는 평문 블록들 p3, p4, p5, p6(103-106)으로부터 생성하도록 계속된다.
도 1b는 복호화 과정을 도시한다. 암호문의 블록들이 c1, c2, ..., c6(141-146)으로 수신된다. 암호문의 제1 블록 c1(141)은 수신자에게 공급된 키(131)와 함께 블록 암호 복호화(150)를 사용하여 복호화된다. 이 결과는 수신자에게 공급된 IV(110)와 XOR되고(120), 이는 평문의 제1 블록 p1(101)을 가져온다. 이어서 암호문의 제2 블록 c2가 키(131)와 함께 블록 암호 복호화(150)를 사용하여 복호화된다. 이 결과는 암호문의 제1 블록 c1과 XOR되고(120), 이는 평문의 제2 블록 p2(101)을 가져온다. 이 체인은 그 후의 평문 블록들 p3, p4, p5, p6(103-106)을 남아있는 암호문 블록들 c3, c4, c5, c6(143-146)으로부터 생성하도록 계속된다.
CBC는 다음 블록을 복호화하기 위해서는 암호문의 이전의 블록이 수신되었어야 한다는 한계를 갖는다. 일부 환경에서는 배달이 보장되지 않고, 이는 체인을 깨뜨릴 수 있다.
멀티캐스트 프로토콜은 필연적으로 비신뢰적이다. 모든 수신자가 수신해야할 모든 것을 수신하도록 보장할 방법이 없다. 이는 CBC 모드의 블록 암호를 사용할 수 없기 때문에 보안 문제를 일으키는데, 이는 CBC 모드가 수신자가 바로 이전의 암호문 요소에 대한 액세스를 가질 것을 요구하지만, 멀티캐스트의 경우에 이것이 보장될 수 없기 때문이다.
블록 암호를 사용하는 멀티캐스트 스트림의 암호화는 현재 ECB(electronic codebook) 모드 및 CTR(counter) 모드에 한정되어 있다.
ECB 모드는 데이터를 숨기기에 매우 좋은 방법은 아니다. 메시지는 블록들로 분할되고 각각의 블록이 개별적으로 암호화된다. 이 방법의 단점은 동일한 평문 블록들이 동일한 암호문 블록들로 암호화되기 때문에, 데이터 패턴들을 잘 숨기지 않는다는 것이다.
CTR 모드는 데이터를 숨기기에 좋은 방법이다. 메시지의 각각의 블록은 전송 전에 의사 난수(pseudorandom number)와 XOR된다. 의사 난수는 ECB 모드에서 잘 알려진 카운터 값을 비밀 키와 함께 암호화함으로써 얻어지므로, 메시지 블록의 수신자에 의해 예측될 수 있는 시퀀스로 생성된다. CTR 모드에 내재한 위험은 잘 알려진 카운터로부터 의사 난수를 생성하는데 사용되는 알고리즘이 "알려진 평문(known plaintext)" 공격에 취약할 수 있다는 것, 또는 심지어 충분한 데이터가 주어졌을 때 가역적일 수도 있다는 것이다. 이러한 경우에는, CTR 모드가 쓸모없게 된다.
멀티캐스트 데이터 스트림이 전송되는 네트워크가 승인되지 않은 침입에 대해 안전하다면, 멀티캐스트 데이터 스트림을 암호화하려는 시도가 필요 없을 수 있다. 이럴 가능성은 거의 없다.
본 발명의 제1 특징에 따르면, 데이터 블록들을 암호화하기 위한 방법으로서, 데이터 블록을 상기 데이터 블록을 위해 생성된 현재 난수를 사용하여 암호화하는 단계; 상기 현재 난수를 이전 난수들의 세트 중 하나 이상을 사용하여 인코딩하는 단계 - 상기 이전 난수들의 세트의 각각은 이전에 전송된 데이터 블록을 암호화하는데 사용되었음 - ; 및 상기 암호화된 데이터 블록을 상기 인코딩된 현재 난수의 하나 이상의 버전과 함께 송신하는 단계 - 각각의 버전은 상기 이전 난수들 중 서로 다른 것을 사용하여 인코딩되었음 - 를 포함하는 방법이 제공된다.
본 발명의 제2 특징에 따르면, 데이터 블록들을 복호화하기 위한 방법으로서, 암호화된 데이터 블록을 인코딩된 현재 난수의 하나 이상의 버전과 함께 수신하는 단계 - 각각의 버전은 이전에 사용된 난수들 중 서로 다른 것을 사용하여 인코딩되었음 - ; 난수가 이용가능한 이전에 수신된 데이터 블록들의 세트 중 하나를 선택하는 단계; 상기 현재 난수를 상기 선택된 이전에 수신된 데이터 블록의 상기 난수를 사용하여 디코딩하는 단계; 및 상기 수신된 암호화된 데이터 블록을 상기 디코딩된 현재 난수를 사용하여 복호화하는 단계를 포함하는 방법이 제공된다.
본 발명의 제3 특징에 따르면, 컴퓨터 판독가능한 저장 매체에 저장된 컴퓨터 프로그램 제품으로서, 데이터 블록을 상기 데이터 블록을 위해 생성된 현재 난수를 사용하여 암호화하는 단계; 상기 현재 난수를 이전 난수들의 세트 중 하나 이상을 사용하여 인코딩하는 단계 - 상기 이전 난수들의 세트의 각각은 이전에 전송된 데이터 블록을 암호화하는데 사용되었음 - ; 및 상기 암호화된 데이터 블록을 상기 인코딩된 현재 난수의 하나 이상의 버전과 함께 송신하는 단계 - 각각의 버전은 상기 이전 난수들 중 서로 다른 것을 사용하여 인코딩되었음 - 를 수행하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 제4 특징에 따르면, 컴퓨터 판독가능한 저장 매체에 저장된 컴퓨터 프로그램 제품으로서, 암호화된 데이터 블록을 인코딩된 현재 난수의 하나 이상의 버전과 함께 수신하는 단계 - 각각의 버전은 이전에 사용된 난수들 중 서로 다른 것을 사용하여 인코딩되었음 - ; 난수가 이용가능한 이전에 수신된 데이터 블록들의 세트 중 하나를 선택하는 단계; 상기 현재 난수를 상기 선택된 이전에 수신된 데이터 블록의 상기 난수를 사용하여 디코딩하는 단계; 및 상기 수신된 암호화된 데이터 블록을 상기 디코딩된 현재 난수를 사용하여 복호화하는 단계를 수행하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 제5 특징에 따르면, 데이터 블록들을 송신하기 위한 시스템으로서, 데이터 블록을 상기 데이터 블록을 위해 생성된 현재 난수를 사용하여 암호화하기 위한 수단; 상기 현재 난수를 이전 난수들의 세트 중 하나 이상을 사용하여 인코딩하기 위한 수단 - 상기 이전 난수들의 세트의 각각은 이전에 전송된 데이터 블록을 암호화하는데 사용되었음 - ; 상기 암호화된 데이터 블록을 상기 인코딩된 현재 난수의 하나 이상의 버전과 함께 송신하기 위한 수단 - 각각의 버전은 상기 이전 난수들 중 서로 다른 것을 사용하여 인코딩되었음 - ; 암호화된 데이터 블록을 인코딩된 현재 난수의 하나 이상의 버전과 함께 수신하기 위한 수단; 난수가 이용가능한 이전에 수신된 데이터 블록들의 세트 중 하나를 선택하기 위한 수단; 상기 현재 난수를 상기 선택된 이전에 수신된 데이터 블록의 상기 난수를 사용하여 디코딩하기 위한 수단; 및 상기 수신된 암호화된 데이터 블록을 상기 디코딩된 현재 난수를 사용하여 복호화하기 위한 수단을 포함하는 시스템이 제공된다.
이제 본 발명의 실시예가 첨부된 도면을 참조하여 예시적일 뿐인 방법으로 설명될 것이다.
도 1a 및 1b는 종래기술인 암호화 및 복호화의 CBC 모드의 도면.
도 2a는 본 발명에 따른 암호화 방법의 개략도(schematic diagram).
도 2b는 본 발명에 따른 송신되는 데이터의 개략도.
도 2c는 본 발명에 따른 복호화 방법의 개략도.
도 3은 본 발명에 따른 암호화 방법의 순서도.
도 4는 본 발명에 따른 복호화 방법의 순서도.
수신자가 바로 이전의 블록을 수신하지 못한 경우에도 블록을 복호화하는 탄력성(resilience)을 갖는 블록 암호 암호화 및 복호화의 방법이 제공된다. 탄력성은 이전에 수신된 블록들의 세트 중 하나로부터 블록이 복호화되도록 허용함으로써 제공된다.
설명되는 방법의 일 실시예에서, 각각의 블록에서 입력 평문과 XOR하기 위해 랜덤 값이 생성된다. 이 랜덤 입력 값은 수신자가 선행 암호문들의 세트 중 하나를 수신한 경우 디코딩할 수 있는 방법으로 인코딩된다. 무작위로 선택된 이값은 CBC 동작 모드의 제1 단계에서의 초기화 벡터(IV)와 동일한 기능을 갖는다.
도 2a를 참조하면, 설명되는 암호화 방법의 일 실시예가 도시되어 있다. 암호화될 평문의 블록들은 p1, p2, ...(201-206)으로 제공된다. 난수가 생성되고 평문의 제1 블록 p1(201)과 XOR되는(220) 입력 벡터 I1(211)로 사용된다. 이 결과는 키(231)와 함께 블록 암호 암호화(230)를 사용하여 암호화된다. 이 결과는 수신자에게 전송되는 암호문의 제1 블록 c1(241)이다. 암호화 애플리케이션에 충분히 무작위적인 수들을 제공하기 위한 많은 의사 난수 발생기가 업계에 알려져 있고, 여기에 사용되는 "난수"라는 용어는 그러한 의사 난수들을 포함하도록 의도되었다.
새로운 난수가 평문의 제2 블록 p2(202)과 XOR되는(220) 입력 벡터 I2(212) 로서 생성된다. 이 결과는 키(231)와 함께 블록 암호 암호화(230)를 사용하여 암호화된다. 이 결과는 수신자에게 송신되는 암호문의 제2 블록 c2(242)이다.
이 과정은 그 후의 암호문 블록들 c3, c4, c5, c6(243-246)을 남아있는 평문 블록들 p3, p4, p5, p6(203-206)으로부터 생성하기 위해 입력 벡터 I3, I4, I5, I6(213-216)으로 사용되는 난수들을 발생시키며 계속된다.
입력 벡터 I1, I2, I3, I4, I5, I6(211-216)은 CBC 동작 모드의 초기화 벡터 (110)와 기능이 유사하지만, 랜덤 입력 벡터가 암호화될 평문의 각각의 블록을 위해 생성된다.
도 2b를 참조하면, 개략도가 송신되는 데이터를 도시한다. 설명되는 방법에서, 안전하고 신뢰적인 연결이 세션 키를 포함하는 초기 파라미터(280)를 송신하는데 사용된다. 초기 파라미터(280)는 또한 블록 헤더들에 제1 입력 벡터 I1, 입력 벡터들의 인코딩을 위해 사용된 이전의 블록들의 정의된 세트, 및 전송되는 인코딩된 입력 벡터들을 생성하기 위한 함수에서 사용된 입력 벡터들을 포함한다.
도 2b에 도시된 바와 같이, 암호문의 블록 c1, c2, c3, c4, c5, c6(241-246)은 카운트(261-266) 및 이전 입력 벡터들의 세트 중 하나로부터 현재 입력 벡터를 생성하기 위한 수단(271-276)을 포함하는 헤더(251-256)와 함께 송신된다. 일 실시예에서, 수단(271-276)은 이전 블록들의 세트의 각각에 대한 함수 쌍(q(i,i-j), S(i,i- j))이다. 함수 쌍(q(i,i-j), S(i,i-j))은 이전 입력 벡터 Ii -j와 함께 현재 입력 벡터 Ii를 결정하는데 사용될 수 있다.
이전 입력 벡터들은 이후의 입력 벡터들을 디코딩하는데 사용하기 위해 수신자에 의해 디코딩됨에 따라 저장된다(291-296).
이전 블록들의 세트는 현재 블록 앞의 미리 정의된 개수의 블록들의 세트이다. 예를 들어, 이는 이전의 네 블록들, 이전의 선택적인 세 블록들, 또는 주어진 예에서와 같이, i-j의 블록들의 세트 등일 수 있다(j는 J={1, 2, 4, 6}의 세트 중 하나). 현재 입력 벡터를 얻기 위해서는 이전 블록들의 세트 중 하나만이 수신되었으면 된다.
암호문 c1의 이후의 블록들은 i인 카운트 및 현재의 i번째 입력 벡터 Ii를 이전 입력 벡터들의 세트 Ii -j 중의 하나로부터 생성하기 위한 수단을 포함하는 헤더를 갖는다. 도 2b에 도시된 바와 같이, 세트는 세트 Ii -j일 수 있다(j는 J={1, 2, 4, 6}과 같이 정수들의 세트). 세트 J에 수를 더 추가하면 상이한 이전에 수신된 블록들을 사용하는 더 많은 옵션이 있으므로 더 많은 블록들이 손실될 수 있게 하여 탄력성을 향상시킨다. 그러나, 이는 각각의 블록의 페이로드 데이터(payload data)의 양을 감소시키는 세트 J에 대한 헤더에 요구되는 데이터와 균형이 맞추어져야 한다.
만약 바로 이전의 블록이 수신되지 않았다면, 현재 블록은 이전 블록들의 세트 중 임의의 하나에 대한 현재 블록 헤더에 제공되는 함수와 이전 블록의 입력 벡 터로부터 현재 입력 벡터를 결정함으로써 복호화될 수 있다.
도 2c를 참조하면, 설명되는 복호화 방법의 일 실시예가 도시되어 있다. 암호문의 블록들은 도 2b에 도시된 바와 같이 각각 대응하는 헤더들(251-256)을 갖는 c1, c2, c3, c4, c5, c6(241-246)으로 수신된다.
암호문의 제1 블록 c1(241)은 수신자에게 공급된 키(231)와 함께 블록 암호 복호화(250)를 사용하여 복호화된다. 이 결과는 수신자에게 공급된 제1 입력 벡터 I1(211)과 XOR되고(220), 이는 평문의 제1 블록 p1(201)을 가져온다.
암호문의 제2 블록 c2(242)은 2인 카운트(262) 및 제1 입력 벡터 I1(211)로부터 현재 제2 입력 벡터 I2(212)를 생성하기 위한 수단(272)을 갖는 헤더(252)와 함께 수신된다.
암호문의 제2 블록 c2는 키(231)와 함께 블록 암호 복호화(250)를 사용하여 복호화된다. 이 결과는 제2 입력 벡터 I2(212)와 XOR되고(220), 이는 평문의 제2 블록 p2(202)를 가져온다.
암호문의 이후의 블록들 ci(242)는, 도 2b에 도시된 바와 같이, i인 카운트 및 이전 입력 벡터들의 미리 정의된 세트 Ii -j로부터 현재 i번째 입력 벡터 Ii를 생성하기 위한 수단을 갖는 헤더와 함께 수신된다. 미리 정의된 세트는 세트 Ii -j로 도시되어 있다(J는 J={1, 2, 4, 6}과 같이 정수들의 세트).
암호문의 이후의 블록 ci는 키(231)와 함께 블록 암호 복호화(250)를 사용하여 복호화된다. 이 결과는 i번째 입력 벡터 Ii(212)와 XOR되고(220), 이는 평문의 i번째 블록 pi를 가져온다.
암호문의 제6 블록 c6(246)은 6인 카운트(266) 및 제2, 제4, 또는 제5 입력 벡터 I2(212), I4(214), I5(215) 중 하나로부터 현재 제6 입력 벡터 I6(216)를 생성하기 위한 수단(276)을 갖는 헤더(256)와 함께 수신된다. 일 예로서, 암호문의 제5 블록 c5(245)가 수신되지 않았을 수 있고, 따라서 이전에 저장되었던 제4 또는 제2 입력 벡터 I2(212), I4(214)가 제6 입력 벡터 I6(216)을 얻기 위해 사용될 수 있다.
암호문의 제6 블록 c6(246)은 키(231)와 함께 블록 암호 복호화(250)를 사용하여 복호화된다. 이 결과는 제6 입력 벡터 I6(216)과 XOR되고(220), 이는 평문의 제6 블록 p6(206)을 가져온다.
도 3을 참조하면, 설명되는 암호화 방법의 순서도(300)가 도시되어 있다.
필요한 키들을 송신자와 하나 이상의 수신자 사이의 안전하고 신뢰성 있는 연결 상으로 통신하는 예비 단계가 세션에 앞서 실행된다. 이러한 통신에서, 다음 정보들이 전송된다:
암호화 세션 키;
정의된 이전 블록들의 세트, 예를 들어, 이전 블록들의 일련의 수에 의해 주어지는 세트;
입력 벡터의 디코딩에 필요한 파라미터들;
제1 입력 벡터 I1로 사용되는 초기 난수.
세션의 각 단계에서, 도 3의 순서도가 실행된다. 데이터 블록은 그 데이터 블록을 위해 생성된 난수(Icurrent)를 사용하여 암호화된다(301). 난수들은 입력 벡터라고도 불린다.
일 실시예에서, 암호화(301)는 데이터 블록과 난수(Icurrent)의 비트단위 XOR 연산을 수행하고, 이어서 이 결과를 세션 키를 사용하여 암호화 함수로 암호화함으로써 실행된다. 난수(Icurrent)를 사용하는 다른 형태의 암호화가 선택적으로 사용될 수 있다.
이어서 어떤 이전에 전송된 데이터 블록들이 정의된 세트 내에 있는지 결정된다(302). 이전에 전송된 데이터 블록들의 각각은 그 블록의 암호화에서 사용된 서로 다른 난수(Iprevious)를 갖는다.
세트 내의 각각의 이용가능한 이전에 전송된 데이터 블록에 대해, 현재 처리되는 데이터 블록의 난수(Icurrent)는 이전에 전송된 데이터 블록의 난수(Iprevious)를 사용하여 인코딩된다(303).
이러한 인코딩은 세트의 모든 이용가능한 난수(Iprevious)에 대해 병렬적으로 실행될 수 있다. 암호화 단계(301) 또한 인코딩(303)과 병렬적으로 실행될 수 있다. 이 알고리즘의 병렬적 속성은 셀 마이크로프로세서의 SPEs(Synergistic Processing Elements)와 같은 스트림-지향 코-프로세서를 위한 소프트웨어 또는 하드웨어로 구현하는데 이상적으로 적합하다.
세션 내의 제1 데이터 블록이 암호화될 때, 사용가능한 세트 내의 이전에 전송된 데이터 블록들은 존재하지 않을 것이다. 이것이 제1 난수 I1이 안전한 연결을 통해 전송되는 이유이다.
데이터 블록들이 세션 내에서 조기에 암호화될 때, 세트 내의 이전에 전송된 데이터 블록들 중 하나 또는 둘만이 이용가능할 수 있다. 세션이 진행됨에 따라, 이용가능한 세트 내의 이전에 전송된 블록들의 수가 증가하여, 이 방법에 더 많은 탄력성을 준다.
암호화된 데이터 블록은 세트의 하나 이상의 난수(Iprevious)로 인코딩된 난수(Icurrent)와 함께 전송된다(304).
도 4를 참조하면, 설명되는 복호화 방법의 순서도(400)가 도시되어 있다.
필요한 키들을 송신자와 하나 이상의 수신자 사이의 안전한 연결 상으로 통신하는 예비 단계가 도 3에 관하여 설명된 바와 같이 세션에 앞서 실행된다.
암호화된 데이터 블록이 세트 내의 이전에 수신된 데이터 블록들의 하나 이상의 난수(Iprevious)로 인코딩된 난수(Icurrent)와 함께 수신된다(401).
난수(Iprevious)가 저장된 이전에 수신된 데이터 블록들의 세트 중 하나가 선택된다(402).
난수(Icurrent)는 선택된 이전의 데이터 블록의 난수(Iprevious)를 사용하여 디코딩된다(403).
암호화된 데이터 블록은 난수(Icurrent)를 사용하여 복호화되고, 난수(Icurrent)는 이후의 데이터 블록들을 디코딩하는데 사용하기 위해 저장된다(404).
설명된 방법은 이전에 전송된 데이터 블록들의 세트 중 임의의 하나가 수신되고 복호화되었을 때 데이터 블록이 복호화될 수 있도록 한다. 이는 모든 데이터 블록의 전달이 보장되지 않는 경우에 사용될 수 있는 방법을 제공한다.
도 4는 방법의 정상 상태(steady-state) 동작을 도시한다. 새로운 연결자들은 복호화에 참여할 수 있기 전에 적어도 하나의 Ij를 받아야할 것이다.
설명되는 암호화 및 복호화의 방법의 알고리즘의 예시적인 실시예가 제공된다. 알고리즘은 다음 정의를 사용한다:
A xor B - 연산자 A 및 B로 비트단위 XOR 연산을 수행함.
AB mod C - A의 B제곱을 계산하고, 이 중간 결과를 C로 나누었을 때 나머지가 최종 결과임.
소수 - 그 자신 외에는 1보다 큰 정수에 의해 나머지 없이 나누어떨어지지 않는 1보다 큰 정수.
A 증가 - A에 1을 더함.
난수 - 동일한 소스로부터 이전에 얻어진 수들에 기초하여 예측할 수 없는 수.
초기화 벡터 - CBC 암호화 방식을 사용할 때 제1 블록을 숨기기(obscure) 위해 사용되는 데이터의 벡터.
송신 애플리케이션은 다음의 단계들을 실행한다:
g라고 불리는 숫자를 선택함. 예를 들어, g=2.
φ라고 불리는 소수를 선택함.
숫자들의 리스트 J를 선택함, 예를 들어, J={1, 2, 4, 8}.
g, φ, 및 J의 선택은, 예를 들어, 암호화 키를 송신하는데도 사용되는 안전한 연결을 통해, 수신자에게 알려진다.
정수 메시지 카운터 C는 0으로 설정된다.
전송될 각각의 메시지에 대해, C=i의 경우, 다음 단계들이 수행된다:
난수 Ii를 검색함.
사용자 데이터를 암호화할 때 Ii를 입력 벡터로서 사용함.
리스트 J의 각각의 요소 j에 대해 다음 단계들을 반복함:
Ii -j를 시퀀스 숫자가 i-j였을 때 사용된 I의 값으로 설정함.
난수 rij를 검색함.
Figure 112009061076463-PCT00001
를 계산함. 이값은 나중을 위해 저장됨.
Figure 112009061076463-PCT00002
를 계산함. 이값은 나중을 위해 저장됨.
C, 올바른 순서의 qij 및 sij의 모든 쌍, 및 암호화된 사용자 데이터를 메시지에 넣음.
메시지를 전송함.
수신 애플리케이션은 다음을 실행한다:
안전하고 신뢰적인 연결로 송신자에 연결하고 다음 정보를 검색함:
g, φ, J, C의 최근 값, j의 I의 최근 값.
비신뢰적인 연결 상으로 메시지들을 수신하기 시작함.
수신된 각각의 메시지에 대해, 다음 단계들을 수행함:
메시지로부터 C, qij 및 sij의 모든 쌍, 암호화된 사용자 데이터를 얻음.
메시지 C-j로부터의 Ii -j가 알려진 qij 및 sij의 쌍을 찾음.
이 정보를 이용하여,
Figure 112009061076463-PCT00003
를 계산함.
C-j보다 더 오래된 메시지들로부터의 Ii -j의 오래된 값을 버림.
Ii를 사용자 데이터를 디코딩하기 위한 입력 벡터로서 사용함.
복호화된 사용자 데이터를 원하는 사람 누구에게나 줌.
{qij, sij}가 알려진 Ii -j의 정보 없이 Ii를 결정하는 것은 이산 대수(discrete logarithm)를 계산할 것을 요구하는데, 이에 대해 알려진 효율적인 알고리즘이 존재하지 않는다.
이제까지는, 암호화될 데이터 블록이 정확히 암호화 알고리즘에 의해 요구되는 크기인 경우만이 고려되었다. 실제로는 크기가 더 큰 경우가 많다. 이러한 상황에서, 위에 설명된 방법은 메시지의 암호화-알고리즘 크기의 제1 블록을 인코딩하는데 사용되고, CBC의 종래 기술이 메시지의 나머지 부분을 암호화하는데 사용된다.
설명된 방법은 CBC 모드와 유사점들을 갖지만, 수신자가 바로 이전의 암호문을 수신하지 않고서도 사용될 수 있다는 장점을 갖는다. 난수가 생성되어 각각의 데이터 블록에 대한 입력 평문과 XOR된다. 입력 벡터라고 불리는 이 랜덤 입력 값은 이어서 수신자가 이전의 암호문들의 세트 중 하나를 수신한 경우 디코딩할 수 있는 방법으로 인코딩된다. 무작위로 선택된 이값은 CBC 동작 모드의 제1 단계에서의 IV와 동일한 기능을 갖는다. 입력 벡터는 암호화되지 않고 전송될 수 있지만, 이는 암호 해독을 더 용이하게 할 것이다.
본 발명은 전체적으로 하드웨어인 실시예, 전체적으로 소프트웨어인 실시예 또는 하드웨어와 소프트웨어 요소를 모두 포함하는 실시예의 형태를 취할 수 있다. 바람직한 일 실시예에서, 본 발명은 소프트웨어로 구현되는데, 이는 펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함하지만, 이에 한정되지는 않는다.
본 발명은 컴퓨터 또는 임의의 명령어 실행 시스템에 의해 또는 이와 함께 사용되는 프로그램 코드를 제공하는 컴퓨터-이용가능 또는 컴퓨터-판독가능 매체로 부터 액세스 가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 이 설명의 목적으로, 컴퓨터 이용가능 또는 컴퓨터 판독가능 매체는 명령어 실행 시스템, 기구 또는 장치에 의해 또는 이와 함께 사용되는 프로그램을 보유, 저장, 전달, 전파, 또는 운반할 수 있는 임의의 기구일 수 있다.
매체는 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템(또는 기구 또는 장치) 또는 전파 매체일 수 있다. 컴퓨터-판독가능 매체의 예는 반도체 또는 고체 상태 메모리, 자기 테이프, 착탈식 컴퓨터 디스켓, RAM, ROM, 강성 자기 디스크 및 광학 디스크를 포함한다. 광학 디스크의 현재 예는 CD-ROM, CD-R/W, 및 DVD를 포함한다.
위에서 상세히 설명된 본 방법은 데이터로의 액세스를 제한하는 역할을 하면서도, 데이터 스트림의 모든 부분이 수신되는 것이 보장되지 않는 경우 의도된 수신자에 의한 복호화를 가능하게 한다. 이러한 시스템의 예는 인터넷 상의 브로드캐스트 및 멀티캐스트 네트워크 전송, 텔레비전 브로드캐스트, 통신 위성으로부터의 브로드캐스트, 라디오 브로드캐스트뿐 아니라 우편을 통해 전송되는 물리적 매체 또한 포함한다. 본 방법은 전체 데이터 스트림을 수신하지 못한 수신자에게 데이터 스트림의 누락된 부분을 재전송하는 것이 비현실적이거나 쓸모없는 상황에 특히 적합하다. 재전송이 쓸모없는 하나의 예는 브로드캐스트 텔레비전인데, 이는 순서에서 벗어나 이전에 누락된 부분을 보여주는 것은 가치가 없기 때문이다. 다른 하나의 예는 비신뢰적 네트워크 연결 상의 멀티캐스트를 사용하여 구독자들에게 메시지를 전송하는 발행/구독 메시지 브로커이다.
본 발명의 범위를 벗어나지 않고 이전의 내용에 향상 및 변경이 이루어질 수 있다.

Claims (10)

  1. 데이터 블록들을 암호화하기 위한 방법으로서,
    데이터 블록(201-206)을 상기 데이터 블록(201-206)을 위해 생성된 현재 난수(current random number)(211-216)를 사용하여 암호화하는 단계(301);
    상기 현재 난수(211-216)를 이전 난수들의 세트 중 하나 이상을 사용하여 인코딩하는 단계(303) - 상기 이전 난수들의 세트의 각각은 이전에 전송된 데이터 블록(201-206)을 암호화하는데 사용되었음 - ; 및
    상기 암호화된 데이터 블록(241-246)을 상기 인코딩된 현재 난수(272-276)의 하나 이상의 버전과 함께 송신하는 단계(304) - 각각의 버전은 상기 이전 난수들 중 서로 다른 것을 사용하여 인코딩되었음 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    데이터 블록(201-206)을 현재 난수(211-216)를 사용하여 암호화하는 단계(301)는 상기 데이터 블록(201-206)과 상기 현재 난수(211-216)로 비트단위 XOR 연산을 수행하는 단계, 및 상기 결과를 세션 키를 사용하여 암호화 함수로 암호화하는 단계를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    암호화 세션 키;
    정의된 이전 블록들의 세트;
    난수의 디코딩을 위해 필요한 파라미터들; 및
    제1 데이터 블록(201)을 위해 사용되는 초기 난수(211)
    를 포함하는, 송신자와 하나 이상의 수신자 사이의 안전한 통신(280)이 실행되는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 현재 난수(211-216)를 이전 난수들의 세트 중 하나 이상을 사용하여 인코딩하는 단계(303)는 상기 세트의 모든 이용가능한 이전 난수들에 대해 병렬로 실행되는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 데이터 블록(201-206)을 암호화하는 단계(301)는 상기 현재 난수(211-216)를 상기 이전 난수들의 세트 중 하나 이상을 사용하여 인코딩하는 단계와 병렬로 실행되는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 방법은 암호화-알고리즘 크기의 제1 데이터 블록(201-206)을 암호화하는데 사용되고, 임의의 나머지 데이터는 CBC(cipher-block chaining) 방법을 사용 하여 암호화되는, 방법.
  7. 데이터 블록들을 복호화하기 위한 방법으로서,
    암호화된 데이터 블록(241-246)을 인코딩된 현재 난수(272-276)의 하나 이상의 버전과 함께 수신하는 단계(401) - 각각의 버전은 이전에 사용된 난수들 중 서로 다른 것을 사용하여 인코딩되었음 - ;
    난수가 이용가능한(291-296) 이전에 수신된 데이터 블록들의 세트 중 하나를 선택하는 단계(402);
    상기 선택된 이전에 수신된 데이터 블록(201-206)의 상기 난수를 사용하여 상기 현재 난수(211-216)를 디코딩하는 단계(403); 및
    상기 수신된 암호화된 데이터 블록(241-246)을 상기 디코딩된 현재 난수를 사용하여 복호화하는 단계(404)
    를 포함하는 방법.
  8. 데이터 블록들을 암호화하기 위한 장치로서,
    데이터 블록(201-206)을 상기 데이터 블록(201-206)을 위해 생성된 현재 난수(211-216)를 사용하여 암호화하기 위한 수단(301);
    상기 현재 난수(211-216)를 이전 난수들의 세트 중 하나 이상을 사용하여 인코딩하기 위한 수단(303) - 상기 이전 난수들의 세트의 각각은 이전에 전송된 데이터 블록(201-206)을 암호화하는데 사용되었음 - ; 및
    상기 암호화된 데이터 블록(241-246)을 상기 인코딩된 현재 난수(272-276)의 하나 이상의 버전과 함께 송신하기 위한 수단(304) - 각각의 버전은 상기 이전 난수들 중 서로 다른 것을 사용하여 인코딩되었음 -
    을 포함하는 장치.
  9. 데이터 블록들을 송신하기 위한 시스템으로서,
    데이터 블록(201-206)을 상기 데이터 블록(201-206)을 위해 생성된 현재 난수(211-216)를 사용하여 암호화하기 위한 수단;
    상기 현재 난수(211-216)를 이전 난수들의 세트 중 하나 이상을 사용하여 인코딩하기 위한 수단 - 상기 이전 난수들의 세트의 각각은 이전에 전송된 데이터 블록(201-206)을 암호화하는데 사용되었음 - ;
    상기 암호화된 데이터 블록(241-246)을 상기 인코딩된 현재 난수(272-276)의 하나 이상의 버전과 함께 송신하기 위한 수단 - 각각의 버전은 상기 이전 난수들 중 서로 다른 것을 사용하여 인코딩되었음 - ;
    암호화된 데이터 블록(241-246)을 인코딩된 현재 난수(272-276)의 하나 이상의 버전과 함께 수신하기 위한 수단;
    난수가 이용가능한(291-296) 이전에 수신된 데이터 블록들의 세트 중 하나를 선택하기 위한 수단;
    상기 현재 난수(211-216)를 상기 선택된 이전에 수신된 데이터 블록(201-206)의 상기 난수를 사용하여 디코딩하기 위한 수단; 및
    상기 수신된 암호화된 데이터 블록(241-246)을 상기 디코딩된 현재 난수를 사용하여 복호화하기 위한 수단
    을 포함하는 시스템.
  10. 컴퓨터 상에서 실행되었을 때 제1항 내지 제7항 중 어느 한 항의 모든 단계들을 수행하도록 구성되는 프로그램 코드 수단을 포함하는 컴퓨터 프로그램.
KR1020097020846A 2007-06-15 2008-05-28 데이터 블록의 암호화를 위한 방법 및 시스템 KR20090133109A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0711711A GB0711711D0 (en) 2007-06-15 2007-06-15 Method and system for encryption of blocks of data
GB0711711.2 2007-06-15

Publications (1)

Publication Number Publication Date
KR20090133109A true KR20090133109A (ko) 2009-12-31

Family

ID=38332259

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097020846A KR20090133109A (ko) 2007-06-15 2008-05-28 데이터 블록의 암호화를 위한 방법 및 시스템

Country Status (6)

Country Link
US (2) US9124418B2 (ko)
EP (1) EP2168300B1 (ko)
KR (1) KR20090133109A (ko)
CN (1) CN101682502A (ko)
GB (1) GB0711711D0 (ko)
WO (1) WO2008151935A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017183832A1 (ko) * 2016-04-20 2017-10-26 주식회사 이디엄 열 지향 레이아웃 파일의 생성 방법
KR20180007974A (ko) * 2016-07-15 2018-01-24 (주)구름네트웍스 데이터의 암호화, 복호화 방법 및 이를 이용하는 장치

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8687809B2 (en) * 2011-05-27 2014-04-01 Adobe Systems Incorporated System and method for decryption of content including disconnected encryption chains
US8725788B2 (en) 2011-05-27 2014-05-13 Adobe Systems Incorporated System and method for decryption of content including partial-block discard
JP5875441B2 (ja) 2012-03-29 2016-03-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データを暗号化する装置及び方法
CN104683093B (zh) * 2013-11-27 2018-01-26 财团法人资讯工业策进会 兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法
KR101891420B1 (ko) * 2013-12-24 2018-08-23 인텔 코포레이션 DaaS를 위한 컨텐츠 보호
DE102015201430A1 (de) * 2015-01-28 2016-07-28 Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik Intrinsische Authentifizierung von Programcode
EP3089398B1 (en) * 2015-04-30 2017-10-11 Nxp B.V. Securing a cryptographic device
CN107615702A (zh) 2016-03-24 2018-01-19 慧与发展有限责任合伙企业 文本加密
CN105791434A (zh) * 2016-04-27 2016-07-20 深圳市永兴元科技有限公司 分布式数据处理方法及数据中心
US10725743B2 (en) 2018-01-22 2020-07-28 John Rankin System and method for generating random numbers
WO2019152573A1 (en) 2018-01-31 2019-08-08 John Rankin System and method for secure communication using random blocks or random numbers
WO2019168978A1 (en) 2018-02-28 2019-09-06 John Rankin System and method for expanding a set of random values
US10903977B2 (en) * 2018-12-19 2021-01-26 Rankin Labs, Llc Hidden electronic file systems
US11989320B2 (en) * 2018-12-19 2024-05-21 Rankin Labs, Llc Hidden electronic file system within non-hidden electronic file system
CN109981251B (zh) * 2019-03-05 2022-06-07 湖南国科微电子股份有限公司 随机数序列压缩方法、装置及电子设备
US11151265B2 (en) 2019-04-29 2021-10-19 International Business Machines Corporation Secure data storage based on obfuscation by distribution
CN111199047B (zh) * 2019-12-31 2022-08-05 中移(杭州)信息技术有限公司 数据加密方法、解密方法、装置、设备及存储介质
GB2619071A (en) * 2022-05-26 2023-11-29 Pqshield Ltd Secure processing system and method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1063811B1 (en) * 1999-06-22 2008-08-06 Hitachi, Ltd. Cryptographic apparatus and method
EP2955652A1 (en) * 2000-06-16 2015-12-16 MIH Technology Holdings BV Methods and systems to distribute content via a network utilizing distributed conditional access agents and secure agents, and to perform digital rights management (drm)
US20020048364A1 (en) * 2000-08-24 2002-04-25 Vdg, Inc. Parallel block encryption method and modes for data confidentiality and integrity protection
US6963976B1 (en) * 2000-11-03 2005-11-08 International Business Machines Corporation Symmetric key authenticated encryption schemes
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
WO2005064836A1 (en) * 2003-12-22 2005-07-14 America Online, Inc A system and method for using a streaming protocol

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017183832A1 (ko) * 2016-04-20 2017-10-26 주식회사 이디엄 열 지향 레이아웃 파일의 생성 방법
KR20180007974A (ko) * 2016-07-15 2018-01-24 (주)구름네트웍스 데이터의 암호화, 복호화 방법 및 이를 이용하는 장치

Also Published As

Publication number Publication date
EP2168300B1 (en) 2015-11-18
WO2008151935A1 (en) 2008-12-18
CN101682502A (zh) 2010-03-24
US9673976B2 (en) 2017-06-06
US9124418B2 (en) 2015-09-01
US20150333907A1 (en) 2015-11-19
US20100002868A1 (en) 2010-01-07
EP2168300A1 (en) 2010-03-31
GB0711711D0 (en) 2007-07-25

Similar Documents

Publication Publication Date Title
US9673976B2 (en) Method and system for encryption of blocks of data
CN110313146B (zh) 模糊度增强
US7693278B2 (en) Data distribution apparatus and data communications system
JP7008725B2 (ja) カウンタベースの暗号システムにおける改良型認証付き暗号化のための方法及びシステム
Agrawal et al. Implementation and analysis of various symmetric cryptosystems
US20090245516A1 (en) Method and system for high entropy encryption using an unpredictable seed based on user regisration time
JP2016513825A (ja) 安全通信方法および装置
EP3476078B1 (en) Systems and methods for authenticating communications using a single message exchange and symmetric key
KR20090031777A (ko) 메시지 인증 암호화 방법
KR20050027254A (ko) 데이터 처리 시스템을 위한 효율적인 암호화 및 인증
US20150229621A1 (en) One-time-pad data encryption in communication channels
RU2462825C1 (ru) Способ скрытой передачи зашифрованной информации по множеству каналов связи
JP6468567B2 (ja) 鍵交換方法、鍵交換システム
Sahu et al. Securing messages from brute force attack by combined approach of honey encryption and blowfish
Knudsen Dynamic encryption
Han et al. Video encryption scheme using hybrid encryption technology
Abd Zaid et al. Survey on modern cryptography
WO2003049363A1 (en) System and method for symmetrical cryptography
Nori Improving Security Using Cryptography Based on Smartphone User Locations
Patil et al. A Survey on an Enhanced Cryptographic Technique for Messages Encryption and Decryption
Nandini et al. An enhanced approach for secret key algorithm based on data encryption standard
KR101616717B1 (ko) 버냄 사이퍼 암호 알고리즘을 이용한 암복호화 서비스 제공 방법 및 시스템
Devi et al. A Research: Image Encryption Using Chaotic and Logistic Map and Pixel Hobbling
Sowti Khiabani Achievable secrecy enchancement through joint encryption and privacy amplification
Khiabani Achievable secrecy enchancement through joint encryption and privacy amplification

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
NORF Unpaid initial registration fee