메시지 인증과 개체 인증의 차이점은 다음과 같다.

메시지 인증은 메시지가 어디서 왔는지, 무결한 메시지인지 굳이 실시간으로 인증 할 필요가 없다. 따라서 메시지 인증은 시간성이 없다.

그러나 개체 인증은 개체가 시스템에 로그인이나 은행에 로그인해야하는 경우일 때 실시간으로 인증이 되어야 하기 때문에 시간성이 존재한다. 또한 메시지 인증은 한 메시지만 인증을 하는데 그러면 그 한 메시지만 인증이 되는 것이므로 여러 메시지를 인증해야 할 경우 모든 메시지의 인증을 반복적으로 수행해야 한다.

그러나 개체 인증은 한번 개체를 인증한 경우, 예를 들어 개체가 로그인을 한 경우 로그아웃을 할 때까지, 한 세션동안은 다시 인증을 하지 않는다. 따라서 개체는 세션이 유지되는 동안은 재인증 할 필요 없이 모든 작업을 할 수 있다는 메시지 인증과의 차이점이 있다.

 

 

일회용 패스워드는 한 번만 사용하는 패스워드다. 따라서 도청이나 도난의 위험이 없는 패스워드이다.

일회용 패스워드를 생성해 사용하는 방법들은 다음과 같다. 첫 번째는 사용자와 시스템 간의 패스워드 목록을 정해놓고 사용하는 것이다. 여러 패스워드들을 쓸 것을 합의하고 첫 번째 인증 시에는 이 패스워드, 두 번째 인증 시에는 그 다음 패스워드 등으로 사용하는 방식이다. 목록에 있는 패스워드는 딱 한번만 사용되므로 도청이나 재사용의 문제는 발생하지 않는다. 그러나 이 방식은 많은 패스워드 목록을 저장해야한다는 것과 사용자가 패스워드를 순서대로 사용하지 않는다면 시스템은 목록과 일치하는 패스워드를 찾는 데 시간이 많이 소요될 수 있다는 단점이 있다.

두 번째는 사용자와 시스템이 패스워드를 순차적으로 업데이트 하도록 정하는 방식이다. 사용자와 시스템은 원래 초기의 패스워드 P1을 최초의 접속에 사용하도록 정한다. 그 다음 사용자는 최초 접속 시 새로운 패스워드 P2를 생성해 P2P1을 키로 사용하여 암호화한다. 암호화된 P2는 다음 접속 시의 패스워드로 사용된다. 두 번째 접속 시 사용자는 새로운 패스워드 P3를 생성해 P2를 키로 사용하여 P3를 암호화하여 다음 접속 시의 패스워드로 사용한다. 따라서 이 방식에는 암호화 알고리즘이 사용된다.

 

 

* 위의 글은 www.kocw.net/home/search/kemView.do?kemId=1320013 15주차 강의를 보고 제가 작성한 내용입니다.

'시스템보안(이론)' 카테고리의 다른 글

리눅스 백도어 프로그램  (0) 2020.09.01
대칭 키 합의(Diffie-Hellman)  (0) 2020.08.31
KDC : Kerberos  (0) 2020.08.25
KDC (키 배분 센터)  (0) 2020.08.18
디지털 서명  (0) 2020.08.17

 

시스템 해킹은 원래 접근할 수 있는 제한적인 권한에서 그 이상의 권한을 가지고 접근할 수 있게 되는 것을 말한다. 리눅스에서는 root라고 불리는 관리자와 일반 사용자밖에 없으므로 리눅스에서 시스템 해킹은 일반사용자가 관리자의 권한을 획득하는 것을 말하는 것이다.

 

