• 검색 결과가 없습니다.

崔 太 燮

N/A
N/A
Protected

Academic year: 2021

Share "崔 太 燮"

Copied!
112
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

工學博士學位論文

256비트 블록 암호 알고리즘을 적용한 음성 통신 시스템의 설계 및 해석에 관한 연구

A Study on the analysis and design of the voice communication system employing

the 256-bit block cipher algorithm

國民大學校 大學院 電子工學科 崔 太 燮

2001

(2)

256비트 블록 암호 알고리즘을 적용한 음성 통신 시스템의 설계 및 해석에 관한 연구

A Study on the analysis and design of the voice communication system employing

the 256-bit block cipher algorithm

指 導 敎 授 司 空 石 鎭

이 論文을 工學博士學位 請求論文으로 提出함

2002年 6月 日

國民大學校 大學院 電子工學科 崔 太 燮

2001

(3)

崔 太 燮의

工學博士學位 請求論文을 認准함 2002年 6月 日

審査委員長 金 道 鉉 印

審 査 委 員 洪 成 洙 印

審 査 委 員 閔 榮 基 印

審 査 委 員 林 承 河 印

審 査 委 員 司 空 石 鎭 印

國民大學校 大學院

(4)

감사의 글

어느 덧 무더운 여름으로 접어들고 있습니다. 지금까지 저를 학문의 길로 인도해주시고, 제가 학위를 받기까지 끊임없는 지도와 격려를 해 주신 사공 석진 교수님께 감사의 말씀을 드립니다.

또한 졸고를 심사하여 훌륭한 논문이 되도록 세심한 지도와 조언을 하여주신 김도현 교수님, 홍성수 교수님, 부천대학 임승하 교수님 그리 고 삼성탈레스 민영기 박사님께 깊은 감사를 드립니다.

학부때부터 많은 조언과 지도를 하여 주신 조홍구 교수님, 임재봉 교 수님, 김기두 교수님, 오하령 교수님, 안현식 교수님, 김동명 교수님, 강 동욱 교수님과 전자정보통신공학부 교수님께 감사를 드립니다.

본 연구를 진행하는데 성심으로 도와준 박사과정 안인수, 송석호, 정 동열, 이우철 교수님, 이중원 교수님, 박광철, 오정헌 선배님, 김민걸, 김 수남과 석사과정 김일수, 정승훈, 조연상, 이창헌, 최은범, 이한영, 공 승곤, 정동열, 홍기준에게 감사를 드립니다.

또한 예전에 같이 실험실에서 밤을 보내며 연구했던 임태수 선배님, 김광훈 선배님, 이성배, 이영호, 김대우, 조영륜, 이원혁, 임태진, 조성준, 김영민, 박규환, 민경기, 유홍렬, 위양원, 김태진, 백상진에게도 고마움을 전합니다.

끝으로 훌륭한 사람이 되라고 묵묵히 사랑과 인내로 저를 보살펴주신 아버님과 어머님의 은혜에 감사를 드리고, 항상 용기를 심어준 누나와 매형, 동생 지원과 인섭에게 감사를 드립니다. 부족한 저를 언제나 반갑 게 맞아주시는 장인어른과 장모님 그리고 처남부부에게도 감사를 드립 니다.

오늘의 결실이 있기까지 도와준 모든 분들과 오랜 기간 동안 어려움 을 인내하고 내조해준 아내 준이와 아들 준환이에게 이 논문을 바칩니 다

(5)

차 례

차 례 ···i

그림 차례 ···iv

표 차례 ···vii

약어 설명 ···viii

요 약 ···x

I. 서 론 ···1

II. 암호 알고리즘 ···3

2.1 Feistel 암호 알고리즘 ···3

2.1.1 F 함수 ···5

2.1.2 G 함수 ···6

2.1.3 S-box ···8

2.1.4 Round Key ···12

III. 음성 통신 시스템 ···16

3.1 PCM과 VBAP ···16

3.1.1 PCM ···16

3.1.2 VBAP ···25

3.2 DSP ···29

3.2.1 On-Chip ROM과 RAM ···29

3.2.2 Relocatable Interrupt Vector Table ···31

(6)

3.2.3 On-Chip 주변기기 ···31

3.2.3.1 McBSP ···32

3.2.3.2 하드웨어 타이머 ···33

3.2.3.3 DMA 제어기 ···35

3.2.4 메모리 맵 레지스터(MMRs) ···38

3.2.4.1 McBSP 제어 레지스터와 보조번지 ···41

3.2.4.2 DMA 보조 뱅크 번지 레지스터(DMSAR) ··· 42

VI. 암호 알고리즘 분석과 음성 암호 시스템 구성 ···43

4.1 256비트 블록 암호 알고리즘과 분석 ···43

4.1.1 Weak Key ···46

4.1.2 Semi-weak Key ···47

4.1.3 Complementation Property ···48

4.1.4 Equivalent Key ···49

4.1.5 Related Key Attack ···50

4.1.5.1 related-key slide attack ···50

4.1.5.2 Differential related-key attack ···51

4.1.6 truncated differential analysis ···52

4.2 음성 암호 시스템 구성 ···54

4.2.1 VBAP의 구성 ···55

4.2.1.1 TLV320AC36CN ···55

4.2.1.2 VBAP 송수신시 신호 보정 ···56

4.2.2 DSP의 구성과 암호화 처리 과정 ···57

4.2.2.1 DSP의 구성 ···57

4.2.2.2 DSP에서의 암호화 처리 과정 ···58

(7)

V. 실험 결과 및 토의 ···62

5.1 송수신부의 타이밍 ···65

5.2 음성 암호 시스템에서의 파형 ···72

5.3 랜덤성 검정법 ···85

5.3.1 Frequency test ···85

5.3.2 Serial test ···86

VI. 결 론 ···89

참 고 문 헌 ···90

(8)

그 림 차 례

그림 2.1 Feistel 알고리즘의 암․암호화 구조 ···4

그림 2.2 F함수 구조도 ···6

그림 2.3 G함수의 구조도 ···7

그림 2.4 라운드 키 생성 구조도 ···14

그림 3.1 PCM 신호처리 계통도 ···17

그림 3.2 표본화 ···18

그림 3.3 에일리어싱 ···18

그림 3.4 양자화 ···19

그림 3.5 비직선 양자화(a)와 압축과 신장(b) ···20

그림 3.6 μ-law 특성 ···21

그림 3.7 A-law 특성 ···22

그림 3.8 μ-law의 입출력 환산표 ···23

그림 3.9 VBAP 되돌림 검사 구성도 ···25

그림 3.10 고정된 프레임 동기 회로도 ···26

그림 3.11 VBAP 기능 블록도 ···27

그림 3.12 고정된 데이터 상태에서의 수신 타이밍도 ···28

그림 3.13 고정된 데이터 상태에서의 송신 타이밍도 ···28

그림 3.14 메모리 맵 ···30

그림 3.15 PMST 레지스터 ···31

그림 3.16 5402 DMA 메모리 맵 ···35

그림 3.17 IFR과 IMR 레지스터 ···42

그림 4.1 256비트 블록 암호 알고리즘 구성도 ···43

그림 4.2 음성 암호 시스템 구성도 ···54

그림 4.3 송신시의 DSP 메모리의 처리과정 블록도 ···59

(9)

그림 4.4 수신시의 DSP 메모리의 처리과정 블록도 ···60

그림 5.1 전체 음성 암호 시스템 ···63

그림 5.2 음성 암호 시스템 회로도 ···64

그림 5.3 음성 암호 시스템 PCB 회로도 ···65

그림 5.4 입력(아래)과 출력 신호 파형(위) (2㎑) ···66

그림 5.5 주 클록 신호(2.048 ㎒) ···67

그림 5.6 프레임 동기 신호(8 ㎑) ···67

그림 5.7 수신 디지털 신호(위)와 프레임 동기신호(아래) ···68

그림 5.8 송신 디지털 신호(위)와 프레임 동기신호(아래) ···69

그림 5.9 VBAP의 입력 파형 ···70

그림 5.10 보정안한 VBAP의 출력 파형 ···70

그림 5.11 보정한 VBAP의 출력 파형 ···71

그림 5.12 송신부 시간 에서의 300㎐ 입력 사인파(위)와 암호화된 파형(아래) ···72

그림 5.13 송신부 시간 에서의 300㎐ 입력 사인파(위)와 암호화된 파형(아래) ···73

그림 5.14 송신부의 300Hz 입력 사인파(위)와 수신부에서 복호화된 파형(아래) ···74

그림 5.15 송신부 시간 에서의 1㎑ 입력 사인파(위)와 암호화된 파형(아래) ···75

그림 5.16 송신부 시간 에서의 1㎑ 입력 사인파(위)와 암호화된 파형(아래) ···76

그림 5.17 송신부의 1㎑ 입력 사인파와 수신부에서 복호화된 파형 ···77

그림 5.18 송신부 시간 에서의 2㎑ 입력 사인파(위)와 암호화된 파형(아래) ···78

그림 5.19 송신부 시간 에서의 2㎑ 입력 사인파(위)와 암호화된 파형(아래) ···79

(10)

그림 5.20 송신부의 2㎑ 입력 사인파(위)와

