전체 글 289

HMAC 인증 (Hashed Message Authentication Code)

자.. 이번엔 HMAC에 대해 알아봅시다. 그래.. 비밀키를 이용한 해시함수를 사용한 MAC 인증 이게 HMAC이라고 했다. 일방향 해시함수를 이용해서 메세지 인증코드를 구성하는 방식 중 하나인데, 수정하지 않고 쓸 수 있는 해시 함수들을 만든다. 특히 소프트웨어에서 잘 돌아가고 코드를 무료로 제공하고 널리 쓰일 수 있도록 하기 위해 고안되었다. 딱히 정해진 해시함수를 사용하는 것은 아니지만 주로 SHA-1 을 사용하는데, 이 SHA-1 알고리즘이 MAC을 위해서 고안된 것이 아니기 때문에 바로 사용하는 것이 불가능하다. 그래서 SHA-1을 MAC으로 사용할 수 있도록 해주어야 한다. 일단 K+ 저놈은 키 값이다. 그냥 키가 아니라 패딩문자 0으로 [키][padding] 이렇게 채워져 있는 것. i pa..

해시 함수 (HASH Functions)

암호학에서의 해시함수를 알아보자. 해시함수가 고안된 가장 큰 목적은 "각 값들의 고유의 값을 부여해주기 위해서" 즉, 주민등록증 만들어주려고 생긴거다. 해시함수의 조건에는 여러가지가 있는데 하나씩 한번 따져보자. 1. 해시함수는 어떠한 크기의 원문 메세지도 입력이 가능해야 한다. 2. 해시함수는 항상 고정된 크기의 메세지를 출력해야 한다. 3. 해시함수 내부 과정에서 계산하는 양이 많으면 안된다. (즉, 입력값에 대한 계산이 간단해야 한다.) 4. Hash(x) = y 라고 했을 때, y를 가지고 역으로 x를 찾아낼 수 없다. 5. Hash(x) = Hash(t) 를 만족 할 때, x != t 를 허용하면 안된다. 뭐 이정도 조건이 있다. 가장 간단한 XOR연산을 이용한 HASH함수를 함 보자. 뭐 이래..

메세지 인증 (Message Authentication)

이번에는 인증에 관련된 내용을 공부해봅시다. 인증에 몇가지 요구사항이 있다. 메세지에는 명백한 송신지, 송신자가 있어야 한다. 메세지는 수정되어선 안된다. 가끔 메세지는 특정 시간 또는 주기적으로 전송된다. 메세지 인증에 대해 본격적으로 알아봅시다. 1. Authentication Using Conventional Encryption 다들 아는 알려진 암호화 알고리즘을 이용하여 인증을 하는 것이다. 오로지 송신자와 수신자만이 키를 공유한다. 에러 검출 코드, 타임 스탬프 그리고 시퀀스 넘버 등의 필드를 추가해 보낼 수 있다. 2. Message Authentication without Message Encryption 암호화 없이 메세지 인증을 하는 것이다. 각 메세지 마다 인증 테그가 생성되고 첨부된다..

공개키의 분배 (Public-Key Distribution)

이번엔 공개키의 분배에 대해 알아보자. 공개키 같은 경우는 다른 나쁜놈이 송신자로 속여서 공개키를 전송하면 문제가 생긴다. 이말인 즉슨, 공개키 분배에 문제점이 생긴다 이말이다. 그래서 키 분배 방법이 여러가지 존재한다. 1. Public announcement (공개키 공개 발표) 2. Public available directory (공개적으로 사용 가능한 디렉토리를 이용한 분배) 3. Public-key authority (공개키 기관) 4. Public-key certificates (공개키 인증서) 5. Diffie-Hellman Key Distribution (Diffie-Hellman 키 분배) 하나씩 알아봅시다. 1.Public-key announcement (공개키 공개 발표) 자신의 공..

RSA (Rivest, Shamir, and Adleman) 알고리즘

RSA(Rivest, Shamir, and Adleman) 알고리즘에 대해 알아봅시다. 이름에서 풍겨져 오다 시피, Rivest, Shamir, and Adleman 3명이서 뚝딱뚝딱 만들었다. (1978) 공개키 암호 알고리즘 중 하나로, 역시나 암호, 디지털 서명 모두 사용가능하다. RSA에서는 평문, 암호, 키 모두 숫자이다. 가장 쉽게 설명하자면 이렇다. 평문을 나타내는 숫자에 E를 제곱하여 N 모듈러 연산한다. 그렇다면 여기서 키 쌍은 E와 N은 무슨 역할을 할까요. E와 N이 뭔지만 알면 암호문이 짠하고 나타난다. 그럼 (N,E)은 당연히 공개키겠지? 그르타 공개키가 맞다. 그리고 반대로 D와 N만 알면 복호화가 가능하다. 그럼 개인키는 (N,D)가 될 것이다. N은 엄청나게 큰 숫자중 소수(..

반응형