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
직접 확인하기
2분 만에 보는 sgcCrypto
Delphi를 위한 최신 암호화예요. AES-GCM, SHA-3, Ed25519, X.509, 양자 내성 ML-KEM을 OpenSSL DLL 배포 없이 사용해요.
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-CCM, 그리고 AES Key Wrap / 패딩 포함 Key Wrap(RFC 3394 / 5649)을 추가합니다. sgcCrypto_CMAC은 AES-CMAC과 AES-GMAC입니다. sgcCrypto_ChaCha는 ChaCha20, XChaCha20, Salsa20, XSalsa20을 구현하며, sgcCrypto_Poly1305는 이들과 Poly1305를 결합해 RFC 8439의 ChaCha20-Poly1305 및 XChaCha20-Poly1305 AEAD 암호를 만듭니다. AES-CCM은 Zigbee, Bluetooth, TLS CCM 스위트가 이름으로 지정하는 AEAD로, 블록 암호 자체 외에는 아무것도 필요하지 않습니다. 그리고 CBC와 ECB는 둘 다 원하는 패딩 방식, 즉 PKCS#7, ANSI X9.23, ISO 7816-4 등을 받아들여, 언젠가 다른 시스템이 작성한 데이터를 읽어야 하는 날에 대비합니다. 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는 secp256k1, 세 가지 Brainpool 곡선, NIST P-256/P-384/P-521까지 일곱 개 곡선에 걸쳐 ECDSA와 ECDH를 추가하며, RFC 6979 결정적 논스와 원시 또는 DER 형태의 서명을 지원하고, 그 위에 Taproot, Nostr, Lightning이 기대하는 x-only 공개 키를 사용하는 BIP-340 Schnorr 서명까지 추가합니다. sgcCrypto_EC는 JOSE 지향의 자매 유닛으로 ES256/384/512 JWS를 직접 서명하고 검증합니다. sgcCrypto_RSA는 PEM 키로부터 곧바로 PKCS#1 v1.5 및 PSS 서명을 검증하며, sgcCrypto_RSA_Keys는 한 걸음 더 나아가 임의 비트 길이의 키 생성, OAEP 및 PKCS#1 v1.5 암호화, 그리고 PKCS#1 형태와 PKCS#8 BEGIN PRIVATE KEY 형태 모두로의 DER/PEM 내보내기를 제공합니다. RSA와 EC 키는 내보내는 것 못지않게 손쉽게 가져올 수도 있어서(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과 SPIFFE 스타일의 서비스 신원을 위한 URI SAN까지 포함한 주체 대체 이름까지 다룹니다. 서명은 RSA 키나 EC 키 어느 쪽으로도 할 수 있으며, EC 인증서는 RSA 인증서의 대략 3분의 1 크기로 나오면서 검증 속도도 훨씬 빠르기 때문에 새로운 배포 환경은 EC 쪽을 선택합니다.
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는 이미 설치 프로그램에 포함되어 있으므로 별도로 주문할 필요가 없습니다.