암호화
암호화
복호화
암호화 방식에는 2가지 방식이 있다.
단방향 암호화
단방향 암호화는 복호화할 수 없는, 암호화만 가능한 암호화 방식을 말한다.
- 단방향 암호화의 경우 한번 암호화한 경우 복호화할 수 없음
- 정보의 '무결성(integrity)'에 초점이 맞춰진 암호화 방식
- '해시(hash)': 단방향 암호화를 표현하는 다른 방법
해시
- 사전적 의미: '다지다', '으깨다'
- 어떤 데이터를 '해시'하면 해시 값이 나오는데, 해시 값을 사용해 원본 데이터로 되돌릴 수 없다.
- 식재료를 다지거나 으깨면 원래 상태로 되돌릴 수 없는 상태가 되는 것과 같다고 볼 수 있다.
해시를 사용하는 가장 중요한 이유는 정보의 '무결성(integrity)' 때문이다.
- 어떤 정보가 훼손되거나 조작되지 않았는지 확인하기 위해 해시를 사용한다.
해시 사용 사례(웹에서 파일을 다운로드하는 경우)
- 다운로드 과정에서 파일이 조작되거나 훼손되었을 수도 있다.
만약 다운로드한 파일이 조작되거나 훼손되었다면 그 파일은 신뢰할 수 없는 파일이다.
다운로드한 파일이 원본 파일과 같다는 것을 확신하기 위해 해시를 사용한다.
다운로드한 파일을 해시 알고리즘에 넣어 얻은 해시 값을 원본 파일의 해시 값과 비교하면 된다.
- 같다: 다운로드한 파일이 원본 파일과 같은 파일이다.
- 다르다: 다운로드한 파일이 조작되었거나 훼손되었다.
대표적인 해시 알고리즘
양방향 암호화
양방향 암호화는 암호화와 복호화 모두 가능한 암호화 방식을 말한다.
- 정보의 '기밀성(confidentiality)'에 초점이 맞춰진 암호화 방식
- 2가지 방식이 존재
대칭키 방식
대칭키 방식은 암호화할 때 사용하는 키를 복호화할 때도 그대로 사용하는 방식을 말한다.
- 대칭키를 사용해 암호화한 암호문과 암호화 시 사용한 대칭키를 전달한다.
- 대칭키가 있어야 암호문을 복호화할 수 있는 방식이기 때문이다.
- 비대칭형 방식에 비해 키 사이즈가 작고 알고리즘 구조가 간단하여 연산속도가 빨라 암호 시스템을 효율적으로 구축할 수 있다는 장점이 있다.
- 대표적인 대칭키 방식의 암호 알고리즘
대칭키 방식의 문제점
대칭키 방식의 문제점은 대칭키가 제3자에 의해 탈취되었을 때 발생하는 보안 문제가 있다.
대칭키 방식의 보안 문제 시나리오
- A가 B에게 대칭키로 암호화한 암호문을 대칭키와 함께 전달한다.
- 전달 과정에서 제3자가 A가 전달한 암호문과 대칭키를 탈취한다.
- 제3자는 A가 전달한 암호문을 대칭키를 사용해 복호화할 수 있다.
비대칭키 방식
비대칭키 방식은 암호화와 복호화에 서로 다른 키를 사용하는 방식이다.
- '공개키 방식'이라고도 한다.
- 비대칭키 방식의 키는 2개가 있다. 이 2개의 키를 '키 페어'라고 한다.
- 공개키(public key)
- 비공개키(private key)
- 대칭키 방식에 비해 복잡한 방식이기 때문에 연산이 복잡해 속도가 느리다는 단점이 있다.
- 대표적인 비대칭키 방식의 암호 알고리즘
공개키로 암호화하는 경우 비공개키를 사용해 복호화해야 한다.
비공개키로 암호화하는 경우 공개키를 사용해 복호화해야 한다.
- 비공개키로도 암호화할 수 있지만 공개키를 공개해 비대칭키 방식의 암호화가 진행되기 때문에 공개키로 암호화한다.
비대칭키 방식으로 대칭키 방식 보완하기
비대칭키 방식을 사용하면 대칭키 방식의 문제점을 보완할 수 있다. 대칭키 방식의 보안 문제 시나리오를 비대칭키 방식으로 보완한다면 다음과 같다.
- A가 공개키와 비공개키를 생성한다.
- A가 공개키를 인터넷에 공개한다. 아무나 A의 공개키를 알 수 있다.
- B가 A의 공개키를 얻는다. (제3자도 A의 공개키를 얻을 수 있다.)
- B가 A의 공개키를 사용해 암호화한다.
- B가 암호문을 A에게 전달한다.
전달 과정에서 제3자가 B의 암호문을 탈취한다.
- A는 B의 암호문을 전달 받고 자신의 비공개키를 사용해 B의 암호문을 복호화한다.
제3자는 B의 암호문을 탈취했지만 A의 공개키로 암호화된 암호문을 복호화할 수 없다. A의 비공개키를 모르기 때문이다.
공개키로 암호화한 암호문은 비공개키로만 복호화할 수 있다. 비공개키를 알면 암호문을 복호화할 수 있기 때문에 비공개키가 탈취되지 않도록 신경써야 한다.
참고