KR20010041202A - 이산 데이터 블록 암호화 방법 - Google Patents

이산 데이터 블록 암호화 방법 Download PDF

Info

Publication number
KR20010041202A
KR20010041202A KR1020007009280A KR20007009280A KR20010041202A KR 20010041202 A KR20010041202 A KR 20010041202A KR 1020007009280 A KR1020007009280 A KR 1020007009280A KR 20007009280 A KR20007009280 A KR 20007009280A KR 20010041202 A KR20010041202 A KR 20010041202A
Authority
KR
South Korea
Prior art keywords
sub
block
encryption
key
bit
Prior art date
Application number
KR1020007009280A
Other languages
English (en)
Other versions
KR100411912B1 (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
Priority claimed from RU98103646A external-priority patent/RU2140710C1/ru
Priority claimed from RU98104851A external-priority patent/RU2140711C1/ru
Priority claimed from RU98107784/09A external-priority patent/RU2140712C1/ru
Application filed by 오트크리토에 악츠이오네른오에 옵스체스트보 (모스코브스키야 고로즈카야 텔레폰나야 셋), 알렉산드르 안드리비치 몰도비얀, 니콜레이 안드리비치 몰도비얀, 니콜레이 빅토르비치 사브로코브 filed Critical 오트크리토에 악츠이오네른오에 옵스체스트보 (모스코브스키야 고로즈카야 텔레폰나야 셋)
Publication of KR20010041202A publication Critical patent/KR20010041202A/ko
Application granted granted Critical
Publication of KR100411912B1 publication Critical patent/KR100411912B1/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 전기 통신 및 컴퓨터 기술분야에 관한 것으로, 특히, 디지탈 데이터의 암호화를 위한 암호화 방법 및 장치들과 관한 것이다. 이 방법은 일련의 서브키들의 형태로 암호화 키를 형성하고, 데이터 블록을 서브블록 N≥2의 수로 분류하고, 서브블록과 서브키에 대해 듀얼 로커스 동작을 수행하는 것으로 서브블록들을 교대로 변환하는 것으로 이루어진다. 이 방법은 i-번째 서브블록과 서브키에 대해 듀얼 로커스 동작을 수행하기 전에, j≠1일 때, j-번째 서브블록에 의존하는 변환 동작이 서브키에 대해 수행된다. 이 방법은 또한 j-번째 서브블록에 의존하는 변환 동작이 j-번째 서브 블록에 의존하는 서브키 비트들에 대한 치환 동작이라는 데에 특징이 있다. 또한, 이 방법은 j-번째 서브 블록에 의존하는 변환 동작이 j-번째 서브 블록에 의존하는 서브키 비트들에 대한 순환 오프셋 동작이라는 데에 특징이 있다. 최종적으로, 이 방법은 j-번째 서브 블록에 의존하는 변환 동작이 j-번째 서브 블록에 따른 서브키에 대해 수행된 대체 동작이라는데에 특징이 있다.

Description

이산 데이터 블록 암호화 방법{METHOD FOR THE BLOCK-ENCRYPTION OF DISCRETE DATA}
청구된 방법의 전체적인 특징에 있어서 다음과 같은 용어가 사용된다:
- 비밀키는 공인된 사용자에게만 알려져 비트 조합을 나타낸다; 암호화 키(encryption key)는 암호 변환 요소이며 주어진 메시지 또는 주어진 총 메시지를 변환하는데 사용된다; 암호화 키는 결정된 과정들과 비밀키에 따라 형성된다; 다수의 암호(ciphers)에서 이런 종류의 비밀키가 사용된다.
- 암호는 암호화 키를 사용하는 입력 데이터 변환의 기초 단계들의 총화(totality)이며; 하나의 암호는 컴퓨터 프로그램 도는 개인적인 전자 키로서 수행될 수 있다.
- 서브키는 개별적인 기초 암호화 단계에서 사용된 암호화 키의 일부이다.
- 암호화는 암호화 키 값의 인지없이 실제적으로 정보를 얻을 수 있는 의사 난수 문자열(pseudo-random character sequence)인 암호문으로 상기 데이터를 번역하는 암호화 키를 사용하는 특정 데이터 변환 방법을 수행하는 과정이다.
- 복호화는 암호화를 역으로 진행하는 과정이다; 복호화는 암호화 키가 알려졌을 때 암호문에 따라 정보를 회복하는 것을 보증한다.
- 암호화 저항은 정보 보호의 안전성의 측정하는 것으로서 변환 알고리즘이 암호화 키의 지식 없이 알려졌을 때 암호문에 따라 정보를 회복하기 위하여 수행될 기초 단계들의 수내에서 측정된 노력의 강도를 나타낸다;
- 블록 데이터 암호화로 알려진 방법들이 있는데, 예를 들어, 암호 RC5[R.Rivest, The RC5 암호화 알고리즘, 고속 소프트웨어 암호화, 제 2 차 국제 워크샵 회보 (루벤, 벨지움, 1994년 12월 14-16일), 컴퓨터 과학 강의 노트, v.1008, 스프링거-벨라그, 1995년 86-96페이지]를 참조. 그 알려진 방법에 있어서, 데이터 블록 암호화는 서브키들의 총계의 형태로서 암호화 키를 발생하고, 변환된 데이터 블록을 서브블록들로 분리하여 이루어지며, 순환 오프셋 동작을 사용하는 후자의 변경을 번갈아 하는데, 즉 두 서브블록들에 대해 수행된 모듈로 2 추가 동작과, 서브블록과 서브키에 대해 수행된 모듈로 232추가 동작을 수행한다. 여기서 서브키들은 서브블록과 서브키사이에 이진 동작을 수행하는 주어진 단계에서 고정된 스케줄에 따라 사용되며, 그 서브키 값은 그 데이터 입력 블록에 의존하지 않는다. 블록 암호화의 이 방법은 컴퓨터 프로그램으로서 실현될 때 높은 암호화율을 제공한다.
그러나, 이 방법은 차분과 선형 암호분석[칼리스키 비.에스. RC5 암호 알고리즘의 차분 및 선형 암호해석. 고급 암호학-크립토'95 회보. 스프링거-벨라그. 1995년 171-184페이지]에 대해 충분한 저항을 보증하지 못하는데, 이 방법에 있어서 주어진 암호화 단계들에서 모든 가능한 입력블록들에 대해 고정된 서브키들이 사용된 사실에 기인한다.
기술적 본질에 있어서 청구된 블록 암호화 방법에 가장 가까운 것은 미국 표준 디이에스에서 언급된 방법이다[미국 국가 표준, 데이터 암호화 표준. 연방 정보 회보 표준 공보 46, 1977년 1월]. 이 방법은 48비트 서브키 ??의 형태로 암호화 키를 생성하고, 이산 데이터의 입력 블록을 2개의 32비트 서브블록들 L과 R로 분류하고 서브키 제어하에 서브블록들을 교대로 변환하는 것을 포함한다. 총계에서, 32 비트 데이터 서브 블록의 16 순환이 수행된다. 각 서브 블록 변환 라운드는 다음 과정의 수행에 의해 이루어진다: (1) 이 서브블록의 어떤 비트들을 반복에 의해 서브 블록 R을 48비트들까지 연장하고 : R → R', (2) 서브 블록과 서브 키에 대해 모듈로 2 합 동작을 수행하고, (3) 서브 블록 R'를 8개의 6비트 서브 블록들로 분류하고, (4) 알려진 대체 테이블에 따라 4비트 서브 블록들로 6비트 서브 블록들을 대체함에 의해 각 6비트 서브블록에 대해 대체 동작을 수행하고, (5) 8개의 4 비트 서브 블록들을 32 비트 서브블록 2로 결합하고, (6) 결정된 법칙에 따라 R 서브 블록 비트들의 교환 동작을 수행하고, (7) 서브 블록 L을 가지고 서브 블록 R 모듈로 2 합 동작을 수행한다. 현재 암호화 라운드의 수행에 있어서, 고정 서브키는 모든 가능한 데이터 입력 블록에 대해 사용된다. 서브 블록들을 변환하는데 사용된 서브키들은 56 비트 비밀키의 제어하에 생성된다. 정보 블록 암호화의 이 방법은 특별한 전자 회로의 형태로 구현될 때 높은 변환율을 가진다.
그러나, 이 방법은 몇가지 단점을 가진다. 즉 소프트 웨어로 구현될 때 낮은 암호화율을 가진다. 더욱이, 이 방법은 가능한 키 값들의 선택에 의해 비밀키를 알아내는 강력한 현대 컴퓨터를 사용하도록 허용하는 짧은 56 비트 비밀키를 사용한다. 이것은 하드웨어 구현의 경우에도 높은 암호화율을 얻기가 힘들게 만드는 다른 비밀 키들을 사용하는 몇 가지 암호화 과정 수행을 요구한다.
이 발명의 기초는 이산 데이터 블록 암호화를 위한 방법을 개발하는 과제에 의해 형성되는데, 데이터 서브 블록 변환은 하나의 입력 데이터에 대해 설명된 변환 동작들의 수를 감소시키기 위하여 이루어지고 동시에 증가된 암호화 율로 인한 높은 암호화 저항을 제공하는 것이다.
본 발명은 전기 통신과 컴퓨터 기술 분야에 관한 것으로, 특히 메시지 (정보) 암호화를 위한 암호 방법에 관한 것이다.
도 1 은 청구된 방법에 따른 일반화된 암호화 도식도,
도 2 는 u=1일 때, 입력비트들은 교환되지 않고, 즉, 출력신호들은 입력신호들과 일치하며, u=0일 때, 입력비트들이 교환되는 제어된 교환 블록의 기본적인 요소로서 기초적으로 제어된 스위치의 블록도를 나타낸 도면,
도 3 은 제어신호의 전위가 하이일 때 기초적인 제어 스위치의 입출력신호의 테이블을 나타낸 도면,
도 4 는 제어신호의 전위가 로우일 때 기초적인 제어 스위치의 입출력신호의 테이블을 나타낸 도면,
도 5 는 79비트 제어 코드의 값에 의존하는 입력 비트들의 279다른 교환들을 구현하는 기초 스위치들, 일련의 같은 형태의 블록들로 이루어진 제어된 교환 블록의 구조를 나타내는 도면,
도 6 은 간단화된 제어된 교환 블록의 도식도를 나타낸 도면이다.
상기 과제는 이산 데이터의 블록 암호화를 위한 방법에 있어서, 이 발명에 따른 신규한 특징은, 일련의 서브키들로서 암호화 키를 생성하는 것과, 그 데이터 블록을 N≥2 서브 블록들로 분류하고, 서브키에 대해 듀얼 로커스(dual-locus) 동작을 수행하는 것에 의해 서브 블록 변환을 교대로 수행하는 것을 포함하고, i-번째 서브 블록과 서브키에 대해 듀얼 로커스 동작을 수행하기 전에 j≠1인 서브키에 대해 j-번째 서브 블록 종속 변환 동작을 수행하는 것이다.
그런 해결책에 따라, 주어진 암호화 단계에서 사용된 서브키 구조는 변환된 데이터에 의존하고 따라서 주어진 변환 단계에서 다른 변환된 서브키 값들은 암호화 변환율 증가를 가져오는 암호화 라운드들의 수가 동시에 감소하는 한편 차분 암호해석에 대한 높은 암호화 저항이 제공되는데 기인하여 다른 입력 블록들을 위해 사용된다.
신규한 특징은 또한 j-번째 서브 블록 종속 변환 동작과 같이, j-번째 서브 블록 종속 서브키 비트 교환 동작이 이용된다는 사실에 있다.
그런 해결책에 따라, 증가된 암호화 율은 청구된 방법이 전자적 암호화 장치의 형태로 실현될 때 제공된다.
신규한 특징은 또한 j-번째 서브 블록 종속 서브키 비트 순환 오프셋 동작이 j-번째 서브 블록 종속 변환동작으로 사용되는 것에 있다.
그런 해결책에 따라, 증가된 암호화율은 청구된 방법이 컴퓨터 암호화 소프트웨어로서 구현될 때 확실하게 된다.
게다가, 신규한 특징은 서브키에 대해 수행된 j-번째 서브 블록 종속 교환 동작이 j-번째 서브블록 종속 변환 동작으로 이용된다는 것에 있다.
그런 해결책에 따라, 암호화 저항이 추가적으로 강화되고, 동시에 청구된 방법이 컴퓨터 암호화 소프트웨어의 형태로 구현될 때 높은 암호화율을 확실하게 한다.
이하 청구된 발명의 본질이 첨부된 도면을 참고로 하여 그 실시예에 의해 더욱 상세히 설명될 것이다.
본 발명은 도 1에서 제시된 청구항의 방법의 기초에 대한 데이터 블록 암호 변환의 일반화된 도식도에 의해 설명된다. 도 1에서, P는 서브키에 대해 수행된 제어딘 동작의 블록이다; A와 B는 n-비트 서브블록들로 변환된다; K2r, K2r-1은 m-비트 서브키들(일반적으로 m≠n)이다; Q(2r), Q(2r-1)은 g-비트 추가 서브키들이다; 부호 "??"는 모듈로 2 비트 대 비트 합 동작을 나타내고; 부호 "??"는 모듈로 2n합 동작을 나타낸다. 굵은 실선은 n-비트 신호 전달 버스를 나타내고, 얇은 점선은 하나의 제어 비트의 전달을 나타낸다. 굵은 점선은 변환된 서브 블록 비트들이 사용된 것처럼 n 제어 신호들을 전달하는 버스를 나타낸다. 또한 굵은 점선은 변환된 서브 블록에 의존하는 동작을 변형하는 데 제공하는 h 비트들의 추가 서브키들 Q(2r), Q(2r-1)을 전달하기 위한 버스를 나타낸다. 특별한 경우로서, 추가 서브키들은 사용되지 않을 수도 있다.
도 1 은 단일 (r-번째) 암호화 라운드를 보여준다. 특별한 형태에 의존하는 제어된 동작이 사용되고 요구된 변환율에 의존하여 6부터 10 및 그 이상의 라운드들이 설정될 수 있다. 단일 변환 라운드는 다음의 일련의 과정을 수행하는 것으로 이루어진다.
(1) 서브블록 A의 값에 의존하고 변환된 서브키 PA,Q(2r)(K2r)을 생성하는 블록 P1의 출력의 결과로서 추가 서브키 Q(2r)의 값에 대해 서브키 K2r을 변환;
(2) PA,Q(2r)(K2r)의 값과 서브 블록 B: B:=B??PA,Q(2r)(K2r)에 대해 모듈로 2 비트 대 비트 합동작을 수행하여 서브 블록 B를 변환; 여기서 부호 ":="는 할당 동작을 나타낸다.
(3) 서브 블록 A와 서브 블록 B: A:=A??B에 대해 모듈로 2n합 동작을 수행함에 의해 서브 블록 A의 변환;
(4) 블록 P2의 출력이 값 PA,Q(2r-1)(K2r-1)을 발생하는 결과로서 서브 블록 B의 값과 추가 서브키 Q(2r-1)의 값에 의존하는 서브키 K2R-1를 변환;
(5) 서브 블록 A를 변환: A:=A??PA,Q(2r-1)(K2r-1);
(6) 서브 블록 B를 변환: B:=B??A.
이산 정보의 블록 암호화를 위해 제안된 방법의 특별한 실시예에 의존하여, m-비트 서브키들 K2와 K1의 같은 쌍(추가 g-비트 서브키들 Q(2)와 Q(1))이 각 암호화 라운드를 수행하는데 사용될 수 있다. 하나의 실시예는 각 라운드에서 독립 서브키들 K2r과 K2r-1(독립 추가 서브키들 Q(2r)과 Q(2r-1))이 사용된다. 예를 들면, 라운드의 수가 r=3일 때, 최초 라운드는 서브키들 K2와 K1을 사용하고, (Q(2)와 Q(1)), 제 2 라운드는 서브키들 K4와 K3(Q(4)와 Q(3))를 사용하고, 제 3 라운드는 서브키들 K6와 K5(Q(6)와 Q(5))를 사용한다. 서브키들 K2r과 K2r-1과 추가 서브키들 Q(2r)과 Q(2r-1)는 비밀키에 의존하는 특별한 과정에 따라 수행될 수 있다. 하나의 실시예는 서브키들이 K2r과 K2r-1과 추가 서브키들 Q(2r)과 Q(2r-1)가 난수법 발생에 의해 형성된 것이 가능하다.
청구된 방법의 기술적 구현 가능성은 다음의 특별한 실시예에 의해 설명된다.
실시예 1
이 실시예는 변환된 블록중 하나에 의존하는 서브키에 대해 수행된 동작으로서 제어된 교환을 사용하는 64 비트 데이터 블록의 암호화를 설명한다. 이 암호화 키는 각각 32 비트의 길이를 가지는 16개의 서브키들 K1,K2,K3,...K16으로 발생된다. 추가 서브키들은 사용되지 않는다. 그 데이터 블록은 2개의 32 비트 서브블록들 A와 B로 분류된다. 입력 블록 암호화는 다음 알고리즘에 의해 설명된다:
1. 라운드 수 카운터의 설정:
r:=1.
그 표현에 따라 서브 블록 B를 변환:
B:=B??PA(K2r),
여기서, PA(K2r)은 서브블록 A의 값에 의존하는 수행된 서브키 K2r의 교환비트들의 동작을 나타낸다.
그 표현에 따라 서브 블록 A를 변환:
A:=A??B.
4. 그 표현에 따라 서브블록 A를 변환:
A:=A??PB(K2r-1),
여기서, PB(K2r-1)는 서브블록 B의 값에 의존하는 수행된 서브키 K2r-1의 교환비트들의 동작을 나타낸다.
5. 그 표현에 따라 서브블록 B를 변환:
B:=B??A.
6. 만약 r≠1이면, 카운터 r:r+1의 증가 및 단계 2로 이동, 그렇지 않으면 멈춤( STOP).
이 알고리즘은 전자 회로의 형태에서 구현되는 방향이다. 변환된 서브 블록들 중 하나에 의존하는 서브키 교환의 동작은 두 비트를 교환하는 동작을 수행하는 일련의 기초 스위치에 기초해 실행된 제어된 교환 블록을 사용하여 수행될 수 있다.
도 2 는 기초 스위치의 동작을 설명하는데, 여기서 u는 제어 신호이고, a와 b는 데이터 입력신호이고, c와 d는 데이터 출력 신호이다.
도 3 및 4에서 테이블은 입력 및 출력 신호들에 의존하는 출력 신호를 나타낸다. u=1일 때, 라인 a는 라인 c와 라인 b는 라인 d와 교환하는 것을 이 테이블들로부터 알 수 있을 것이다. u=0일 때, 라인 a는 라인 d와 라인 b는 라인 d와 교환한다. 이렇게 해서 제어신호는 하나이고, 제어신호가 0일 때 두 입력비트들이 치환되지 않고, 입력 비트들이 치환된다.
도 5 는 일련의 기초 스위치 S를 사용하는 제어된 치환 블록의 가능한 실시예를 나타낸다. 이 실시예는 32 비트 정보 입력과 79비트 제어 입력을 가지는 블록 P와 대응된다. 현재 변환된 서브키의 비트들은 정보 신호로서 사용된다. 서브 블록들중의 하나의 32 비트들과 추가 서브키들중 하나의 47비트들은 제어 신호로서 사용된다.
치환 동작의 가능한 변형의 수는 제어 입력에서 가능한 코드 조합의 수 및 도 2에 도시된 구조를 가진 블록 P에 대한 279의 양과 동일하다. 이 제어된 치환 블록은 279의 수의 제어 입력에서 코드 조합의 각각의 가능한 수에 대한 입력 비트들의 유일한 조합을 수행한다. 제어된 치환 블록의 외부 정보 입력들은 i1,i2,....,i32로 표시되고, 외부 입력들은 o1,o2,....o32로 표시되고, 제어 입력들은 c1,c2,....,c79로 표시된다. 기초 스위치 S는 31라인으로 이루어지는 어레이의 형태로서 그런 식으로 연결된다. 최초 라인에서, 31개의 기초 스위치들 S가 연결되고, 제 2 라인에서, 30개의 스위치들, 제 3 라인에서, 29개 등으로 연결된다. 각각의 다음 라인에서, 기초 스위치들의 수는 1씩 감소한다. 최하위에서, 1라인의 기초스위치가 연결된다.
j≠31로 번호 붙여진 라인은 33-j 입력과, 33-j 출력과 32-j 제어 입력을 가진다. 최종(최우측) j-번째 라인의 출력은 제어된 치환 블록의 외부 출력이고, 그 나머지 j-번째 라인의 32-j 출력들은 (j+1)번째 라인의 대응되는 입력에 연결된다. 최종 31번째 라인은 두 개의 출력을 가지는데 그들 둘다 제어된 치환블록의 외부 출력들이다. 각 라인의 하나의 제어 입력이상이 아닌 단위 제어 신호가(u=1) 인가된다. 이 요구를 만족시키기 위해, 2의 32 등급의 판독기 F1,F2,....,F15와 2의 16 등급 판독기 F16이 제공된다. 판독기 F1,F2,....,F15는 5비트 이진 코드가 공급되는 다섯 개의 외부 제어 입력들과, 32 출력들을 가진다. 이들 판독기들은 한 개의 입력에서 오직 하나의 단위 신호를 발생한다. 0 신호는 나머지 31 출력들에서 설정된다. 판독기 F16은 임의의 4비트 이진 코드가 공급된 4 입력들과 하나의 신호가 설정된 하나의 값에서 오직 하나로부터 16 출력들을 가진다. 모든 판독기들 F1,F2,....,F15와 F16에 대해 각 입력 이진 코드 값은 유니트 신호(u=1)가 설정된 유일하게 가능한 출력 수를 설정한다.
h≤15에서, 판독기 Fh의 출력들의 일부는 h로 번호붙여진 라인(32-h 출력들)의 제어 입력들에 연결되고, 한편, 출력들의 일부는 (32-h)번째 라인(h출력들)의 제어 입력들에 연결된다. 이렇게 해서 각 라인에서, 단지 하나의 기초 스위치에 대해 제어 신호 u=1이 설정된다. 단위 제어 신호가 인가되는 기초 스위치의 우측 출력에 연결된 라인 입력은 주어진 라인에 대응하는 제어된 치환 블록의 외부 출력과 교환한다. 단위 제어 신호가 가장 좌측의 기초 스위치에 인가 될 때, 제어된 치환 블록(블록)의 외부 출력은 가장좌측의 라인 입력과 교환된다. 제 1 라인은 외부 출력 o1과 나머지 31 출력 입력과 제 2 라인의 입력을 가진 블록 P의 외부 출력들 i1,i2,....,i32 중 하나와 교환한다. 제 2 라인은 외부 출력 o2를 가진 외부 입력의 나머지 31과 제 3라인의 입력을 가진 나머지 30 외부 입력들 등등중 하나와 교환한다. 그런 블록 P의 구조는 블록 P의 79 비트 제어 입력에 공급된 각 이진 코드 값에 대해 입력비트들의 유일한 치환을 수행한다.
32 비트 정보 입력과 79 비트 제어 입력을 가진 제어돈 치환 블록 P를 사용하는 다음의 변이 가능하다. 서브 블록 A의 32 비트들과 추가 47비트 서브키 Q(2r)는 제어된 치환 블록 P의 79 비트 제어 입력에 인가된 제어신호로서 이용될 수 있다. 이 경우에 있어서, 47 비트 추가 서브키에 의존하면서, 비트 치환 동작의 247다른 변형중의 하나는 입력 블록 값에 의존하여 형성된다. 그것에 의하여 이 동작의 각 변형은 서브키 K2r의 비트를 치환하는 232의 다른 동작들을 포함한다. 여기서, 특별한 치환 동작의 선택은 서브 블록 A 값에 의해 결정된다. 변형 선택은 비밀키의 직접적인 요소이거나 또는 비밀키에 의존하는 추가 서브키 Q(2r)에 의해 정의되기 때문에 수행되지 않는다. 이것은 추가적으로 암호화 변환의 저항을 강화한다. 만약 암호화 장치가 도 2 에 나타낸 구조를 가진 두 개의 블록들 P를 사용하면, 추가 47 비트 서브키들에 의존하는 서브 블록 P를 설정하는 제어된 치환 동작의 가능한 변형 조합들의 수 94 비트 길이의 비밀키를 사용할 때 (247)2=294로 설정될 수 있다.
블록들 P의 단순 구조 때문에, 집적회로를 생성하는 현재 기술은 암호화 마이크로프로세서들을 쉽게 제조할 수 있고, 마이크로프로세서들은 입력 용량 32와 64 비트들을 가진 제어된 치환 블록들을 포함하고, 1 Gbit/s와 그 이상의 암호화 율을 제공한다.
도 6에서, 얇은 실선들은 하나의 서브키 비트의 전송을 나타내고, 일련이 기초 스위치들 S를 사용하는 제어된 치환 블록의 가능한 구현을 시연한다. 제어된 치환 블록의 이런 실시예는 제어된 치환 블록에 대응한다. 정보 신호들(서브키 비트들)에 대한 8비트 입력과 제어 신호들의 8비트 입력(도 1에서와 유사한 점선에 의해 설정된 데이터 서브 블록 비트들)을 가진다. 비슷한 식으로, 임의의 제어된 치환 블록을 구성하는 것이 가능한데, 예를 들면, 정보신호에 대해 64 비트 입력과 제어 신호에 대해 128 비트의 입력을 가진다. 32 비트 정보 입력을 가지는 제어된 치환 블록을 사용할 때, 다른 치환의 수는 232와 같다. 이것은 두 개의 다른 데이터 블록들의 암호화에 있어서, 주어진 설정에서 특별한 치환의 반복 가능성이 2-32와 같고, 한편 z 설정에서 반복하는 치환의 수는 2-32Z와 같다는 것을 의미한다. 이렇게 해서, 각 입력 메시지를 변환하는데 사용된 서브키 변경 값의 설정은 높은 암호화 저항율을 보장하는 실제적으로 유일한 것이다. 도 6 에 도시된 제어 치환 블록의 간단화된 구조를 사용할 때, 입력 능력이 128비트 까지인 제어 치환 블록들을 포함하는 암호화 마이크로프로세서를 제작하기가 쉽다. 128 서브키들에 대한 제어 치환 동작의 사용은 높은 암호화 저항을 얻을 수 있도록 한다. 그 제어된 치환 블록은 제어된 치환을 고속으로 수행하는 조합 전자 회로이다.
실시예 2.
이 실시예는 변환된 서브키들에 의존하고 서브키들에 대해 수행된 순환 오프셋 동작의 사용에 대해 설명한다. 암호화 키는 각각 32 비트를 가진 16개의 서브키들 K1,K2,K3,...., K32의 형태로 발생된다. 입력 64 비트 데이터 블록은 32 비트 서브블록들 A와 B로 분류된다. 입력 블록의 암호화는 다음 알고리즘에 의해 수행된다:
1. 라운드 수 카운터 r=1을 설정한다.
2. B의 표현에 따라 서브 블록 B를 변환: B:=B??(K2r<<<A), 여기서, K2r<<<A는 서브키 K2r에 대해 수행된 A비트들에 의해 좌측에 순환 오프셋의 동작을 나타낸다.
3. 그 표현에 따라 서브 블록 A를 변환:
A:=A??B,
여기서, "??"는 모듈로 232합 동작이다.
4. 그 표현에 따라 서브 블록 A를 변환:
A:=A??(K2r-1<<<B),
여기서, K2r-1<<<B는 서브키들 K2r-1에 대해 수행된 B 비트들에 의한 순환 오프셋 동작을 나타낸다.
5. 그 표현에 따라 서브 블록 B를 변환:
B:=B??A.
6. 만약 r≠16 이면, 카운터 r:r+1의 증가 및 단계 2로 이동, 그렇지 않으면 멈춤( STOP).
하나의 변환 라운드의 논리 패턴이 도 1에 설명되고, 이 실시예에서 블록 P1과 P2는 변환된 서브 블록에 의존하는 서브키들에 대응하는 순환 오프셋 비트들의 동작을 수행하는 동작 블록을 나타낸다. 이 알고리즘은 컴퓨터 프로그램의 형태로 수행하도록 적응되어있다. 현대 마이크로 프로세서는 레지스터들 중 하나에 저장된 변수의 값에 의존하여 빠르게 순환 오프셋 동작을 수행한다. 이 사실에 따라, 설명된 알고리즘은 소프트웨어로 실현될 때, 대량의 마이크로프로세서 펜티엄/200에 대해 약 40 Mbit/s의 암호화 율을 제공한다. 10 암호화 라운드가 설정될 때, 약 60Mbit/s의 율이 달성된다.
실시예 3
이 실시예는 서브키들에 대해 변환되고 수행된 서브블록들에 의존하는 대체 동작의 사용을 설명한다. 현재 실시예에 대하여, 블록 P1과 P2는 적당한 서브 블록들에 의존하는 대체 동작을 수행하는 동작 블록을 표현한다. 상기 대체 동작에 의해 동작 블록 P의 입력에서 이진 신호 값을 특정한 대체 테이블에 따라 블록 P의 입력에서 그 값에 의존하여 선택된 다른 이진 값(동작 블록의 출력에서 설정)으로 대체하는 동작을 의미한다. 두 가지 대체 변환이 수행될 수 있다:
(1) n-비트 입력 이진 벡터는 n-비트 출력 이진 벡터로 대체되며, 이로 인해 다른 출력 이진 벡터들은 다른 입력 이진 벡터들에 대응한다;
(2) m-비트 이진 벡터는 n-비트 이진 벡터로 대체되며, 여기서 n≥m이고, 이로 인해 두가지의 다르고 같은 출력 이진 벡터들은 다른 입력 이진 벡터들과 대응될 수 있다.
변환된 데이터의 서브블록에 대해 제 1 형태의 대체 동작에 명시된 의존성을 설명한다. 대체 동작들이 n-비트 길이를 가지는 이진 벡터들에 대해 수행된다고 가정하자. 여기서 n은 정수이다. 그리고 나서 용량 n x n의 대체 동작(n x n 설정은 n 비트들의 길이를 가진 이진 벡터가 대체동작에 대한 입력이고 출력 이진 벡터는 또한 n 비트들의 길이를 가진다)을 결정하기 위한 것이다. 두개의 숫자 라인을 포함하는 테이블을 사용할 것이 요구된다:
0 1 2 3 .... N-1
α0α1α2α3.... αN-1
여기서 N=2n이다. 이 테이블의 저면 라인에 있어서 임의의 순서를 제외하고 동등한 하나의 모든 가능한 n-비트 블록의 값들이 있다. 그 저면 라인에서 숫자들이 위치하는 적당한 열은 대체 테이블의 적당한 변환을 결정하고 따라서 이 테이블을 사용하여 수행된 대체 동작의 특별한 변형을 결정한다. 대체 동작으 수행은 다음과 같이 이루어진다. 하나의 수가 입력 블록 값과 동일한 상부 라인에서 선택된다. 저면 라인에서 이 값 아래에 나타나는 값은 출력 블록이 되도록 취해진다. 이렇게 해서, 대체 테이블은 어드레스들 W0,W1,W2,....,WN-1을 가지는 셀들내에 위치된 n-비트 컴퓨터 워드들의 연속적인 명시와 같이 컴퓨터 동작 메모리내에 위치할 수 있다. 이 경우에, 입력 이진 벡터 Y의 값은 출력 이진 벡터로서 주어진 워드의 어드레스 W0+Y를 계산하기 위해 제공한다. 대체 테이블의 이러한 표현 방법은 Nn=2nn비트들과 동등한 메모리 용량 사용을 요구한다. 2L(요구된 메모리 용량이 이 경우에 있어서 2LNn 비트들일 것이다)과동등한 대체 테이블의 수를 선택하고 연속적으로 차례로 대체 테이블을 위치시킨다. 숫자 V를 가진 테이블 어드레스로서 테이블 제 1 비트 워드로부터 어드레스 W0의 값을 취한다. 숫자 V=0를 가진 테이블 어드레스가 s라고 가정한다. 이 경우에 있어서, 임의 수를 가진 대체 테이블 어드레스는 s+vN이다. 만약 제어 이진 벡터는 현재 입력 이진 벡터 뿐만 아니라 현재 대체 테이블의 수를 결정하는 것을 나타내며, 그리고 나서 대체 동작은 어드레스 s+vN+Y에 위치된 n-비트 워드를 가진 현재 입력 블록의 대체에 의해 수행되고, 여기서 Y는 현재 대체 동작이 수행된 입력 이진 벡터의 값이다. 이런 관계를 이용하여, 숫자 v를 가진 대체 테이블의 선택을 명시하는 것과 그 값 Y를 가진 입력 이진 벡터에 대한 대체를 수행하는 것이 수월하다. 이 경우를 고려해 볼 때, 제어 이진 벡터에 대한 대체 테이블의 의존을 명시하는 것과 대체 동작을 수행하는 것은 변수 L과 n의 적당한 값이 선택될 때, 예를 들면 L=5이고 n=8일 때, 마이크로 프로세서에 의해 매우 빠르게 이루어진다. 이들 변수들이 선택될 때, 대체 테이블을 위치시키기 위하여, 8 킬로 바이트(kbytes)의 동작 메모리가 요구되는데, 이 요구사항은 현대 컴퓨터들이 이 값(1 부터 64 메카바이트(Mbytes) 이상)보다 더 높은 차수의 동작 메모리 용량을 가지기 때문에 받아들일 만 한 것이다.
32 비트 이진 벡터들 Xj,J=0,1,2,....,216-1의 번호열을 이용하는 명시된 16x32 대체들의 예에 의해 데이터 서브블록에 대해 제 2 형태의 대체 동작의 종속을 명시하는 것을 설명한다. 열 Xj는 암호화 알고리즘 설명으로 알려진 것으로 가정되고 이와 관계된다. 16 비트 키 k에 대한 대체 동작은 변환된 서브 블록 b에 대해 의존하여 다음과 같이 수행된다:
(1) 수 j=(b+k) 모드 216을 계산;
(2) 16 비트 이진 벡터 k가 32 비트 이진 벡터 Xj로 대체된다.
변환된 데이터 서브블록들에 의존하는 서브키들에 대해 32 비트 이진 벡터들 Xj(j=0,1,2,....,216-1)의 열을 사용하여 수행된 대체 동작들에 기초한 64 비트 데이터 블록들의 암호화는 예를 들면 다음과 같이 수행될 수 있다. 암호화 키는 16 서브키들 K1,K2,K3,....,K32의 형태로 발생되고, 각각 16 비트의 길이를 가진다. 상기 입력 데이터 블록은 각각 16 비트 서브 블록들 a1,a2와 b1,b2의 연관(concatenation)으로 표현된두개의 32 비트 서브 블록들 A=a2??a1과B=b2??b1로 분류된다. 입력 블록의 암호화는 다음 알고리즘에 의해 설명된다:
1. 라운드 수 카운터 r=1 설정.
2. 그 표현에 따라 서브 블록 B 변환:
B:=B??F(K4r,a1),
여기서, F(K4r,a1)은 서브 블록 a1에 의존하는 서브 블록 K4r에 대한 대체 동작을 나타낸다.
3. 그 표현에 따라 서브 블록 A를 변환:
A:=A+B(모드232)
4. 그 표현에 따라 서브 블록 A를 변환:
A:=A??F(K4r-1,b1),
여기서, F(K4r-1,b1)은 서브 블록 b1에 의존하여 수행된 서브 키 K4r-1에 대한 대체 동작을 나타낸다.
5. 그 표현에 따라 서브 블록 B를 변환:
B:=B+A(모드232)
6. 그 표현에 따라 서브 블록 B를 변환:
B:=B??F(K4r-2,a2).
7. 그 표현에 따라 서브 블록 A를 변환:
A:=A+B(모드232)
8. 그 표현에 따라 서브 블록 A를 변환:
A:=A??F(K4r-3,b2).
9. 그 표현에 따라 서브 블록 B를 변환:
B:=B+A(모드232)
10. 만약 r≠4 이면, 카운터 r:=r+1로 증가하고 단계 2 로 이동, 그렇지 않으면 멈춤(STOP).
이 알고리즘은 현대 컴퓨터 동작 메모리의 용량의 작은 부분을 구성하는 240 킬로 바이트(kbytes) 크기를 가진 알려진 대체 테이블을 사용한다. 소정의 어드레스들에 따른 동작 메모리로부터 이진 벡터들을 추출하는 동작은 기계 사이클의 작은 수에 대해 수행된다.
변환된 서브 블록들에 의존하는 서브키들에 대해 수행된 대체 동작들을 가진 블록 암호화에 대한 제안된 방법의 소프트 웨어 구현은 대량의 마이크로 프로세서 펜티엄/200에 대한 20부터 60 메가 비트(Mbit/s)들로 부터(특별한 수행에 의존하는) 암호화 율을 제공한다.
열거된 실시예들은 이산 데이터 블록 암호화를 위한 제안된 방법이 기술적으로 실행가능하고 우리가 정의한 문제를 해결할 수 있다는 것을 증명한다.
논의된 실시예들은 예를 들면, 특수한 마이크로전자 암호화 회로들(실시예 1)과 암호화 컴퓨터 소프트웨어의 형태(실시예들 2와 3)들 쉽게 구현될 수 있고, 하드웨어가 구현되었을 때, 1 기가 비트(Gbit/s) 및 그 이상의 암호화율을 보증하고(실시예 1), 소프트웨어로 구현될 때 대용량의 마이크로프로세서 펜티엄/200을 사용하여 60 메가 비트(Mbit/s)까지 보증한다.

Claims (4)

  1. 일련의 서브키들의 형태로서 암호화 키를 발생하고, 데이터 블록을 N≥2 서브 블록들로 분류하고, 서브블록과 서브키에 대해 듀얼 로커스(dual-locus)를 수행함에 의해 상기 서브블록들을 교대로 변경하여 이루어지는 이산 데이터의 블록 암호화 방법에 있어서, i-번째 서브블록과 서브키에 대해 상기 듀얼 로커스 동작을 수행하기 전에, 변경 동작이, j≠i 일 때, j-번째 서브 블록에 의존하는 서브키에 대해 수행되는 것을 특징으로 하는 이산 데이터의 블록 암호화 방법.
  2. 제 1 항에 있어서, 상기 j-번째 서브블록에 의존하는 서브키 비트들의 치환 동작은 상기 j-번째 서브블록 의존 변환 동작으로 사용되는 것을 특징으로 하는 이산 데이터의 블록 암호화 방법.
  3. 제 1 항에 있어서, 상기 j-번째 서브블록에 의존하는 순환 오프셋 서브키 비트들의 동작은 j-번째 서브 블록 의존 변환 동작으로 사용되는 것을 특징으로 하는 이산 데이터의 블록 암호화 방법.
  4. 제 1 항에 있어서, 상기 j-번째 서브 블록에 의존하는 서브키에 대해 수행된 대체 동작은 j-번째 서브블록 의존 변환동작으로 사용되는 것을 특징으로 하는 이산 데이터의 블록 암호화 방법.
KR10-2000-7009280A 1998-02-24 1998-06-19 이산 데이터 블록 암호화 방법 KR100411912B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
RU98103646 1998-02-24
RU98103646A RU2140710C1 (ru) 1998-02-24 1998-02-24 Способ блочного шифрования дискретных данных
RU98104851A RU2140711C1 (ru) 1998-03-20 1998-03-20 Способ блочного шифрования дискретной информации
RU98104851 1998-03-20
RU98107784 1998-04-22
RU98107784/09A RU2140712C1 (ru) 1998-04-22 1998-04-22 Способ блочного шифрования двоичной информации

Publications (2)

Publication Number Publication Date
KR20010041202A true KR20010041202A (ko) 2001-05-15
KR100411912B1 KR100411912B1 (ko) 2003-12-18

Family

ID=27354188

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7009280A KR100411912B1 (ko) 1998-02-24 1998-06-19 이산 데이터 블록 암호화 방법

Country Status (9)

Country Link
EP (1) EP1059760A4 (ko)
JP (1) JP2002505452A (ko)
KR (1) KR100411912B1 (ko)
CN (1) CN1281023C (ko)
PL (1) PL342617A1 (ko)
SI (1) SI20498A (ko)
SK (1) SK12472000A3 (ko)
UA (1) UA51836C2 (ko)
WO (1) WO1999044330A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2345229B (en) * 1998-12-23 2003-12-03 Motorola Ltd Method for encrypting data
JP2002055604A (ja) 2000-08-11 2002-02-20 Trinity Communication Inc データ防護処理装置、モデム装置、データ通信システム、データ防護処理方法、その方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
ITRM20010304A1 (it) * 2001-06-01 2002-12-02 Atop Innovation Spa Metodo di codificazione, in particolare di codificazione numerica.
AU2003300058A1 (en) * 2003-01-07 2004-08-10 Qualcomm Incorporated System, apparatus and method for replacing a cryptographic key
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
GB2446199A (en) * 2006-12-01 2008-08-06 David Irvine Secure, decentralised and anonymous peer-to-peer network
GB2475327A (en) * 2009-11-16 2011-05-18 Alexander Jackson-Smith Processing binary data arranged into segments or blocks using a value based on the binary ones in the segments to transform part of the segment.
US8675871B2 (en) * 2011-05-31 2014-03-18 International Business Machines Corporation Protecting a control vector in an optional block of a standard key block
CN106817220A (zh) * 2015-11-30 2017-06-09 北大方正集团有限公司 一种通信数据加密的方法、装置及加密设备
CN108156113B (zh) * 2016-12-02 2019-07-23 中科星图股份有限公司 一种更新文件的推送方法
AU2020256125A1 (en) 2019-03-29 2021-11-18 Turnstone Biologics Corp. Ex vivo methods for producing a T cell therapeutic and related compositions and methods
JP2023516636A (ja) 2020-02-27 2023-04-20 ミスト セラピューティクス リミテッド ライアビリティ カンパニー 腫瘍反応性t細胞のエクスビボ富化および増大のための方法ならびに関連するその組成物

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3565918D1 (en) * 1984-08-10 1988-12-01 Gretag Ag Enciphering/deciphering method
GB2288519A (en) * 1994-04-05 1995-10-18 Ibm Data encryption
AU3560895A (en) * 1995-09-26 1997-04-17 Xian Kan Lin A method for encryption of file
RU2103828C1 (ru) * 1997-02-10 1998-01-27 Управление Федеральной службы безопасности России по Санкт-Петербургу и Ленинградской области Способ блочного шифрования данных
KR100497130B1 (ko) * 1997-04-02 2005-09-20 오트크리토에 악츠이오네른오에 옵스체스트보 (모스코브스키야 고로즈카야 텔레폰나야 셋) 이진코드정보의암호화방법
KR100259836B1 (ko) * 1997-05-13 2000-06-15 윤종용 N-라운드 라운드 출력문 귀환 블록 암호화/복호화 방법
KR100606027B1 (ko) * 2002-03-11 2006-07-26 삼성전자주식회사 수동형 광 가입자망을 통한 이더넷 프레임 전송시 왕복시간지연을 보상하는 방법 및 그 수동형 광 가입자망 시스템
KR101937887B1 (ko) * 2016-12-09 2019-01-14 한국생산기술연구원 아이소소바이드 유도체 화합물을 포함하는 치과용 충전재 조성물

Also Published As

Publication number Publication date
CN1285102A (zh) 2001-02-21
JP2002505452A (ja) 2002-02-19
WO1999044330A1 (fr) 1999-09-02
PL342617A1 (en) 2001-06-18
SI20498A (sl) 2001-08-31
EP1059760A1 (en) 2000-12-13
UA51836C2 (uk) 2002-12-16
CN1281023C (zh) 2006-10-18
EP1059760A4 (en) 2002-09-18
SK12472000A3 (sk) 2001-05-10
KR100411912B1 (ko) 2003-12-18

Similar Documents

Publication Publication Date Title
US5623548A (en) Transformation pattern generating device and encryption function device
AU767323B2 (en) Block encryption device using auxiliary conversion
KR100657062B1 (ko) 정보 암호화 방법 및 이 방법을 실현하는 장치
KR100389902B1 (ko) 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법
JPH11509940A (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
KR20020006475A (ko) 암호화장치, 복호장치 및 확대키 생성장치, 확대키생성방법 및 기록매체
KR100411912B1 (ko) 이산 데이터 블록 암호화 방법
US6301361B1 (en) Encoding and decoding information using randomization with an alphabet of high dimensionality
KR100411684B1 (ko) 이진 데이터 블록의 암호 변환 방법
US20050147244A1 (en) Method for cryptographic transformation of binary data blocks
JP3770584B2 (ja) 暗号鍵生成回路
US7433905B2 (en) Device and method for processing digital values in particular in non-adjacent form
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법
RU2140716C1 (ru) Способ криптографического преобразования блоков цифровых данных
RU2127024C1 (ru) Блок шифрования
RU2140712C1 (ru) Способ блочного шифрования двоичной информации
CZ20003055A3 (cs) Způsob blokového kódování diskrétních dat
RU2140715C1 (ru) Шифрующий блок
KR20010109626A (ko) 3중 데이터 암호화 표준 아키텍쳐를 구현한 암호화 장치
JPH0573299B2 (ko)
KR20020003579A (ko) 비-병렬 다중 사이클 데이터 암호화 장치 및 방법
KR20030090870A (ko) 레이아웃 면적을 감소시킨 safer+ 알고리즘을이용한 암호화장치 및 방법

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: 20081127

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee