"대칭키"의 두 판 사이의 차이
wlgns12244 (토론 | 기여) (→특징) |
wlgns12244 (토론 | 기여) (→특징) |
||
12번째 줄: | 12번째 줄: | ||
한국에서는 개발된 암호 중에서는 페스탈 구조기반으로 설계된 SEED가 있다. | 한국에서는 개발된 암호 중에서는 페스탈 구조기반으로 설계된 SEED가 있다. | ||
SPN 구조는 암복호화 과정에서 역함수가 필요하도록 설계되어야 한다는 단점이 있지만 중간에 비트의 이동없이 한번에 암복호화가 가능하기 때문에 페스탈 구조에 비해 효율적으로 설계할 수 있다. 대표적인 암호로는 AES가 있으며 AES는 현재 널리 상용되고 있다.<ref>〈[https://ko.wikipedia.org/wiki/%EB%B8%94%EB%A1%9D_%EC%95%94%ED%98%B8 블록암호]〉, 《위키백과》</ref> | SPN 구조는 암복호화 과정에서 역함수가 필요하도록 설계되어야 한다는 단점이 있지만 중간에 비트의 이동없이 한번에 암복호화가 가능하기 때문에 페스탈 구조에 비해 효율적으로 설계할 수 있다. 대표적인 암호로는 AES가 있으며 AES는 현재 널리 상용되고 있다.<ref>〈[https://ko.wikipedia.org/wiki/%EB%B8%94%EB%A1%9D_%EC%95%94%ED%98%B8 블록암호]〉, 《위키백과》</ref> | ||
+ | |||
스트림 암호는 블록 단위로 암호화·복호화되는 블록암호와는 달리 이진화된 평문 스트림과 이진 키스트림의 배타적 논리합(XOR) 연산으로 암호문을 생성하는 방식이다. 이러한 스트림 암호는 키스트림이 평문과 관계없이 생성되어 동기식으로 사용해야만 하는 동기식 스트림 암호, 키스트림이 평문 혹은 암호문의 함수관계에 의해 생성되기 때문에 복호화 시 동기가 흐트러졌더라도 스스로 동기화가 이루어져서 복호화가 가능한 자기 동기식 스트림 암호가 있다. <ref>훤히 보이는 정보보호, 〈[https://terms.naver.com/entry.nhn?docId=3432486&cid=58445&categoryId=58445 스트림 암호]〉, 《네이버 지식백과》</ref> | 스트림 암호는 블록 단위로 암호화·복호화되는 블록암호와는 달리 이진화된 평문 스트림과 이진 키스트림의 배타적 논리합(XOR) 연산으로 암호문을 생성하는 방식이다. 이러한 스트림 암호는 키스트림이 평문과 관계없이 생성되어 동기식으로 사용해야만 하는 동기식 스트림 암호, 키스트림이 평문 혹은 암호문의 함수관계에 의해 생성되기 때문에 복호화 시 동기가 흐트러졌더라도 스스로 동기화가 이루어져서 복호화가 가능한 자기 동기식 스트림 암호가 있다. <ref>훤히 보이는 정보보호, 〈[https://terms.naver.com/entry.nhn?docId=3432486&cid=58445&categoryId=58445 스트림 암호]〉, 《네이버 지식백과》</ref> | ||
이진 수열 발생기로 평문을 일련의 비트열로 취급하여 한 번에 1비트씩(혹은 바이트/워드 단위) 암호화시키는 암호 시스템. 스트림 암호는 빠르게 디자인될 수 있고 실제로 어떠한 블록 암호보다도 빠르기 때문에 무선통신 기기에 주로 사용된다. 블록 암호는 큰 블록 데이터를 사용하지만 스트림 암호는 일반적으로 평문의 작은 단위인 비트를 사용한다. <ref>it용어사전, 〈[https://terms.naver.com/entry.nhn?docId=853014&cid=42346&categoryId=42346 스트림 암호]〉, 《네이버 지식백과》</ref> | 이진 수열 발생기로 평문을 일련의 비트열로 취급하여 한 번에 1비트씩(혹은 바이트/워드 단위) 암호화시키는 암호 시스템. 스트림 암호는 빠르게 디자인될 수 있고 실제로 어떠한 블록 암호보다도 빠르기 때문에 무선통신 기기에 주로 사용된다. 블록 암호는 큰 블록 데이터를 사용하지만 스트림 암호는 일반적으로 평문의 작은 단위인 비트를 사용한다. <ref>it용어사전, 〈[https://terms.naver.com/entry.nhn?docId=853014&cid=42346&categoryId=42346 스트림 암호]〉, 《네이버 지식백과》</ref> | ||
1970년대부터 유럽을 중심으로 발달한 스트림 암호는 주기, 선형복잡도 등 안전성과 관련된 수학적 분석이 가능하고, 알고리즘 구현이 쉬워 군사 및 외교용으로 많이 사용되고 있다. 또한 구현 여건이 제약되는 이동통신 환경에서도 구현이 용이하여 이동통신 등의 무선데이터 보호에 많이 사용된다. | 1970년대부터 유럽을 중심으로 발달한 스트림 암호는 주기, 선형복잡도 등 안전성과 관련된 수학적 분석이 가능하고, 알고리즘 구현이 쉬워 군사 및 외교용으로 많이 사용되고 있다. 또한 구현 여건이 제약되는 이동통신 환경에서도 구현이 용이하여 이동통신 등의 무선데이터 보호에 많이 사용된다. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== 대칭 암호화 === | === 대칭 암호화 === |
2019년 7월 29일 (월) 10:03 판
대칭키는 정보를 암호화 할때 사용하는 키(Key)와 암호를 정보로 복호화 할때 사용되는 키(key)가 같아 양쪽 다 사용한다는 뜻에서 이 키를 대칭키라고 칭한다.[1]
개요
대칭키는 대칭 암호화 방식에서 둘 혹은 그 이상의 사용자 사이에 공듀된 단일 키를 의미한다. 대칭키를 이용하는 대칭키 암호 방식은 메시지를 암호화하고 해독하는데 동일한 키를 사용하는 암호화 방식의 한 유형이다. 이러한 정보 인코딩 방식은 정부와 군대 사이의 기밀 대화를 가능하게 하는 수십 년 간 사용되어 왔다. 현재 대칭키 알고리즘은 데이터 보안을 강화하기 위해 다양한 컴퓨터 시스템 전반에 적용되고 있다.[2]
특징
사용되는 키가 짧고 속도가 빨라서 효율적인 암호 시스템을 구축할 수 있다. 이 암호 방식은 알고리즘의 내부 구조가 간단한 치환(대치)과 전치(뒤섞기)의 조합으로 되어 있어서 알고리즘을 쉽게 개발할 수 있고, 컴퓨터 시스템에서 빠르게 동작한다. 그러나 송수신자 간에 동일한 키를 공유해야 하므로 많은 사람들과의 정보교환 시 많은 키를 생성, 유지, 관리해야 하는 어려움이 있다. 이러한 대칭키 암호 방식은 데이터를 변환하는 방법에 따라 블록 암호와 스트림 암호로 구분된다.[3] 블록 암호(block cipher)란 암호학 용어로, 기밀성있는 정보를 정해진 블록 단위로 암호화 하는 대칭키 암호 시스템이다. 만약 암호화하려는 정보가 블록 길이보다 길 경우에는 특정한 운용 모드가 사용된다.(예, ECB, CBC, OFB, CFB, CTR) 블록 암호에 대한 안전성 증명 방법으로는 선택평문공격인 차분공격(Differential Cryptanalysis)과 알려진평문공격인 선형공격(Linear Cryptanalysis)등이 있다. 블록 암호 구조에는 페스탈(Feistel)구조와 SPN구조가 있다. 페스탈 구조는 암복호화 과정에서 역함수가 필요 없다는 장점이 있지만 구현시 스왑(Swap)단계 때문에 연산량이 많이 소요 되며 암호에 사용되는 라운드 함수를 안전하게 설계해야 한다는 단점이 있다. 대표적인 암호로는 DES가 있으며 Single DES는 안전성 문제로 현재 사용하고 있지 않다. 한국에서는 개발된 암호 중에서는 페스탈 구조기반으로 설계된 SEED가 있다. SPN 구조는 암복호화 과정에서 역함수가 필요하도록 설계되어야 한다는 단점이 있지만 중간에 비트의 이동없이 한번에 암복호화가 가능하기 때문에 페스탈 구조에 비해 효율적으로 설계할 수 있다. 대표적인 암호로는 AES가 있으며 AES는 현재 널리 상용되고 있다.[4]
스트림 암호는 블록 단위로 암호화·복호화되는 블록암호와는 달리 이진화된 평문 스트림과 이진 키스트림의 배타적 논리합(XOR) 연산으로 암호문을 생성하는 방식이다. 이러한 스트림 암호는 키스트림이 평문과 관계없이 생성되어 동기식으로 사용해야만 하는 동기식 스트림 암호, 키스트림이 평문 혹은 암호문의 함수관계에 의해 생성되기 때문에 복호화 시 동기가 흐트러졌더라도 스스로 동기화가 이루어져서 복호화가 가능한 자기 동기식 스트림 암호가 있다. [5] 이진 수열 발생기로 평문을 일련의 비트열로 취급하여 한 번에 1비트씩(혹은 바이트/워드 단위) 암호화시키는 암호 시스템. 스트림 암호는 빠르게 디자인될 수 있고 실제로 어떠한 블록 암호보다도 빠르기 때문에 무선통신 기기에 주로 사용된다. 블록 암호는 큰 블록 데이터를 사용하지만 스트림 암호는 일반적으로 평문의 작은 단위인 비트를 사용한다. [6] 1970년대부터 유럽을 중심으로 발달한 스트림 암호는 주기, 선형복잡도 등 안전성과 관련된 수학적 분석이 가능하고, 알고리즘 구현이 쉬워 군사 및 외교용으로 많이 사용되고 있다. 또한 구현 여건이 제약되는 이동통신 환경에서도 구현이 용이하여 이동통신 등의 무선데이터 보호에 많이 사용된다.
대칭 암호화
대칭 암호화는 평문(plaintext)을 암호화하고 해독하는 데 동일한 키인 대칭키가 사용된다. 암호화 과정에는 사이퍼(cipher)라 불리는 암호화 알고리즘에 평문을 실행하는 것으로 구성되며, 이는 암호문을 생성한다. 암호문에 포함된 정보를 읽거나 이에 접근할 수 있는 유일한 방법은 상승하는 키를 사용하여 암호를 풀어내는 것이다. 암호 해독 과정은 암호문을 평문으로 다시 바꾸는 과정을 의미한다.[2]
대칭 암호화 시스템의 보안성은 대응하는 키를 무작위로 추측해 대입하기가 얼마나 어려운지에 달려있다. 암호화 키의 길이가 길어질수록 난이도는 높아진다. 가장 많이 사용되는 일반적인 대칭 암호화 체계는 블록 사이퍼와 스트림 사이퍼이다. 블록 사이퍼는 데이터를 사전에 정의된 사이즈로 그룹화하고, 각 블록은 상응하는 키와 대칭 알고리즘으로 암호화 된다. 스트림 사이퍼에 경우 평문 데이터 블록을 암호화 하지 않고 1비트를 증가시키는 형태이다.[2]
장점과 단점
대칭키를 사용한 암호화 알고리즘은 비대칭키 알고리즘에 비해 빠르게 암호화하고 해독하는 동시에 높은 수준의 보안성을 보여준다. 상대적으로 간결한 대칭형 시스템은 비대칭에 비해 적은 컴퓨터 전력을 필요로 한다는 것 또한 장점이다. 대칭 알고리즘의 보안성은 보안 키의 길이를 하나 비트만 증가시켜도 무차별 대입 공격을 통한 암호하 해체를 기하급수적으로 어렵게 만든다.[2]
대칭키 알고리즘은 여러 이점을 제공하지만 문제점이 하나 남아있다. 바로, 데이터를 암호화 하고 해독하는 데 사용되는 키를 전송해야 한다는 점이다. 해당 키가 안전하지 않은 접속을 통해 공유된다면, 악의적인 3자에 의해 도난당할 위험이 있다. 이와 더불어 인가되지 않은 사용자가 대칭 키에 접근하게 되면, 해당 키를 사용해 암호화된 모든 데이터 보안이 위태롭게 된다.[2]
각주
참고자료
- 재리, 〈대칭키와 비대칭키, 공유키, 비밀키〉, 《네이버 블로그》, 2019-03-22
- 〈대칭 키 암호 방식이란 무엇인가요?〉, 《바이낸스 아카데미》, 2019-04-08
같이 보기