728x90

Crypto 16

HASH에 관하여

HASH란 메시지의 위변조를 방지하기위해 데이터를 읽어 어떠한 값을 출력하는 것을 말한다. 이러한 역할을 수행하기위해 HASH함수를 구현해야 한다. HASH 함수는 다양하게 만들 수 있는데 예를 들어 test라는 문구가 있다고 가정해보자. 아스키표를 참조하면 0x74 + 0x65 + 0x73 + 0x74 = 0x01c0(448)이라는 값이 나온다. 여기서 256으로 나눠서 나머지 값을 활용할 수도 있다. 만드는 방법은 다양하다. 하지만 이렇게 단순한 방법으로 만들게 되면 위변조에 취약하다. 따라서 HASH함수의 경우 아래의 조건을 충족해야 한다. 1. HASH함수는 메시지의 위변조를 막아야 하며, TLS의 경우 메시지를 주고 받을 때마다 호출된다. 따라서 속도가 빨라야 한다. 2. 메시지를 바꿨을 경우 ..

Crypto 2022.11.03

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 2
728x90