수신부에서 복호화된 파형(아래) ···80 그림 5.21 송신부 시간 에서의 3.6㎑ 입력 사인파(위)와

암호화된 파형(아래) ···81 그림 5.22 송신부 시간 에서의 3.6㎑ 입력 사인파(위)와

암호화된 파형(아래) ···82 그림 5.23 송신부의 3.6㎑ 입력 사인파(위)와

수신부에서 복호화된 파형(아래) ···83 그림 5.24 송신부에서의 노래 소리 파형(위)과 암호화된 파형(아래) ·· 84 그림 5.25 송신부의 노래 소리 파형(위)과

수신부에서 복호화된 파형(아래) ···85 그림 5.26 Frequency test ···86 그림 5.27 Serial test ···88

(11)

표 차 례

표 2.1 S1-Box ···10

표 2.2 S2-Box ···11

표 2.3 라운드 상수 ···13

표 2.4 32 라운드 키 값 ···15

표 3.1 표준 On-Chip ROM 영역 ···29

표 3.2 리셋 상태에서의 클록 상태 세팅 ···34

표 3.3 DMA 인터럽트 ···36

표 3.4 DMA 동기 이벤트 ···37

표 3.5 DMA 채널 인터럽트 선택 ···38

표 3.6 CPU 메모리 맵 레지스터 ···39

표 3.7 주변 메모리 맵 레지스터 ···40

표 3.8 McBSP 제어 레지스터와 보조번지 ···41

표 4.1 라운드 키 생성 식 ···45

(12)

약 어 풀 이

ABU : Autobuffering Unit BCLKX : BSP Clock Transmit BDX : BSP Data Transmit

BFSX : BSP Frame Synchronization Transmit CLKMD : Memory-Mapped Clock Mode

DES : Data Encryption standard DMA : Direct Memory Access DMSA : DMA Subbank Address

DMSDI : DMA Subbank Data Register With Autoincrement DRR : Data Receive Register

DSP : Digital Signal Processor DXR : Data Transmit Register IFR : Interrupt Flag Register IMR : Interrupt Mask Register

ITU-T : International Telecommunications Union - Telecommunication Standardization Sector KICS : Korea Information Communication Standard McBSP : Multichannel Buffer Serial Port

McBSPs : Multichannel Buffered Serial Ports MMRs : Memory-Mapped Register

(13)

OVLY : Overlay

RBR : Receive Buffer Register PCM : pulse code modulation PMST : Processor Mode Status PLL : phase-locked loop RSR : Receive Shift Register

SPSA : Serial Port Subbank Address SPSD : Serial Port Subbank Data

TTAS : Telecommunications Technology Association Standard VBAP : Voice Band Audio Processor

XSR : Transmit Shift Register

(14)

요 약

본 논문에서는 도청과 감청으로 인해 국가와 개인의 사생활과 정보 가 노출되고 있는 실정에서, 음성 통신에서의 안전한 전송과 수신을 위 하여 256비트 블록 암호 알고리즘을 적용한 음성 통신 시스템을 설계하 였다.

본 논문의 음성 암호 시스템은 송신 시스템에서 음성 신호를 VBAP 에서 PCM 디지털 신호로 변환시키고, 이 신호를 DSP에서 256비트 블 록 암호 알고리즘을 적용하여 암호화시킨다. 이 암호화된 디지털 음성 신호는 전송로를 통해 전송될 때, 중간에 불법 도청이나 합법적인 감 청을 한다고 하더라도 암호화되어있기 때문에 안전하게 전송할 수 있 다. 수신 시스템에서는 암호화된 음성신호를 받아, 복호화 알고리즘을 사용하여 송신자의 음성을 듣는다.

본 논문에서의 256비트 블록 암호 알고리즘은 정보 통신 단체 표준인 SEED의 128비트 블록 암호 알고리즘보다 높은 비도를 가지고 음성 통 신을 한다. 또한 알고리즘 공격을 어렵게 하기 위해 라운드 수도 16라 운드에서 32라운드로 증가시켜, 16라운드에서의 truncated differential

확률2- 143.1을 2- 286.6 이상으로 증가시켰다. 암호 알고리즘의 검증을

위해 랜덤성 검정법 중에서 Frequency Test와 Serial Test를 하여, 결 과가 정규분포를 가지고 균등하게 분포된 것을 확인하였다.

(15)

I. 서 론

현대 사회에서 음성통신이 차지하는 비중은 매우 크다고 할 수 있다.

하지만 불법 도청과 합법적인 감청이 국정감사에서 쟁점이 될 정도로 국가나 개인의 사생활이나 정보가 노출되고 있다. 첩보영화에서나 보던 새로운 도청방식이 연이어 등장하고 기기도 첨단화 소형화 추세가 뚜렷 해지고 있다. 전자회선에 발신기를 부착, 통화내용을 유․무선으로 가로 채는 전화도청의 경우, 전화단자함에 설치되던 발신기 크기가 예전에는 성냥갑 정도였으나 최근에는 엄지손톱보다 작은 초소형이 개발돼 판매 되고 있다. 최근 들어 무선 전화도청․음성도청에서 FM주파수를 이용 하여 1㎞ 이상 떨어진 거리에서도 청취 가능한 UHF 주파수대 수신장 치도 등장하고 있다. 무선통화를 엿듣는데 1㎐~1㎓까지 넓은 수신대역 을 가진 올 밴드 수신기를 갖추면, 무선전화나 경찰무선은 물론 항공기 조종사와 관제사사이의 대화까지 도청할 수 있다. 또한 치열한 첩보전 속에 있는 기업들은 큰 계약을 앞두고는, 반드시 호텔 전화와 휴대폰을 쓰지 말라는 등의 정보단속 수칙도 마련하고 시행하고 있는 실정이다.

자신의 비밀정보를 보호하는 방법과 상대방의 비밀정보를 가로채어 자신에게 유리한 정보를 얻고자 하는 노력은 인류의 역사이래 매우 중 요한 개념으로 인식되어왔다. 이러한 정보의 보호와 탈취는 주로 군대, 외교기관, 또는 특수 목적을 가진 곳에서 이용되어 왔지만 현재에는 개 인이나 회사에서도 많은 관심을 가지고 있다. 최초의 전자식 디지털 컴 퓨터인 ENIAC이 개발되어 사용될 당시만 하더라도 보안 문제는 오늘 날과 같이 그렇게 중요하고 복잡하지는 않았다. 그 당시에는 하나의 고 립된 장소에 컴퓨터가 설치되어 사용되었기 때문에 단지 컴퓨터실에의 접근을 통제하는 물리적 보안만이 요구되었다. 하지만 시분할 시스템, 데이터 베이스 시스템 등의 개발을 통해 원격접속 및 컴퓨터 네트워크

(16)

를 통한 데이터 교환이 보편화되어짐에 따라서 물리적인 보안만으로는 충분하지가 않게 되었다[1, 2, 3].

보안 및 암호의 개념은 1960년대 이전까지만 하더라도 주로 국방과 외교분야의 전유물이었다. 하지만 현재에는 정보기술의 비약적인 발전 을 통하여 민간 상업분야에서도 컴퓨터와 통신 시스템을 기반으로 한 정보처리 과정에서 보안의 필요성을 인식하게 되었다. 정보의 보호를 위해서는 궁극적으로 암호기법을 도입하여야한다. 암호기법 중에서 암 호작성(cryptography)은 연구의 동기가 자신의 정보를 보호하려는 목적 에서 시작되었고, 반면에 암호해독(cryptanalysis)은 상대의 정보를 가 로채려는 노력으로부터 연구 동기가 되었다. 미국에서는 1977년에 IBM 사의 제안을 바탕으로 민간분야에서 사용될 암호화 표준 규격으로 DES[4, 5, 6]를 개발하였으며, 연방 정보 처리 표준으로 채택하였다. 이 표준 암호의 제정 이후에 대학, 연구소 그리고 정부를 중심으로 암호에 대한 관심이 높아지면서 암호관련 연구에 박차를 가하게 되었다. 우리 나라에서는 한국정보보호진흥원을 중심으로 암호 알고리즘에 대한 연구 가 활발하게 진행되고 있다. 한국정보보호진흥원은 1999년에 128비트 블록 암호 알고리즘인 SEED[7, 8, 9, 10]를 개발하였고, 1999년 9월에 정보 통신 단체표준(TTAS)으로 제정됐다. 2002년 3월에는 국가표준 (KICS)으로 제정이 추진되었다.

본 논문에서는 현대 사회에서 매우 큰 비중을 차지하는 음성통신에 서의 안전한 전송을 위하여 음성 암호 시스템을 설계하였다. 암호 알고 리즘은 256비트 블록 암호 알고리즘[11, 12, 13, 14]을 적용하여 음성 암호 시스템을 설계하였다. 이 시스템은 음성 통신에서의 암호화를 통 해 정보의 노출을 막아 개인, 사회와 국가에 보안을 제공한다. 본 논문 의 음성 암호 시스템[15, 16, 17]은 256비트로 설계되어, 정보 통신 단체 표준인 SEED의 128비트 블록 암호 알고리즘보다 좋은 보안성을 제공 한다.

(17)

II. 암호 알고리즘 2.1 Feistel 암호 알고리즘

암호 알고리즘은 암․복호화에 사용되는 키의 특성에 따라 암 복호 화 키가 같은 대칭키 암호 알고리즘과 암 복호화 키가 서로 다른 공개 키 암호 알고리즘[18, 19, 20]으로 크게 구분할 수 있으며, 대칭키 암호 알고리즘은 데이터 처리 형식에 따라 스트림 암호 알고리즘[21, 22, 23, 24]과 블록 암호 알고리즘으로 나눌 수 있다. 대칭키 블록 암호 알고 리즘은 비밀성을 제공하는 암호 시스템의 중요 요소로서, 블록 단위로 메시지를 처리하는 블록 암호 알고리즘을 의미한다. 여기서 n비트 블록 암호 알고리즘이란, 고정된 n비트 평문을 같은 길이의 n비트 암호문으 로 바꾸는 함수이다. 이변형 과정에 암․복호 키가 작용하여 암호화와 복호화를 수행한다.

암호 알고리즘 구조에는 크게 Feistel 구조와 SPN구조가 있다.

Feistel 암호 알고리즘[4, 25]의 구조는 반복되는 블록 암호들 중 특수한 부류이다. SPN 구조는 혼동과 확산의 이론에 근거하고 일반적으로 암․복호화 알고리즘이 다르다. Feistel 암호 알고리즘 구조를 사용한 암호문은 같은 변환이나 라운드 함수를 반복적으로 적용하고, 평문으로 부터 계산된다. Feistel 암호는 현대 암호의 기초라고 할 수 있는 DES 와 비슷하여 DES-like 암호라고도 한다. Feistel 구조는 각각 t비트인 L0, R0 블록으로 이루어진 2t비트 평문 블록 (L0,R0)이 r 라운드 ( r≥1)를 거쳐 암호문 (Lr,Rr)으로 변환되는 반복 구조(평문 블록이 여러 라운드를 거쳐 암호화)이다. 라운드 함수 i (1≤i≤r)는 암호키 K 로부터 유도된 각 서브키Ki (또는, 라운드 키라 불림)를 중요 입력으로 하여Li= Ri- 1, Ri= Li- 1⊕f(Ri- 1,Ki) 통해

(18)

(Li- 1,Ri- 1) ───Ki

(Li,Ri)로 바꾸어 주는 함수이다. DES, FEAL, LOKI, MISTY, Blowfish, CAST, Twofish 등도 여기에 속한다[26].

그림 2.1은 Feistel 암호 알고리즘의 일반적인 구조이다.

L i

F

L i+1

R i

Ri+1

ki

Ri+1

F

R i

Li+1

L i

ki

(a) 암호화 구조 (b) 복호화 구조

그림 2.1 Feistel 알고리즘의 암․암호화 구조 Figure 2.1 encryption diagram of Feistel algorithm.

그림 2.1의 (a)에서 Li+ 1= Ri , Ri+ 1= Fk(Ri)⊕Li이고, (b)에서 Li= Fk(Li+ 1)⊕Ri+ 1, Ri= Li+ 1이다.

전체 알고리즘의 라운드 수는 요구되는 보안도와 수행 효율성의 상호 절충적 관계에 의해 결정되며, 3라운드 이상이면 짝수 라운드로 구성된 다. 이 구조는 라운드 함수에 관계없이 역변환이 가능하다. 이것은 암․

복호화 과정이 같다는 의미이다. 또한 두 번의 수행으로 블록사이의 완 전한 확산(diffusion)이 이루어지며, 알고리즘의 수행속도가 빠르고, H/W 및 S/W로 구현이 용이하다[27, 28]. 그리고 아직까지 구조상의 문 제점이 발견되고 있지 않다.

2.1.1 F 함수

(19)

Feistel 구조를 갖는 블록 암호 알고리즘은 F 함수의 특성에 따라 구분될 수 있다. 본 논문에서 사용한 F 함수는 64비트 Feistel 형태로 구성된다. F 함수는 각 32비트 블록 2개(C, D)를 입력으로 받아, 32비 트의 두 개의 블록(C', D')을 출력한다. 즉, 암호화 과정에서 64비트 블 록(C, D)과 64비트 라운드 키 Ki= ( Ki,0;Ki,1)를 F 함수의 입력으로 처리하여 64비트 블록(C', D')을 출력한다.

C'= G[G[G{(CKi0)⊕(DKi1)}⊞(DKi1)]

⊞G{(C⊕Ki0)⊕(D⊕Ki1)}] (2.1) D'=G[G[G{(C⊕Ki0)⊕(D⊕Ki1)}⊞(D⊕Ki1)]⊞G{(C⊕Ki0)

⊕ ( DKi1) } ] ⊞ G [ G { ( CKi0) ⊕ ( DKi1) } ⊞ ( DKi1) ]

(2.2)

(20)

그림 2.2는 F 함수의 구조도이다. 그림 2.2에서 i는 라운드 수, a⊕b 는 XOR이고, a□+ b = (a+b) mod 232이다.

.

C D

G

+

C’ D’

+ G

G

+

Ki0 Ki1

그림 2.2 F함수 구조도

Figure 2.2 Structure diagram of F function.

2.1.2 G 함수

Feistel 구조에서 G 함수는 두 개의 8비트 S-box를 이용하여 32비트 를 입력하여 32비트로 만드는 함수이다.

(21)

그림 2.3은 G함수의 구조도이다[3, 8].

MSB LSB

X

3

X

2

X

1

X

0

S

2

S

1

S

2

S

1

Z

3

Z

2

Z

1

Z

0

Z

3

Z

2

Z

1

Z

0

SS

3

SS

2

SS

1

SS

0

& m3 & m2 & m1 & m0 & m3 & m2 & m1 & m0 & m3 & m2 & m1 & m0 & m3 & m2 & m1 & m0

그림 2.3 G함수의 구조도

Figure 2.3 structure diagram of G function.

입력 32비트를 4개의 8비트 블록(X3, X2, X1, X0)으로 분할하여 2개 의 S-box를 (S2, S1, S2, S1) 순서로 적용시켜 (Y3, Y2, Y1, Y0)를 생 성한다.

Y0=S1(X0), Y1=S2(X1), Y2=S1(X2), Y3=S2(X3) (2.3)

(22)

G 함수는 구현의 효율성을 위해 4개의 확장된 4바이트 SS-box들(4K bytes)의 exclusive-or함으로써 (Z3, Z2, Z1, Z0)를 구한다.

Z0= (Y0&m0) ⊕ (Y1&m1) ⊕ (Y2&m2) ⊕ (Y3&m3) Z1= (Y0&m1) ⊕ (Y1&m2) ⊕ (Y2&m3) ⊕ (Y3&m0) Z2= (Y0&m2) ⊕ (Y1&m3) ⊕ (Y2&m0) ⊕ (Y3&m1) Z3= (Y0&m3) ⊕ (Y1&m0) ⊕ (Y2&m1) ⊕ (Y3&m2) m0= 0 xfc = 11111100, m1= 0xf3 = 11110011,

m2= 0 xcf = 11001111, m3= 0x3 f = 00111111

(2.4)

이를 위해 다음과 같은 4개의 SS-box들을 저장해야 한다.

SS0=S1(X0) &m3 || S1(X0) &m2 || S1(X0) &m1 || S1(X0) &m0 SS1=S2(X1) &m0 || S2(X1) &m3 || S2(X1) &m2 || S2(X1) &m1 SS2=S1(X2) &m1 || S1(X2) &m0 || S1(X2) &m3 || S1(X2) &m2 SS3=S2(X3) &m2 || S2(X3) &m1 || S2(X3) &m0 || S2(X3) &m3 (2.5)

(여기서, || 는 concatenation).

이 확장 SS-box들을 이용하면 G 함수는 다음과 같이 구현될 수 있다.

Z=SS3(X3) ⊕ SS2(X2) ⊕ SS1(X1) ⊕ SS0(X0) (2.6)

2.1.3 S-box

본 논문에서 사용하는 S-box는 부울 함수를 사용하고 있다. S-box는 전단사함수 xn의 선형 변환으로 각 S-box[25]에 사용된 행렬 A( 1),

A( 2)는 행을 다음과 같이 교환하여 사용한다.

S(x) =A․xnb (S( 0) ≠ 0,S( 1) ≠ 1) (2.7)

(23)

A=









1 0 0 0 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0









이고,

x= (x7,x6,x5,x4,x3,x2,x1,x0)t

=x727+ x626+x525+x424+x323+ x222+x121+x020 (2.8) A( 1) = A의 2행과 3행, 4행과 6행을 교환

A( 2) = A의 1행과 5행, 6행과 7행을 교환 이다. 즉,

A( 1)=









1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0









, A( 2)=









0 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0









이고, b1= (1, 0, 1, 0, 1, 0, 0, 1 )t= 169, b2= (0, 0, 1, 1, 1, 0, 0, 0 )t= 56이다.

지수 n은 전단사함수 xn(0 ≤n≤ 255)에서 DC 및 LC의 특성에 가장 우수한 2개의 n = 247, 251을 선택하고, GF(28) 위에서의 지수 승을 구하기 위해 체 GF(28) 위에서의 모든 원소를 원시원소

α = x8+x6+x5+x+ 1의 멱승으로 표현한다. 두 개의 S-box S1과 S2 를 수식으로 나타내면 다음과 같다.

S1(x) = (A( 1)․x247 )⊕b1

= (P7,P6,P5,P4,P3,P2,P1,P0)t

=P727P626P525P424P323P222P121P0

(2.9)

(24)

S2(x) = (A( 2)․x251 )⊕b2

= (Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0)t

=Q727Q626Q525Q424Q323Q222Q121Q0

(2.10)

이들 S-box에 의하여 구한 함수 값 S1S2는 표 2.1과 2.2와 같다.

(25)

i S1(i) i S1(i) i S1(i) i S1(i) i S1(i) i S1(i) i S1(i) i S1(i)

0 169 1 133 2 214 3 211 4 84 5 29 6 172 7 37 8 93 9 67 10 24 11 30 12 81 13 252 14 202 15 99 16 40 17 68 18 32 19 157 20 224 21 226 22 200 23 23 24 165 25 143 26 3 27 123 28 187 29 19 30 210 31 238 32 112 33 140 34 63 35 168 36 50 37 221 38 246 39 116 40 236 41 149 42 11 43 87 44 92 45 91 46 189 47 1 48 36 49 28 50 115 51 152 52 16 53 204 54 242 55 217 56 44 57 231 58 114 59 131 60 155 61 209 62 134 63 201 64 96 65 80 66 163 67 235 68 13 69 182 70 158 71 79 72 183 73 90 74 198 75 120 76 166 77 18 78 175 79 213 80 97 81 195 82 180 83 65 84 82 85 125 86 141 87 8 88 31 89 153 90 0 91 25 92 4 93 83 94 247 95 225 96 253 97 118 98 47 99 39 100 176 101 139 102 14 103 171 104 162 105 110 106 147 107 77 108 105 109 124 110 9 111 10 112 191 113 239 114 243 115 197 116 135 117 20 118 254 119 100 120 222 121 46 122 75 123 26 124 6 125 33 126 107 127 102 128 2 129 245 130 146 131 138 132 12 133 179 134 126 135 208 136 122 137 71 138 150 139 229 140 38 141 128 142 173 143 223 144 161 145 48 146 55 147 174 148 54 149 21 150 34 151 56 152 244 153 167 154 69 155 76 156 129 157 233 158 132 159 151 160 53 161 203 162 206 163 60 164 113 165 17 166 199 167 137 168 117 169 251 170 218 171 248 172 148 173 89 174 130 175 196 176 255 177 73 178 57 179 103 180 192 181 207 182 215 183 184 184 15 185 142 186 66 187 35 188 145 189 108 190 219 191 164 192 52 193 241 194 72 195 194 196 111 197 61 198 45 199 64 200 190 201 62 202 188 203 193 204 170 205 186 206 78 207 85 208 59 209 220 210 104 211 127 212 156 213 216 214 74 215 86 216 119 217 160 218 237 219 70 220 181 221 43 222 101 223 250 224 227 225 185 226 177 227 159 228 94 229 249 230 230 231 178 232 49 233 234 234 109 235 95 236 228 237 240 238 205 239 136 240 22 241 58 242 88 243 212 244 98 245 41 246 7 247 51 248 232 249 27 250 5 251 121 252 144 253 106 254 42 255 154

표 2.1 S1-Box Table 2.1 S1-Box

(26)

i S2(i) i S2(i) i S2(i) i S2(i) i S2(i) i S2(i) i S2(i) i S2(i)

0 56 1 232 2 45 3 166 4 207 5 222 6 179 7 184 8 175 9 96 10 85 11 199 12 68 13 111 14 107 15 91 16 195 17 98 18 51 19 181 20 41 21 160 22 226 23 167 24 211 25 145 26 17 27 6 28 28 29 188 30 54 31 75 32 239 33 136 34 108 35 168 36 23 37 196 38 22 39 244 40 194 41 69 42 225 43 214 44 63 45 61 46 142 47 152 48 40 49 78 50 246 51 62 52 165 53 249 54 13 55 223 56 216 57 43 58 102 59 122 60 39 61 47 62 241 63 114 64 66 65 212 66 65 67 192 68 115 69 103 70 172 71 139 72 247 73 173 74 128 75 31 76 202 77 44 78 170 79 52 80 210 81 11 82 238 83 233 84 93 85 148 86 24 87 248 88 87 89 174 90 8 91 197 92 19 93 205 94 134 95 185 96 255 97 125 98 193 99 49 100 245 101 138 102 106 103 177 104 209 105 32 106 215 107 2 108 34 109 4 110 104 111 113 112 7 113 219 114 157 115 153 116 97 117 190 118 230 119 89 120 221 121 81 122 144 123 220 124 154 125 163 126 171 127 208 128 129 129 15 130 71 131 26 132 227 133 236 134 141 135 191 136 150 137 123 138 92 139 162 140 161 141 99 142 35 143 77 144 200 145 158 146 156 147 58 148 12 149 46 150 186 151 110 152 159 153 90 154 242 155 146 156 243 157 73 158 120 159 204 160 21 161 251 162 112 163 117 164 127 165 53 166 16 167 3 168 100 169 109 170 198 171 116 172 213 173 180 174 234 175 9 176 118 177 25 178 254 179 64 180 18 181 224 182 189 183 5 184 250 185 1 186 240 187 42 188 94 189 169 190 86 191 67 192 133 193 20 194 137 195 155 196 176 197 229 198 72 199 121 200 151 201 252 202 30 203 130 204 33 205 140 206 27 207 95 208 119 209 84 210 178 211 29 212 37 213 79 214 0 215 70 216 237 217 88 218 82 219 235 220 126 221 218 222 201 223 253 224 48 225 149 226 101 227 60 228 182 229 228 230 187 231 124 232 14 233 80 234 57 235 38 236 50 237 132 238 105 239 147 240 55 241 231 242 36 243 164 244 203 245 83 246 10 247 135 248 217 249 76 250 131 251 143 252 206 253 59 254 74 255 183

표 2.2 S2-Box Table 2.2 S2-Box

(27)

2.1.4 Round Key

라운드 키 생성과정은 처음에 128비트 암호키를 64비트씩 좌우로 나 누어 이들을 교대로 8비트씩 좌/우로 회전 이동한 후, 생성된 4워드에 간단한 산술연산과 G 함수를 적용하여 라운드 키를 생성한다[7, 8]. 또 한 라운드 키 생성과정은 효율성을 위하여, 암호화나 복호화시 암호 키 로부터 필요한 라운드 키를 간단히 계산할 수 있도록 설계한다. 라운드 키가 32라운드라면 각 라운드에 사용되는 라운드 키는 다음과 같은 방 식으로 생성한다. 먼저 128비트 입력키를 32비트씩 4개의 조각(A, B, C, D)으로 쪼갠다. K1, 0 = G(A+C-KC0), K1, 1 = G(B-D+KC0)을 계산하여 1라운드 키를 생성한다(단, KC0는 1라운드 상수이다). 다음 단계에서는 레지스터 A, B를 우측으로 8비트 회전 이동시켜 새로운 A, B, C, D를 생성한다. K2, 0 = G(A+C-KC1), K2, 1 = G(B-D+KC1) 을 계산하여 2라운드 키를 생성한다(단, KC1는 2라운드 상수이다). 다 음 단계에서는 레지스터 C, D를 왼쪽으로 8비트 회전 이동시킨다. 1라 운드와 같은 방법으로 3라운드 키 K3, 0 = G(A+C-KC2), K3, 1 = G(B-D+KC2)을 계산하여 생성한다(단, KC2는 3라운드 상수이다).. 4 라운드 키는 2라운드 키와 같은 방법으로 키를 생성하고 계속해서 32라 운드 키를 생성할 때까지 반복한다.

다음은 각 라운드 i에 사용되는 라운드 키 Ki= ( Ki,0, Ki,1) 생성 프로그램이다.

for( i=1 ; i<=32 ; i++) {

Ki, 0 = G(A+C-KCi) ; Ki, 1 = G(B-D+KCi) ;

if( i%2==1 ) A|| B = (A||B)>>8 ; else C||D = (C||D)<<8 ;

(28)

}

라운드 상수 KCi는 황금비의 소수 부분으로부터 다음과 같이 생성된 다.

KC0=int ( 5-12 ×232) = 0x9e3779b9

KCi= KCi≪1- 1 (1 ≤i≤ 32 )

표 2.3은 라운드 키 생성과정에 사용된 상수 값을 나타낸다.

라 운 드 상 수

KC0 = 0x9e3779b9 KC16 = 0x79b99e37 KC1 = 0x3c6ef373 KC17 = 0xf3733c6e KC2 = 0x78dde6e6 KC18 = 0xe6e678dd KC3 = 0xf1bbcdcc KC19 = 0xcdccf1bb KC4 = 0xe3779b99 KC20 = 0x9b99e377 KC5 = 0xc6ef3733 KC21 = 0x3733c6ef KC6 = 0x8dde6e67 KC22 = 0x6e678dde KC7 = 0x1bbcdccf KC23 = 0xdccf1bbc KC8 = 0x3779b99e KC24 = 0xb99e3779 KC9 = 0x6ef3733c KC25 = 0x733c6ef3 KC10 = 0xdde6e678 KC26 = 0xe678dde6 KC11 = 0xbbcdccf1 KC27 = 0xccf1bbcd KC12 = 0x779b99e3 KC28 = 0x99e3779b KC13 = 0xef3733c6 KC29 = 0x33c6ef37 KC14 = 0xde6e678d KC30 = 0x678dde6e KC15 = 0xbcdccf1b KC31 = 0xcf1bbcdc

