KR20000008923A - 티에스 비트열의 데이터 디이에스 디스클램블링 장치 - Google Patents

티에스 비트열의 데이터 디이에스 디스클램블링 장치 Download PDF

Info

Publication number
KR20000008923A
KR20000008923A KR1019980029019A KR19980029019A KR20000008923A KR 20000008923 A KR20000008923 A KR 20000008923A KR 1019980029019 A KR1019980029019 A KR 1019980029019A KR 19980029019 A KR19980029019 A KR 19980029019A KR 20000008923 A KR20000008923 A KR 20000008923A
Authority
KR
South Korea
Prior art keywords
unit
bit
encrypted data
signal
input
Prior art date
Application number
KR1019980029019A
Other languages
English (en)
Other versions
KR100314235B1 (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 김춘호
Priority to KR1019980029019A priority Critical patent/KR100314235B1/ko
Publication of KR20000008923A publication Critical patent/KR20000008923A/ko
Application granted granted Critical
Publication of KR100314235B1 publication Critical patent/KR100314235B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/251Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with block coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명은 블럭 암호화 알고리즘 중에서 가장 널리 사용되는 DES(Data Encryption Standard; 이하 "디이에스"라 함) 알고리즘을 디스클램블링(descrambling)하는 디스클램블링 장치에 관한 것으로서, 암호화된 데이터를 복호화 하는 복호화 시스템에 있어서, 티에스(TS) 비트열의 암호화 된 데이터와, 상기 암호화 된 데이터를 복호화 하기 위한 키 및, 초기설정 벡터를 받아서 디이에스 복호기(DES decrypter)로 전송하는 신호전처리부(1)와; 전송된 암호화된 데이터를 상기 키와 상기 초기설정 벡터를 이용하여 복호화 하는 디이에스 복호기(2 ; DES decrypter)로 구성되어 암호화된 MPEG-2 티에스(TS) 비트열의 암호화 된 데이터를 여러 동작모드에서 효율적으로 복호화 할 수 있는 장점이 있는 것이다.

Description

티에스 비트열의 데이터 디이에스 디스클램블링 장치
본 발명은 블록 암호화 알고리즘 중에서 가장 널리 사용되는 DES(Data Encryption Standard; 이하 "디이에스"라 함) 알고리즘을 디스클램블링(descrambling)하는 디스클램링 장치에 관한 것으로서, 특히 암호화된 MPEG-2 티에스(TS) 비트열의 데이터를 여러 동작모드로 지원하는 티에스 비트열의 데이터 디이에스 디스클램블링 장치에 관한 것이다.
인터넷으로 대표되는 컴퓨터 네트워크의 눈부신 발달은 엄청난 양의 데이터전송을 필요로 하게 되었고, 네트워크를 이용한 전자 상거래도 이미 WWW(World Wide Web)를 통해서 쉽게 접할 수 있게 되었다. 이러한 네트워크의 발달로 인하여 방대한 데이터 전송과 정보의 처리가 가능하게 되었으나 반면에 보안성의 문제가 가장 절실하게 대두되었다. 공중파 방송의 경우 HDTV에서 채택한 MPEG-2 시스템 규격중에서 중요한 부분중 하나는 유료화 정보를 특정 가입자 만이 볼 수 있도록 하는 제한 수신정보를 암호화 하여 정보의 보안성을 유지하는 기술이라 할 수 있는바, 정보의 암호화는 다음과 같이 이루어진다.
디이에스에 사용되는 암호화의 기본적인 알고리즘은 치환(permutation)과 대치(substitution)이며, 이 두가지를 이용하여 라운드(round)라 불리우는 기본단계를 형성하고, 도 1에 도시한 바와 같이 이러한 라운드가 16번 반복되어서 하나의 암호화된 디이에스블럭을 구성한다.
도 1에서 키(KEY)는 도시하지 않은 키생성부에서 발생시키게 되는데, 키생성부에서는 먼저 64비트의 키로부터 8비트의 패리티 비트를 제거한 다음 나머지 56비트에서 동작 키를 생성하여 데이터 암호화에 사용하게 된다. 64비트의 평문 블럭은 초기치환(IP ; intial permutation)된 후 32비트로 양분되고 우측 32비트는 확장(expantion) 과정을 거쳐 56비트의 키중 선택된 48비트의 키와 익스클루시브 오아(exclusive-or, 배타적논리화 : 이하 "XOR"이라 함)되어 48비트의 값을 생성하고, S-box 치환 알고리즘을 이용하여 32비트로 만든 후 P-box 치환과정을 한번 더 거쳐 최종적으로 그 이전의 왼쪽 32비트 값과 XOR 하여 새로운 오른쪽 32비트를 형성한다. 그리고 그 이전의 오른쪽 32비트 값은 새로운 왼쪽 32비트의 값이 된다.
이와 같은 과정이 16번 반복되어 마지막에 생성되어진 오른쪽 32비트와 왼쪽 32비트는 합쳐져서 역 초기치환(inverse permutation) 과정을 거치므로써 최종적으로 암호화된 디이에스블럭을 얻을 수 있다.
여기서 초기치환(IP ; intial permutation)은 입력되어 들어오는 블럭을 주어진 표를 이용하여 자리를 바꾸어 주는 것으로, 예컨대 입력의 58번째 비트가 출력의 1번째 비트로, 입력 62번째 비트는 출력의 17번째 비트로 자리 바꿈을 하는 것이다.
확장치환(expantion permutation)은 초기치환(IP)에 의해 생성된 64비트중에 오른쪽 32비트를 입력하여 주어진 표에 의해 48비트로 확장하는 것으로, 예를들면 입력의 32번째 비트는 출력의 1번째 비트가 되고, 입력의 8번째 비트는 출력의 13번째 비트가 되는 것이다.
키생성부에서 생성된 초기 64비트의 키는 주어진 표에 의하여 각 8번째 패리티 비트를 제거하여 56비트로 만들고 이 56비트는 28비트로 양분되어 일정한 규칙에 의해 한 비트나 두 비트가 좌측으로 쉬프트 되고, 주어진 표에 의해 48비트의 키가 형성된다.
S-box 치환은 48비트로 압축된 키와 확장치환을 통해 얻어진 48비트를 XOR한 후 이 연산을 통해 얻어진 48비트를 8개의 치환박스(substitution boxes)를 이용하여 32비트의 출력을 만드는 것으로, 32비트가 얻어지는 과정은 먼저 입력 48비트가 8개의 6비트 단위로 나뉘어지고, 이렇게 나뉘어진 블럭은 8개의 S-box를 이용하여 8개의 4비트 블럭으로 만드는데 예를들면 8개의 입력블럭 중 첫 번째 입력의 6비트를 in1∼in6이라고 하면 in1과 in6을 합하여 2비트의 숫자를 만들고, 이때 만든 2비트(0∼3 사이의 십진수 값)는 S-box1의 몇번째 줄(0부터 시작) 인가를 나타내게 되고, in2∼in5를 합하여 4비트를 만들며, 이 값을 10진수로 바꾼값(0∼15)은 표의 몇번째 칸(0부터 시작) 인지를 나타내게 되며, 이렇게 표에서 얻어진 값을 2진수로 바꾼 값이 4비트의 출력값이 된다. 위와 같은 과정을 통하여 8개의 4비트블럭 즉, 32비트의 출력값을 얻게 되는 것이다. S-box 치환은 상기한 치환들과는 달리 비선형적인 특성을 가지기 때문에 디이에스의 보안성에서 가장 핵심적인 부분이라고 할 수 있다.
P-box 치환은 단순치환이므로 입력으로 들어온 32비트를 주어진 표를 이용하여 치환한 값 역시 32비트의 값이 된다. 에컨대 입력의 16번째 값은 출력의 1번째 비트가 되고 입력의 2번째 비트는 출력의 17번째 비트가 되는 것이다.
역 초기치환(inverse permutation)은 초기치환의 역으로서, 16라운드 후에 만들어 R16 + L16의 64비트를 주어진 표를 이용 치환하여 최종적으로 64비트 블럭을 얻는 것이다.
상기한 디이에스는 암호화 하고자 하는 데이터의 길이가 64비트를 넘을 경우에 이들을 적절하게 연결하여 전체 데이터를 암호화 할 수 있도록 여러 가지 연산모드를 두고 있는데 그중 표준안에서 제안한 3가지의 연산모드를 도 2내지 도 4에 각각 도시하였다.
〈ECB(Electronic CodeBook)모드〉
평문을 암호 시스템의 블럭크기(64비트) 만큼 등분한 후, 각 블럭별로 암호화 하여 암호문을 생성하는 가장 간단한 모드로서 전체 구조는 도 2에 도시한 바와 같다. ECB 모드는 평문의 크기가 작을 때 이용하는 것이 좋으며, 같은 평문에 대해서는 같은 암호문이 생성되기 때문에 같은 문장이 반복되는 평문을 암호화 하는 경우에는 안전성에 문제가 있을 수 있다. 즉, 해독 공격에 취약한 단점을 가지고 있다.
〈CBC(Cipher Block Chaining)모드〉
ECB 모드에서의 보안성이 취약한 단점을 보완하기 위해 같은 평문이 반복되는 경우에 다른 암호문을 생성하는 연산모드이며, 그 구조는 도 3에 도시한 바와 같다. 암호화 하기 위해 디이에스 암호기(DES Encrypter)로 들어가는 입력은 현재 입력으로 들어오는 평문과 그 이전에 암호화된 암호화 블럭과의 XOR 값이 되고, 초기의 암호화를 위해서 초기설정 벡터IV(Initialization Vector;IV)를 사용하여 캐리(C1)를 생성한다. 복호화는 암호화의 역의 과정이고 초기설정 벡터 값은 키와 마찬가지로 중요하므로 보안에 주의해야 한다. CBC 모드는 평문의 길이가 긴 메시지의 암호화에 적당하다.
〈CFB(Cipher FeedBack)모드〉
DES 모드는 블럭 암호화 시스템이지만 CFB 모드를 이용하면 스트림 암호화가 가능하게 할 수 있다. 스트림 암호화는 평문을 일정한 크기의 블럭으로 만들 필요가 없는 장점이 있다. 복호화는 같은 방법이 이용되지만 주의할 점은 DES의 복호화 알고리즘이 쓰이지 않고 암호화 알고리즘이 그대로 쓰인다는 것이다. 그리고 캐리(C1)가 쉬프트 레지스터의 입력으로 들어가기 때문에 에러가 발생했을 때에 그 에러가 전파된다는 단점을 가지고 있다. 전송 단위를 j비트로 하면 보통 전송 단위는 8비트가 된다(한 문자 = 8비트이므로). 암호화 하기 위해 디이에스 암호기(DES Encrypter)로 들어가는 64비트 입력은 초기에 초기설정 벡터(Initialization Vector)를 가지는 64비트 쉬프트 레지스터로부터 얻어지며, 이 레지스터는 8비트 만큼 좌측으로 쉬프트 되고 그이전에 암호화된 8비트의 캐리(C1) 값이 최하위 8비트로 들어가는 것으로 전체 구조는 도 4에 도시한 바와 같다.
이상에서 설명한 바와 같이 하여 암호화된 정보를 수신측에서 디스클램블링 하기 위해서는 복호화기(descramber)의 방식 및 구조를 체계적으로 연구하고 개발하는 일이 선행되어야 할 것인바 본 발명은 이러한 실정을 감안하여 본 발명의 발명자들이 연구를 거듭한 결과로서 얻어진 것으로서, 암호화된 MPEG-2 티에스(TS) 비트열의 암호화된 데이터를 여러 동작모드에서 효율적으로 복호화 하는 티에스 비트열의 데이터 디이에스 디스클램블링 장치를 제공함에 그 목적이 있다.
도 1은 디이에스(DES) 알고리즘을 나타낸 도면,
도 2는 ECB 모드의 구조도,
도 3은 CBC 모드의 구조도,
도 4는 CFB 모드의 구조도,
도 5는 본 발명 티에스 비트열의 데이터 디이에스 디스클램링 장치의 구성도,
도 6은 본 발명에 따른 디이에스 복호기의 구성도,
도 7은 본 발명에 따른 제어 레지스터부의 구성도,
도 8은 본 발명에 따른 라운딩블럭 복호기의 구성도,
도 9는 본 발명에 사용된 클럭의 파형도,
도 10은 본 발명에 따른 ECB 모드의 제어 레지스터부의 구성도,
도 11은 본 발명에 따른 CBC 모드의 제어 레지스터부의 구성도,
도 12는 본 발명에 따른 ECB,CBC 모드 동작시의 신호파형도,
도 13a는 본 발명에 따른 ECB 모드 동작시 제어 레지스터부의 동작 순서도,
도 13b는 본 발명에 따른 CBC 모드 동작시 제어 레지스터부의 동작 순서도,
도 14는 본 발명에 따른 CFB 모드의 제어 레지스터부의 구성도,
도 15는 본 발명에 따른 CFB 모드 동작시의 신호파형도,
도 16a, 도 16b는 본 발명에 따른 CFB 모드 동작시 제어 레지스터부의 동작순서도,
도 17a 내지 도 17c는 본 발명에 따른 라운딩블럭 복호기의 동작 순서도이다.
<도면의 주요부분에 대한 부호의 설명>
1 : 신호전처리부 2 : 디이에스 복호기
11 : 제어 레지스터부 12 : 라운딩블럭 복호기
21∼25 : 제1∼5레지스터 26 : 신호입력부
27 : 초기치환부 28 : 역 초기치환부
29 : 선택치환부 BF1∼BF7: 버퍼
RS : 라이트 쉬프트부(right shift) PC-2 : 선택치환부
E-func : 확장치환부 TAU : 배타적논리부
S1∼S8 : S-box 치환부 P-func : 단순치환부
X-func : 배타적논리부
상기한 목적을 달성하기 위한 본 발명은 암호화된 데이터를 복호화 하는 복호화 시스템에 있어서, 티에스(TS) 비트열의 암호화 된 데이터와, 상기 암호화 된 데이터를 복호화 하기 위한 키 및, 초기설정 벡터를 받아서 디이에스 복호기(DES decrypter)로 전송하는 신호전처리부(1)와; 전송된 암호화된 데이터를 상기 키와 상기 초기설정 벡터를 이용하여 복호화 하는 디이에스 복호기(2 ; DES decrypter)로 구성됨을 특징으로 한다.
또한 상기 디이에스 복호기(2 ; DES decrypter)는 연산모드에 따라 상기 암호화된 데이터의 복호화 동작을 제어하는 제어 레지스터부(11)와, 디이에스 규격에서 요구되는 16번의 라운딩(rounding)을 수행하여 상기 암호화된 데이터를 복호화 하는 라운딩블럭 복호기(12)로 구성되고, 상기 제어 레지스터부(11)는 입려되는 신호를 로딩(loading) 하는 제1∼5레지스터(21∼25)와, 상기 신호전처리부(1)에서 출력된 제어신호를 입력하는 신호입력부(26), 입력되는 블럭의 비트자리를 바꾸어 주는 초기치환부(27 ; IP), 상기 초기치환부(27)와는 역으로 입력되는 블럭의 비트를 바꾸어 주는 역 초기치환부(28 ; inverse IP), 입력되는 블럭의 비트자리를 선택적으로 바꾸어 주는 선택치환부(29 ; PC-1) 및 입력과 출력을 래치(latch) 하는 바이트 레지스터 버퍼(BF1∼BF7)로 구성된다.
그리고 상기 라운딩블럭 복호기(12)는 키(KEY)의 비트를 양분하여 디이에스 복호화 알고리즘의 라이트 쉬프트(right shift) 동작을 신호(LS-SEL)의 값만큼 쉬프트 하는 라이트 쉬프트부(RS)와, 입력되는 데이터로 키값을 생성하는 선택치환부(PC-2)와, 입력블럭(IN-BL)중 하위비트쪽의 값을 확장하는 확장치환부(E-func)와, 상기 선택치환부(PC-2)와 확장치환부(E-func)의 출력값을 XOR 하는 배타적논리부(TAU)와, 상기 배타적논리부(TAU)의 출력을 S-box치환 하는 S-box 치환부(S1∼S8)와, 상기 S-box 치환부(S1∼S8)의 출력값으로부터 치환값을 생성하는 단순치환부(P-func)와, 상기 입력블럭(IN-BL)중 상위 비트쪽의 값과 상기 단순치환부(P-func)의 출력값을 XOR 하는 배타적논리부(X-func)로 구성됨을 특징으로 한다.
이하 첨부 도면을 참조하여 본 발명 티에스 비트열의 데이터 디이에스 디스클램블링 장치의 작용을 상세하게 설명한다.
도 5는 본 발명 티에스 비트열의 데이터 디이에스 디스클램블링 장치의 전체 구성도로서, 전체시스템은 티에스(TS) 비트열의 데이터를 받아서 디이에스 복호기(2)로 전송하여 복호화 하는데 필요한 키와 초기설정 벡터(initialization Vector) 및 암호화된 데이터를 전달하는 신호전처리부(1)와, 이렇게 전달된 신호로부터 실질적인 복호화 동작을 하는 디이에스 복호기(2)로 구성된다.
그리고 상기 디이에스 복호기(1)는 도 6에 도시한 바와 같이 제어 레지스터부(11)와 라운딩블럭 복호기(12)의 2개의 모듈로 구성되어 있고, 상기 제어 레지스터부(11)는 하나로서 EBS 모드, CBC 모드, CFB 모드의 3가지 모드에서 암호화된 비트열의 데이터를 모두 복호화 할 수 있도록 도 7에 도시한 봐와 같이 구현되어 있으며, 16라운드의 디이에스 복호화를 위해 1개의 라운드를 처리하는 라운딩블럭 복호기(12)를 16번 동작시켜 1블럭을 복호화 할 수 있도록 되어 있다.
시스템에 입력되는 신호는 티에스 데이터(ts-data), 제어워드(Control Word)신호(CW), 초기설정백터(initialization Vector)신호(IV-CW), 시스템클럭으로 나뉘어 지며, 티에스 데이터(ts-data)는 8비트 단위의 데이터, 클럭(clock), 데이터의 유효함을 알려 주는 신호(Data-valid)로 이루어 진다. 그리고 제어워드(Control Word)신호(CW), 초기설정백터(initialization Vector)신호(IV-CW)는 64비트의 형태로 입려되어 진다. 신호전처리부(1)는 이러한 입력신호로부터 실제 디이에스 복호화를 하는데 필요한 신호를 디이에스 복호기(2)로 전송하는 작용을 한다. 신호전처리부(1)로부터 출력되는 신호로서는 암호화된 8바이트의 데이터신호(eb), 신호(in-valid), 디이에스복호기(2)의 동작을 위한 클럭, 신호(KEY),(IV), 3가지 모드(ECB 모드, CBC 모드, CFB 모드)를 선택할 수 있는 모드선택신호(mode-sel), 순응필드(Adaptation Field)의 크기를 전송하는 신호(AF-L)등이 있다.
먼저 클럭을 살펴보면, 디이에스 복호기(2)에 사용된 클럭수는 도 9에 도시한 바와 같이 클럭(TS-clock)과 클럭(RB-ECBC-clock) 및 클럭(RB-CFB-clock)의 3개를 사용하였으며, 실제 입출력 되는 비트열의 암호화된 데이터신호(eb)와 복호화된 데이터신호(de)는 클럭(TS-clock)에 맞추어 입력되고 출력된다. 도 9로부터 알 수 있는 바와 같이 클럭(RB-ECBC-clock)은 ECB 모드, CBC 모드에서의 복호화 동작을 위해 정의된 클럭으로서 클럭(TS-clock)보다 2배가 빠른데 제어 레지스터부(11)로 입력되어진 블럭 암호화된 8비트의 데이터신호(eb ; encrypted byte)를 블럭 복호화 하기 위해서 8바이트(64비트) 레지스터에 저장한 후 라운드블럭 복호기(12)로 들어오기 까지 8사이클의 시간이 있으므로 이 시간안에 라운드블럭 복호기(12)는 1블럭에 대한 16라운드 복호화 동작을 처리해야 한다. 즉, 클럭(TS-clock)의 8사이클 동안 1라운드를 처리하는 라운딩블럭 복호기(12)를 16번 동작 시켜야 하기 때문에 적어도 2배 빠른 클럭을 사용한 것이다.
클럭(RB-CFB-clock)은 CFB 모드를 위해 필요한 클럭으로서, 이 클럭(RB-CFB-clock)은 클럭(TS-clock)보다 16배가 빠르게 설계되어 있는 바, 그 이유는 CFB 모드가 스트림 암호화 모드이기 때문에 제어 레지스터부(11)로 입력되어진 1바이트의 암호화된 데이터에 대해 쉬프트 레지스터를 이용하여 1블럭의 데이터를 라운드블럭 복호기(12)로 전달한다. 즉, 암호화된 데이터의 입력에서부터 1블럭의 데이터를 라운딩블럭 복호기(12)로 전달하는데 까지 걸리는 시간이 1사이클 이므로 다음 브럭이 들어오기 전 1사이클안에 1라운드를 처리하는 라운딩블럭 복호기(12)를 16번동작시켜야 하기 때문에 16배 빠른 클럭이 사용되었다.
신호(AF-L)는 제어 레지스터부(11)가 순응필드의 크기를 입력 받아서 그 크기의 순응필드 바이트 만큼 복호화 동작을 수행하지 않고 통과시키는데 사용한다. 도 12와 도 15는 4바이트의 헤더와 20바이트의 데이터를 가지는 티에스 패킷을 예로들어 ECB, CBC, CFB 각각의 모드에서의 입출력신호 타이밍챠트를 나타낸 것이다.
티에스 패킷 데이터는 클럭(TS-clock)에 동기되어 입력되는데, 티에스 패킷 해더의 첫 바이트에서 신호(TS-packet-start)가 신호(TS-clock)의 1사이클 동안 액티브 하이레벨 상태가 된다. 첫 바이트가 입력되어 복호화 되어 나갈 때 까지 걸리는 시간은 ECB,CBC 모드는 18사이클이 소요되고, CFB 모드는 4사이클이 소요된다. ECB,CBC 모드에서는 먼저 들어온 데이터의 래치와 출력되는 신호를 위해 1사이클이 소요되고, 제어 레지스터부(11)에서 라운딩블럭 복호기(12)로 1블럭을 전송하는데 8사이클, 라운딩블럭 복호기(12)와 제어 레지스터부(11)와의 신호 입출력에서 1사이클 그리고 1블럭의 라운딩블럭 복호화 처리에 8사이클이 소요되어 총 18사이클이 소요된다. CFB 모드에서는 먼저 들어온 데이터의 래치와 출력되는 신호를 위해 1사이클이 소요되고, 제어 레지스터부(11)에서 라운딩블럭 복호기(12)로 1블럭을 전송하는데 1사이클, 라운딩블럭 복호기(12)와 제어 레지스터부(11)와의 신호 입출력에서 1사이클, 그리고 1블럭의 라운딩블럭 복호화 처리에 1사이클이 소요되어 총 4사이클이 소요된다.
ECB, CBC, CFB 모드를 구현하기 위하여 제어 레지스터부(11)는 8바이트 레지스터(제1,2레지스터(21),(22)) 2개와, 16바이트 레지스터(제3레지스터(23)) 1개, 2바이트 레지스터(제4레지스터(24)) 1개, 1바이트 레지스터(제5레지스터(25)) 1개, 버퍼(BF1∼BF7)를 사용하여 구현하였다. 각각의 모드는 신호(mode-sel) 값에 의하여 결정되며, 키신호(KEY)와 초기설정백터(initialization Vector)신호(IV)를 받아서 복호화를 수행한다. 이때 CBC 모드 역암호화 구현시 초기설정백터(initialization Vector)신호(IV) 값의 XOR 하기 위해서 도 7에 도시한 바와 같이 신호(in-valid-first-blk)를 입력 받는다.
다음으로 각 모드별 암호화된 데이터의 복호화 작용을 설명한다.
〈ECB, CBC 모드〉
도 10은 ECB 모드시 제어 레지스터부(11)의 구성도로서, 이러한 제어 레지스터부(11)는 신호전처리부(1)로부터 바이트 단위의 신호를 입력 받아서 라운딩블럭 복호기(12)로 8바이트 단위(블럭단위)로 출력하고, 라운딩블럭 복호기(12)로 신호를 입력하기 위해서 2개의 8바이트 크기의 레지스터(21),(22)가 필요하며, 입력과 출력을 래치하기 위해 3개의 바이트 레지스터 버퍼(BF3),(BF5),(BF7)가 필요하다.
그리고 라운드블럭 복호기(12)로 들어가는 입력과 출력에 대해 디이에스 알고리즘 중에서 처음과 마지막에서 한번만 사용되는 초기치환부(IP), 역 초기치환부(inverse IP), 64비트의 키 값을 56비트의 값으로 치환시켜 주는 선택치환부(PC-1)부분을 제어 레지스터부(11)에 구현함으로써 하나의 라운드를 처리하는 라운드블럭 복호기(12)를 16번 반복 사용하여 16라운드를 구현할 수 있도록 구성하였다.
도 11은 CBC 모드시 제어 레지스터부(11)의 구성도로서, 상기 ECB 모드와 거의 유사하나 연쇄(chaining) 알고리즘을 구현하기 위하여 16바이트 쉬프트 레지스터인 제3레지스터(23)를 사용하였고, 이 레지스터(23)로부터 나온 1바이트의 값과 복호화된 1바이트의 값을 XOR 하여 최종적으로 복호화된 신호(db)를 출력한다. 도 12는 본 발명에 따른 ECB, CBC 모드 동작시의 신호파형도, 도 13a, 도 13b는 각각 신호전처리부(1)로부터 입력을 받아서 라운딩블럭 복호기(12)로 8바이트 단위로 출력하는 알고리즘을 구현하는 본 발명에 따른 ECB,CBC모드 동작시 제어 레지스터부(11)의 동작 순서도로서, 먼저 헤더와 나머지를 구별하여 암호화 때와 마찬가지로 역 암호화 하지 않고 통과 시킨다. 그리고 유효한 암호화 데이터가 들어오면 카운트하여 카운트 값이 8 이 되면 즉, 1블럭(8바이트)이 되면, 라운드블럭 복호기(12)에 데이터를 전송한다. 라운드블럭 복호기(12)로부터 복호화된 블럭이 입력되면 CBC 모드의 경우에는 초기의 첫 복호화된 블럭과 초기설정백터(IV)와의 XOR 과정을 거쳐서 역 암호화된 최초의 1블럭 평문을 얻는다. 이 블럭은 제2레지스터(22)에 의하여 1바이트 단위로 출력되고, 그 이후의 역 암호화된 1바이트의 데이터 출력은 제어 레지스터부(11)로 전송된 그 이전의 암호화 문과 라운드블럭 복호기(12)에서의 전송으로 역 초기치환되어 제2레지스터(22)에 저장된 복호화된 바이트와의 XOR을 통하여 얻을 수 있다.
〈CFB 모드〉
도 14는 CFB 모드시 제어 레지스터부(11)의 구성도로서, 먼저 최초의 복호화된 1바이트의 출력을 얻기 위하여 쉬프트 레지스터인 제1레지스터(21)에 로딩(loading) 되어 있던 초기설정벡터(IV) 값 8바이트를 최기치환부(27)를 거쳐서 라운딩블럭 복호기(12)로 전송한다. 그리고 라운딩블럭 복호기(12)에서 복호화 처리된 8바이트 값이 제어 레지스터인 제2레지스터(22)로 전송되고 이렇게 전송된 8바이트 중에서 최상위 한 바이트 만이 제어 레지스터부(11)의 입력값인 신호(eb)와 익스클루시브오아 되어서 최종적으로 복호화된 출력값 1바이트가 얻어진다. 그 다음 출력값 들은 제1레지스터(21)의 최하위 8비트에 그 이전의 신호(eb)를 로딩하여 위와 동일한 방법으로 복호화된 바이트를 얻는다.
여기서 CFB 모드는 스트림 암호화 시스템이기 때문에 8바이트 단위의 블럭으로 블럭화할 필요가 없다. 따라서 나머지(residue)가 존재하지 않는다. 상기한 ECB,CBC 모드의 경우는 블럭화 하여 암호화 하기 때문에 나머지가 존재하는데 헤더와 나머지는 암호화나 복호화 되지 않고 원신호 그대로 입출력 된다. 초기설정벡터(IV)로부터 복호화된 바이트를 얻기 위해 즉, 초기에 라운딩블럭 복호기(12)로 1블럭을 전송하는데 1사이클이 소요되므로 이 지연을 위해 제5레지스터(25)를 사용하며, 헤더의 패스(pass) 및, 라운딩블럭 복호기(12)와 이전의 신호(eb)를 XOR 하여 복호화 바이트를 얻기 위해 제4레지스터(24)를 사용한다.
도 15는 본 발명에 따른 CFB 모드 동작시의 신호파형도, 도 16은 본 발명에 따른 CFB 모드 동작시 제어 레지스터부의 동작 순서도로서, 먼저 헤더를 체크하여 암호화 과정과 마찬가지로 역 암호화 하지 않고 그냥 통과 시킨다. 그리고 제1레지스터(21)에 쌓인 유효한 1블럭 데이터는 초기치환부(27)를 거쳐 라운딩블럭 복호기(12)로 인가되고, 라운딩블럭 복호기(12)에서 복호화된 블럭은 역 초기치환부(28)를 거쳐 제2레지스터(22)로 입력되며, 제어 레지스터부(11)로 전송된 암호화 바이트를 제4레지스터(24)를 이용하여 상기한 제2레지스터(22)로 입력된 역 암호화된 바이트와 XOR 하여 최종적으로 역 암호화 한 1바이트 평문을 얻는다.
도 8은 본 발명에 따른 라운딩블럭 복호기(12)의 구성도로서, 16 라운드의 디이에스 복호화 알고리즘을 구현하기 위해 하나의 라운드 블럭을 처리하는 라운드블럭부를 16번 동작시켜서 1블럭을 복호화 할 수 있도록 설계한 것으로서, ECB, CBC 모드는 라이트 쉬프트부(RS)의 구조가 같고, CFB 모드의 경우는 디이에스 복호기 알고리즘을 쓰지않고 암호화기 알고리즘을 사용하게 된다.
디이에스 라운드블럭 알고리즘중 처음과 마지막에서만 필요한 초기치환과 역 초기치환 그리고 64 비트의 키에서 패리티 비트를 제거한 56 비트의 신호(K) 값을 얻기 위한 선택치환부(PC-1)는 제어 레지스터부(11)에 내장하고 그 이외의 부분만을 라운딩블럭 복호기(12)에서 처리 하도록 설계하였다.
먼저 라운딩블럭 복호기(12)의 입력은 라운딩블럭 복호기(12)의 동작 클럭(RB-clock)과 티에스 스트림의 동작클럭(TS-clock), 56 비트의 신호(K), 제어 레지스터부(11)에서 출력된 64 비트 블럭단위의 입력블럭(IN-BL) 및 데이터 동기신호(IN-BLK-IN)로 이루어져 있다.
키 생성부의 알고리즘을 위한 블럭으로 먼저 복호화를 위해 키 56 비트의 키를 28 비트로 양분하여 디이에스 복호화 알고리즘의 라이트 쉬프트(right shift) 동작을 신호(LS-SEL)의 값만큼 쉬프트를 행하는 라이트 쉬프트부(RS)가 있고, 이렇게 신호(LS-SEL)의 값에 의해 한 비트나 두 비트가 암호화의 역의 방향인 우측으로 쉬프트된 2개의 28 비트 데이터를 받아서 48 비트의 키 값을 생성하는 선택치환부(PC-2)가 있다.
그리고 확장치환부(E-func)는 64 비트의 블럭중 우측 32 비트값(하위 비트쪽의 값)을 48 비트로 확장하는 알고리즘을 구현하는 것이고, 위에서 구한 48 비트의 키와 확장치환부(E-func)를 거친 48 비트의 값을 XOR 하는 배타적논리부(TAU)가 있다. S-box 치환부(S1∼S8)는 48 비트의 배타적 논리부(ATU)의 출력값을 32 비트의 값으로 만드는 S-box 치환을 구현하는 것이며, 이러한 32 비트의 S-box 값은 단순치환부(P-func)를 통해 32 비트의 치환값을 생성하고, 이 값과 64 비트의 입력블럭(IN-BL) 중에서 아직 사용하지 않았던 좌측 32 비트값(상위 비트쪽의 값)을 최종적으로 XOR 하는 배타적논리부(X-func)를 거쳐 한 라운드 처리된 우측 32 비트를 생성한다. 이렇게 한 라운드 처리된 좌측 32 비트는 입력된 64 비트의 우측 32 비트의 값으로 갱신된다.
이와 같은 라운드 과정을 16번 반복하여 얻어진 최종 우측 32 비트의 값은 입력받을 때와는 반대로 64 비트의 출력값(OUT-BLK)의 상위 32 비트 값이 되고 최종 좌측 32 비트의 값은 하위 32 비트의 값이 되어 최종 16 라운드 처리된 출력 64 비트 블럭값인 출력값(OUT-BLK)과 신호(valid)인 출력값(OUT-BLK-OUT)을 제어 레지스터부(11)로 전달한다.
도 17a 내지 도 17c는 제어 레지스터부(11)로부터 받은 입력 블럭을 라운딩블럭 복호기(12)에서 처리하여 출력하는 알고리즘을 구현한 라운딩블럭 복호기의 동작 순서도로서, 먼저 모드에 따라서 필요한 클럭을 정한다. 이때 ECB, CBC 모드는 클럭(TS-clock) 보다 2배 빠른 클럭을 사용하고, CFB 모드에서는 16배 빠른 클럭을 사용한다. 모드가 결정 되었으면 제어 레지스터부(11)로부터 들어오는 입력블럭(IN-BLK)을 유효신호(IN-BLOCK)를 사용하여 로딩 작업을 수행한다. ECB, CBC 모드와 CFB 모드는 동작이 거의 유사하나 각각 복호화 하는데 걸리는 시간이 다르고 입력받는 신호(IN-BLOCK)의 유효신호가 달라서 로딩 동작에 약간의 차이가 있다. 이렇게 로딩된 1블럭 데이터는 16번 라운드의 반복을 한 후 카운트가 17이 될 때 즉, 16 라운드의 반복이 끝났을 때 제어 레지스터부(11)로 복호화된 1블럭(8바이트)의 데이터를 전송한다.
상기한 바와 같이 작용하는 본 발명 티에스 비트열의 데이터 디이에스 디스클램블링 장치는 암호화된 MPEG-2 티에스 비트열의 암호화 된 데이터를 여러 동작모드에서 효율적으로 복호화 할 수 있는 장점이 있다.

Claims (4)

  1. 암호화된 데이터를 복호화 하는 복호화 시스템에 있어서, 티에스(TS) 비트열의 암호화 된 데이터와, 상기 암호화 된 데이터를 복호화 하기 위한 키 및, 초기설정 벡터를 받아서 디이에스 복호기(DES decrypter)로 전송하는 신호전처리부(1)와; 전송된 암호화된 데이터를 상기 키와 상기 초기설정 벡터를 이용하여 복호화 하는 디이에스 복호기(2 ; DES decrypter)로 구성됨을 특징으로 하는 티에스 비트열의 데이터 디이에스 디스클램블링 장치.
  2. 제 1항에 있어서, 상기 디이에스 복호기(2 ; DES decrypter)가 연산모드에 따라 상기 암호화된 데이터의 복호화 동작을 제어하는 제어 레지스터부(11)와, 디이에스 규격에서 요구되는 16번의 라운딩(rounding)을 수행하여 상기 암호화된 데이터를 복호화 하는 라운딩블럭 복호기(12)로 구성된 것을 특징으로 하는 티에스 비트열의 데이터 디이에스 디스클램블링 장치.
  3. 제 2항에 있어서, 상기 제어 레지스터부(11)가 입려되는 신호를 로딩(loading) 하는 제1∼5레지스터(21∼25)와, 상기 신호전처리부(1)에서 출력된 제어신호를 입력하는 신호입력부(26), 입력되는 블럭의 비트자리를 바꾸어 주는 초기치환부(27 ; IP), 상기 초기치환부(27)와는 역으로 입력되는 블럭의 비트를 바꾸어 주는 역 초기치환부(28 ; inverse IP), 입력되는 블럭의 비트자리를 선택적으로 바꾸어 주는 선택치환부(29 ; PC-1) 및, 입력과 출력을 래치(latch) 하는 바이트 레지스터 버퍼(BF1∼BF7)로 구성된 것을 특징으로 하는 티에스 비트열의 데이터 디이에스 디스클램블링 장치.
  4. 제2항에 있어서, 상기 라운딩블럭 복호기(12)가 상기 키(KEY)의 비트를 양분하여 디이에스 복호화 알고리즘의 라이트 쉬프트(right shift) 동작을 신호(LS-SEL)의 값만큼 쉬프트 하는 라이트 쉬프트부(RS)와, 입력되는 데이터로 키값을 생성하는 선택치환부(PC-2)와, 입력블럭(IN-BL)중 하위비트쪽의 값을 확장하는 확장치환부(E-func)와, 상기 선택치환부(PC-2)와 확장치환부(E-func)의 출력값을 XOR 하는 배타적논리부(TAU)와, 상기 배타적논리부(TAU)의 출력을 S-box치환 하는 S-box 치환부(S1∼S8)와, 상기 S-box 치환부(S1∼S8)의 출력값으로부터 치환값을 생성하는 단순치환부(P-func)와, 상기 입력블럭(IN-BL)중 상위 비트쪽의 값과 상기 단순치환부(P-func)의 출력값을 XOR 하는 배타적논리부(X-func)로 구성된 것을 특징으로 하는 티에스 비트열의 데이터 디이에스 디스클램블링 장치.
KR1019980029019A 1998-07-18 1998-07-18 티에스비트열의데이터디이에스디스클램블링장치 KR100314235B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980029019A KR100314235B1 (ko) 1998-07-18 1998-07-18 티에스비트열의데이터디이에스디스클램블링장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980029019A KR100314235B1 (ko) 1998-07-18 1998-07-18 티에스비트열의데이터디이에스디스클램블링장치

Publications (2)

Publication Number Publication Date
KR20000008923A true KR20000008923A (ko) 2000-02-15
KR100314235B1 KR100314235B1 (ko) 2001-12-28

Family

ID=19544555

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980029019A KR100314235B1 (ko) 1998-07-18 1998-07-18 티에스비트열의데이터디이에스디스클램블링장치

Country Status (1)

Country Link
KR (1) KR100314235B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317638A (en) * 1992-07-17 1994-05-31 International Business Machines Corporation Performance enhancement for ANSI X3.92 data encryption algorithm standard
KR0143680B1 (ko) * 1995-08-21 1998-08-01 배순훈 데스 알고리즘을 이용한 암호화장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
KR100314235B1 (ko) 2001-12-28

Similar Documents

Publication Publication Date Title
AU683325B2 (en) System and apparatus for blockwise encryption/decryption of data
AU674197B2 (en) Hardware arrangement for enciphering bit blocks while renewing a key at each iteration
US6504930B2 (en) Encryption and decryption method and apparatus using a work key which is generated by executing a decryption algorithm
US5724428A (en) Block encryption algorithm with data-dependent rotations
KR100331863B1 (ko) 네트워크암호화장치및방법
EP2197144A1 (en) Methods and devices for a chained encryption mode
GB2447552A (en) Galois/Counter Mode Advanced Encryption Standard authenticated encrypted messaging with pre-calculation of round keys
US7447311B2 (en) Method of designing optimum encryption function and optimized encryption apparatus in a mobile communication system
JP2001086110A (ja) 暗号化情報のパケット通信システム
KR100314235B1 (ko) 티에스비트열의데이터디이에스디스클램블링장치
EP1629626B1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
JP4395527B2 (ja) 情報処理装置
KR20040083794A (ko) 어플리케이션 데이터의 암호화 및 복호화 방법
KR100190157B1 (ko) 암호화 장치 및 암호화 방법
KR100226867B1 (ko) 무선 통신의 스트림 암호 시스템
Islam et al. Data encryption standard
JP2001016197A (ja) 自己同期型ストリーム暗号システム及びこれを用いたmac生成方法
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
JPH04335730A (ja) 暗号送信装置、暗号受信装置、暗号通信システム
Ahmad et al. Comparative study between stream cipher and block cipher using RC4 and Hill Cipher
KR20070063713A (ko) 아리아 알고리즘을 이용한 블록 암호화 장치
Ramesh et al. A novel block-cipher mechanism for information security in cloud system
KR100447146B1 (ko) 암호화장치
JPH10303884A (ja) 暗号化方法
RU2127024C1 (ru) Блок шифрования

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 20100701

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee