3eung_h10n.log
로그인
3eung_h10n.log
로그인
정보보호 - 2(Cryptography - 대칭키)
박승현
·
2023년 9월 19일
팔로우
0
정보보호
0
정보보호
목록 보기
2/11
Cryptography
Symmetric encryption(대칭키)
공개키 알고리즘이 나오기전 유일한 암호 알고리즘 이었음(conventional, single-key라고도 불렸음)
A와 B가 통신하기 위해 사용하는 키를 K_ab라고 할떄 K_ab는 A와B만 알아야하고 A가 C와 통신하기 위해선 새로운 대칭키 K_ac를 새로 만들어야 함
대칭키를 생성할때 오프라인으로 직접 만나서 해야된다는 등의 문제가 있음
Symmetric key
Block cipher : 원본 파일을 고정된 크기의 블럭으로 쪼개고 각각의 블럭을 모두 암호화 함
DES, AES
Streaming cipher : 랜덤하게 1바이트씩 키를 생성해서 원본 메세지의 1바이트씩 XOR연산을 함
RC4
Caesar Cipher
알파벳 단어를 정수 키 만큼 shift해서 암호화하는 방법
알파벳의 개수인 26개만큼의 경우의 수 밖에 없어 풀기 쉬움
알파벳중 E의 사용 빈도가 제일 높기 때문에 더 풀기 쉬워짐
One time pad
A가 B에게 메세지 M을 보내는 과정에서
M은 0,1의 비트로 표현 가능
M과 길이가 똑같은 K_ab가 필요
이 값이 one time pad, A와B만 알아야 함
M과 OTP로 XOR연산을 하면 E(m) 암호화된 m이 생성되고 이 E(m)을 전송
B는 E(m)을 다시 OTP로 XOR연산을 하면 복호화가 됨
원본 메세지의 크기를 알아야하고 같은 크기의 OTP를 두명만 알도록 생성해야하는 부분에서 어려움이 있음
DES
원본 메세지 M을 64비트의 블럭단위로 쪼갬(Block cipher)
56비트의 키를 사용(56비트의 랜덤성을 가진 비트와 8비트의 체크섬 비트를 사용)
one time pad의 같은 비트의 키가 필요하다는 단점을 56비트의 고정된 키를 사용하여 개선함
원본 메세지를 64비트의 블럭으로 쪼개기 떄문에 가능
Electronic Large Message(ECB)
DES에서 64비트의 블럭이 같은 값을 가지면 암호화를 해도 같은 값이 나옴(작은 부분의 정보를 가지고 원본의 의도를 파악할 수도 있음)
Cipher Blook Chaining(CBC)
기존의 ECB의 문제를 개선한 방법
원본의 P[0]와 P[1]이 같으면 암호화한 C[0]와 C[1]도 같다는 문제를 개선한 것
암호화된 블럭을 그 다음 블럭의 암호화를 위해 사용함
같은 메세지를 같은 키를 사용해 여러면 보낼 경우에는 같은 메세지를 보내고 있다는 정보는 유출될 수도 있음(보안을 위해서 이것마저도 보호하고 싶음)
Initialization Vector사용
암호적으로는 효과가 없지만 같은 메세지를 보내도 다른값으로 함호화되게 만들어줌
Message Authentication Code(MAC)
원본 메세지가 변조되었는지 판별하는 역할
CBC 모드를 사용하면 마지막 블럭이 MAC의 역할을 해줌
Advanced Encryption Stadard(AES)
10개의 라운드 사용(16개인 DES에 비해 안정성이 높고 처리속도가 빠름)
Block cipher사용
블럭의 크기는 선택 가능
Padding
Block cipher에서 원본의 크기가 블럭의 크기와 딱 맞아 떨어지지 않으면?
맨 마지막 메세지의 모자란 바이트는 블럭이 8바이트일 경우 1~7바이트임
여기서는 딱 맞아 떨어져도 패딩을 함
Stream cipher(RC4)
1바이트의 원본 메세지에 1바이트의 스트림키를 xor연산해 암호화
대칭키와 알고리즘을 통해 원본 메세지의 n바이트에 해당하는 키를 생성(xor 연산) 해석할때에도 같은 대칭키와 알고리즘으로 n바이트의 키를 생성 이 키를 사용해 해석함(xor연산은 두번하면 원본이 나오기 떄문)
박승현
KMU SW
팔로우
이전 포스트
정보보호 - 1
다음 포스트
정보보호 - 3(Cryptography - Hash)
0개의 댓글
댓글 작성