표 2.3 라운드 상수 KCi Table 2.3 Round Constant KCi

(29)

그림 2.4는 라운드 키 생성 구조도이다.

D C B A

+ - G K00

- + G K01

D C

+ - K10

- + K11

D C

<<8 D || C

B A

B A

<<8 B || A

B A

B A

K00 = G(A+C-KC -

0

)

B-D

B-D

G

G

K01 = G(B-D+KC

0

) KC

0

KC

0

KC

1

KC

1

그림 2.4 라운드 키 생성 구조도

Figure 2.4 Round key generating structure diagram.

표 2.4는 그림 2.4의 결과로 생긴 32 라운드 키 값을 나타낸다.

(30)

라운드 키

K1,0 = 0x7C8F8C7E K1,1 = 0xC737A22C K2,0 = 0xFF276CDB K2,1 = 0xA7CA684A K3,0 = 0x2F9D01A1 K3,1 = 0x70049E41 K4,0 = 0xAE59B3C4 K4,1 = 0x4245E90C K5,0 = 0xA1D6400F K5,1 = 0xDBC1394E K6,0 = 0x85963508 K6,1 = 0x0C5F1FCB K7,0 = 0xB684BDA7 K7,1 = 0x61A4AEAE K8,0 = 0xD17E0741 K8,1 = 0xFEE90AA1 K9,0 = 0x76CC05D5 K9,1 = 0xE97A7394 K10,0 = 0x50AC6F92 K10,1 = 0x1B2666E5 K11,0 = 0x65B7904A K11,1 = 0x8EC3A7B3 K12,0 = 0x2F7E2E22 K12,1 = 0xA2B121B9 K13,0 = 0x4D0BFDE4 K13,1 = 0x4E888D9B K14,0 = 0x631C8DDC K14,1 = 0x4378A6C4 K15,0 = 0x216AF65F K15,1 = 0x7878C031 K16,0 = 0x71891150 K16,1 = 0x98B255B0 K17,0 = 0x8C7E7C8F K17,1 = 0xA22CC737 K18,0 = 0x6CDBFF27 K18,1 = 0x684AA7CA K19,0 = 0x01A12F9D K19,1 = 0x9E417004 K20,0 = 0xB3C4AE59 K20,1 = 0xE90C4245 K21,0 = 0x400FA1D6 K21,1 = 0x394EDBC1 K22,0 = 0x35088596 K22,1 = 0x1FCB0C5F K23,0 = 0xBDA7B684 K23,1 = 0xAEAE61A4 K24,0 = 0x0741D17E K24,1 = 0x0AA1FEE9 K25,0 = 0x05D576CC K25,1 = 0x7394E97A K26,0 = 0x6F9250AC K26,1 = 0x66E51B26 K27,0 = 0x904A65B7 K27,1 = 0xA7B38EC3 K28,0 = 0x2E222F7E K28,1 = 0x21B9A2B1 K29,0 = 0xFDE44D0B K29,1 = 0x8D9B4E88 K30,0 = 0x8DDC631C K30,1 = 0xA6C44378 K31,0 = 0xF65F216A K31,1 = 0xC0317878 K32,0 = 0x11507189 K32,1 = 0x55B098B2

표 2.4 32 라운드 키 값 Table 2.4 32 Round Key value

(31)

III. 음성 통신 시스템 3.1 PCM과 VBAP

3.1.1 PCM

PCM(Pulse Code Modulation)통신 방식은 음성과 같은 아날로그 신 호를 디지털의 2진 부호로 변환하는 일종의 아날로그/디지털 변환이며, 변환된 디지털 신호의 전송을 의미한다[29]. 1948년도에 PCM 장치가 설계 제작되었고, 당시 능동소자나 부호화에 사용되는 진공관이 여러 가지로 문제점을 가지고 있었기 때문에 1950년대 반도체 회로의 등장 에 따라 실현되었다. 1960년대 초 미국의 AT&T사에 의해 최초로 상용 화되었으며, 시분할 다중화의 기본 단위가 24채널인 북미방식과 32채널 (동기 채널과 신호 채널 포함)인 유럽방식으로 양분되어 발전되어 왔 다. PCM은 음성 파형을 나이퀴스트 율인 최고 주파수의 2배 속도로 표본화하고, 표본값의 진폭을 양자화 과정을 거쳐 이산적인 양자화 단 계에 가장 가까운 단계로 근사 시킨 후, 8개 비트로 부호화(Coding)한 다. 음성주파수대역이 300~3,400Hz로 표준화되어 있기 때문에 표본화 주파수는 6,800Hz로 되나, 시스템의 필터 설계에 여유를 두기 위하여 8,000Hz로 표본화 주파수를 결정한다. 이러한 디지털신호의 전송으로 아날로그 통신방식의 전송로에서 발생한 잡음, 누화, 손실, 왜 등 주요 제한 요소들의 영향을 거의 받지 않고 광대역전송, 음성과 화상 등 데 이터 전송이 가능한 특징이 있다. 그림 3.1은 PCM 신호처리 계통도이 다. 기존의 FDM(frequency-division multiplexing) 방식은 경제성이나 전송 품질면에서 PCM방식에 뒤졌고, FDM 방식으로 이용할 수 없는 낮은 전송품질의 케이블에서도 PCM방식은 정상적으로 운용될 수 있는

(32)

그림 3.1 PCM 신호처리 계통도

Figure 3.1 PCM signal processing system diagram.

강점이 있어 아날로그 통신보다 PCM에 의한 디지털 통신 방식이 대 세이다. PCM은 크게 필터링, 표본화, 양자화, 부호화의 단계와 복호화, 보간화 단계를 거친다. 사람의 음성은 보통 50Hz에서 20,000Hz 사이의 주파수를 갖는다. 그러나 실제로 정보 전달에 필요한 음성 주파수는 300Hz ~ 3,400Hz의 범위 내에 있다. ITU-T에서는 이 주파수 대역을 음성 주파수 대역으로 권고하고 있다. 따라서 300Hz 이하 3,400Hz 이상 인 주파수는 첫 번째 단계인 필터링 과정을 통해 제거된다.

그림 3.2는 두 번째 단계인 표본화를 나타낸다. 음성신호와 같은 연속 파형을 일정한 간격으로 나누어 이 값만 취하고 나머지는 삭제하는 것, 즉 PAM 변조하는 과정을 표본화한다. 연속적인 신호를 표본화하여 원 래의 신호로 잘 복원하자면 표본화의 주기간격을 되도록 작게 하여 많 은 표본을 취하면 좋다. 그러나 불필요하게 표본을 많이 취하면 전송하 는데 필요한 대역폭이 커지며, 전송 용량이 증가해 실시간 처리가 어려 워지는 등 여러 가지 문제점이 발생할 수 있다. 표본간격을 가장 적절 하게 하여 원 신호를 충실하게 재현시킬 수 있다는 이론이 샤논의  표본화 정리이다. 최고 주파수 스펙트럼 성분이 fm으로 대역 제한된 입력신호 x(t)가 수신측에서 왜곡 없이 원래의 신호를 복원하기 위해서 표본화주파수 fs는 최고주파수 fm의 2배 이상으로 되어야 한다는 것이

(33)

그림 3.2 표본화 Figure 3.2 Sampling.

다. 즉, 임의의신호를 1/(2fm)초의 시간간격(Ts)마다 표본화하면 그 표 본화된 값으로부터 원래의 아날로그 신호를 완전히 복원할 수 있다. 이 것을 수식으로 나타내면 fs≥2 fm, Ts(=1/fs) ≤ 1/(2fm)이다. 이때, fs=1/Ts를 표본화 주파수라 하고, 특히 fs=2fm일때, fs를 나이퀴스트 주 파수라 하며, 최소허용 표본화 주파수인 2fm을 나이퀴스트 율이라 한 다. 그림 3.3은 표본화 주파수에 따른 에일리어싱 현상을 나타낸다.

(a) (b)

그림 3.3 에일리어싱 Figure 3.3 Aliasing.

만약 음성의 샘플링 주파수로 6,800Hz를 적용하는 경우, 음성정보의 대역을 제한하는 저역 필터의 차단 특성이 예민하고 정확해야 한다.

(34)

PCM 시스템으로 입력되는 음성신호에 3,400Hz 이상의 성분을 완전하 게 제거하지 않아 fs< 2fm 이면 그림 3.3 (b)와 같이 스펙트럼이 겹치 는 현상이 발생하는데 이 같은 현상을 fold-over 왜곡 또는 에일리어싱 이라 한다. 일반적인 경우 원 신호를 추출하기 위한 저역 통과 필터 (LPF)의 차단특성은 이론과 같이 예리하지 못하므로 인접 스펙트럼 사 이에 보호대역을 두는 방법(a)을 사용한다. 음성 전화신호의 경우 대역 폭은 300~3,400Hz이고 표본화 주파수 fs는 2fm인 6,800Hz이면 가능하 지만 필터의 차단 특성상 에일리어싱을 방지하기 위하여 8,000Hz로 하 고 있다. 보호대역(Guard Band)은 4,000Hz - 3,400Hz = 600Hz이다.

즉, 실제로는 8KHz의 표본화 주파수를 허용하기 때문에 보호대역을 0.6KHz가 확보되어 필터의 설계에 여유를 두게 된다. 실제의 통신 시 스템에서 주파수 대역을 제한하기 위해 사용되는 저역 필터가 이상적이 지 않기 때문에 보호대역을 확보하는 것이 좋다. 전화의 경우 300~

3,400Hz의 유효 전송대역을 4KHz로 하므로 표본화 간격은 1/8,000sec 즉 125㎲이다.

그림 3.4는 세 번째 단계인 양자화를 나타낸다.

그림 3.4 양자화

(35)

Figure 3.4 Quantization.

그림 3.4와 같이 125㎲주기로 표본화한 값(진폭)을 가지는 PAM 신호 를 디지털 신호로 변환하기 위해서 근사파를 만드는 과정, 즉 PAM파 를 각각의 대표값으로 표현하는 조작을 양자화라 한다. PCM방식에서 는 아날로그 표본 크기를 8비트의 값으로 부호화하는데 이것은 최대값 이 28 = 256 (0 ~±127) 단계를 가지며, 정수 값만 갖는다. 표본화된 신호의 진폭과 양자화 단계로 정의된 값이 일치하지 않으면 (사사오입) 에러가 발생한다. 이와 같은 에러를 양자화 잡음이라 한다. 양자화 잡음 은 근본적으로 양자화 단계를 세분하면 감소시킬 수 있으나 PCM word의 비트 수가 증가하고 기기도 복잡하게 되며 전송속도가 증가하 기 때문에 Companding(압축과 신장) 방식을 적용하여 잡음을 감소시킨 다. 음성정보의 특성 가운데 동적 영역이 크며, 작은 진폭에 많은 에너 지가 분포하는 특성을 이용하여 낮은 단계에는 양자화 단계를 조밀하게 하고, 높은 단계에서는 드물게 함으로써 양자화 잡음을 감소시키는 방 식을 비직선 양자화라 한다. 그림 3.5는 비직선 양자화와 압축과 신장을 나타낸다.

(a) 비직선 양자화 (b) 압축과 신장

그림 3.5 비직선 양자화(a)와 압축과 신장(b) Figure 3.5 Non-linear quantization(a)

(36)

and compressing and expanding(b).

그림3.5처럼 큰 신호 값을 가지는 부분보다 작은 신호 값을 가지는 부분에서 양자화 간격을 좁게 하는 로그함수 곡선(Logarithmic) 특성을 이용한다. 즉, 송신에서는 압축기 (Compressor)를 사용하고, 수신측에 서는 변형된 신호를 원래대로 복구하는 신장기(Expander)를 사용하며 이것을 합쳐서 압신(Companding) 이라 한다. 즉, 압신기는 작은 신호는 양자화 스텝을 작게 하고 큰 신호는 양자화 스텝을 크게 하여 전 신호 단계에 대해서 양자화 잡음 비를 가급적 균등하게 하는 것이다

압축과 신장은 다이오드(diode)의 전압-전류 특성곡선의 비 직선성을 이용하여 구현하고 있으며 북미방식의 μ-law과 유럽방식의 A-law가 사용되고 있다. 음성정보의 디지털화에 널리 사용되고 있는 μ-law 압 축기 특성은 식(3.1)으로 정의된다.

Y = Sgn(x) loge( 1+u|x| )

loge( 1+u ) (0< |x| < 1) (3.1) 식(3.1)을 곡선으로 나타내면 그림 3.6의 μ-law 특성 곡선이다. μ의 값이 증가할수록 압축율이 증가한다.

그림 3.6 μ-law 특성 Figure 3.6 μ-law characteristic.

(37)

음성정보의 디지털화에 널리 사용되고 있는 또 하나의 압축기의 특성 을 A-law 특성이라 하며 식(3.2)으로 정의된다

Y = Sgn(x) Ax

1+ loge A (0 < |x| < 1 ) (3.2) 식(3.2)를 곡선으로 표현하면 그림 3.7과 같으며, A의 값이 증가할수 록 압축율이 증가한다. 현재 유럽의 표준 방식으로 사용되는 국내의 P-32T 단국장치에서 A = 87.6의 압축률을 적용(range bit)하고 있다

그림 3.7 A-law 특성 Figure 3.7 A-law characteristic.

μ-law 압신 방식은 낮은 단계에서의 유휴채널 잡음 특성이 더 양호 하고, A-law 압신 방식은 높은 단계에서의 신호대 잡음비가 더 양호하 다. 두 종류의 압신 방식 모두 다 -35dBm 단계의 입력신호에 대한 양 자화 잡음비가 디지털 전송 및 교환 시스템의 PCM Code Word 의 구 성 비트 수에 영향을 받기 때문에 전송 채널의 비트율을 약 30% 정도 감소하는 효과를 얻는다. 각 법칙의 대수 압신 특성곡선은 +측 8절선 (segment)과 -측 8절선으로 16절선으로 이루어지나 μ-law는 0 ~±1 이 하나의 절선으로 되어 15절선 압신 법칙이라 하고, A-법칙은 0 ~

±2가 하나의 절선으로 되어 13절선 압신 법칙이라 한다. 그리고 각각 하나의 절선은 16개의 분절로 이루어져 256 개의 분절로서 양자화 단계

(38)

256 단계를 표현한다.

네 번째 단계는 부호화로 일정주기로 표본화되어 양자화 단계에서 결 정된 PAM 신호의 진폭 값을 0과 1로 조합된 2진 부호로 바꾸 는 것이다. 부호기는 A/D변환 시에 양자화와 부호화를 동시에 실현 시 키는데, 부호 변환 방법에 따라 계수형, 행 순차 비교형, 축차 비교형, 직독형 등이 있다. 이중 가장 많이 사용되는 것이 축차 비교형 (Successive Approximation Coder)이다. 이 방식은 진폭과 전압을 비교 하여 진폭이 전압보다 크면 1로 , 적으면 0으로 나타낸다.

PCM 통신의 2진 부호방법은 자연 2진 부호, 교번 2진 부호, 절반2진 부호 등이 있으나 PCM 장치에서는 양자화 단계의 중앙을 기준하여 최 상위 비트(MSB:most significant bit)는 극성을 표시하는 1 또는

0으로 정하고 그 이외의 자리는 자연 2진 부호(8421코드)로 사용한 다. 그림 3.8은 μ-law의 입출력 환산표이다.

그림 3.8 μ-law의 입출력 환산표

Figure 3.8 μ-law input and output conversion table.

(39)

PCM방식에서는 8bit로서 양자화 단계 256 단계를 나타낸다. 즉, 8비 트의 구조를 보면, 첫 번째 비트는 극성으로서 "1"은 +를, "0"은 -를 나 타내고, 2,3,4번째 비트는 절선을 5,6,7번째 비트는 분절을 나타낸다.

그림 3.8은 절선 8단계 (3비트: 23 ), 절선 내에 분절 16단계 (4비트:

24 )를 가지고 있다. 부호화 하는 방법은 우선 부호(Sign) 1개의 비트 를 결정하고, 두 번째 절선(Segment) 3개의 비트를 결정, 세 번째 분절 (Step) 4개의 비트를 결정하게 된다. 다음은 부호화 방법의 예이다.

만약 양자화된 음성 단계가 +87을 가질 때 부호화(축차 비교형과 자 연 2진 부호를 사용) 시켜 보면,

① 부호가 +이므로 1번째 비트는 1

② 절선의 결정

→87은 0과 128의 중간값 64 보다 크므로 2번째 비트는 1

→87은 64와 128의 중간값 96과 비교해서 적으므로 3번째비트는 0

→87은 64와 96의 중간값 80과 비교해서 크므로 4번째 비트는 1

③ 분절의 결정

→87은 6번째 절선( 80 ~ 96 사이)으로 결정 되었음

→87은 80과 96의 중간값 88보다 작으므로 5번째 비트는 0

→87은 80과 88의 중간값 84보다 크므로 6번째 비트는 1

→87은 84와 88의 중간값 86보다 크므로 7번째 비트는 1

→87은 86과 88의 중간값 87과 같으므로 8번째 비트는 1 그래서 11010111을 부호화한다.

수신시에는 복호화, 보간화를 통해 원 아날로그 신호를 복원한다.

(40)

3.1.2 VBAP

VBAP는 음성이나 비디오 등의 아날로그 신호를 펄스 부호 변조 (PCM)를 사용하여 전송에 적합한 디지털 비트 스트림으로 변환시키고, 다시 수신측에서 디지털 신호를 아날로그 신호로 변환해 주는 장치이 다. 음성 통신에서 전화기를 사용할 때, 사람의 목소리는 전화기의 송화 기를 통해 아날로그 신호로 표현되어 전화선을 타고 다른 곳으로 전송 된다. VBAP 전이중(full duplex) 특성은 PCM 되돌림 (loopback) 검사 를 통해서 확인할 수 있다. 그림 3.9는 VBAP의 되돌림 동작을 검사하 기 위한 회로도이다.

