sgcCrypto: Delphi & C++ Builder를 위한 최신 암호화 라이브러리본문으로 건너뛰기
sgcWebSockets Standard부터 포함단독 제품으로도 판매
sgcCrypto — Delphi & C++ Builder를 위한 최신 암호화 라이브러리
43개의 순수 Object Pascal 유닛으로, 컴포넌트도 디자인 타임 흔적도 없습니다. TBytes를 넘기면 TBytes를 돌려받습니다. 암호화에는 AES-GCM과 ChaCha20-Poly1305, 해싱에는 SHA-3/BLAKE2/Argon2, 서명과 키 교환에는 Ed25519/X25519/RSA, 그리고 X.509 인증서 파싱 및 생성, 포스트 퀀텀 ML-KEM, ML-DSA, SLH-DSA까지 제공합니다. 모든 기본 요소는 uses 절에 추가하는 바로 그 유닛 안에서 직접 구현되어 있습니다. 외부 DLL도, OpenSSL 바인딩도 없으며, 동일한 소스가 Delphi 7부터 RAD Studio 13까지 변경 없이 컴파일됩니다. sgcCrypto는 sgcWebSockets Standard, Professional, Enterprise에 무료로 포함되어 제공되며, Core만 보유한 고객을 위해 단독으로도 판매됩니다(sgcWebSockets Core 런타임 포함).
43개의 순수 함수sgcCrypto_*.pas컴포넌트 없음. 함수를 호출하면 바이트를 돌려받습니다.
AES-GCMsgcAES_GCM_Encrypt
ChaCha20-Poly1305sgcChaCha20Poly1305_Encrypt
SHA-3 / SHAKEsgcSHA3_256
Ed25519 / X25519sgcEd25519_Sign
RSA-PSSsgcRSA_PSS_Sign
ML-KEM / ML-DSAsgcMLKEM_Encapsulate
X.509 / CSRsgcX509_CreateSelfSigned
43순수 함수 유닛sgcCrypto_*.pas, 컴포넌트 없음
6기능 패밀리대칭, 해싱, 서명, PKI, PQC, OTP
6지원 플랫폼Win32, Win64, Linux64, macOS, iOS, Android
3포스트 퀀텀 FIPS 표준ML-KEM (203), ML-DSA (204), SLH-DSA (205)
2소유하는 방법에디션에 포함되거나 단독으로
구매 전에
먼저 알아 두면 좋은 세 가지
sgcCrypto가 무엇인지, 이미 보유하고 있는지, 어디에서 실행되는지입니다. 세 답 모두 간단합니다.
sgcCrypto는 컴포넌트가 아니라 순수 함수입니다
43개 유닛 전부가 평범한 함수와 프로시저를 내보냅니다. Tsgc* 클래스도 없고, RegisterComponents로 등록되는 것도 없으며, sgcCrypto_Reg.pas도 없습니다. sgcAES_GCM_Encrypt(aKey, aIV, aPlain, aAAD, aTag)를 폼이든 서비스든 콘솔 앱이든 스레드든, 여느 RTL 함수를 호출하듯 그대로 호출하면 됩니다.
모든 라이선스에 전체 소스 코드가 함께 제공되므로, 기본 요소들이 바이너리나 DLL 속으로 사라지는 대신 직접 디버거로 한 단계씩 추적할 수 있습니다.
에디션 중복
이미 sgcWebSockets 에디션을 보유하고 계신가요?
sgcCrypto는 sgcWebSockets Standard, Professional, Enterprise, 그리고 All-Access 안에 추가 비용 없이 포함되어 있습니다. Standard 이상의 에디션 라이선스를 이미 보유하고 있다면 43개 유닛을 모두 이미 갖고 있는 것이며, 더 구매할 필요가 없습니다.
sgcCrypto의 단독 버전은 그 반대의 경우를 위한 것입니다. sgcWebSockets Core만 보유하고 있거나 sgcWebSockets 라이선스가 전혀 없는 상태에서, 전체 에디션을 라이선스하지 않고도 암호화 유닛만 원하는 경우입니다.
플랫폼 범위
sgcCrypto에는 플랫폼 가드가 없습니다
AI나 음성 패키지와 달리, sgcVer.inc의 어떤 것도 sgcCrypto를 Windows로 제한하지 않습니다. 이 유닛들은 평범한 Object Pascal 연산이므로, 동일한 소스로 Win32, Win64, Linux64, macOS, iOS, Android용으로 컴파일됩니다.
플랫폼을 인식하는 유일한 유닛인 sgcCrypto_Random은 동일한 sgcRandomBytes 호출 뒤에서 대상별로 CSPRNG 백엔드를 선택합니다(Windows CryptoAPI, 그 외에는 /dev/urandom). 따라서 사용자 코드는 플랫폼에 따라 분기할 필요가 전혀 없습니다.
구성 내용
43개의 유닛, 6개의 기능 패밀리
모든 유닛은 컴파일된 Object Pascal이며, Delphi 7부터 13까지 또는 C++ Builder 프로젝트 어디에서든 호출할 수 있습니다. 외부 DLL도, OpenSSL 바인딩도, 코드 생성기도 없습니다. 기본 요소는 uses 절에 추가하는 유닛 안에서 직접 구현되어 있습니다.
대칭 암호화5개 유닛
AES, ChaCha20, 그리고 그 위에 구축된 AEAD 구성
sgcCrypto_AES는 CBC, GCM, CTR을 다루고, sgcCrypto_Modes는 ECB, OFB, CFB, 사이퍼텍스트 스틸링 방식의 CTS, 그리고 AES Key Wrap / 패딩 포함 Key Wrap(RFC 3394 / 5649)을 추가합니다. sgcCrypto_CMAC은 AES-CMAC입니다. sgcCrypto_ChaCha는 ChaCha20, XChaCha20, Salsa20, XSalsa20을 구현하며, sgcCrypto_Poly1305는 이들과 Poly1305를 결합해 RFC 8439의 ChaCha20-Poly1305 및 XChaCha20-Poly1305 AEAD 암호를 만듭니다. sgcAES_GCM_Decrypt와 Poly1305 검증 함수는 인증 태그를 상수 시간으로 비교하며, 검증에 실패하면 평문 반환을 거부합니다.
sgcCrypto_SHA2와 sgcCrypto_Keccak은 SHA-1/2, SHA-3, SHAKE, cSHAKE, KMAC을 다루고, sgcCrypto_Blake2b와 sgcCrypto_Blake2s는 BLAKE2를 추가합니다. sgcCrypto_HMAC은 키 기반 메시지 인증입니다. 비밀번호를 키로 바꾸는 용도로는 sgcCrypto_KDF(PBKDF2), sgcCrypto_HKDF, sgcCrypto_Scrypt, 그리고 Argon2의 세 가지 변형인 d, i, id를 모두 구현하는 Password Hashing Competition 우승작 sgcCrypto_Argon2가 있습니다. sgcCrypto_SipHash는 해시 테이블 키를 위한 빠른 키 기반 해시를 제공하며, sgcCrypto_TLSH는 암호화 다이제스트가 아니라 유사도 거리 함수를 갖춘 퍼지 해시로, 근접 중복 탐지에 유용합니다.
sgcCrypto_Ed25519/Ed448은 서명과 검증을 담당하고, sgcCrypto_X25519/X448은 이에 대응하는 Diffie-Hellman을 수행합니다. sgcCrypto_ECCurves는 RFC 6979 결정적 논스를 사용해 secp256k1과 세 가지 Brainpool 곡선 위에서 ECDSA와 ECDH를 추가하며, sgcCrypto_EC는 JOSE 지향의 자매 유닛으로 ES256/384/512 JWS를 직접 서명하고 검증합니다. sgcCrypto_RSA는 PEM 키로부터 곧바로 PKCS#1 v1.5 및 PSS 서명을 검증하며, sgcCrypto_RSA_Keys는 한 걸음 더 나아가 임의 비트 길이의 키 생성, OAEP 암호화, DER/PEM 내보내기를 제공합니다. sgcCrypto_ECIES는 X25519 공개 키에 대한 하이브리드 seal/open 암호화로 마무리합니다.
sgcCrypto_ASN1은 DER과 PEM을 읽고 PKCS#1/SEC 1 키를 파싱하며, sgcCrypto_DER은 인증서나 CSR에 필요한 모든 태그를 작성합니다. sgcCrypto_X509는 인증서를 파싱하고, 지정된 발급자가 서명했는지 검증하며, 체인을 따라가며 검증하고, CRL을 파싱해 폐기 여부를 확인합니다. sgcCrypto_X509_Gen은 자체 서명 인증서나 PKCS#10 CSR을 처음부터 생성합니다. 전체 주체 및 발급자 구분 이름(DN), 유효 기간, 경로 길이 제약이 있는 CA 플래그, 키 사용 플래그, 확장 키 사용 OID, IP 주소 SAN을 포함한 주체 대체 이름까지 다룹니다.
sgcCrypto_MLKEM은 FIPS 203 키 캡슐화로, 세 가지 매개변수 집합(ML-KEM-512/768/1024)을 제공하며 손상된 암호문에는 암묵적 거부(implicit rejection)로 대응합니다. sgcCrypto_MLDSA는 FIPS 204 서명으로 ML-DSA-44/65/87을 제공합니다. sgcCrypto_SLHDSA는 FIPS 205이며, 128s, 128f, 192s, 192f, 256s, 256f 여섯 가지 SHAKE 매개변수 집합을 모두 지원합니다. ML-KEM 단독으로는 타원 곡선보다 역사가 짧은 격자 가정에 모든 것을 거는 셈이므로, sgcCrypto_MLKEM_Hybrid는 X25519 비밀 값과 ML-KEM 비밀 값을 하나의 공유 키로 결합해, 결과가 고전적인 절반보다 약해지는 일이 없도록 합니다. 이는 업계가 수렴하고 있는 마이그레이션 방식입니다.
sgcCrypto_OTP는 인증 앱이 보여주는 것과 동일한 6자리 HOTP와 TOTP 코드를 생성하고 검증하며, 시계 오차를 흡수하는 상수 시간 검증 윈도우를 사용합니다. sgcCrypto_Encoding은 라이브러리의 나머지 부분이 공유하는 유틸리티 함수를 담고 있습니다. 상수 시간 비교, 안전한 버퍼 초기화, hex, Base64url, Base32입니다. sgcCrypto_Zip_AE2는 개별 ZIP 항목을 암호화하기 위한 WinZip AES 암호화 AE-1과 AE-2를 구현합니다. sgcCrypto_Random은 라이브러리 곳곳에서 생성되는 모든 키와 논스 뒤에 있는 크로스 플랫폼 CSPRNG이며, sgcCrypto_Legacy는 새로운 설계가 아니라 이전 형식과의 상호운용을 위해 MD4/MD5/HMAC-MD5/DES-ECB를 계속 제공합니다.
GCM과 Poly1305 태그 검사, HOTP/TOTP 검증, sgcConstantTimeEquals는 모두 상수 시간으로 비교합니다. 따라서 검사에 실패해도 추측이 얼마나 근접했는지에 대한 타이밍 정보가 새어 나가지 않습니다.
디캡슐화는 절대 실패하지 않습니다
손상된 ML-KEM 암호문은 오류 대신 의사난수 비밀 값을 만들어냅니다. FIPS 203에 따른 암묵적 거부 방식으로, 공격자는 암호문이 올바른 형식인지 여부로부터 아무것도 알아낼 수 없습니다.
Delphi 7부터 13까지, 변경 없음
네이티브 64비트 정수 타입이 있다고 가정하지 않습니다. sgcCrypto_Int64와 TsgcBigInt가 해시, 곡선, 포스트 퀀텀 유닛에 필요한 연산을 에뮬레이션하므로, 동일한 소스가 지원되는 모든 버전에서 컴파일됩니다.
프로세스 밖으로 나가는 것은 없습니다
모든 함수는 사용자가 전달한 데이터에 대해 프로세스 내부에서 실행됩니다. 라이브러리 어디에도 네트워크 호출, 원격 측정, eSeGeCe로의 중계는 존재하지 않습니다.
가격
포함되거나, 단독 패키지로
sgcCrypto는 sgcWebSockets Standard, Professional, Enterprise에 무료로 포함되어 제공됩니다. sgcWebSockets Core만 보유하고 있다면, 개발자 1인 기준 €149부터 시작하는 단독 패키지로도 구매할 수 있습니다. 모든 라이선스에는 전체 소스 코드, 1년간의 업데이트, 50%에서 70%까지의 갱신 할인이 포함됩니다. 팩 1개를 갱신하면 50%, 2개는 60%, 3개 이상은 70%입니다.
sgcCrypto
€149
단독 패키지입니다. Single, Team, Site 라이선스를 제공합니다. sgcWebSockets Standard, Professional, Enterprise를 이미 보유하고 있다면 무료입니다.
43개의 sgcCrypto_*.pas 유닛 전부
sgcWebSockets Core 런타임 포함
Delphi & C++ Builder, 6개 플랫폼 전체
전체 소스 코드
1년간의 업데이트
이미 sgcWebSockets Standard, Professional, Enterprise를 사용 중이신가요? sgcCrypto는 이미 설치 프로그램에 포함되어 있으므로 별도로 주문할 필요가 없습니다.