[컴퓨터보안] 14강. 해시함수 및 전자서명

Donghun Seol·2022년 11월 9일
0

학습하기

해시함수

개념

  • 임의의 길이의 입력 데이터를 고정된 길이의 해시코드로 대응시키는 함수

일방향 함수

  • 공개키 암호의 기반문제도 일방향 함수였음
  • 출력값으로 입력값을 알아내기는 매우 어려운 함수
  • 일방향 함수의 성질을 갖는 해시함수가 암호학적으로 안전한 해시함수

해시함수의 응용 분야

메시지 인증 - HMAC

전자서명

의사 난수 생성기(PRNG)

해시함수의 조건

임의의 크기의 입력 데이터에 적용 가능

일정한 길이의 출력

해시코드 계산(순방향)이 쉬울 것

주어진 해시코드에 대해 원래의 데이터를 구하는 것이 계산상 실행 불가능 (preimage resistance)

  • 약한 일방향성
  • 출력값으로 입력값을 찾는 것이 어렵다는 의미
  • DB에 저장된 해시값으로 실제 암호를 파악하지 못하게 하는 성질

주어진 입력 데이터에 대해 같은 해시코드를 생성하는 또 다른 데이터를 구하는 것이 계산상 실행 불가능 (second preimage resistance)

  • 강한 일방향성
  • 특정 입력이 주어졌을 때 같은 결과를 내는 또 다른 입력을 찾는 것
  • MAC를 탈취해서 변조된 메시지를 가지고 동일한 서명을 만들어내지 못하게 하는 성질

동일한 해시코드를 생성하는 두 가지 입력데이터를 구하는 것이 계산상 실행 불가능

  • 해당 해시 함수에 대해서 해시 충돌을 일으키는 두가지 입력 데이터를 찾는 것이 어렵다
  • 위의 일방향성들은 특정 데이터에 대해 갖는 성질이다.
  • 이 특성은 해시함수 자체에 대해 부과하는 제약조건이다.

해시 알고리즘의 종류

블록 암호 알고리즘에 기초한 해시 알고리즘

  • 이미 존재하는 안전한 블록 암호를 이용
  • 속도가 느림

모듈러 연산을 이용

  • 속도가 느려 사용 영역이 제한적
  • 따라서 실제로 전용 해시 알고리즘을 주로 활용한다

전용 해시 알고리즘

MD4(Message Digest 4)

  • 대부분의 전용 해시 알고리즘의 기본 모델
  • 128비트의 해시코드 생성

MD5

  • MD4 보다 보수적으로 설계
  • 128비트 해시코드 생성
  • 충돌저항성과 일방향성에 문제가 있어 미사용 권장

SHA-1(Secure Hash Algorithm-1)

  • 1995년 발표된 표준 해시 알고리즘
  • 264 비트보다 작은 크기의 입력 데이터에 적용 가능
  • 160비트 해시코드 생성
  • 조금씩 취약성이 드러나고 있음

SHA-2, SHA-3

  • 현재 널리 사용되고 안전한 표준 해시 알고리즘
  • 표준 해시 알고리즘으로 추가
  • 해시코드의 크기에 따라 sha-224, sha-256, sha-512 존재

전자서명

개념과 효력

  • 메시지를 보낸 사람의 신원이 진짜임을 증명
  • 전달된 메시지의 원래 내용이 변조되지 않았음을 보증
  • 수기서명과 동일한 효력을 가짐
  • 메시지의 암호화 여부와 관계없이 사용됨

전자서명의 장점

  • 쉽게 전송가능(작은 비트수)
  • 쉽게 부인할 수 없음(부인방지를 위한 검증 가능)
  • 타인이 흉내낼 수 없음
  • 타임스탬프가 유지됨

인증서

  • CA의 전자서명이 담겨 있음
  • 이를 통해 인증서의 진위를 판별가능

전자서명의 요구조건

  • 서명은 원문 메시지에 의존하는 비트 패턴
  • 송신자만의 고유정보를 사용해야 함
  • 생성 및 검증이 쉬워야 함
  • 위조는 계산적으로 불가능해야 함
  • 전자서명의 복사본을 저장소에 쉽게 보관할 수 있어야 함

공개키 암호를 사용하면 위 조건을 충족할 수 있다.

전자서명의 동작원리

서명

  • 개인키와 해시함수를 활용함
  1. 메시지를 해싱하여 해시코드로 만든다.
  2. 해시코드를 개인키로 암호화하여 전자서명을 만든다.
  3. 메시지원문과 전자서명을 함께 송신한다.

검증

  • 공개키와 해시함수를 활용함
  1. 수신한 메시지를 해싱하여 해시코드1을 만든다.
  2. 전자서명을 공개키로 복호화하여 해시코드2를 만든다.
  3. 해시코드 1, 2가 동일하면 유효한 전자서명이다.
  4. 일치하지 않으면 메시지가 변조되었거나, 서명자의 신원이 불일치한 것.

RSA, ElGamal, ECC

  • 위의 절차는 RSA 알고리즘이 적용된 전자서명의 절차
  • 이산대수를 활용한 ElGamal, ECC는 암/복호화 절차가 다르다.

전자서명 기법의 종류

ElGamal

  • 이산대수 문제에 기반을 둔 공개키 암호방식 이용

Schnorr

  • 이산대수 문제에 기반을 둔 암호방식

전자서명 표준

세 가지 기법으로 구성

  • DSA : ElGamal 또는 Schnorr 기반
  • ECDSA : 타원곡선 이산대수 암호 기반
  • RSA : 암복호화 공식이 동일해 단순함
profile
I'm going from failure to failure without losing enthusiasm

0개의 댓글