그림 3.9 VBAP 되돌림 검사 구성도

Figure 3.9 VBAP Loopback Test Configuration Diagram.

PCM 되돌림 구조를 갖고, 고정 데이터 비 상태(fixed-data-rate mode)를 갖는 VBAP를 나타낸다. 되돌림 검사에서 VBAP는 송신부와 수신부가 동기되어 사용되어진다. MICIN에 입력되는 아날로그 신호는 직렬 데이터로 부호화되고 되돌림(DOUT에서 DIN으로)된다. VBAP에

(41)

의해 디지털에서 아날로그로 다시 부호화 된다.

대부분의 VBAP는 디지털 시스템 프로세서나 ASIC 클록 생성기에서 생성되는 클록을 사용한다. 그러나 PCM 되돌림 구조를 적용하는 VBAP는 주 클록(master clock)과 각각의 구성사이의 프레임 동기를 필요로 한다. 그림 3.9는 VBAP의 고정된 프레임 동기 회로도이다. 그 림 3.10의 회로도에서 보듯이 주 클록을 생성하고, 제어부에서 프레임 동기를 맞추어준다.

그림 3.10 고정된 프레임 동기 회로도

Figure 3.10 Fixed Frame Synchronization Circuit Diagram.

회로에서 U1, U2(74HC163 : 4 bit counter)는 신호, 주 클록, 입력 클 록(signal-master clock-in(CLK))이 동기되어 있다. U2는 16번째 주 클 록을 확인하기 위하여 U1과 직렬연결(cascaded)되어있다. U2의 출력 CO(carry out)은 주 클록의 256번째에 펄스 출력되며, 주 클록 펄스의 주기를 갖는다. 이것은 고정 데이터 비 프레임 동기(Fixed-Data Rate Frame Synchronization)에 필요하다. 74HC163(Counter)의 carry out은

(42)

carry out 펄스 전에 글리치(glitch)를 발생시킨다. VBAP 프레임 동기 입력은 에지 트리거 되어지기 때문에 실제의 캐리 아웃(carry out)과 프레임 동기에서의 글리치가 모두 인식된다. 74HC163에서의 이러한 문 제는 U6에서 보여진 것과 같이 U1과 U2의 캐리 아웃을 AND시킴으로 서 해결할 수 있다. 즉 실제 캐리 아웃 펄스만 고정된 프레임 동기의 출력에 나타난다.

그림 3.11은 VBAP 기능 블록도이다[30].

그림 3.11 VBAP 기능 블록도 Figure 3.11 VBAP function block diagram.

그림 3.12는 VBAP의 고정 데이터 상태에서의 수신 타이밍 도를 나 타낸다. 주 클록이 하이인 상태에서, 수신 프레임 동기 신호 클록이 하 이가 되면, 다음 폴링 에지에서부터 8비트 데이터를 VBAP의 DIN에서 수신하게 된다.

(43)

그림 3.12 고정된 데이터 상태에서의 수신 타이밍도 Figure 3.12 Receive Side Timing Diagram

in Fixed-Data Rate Mode.

그림 3.13은 VBAP의 고정된 데이터 상태에서의 송신 타이밍 도를 나타낸다. 주 클록이 하이 상태에서 송신 프레임 동기 신호 클록이 하이가 되면, 다음 폴링 에지에서 VBAP의 DOUT에서 8비트의 PCM 신호를 송신한다.

그림 3.13 고정된 데이터 상태에서의 송신 타이밍도 Figure 3.13 Transmit Side Timing Diagram

in Fixed-Data Rate Mode.

(44)

3.2 DSP

3.2.1 On-Chip ROM과 RAM

TMS320VC5402 프로세서(이하 5402)소자는 시스템 성능과 집적을 위해 On-Chip ROM 과 RAM 메모리를 가지고 있다. 5402는 마스크 가능한 ROM으로 4K-word×16-bit On-Chip으로 구성된다. 보안 옵 션은 상용 ROM을 보호하는데 사용한다. 5402상에서 ROM/RAM 옵션 이 아니라 ROM 보안 옵션만이 이용 가능하다. 부트로더(bootloader)는 표준 5402 on-chip ROM에서 사용한다. 부트로더는 전원인가 시, 외부 의 소스에서 사용자의 코드를 메모리상의 어느 곳으로든 자동 전송하는 데 사용된다. 만약 MP/MC 핀이 하드웨어 리셋 동안 로우(low)로 세팅되어진다면, on-chip ROM의 FF80h에서 실행이 시작된다. 이 위치 는 부트로더 프로그램의 시작을 위한 분기(branch) 명령을 포함한다.

표준 5402 부트로더는 여러 가지의 시스템 요구사항을 위한 코드를 다 운로드 할 수 있는 다른 방법을 제공한다. 표 3.1은 표준 On-Chip ROM 영역을 나타낸다.

ADDRESS RANGE DESCRIPTION F000h - F7FFh Reserved

F800h - FBFFh Bootloader

FC00h - FCFFh μ-law expansion table FD00h - FDFFh A-law expansion table

FE00h - FEFFh Sine look-up table FF00h - FF7Fh Reserved

FF80h - FFFFh Interrupt vector table 표 3.1 표준 On-Chip ROM 영역 Table 3.1 Standard On-Chip ROM Layout

(45)

5402는 on-chip dual-access RAM(DRAM)의 16K×16-bit를 포함하 고 있다. DRAM은 각각 두개의 8K 블록으로 구성되어있다. DRAM 안의 각 블록은 한 주기에 두개를 읽을 수 있게 지원한다. DRAM은 데 이터 영역 안의 어드레스 범위 0060h-3FFFh에 위치되어지고, OVLY 비트를 1로 세팅함으로서 프로그램/데이터 공간으로 할당(mapping)한 다. 그럼 3.14는 5402 RAM의 메모리 맵이다.

그림 3.14 메모리 맵 Figure 3.14 Memory Map.

(46)

3.2.2 Relocatable Interrupt Vector Table

DSP에서 리셋, 인터럽트, 트랩 벡터들은 프로그램 영역 안으로 어드 레스 된다. 이 벡터들은 편리하게 트랩 번지를 가지고 있을 때의 프로 세서가 트랩 번지를 가진 프로그램 카운터(PC)를 읽어오고, 벡터위치에 서 코드를 실행한다. 4개의 워드가 지연된 분기 명령을 완성하기 위해 각 벡터 위치에 제공된다. 2개의 1-워드 명령이나 혹은 하나의 2-워드 명령을 통해서 네 개의 워드들은 지연된 분기 명령 각각의 벡터 위치에 공급된다 이것은 분기가 최소한으로 오버헤드(overhead)하여 인터럽트 서비스 루틴을 할 수 있게 한다.

소자 리셋에서, 리셋, 인터럽트 그리고 트랩 벡터들은 프로그램 공간 에서 번지 FF80에 할당된다. 그러나 이 벡터들은 소자 리셋 후에 프로 그램 공간 안에 128-워드 페이지의 시작에 다시 할당된다. 이것은 거의 128-워드 페이지 경계 번지를 가진 PMST(프로세서 설정 상태) 레지스 터 안에 있는 인터럽트 벡터 포인터(IPTR) 비트를 로딩하는 것에 의해 이루어진다. 그림 3.15는 PMST 레지스터를 나타낸다.

그림 3.15 PMST 레지스터 Figure 3.15 PMST Registers.

3.2.3 On-Chip 주변기기

5402 소자는 다음과 같은 주변장치를 가지고 있다:

(47)

• 두 개의 McBSPs

• 두 개의 하드웨어 타이머

• 한 개의 PLL을 가진 클록 생성기

• 한 개의 DMA 제어기

3.2.3.1 McBSP

