본문 바로가기
Security

전자서명 (Digital signature)

by 개폰지밥 2019. 7. 12.
반응형

| 디지털 서명

| 나타난 배경

"변경", "거짓 행세", "부인" 방지하기 위해 나옴

 

| 메시지 인증 코드에서 디지털 서명으로

메시지 인증 코드는 부인방지에는 도움이 되지 않기 때문에 나온 것이 디지털 서명이다.

 

| 서명이란?

서명이라 하면 메일의 마지막 부분에 붙이는 서명이도 있고 디지털 서명도 있다. (또한 유명인이 종이에 쓴 것은 사인이라고 부른다.)

메일의 마지막 부분에 붙이는 문자열도 서명으로 부르긴 하지만 메일의 서명은 고정적인 문자열이다.

여기서 말하는 서명은 메시지 마다 계산에 의해 만들어내는 자신이 아니면 계산할 수 없는 수치이다.

그렇기 때문에 디지털 서명은 메시지 마다 다른 값이 된다.

 

| 디지털 서명의 검증과 서명이란?

디지털 서명이라는 기술에는 아래의 두 가지 행위가 등장한다.

1) 메시지의 서명을 작성하는 행위

2) 메시지의 서명을 검증하는 행위

(* 디지털 서명은 전자 서명 혹은 간단히 서명(signature)이라 부르기도 한다.

 

| 메시지 서명을 작성하는 행위는 무엇인가?

서명을 작성하는 행위는 메시지의 송신자 앨리스가 수행하는 것이다. 간단히 메시지에 서명한다라고도 한다.

서명 작성은 나는 이 메시지의 내용을 인정한다 라는 표시로서 메시지의 기초로 디지털 서명 값을 계산하는 행위이다.          

 

| 메시지 서명을 검증하는 행위는 무엇인가?

서명을 검증하는 행위는 통상적으로 메시지의 수신자 밥이 수행하지만 메시지를 검증하는 제3자가 수행하는 경우도 있다. 서명의 검증은 이 메시지 서명은 분명히 앨리스의 것인지를 조사하는 행위이다.

서명의 검증 결과는 성공이나 실패 중 하나이다.

성공은 분명히 이 서명은 앨리스의 것이라는 것이고, 실패는 이 서명은 앨리스의 것이 아니라 라는 것을 의미한다.

앨리스는 서명용 키를 사용해서 메시지 서명을 작성한다. 수신자 밥은 검증용 키를 사용해서 메시지를 검증한다.

 

디지털 서명에서는 서명용 키와 검증용 키가 나누어져 있어서 검증용 키로 서명을 작성할 수 없다.
또한 서명용 키는 서명을 하는 사람만이 가지고 있지만, 검증용 키는 서명을 검증하는 사람이라면 누구라도 가질 수 있다.

 

실은 디지털 서명은 공개 키 암호와 밀접한 관계가 있다. 한 마디로 말하면 디지털 서명은 공개 키 암호를 역으로 사용함으로써 실현할 수 있다.

 

[정리]

  개인 키 공개 키
공개 키 암호 수신자가 복호화에 사용 송신자들이 암호화에 사용
디지털 서명 서명자가 서명 작성에 사용 검증자들이 서명 검증에 사용
키는 누가 갖는가? 개인이 갖는다. 필요한 사람은 아무나 가지고 있어도 된다.

 

| 공개 키 암호와 디지털 서명

디지털 서명에서도 마찬가지로 공개 키와 개인 키의 키 쌍을 사용한다. 그러나 두 키의 사용 방법은 공개 키 암호와는 반대가 된다. 메시지를 개인 키로 암호화하는 것이 서명 작성에 해당되고, 그 암호문을 공개 키로 복호화하는 것이 서명 검증에 해당한다.

즉 공개 키 암호를 역으로 사용하고 있는 모습으로 이해를 해야한다.

 

마지막으로 암호 알고리즘과 키의 이해

지금까지 우리가 본 암호 알고리즘에서는 항상 키를 사용하였는데 왜 키를 사용하는 것일까?

| 암호 알고리즘과 키를 분리하는 이유

지금까지 암호를 소개할 때 암호 알고리즘은 동그라미이고, 키는 세모세모 입니다.와 같은 표현을 사용하였다. 즉 의식적으로 암호 알고리즘과 키를 나누어서 이야기한 것이다.

암호 알고리즘과 키

암호명 암호 알고리즘
시저 암호 평문의 각 문자를 지정한 문자 수만큼 평행 이동한다. 평행 이동하는 문자 수
단일 치환 암호 치환표에 따라 알파벳을 변환한다. 치환표

알고리즘 안에는 변경 가능한 부분이 포함되어 있고 암호 알고리즘 안의 변경 가능한 부분이 키에 해당한다. 암호 알고리즘과 키를 모두 정함으로써 암호화가 정확히 정해지는 것이다.

만약 암호화를 행할 때마다 새로운 암호 알고리즘을 만들어야만 한다면 이것은 매우 곤란 한일이다. 우리는 한 번 개발한 암호 알고리즘을 반복해서 사용하기를 원한다.

암호 알고리즘과 키를 나누는 의미가 바로 여기에 있다. 암호 알고리즘을 몇 번이고 반복해서 사용하고 싶다. 그러나 같은 암호 알고리즘과 동일한 키를 반복해서 사용하면 해독될 가능성이 높아진다. 그러므로 암호 알고리즘에 변경 가능한 부분을 준비해 두고 통신을 할 때마다 바꾸는 것이다. 그것을 가능케 하는 것이 바로 키이다.

암호 알고리즘은 반복해서 사용하고 키는 매회 변경한다.

 

[출처] 알기 쉬운 정보보호 개론 3판 흥미로운 암호 기술의 세계

반응형

'Security' 카테고리의 다른 글

CA  (0) 2020.07.10
Certificate(인증서)  (0) 2019.10.02
Encrypt virtual disk(가상 디스크 암호화)  (0) 2019.09.18
security knowledge (보안 상식)  (0) 2019.02.27
Integrity encryption technology  (0) 2019.02.26

댓글