IT/암호학 4

[Hash Function, MDC, MAC, Digital Signature]

해시함수 란? 일반적인 양방향 암호기법 (대칭키, 공개키 암호기법 등)과 달리, 단방향 암호기법이며, key를 사용하지 않는다. - 복호화가 사실상 불가능함을 의미. 입력으로는 임의의 크기가 들어갈 수 있지만, 출력은 크기가 고정되어 있다. 암호학적 관점에서 안전한 해시함수의 성질은 아래와 같다. (H: 해시함수) 1. 역상 저항성: H(x)가 주어졌을 때, x를 찾기 어렵다. 2. 제2 역상 정항성: x가 주어졌을 때, H(y) = H(x)인 y를 찾기 어렵다. 3. 충돌 저항성: H(x) = H(y)인 (x, y) 쌍을 찾기 어렵다. 이러한 암호학적 해시함수의 설계 방식으로는 Merkle-Damgard 구조가 있다. (f: 압축 함수) f_i = f(m_i, f_i-1) (i = 2~n) MDC (M..

IT/암호학 2023.12.31

[ElGamal] in Public-key cryptosystem

수식 입력이 번거로워서 수식 표현이 좀 매끄럽지 못합니다. 특히 주의해서 보실 것: 예를 들어 a의 역원인 경우, a역 이라 표현했습니다. 키생성 public key: (e1, e2, p)이고, private key: d이다. 큰 소수 p 선택 1 ≤ d ≤ (p - 2) 범위에서 임의의 d 선택 (Z_p)*에서 원시근 e1 선택 e2 ≡ e1^a mod p 암/복호화 암호화 임의의 r 선택 c1 ≡ e1^r mod p c2 ≡ (m * e2^r) mod p 최종 암호문은 (c1, c2)이다. 복호화 m ≡ c2 * (c1^a) mod p 취약점 알려진 평문 공격 동일한 r을 이용하면 알려진 평문 공격에 위험해진다. 공격자가 m, c1, c2, c1', c2'을 알고 있을 때, (또한, m, m'은 같은..

IT/암호학 2023.12.27

[RABIN] in Public-key cryptosystem

수식 입력이 번거로워서 수식 표현이 좀 매끄럽지 못합니다. 특히 주의해서 보실 것: 예를 들어 a의 역원인 경우, a역 이라 표현했습니다. 키 생성 public key: n이고, private key: (p, q)이다. 서로다른 두 소수 p, q (4k+ 3 형태)를 선택한 뒤, n을 얻는다: n = p * q 암호화 c ≡ m^2 mod n 복호화 먼저, c1 ≡ c mod p, c2 ≡ c mod q를 계산한다. 이를 이용하여, a1 and a2 ≡ +- c1^(p+1 / 4) mod p, b1 and b2 ≡ +- c2^(q+1 / 4) mod q를 계산한다. 여기서, a1 또는 a2, 그리고 b1 또는 b2 중 하나씩 고르는 경우의 수는 2*2 = 4가지이므로, m = p * (p역 mod q) ..

IT/암호학 2023.12.27

[RSA] in Public-key cryptosystem

수식 입력이 번거로워서 수식 표현이 좀 매끄럽지 못합니다. 특히 주의해서 보실 것: 예를 들어 a의 역원인 경우, a역 이라 표현했습니다. 키 생성 public key: (e, n)이고, private key: d이다. 생성 단계 p, q 선택: p != q, p와 q는 소수 n 계산: n = p * q psi(n) 계산: psi(n) = (p - 1)(q - 1) e 선택: 1 < e < psi(n) - 1이며 psi(n)과 서로소 d 계산: d ≡ e역 mod psi(n) 암/복호화 암호화 c ≡ m^e mod n 복호화 m ≡ c^d mod n 효율적인 복호화 CRT를 활용한다. 즉, c^d mod n을, 아래와 같이 나누어서 하는 것이다. 먼저, m1 ≡ c^d mod p와 m2 ≡ c^d mod..

IT/암호학 2023.12.27