-
현대암호 - 2Cryptography - Security/Dreamhack - Basic 2023. 4. 7. 13:26
대칭키 암호 시스템
대칭키 암호 시스템은 암호화와 복호화에 같은 키를 사용하는 암호 시스템이다
블록암호
블록 암호(Block Cipher)는 평문을 정해진 크기의 블록 단위로 암호화하는 암호이다
예를 들어 1개의 블록 안에 단어가 4개가 들어간다면 위 사진처럼 쪼개서 각각 따로따로 암호화를 진행한다
만약 평문의 크기가 블록 크기의 배수가 아니어서 균등하게 나눌 수 없다면 패딩(Padding)을 먼저 수행해 준다
패딩이란 평문뒤에 데이터를 추가해 주는 작업을 말하고 위 사진처럼 균등하게 나누어질 때까지 데이터를 추가해 준다
스트림 암호
스트림 암호(Stream Cipher)는 송신자와 수신자가 공유하는 데이터 스트림을 생성하고 이를 평문에 .XOR하는 방식이다
평문, 암호문, 스트림 순으로 P, C, S 라고 하면 복호화는 위와 같이 이루어지게 된다
송신자와 수신자가 평문 길이만큼의 스트림을 매번 공유한다면 공격자는 스트림을 몰라 암호문을 복호화하지 못하게 된다.
하지만 스트림을 안전하게 공유한다면 스트림을 공유하는 채널로 평문을 공유하면 되니 결국 암호화가 필요하지 않게 된다
그래서 보통 수신자와 수신자는 스트림대신 시드(Seed)라 불리는 작은 값을 공유하고, 사전에 합의된 함수의 인자로 넣어 스트림을 각자 만드는 방식을 사용한다
스트림 암호는 단순한 연산으로만 구현이 되어 임베디드기기나 속도가 중요한 환경에서 제한적으로 사용이 된다
대칭키 암호 시스템의 장점과 단점
장점
공개키 암호 시스템에 비해 속도가 빠르다
단점
그룹 내에 여러 명이 있을 경우 2 사람마다 서로 다른 키를 생성해서 사용해야 한다
이후에 새로운 상대와 통신할 때마다 추가적으로 키를 생성해줘야 한다
공개키 암호 시스템
송신자는 수신자의 공개키로 데이터를 암호화하여 수신자에게 전공하고, 수신자는 자신의 비밀키로 복호화한다
누구에게나 공개되어 있는 공개키로 누구나 수신자에게 암호문을 보낼 수 있다
하지만 개인키는 수신자만 알고 있기에 공격자는 중간에 암호문을 도청하여도 복호화를 할 수 없게 된다
공개키 암호 시스템의 장점과 단점
장점
그룹 내에서 사람들은 공개키와 비밀키 2개를 가지고 있고 공개키인 1개만 공개하면 되어 n명의 사람이 있다면 2n개의 키가 필요하다
또한 한번 키를 만들면 새로운 상대와 통신을 할 때 추가적으로 키를 만들어 줄 이유가 없어진다
단점
공개키 암호 시스템은 복잡한 연산이 필요해 연산의 속도가 느려진다
안전성을 제공해 주려면 대칭키보다 길이가 길어져야 한다
암호의 기능
1. 기밀성
2. 무결성
3. 인증
4. 부인 방지
Dreamhack - Cryptography 공부내용 정리
관련된 문제는 사이트에 수록되어 있습니다
728x90'Cryptography - Security > Dreamhack - Basic' 카테고리의 다른 글
AES - 2 (0) 2023.05.02 AES - 1 (0) 2023.05.01 현대 암호 - 1 (0) 2023.04.07 고전암호 - 3 (0) 2023.04.06 고전암호 - 2 (0) 2023.04.05