umaskumask 값에 따라 파일과 디렉터리의 기본 권한이 설정되는 것이다. 최고 권한 값에서 umask 값을 뺀 값이 기본 권한이 된다. 리눅스에서는 기본적으로 umask값이 022로 설정되어 있다. 일반 파일의 기본 생성 최고 권한이 666, 디렉터리의 기본 생성 최고 권한은 777인데, umask022로 설정되어 있다면 생성 시 일반 파일의 기본 권한은 644, 디렉터리는 755가 된다. umask 값은 관리자만 변경이 가능하며 sudo 명령어로 변경할 수 있다.

 

SetUIDSetUID 비트를 가진 프로그램을 실행하면 실행하는 동안 관리자의 권한을 가지게 하는 것이다. 또한 실행이 끝나면 다시 일반 사용자의 권한으로 되돌아오게 하는 것도 SetUID의 역할이다. SetUID를 이용하면 프로그램에 SetUID를 넣은 권한을 부여한 후 그 프로그램을 실행시키면 일반 사용자를 관리자의 ID로 바꾸어 관리자의 권한을 얻을 수 있게 된다. 따라서 SetUID를 이용하면 시스템 해킹을 할 수 있다.

 

* 위의 글은 www.kocw.net/home/search/kemView.do?kemId=1320013 14주차 강의를 보고 제가 작성한 내용입니다.

'시스템보안(이론)' 카테고리의 다른 글

인증, 패스워드  (0) 2020.09.15
대칭 키 합의(Diffie-Hellman)  (0) 2020.08.31
KDC : Kerberos  (0) 2020.08.25
KDC (키 배분 센터)  (0) 2020.08.18
디지털 서명  (0) 2020.08.17

 

 

강의 자료를  참고하여 Diffie-Hellman 키 합의 시스템을 설계하면 다음과 같다.

 

 

* 위의 글은 www.kocw.net/home/search/kemView.do?kemId=1320013 13주차 강의를 보고 제가 작성한 내용입니다.

'시스템보안(이론)' 카테고리의 다른 글

인증, 패스워드  (0) 2020.09.15
리눅스 백도어 프로그램  (0) 2020.09.01
KDC : Kerberos  (0) 2020.08.25
KDC (키 배분 센터)  (0) 2020.08.18
디지털 서명  (0) 2020.08.17

 

ASTGS는 둘 다 KDC 내에 있다.

 

AS는 인증 서버로 Kerberos 프로토콜의 KDC이며 인증과 키 분배 역할을 한다. 각 사용자는 AS에 등록을 하고 아이디와 패스워드를 발급해주며 추후에 이를 통해 사용자를 검증한다. 사용자와 TGS 사이에 사용될 세션키를 발급하고 TGS에 티켓을 발급한다.

 

TGS는 티켓-발급서버이며 서버(사용자)한테 가는 티켓을 발급하는 역할이다. 또한 사용자 사이에서 사용하는 세션키를 제공하며 AS와 별개로 사용자 검증을 한다. AS에서 한번 인증 받으면 그 이후부터는 TGS에 바로 접근이 가능하다.

 

ASTGS의 동작 과정은 다음과 같다.

A(사람)AS에게 요청하면 ASA의 사용자 ID와 패스워드를 확인하고 검증이 된 후 TGS에 접근할 수 있는 티켓을 발급한다. ASAA-TGS 키를 AS-TGS 세션키로 암호화하고 AS-TGS 세션키를 동봉하여 A-AS 키로 암호화하여 A에게 전송한다. AA-AS 키로 복호화하여 AS-TGS 세션키를 얻는다.

AT(timestamp(nonce))값을 A-TGS키로 암호화하고 통신 상대인 B(사람)를 동봉해 AS에게 받았던 암호화된 티켓과 함께 TGS에게 전송한다. TGS는 티켓을 받아 복호화하여 확인하고 A-TGS키로 복호화하여 T값을 얻고 통신 상대가 B임을 확인한다. TGSAB에게 티켓을 발급한다.

A에게 통신 상대인 B와 A-B의 세션키를 A-TGS 키로 암호화한 티켓과 B의 통신 상대인 AA-B의 세션키를 B-TGS 키로 암호화한 티켓을 전송한다. AA-TGS 키로 복호화하여 A-B의 세션키를 얻고 B의 티켓과 T값을 A-B의 세션키로 암호화하여 B에게 전송한다. B는 티켓을 복호화하여 세션키를 얻어 T값도 얻게 된다.

B는 세션 키를 받았다는 인증을 하기 위해 T값에 -1 한 값을 A에게 보낸다. 이러한 과정을 통해 AB는 서로 세션키를 획득했고 T값을 통해 인증하였다.

 

 

* 위의 글은 www.kocw.net/home/search/kemView.do?kemId=1320013 12주차 강의를 보고 제가 작성한 내용입니다.

'시스템보안(이론)' 카테고리의 다른 글

리눅스 백도어 프로그램  (0) 2020.09.01
대칭 키 합의(Diffie-Hellman)  (0) 2020.08.31
KDC (키 배분 센터)  (0) 2020.08.18
디지털 서명  (0) 2020.08.17
해시 함수  (0) 2020.08.15

 

세션 키는 KDC에서 생성한다. 먼저 KDC는 비밀키를 생성하고, KDC는 통신하고자 하는 두 사람과 비밀키를 이용해 세션키를 생성한다. 비밀키는 구성원과 KDC 사이에서만 사용될 수 있으므로 구성원 사이에서는 세션키를 사용해야 한다. 세션마다 다른 키를 사용하기 때문에 세션키는 1번만 사용된다.

세션키를 이용한 통신 프로토콜은 다음과 같다.

 

첫 번째는 하나의 KDC를 이용하는 프로토콜이다. 먼저 A(사람)KDC한테 B(사람)와의 통신을 원해 세션키를 요청한다. KDC는 구성원과 세션키를 B와의 비밀키로 암호화한 후 세션키를 동봉하여 A와의 비밀키로 전체를 암호화 한 후 Alice에게 전송한다. AKDC와의 비밀키를 이용해 복호화한 후 동봉된 세션키를 확인한다. 그 후 B와 KDC의 비밀키로 암호화된 부분은 B에게 전송한다. BKDC와의 비밀키를 이용해 복호화한 후 세션키를 확인한다. 이러한 과정을 통해 A와 B는 세션키를 얻어 통신에 사용한다.

 

두 번째는 Needham-Schroeder 프로토콜이다. AKDC에게 B와 통신을 원해 Anonce 값을 전송한다. KDC는 통신 상대인 A와 세션키를 B와의 비밀키를 이용해 암호화하고 A가 전송했던 Anonce 값과 통신 상대인 B, 세션키를 동봉하여 A와의 비밀키로 전체를 암호화하여 A에게 전송한다. AKDC와의 비밀키를 이용해 복호화 후 동봉되어 있던 세션키와 통신 상대를 확인하고 자신이 보냈던 nonce값을 확인할 수 있는데 이를 통해 자신이 세션키를 요청했던 KDC가 맞는지 인증할 수 있게 된다. 그리고 KDCB의 비밀키로 암호화 되어 있는 티켓은 그대로 B에게 전송한다. B는 KDC와의 비밀키로 복호화하여 통신 상대와 세션키를 확인한다. 그 다음 B는 A에게 nonce값을 AB의 세션키를 이용해 암호화하여 A에게 전송한다. A는 세션키를 이용해 Bnonce값을 확인 해 nonce값에 -1을 한 값을 다시 B에게 전송한다. B는 AB의 세션키를 이용해 복호화하여 값을 확인한 후 통신 상대가 정말 A가 맞고 A가 자신과의 세션키를 가지고 있음을 확인할 수 있다.

 

 

KDC의 한 종류인 Kerberos는 다음 글에 포스팅되어 있습니다.

 

 

* 위의 글은 www.kocw.net/home/search/kemView.do?kemId=1320013 12주차 강의를 보고 제가 작성한 내용입니다.

'시스템보안(이론)' 카테고리의 다른 글

대칭 키 합의(Diffie-Hellman)  (0) 2020.08.31
KDC : Kerberos  (0) 2020.08.25
디지털 서명  (0) 2020.08.17
해시 함수  (0) 2020.08.15
메시지 인증  (0) 2020.08.14

전통적인 서명은 사람이 종이에 필기도구로 서명을 하는 것이고 디지털 서명은 공개키 알고리즘에서 메시지 내용을 이용해 만들어진 서명을 말하는 것이다.

전통적인 서명은 문서 안에 서명하므로 문서에 포함된다고 볼 수 있으나 디지털 서명은 서명과 문서가 분리되어 있어 전송 시 서명과 문서를 붙여 전송한다.

전통적인 서명은 사람이 문서의 서명을 눈으로 비교하여 두 개가 같으면 수신자의 서명으로 판단하지만 디지털 서명은 발신자가 비밀키로 암호화하여 전송하면 수신자가 공개키로 복호화하여 문서를 점검해 판단한다.

전통적인 서명은 한 사람이 다수의 문서에 서명을 하므로 1:N의 관계가 되지만 디지털 서명은 메시지의 내용에 따라 서명이 달라지므로 1:1의 관계가 된다.

전통적인 서명은 서명된 문서가 원본인지 복사본인지 눈으로 구별이 가능하지만 디지털 서명은 타임스탬프 같은 시간과 관련된 요소가 포함되어 있지 않으면 구별이 어려워 복제가 쉽다는 단점이 있다.

 

 

* 위의 글은 www.kocw.net/home/search/kemView.do?kemId=1320013 11주차 강의를 보고 제가 작성한 내용입니다.

 

'시스템보안(이론)' 카테고리의 다른 글

KDC : Kerberos  (0) 2020.08.25
KDC (키 배분 센터)  (0) 2020.08.18
해시 함수  (0) 2020.08.15
메시지 인증  (0) 2020.08.14
AES  (0) 2020.08.11

해쉬 함수 특징은 5가지가 있다.

첫 번째는 키를 사용하지 않는다는 것이다. 키를 사용하지 않고 알고리즘만 사용하므로 유연하다는 장점이 있다.

두 번째는 해쉬 함수 자체는 비밀이 아니고 오픈되어 있다는 것이다. 해쉬 함수 자체보다는 해쉬 값을 포함한 암호가 더 중요하다.

세 번째는 에러 탐색 능력을 제공한다는 것이다. 에러 탐색을 통해 무결성을 유지할 수 있다.

네 번째는 입력 값의 한 비트의 값이 바뀌면 전체 결합 값의 반에 가까운 값이 바뀐다는 것이다. 이러한 효과를 쇄도효과라고 한다.

마지막은 해쉬 코드의 사용 방법이 다양하다는 것이다.

 

해쉬 함수의 요구조건은 6가지가 있다.

첫 번째는 어떤 크기의 메시지에도 적용이 가능해야 한다는 것이다. 메시지 양이 커도 어느 정도의 비트만 나와야 한다는 것이다.

두 번째는 H512, 1024 비트 등으로 고정된 크기의 해쉬 코드를 만들어야 한다는 것이다.

세 번째는 H(M)은 주어진 M에 대해서 계산하는 것이 쉬워야 한다는 것이다. 계산이 복잡하고 오래 걸리면 해쉬 함수를 사용하는 의미가 없기 때문이다.

네 번째는 일방향(one-way) 성질이어야 한다는 것이다. 일방향 성질은 h를 찾는 것은 쉽지만 H(x) = hx를 찾는 것이 어려워야 한다는 것이다.

다섯 번째는 약한 충돌 회피성을 가져야 한다는 것이다. 주어진 x에 대해 H(y) = H(x)y를 찾는 것이 어려워야 한다는 것이다. , 다른 입력으로 동일한 결과 값을 같도록 하는 y를 찾는 것이 어려워야한다.

