KR100420552B1 - 데이타의 암호화 방법 및 장치 - Google Patents

데이타의 암호화 방법 및 장치 Download PDF

Info

Publication number
KR100420552B1
KR100420552B1 KR1020020048389A KR20020048389A KR100420552B1 KR 100420552 B1 KR100420552 B1 KR 100420552B1 KR 1020020048389 A KR1020020048389 A KR 1020020048389A KR 20020048389 A KR20020048389 A KR 20020048389A KR 100420552 B1 KR100420552 B1 KR 100420552B1
Authority
KR
South Korea
Prior art keywords
data
encryption
random number
compression
key
Prior art date
Application number
KR1020020048389A
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 가부시끼가이샤 히다치 세이사꾸쇼
Application granted granted Critical
Publication of KR100420552B1 publication Critical patent/KR100420552B1/ko

Links

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/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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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
    • 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
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/30Compression, e.g. Merkle-Damgard construction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Collating Specific Patterns (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

데이타에 압축과 암호화를 모두 실시하는 암호화의 처리효율 및 해독에 대한 강도의 향상에 관한 것으로서, 평문데이타중 최초에 암호화되는 블럭은 다른 블럭의 암호화의 중간결과를 이용할 수 없기 때문에 다수의 평문데이타에 걸쳐서 최초의 블럭의 입출력을 수집하는 것에 의해 최초의 블럭의 키가 추정되어 그것을 실마리로 암호 전체가 해독되어 버릴 수 있다는 문제점을 해결하기 위해서, 데이타를 입력 또는 수신하는 스텝 및 데이타를 암호화하는 스텝을 포함하며, 데이타 암호화 스텝이 난수를 발생하는 스텝과 난수 또는 이 난수에 의존해서 산출된 값을 데이타의 암호화의 파라미터로 설정하는 스텝을 포함하고, 난수가 초기값에 대해서 암호화 처리를 반복 실행하는 것에 의해 발생되도록 하였다.
이렇게 하는 것에 의해, 암호처리와 압축 및 암호처리에 있어서 처리시간의 증가를 수반하지 않고 차분해독 및 선형해독을 방지할 수 있어 처리의 성능 및 해독에 대한 강도를 향상시킬 수 있다.

Description

데이타의 암호화 방법 및 장치{METHOD AND APPARATUS FOR ENCRYPTING DATA}
본 발명은 데이타의 암호화에 관한 것으로, 특히 암호화에 있어서의 처리효율 및 해독에 대한 강도의 향상에 관한 것이다. 또, 본 발명은 데이타의 압축을 포함한 암호화에 관한 것으로, 특히 데이타에 압축과 암호화를 모두 실시하는 암호화의 처리효율 및 해독에 대한 강도의 향상에 관한 것이다.
조직의 중추정보가 전자화되고 또한 네트워크를 거쳐서 통신되는 일이 증가함에 따라 전자화된 데이타를 훔처보기나 개찬으로부터 보호하기 위해 데이타 암호화기술의 중요성이 높아지고 있다. 암호이론입문, 공립출판(1993년) pp.27∼pp.32에 기술되어 있는 바와 같이, 암호방식은 대칭암호와 비대칭키암호로 크게 나뉘지만, 본 발명에서는 대량데이타의 암호화에 적합한 대칭암호의 개량을 목적으로 한다. 이하, 비밀키암호를 단지 암호라고 부르기로 한다.
우선, 암호에 관한 기본적인 용어를 설명한다. 상기 문헌의 pp.33∼pp.59에 기술되어 있는 바와 같이, 암호에서는 비밀의 파라미터를 사용해서 평문데이타를 암호데이타로 변환한다. 암호데이타의 복호에서는 암호화에 사용한 것과 동일한 비밀의 파라미터를 사용한 역변환에 의해 원래의 평문데이타를 구한다. 이 비밀의 파라미터를 일반적으로 암호의 키라 부른다. 또, 암호처리는 1종류 또는 수종류의 기본함수의 반복으로 구성된다. 이 반복 횟수를 암호의 단수라 부른다. 또, 암호처리의 이용에 있어서는 입력데이타를 소정 사이즈의 부분으로 분할하고, 부분마다 암호처리를 적용한다. 이 처리의 단위로 되는 데이타를 암호의 블럭이라 한다.
암호의 방식 설계 및 운용에서는 각종 암호해독방법에 대한 방어가 중요한 요건으로 된다. 종래 가장 많이 사용되고 있는 해독방법은 키의 전체 수의 탐색이지만, 최근에는 보다 효율적인 차분해독 및 선형 해독이 주목받고 있다.
상기 문헌의 pp.163∼pp.166 및 DES암호의 선형해독법, 암호와 정보안전심포지움(1993년)에 기술되어 있는 바와 같이 차분 및 선형해독에서는 암호방식에 고유의 평문데이타, 암호데이타, 키간의 상관을 이용하여 동일한 키에 의한 암호처리의 입출력(평문데이타와 암호데이타)를 다수 수집해서 통계처리를 실행하는 것에 의해 그 키를 추정한다.
종래의 암호방식에 있어서의 차분 및 선형해독에 대한 방어방법은 암호단수의 증가에 의해 평문데이타, 암호데이타, 키간의 상관을 작게하는 방법이었다.
암호 및 복호의 처리시간은 암호단수에 비례한다. 그래서, 상기 암호단수의 증가에 의한 차분 및 선형해독에 대한 방어에는 처리시간의 증가라는 큰 문제가 있었다.
본 발명의 목적은 상기한 문제를 해결하기 위해 이루어진 것으로, 처리시간의 증가를 수반하지 않고 차분 및 선형해독을 방지하는 방법을 확립하는 것에 의해 암호에 있어서의 처리성능과 안전성(security)을 향상시키는 것이다.
도 1은 본 발명의 제1 실시예의 기능구성도,
도 2는 본 발명의 제1 실시예에 있어서의 제어처리의 동작을 도시한 흐름도,
도 3은 본 발명의 제1 실시예에 있어서의 평문데이타와 압축데이타의 대응관계를 도시한 하프만트리의 예를 도시한 도면,
도 4는 본 발명의 제1 실시예에 있어서의 하프만트리의 변형예를 도시한 도면,
도 5는 본 발명의 제2 실시예의 기능구성도,
도 6은 본 발명의 제2 실시예에 있어서의 제어처리의 동작을 도시한 흐름도.
상술한 바와 같이, 차분 및 선형해독에서는 동일 키에 의한 암호처리의 입출력(평문데이타와 암호데이타)를 다수 수집해서 통계처리를 실행하는 것에 의해 키를 추정한다. 그래서, 본 발명의 제1 방법에서는 평문데이타를 입력 또는 수신하는 스텝과 그 데이타를 암호화하는 스텝을 갖는 정보처리시스템에 있어서, 평문데이타의 임의의 블럭의 암호화의 키로서 다른 블럭의 암호화의 중간결과 또는 그것에 의존해서 산출한 값을 사용한다. 본 방법에 의하면, 평문데이타에 의존해서 블럭마다 키가 다르므로, 상기 통계처리가 불가능하게 되어 차분 및 선형해독을 방지할 수 있다.
상기 제1 방법에서는 평문데이타중 최초에 암호화되는 블럭에 대해서는 다른 블럭의 암호화의 중간결과를 이용할 수 없으므로 키가 일정하게 된다. 그래서, 다수의 평문데이타에 걸쳐서 최초의 블럭의 입출력을 수집하는 것에 의해 최초의 블럭의 키가 추정되고, 그것을 실마리로 암호 전체가 해독될 가능성이 있다. 이 문제를 해결하기 위해, 본 발명의 제2 방법에서는 평문데이타를 입력 또는 수신하는 스텝과 그 데이타를 암호화하는 스텝을 갖는 정보처리시스템에 있어서, 평문데이타마다 난수를 발생하고 그 값을 그 평문데이타의 암호화에 있어서의 최초의 블럭의 키로 한다. 이 제2 방법에 의하면, 평문데이타마다 최초의 블럭의 키가 다르므로, 상기 제1 방법의 문제점을 해결할 수 있다.
또, 암호처리는 압축처리와 함께 이용되는 경우가 많다. 데이타 압축핸드북, 인쇄판(1994년) pp.21∼pp.247에 기술되어 있는 바와 같이, 압축에서는 평문데이타의 비트열을 보다 짧은 비트열로 치환하는 것에 의해 데이타를 압축하지만, 평문데이타의 비트열과 압축데이타의 비트열의 대응관계는 여러가지 가능하다. 그래서, 본 발명의 제3 방법에서는 데이타를 입력 또는 수신하는 스텝, 그 데이타를 압축하는 스텝 및 압축데이타를 암호화하는 스텝을 갖는 정보처리시스템에 있어서, 평문데이타의 임의의 블럭의 압축에 있어서의 평문데이타의 비트열과 압축데이타의 비트열의 대응관계를 다른 블럭의 암호화의 중간결과에 의존해서 결정한다.이 제3 방법에 의하면, 평문데이타의 비트열과 압축데이타의 비트열의 대응관계가 평문데이타에 의존해서 블럭마다 변한다. 또, 암호화의 중간결과는 키를 모르는 한 추정불능이므로, 평문데이타의 비트열과 압축데이타의 비트열의 대응관계의 변화는 키를 모르는 한 추정불능이다. 따라서, 상기 제3 방법에 의하면, 압축을 일종의 암호로 할 수 있어 암호단수를 증가시키는 것과 마찬가지의 효과가 얻어지고, 차분 및 선형해독을 방지할 수 있다.
이하, 도 1∼도 6을 사용해서 본 발명의 2개의 실시예를 설명한다.
도 1은 본 발명의 제1 실시예의 기능구성을 도시한 도면이다. 블럭(101)은 완결된 정보처리시스템이다. 블럭(102)는 중앙처리장치, 입출력장치에 의해 실현되는 처리로서, 입출력(103), 제어(104), 난수발생(105), 키생성(106), 대응관계변경(107), 압축(108), 전단암호화(109), 후단암호화(110)으로 이루어진다. 블럭(111)은 RAM(Random Access Memory)나 디스크에 의해 실현되는 메모리로서, 평문데이타(112), 난수(113), 공통키(114), 대응관계(115), 실행키(116), 압축 및 암호데이타(117)을 기억한다.
입출력(103)은 외부에서 평문데이타를 입력하고, 메모리(111)에 저장한다. 또, 압축 및 암호명령을 입력하고 제어(104)로 전달한다. 한편, 압축 및 암호데이타(117)을 메모리(111)에서 리드하여 외부로 출력한다. 제어(104)는 입출력(103)에서 압축 및 암호명령을 받았을 때 난수발생(105)를 기동해서 난수를 발생하고, 다음에 키생성(106)을 기동해서 실행키를 생성한다. 다음에, 평문데이타(112)를 메모리(111)에서 리드하고, 압축(108), 전단암호화(109),후단암호화(110), 대응관계변경(107), 실행키의 변경의 5가지의 처리를 반복해서 실행하는 것에 의해 평문데이타를 압축 및 암호화한다. 제어(104)에 대해서는 다음에 상세하게 기술한다.
난수발생(105)의 실현에는 암호이론입문, 공립출판(1993년) pp.61∼pp.86에 기술되어 있는 바와 같은 종래의 난수발생방법을 사용한다. 일예로서는 메모리(111)중의 난수(113)에 적당한 초기값을 설정해 두고, 난수발생(105)가 기동될 때마다 전회의 난수(113)을 리드하고, 이것에 난수발생(105)의 내부에서 암호처리를 적용하고, 그 결과를 새로운 난수로 한다. 또, 메모리(111)중의 난수(113)을 새로운 난수로 치환한다.
키생성(106)은 난수(113)과 공통키(114)에서 실행키(116)을 생성한다. 그 실현에는 전자정보통신학회논문지, E74권 8호 pp.2153∼pp.2159(Institution for Electronic, Information and Communication Engineers, Transaction, Vol. E74, No.8, pp. 2153-2159)에 기술되어 있는 바와 같은 방법을 사용한다.
대응관계변경(107)은 평문데이타중의 비트열과 압축데이타중의 비트열의 대응관계(115)를 실행키에 따라서 변경한다. 이 대응관계의 구체예는 압축(110)의 구체예에 의존한다. 본 실시예에서는 압축(108)에서 하프만압축을 사용한다. 하프만압축에 있어서의 평문비트열과 압축비트열의 대응관계는 하프만트리라 불리는 트리구조 데이타에 의해 나타내어지므로, 대응관계변경(107)은 이 하프만트리를 변경한다. 대응관계변경(107)에 대해서는 다음에 상세하게 기술한다.
압축(108)은 상기와 같이 하프만압축을 실행한다. 대응관계(115)의 하프만트리에 따라서 평문데이타중의 비트열을 압축데이타의 비트열로 치환하는 것에 의해 평문데이타를 압축한다. 하프만압축은 데이타압축 핸드북 인쇄판(1994년) pp.21∼pp.103에 기술되어 있는 바와 같은 종래의 방법에 의해 실현한다.
전단암호화(109)는 실행키(116)을 파라미터로 해서 암호이론입문, 공립출판(1993년) pp.33∼pp.59에 기술되어 있는 바와 같은 종래의 암호방법에 의해 데이타를 암호화한다. 후단암호화(110)도 전단암호화(109)와 마찬가지로 실행키(116)을 파라미터로 해서 종래 방법에 의해 데이타를 암호화한다.
도 2는 제어(104)의 동작을 상세하게 도시한 것이다. 우선, 스텝(201)은 난수발생(105)를 기동해서 난수를 발생한다. 스텝(202)는 키생성(106)을 기동해서 실행키를 생성한다. 그 결과, 실행키(116)의 초기값이 설정된다. 스텝(203)은 평문데이타(112)를 리드한다.
스텝(204)는 압축(108)을 기동해서 평문데이타의 다음 기호를 압축한다. 여기에서 압축(108)은 대응관계(115)에 따라서 평문데이타의 기호(비트열)을 압축비트열로 변환하는 것에 의해 평문데이타를 압축한다. 스텝(205)는 압축데이타의 양이 암호처리의 블럭사이즈 이상으로 되었는지 안되었는지를 판정한다. 블럭 사이즈 이상으로 된 경우에는 스텝(206)으로 진행한다. 블럭사이즈 미만인 경우에는 스텝(204)를 반복한다.
스텝(206)은 압축데이타의 1블럭을 전단암호화(109)에 입력하고 이것을 암호화한다. 여기에서, 전단암호화(109)는 실행키(116)을 파라미터로서 사용한다. 스텝(207)은 전단암호화(109)의 결과를 기억한다. 스텝(208)은 전단암호화의 결과를 후단암호화(110)에 입력하고 이것을 또 암호화한다. 여기에서, 후단암호화(110)은 전단암호처리와 마찬가지로 실행키(116)을 파라미터로서 사용한다. 또, 결과의 압축 및 암호데이타에 난수를 부가한 데이타를 압축 및 암호데이타(117)로서 메모리(111)에 저장한다.
스텝(209)는 평문데이타중의 비트열과 압축데이타 중의 비트열의 대응관계(115)를 전단암호화의 결과에 의존해서 변경한다. 스텝(210)은 실행키(116)을 전단암호화의 결과로 치환한다. 스텝(211)은 평문데이타를 모두 처리했는지 처리하지 않았는지를 판정한다. 모두 처리한 경우에는 처리를 종료한다. 그렇지 않은 경우에는 스텝(212)로 진행한다.
스텝(212)는 소정의 암호블럭수를 처리했는지 처리하지 않았는지를 판정한다. 처리한 경우에는 스텝(201)로 되돌아간다. 처리하지 않은 경우에는 스텝(204)로 되돌아간다. 스텝(201)로 되돌아가는 것의 의미는 다음과 같다.
본 실시예에서는 1개의 블럭의 암호화의 중간결과(전단 암호화의 결과)가 다음 블럭의 압축 및 암호화의 파라미터로 된다. 본 실시예의 출력으로 되는 압축 및 암호데이타의 신장 및 복원에서는 압축 및 암호화시와 동일한 파라미터가 필요하게 되므로, 1개의 블럭의 복호화의 중간결과를 다음 블럭의 복호 및 신장의 파라미터로 할 필요가 있다. 따라서, 압축 및 암호된 데이타가 통신이나 화일기억중에 1비트라도 틀린 경우, 그 비트를 포함한 블럭의 복호화의 중간결과가 에러로 되고, 그 결과 다음 블럭의 복호 및 신장의 파라미터가 에러로 된다. 이 에러는 데이타의 최후의 블럭까지 전달된다.
최근의 통신 및 화일기억에 있어서의 에러정정기술의 향상에 의해 본 발명의 적용대상으로 되는 어플리케이션층에서는 에러는 거의 발생하지 않는다. 따라서, 본 발명의 대부분의 적용시스템에서는 상기의 에러전달은 문제로 되지 않는다. 그러나, 그중에는 에러정정을 실행하지 않는 응용시스템도 있고, 그들의 시스템에 본 발명을 적용하는 경우에는 에러전달을 소정의 블럭수로 한정할 필요가 있다.
상기한 스텝(212)에서 스텝(201)로의 귀환은 이 요구에 응답하는 것이다. 즉, 소정의 블럭수에 도달했을 때에는 스텝(201), (202)에 의해 실행키가 이전 블럭의 암호화의 중간결과와는 관계없는 값으로 리세트되므로 에러전달을 회피할 수 있다.
다음에, 도 3, 도 4를 사용해서 대응관계변경(107)의 동작을 설명한다. 하프만압축에서는 평문데이타의 비트열과 압축데이타의 비트열의 대응관계(115)를 하프만트리로 표현한다. 도 3은 하프만트리의 1예를 도시한 것이다. 하프만트리는 각 중간노드에서 좌우의 가지가 나와 있는 2분트리로서, 좌우의 트리에는 0 또는 1의 값이 부가되어 있다. 말단노드는 평문데이타의 1개의 기호를 나타낸다. 말단노드에서 루트노드까지의 가지의 값을 연접시킨 것이 말단노드가 나타내는 기호에 대응하는 압축데이타의 비트열이다. 예를 들면, i에 대응하는 압축데이타의 비트열은 1000이고, h에 대응하는 압축데이타의 비트열은 010이다.
대응관계변경(107)은 제어(104)에서 기동된다. 대응관계변경(107)은 우선 하프만트리의 중간노드에 번호를 붙인다. 구체적으로는 루트노드를 1번, 2단째의 노드를 좌측부터 2번 및 3번, 3단째의 노드를 좌측부터 4번, 5번···와 같이상하, 좌우의 순으로 번호를 붙인다. 다음에, 실행키에 따라서 중간노드의 좌우의 가지의 값을 교환한다. 구체적으로는 실행키의 i번째의 비트가 1이면 i번째의 중간노드의 좌우의 가지의 값을 교환한다(0이면 교환하지 않는다).
도 4의 블럭(401)은 실행키가 1100100···의 경우의 도 3에서의 변경후의 하프만트리를 도시한 것이다. 블럭(402)는 실행키가 1010110···인 경우의 블럭(401)로부터의 변경후의 하프만트리를 도시한 것이다. 또한, 실행키의 비트수는 충분히 크게 취하기로 하고, 실행키의 비트중 하프만트리의 중간노드수를 초과하는 것은 대응관계변경(107)에서는 무시하기로 한다.
이상이 본 발명의 제1 실시예이다. 종래의 암호방법에서는 선형 및 차분해독을 방지하기 위해 암호단수를 증가시키고 있었지만, 그 방지방법에는 처리시간의 증가라는 결점이 있었다. 상기 실시예에 의하면, 실행키를 블럭마다 변경하는 것에 의해 키를 추정하기 위한 통계처리를 불가능하게 하고, 차분 및 선형해독을 방지할 수 있다. 블럭마다의 실행키는 이전의 블럭의 암호화의 중간결과이므로, 실행키를 변경하기 위한 여분의 처리시간은 필요없다. 이상에서 본 실시예에 의하면, 처리시간의 증가를 수반하지 않고 차분 및 선형해독을 방지할 수 있고, 암호의 성능 및 해독에 대한 강도를 향상시킬 수 있다.
또, 본 실시예에 의하면, 압축에 있어서의 평문데이타와 압축데이타의 대응관계를 이전 블럭의 암호화의 중간결과에 의존해서 블럭마다 변경할 수 있다. 암호화의 중간결과는 키를 모르는 한 추정 불가능하므로, 평문데이타와 압축데이타의 대응관계는 추정 불가능하게 된다. 그래서, 본 실시예에 의하면, 압축을 일종의암호로서 이용할 수 있고, 암호의 단수를 증가시킨 것과 마찬가지로 차분 및 선형해독을 방지할 수 있다.
도 5는 본 발명의 제2 실시예의 기능구성을 도시한 것이다. 이것은 상기 제1 실시예에 의해 생성된 압축 및 암호데이타를 복호 및 신장하여 원래의 평문데이타를 얻기 위한 방법의 1예이다. 블럭(501)은 완결된 정보처리시스템이다. 블럭(502)는 중앙처리장치, 입출력장치에 의해 실현되는 처리로서, 입출력(503), 제어(504), 난수리드(505), 키생성(506), 대응관계변경(507), 신장(508), 전단복호(509), 후단복호(510)으로 이루어진다. 블럭(111)은 RAM이나 디스크에 의해 실현되는 메모리로서, 압축 및 암호데이타(512), 난수(513), 공통키(514), 대응관계(515), 실행키(516), 평문데이타(517)을 기억한다.
입출력(503)은 외부에서 압축 및 암호데이타를 입력하고 메모리(511)에 저장한다. 또, 복호 및 신장명령을 입력하고 제어(504)로 전달한다. 한편, 평문데이타(517)을 메모리(511)에서 리드하여 외부로 출력한다. 제어(504)는 입출력(503)에서 복호 및 신장명령을 받았을 때 난수리드(505)를 기동해서 압축 및 암호데이타(512)에 부가된 난수를 리드하고, 다음에 키생성(506)을 기동해서 실행키를 생성한다. 다음에, 압축 및 암호데이타(512)를 메모리(511)에서 리드하고, 전단복호(509), 후단복호(510), 신장(508), 대응관계변경(507), 실행키의 변경의 5가지의 처리를 반복해서 실행하는 것에 의해, 압축 및 암호데이타를 복호 및 신장한다. 제어(504)에 대해서는 다음에 상세하게 기술한다.
난수리드(505)는 압축 및 암호데이타(512)에 부가된 난수를 리드한다. 이난수는 상기 제1 실시예에서 실행키의 생성에 사용한 것이다.
키생성(506)은 난수(513)과 공통키(514)에서 실행키(516)을 생성한다. 공통키(514)는 제1 실시예의 공통키(114)와 동일한 값으로 해 둔다. 난수와 공통키가 모두 제1 실시예와 동일하므로, 생성되는 실행키(516)은 제1 실시예에 있어서의 실행키(116)과 동일하게 된다.
대응관계변경(507)은 압축데이타중의 비트열과 평문데이타중의 비트열의 대응관계(515)를 실행키에 따라서 변경한다. 이 대응관계의 구체예는 신장(508)의 구체예에 의존한다. 본 실시예에서는 신장(508)에서 하프만신장을 사용한다. 하프만신장은 데이타압축 핸드북, 인쇄판(1994년) pp.21∼pp.103에 기술되어 있는 바와 같이 하프만압축의 역변환이고, 압축비트열과 평문비트열의 대응관계는 상기 제1 실시예와 마찬가지로 하프만트리에 의해 나타내어지므로, 대응관계변경(507)은 제1 실시예의 대응관계변경(107)과 동일한 방법에 의해 이 하프만트리를 변경한다. 하프만트리의 변경 방법과 실행키가 제1 실시예와 동일하므로, 하프만트리는 동일한 것으로 변경된다.
신장(508)은 상기와 같이 하프만신장을 실행한다. 대응관계(515)의 하프만트리에 따라서 압축데이타중의 비트열을 평문데이타의 비트열로 치환하는 것에 의해 압축데이타를 신장한다. 신장(508)이 압축(108)의 역변환이고 하프만트리가 제1 실시예와 동일하므로, 제1 실시에에서의 압축데이타를 원래의 데이타로 복원하는 것이 가능하다.
전단복호(509)는 상기 제1 실시예의 후단암호화의 역변환로서, 실행키(516)을 파라미터로 해서 데이타를 복호한다. 후단복호(510)은 상기 제1 실시예의 전단암호화의 역변환로서, 실행키(516)을 파라미터로 해서 데이타를 복호한다. 전단복호, 후단복호가 각각 제1 실시예의 후단암호화, 전단암호화의 역변환이고 실행키가 제1 실시예와 동일하므로, 제1 실시예에서의 압축 및 암호데이타를 복호하여 압축데이타를 얻을 수 있다.
도 6은 제어(504)의 동작을 상세하게 도시한 것이다. 우선, 스텝(601)은 난수리드(505)를 기동해서 압축 및 암호데이타(512)에 부가된 난수를 리드한다. 스텝(602)는 키생성(506)을 기동하고 실행키를 생성한다. 그 결과, 실행키(516)의 초기값으로서 제1 실시예의 실행키(116)의 초기값과 동일한 값이 설정된다. 스텝(603)은 압축 및 암호데이타(512)를 리드한다.
스텝(604)는 전단복호(509)를 기동해서 압축 및 암호문의 1블럭을 복호한다. 여기에서, 전단복호(509)는 실행키(516)을 파라미터로서 사용한다. 스텝(605)는 전단복호의 결과를 기억한다. 전단복호(509)는 제1 실시예의 후단암호화(110)의 역변환이므로, 전단복호의 결과는 제1 실시예의 후단복호화 직전의 값 즉 전단암호화(109)의 결과와 동일한 값이다. 스텝(606)은 후단복호(510)을 기동해서 상기 전단복호(509)의 결과를 또 복호한다. 후단복호(510)은 제1 실시예의 전단암호화(110)의 역변환이므로, 후단복호의 결과는 제1 실시예의 전단암호화 직전의 값 즉 압축(108)에 의해 얻어진 1블럭의 압축문과 동일하다.
스텝(607)은 신장(508)을 기동해서 상기 1블럭의 압축문의 선두부터 1기호를 신장한다. 신장(508)은 제1 실시예의 압축(108)의 역변환이다. 또, 상술한바와 같이 압축문과 평문의 대응관계를 나타내는 하프만트리는 제1 실시예와 동일하다. 그래서, 스텝(607)에 의해 제1 실시예에 있어서의 압축전의 값 즉 평문의 기호가 얻어진다. 스텝(608)은 상기 1블럭분의 압축데이타의 나머지가 평문 1기호분 이상인지 아닌지를 판정한다. 1기호분 이상인 경우에는 스텝(607)로 되돌아가 신장을 반복한다. 그렇지 않은 경우에는 스텝(609)로 진행한다. 이 때, 압축문 1블럭의 나머지 데이타를 기억하고, 다음의 압축문 1블럭을 얻었을 때 그 선두에 추가한다.
스텝(609)는 대응관계변경(507)을 기동하고, 전단복호의 결과에 의존해서 대응관계(515) 즉 하프만트리를 변경한다. 전단복호의 결과는 제1 실시예의 전단암호화의 결과와 동일한 값이고, 변경전의 대응관계(515)는 제1 실시예의 대응관계(115)와 동일한 값이므로, 대응관계(515)는 변경후에도 제1 실시예와 동일한 값으로 된다. 스텝(610)은 실행키(516)을 전단복호의 결과로 치환한다. 전단복호의 결과는 제1 실시예의 전단암호화의 결과와 동일한 값이므로, 실행키(516)은 변경후에도 제1 실시예와 동일한 값으로 된다.
스텝(611)은 압축 및 암호문의 전체 데이타를 처리했는지 처리하지 않았는지를 판정한다. 처리한 경우에는 처리를 종료한다. 그렇지 않은 경우에는 스텝(612)로 진행한다. 스텝(612)는 소정수의 블럭을 처리했는지 처리하지 않았는지를 판정한다. 처리한 경우에는 스텝(601)로 되돌아가서 압축 및 암호문(512)에서 새로 난수를 리드한다. 그렇지 않은 경우에는 스텝(604)로 되돌아가서 압축 및 암호데이타의 다음 블럭을 복호한다. 블럭(612)에서의 판정을위한 소정 블럭의 갯수는 제1 실시예의 경우와 동일한 값으로 설정해 둔다. 그 결과, 난수의 값을 갱신하는 주기는 제1 실시예와 동일하게 된다.
이상이 제2 실시예이다. 상기와 같이 제2 실시예에 의하면 제1 실시예에 의해 압축 및 암호화된 데이타를 신장 및 복호하고 원래의 평문데이타를 회복할 수 있다. 현재 이용되고 있는 암호의 대부분은 기본함수의 반복에 의해 평문데이타를 암호화하고, 그 기본함수의 역함수의 반복에 의해 암호문 데이타를 복호한다. 그리고, 복호에 있어서의 역함수의 반복횟수는 복호화에 있어서의 함수의 반복회수와 동일하다. 상기 제1 실시예에 의하면, 암호단수(기본함수의 반복회수)를 증가시키지 않고 차분 및 선형해독에 대처할 수 있었다. 그래서, 제2 실시예에 있어서도 복호를 위한 암호단수의 증가가 불필요하게 된다. 이상에서 제1 실시예와 제2 실시예에 의해 처리시간의 증가를 수반하지 않고 암호강도가 큰 암호화 및 그 복호를 실현할 수 있다.
이상의 설명으로부터 명확한 바와 같이, 본 발명에 의하면, 암호처리와 압축 및 암호처리에 있어서 처리시간의 증가를 수반하지 않고 차분해독 및 선형해독을 방지할 수 있으므로, 상기 처리의 성능 및 해독에 대한 강도를 향상시킬 수 있다.

Claims (9)

  1. 평문데이타 블럭의 암호화키로서 다른 블럭의 암호화의 중간결과를 사용하는 정보처리방법에 있어서,
    데이타를 입력 또는 수신하는 스텝 및
    상기 데이타를 암호화하는 스텝을 포함하며,
    상기 데이타 암호화 스텝은
    난수를 발생하는 스텝과 상기 난수 또는 상기 난수에 의존해서 산출된 값을 상기 데이타의 암호화의 파라미터로 설정하는 스텝을 포함하고,
    상기 난수는 초기값에 대해서 암호화처리를 반복 실행하는 것에 의해 발생되는 것을 특징으로 하는 정보처리방법.
  2. 평문데이타 블럭의 암호화키로서 다른 블럭의 암호화의 중간결과를 사용하는 정보처리방법에 있어서,
    데이타를 입력 또는 수신하는 스텝 및
    상기 데이타를 암호화하는 스텝을 포함하며,
    상기 데이타 암호화 스텝은
    난수를 발생하는 스텝과 상기 난수 또는 상기 난수에 의존해서 산출된 값을 상기 데이타의 암호화의 파라미터로 설정하는 스텝을 포함하고,
    상기 난수 발생 스텝의 동작을 반복해서 실행하는 것에 의해 여러개의 난수를 발생하고, 이 난수를 상기 데이타의 여러 부분의 암호화의 파라미터로 설정하는 것을 특징으로 하는 정보처리방법.
  3. 제1항에 있어서,
    상기 난수 발생 스텝의 처리를 반복해서 실행하는 것에 의해 여러개의 난수가 얻어지고, 이 난수를 상기 데이타의 여러 부분의 암호화의 파라미터로 설정하는 것을 특징으로 하는 정보처리방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 난수 또는 상기 난수에 의존해서 산출된 값을 암호화된 데이타에 부가하는 것을 특징으로 하는 정보처리방법.
  6. 제2항에 있어서,
    상기 난수 또는 상기 난수에 의존해서 산출된 값을 암호화된 데이타에 부가하는 것을 특징으로 하는 정보처리방법.
  7. 제1항에 있어서,
    상기 난수 또는 상기 난수에 의존해서 산출된 값을 상기 암호화된 데이타의 복호화에 사용하는 것을 특징으로 하는 정보처리방법.
  8. 제2항에 있어서,
    상기 난수 또는 상기 난수에 의존해서 산출된 값을 상기 암호화된 데이타의 복호화에 사용하는 것을 특징으로 하는 정보처리방법.
  9. 삭제
KR1020020048389A 1996-02-28 2002-08-16 데이타의 암호화 방법 및 장치 KR100420552B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-1996-00040931 1996-02-28
JP04093196A JP3746098B2 (ja) 1996-02-28 1996-02-28 データの暗号化装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1019970004889A Division KR100471738B1 (ko) 1996-02-28 1997-02-18 데이타의암호화방법및장치

Publications (1)

Publication Number Publication Date
KR100420552B1 true KR100420552B1 (ko) 2004-03-02

Family

ID=12594257

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1019970004889A KR100471738B1 (ko) 1996-02-28 1997-02-18 데이타의암호화방법및장치
KR1020020048389A KR100420552B1 (ko) 1996-02-28 2002-08-16 데이타의 암호화 방법 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1019970004889A KR100471738B1 (ko) 1996-02-28 1997-02-18 데이타의암호화방법및장치

Country Status (9)

Country Link
US (2) US6157720A (ko)
EP (1) EP0793366B1 (ko)
JP (1) JP3746098B2 (ko)
KR (2) KR100471738B1 (ko)
CN (1) CN1139221C (ko)
AU (1) AU693733B2 (ko)
DE (1) DE69736148T2 (ko)
IN (1) IN191843B (ko)
SG (1) SG79936A1 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3746098B2 (ja) * 1996-02-28 2006-02-15 株式会社日立製作所 データの暗号化装置
US6154542A (en) * 1997-12-17 2000-11-28 Apple Computer, Inc. Method and apparatus for simultaneously encrypting and compressing data
MY131509A (en) * 1999-03-15 2007-08-30 Sony Corp Data processing method, apparatus and system for encrypted- data transfer
JP2000305453A (ja) 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
MXPA01010808A (es) * 1999-05-04 2002-05-14 Gen Instrument Corp Metodo y aparato para el control de acceso de servicios de television sobre pedido precodificados.
WO2001073567A1 (en) * 2000-03-28 2001-10-04 Oak Technology, Inc. Secure compact disc technology
JP2002009757A (ja) * 2000-06-20 2002-01-11 Casio Comput Co Ltd データ暗号化装置及びデータ復号化装置
JP2002082732A (ja) * 2000-09-06 2002-03-22 Nec Corp プログラムコードの不正改竄防止システム及びその方法並びにその制御プログラムを記録した記録媒体
CA2445397A1 (en) * 2001-04-27 2002-11-14 Simdesk Technologies, Inc. High speed server system
US20030043852A1 (en) * 2001-05-18 2003-03-06 Bijan Tadayon Method and apparatus for verifying data integrity based on data compression parameters
US7239708B2 (en) * 2001-06-27 2007-07-03 Microsoft Corporation Protecting decrypted compressed content and decrypted decompressed content at a digital rights management client
US7061367B2 (en) 2002-04-30 2006-06-13 General Electric Company Managing access to physical assets
US20040025039A1 (en) * 2002-04-30 2004-02-05 Adam Kuenzi Lock box security system with improved communication
US7120653B2 (en) * 2002-05-13 2006-10-10 Nvidia Corporation Method and apparatus for providing an integrated file system
US6920484B2 (en) * 2002-05-13 2005-07-19 Nvidia Corporation Method and apparatus for providing an integrated virtual disk subsystem
US6700513B2 (en) * 2002-05-14 2004-03-02 Microsoft Corporation Method and system for compressing and decompressing multiple independent blocks
KR100560658B1 (ko) * 2003-02-17 2006-03-16 삼성전자주식회사 고속의 오프셋 코드북 모드를 위한 암호화 장치 및 그 방법
JP2005217842A (ja) * 2004-01-30 2005-08-11 Fujitsu Ltd データ圧縮方法、データ復元方法及びそのプログラム
FR2867337B1 (fr) * 2004-03-08 2006-05-12 Medialive Procede et systeme de distribution securisee de textes numeriques compresses
FR2889637B1 (fr) * 2005-08-04 2007-10-19 Everbee Networks Sa Procede et systeme de chiffrement a haut debit
CN101064595B (zh) * 2006-04-27 2011-07-27 联想(北京)有限公司 一种计算机网络安全输入认证系统和方法
US8868930B2 (en) 2006-05-31 2014-10-21 International Business Machines Corporation Systems and methods for transformation of logical data objects for storage
JP5431148B2 (ja) 2006-05-31 2014-03-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ストレージ用論理データオブジェクトの変換方法およびシステム
US9670694B2 (en) 2007-04-12 2017-06-06 Utc Fire & Security Americas Corporation, Inc. Restricted range lockbox, access device and methods
CN102405622B (zh) 2010-08-24 2014-11-05 华为技术有限公司 二叉树建立、压缩和查找的方法和装置
US8645713B2 (en) * 2011-03-22 2014-02-04 Fujitsu Limited Encrypting method, recording medium of encrypting program, decrypting method, and recording medium of decrypting program
US8886926B2 (en) * 2012-11-07 2014-11-11 Centri Technology, Inc. Single-pass data compression and encryption
JP2014116753A (ja) * 2012-12-07 2014-06-26 Mega Chips Corp データ処理装置及び制御プログラム並びにデータ処理装置の動作方法
JP2015114771A (ja) * 2013-12-10 2015-06-22 パテネット株式会社 データ暗号化装置、データ復元装置、データ暗号化方法、データ復元方法、データ暗号化プログラムおよびデータ復元プログラム
JP6246377B2 (ja) 2014-08-28 2017-12-13 三菱電機株式会社 プロセス解析装置、プロセス解析方法、及びプロセス解析プログラム
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
KR102630287B1 (ko) * 2020-12-14 2024-01-30 주식회사 네오수텍 가상카드번호 생성 스마트카드와 가상카드번호 복호화 장치

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6129232A (ja) 1984-07-20 1986-02-10 Hitachi Ltd デ−タ暗号化伝送方式
US5163586A (en) * 1990-01-30 1992-11-17 Additive Systems Inc. Automotive fuel additive dispensing and blending system
DE4016203A1 (de) * 1990-05-19 1991-11-21 Rolf Prof Dr Trautner Verfahren zur blockweisen chiffrierung von digitalen daten
NZ238651A (en) * 1990-07-20 1994-04-27 Ericsson Ge Mobile Communicat Encryption system for digital cellular communications
US5115467A (en) * 1991-01-23 1992-05-19 General Instrument Corporation Signal encryption apparatus for generating common and distinct keys
FR2677200B1 (fr) * 1991-05-30 1993-09-17 Besnard Christian Dispositif de securisation de donnees numeriques.
US5479512A (en) * 1991-06-07 1995-12-26 Security Dynamics Technologies, Inc. Method and apparatus for performing concryption
US5517614A (en) * 1992-05-29 1996-05-14 Kabushiki Kaisha Toshiba Data compression/encryption processing apparatus
US5351299A (en) * 1992-06-05 1994-09-27 Matsushita Electric Industrial Co., Ltd. Apparatus and method for data encryption with block selection keys and data encryption keys
JPH05344118A (ja) 1992-06-05 1993-12-24 Matsushita Electric Ind Co Ltd データ攪乱装置
JPH0812537B2 (ja) * 1993-03-11 1996-02-07 日本電気株式会社 暗号化装置
US5285497A (en) * 1993-04-01 1994-02-08 Scientific Atlanta Methods and apparatus for scrambling and unscrambling compressed data streams
EP0635956B1 (en) * 1993-07-20 2003-10-22 Canon Kabushiki Kaisha Encryption apparatus, communication system using the same and method therefor
US5631960A (en) * 1995-08-31 1997-05-20 National Semiconductor Corporation Autotest of encryption algorithms in embedded secure encryption devices
JP3746098B2 (ja) * 1996-02-28 2006-02-15 株式会社日立製作所 データの暗号化装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Applied Cryptography, Bruce Schneier 저 *
Broadcasting classified information *

Also Published As

Publication number Publication date
AU693733B2 (en) 1998-07-02
AU1495297A (en) 1997-09-18
CN1171682A (zh) 1998-01-28
EP0793366A2 (en) 1997-09-03
EP0793366B1 (en) 2006-06-21
KR100471738B1 (ko) 2005-07-18
SG79936A1 (en) 2001-04-17
EP0793366A3 (en) 2003-05-14
US6157720A (en) 2000-12-05
DE69736148T2 (de) 2007-01-11
IN191843B (ko) 2004-01-10
JP3746098B2 (ja) 2006-02-15
DE69736148D1 (de) 2006-08-03
JPH09230786A (ja) 1997-09-05
KR970064059A (ko) 1997-09-12
US6504931B1 (en) 2003-01-07
CN1139221C (zh) 2004-02-18

Similar Documents

Publication Publication Date Title
KR100420552B1 (ko) 데이타의 암호화 방법 및 장치
KR100657062B1 (ko) 정보 암호화 방법 및 이 방법을 실현하는 장치
US6122379A (en) Method and apparatus for performing simultaneous data compression and encryption
Nasution et al. Data security using vigenere cipher and goldbach codes algorithm
JP3188940B2 (ja) 暗号化システム
EP0725511B1 (en) Method for data encryption/decryption using cipher block chaining (CBC) and message authentication codes (MAC)
US20070028088A1 (en) Polymorphic encryption method and system
US5768390A (en) Cryptographic system with masking
CN108173640B (zh) 一种高安全性的字符串对称加密和解密方法
KR20020006475A (ko) 암호화장치, 복호장치 및 확대키 생성장치, 확대키생성방법 및 기록매체
Wong et al. Embedding compression in chaos-based cryptography
US6128386A (en) Multiple number base encoder/decoder using a corresponding exclusive or function
WO2002054664A2 (en) R-conversion encryption method and system
Zhou et al. On the security of multiple Huffman table based encryption
RU2226041C2 (ru) Способ криптографического преобразования двоичных данных
KR101790325B1 (ko) 암호화 및 복호화 시스템
KR19980083221A (ko) N-라운드 라운드 출력문 귀한 블록 암호화/복호화 방법
CN110581759A (zh) Uoec-hex对称加密算法
KR960006386A (ko) 디지틀 정보의 암호화 및 복호화 방법
Usama et al. Chaos-based secure data compression (CSDC)
CN114244552B (zh) 基于区块链的数据加密传输方法及装置
JP2006133380A (ja) 復号装置と復号プログラム及び暗号通信システム
Sermeno et al. Modified vigenere cryptosystem using matrix manipulation and base94 encoding scheme
WO2000064096A1 (fr) Systeme de communications cryptees
CA2205127C (en) Method and apparatus for performing simultaneous data compression and encryption

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
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: 20070215

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee