- 암호화 & 복호화
- 암호화 : 평문(해독 가능한 텍스트)을 암호문으로 변환하는 과정
- ex) “12345” → 암호화 → 암호문(”ads5gjsk!asfasdf”)
- 복호화 : 암호문을 평문으로 변환하는 과정
- ex) 암호문 → 복호화 → 평문(”12345”)
- 암호화의 종류
- 단방향 암호화 : 암호화 후 복호화를 할 수 없는 것이 특징
- ex ) 사용자 비밀번호. 사용자가 입력한 비밀번호를 암호화하여 db에 저장이 될때, 모든 접근자는 암호화 된 코드를 다시 평문으로 볼 수 없다. 이는 해킹이 되어도 복호화가 매우 힘들다
- 해쉬 방식이 대표적
- 해쉬 함수: 해쉬 함수는 임의의 길이의 데이터를 입력받아 일정한 길이의 비트열로 반환 시켜주는 함수로 입력값의 길이가 달라도 출력값은 언제나 동일한 길이로 반환되며 동일한 값이 입력되면 언제나 동일한 출력값을 보장하는 함수를 의미한다.
- ex) MD5 encrypt : key 필요없고 , 암호화 속도 빠르다 보안성 부족
- 양방향 암호화 : 암호화와 복화화 모두 가능한 것이 특징
- ex) 이메일 , 번호 또는 전자 서명. 이와 같이 재사용성이 있는 정보는 암호화 , 복호화 모두 이루어져야 한다.
- 대칭키, 비대칭키 방식이 대표적
- 양방향 알고리즘
- 대칭형(비밀키 암호): 암호화 , 복호화 시 모두 동일한 키를 사용
- 비대칭형(공개키 암호) : 암호화, 복호화에 서로 다른 키를 사용
대칭형(비공개키 암호) 알고리즘
- 암호화 , 복호화에 서로 동일한 키가 사용되는 암호화 방식으로 키를 비공개하는 것이 특징이다. 속도가 빠르다는 장점이 존재하지만 키 배송 위험성이 존재해 송신측에서 수신측에 암호키를 전달하는 과정에서 키가 노출된 우려가 있다는 단점이 존재한다. 대표적으로 AES존재
- 대게 암호화 알고리즘이라고 하면 이 알고리즘을 가리킨다. 현재 가장 보편적으로 쓰이는 암호화 방식은 현 미국 표전 방식은 AES로 128 ~256비트 키를 적용할 수 있어 보안성이 뛰어나면 공개된 알고리즘이라 누구나 사용 가능하지만 키 배송과정에서 털리게 되면 아무리 뛰어난 암호화 알고리즘을 사용해도 속절없이 평문이 드러나게 된다. 이런 키 배송문제를 해결하기 위해 타나난 방식이 비대칭형 암호이다.
비대칭형 ( 공개키 암호 ) 알고리즘
- 암호화 , 복호화에 서로 다른 키가 사용되는 방식으로 하나의 키는 공개키로 사용하는 것이 특징이다. 키 배송문제를 차단해 안정성이 높지만 대칭키 방식에 비해 느리다. 대표적으로는 RSA가 있다.
- RSA : 공개키 암호 시스템의 하나로 암호화뿐만 아니라 전자서명이 가능항 최초의 알고리즘으로 주로 적은양의 데이터나 전자서명에 사용합니다. 대칭키인 DES, AES 보다 속도가 느리기 때문에 메세지 암호화에는 쓰이지 않고 주로 키를 암호화하는데에 사용된다.
- public key for encrypt (외부 공용), private key for decrypt (내부 용)
- RSA : 공개키 암호 시스템의 하나로 암호화뿐만 아니라 전자서명이 가능항 최초의 알고리즘으로 주로 적은양의 데이터나 전자서명에 사용합니다. 대칭키인 DES, AES 보다 속도가 느리기 때문에 메세지 암호화에는 쓰이지 않고 주로 키를 암호화하는데에 사용된다.
- 암호화를 하면 하나의 키 쌍이 생기고, 이 두 개의 키는 수학적으로 밀접한 관계를 가지게 된다. 두개의 키를 각각 A키 ,B키라고 A키로 암호화한 암호문은 B 키로만 복호화 할 수 있고, B키로 암호화 한 암호문은 A키로만 복호화 할 수 있다. 이중 하나의 키만 비밀로 하고( = 비밀키 , 개인키) 다른 하나의 키는 누구에게 공개해도(= 공개키) 가능한 키가 된다. 하지만 매우 느리기 때문에 현실적으로 비대칭형 암호를 이용해 대칭형 암호의 키를 배송하고, 실제 암호문은 대칭형 암호를 사용하는 식으로 상호 보완적으로 이용하는 것이 일반적이다.
'CS > 보안' 카테고리의 다른 글
OAuth 2.0 (Open Authorization) (0) | 2023.03.06 |
---|---|
JWT (JSON Web Token) (0) | 2023.02.15 |