암호학(17)
-
c언어 문자열 변수, 문자열 포인터 변수 차이
1. 일반 문자열 변수 2. 문자열 포인터 변수 결론 : 일반 문자열 변수는 strcpy를 이용하면 복사가 잘 되지만, 직접 지정하면 에러가 나는 반면, 포인터 문자열 변수는 strcpy를 쓰거나, 직접 문자열 값을 지정해도 잘 동작한다.
2021.12.23 -
인증서 날짜, RSA key size 파싱 코드
#include #include #include "mbedtls/ssl.h" int main() { char buf[1024]; mbedtls_x509_crt srvcert; mbedtls_x509_crt_init( &srvcert ); mbedtls_x509_crt_parse_file( &srvcert, "server.pem" ); mbedtls_x509_crt_info( buf, sizeof( buf ) - 1, "", &srvcert ); char *buf2; char *buf3; buf2 = strstr(buf, "issued on"); buf2 = strtok(buf2, ":"); buf2 = strtok(NULL, "\n"); printf("Update = %s\n", buf2); buf2 =..
2021.12.03 -
PQC(Post Quantum Cryptography) 양자 내성 암호
두 사용자 A와 B가 비밀리에 메시지를 주고받기를 원한다고 가정해 보겠습니다. 이를 위해 ① 우선 사용자 A는 랜덤하게 비밀번호를 하나 생성합니다. 이를 ‘키(key) 생성 단계’라고 하며 보통 의사난수발생기(PRNG: Pseudo Random Number Generator)나 양자난수발생기(QRNG: Quantum Random Number Generator)를 통해 이루어집니다. ② 다음으로 A는 상대방의 신원이 정말 B가 맞는지 확인합니다. 이를 ‘사용자 인증’이라고 합니다. ③ 신원 확인이 끝나면 사용자 A는 자신이 생성한 비밀번호를 B에게 아무도 모르게 전달합니다. 이 과정을 ‘키 분배(또는 공유) 단계’라고 합니다. ④ 사용자 B와 랜덤한 비밀번호를 서로 공유하게 된 A는 이제 AES나 SEED..
2021.11.26 -
x509 인증서 & 전자서명 심층분석
-----BEGIN CERTIFICATE REQUEST----- -----END CERTIFICATE REQUEST----- -> 단지 인코딩된 정보일 뿐 Alice에서 인증서 요청 -> BOB에서 server.pem 인증서 보냄 -> Alice가 BOB에게 받은 인증서의 CA가 Alice의 ca.pem의 CA에 들어있는지 확인 -> 들어있다면 ca.pem의 공개키로 복호화 -> server.pem이 ca.pem의 공개키로 복호화가 됬다면 이 인증서는 CA의 비공개키에 의해서 암호화 된것. -> 발급된 인증서는 CA에 의해 검토되었다. 공개키 서명에 대해서 -> 공개키 서명은 사용자의 개인키(server.key)로 서명하고, 암호화한 정보를 사용자의 공개키(server.pem에 들어있는 공개키)로 확인하..
2021.11.26 -
/.vimrc ctags 코드
vi ~/.vimrc set tags=./tags,tags set tags+=../tags set tags+=../../tags set tags+=../../../tags set tags+=../../../../tags set tags+=../../../../../tags set tags+=../../../../../../tags set tags+=../../../../../../../tags set tags+=../../../../../../../../tags set tags+=../../../../../../../../../tags set tags+=../../../../../../../../../../tags set tags+=../../../../../../../../../../../tags se..
2021.11.24 -
c언어 spirntf 함수 printf sprintf 차이점
printf는 여러가지 서식들을 조합해서 출력을 해준다. 영어+숫자+헥사값 등등 포맷연산자에 포맷만 지정해주면 다양한 값을 한 번에 출력을 해준다. 근데 출력을 말고, 개발을 하다보면 이를 변수에다가 저장해서 활용하고 싶을 때가 있다. sprintf는 출력하는 결과 값을 변수에 저장하게 해주는 기능이 있다. string = printf의 줄임말이 sprintf라고 생각할 수 있다. printf가 출력하는 함수라면, sprintf는 출력값을 문자열에 저장하는 함수이다. 해당 함수로 인해 문자열 사이에 특정 값을 끼어넣는다든지, 문자열 + 숫자 조합을 쉽게 컨트롤 한다든지, 마스킹 처리와 같은 특정 포맷을 만든다든지 다양하게 활용할 수 있다.
2021.07.14