Crypto (1)

임정환·2023년 6월 7일
0

현대 보안의 가장 근원적인, 암호학에 대해 알아보자
암호화 알고리즘은 알려져 있다고 가정한다.

고전 암호학

카이사르 암호

아주 간단한 알고리즘을 가진 암호이다. 각 문자열에서 임의로 지정된 K만큼 문자를 이동시킨다.

전치 암호 ( Transposition Cipher )

각 문자를, 임의의 문자로 전치한다. N!의 경우의 수가 존재

치환 암호 ( Substitution Cipher)

암호학의 역사

Vienre Cipher

평문 P와 K를 이용하여 암호화한다. 만일 K<P 일경우 그만큼 K를 반복해서 늘려준다.

one-time pad

plaint text와 key를 xor 하여준다. 이후, 한번만 사용하고 key를 폐기한다.
만일 key를 여러번 사용할 수록, 공격자는 plaintext를 조합하여 유추하기 쉬워진다. 미리 key가 공유되어야 한다는 단점이 존재한다.

Hash Crypto

무한한 input을 받고 fixed output을 생성하는 암호화 해시함수

암호화 해시 함수의 성질

  • 압축성 : 어떠한 Input에 대해서도 고정된 output
  • 효율성 : 주어진 x에 대한 h(x)의 계산이 편리해야한다
  • 단방향성 : y=h(x)에 대해 y를 통해 x를 계산할 수 없어야한다
  • 약 충돌 저항성 : x와 h(x)가 주어졌을 때, h(y) = h(x)인 y를 찾기 힘들다
  • 강 충돌 저항성 : 어떠한 x와 y를 통해, h(x)=h(y)를 찾기 힘들다

생일 역설

N명의 사람들이 방에 있을때, 최소한 한 쌍의 생일이 충돌하는 확률은?
무한한 사람(=N)과 유한한 생일(=365일) 이므로 암호화 해시 함수 문제로 대입할 수 있다. 굉장히 낮은 확률이라 예상되지만, 사실 높은 확률을 가지고 있다!
대략, 23명 이상이 존재할 경우 50프로 확률로 생일이 충돌한다(!)
이 생일 역설이 시사하는 점은, 암호화 해시 함수의 output이 충분한 길이의 bit를 확보해야 충돌 발생 확률을 낮출 수 있다는 점이다.

Crypto Hash Functions

  • MD5
  • SHA - 1
  • SHA - 2
  • SHA - 3

많은 암호화 해시 함수가 존재한다. 그 자세한 내용까지 다루기엔, 너무 깊다고 생각되므로 일단 넘어가도록 하겠다

암호화 해시 함수의 응용

  • 메세지 무결성 인증

해시 함수의 특징은, 단 1비트의 차이에도 output이 전혀 달라진다는 점이다. 우리는 메세지를 송신할 때 메세지의 해시값도 같이 송신함으로서 메세지의 무결성을 체크할 수 있다.

  • 스팸 메일 방지

블록 체인에서 쓰이는 기법과 동일 하다. 나한테 메일을 보내기 위해서는 , 메세지와 현재 시각 그리고 논스값을 해쉬하여 특정 target number보다 낮을 경우 송신할 수 있다. 한 사람에게 메세지를 송신하는 것은 조금 수고스러운 일이겠지만 spam메일의 경우 대량으로 송신을 하게 된다. 즉, spam메일 송신자는 보내고자 하는 모든 사람에 대해 해쉬값을 계산해야 하므로 이는 굉장히 어려운 일이 된다.

  • 온라인 경매 시스템

자신이 제시한 경매값의 해시값을 제출한다. 이후, 경매가 끝난 후 자신의 제시값과 해시값을 비교하여 무결성을 체크하도록 한다.

profile
CS 박제

0개의 댓글

관련 채용 정보