[개발자용] 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..

2편: SAFE_DELETE / SAFE_DELETE_ARR – 안전한 포인터 메모리 해제✅ 문제 상황C++에서는 new로 생성한 메모리를 반드시 delete로 해제해야 합니다. 하지만 실수로 중복 delete를 하거나 delete 후 포인터를 그대로 두면, 이중 해제 (double free) 나 뎅글링 포인터 (dangling pointer) 문제가 생깁니다.🧯 해결 방법: SAFE_DELETE 매크로#ifndef SAFE_DELETE#define SAFE_DELETE(var) { if ( (var) != nullptr ) delete (var); (var) = nullptr; }#endif#ifndef SAFE_DELETE_ARR#define SAFE_DELETE_ARR(var) { if ( (va..

📌 시리즈 개요C++ 코드를 작성할 때 자주 반복되는 패턴이나, 명시적인 의도 표현을 위해 매크로를 사용하는 경우가 많습니다. 이 시리즈에서는 실무에서 자주 사용하는 매크로들을 하나씩 소개하며, 언제, 왜, 어떻게 사용해야 하는지를 설명합니다.반복되는 코드는 버그의 온상이다. 하지만 잘 설계된 매크로는 우리의 날개가 된다.🧩 시리즈 목록🔹 1편: UNREFERENCED_PARAMETER – 사용하지 않는 매개변수를 안전하게 무시하기Visual Studio에서 발생하는 경고 제거 방법코드의 의도를 명확히 하기 위한 실전 예제Windows/Linux 호환을 위한 정의 방법1편: UNREFERENCED_PARAMETER – 사용하지 않는 매개변수 안전하게 무시하기🔹 2편: SAFE_DELETE / SA..
- Total
- Today
- Yesterday
- 서귀포블루버블
- 서귀포
- C# 고급 기술
- OpenSource
- ReFS
- 성산블루버블
- Windows
- 현포다이브
- 디자인패턴
- 패턴
- C++
- PowerShell
- 리눅스
- 제주도
- 다이빙
- CMake
- Linux
- DLL
- 블루버블다이브팀
- 블루버블다이빙팀
- 암호화
- C
- 윈도우
- Build
- C#
- 블루버블
- ip
- 스쿠버다이빙
- 울릉도
- Thread
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |