TLS 클라이언트 라이브러리(libcurl, mbedTLS)에서 PQC 연동하기이전 글에서는 OpenSSL 기반 서버에서 Kyber 및 Dilithium 같은 양자 내성 암호(PQC)를 적용해 TLS 키 교환과 하이브리드 인증서를 구성하는 방법을 다뤘습니다.이번에는 클라이언트 측 라이브러리인 libcurl과 mbedTLS를 통해 PQC TLS 통신을 테스트하는 방법을 소개합니다. 실무에서는 REST API 호출, 백엔드 간 통신 등에서 이와 같은 클라이언트 TLS 연동이 매우 중요합니다.1. libcurl + oqs-openssl 연동✅ 기본 개념libcurl은 OpenSSL 또는 다른 TLS 백엔드(NSS, GnuTLS, mbedTLS 등)를 사용할 수 있는 고수준 HTTP 라이브러리입니다. PQC 적..
[개발자용] Kyber 기반 PQC TLS 키 교환 & 하이브리드 인증서 실습앞선 글에서는 OpenSSL과 liboqs 환경을 구성하고, Kyber, Dilithium과 같은 양자 내성 암호 알고리즘을 CLI 및 C 코드에서 사용하는 법을 알아봤습니다. 이번에는 본격적으로 TLS 환경에서 Kyber를 이용한 키 교환 구성 및 하이브리드 인증서(Hybrid Certificate)를 만드는 실습을 진행해보겠습니다.1. PQC 기반 TLS란?TLS 1.3은 기본적으로 ECDHE를 이용한 키 교환 방식이 사용되며, RSA나 ECC 기반의 인증서가 일반적입니다. 하지만 양자 내성 환경에서는 다음과 같은 전환이 필요합니다:🔐 키 교환 → Kyber, BIKE 등 PQC 알고리즘🔏 인증서 서명 → Dilithiu..
[개발자용] OpenSSL로 시작하는 양자 내성 암호화(PQC) 실습 – 리눅스 & 윈도우 대응양자 컴퓨터 시대를 대비해 양자 내성 암호화(Post-Quantum Cryptography, PQC)에 대한 관심이 높아지고 있습니다. 특히, 미국 NIST가 표준화를 진행 중인 PQC 알고리즘들은 이제 단순한 연구 주제가 아니라 개발자들이 직접 코드에 적용 가능한 기술이 되었습니다.이번 글에서는 리눅스/윈도우 환경에서 OpenSSL을 활용해 Kyber, Dilithium 등의 PQC 알고리즘을 실습하는 방법을 소개합니다.1. 개발 환경 준비✅ OpenSSL의 PQC 지원 현황OpenSSL의 공식 릴리즈 버전에서는 PQC가 아직 기본으로 포함되어 있지 않지만, Open Quantum Safe (OQS) 프로젝트..
양자 내성 암호화(Post-Quantum Cryptography)란 무엇인가?최근 IT 보안 업계에서는 "양자 내성 암호화(Post-Quantum Cryptography, PQC)"라는 용어가 자주 등장하고 있습니다. 이는 양자 컴퓨터의 등장이 현재 사용 중인 암호 기술을 무력화시킬 수 있다는 우려에서 시작된 흐름으로, 미래의 보안 위협에 대비하기 위한 새로운 암호 기술입니다. 이번 글에서는 양자 내성 암호화가 무엇인지, 왜 필요한지, 어떤 방식들이 있는지 알아보겠습니다.1. 왜 양자 내성 암호화가 필요한가?현재 널리 사용되고 있는 RSA, ECC(Elliptic Curve Cryptography) 등의 공개키 암호 알고리즘은 큰 수의 소인수 분해나 이산 로그 문제의 계산적 어려움에 기반합니다. 이는 일..

4편: DECLARE_PROPERTY – 반복되는 getter/setter 자동화객체지향에서 캡슐화는 중요한 원칙입니다.하지만 private 멤버 + public getter/setter 패턴은 너무 반복적이라 지겹죠.그래서 등장하는 것이 DECLARE_PROPERTY 같은 매크로입니다.😫 반복되는 getter/setterclass Person {private: std::string m_name;public: const std::string& GetName() const { return m_name; } void SetName(const std::string& name) { m_name = name; }};위 코드를 모든 속성마다 계속 작성한다면 생산성이 떨어지고, 실수도 많아집니다.?..

3편: MSLEEP, SSLEEP – 간단한 Sleep 매크로 정의하기C++에서는 스레드를 잠시 멈추기 위해 std::this_thread::sleep_for를 사용하는 것이 일반적입니다.하지만 매번 std::chrono::milliseconds() 를 타이핑하는 건 지저분하고 반복적이죠.📌 목표: 더 읽기 쉽고, 반복을 줄이며, 명확한 단위 구분이 가능한 슬립 매크로 정의🛠️ 매크로 정의#ifndef MSLEEP#define MSLEEP(var) { std::this_thread::sleep_for(std::chrono::milliseconds((var))); }#endif#ifndef SSLEEP#define SSLEEP(var) { std::this_thread::sleep_for(std::ch..
- Total
- Today
- Yesterday
- 암호화
- Thread
- 외돌개
- 성산블루버블
- 리눅스
- Sleep
- CMake
- C
- 블루버블
- Linux
- 스쿠버다이빙
- C# 고급 기술
- Windows
- OpenSource
- 서귀포블루버블
- 제주도
- DLL
- C++
- 서귀포
- 울릉도
- PowerShell
- 패턴
- 블루버블다이빙팀
- 현포다이브
- 블루버블다이브팀
- ip
- C#.NET
- Build
- 윈도우
- C#
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |