Security ★ Development/Cryptology(5)
-
SP800-108 KDF
https://csrc.nist.gov/CSRC/media/Publications/sp/800-108/archive/2008-11-06/documents/sp800-108-Nov2008.pdf NIST에서 발행한 SP800-108 표준은 KDF에 관한 것입니다. 보통 간단한 암호화의 대칭키같은경우 32byte 길이의 rand bytes를 뽑아서 사용하지만 중요 서비스에서 키교환같이 아키텍쳐상 보안적으로 중요한 로직은 KDF로 키를 생성하게됩니다. SP800-108은 KDF를 어떻게 구현해야하냐에 대한 표준입니다. 여러 모드가 있지만 counter 모드만 살펴보겠습니다. 이에 대한 예제는 아래 링크에 있지만 자바로 되어있습니다. https://android.googlesource.com/platform/f..
2023.01.16 -
openssl 암호화(AESGCM256)
암호화 EVP_CIPHER_CTX *ctx = NULL; uint32_t IV_LEN = 12, aad_len = 4, final_len; uint8_t key[32], iv[12], aad[4]; uint8_t *ct, *pt = "ABCD"; uint32_t ct_len = 0, pt_len = 4, out_len = 0; //key, iv, aad set //각 값은 복호화때와 동일한 값 사용 //key는 서로 갖고 있어야하고 iv와 aad는 암호화한 결과와 같이 넘겨줘야함. 이때 iv, aad는 plaintext형태로 넘겨줌 ctx = (EVP_CIPHER_CTX *)EVP_CIPHER_CTX_new(); if (NULL == ctx) { return ERROR; } //EVP_aes_128_gc..
2023.01.08 -
FHMQV
FHMQV는 키교환 프로토콜의 하나입니다. DH의 약점인 MITM에 대한 대비책으로 SAS, STS 등이 나왔고 MQV -> HMQV -> FHMQV 순으로 발전됐습니다. 정보를 찾아봤는데 논문만 몇개 나오고 제대로 설명이 되어있는 곳이 없더군요. 그래서 혹시 관심있는 분들께 도움이 되도록 정리한 내용입니다. MQV는 Menezes-Qu-Vanstone의 약자로 만든 사람들의 이름입니다. DH에 long term key를 결합한 방법인데 여기선 특별한 함수를 사용합니다.HMQV, FHMQV와의 차이의 핵심은 이 d와 e를 만드는 방식입니다. 아래가 MQV 프로토콜의 flow입니다. Alice와 Bob은 log term key P'를 갖고있습니다. w는 P'를 이용한 공개키와 개인키입니다. 서로 갖고, 알..
2016.10.30 -
Cryptology 문제 2
http://codeengn.com/challenges/crypto/02 Problem : One programming guru left a crypto table and an encrypted text to one of his students and passed away. Unfortunately, the crypto table was kind of messed up... The malformed crypto table : g i a x ? ? d b k l n q w m f ? c p ? ? z u y j ? v Encrypted text : yefpsqfgt Find the original text and verify. 이번엔 테이블이 있습니다. 알파벳이 하나씩 있는 걸로 봐서 알파벳 26자의 순서..
2015.12.03 -
Cryptology 문제 1
http://codeengn.com/challenges/crypto/01 Problem : eqbpntwemza Find the original form of the string 암호학 문제입니다.첫 번째 문제는 주어진 문자열로부터 원래 값을 찾아내는거네요.그리고 암호문 단독 공격을 해야합니다. 알파벳 영문이 주어졌을 때 생각해볼만한 방식은 아트배쉬 방법입니다. 유명한 시저 암호화를 떠올려 3자리씩 옮겨봤지만 의미있는 문자열이 나오진 않습니다. 스키테일을 적용해 볼 수도 없고 무작정 아트배쉬 방식으로 진행해 볼 수 밖에 없습니다. 그럼 각 문자를 8자리 앞으로 옮겼을 때 withflowers라는 문자열이 나오고 이게 정답이 됩니다.
2015.12.03