마지막은 강한 충돌 회피성을 가져야 한다는 것이다. 공개되지 않은 x, y에 대해 H(y) = H(x)(x,y) 쌍을 찾는 것이 계산적으로 어려워야 한다는 것이다.

 

해쉬 함수와 암호 기법을 사용해 제공할 수 있는 서비스에는 블록 체이닝 기법이 있다. Cipher Block Chaining(CBC) 암호화 기법으로 암호화 할 때 Initialization VectorPlaintextXOR하여 Block Cipher Enccryption하는 과정을 반복하는데 이 때 Block Cipher Enccryption를 여러 암호시스템으로 사용할 수 있다. DES 시스템을 사용하는 경우 Cipher text의 길이가 64비트가 되기 때문에 생일 공격에 취약하다. CBC 기술 해쉬 함수의 강도는 전수 공격에 대해서 해쉬 코드의 길이에 의존하므로 코드의 길이가 충분히 길어야 한다.

현재 사용되는 대부분의 해쉬 함수 구조는 다음과 같다. 메시지와 메시지의 길이 값와 나머지 부분은 Padding 값으로 구성한 후 이 전체 값을 메시지M의 배수값으로 만들어 M으로 나눈다. Initialization Vector와 나눈 값으로 Compression function에 넣고 연산을 진행해 Message digest를 생성한다.

SHA-512Message digest 생성 과정은 다음과 같다. 전체 값은 1024비트의 배수로 블록을 만들고 1024비트 단위로 나눈다. 이 나눈 비트와 Initial value값으로 Compression function에 넣어 나온 결과 값을 다시 다음 블록과 함께 Compression function에 넣는다. 이 과정을 반복하여 Message digest을 얻는다. 해쉬 함수는 이처럼 단순해야 한다.

 

 

* 위의 글은 www.kocw.net/home/search/kemView.do?kemId=1320013 10주차 강의를 보고 제가 작성한 내용입니다.

'시스템보안(이론)' 카테고리의 다른 글

KDC (키 배분 센터)  (0) 2020.08.18
디지털 서명  (0) 2020.08.17
메시지 인증  (0) 2020.08.14
AES  (0) 2020.08.11
DES 2  (0) 2020.08.11

 

메시지 인증은 이 메시지가 정말 원하는 사람으로부터의 메시지인가 메시지 출처, 내용 등을 인증하는 것이다. 또한 메시지 순서 일치와 시간의 적합성도 검증이 가능하다.

디지털 서명은 발신처 부인에서 사용되어 메시지 출처 인증(message origin authentication)에서 디지털서명을 사용하기도 한다.

인증함수는 메시지 암호화, 메시지 인증코드(MAC), 해쉬 함수 등이 있다.

메시지 암호화는 메시지 전체 암호문을 인증 값으로 사용하는 것이다.

MAC은 메시지에 MAC을 붙여서 보내고 받는 쪽에서도 메시지에 MAC을 똑같이 만들어서 동일한지 비교한다. 모든 MAC 기법은 대칭키를 사용하므로 디지털 서명을 제공하지 않는다.

해쉬함수는 MAC 방식과 동일하나 다른 점은 MAC은 키가 있고 해시는 키가 없고 알고리즘만 있다

 

통신상에서 발생할 수 있는 공격은 다음과 같다.

노출은 암호키가 없는 다른 사람에게 메시지 내용이 노출되거나 도청되는 것이다.

트래픽 분석은 통신 주체 사이의 어떤 트래픽 형태를 가지고 있는지, 예를 들어 연결주기, 사용시간, 메시지 개수 및 길이 등을 발견하고 이를 공격하는 것을 말한다.

위장은 부정한 출처로부터 나온 메시지를 네트워크상 에 삽입하는 것으로 가짜를 진짜인 것처럼 올리는 경우를 말한다.

내용 수정은 삽입, 삭제, 전치, 수정을 포함한 메시지 내용 자체의 변경을 말한다.