5402 소자는 C54x/LC54x 소자, 코덱 그리고 시스템 안의 다른 소자 들과 직접 접속(interface)을 가능하게 하는 두개의 하이 스피드 (high-speed)와 전이중인 다중 채널 버퍼 직렬 포트(McBSP)가 포함되 어 있다. McBSP는 독립적으로 동작하는 전송과 수신 채널로 구성되 어 있다. 송신기상에서, 송신 프레임 동기화와 클로킹은 BFSX와 BCLKX 핀으로 각각 표시한다. CPU 혹은 DMA는 DXR에 쓰는 것 (writing)으로 데이터의 전송을 시작한다. DXR에 쓰여진 데이터는 XSR를 통해 BDX 핀 상으로 이동 출력된다. 이 구조는 DXR이 현재 워드의 전송이 처리되는 동안 보낼 다음 워드를 로드하는 것을 허가한 다. 수신단 상에서, 수신 프레임 동기화와 클로킹은 BFSR 와 BCLKR 핀으로 각각 표시한다. CPU나 DMA는 DRR로부터 수신된 데이터를 읽 을 수 있다. BDR 핀에 수신된 데이터는 RSR(로 이동된 후, RBR에서 버퍼된다. 만약 DRR이 비었다면, RBR 목록들은 DRR로 복사된다. 만 약 그렇지 않다면, RBR은 DRR이 이용가능 할 때까지 데이터를 잡아둔 다. 이 구조는 현재 워드의 수신이 진행되고 있는 동안에 두개의 전 워 드의 저장을 가능하게 한다. CPU와 DMA는 McBSP로부터 데이터를 움직일 수 있고, McBSP 인터럽트, 이벤트 신호, 상태 플랙에 기초한 전송을 동기화 할 수 있다. DMA는 McBSP와 메모리 사이에서 CPU로 부터의 간섭없이 데이터 이동을 다룰 수 있다. 표준 직렬 포트 기능 외 에 McBSP는 프로그램 클록과 프레임 동기화 신호를 제공한다. 프로그

(48)

램 기능은 다음과 같다.

․ on-chip 압축 하드웨어는 μ-law와 A-law에서 데이터의 압축과 신장을 가능하게 한다.

․ 압축이 사용되고 있을 때, 전송 데이터는 정해진 압축규칙에 따라 부호화되고, 수신된 데이터는 2의 보수 포맷으로 복호화된다.

․ McBSP는 전송과 수신에 있어서 독립적인 다중채널을 가능하게 한다.

3.2.3.2 하드웨어 타이머

5402 소자는 4-bit 전치를 가진 두개의 16비트 타이밍회로가 특징이 다. 각 타이머의 주 카운터는 한 개의 매 CLKOUT 주기에 의해 감소 되어진다. 카운터가 0으로 감소되는 각각의 시간에, 한 개의 타이머 인 터럽트가 발생한다. 표 3.2는 리셋(reset) 상태에서의 클록 상태 세팅을 보여준다. 타이머는 특정의 제어 비트에 의해 정지, 재시작, 혹은 금지 될 수 있다. 클록 발생기(clock generator)는 5402 소자에 대한 클록들 을 제공하고, 내부 오실레이터와 PLL 회로를 구성한다. 클록 발생기 는 내부 오실레이터를 가진 수정 발진기 사용 혹은 외부 클록 소스로부터 공급된 기준 클록 입력을 요구한다. 기준 클록 입력은 5402 장치를 위 한 클록을 형성하기 위하여 둘로 나누어진다. PLL 회로는 스케일 인자 (factor)에 의해 기준 클록 주파수를 곱셈한 클록을 형성하는데 사용될 수가 있으며, CPU보다 낮은 주파수의 클록 원의 사용을 허용한다. PLL 이 초기에 시작할 때, PLL이 입력 신호를 찾는 동안 변화점 상태로 들 어간다. PLL이 한번 락(lock)되면, 입력 신호와 동기를 유지하게 된다.

그 뒤에, 다른 내부 클록 회로는 5402의 주 클록으로 사용되는 경우, 새 로운 클록 주파수의 합성을 허가한다. 클록 발생기는 설계자에게 클록 소스를 선택할 수 있게 한다. 소프트웨어 프로그램한 PLL은 높은 수준

(49)

CLKM D1

CLKM D2

CLKM D3

CLKMD

RESET VALUECLOCK MODE

0 0 0 E007h PLL x 15

0 0 1 9007h PLL x 10

0 1 0 4007h PLL x 5

1 0 0 1007h PLL x 2

1 1 0 F007h PLL x 1

1 1 1 0000h 1/2 (PLL disabled) 1 0 1 F000h 1/4 (PLL disabled) 0 1 1 - Reserved (bypass mode)

표 3.2 리셋 상태에서의 클록 상태 세팅 Table 3.2 Clock Mode Setting at Reset.

의 융통성 특징이 있고, 여러 가지의 클록 곱셈 비, PLL을 직접적으 로 허가, 금지할 수 있는 능력, 그리고 락이 형성될 때까지 장치의 PLL 클로킹 상태의 지연 스위칭에 사용할 수 있는 PLL 락 타이머를 공급하는 클록 기준화기를 포함한다. 소프트웨어 프로그램한 PLL은 16 비트 CLKMD 레지스터에 의해서 제어된다. CLKMD 레지스터는 PLL 클록 모듈의 구조를 정의하는데 사용된다. CLKMD 레지스터는 표 3.2 에 보인 것과 같이 CLKMD1 ~ CLKMD3 핀에 의존한 미리 결정되어 진 값에 의하여 초기화된다.

(50)

3.2.3.3 DMA 제어기

5402 DMA 제어기는 CPU에 의한 개입 없이 메모리 맵에 있는 포인 트 사이에서 데이터를 전송한다. 그림 3.16은 5402 DMA 메모리 맵을 나타낸다.

그림 3.16 5402 DMA 메모리 맵 Figure 3.16 5402 DMA Memory Map.

(51)

데이터 전송의 상태에 기반을 둔 CPU를 인터럽트하기 위한 DMA 의 능력을 배열하고 DMA 채널 상태 제어 레지스터(DMMCn)에 있는 IMOD와 DINM 비트에 의해 결정된다. 표 3.3은 가능한 상태를 보여준 다.

MODE DINM IMOD INTERRUPT

ABU (non-decrement) 1 0 At full buffer only

ABU (non-decrement) 1 1 At half buffer and full buffer

Multi-Frame 1 0 At block transfer complete (DMCTRn = DMSEFCn[7:0] = 0) Multi-Frame 1 1 At end of frame and end of block

(DMCTRn = 0)

Either 0 X No interrupt generated

Either 0 X No interrupt generated 표 3.3 DMA 인터럽트

Table 3.3 DMA Interrupts.

(52)

각각의 DMA 채널에 관련된 전송은 여러 이벤트들의 하나에 동기 되 어질 수 있다. DMA 채널 동기의 DSYN 비트 항목을 선택하고 프레임 카운트(DMSFCx) 레지스터는 어떤 채널을 위한 동기 이벤트를 선택한 다. 표 3.4는 가능한 이벤트 동기 목록과 DSYN 값을 나타낸다.

DSYN VALUE DMA SYNCHRONIZATION EVENT 0000b No synchronization used

0001b McBSP0 receive event 0010b McBSP0 transmit event 0011-0100b Reserved

0101b McBSP1 receive event 0110b McBSP1 transmit event 0111b-0110b Reserved

1101b Timer0 interrupt 1110b External interrupt 3 1111b Timer1 interrupt

표 3.4 DMA 동기 이벤트

Table 3.4 DMA Synchronization Events

본 논문에서는 DSYN 값을 0001b와 0010b를 사용한다. 이것은 DMA 동기 이벤트가 McBSP0 수신 이벤트와 McBSP0 송신 이벤트일 때 사용한다는 것을 의미한다.

DMA 제어기는 각각의 6개의 채널에 대하여 CPU 인터럽트를 생성 할 수 있다. 그러나 채널 0, 1, 2, 3의 경우, 인터럽트 소스는 다른 인 터럽트 소스와 다중 송신한다.. DMA 채널 2와 3은 McBSP1의 수신과 송신 부분(IMR/IFR 비트 10과 11)을 가진 인터럽트 선을 공유하며,

수치

그림 2.1은 Feistel 암호 알고리즘의 일반적인 구조이다. L  i F L  i+1 R  iR i+1 k i R i+1 FR iL i+1L i k i (a) 암호화 구조 (b) 복호화 구조 그림 2.1 Feistel 알고리즘의 암․암호화 구조 Figure 2.1 encryption diagram of Feistel algorithm.
그림 2.3은 G함수의 구조도이다[3, 8]. MSB LSB X 3 X 2 X 1 X 0 S 2 S 1 S 2 S 1 Z 3 Z 2 Z 1 Z 0Z3Z2Z1Z0SS3SS2SS1 SS 0
그림 3.1 PCM 신호처리 계통도
그림 3.2 표본화 Figure 3.2 Sampling. 다. 즉, 임의의신호를 1/(2fm)초의 시간간격(Ts)마다 표본화하면 그 표 본화된 값으로부터 원래의 아날로그 신호를 완전히 복원할 수 있다
+7

참조

관련 문서

l 암호문의 통계적 특성과 암호 키 값과의 관계를 가능한 복잡하게 하는 l 암호문의 통계적 특성과 암호 키 값과의 관계를

n 쉰목소리, 기식성, 긴장성 음성, 부적절한 음도 등과 같은 음성문제, 성대의 과내전(hyperadduction) 혹은 과소내전 (hypoadduction) 등과 같은 음성 문제의 증세나

그람 음성 세균에서는 일반적으로 이 외막의 존재로 인해 항생물질이 쉽게 세균 세포 안으로 투과할 수 없다 à 그람 음성 세균은 그람 양성 세균에 비해 항생물질에

 따라서 디지털 회로는 고주파 신호를 다루는 회로로 다루어져야 한다... 저주파

§ 고속의 처리를 요구하는 IP 보안 프로토콜(IPSec)에 사용 l 암호키 관리: 네트워크에서 소요되는 전체 키의 개수가 많음 l 암호키 분배: 사전에 비밀키가 안전하게

(linguistic units)이 speech production에 연관되어 있다는 것을 보여줌.. Speech errors의 형태. i) 음성적 자질 (phonetic features)이 서로 인접한 음소끼리 바뀜.

„ Sender는 메시지의 해시를 구하고 메시지와 해시 모두를 암 호화하여 상대방 Receiver에게 보낸다.. 메시지의 해시를 구하 는

본 논문에서는 완전이면교배에서 있어서 결측교배가 나타났을 때 근교계통의 일반조 합능력을 추정하기 위한 최적인 블록계획을 설계하는 방법과 결측교배를 갖는