728x90

암호화 6

Hash Function의 특징과 용도

지난 글에서 서명검증을 다루면서 서명검증에서 Hash 알고리즘이 언급되었다. 그래서 Hash에 대해 정확히 알아볼 필요가 있어서 이번에는 Hash에 대해서 다뤄보려고 한다. Hash Function(이하 Hash)란...? 임의의 길이의 데이터를 고정된 길이의 데이터로 변환한 값을 Hash라고 한다. Hash는 주로 Checksum(체크썸)에 사용되는 단방향 함수(출력값으로 입력값을 유추하지 못함)인데 암호 알고리즘들이랑 다르게 Hash는 데이터의 위변조가 있는지 없는지 무결성을 검증하기 위해서 사용한다. 그래서 Hash의 경우 특정 Message를 보낼 때 Hash 값을 같이 보내게 되는데 이 Message의 위변조가 일어났는지 확인을 하기 위한 용도로 사용된다. 예를 들어 안녕하세요 라는 messag..

Crypto 2024.04.01

CCM(Counter with CBC-MAC) 과 GCM(Galois / Counter Mode)의 차이

우선 CCM과 GCM은 MAC의 종류중 하나이기 때문에 MAC이 무엇인지 알아보도록 하자. MAC(Message Authentication Code)은 메시지 인증에 사용하는 데이터이다. MAC의 경우에는 기밀성을 제공하지 않기 때문에 메시지가 외부에 노출 될 수 있다. 하지만 MAC을 통해 무결성과 신뢰성을 보장할 수 있다. 다음으로 CTR이 무엇인지 알아야 한다. CTR의 경우 데이터 블럭에 따라 IV를 만들고 암호화 키와 평문을 XOR를 통해 암호문을 만드는 것이다. 번외로 추가 설명을 하자면 CFB모드와 OFB모드도 있는데 CFB 모드의 경우에는 IV를 바탕으로 평문과 XOR해서 암호문을 만들고 이 암호문을 바탕으로 다음 블럭을 암호화 한다. 그렇기 때문에 중간에 암호화가 잘못되면 나머지 블럭들도..

Crypto 2022.11.03

CBC와 ECB

암호화를 할 때 단순히 인코딩/디코딩을 하면 같은 메시지는 항상 같은 암호문으로 인코딩된다. ECB가 이와 같은 방식인데 해커는 이를 이용해 도청 또는 해킹을 할 수 있다. 그래서 CBC 방식에서는 메시지를 다른 메시지와 xor한 후 암호화를 하기때문에 보완성을 높일 수 있다. 이러한 이유로 요즘에는 ECB를 사용하는 경우는 드물고 대부분 CBC 방식을 채택한다. CBC방식으로 암호화를 할 때는 최초에 xor할 데이터가 없기때문에 IV(Initialization Vector,랜덤 초기감)를 생성하여 메시지 앞부분에 붙인다.

Crypto 2022.11.03

AES의 정의와 암호화 알고리즘 순서

AES(Advanced Encryption Standard)는 미국 표준 기술 연구소 NIST에서 고안한 암호화 알고리즘이다. 이전에 존재했던 DES의 암호화 알고리즘을 보안해 나온 게 AES인데 향후 30년을 사용할 수 있을 정도의 안정성이 있다고 하며, 다양한 암호화 키의 길이를 갖춘 대칭형 암호 알고리즘이다. 현대에는 많이 사양되는 암호화의 표준 알고리즘이라고 볼 수 있다. AES의 암호화 키는 128, 192, 256 bit를 가질 수 있는데 AES-128, AES-192, AES-256과 같이 표기한다. AES128을 예로 암호화하는 알고리즘은 순서는 아래와 같다. (AES-192는 12라운드 AES-256은 14라운드까지 있다.) step-1 0(initial round) AddRoundKey..

Crypto 2022.11.02

ECDSA란?

ECDSA(Elliptic Curve Digital Signature Algorithm)란 타원곡선 디지털서명 알고리즘으로 타원곡선을 이용해 인증할 수 있는 암호화 방식이다. 비트코인과 이더리움에서도 ECDSA의 secp256k1커브방식(가장많이 사용하는 방식중 하나)을 채택하여 전자서명을 하고 있다. 특징으로는 기존 전자 서명에 비해 공개 키의 크기가 절반 수준이며 보안 수준은 4배정도의 동일한 안정성을 제공한다. ECDSA의 비밀키 공유 방법은 아래와 같다. 보통 문서들은 앨리스와 밥이라는 이름을 활용하는데 나는 영희와 철수로 해야겠다...! 1. 영희와 철수는 개인키로 Pr1와 Pr2를 생성한다. 2. 타원곡선 연산을 통해해 계산된 결과값 R1, R2 값을 서로 교환한다. 3. 영희는 철수로부터 받..

Crypto 2022.11.02

RSA란...?

RSA는 단방향 암호화 기술과 유사하지만 복호화가 가능하므로 양방향 암호화 기술이며 암호화 키와 복호화 키가 다른 비대칭 암호화 기술이다. 대칭 암호화 기술은 암호화 키와 복호화 키가 같아 공격자가 나와 통신할 상대인 척하여 암호화 키를 교환 또는 통신을 시도할 수 있다. 이에 대비해 비대칭 암호화 기술을 사용해 공격자에 대항할 수 있다. RSA는 일반적으로 암호화 키(a)를 공개하고, 복호화 키(b)를 비밀로한다. 그리고 a x b = K 라고 가정했을 때 K역시 공개한다. 이렇게 하였을 때 복호화 키는 자신만 알고 있기 때문에 중간에 메시지가 노출되어도 상관이 없다. 추가로 암호화 키를 이용해 복호화하고 복호화 키로 암호화를 해도 상관이 없다.

Crypto 2022.11.01
1
728x90