순서 수정은 메시지 내용은 수정하지 않고 상대방간의 메시지들의 순서를 변경하는 것이다. 순서를 변경하는 것만으로도 값이 변경되는 경우가 많다.

시간 수정은 메시지의 지연과 재전송을 일으킨다. 시간을 수정할 경우 재전송되는 문제가 발생할 수 있다.

발신처 부인은 발신자가 메시지의 전송 사실을 부인하는 것으로 보낸 사람이 보낸 적 없다고 전송을 부인하는 것이다.

수신처 부인은 수신자가 메시지의 수신 사실을 부인하는 것으로 받은 적이 없다고 수신을 부인하는 것이다.

이러한 공격의 대처 방안은 다음과 같다.

노출, 트래픽 분석 공격에 대한 방안으로는 기밀성을 이용하는 방식을 사용한다.

위장, 내용수정, 순서수정, 시간수정 공격에 대한 방안으로는 메시지 인증 방식을 사용해 메시지가 잘못되지 않았는지, 제대로 되어 있는지를 확인할 수 있다.

발신처 부인은 전자 서명을 이용해 보낸 사람이 서명을 하도록 해 부인을 방지한다.

수신처 부인은 전자서명과 특별히 설계된 프로토콜들의 조합을 이용해 수신 확인이 되도록 하여 부인을 방지한다.

 

 

* 위의 글은 www.kocw.net/home/search/kemView.do?kemId=1320013 9주차 강의를 보고 제가 작성한 내용입니다.

 

'시스템보안(이론)' 카테고리의 다른 글

디지털 서명  (0) 2020.08.17
해시 함수  (0) 2020.08.15
AES  (0) 2020.08.11
DES 2  (0) 2020.08.11
DES  (0) 2020.08.10

AES 선정기준은 안전성, 비용, 구현 효율성으로 구성된 3가지가 있다. 안전성은 기존의 DES가 선형 공격과 차분 공격에 취약했기 때문에 이 공격들에 대해 안전하다는 증명을 해야 한다는 것이다. 비용은 AES를 적용해 다양한 형태로 구현이 가능해야하고 스마트카드에서도 사용할 수 있을 만큼 비용이 적게 들고 계산 효율도 좋아야한다는 것이다. 계산 효율은 속도 및 메모리 요구량이 커버할 수 있는 지를 의미한다. 구현은 구현할 때 얼마나 유연성이 있는지, 알고리즘이 얼마나 단순한지, 쉽게 구현할 수 있는 지에 대한 것이다.

 

AES 라운드에는 크기에 따라 10, 12, 14 라운드가 있다. 각 라운드의 마스터 키는 128, 192, 256 비트의 크기로 각각 다르지만 라운드 키는 항상 128비트다. StateByte16개 모인 Block을 순서대로 세로로 4칸씩 배치하여 4x4 행렬을 만든 것이다. , 텍스트 16 문자를 Hexadecimal로 바꾸는데 Hexadecimal이 블록 형태이므로 그것을 State가 되도록 배치한다. 그리고 이 State가 라운드 내부로 들어가게 되면 SubBytes - ShiftRows - MixColumns - AddRoundKey의 단계를 거친다. 또한 첫번째 라운드가 시행되기 전에 StateRoundKey를 더해주고 마지막 라운드에서는 MixColumns 단계를 시행하지 않는다. 이는 복호화시 동형을 만들기 위함이다.

 

라운드는 앞서 말했듯이 SubBytes, ShiftRows, MixColumns, AddRoundKey로 구성되어 있다. 먼저, 스테이트를 SubBytes한다. SubBytes는 바이트를 다른 것으로 대체하는 것인데 DES에서 사용한 치환과는 매커니즘이 다르다. AESSubBytes는 각 바이트를 4비트씩 2개의 16진수로 계산하여 왼쪽 4비트를 행, 오른쪽 4비트를 열로 사용해 테이블을 읽는다. 그래서 해당 행과 열에 해당하는 값으로 치환하는 것이다. InvSubBytes를 통해 원래 값으로 복원이 가능하다. 또한 작은 것들(ex : 스마트카드) 등에서도 구현하려면 테이블이 작아야 한다. 테이블이 크면 메모리가 부족할 수 있기 때문에 연산을 통해서도 치환을 할 수 있도록 되어있다. 이 때 기약 다항식을 사용하는 데 이를 통해 연산 후에 늘어나는 자릿수를 줄여준다. ShiftRowsState의 행을 왼쪽으로 Shift해주는 것이다. 이때 순환이동으로 Shift를 수행하고 바이트 단위로 교환한다. 0RowShift하지 않고 1Row1-byte만큼, 2Row2-byte만큼, 3Row3-byte만큼 Shift한다. MixColumns는 기존의 State 열과 상수 매트릭스를 곱해서 새로운 열을 만드는 것이다. MixColumns도 마찬가지로 InvMixColumns를 통해 원래 값으로 복원이 가능하다. AddRoundKeyState 각 열에 Round Key word를 더한다. 그리고 Round Key word를 한 번 더 XOR하면 역변환된다.

 

 

* 위의 글은 www.kocw.net/home/search/kemView.do?kemId=1320013 5주차 강의를 보고 제가 작성한 내용입니다.

'시스템보안(이론)' 카테고리의 다른 글

해시 함수  (0) 2020.08.15
메시지 인증  (0) 2020.08.14
DES 2  (0) 2020.08.11
DES  (0) 2020.08.10
관용 암호  (0) 2020.08.10

키 생성은 64비트가 입력되어 패리티 비트인 8비트를 제외하고 56비트 암호키가 입력되어 28비트씩 둘로 나누어 비트를 Shift left하는 과정을 거친다. 여기서 Shift left1,2,9,16 라운드에서는 1비트만 Shift되고 나머지 라운드에서는 2비트가 Shift된다. Shift left된 각각의 28비트는 압축 P 박스를 거쳐 48비트인 Round Key가 생성되고 이 과정을 통해 키가 생성된다.

 

쇄도효과는 블록 암호가 지녀야 할 2가지 성질 중 하나이며 입력의 한 비트의 변화가 암호문에서 얼마나 많은 변화를 가져오는 지를 말하는 것이다. 특징으로는 1비트만 차이 나는 평문을 동일한 키를 이용해 암호화하였을 때 세 번째 라운드부터 비트 차이의 개수가 확 증가한다는 것이다.

 

혼돈은 평문과 암호문 사이의 관계를 알기 어려워야 한다는 것이다. DES에서는 S박스와 관련이 있다. S 박스는 각 라운드로부터 다음 라운드까지 혼돈과 확산 성질을 만족하게끔 설계되었다.

 

확산은 평문의 각각 비트들의 정보가 여러 개의 암호문 비트에 영향을 미쳐야 한다는 것이다. DES에서는 P 박스와 관련이 있는데 P 박스는 동시에 비트들을 확산시키는 역할을 한다.

 

전수 공격은 DES가 취약한 공격인데, 키에 대한 보수 성질을 이용하면 절반의 키만으로도 전수 공격이 가능하기 때문이다. 이 성질에 의하면 번의 DES 암호화 과정을 통해 키를 찾을 수 있다. 이에 대한 해결책으로는 여러 키를 이용해 DES를 여러 번 암호화하는 것이다. 또한 DES는 암호키의 길이가 짧다는 것도 취약점이다.

 

 

* 위의 글은 www.kocw.net/home/search/kemView.do?kemId=1320013 4주차 강의를 보고 제가 작성한 내용입니다.

'시스템보안(이론)' 카테고리의 다른 글

메시지 인증  (0) 2020.08.14
AES  (0) 2020.08.11
DES  (0) 2020.08.10
관용 암호  (0) 2020.08.10
보안서비스  (0) 2020.08.10