sgcCrypto 기능 매트릭스 — AES, SHA-3, Ed25519, X.509, ML-KEM | eSeGeCe

sgcCrypto 기능 매트릭스

디스크에 있는 43개 유닛 전체에 걸쳐 sgcCrypto가 하는 모든 일을 정리했습니다. 여기에는 컴포넌트도 디자인 타임 속성도 없습니다. 아래의 모든 행은 직접 호출하는 함수 또는 프로시저입니다. 전체 소스 코드는 모든 라이선스에 포함됩니다. 아래 앵커를 클릭하면 유닛들이 속한 6개의 기능 패밀리로 이동합니다.

sgcCrypto에는 컴포넌트가 없습니다. 아래의 43개 유닛은 평범한 함수를 내보냅니다. Tsgc* 클래스도, sgcCrypto_Reg.pas도 없습니다. uses 절에 유닛을 추가하고 함수를 호출하세요.

이미 포함되어 있습니다. sgcCrypto는 sgcWebSockets Standard, Professional, Enterprise, 그리고 All-Access 안에 무료로 포함되어 제공됩니다. Core만 보유한 고객을 위해 단독으로도 판매됩니다(sgcWebSockets Core 런타임 포함). 가격 안내를 참고하세요.

대칭 암호화

AES, ChaCha20, Poly1305, 5개 유닛

해싱 & KDF

SHA-2/3, BLAKE2, Argon2, 11개 유닛

서명 & 키 교환

Ed25519, X25519, RSA, 10개 유닛

PKI

X.509, ASN.1, CSR, 5개 유닛

포스트 퀀텀

ML-KEM, ML-DSA, SLH-DSA, 6개 유닛

OTP & 기타

HOTP/TOTP, 인코딩, ZIP AES, 6개 유닛

43개의 소스 유닛

sgcWebSockets/delphi/Source/ 아래에 있는 모든 sgcCrypto_*.pas 유닛을 패밀리별로 정리했습니다.

유닛패밀리하는 일
sgcCrypto_AES대칭AES-CBC, AES-GCM(AEAD), AES-CTR.
sgcCrypto_Modes대칭AES-ECB, OFB, CFB, CTS, 그리고 Key Wrap / 패딩 포함 Key Wrap.
sgcCrypto_CMAC대칭AES-CMAC 메시지 인증.
sgcCrypto_ChaCha대칭ChaCha20, XChaCha20, Salsa20, XSalsa20.
sgcCrypto_Poly1305대칭Poly1305 MAC, ChaCha20-Poly1305 및 XChaCha20-Poly1305 AEAD.
sgcCrypto_SHA2해싱 & KDFSHA-1, SHA-224, SHA-256, SHA-384, SHA-512.
sgcCrypto_Keccak해싱 & KDFSHA-3, SHAKE128/256, cSHAKE, KMAC.
sgcCrypto_Blake2b해싱 & KDFBLAKE2b, 키 사용 여부 선택 가능.
sgcCrypto_Blake2s해싱 & KDFBLAKE2s, 키 사용 여부 선택 가능.
sgcCrypto_HMAC해싱 & KDFHMAC-SHA1/256/384/512.
sgcCrypto_KDF해싱 & KDFPBKDF2, 해시 선택 가능.
sgcCrypto_HKDF해싱 & KDFHKDF extract-and-expand.
sgcCrypto_Scrypt해싱 & KDFscrypt 메모리 하드 KDF.
sgcCrypto_Argon2해싱 & KDFArgon2d, Argon2i, Argon2id.
sgcCrypto_SipHash해싱 & KDFSipHash-2-4 키 기반 해시.
sgcCrypto_TLSH해싱 & KDFTLSH 퍼지 해시와 유사도 차이 계산.
sgcCrypto_Ed25519서명 & 키 교환Ed25519 서명 / 검증.
sgcCrypto_X25519서명 & 키 교환X25519 Diffie-Hellman.
sgcCrypto_Ed448서명 & 키 교환Ed448 서명 / 검증.
sgcCrypto_X448서명 & 키 교환X448 Diffie-Hellman.
sgcCrypto_GF448서명 & 키 교환Ed448/X448을 위한 내부 GF(2^448-2^224-1) 필드 연산.
sgcCrypto_ECCurves서명 & 키 교환secp256k1 및 Brainpool P256r1/P384r1/P512r1 위의 ECDSA / ECDH.
sgcCrypto_EC서명 & 키 교환JWS(ES256/384/512)로서의 일반 EC 서명/검증, ECDH.
sgcCrypto_RSA서명 & 키 교환RSA PKCS#1 v1.5 서명, PKCS#1 v1.5 / PSS 검증, PEM 또는 원시 값으로부터.
sgcCrypto_RSA_Keys서명 & 키 교환RSA 키 생성, OAEP, PSS, PKCS#1 서명/검증, DER/PEM 내보내기.
sgcCrypto_ECIES서명 & 키 교환X25519 위의 ECIES seal / open 하이브리드 암호화.
sgcCrypto_ASN1PKIDER 리더, PEM 코덱, PKCS#1/SEC 1 키 파싱.
sgcCrypto_DERPKIDER 라이터 기본 요소.
sgcCrypto_BigIntegerPKI내부 임의 정밀도 정수 연산.
sgcCrypto_X509PKIX.509 파싱, 검증, 체인, CRL, 폐기 확인.
sgcCrypto_X509_GenPKI자체 서명 인증서 및 PKCS#10 CSR 생성.
sgcCrypto_MLKEM포스트 퀀텀ML-KEM 키 캡슐화(FIPS 203), 매개변수 집합 3종.
sgcCrypto_MLKEM_Poly포스트 퀀텀ML-KEM 뒤에 있는 내부 다항식 환 연산.
sgcCrypto_MLKEM_Hybrid포스트 퀀텀하이브리드 X25519 + ML-KEM 키 캡슐화.
sgcCrypto_MLDSA포스트 퀀텀ML-DSA 전자 서명(FIPS 204), 매개변수 집합 3종.
sgcCrypto_MLDSA_Poly포스트 퀀텀ML-DSA 뒤에 있는 내부 다항식 환 연산.
sgcCrypto_SLHDSA포스트 퀀텀SLH-DSA 서명(FIPS 205), SHAKE 매개변수 집합 6종.
sgcCrypto_OTPOTP & 기타HOTP, TOTP, 상수 시간 검증 윈도우.
sgcCrypto_EncodingOTP & 기타상수 시간 비교, 안전한 초기화, hex/Base64url/Base32.
sgcCrypto_Zip_AE2OTP & 기타ZIP 항목용 WinZip AES 암호화, AE-1 / AE-2.
sgcCrypto_LegacyOTP & 기타MD4, MD5, HMAC-MD5, DES-ECB, 상호운용 전용.
sgcCrypto_RandomOTP & 기타크로스 플랫폼 CSPRNG.
sgcCrypto_Int64OTP & 기타Delphi 7을 위한 내부 64비트 정수 에뮬레이션.

암호화 & MAC

운영 코드가 실제로 사용하는 모드의 AES와, ChaCha20/Poly1305 AEAD 계열입니다.

기능함수비고
AES-CBCsgcAES_CBC_Encrypt / sgcAES_CBC_DecryptPKCS#7 패딩, 16바이트 IV. 키 길이가 암호를 결정합니다: 16/24/32바이트 = AES-128/192/256.
AES-GCM(AEAD)sgcAES_GCM_Encrypt / sgcAES_GCM_Decrypt12바이트 IV를 권장합니다. 16바이트 태그를 상수 시간으로 비교하며, 태그 검증에 실패하면 복호화는 False와 빈 평문을 반환합니다.
AES-CTRsgcAES_CTRSRTP 방식의 AES-CM(RFC 3711). 대칭 호출, 패딩 없음, 128비트 빅 엔디언 카운터.
AES-ECBsgcAES_ECB_Encrypt / sgcAES_ECB_DecryptIV도 체이닝도 없습니다. 이를 지정하는 형식과의 상호운용을 위해 포함되어 있습니다.
AES-OFB / AES-CFBsgcAES_OFB, sgcAES_CFB_Encrypt / sgcAES_CFB_Decrypt스트림 암호 방식의 피드백 모드입니다.
AES-CTSsgcAES_CTS_Encrypt / sgcAES_CTS_Decrypt사이퍼텍스트 스틸링: 블록 크기의 배수가 아닌 데이터를 패딩 오버헤드 없이 암호화합니다.
AES Key WrapsgcAES_KeyWrap / sgcAES_KeyUnwrapRFC 3394. 한 키를 다른 키로 감쌀 때 사용합니다.
AES Key Wrap with PaddingsgcAES_KeyWrapPad / sgcAES_KeyUnwrapPadRFC 5649. 8바이트의 배수가 아닌 키 자료를 위한 것입니다.
AES-CMACsgcAES_CMAC / sgcAES_CMAC_VerifyRFC 4493 메시지 인증 코드입니다.
저수준 블록 기본 요소sgcAES_ExpandKey, sgcAES_EncryptBlock, sgcAES_DecryptBlock위의 모드 및 MAC 유닛을 위해 노출되어 있습니다. 아직 제공되지 않는 모드를 직접 구축할 때만 사용하세요.
ChaCha20sgcChaCha20RFC 8439, 96비트 논스, 32비트 카운터.
XChaCha20sgcXChaCha20192비트 확장 논스로, 대규모로 무작위 논스를 생성해도 안전합니다.
Salsa20 / XSalsa20sgcSalsa20 / sgcXSalsa20이전 세대 스트림 암호 계열이며, 두 논스 크기 모두 지원합니다.
서브키 유도sgcHChaCha20 / sgcHSalsa20X 변형이 논스의 처음 16바이트로부터 서브키를 유도할 때 내부적으로 사용하는 함수입니다.
Poly1305 MACsgcPoly1305 / sgcPoly1305_Verify일회용 인증자, RFC 8439. Poly1305 키는 절대 재사용하지 마세요.
ChaCha20-Poly1305 AEADsgcChaCha20Poly1305_Encrypt / _DecryptTLS 1.3의 두 번째 암호 스위트와 SSH 뒤에 있는 AEAD 암호입니다.
XChaCha20-Poly1305 AEADsgcXChaCha20Poly1305_Encrypt / _Decrypt동일한 AEAD이며 192비트 논스를 사용합니다. libsodium이 crypto_aead_xchacha20poly1305_ietf라고 부르는 구성입니다.

다이제스트, MAC & 비밀번호 해싱

모든 주요 해시 계열과, PBKDF2, HKDF, scrypt, 그리고 Argon2의 세 가지 변형 전부입니다.

기능함수비고
SHA-1 / SHA-2sgcSHA1, sgcSHA224, sgcSHA256, sgcSHA384, sgcSHA512FIPS 180-4. SHA-1은 상호운용을 위해 유지되며, 새로운 서명에는 권장하지 않습니다.
SHA-3sgcSHA3_224 / _256 / _384 / _512FIPS 202, Keccak 스펀지이며 구조적으로 SHA-2와 독립적입니다.
SHAKE128 / SHAKE256sgcSHAKE128 / sgcSHAKE256가변 출력 길이 함수입니다: 원하는 다이제스트 길이를 요청할 수 있습니다.
cSHAKE128 / cSHAKE256sgcCSHAKE128 / sgcCSHAKE256도메인 분리된 SHAKE, NIST SP 800-185, KMAC의 기반입니다.
KMAC128 / KMAC256sgcKMAC128 / sgcKMAC256가변 출력 길이를 갖는 Keccak 기반 MAC입니다.
BLAKE2bsgcBlake2b / sgcBlake2b_KeyedRFC 7693, 최대 64바이트 다이제스트, 내장 키잉(별도의 HMAC 불필요).
BLAKE2ssgcBlake2s / sgcBlake2s_KeyedRFC 7693, 최대 32바이트 다이제스트, 32비트 플랫폼에 최적화.
스트리밍 다이제스트sgcBlake2b_Init/_Update/_Final, Keccak/Blake2s의 동일한 호출한 번에 메모리에 담을 수 없을 만큼 큰 데이터를 해싱할 때 사용합니다.
HMACsgcHMAC_SHA1 / _SHA256 / _SHA384 / _SHA512RFC 2104, SHA-1/2 계열 위의 키 기반 해싱입니다.
PBKDF2sgcPBKDF2, sgcPBKDF2_SHA1 / _SHA256 / _SHA512RFC 8018. 메모리 하드성이 약하므로, 선택할 수 있다면 Argon2id나 scrypt를 우선하세요.
HKDFsgcHKDF_Extract_SHA256 / _SHA384, sgcHKDF_Expand_SHA256 / _SHA384, sgcHKDF_SHA256 / _SHA384RFC 5869, extract-then-expand 키 유도이며, 공유 비밀을 여러 키로 바꾸는 표준적인 방법입니다.
scryptsgcScryptRFC 7914, 메모리 하드 방식으로 PBKDF2보다 GPU/ASIC 공격에 훨씬 강합니다.
Argon2sgcArgon2(d / i / id), 편의 래퍼 sgcArgon2idRFC 9106, Password Hashing Competition 우승작. 선택적 비밀 값(페퍼)과 연관 데이터를 포함하는 전체 인터페이스입니다.
SipHash-2-4sgcSipHash24 / sgcSipHash24_Value해시 테이블 키를 위한 빠른 키 기반 PRF로, 해시 플러딩 서비스 거부 공격에 강합니다.
TLSH 퍼지 해시sgcTLSH, sgcTLSH_Init/_Update/_Final근접 중복 탐지를 위한 로컬리티 민감 해시이며, 암호화 다이제스트가 아닙니다.
TLSH 유사도 점수sgcTLSH_Diff두 TLSH 다이제스트 사이의 거리입니다. 값이 낮을수록 더 유사합니다.

Ed25519/Ed448, X25519/X448, secp256k1, Brainpool & RSA

RSA를 포함해 서로 다른 다섯 개의 곡선 계열에 걸쳐 서명, 검증, 공유 비밀 유도를 수행합니다.

기능함수비고
Ed25519 서명 / 검증sgcEd25519_Sign / sgcEd25519_VerifyRFC 8032. 32바이트 공개 키, 64바이트 서명. 검증은 5.1.7절에 따라 비정규 점과 S >= L을 거부합니다.
X25519 키 교환sgcX25519, sgcX25519_PublicKey, sgcX25519_SharedSecretCurve25519 위의 RFC 7748 Diffie-Hellman.
Ed448 서명 / 검증sgcEd448_GenerateKeyPair, sgcEd448_Sign, sgcEd448_VerifyRFC 8032, 448비트(Goldilocks) EdDSA 곡선입니다.
X448 키 교환sgcX448, sgcX448_PublicKey, sgcX448_SharedSecretCurve448 위의 RFC 7748 Diffie-Hellman.
secp256k1eccSecp256k1과 함께 사용하는 sgcECDSA_SignHash / VerifyHashsgcCrypto_ECCurves 안의 Bitcoin/Ethereum 곡선, SEC 2입니다.
Brainpool P256r1 / P384r1 / P512r1eccBrainpoolP256r1 / P384r1 / P512r1과 함께 사용하는 동일 함수RFC 5639, EU eIDAS 및 정부 프로필에서 흔히 사용됩니다.
결정적 ECDSA 논스sgcECDSA_SignHash에 내장RFC 6979: 논스가 개인 키와 메시지로부터 유도되므로 RNG 실패 상황이 없습니다.
ECDH(secp256k1 / Brainpool)sgcECDH_SharedSecret동일한 네 곡선 위에서의 공유 비밀입니다.
점 압축sgcEC_Compress / sgcEC_Decompress더 짧은 압축 공개 키 형식을 저장하거나 전송합니다.
JWS로서의 EC(ES256/384/512)sgcECDSA_SignJWS / sgcECDSA_VerifyJWS요청된 비트 길이에 따라 곡선이 자동으로 선택되며, PEM 키로부터 직접 서명/검증합니다. ECCurves의 JOSE 지향 자매 유닛입니다.
범용 ECDHsgcECDH원시 개인 키와 상대방 공개 점으로부터 공유 비밀을 구합니다.
원시 / DER ECDSA 검증sgcECDSA_VerifyRaw / sgcECDSA_VerifyDER원시 (Qx, Qy, r, s) 튜플 또는 DER 인코딩된 서명에 대해 검증합니다.
RSA 서명(PKCS#1 v1.5)sgcRSA_SignPKCS1PEM 개인 키로부터, SHA-1/256/384/512 다이제스트.
RSA 검증(PKCS#1 v1.5 / PSS)sgcRSA_VerifyPKCS1, sgcRSA_VerifyPSS, 그리고 모듈러스/지수 기반의 _Raw 변형RFC 8017. PEM 키 또는 원시 모듈러스와 지수로부터 검증하며, 별도의 키 객체 구성이 필요 없습니다.
RSA 키 생성sgcRSA_GenerateKey원하는 비트 길이, Miller-Rabin 소수성 검사.
RSA-OAEP 암호화sgcRSA_OAEP_Encrypt / sgcRSA_OAEP_DecryptRFC 8017의 최적 비대칭 암호화 패딩입니다.
RSA-PSS / PKCS#1 서명sgcRSA_PSS_Sign / Verify, sgcRSA_PKCS1_Sign / Verify생성된 TsgcRSAPrivateKey로부터 직접 서명합니다.
RSA 키 내보내기sgcRSA_ExportPrivateKeyPEM, sgcRSA_ExportPublicKeyPEM, 그리고 대응하는 DER 호출PKCS#1 및 SubjectPublicKeyInfo 인코딩입니다.
ECIES seal / opensgcECIES_GenerateKeyPair, sgcECIES_Seal, sgcECIES_OpenX25519 공개 키에 대한 하이브리드 암호화입니다. 임시 ECDH와 AEAD를 결합해 각 방향마다 한 번의 호출로 처리합니다.

X.509 인증서 & ASN.1

다른 사람이 발급한 인증서를 읽거나, 직접 생성할 수 있으며, 두 경우 모두 아래에 DER 인코더와 디코더가 있습니다.

기능함수비고
DER 리더sgcASN1_Read, sgcASN1_Next, sgcASN1_ContentDER 구조를 노드 단위로 순회합니다.
PEM 코덱sgcPEM_Decode / sgcPEM_EncodeRFC 7468, DER을 감싸는 -----BEGIN ... -----END 래퍼입니다.
RSA 키 파싱sgcASN1_ParseRSAPrivateKey / PublicKeyPKCS#1(RFC 8017) 키 구조입니다.
EC 키 파싱sgcASN1_ParseECPrivateKey / PublicKeySEC 1 키 구조입니다.
DER 라이터, 구조체sgcDER_Sequence, sgcDER_Set, sgcDER_Tagged, sgcDER_ContextExplicit / Implicit모든 인증서 필드가 조립되는 빌딩 블록입니다.
DER 라이터, 값sgcDER_Integer, sgcDER_OctetString, sgcDER_BitString, sgcDER_Boolean, sgcDER_Null기본 값 인코더입니다.
DER 라이터, 문자열 & 식별자sgcDER_OID, sgcDER_UTF8String, sgcDER_PrintableString, sgcDER_IA5String, sgcDER_Time객체 식별자, X.509가 사용하는 세 가지 문자열 타입, 그리고 UTCTime/GeneralizedTime입니다.
인증서 파싱sgcX509_Parse전체 인증서 구조입니다: 주체, 발급자, 유효 기간, 공개 키, 확장.
서명 / 체인 검증sgcX509_VerifySignedBy, sgcX509_VerifyChain인증서 하나를 발급자에 대해 검증하거나, DER 인증서 배열을 따라가며 검증합니다.
CRL 파싱 & 폐기 확인sgcX509_CRL_Parse, sgcX509_IsRevoked, sgcX509_CRL_VerifySignedBy인증서 폐기 목록(CRL)을 파싱하고 일련번호를 대조합니다.
이름 형식화sgcX509_SubjectRFC2253, sgcX509_IssuerRFC2253, sgcX509_SubjectOneLine로깅과 화면 표시를 위한 RFC 2253 구분 이름 문자열입니다.
확장 & SANsgcX509_GetExtension, sgcX509_GetCRLDistributionURIs임의의 확장 OID와 CRL 배포 지점 URI를 읽습니다.
자체 서명 인증서 생성sgcX509_CreateSelfSigned전체 TsgcX509Options: 주체 DN, 유효 기간, 일련번호, 경로 길이 제약이 있는 CA 플래그, 키 사용, 확장 키 사용, 주체 대체 이름(IPv4 SAN 포함).
PKCS#10 CSR 생성sgcX509_CreateCSR동일한 옵션 레코드로부터 만드는 RFC 2986 인증서 서명 요청입니다.
PEM 출력sgcX509_ToPEM생성된 DER을 바로 저장 가능한 PEM 파일로 감쌉니다.

ML-KEM, ML-DSA & SLH-DSA

NIST가 2024년 8월 FIPS 203, 204, 205로 확정한 세 가지 알고리즘과, 전환기를 위한 하이브리드 결합기입니다.

기능함수비고
ML-KEM 키 생성sgcMLKEM_GenerateKeyPair, sgcMLKEM_GenerateKeyPairFromSeedFIPS 203, 이전 명칭 Kyber. 세 가지 매개변수 집합: mlkem512, mlkem768, mlkem1024.
ML-KEM 캡슐화sgcMLKEM_Encapsulate, sgcMLKEM_EncapsulateWithSeed새로운 32바이트 공유 비밀과 이를 담는 암호문을 생성합니다.
ML-KEM 디캡슐화sgcMLKEM_Decapsulate절대 실패하지 않습니다: 손상된 암호문은 오류 대신 의사난수 비밀(암묵적 거부)을 만들어내므로, 타이밍과 오류 동작 어느 쪽으로도 정보가 드러나지 않습니다.
ML-KEM 크기sgcMLKEM_PublicKeySize, PrivateKeySize, CiphertextSize, SharedSecretSize버퍼 크기 산정을 위한 매개변수 집합별 바이트 길이입니다.
하이브리드 X25519 + ML-KEMsgcHybrid_GenerateKeyPair, sgcHybrid_Encapsulate, sgcHybrid_DecapsulateKDF를 통해 고전적 공유 비밀과 포스트 퀀텀 공유 비밀을 결합해, 결과가 X25519 단독보다 약해지지 않도록 합니다. 오늘날 ML-KEM을 배포하는 권장 방식입니다.
ML-DSA 키 생성sgcMLDSA_GenerateKeyPair, sgcMLDSA_GenerateKeyPairFromSeedFIPS 204, 이전 명칭 Dilithium. 세 가지 매개변수 집합: mldsa44, mldsa65, mldsa87.
ML-DSA 서명 / 검증sgcMLDSA_Sign / sgcMLDSA_VerifyFIPS 204 인터페이스에 따른 결정적 또는 무작위 서명이며, 컨텍스트 문자열을 포함합니다.
ML-DSA 크기sgcMLDSA_PublicKeySize, PrivateKeySize, SignatureSize매개변수 집합별 바이트 길이입니다.
SLH-DSA 키 생성sgcSLHDSA_GenerateKeyPair, sgcSLHDSA_GenerateKeyPairFromSeedFIPS 205, 이전 명칭 SPHINCS+. 상태 비저장 해시 기반 서명으로, 안전성이 격자나 곡선 가정이 아니라 해시 함수에만 의존합니다.
SLH-DSA 서명 / 검증sgcSLHDSA_Sign / sgcSLHDSA_VerifySHAKE 매개변수 집합 6종: slhShake128s, slhShake128f, slhShake192s, slhShake192f, slhShake256s, slhShake256f. s 집합은 작은 서명을, f 집합은 빠른 서명을 우선합니다.
SLH-DSA 크기 & 명명sgcSLHDSA_PublicKeySize, PrivateKeySize, SignatureSize, sgcSLHDSA_ParamsNameSLH-DSA 서명은 집합에 따라 7.8KB에서 49KB까지 큽니다. 서명 전에 버퍼 크기를 맞추세요.

sgcCrypto는 ed25519187이나 SPECK를 제공한다고 주장하지 않습니다. ed25519187은 공개된 명세가 없으며, SPECK는 2018년 ISO 표준화에서 철회되었습니다. 둘 다 여기에는 구현되어 있지 않습니다.

일회용 비밀번호, 코덱 & 암호화된 ZIP

유틸리티 계층입니다. 일회용 코드, 다른 모든 패밀리가 의지하는 인코딩, 그리고 WinZip AES 암호화입니다.

기능함수비고
HOTPsgcHOTPRFC 4226, 카운터 기반 일회용 비밀번호입니다.
TOTPsgcTOTP, sgcTOTP_FromBase32RFC 6238, 시간 기반 일회용 비밀번호입니다. Base32 변형은 인증 앱이 표시하는 그대로의 비밀 값을 받아들입니다.
TOTP 검증sgcTOTP_Verify제출된 코드를 여러 스텝의 윈도우에 걸쳐 상수 시간으로 확인하므로, 결과도 그 위치도 타이밍을 통해 드러나지 않습니다. 재전송 자체를 막지는 않으므로, 사용된 코드 추적은 호출자가 담당합니다.
상수 시간 비교sgcConstantTimeEquals라이브러리 전반에서 태그와 MAC 비교에 사용됩니다.
안전한 초기화sgcSecureZero키 자료가 메모리에 남지 않도록 바이트 버퍼를 덮어씁니다.
HexsgcHexEncode / sgcHexDecode소문자 hex, 대소문자 구분 없는 디코딩입니다.
Base64urlsgcBase64UrlEncode / sgcBase64UrlDecodeRFC 4648 5절, 패딩 없음. JWT와 JOSE가 사용하는 인코딩입니다.
Base32sgcBase32Encode / sgcBase32DecodeRFC 4648 6절. TOTP 비밀 값과 인증 앱이 사용하는 인코딩입니다.
WinZip AES 키 유도sgcZipAE2_DeriveKeys비밀번호와 솔트로부터 PBKDF2 기반의 키, 인증 키, 비밀번호 검증기를 생성합니다.
WinZip AES 암호화 / 복호화sgcZipAE2_Encrypt / sgcZipAE2_DecryptAE-1과 AE-2, AES-128/192/256, TsgcZipAESStrength를 통한 항목별 솔트 크기 지정.
WinZip 항목 패킹sgcZipAE2_PackEntry / sgcZipAE2_UnpackEntry솔트, 검증기, 암호문, 인증 코드를 디스크 레이아웃으로 결합합니다.
WinZip 추가 필드sgcZipAE2_BuildExtraField / sgcZipAE2_ParseExtraFieldZIP 항목을 AES 암호화로 표시하는 0x9901 추가 필드입니다.
레거시 해시(상호운용 전용)sgcMD4, sgcMD5, sgcHMAC_MD5이전 형식과 프로토콜을 읽기 위해 유지됩니다. 새로운 설계에는 사용하지 마세요.
레거시 암호(상호운용 전용)sgcDES_EncryptECB / sgcDES_DecryptECB, sgcDES_NTLM7to8DES-ECB와 DES 기반 NTLM 키 확장 단계입니다. 둘 다 철회되었지만(FIPS 46-3), 레거시 상호운용을 위해 유지됩니다.
안전한 난수 바이트sgcRandomBytes / sgcRandomFillMSWINDOWS에서는 Windows CryptoAPI, 그 외에는 /dev/urandom이며, 어느 쪽이든 호출은 하나입니다.

sgcCrypto가 실행되는 곳

지원 범위를 정확하게 밝힙니다.

영역세부 사항
운영체제sgcVer.inc에서 SGC_CRYPTO를 감싸는 MSWINDOWS 가드나 다른 어떤 플랫폼 가드도 없습니다. 43개 유닛 모두 Win32, Win64, Linux64, macOS, iOS, Android용으로 컴파일됩니다.
난수 소스플랫폼을 인식하는 유일한 유닛인 sgcCrypto_Random은 동일한 sgcRandomBytes 호출 뒤에서 대상별로 CSPRNG를 선택합니다: MSWINDOWS에서는 Windows CryptoAPI, POSIX 대상에서는 /dev/urandom입니다.
DelphiDelphi 7부터 RAD Studio 13 Florence까지입니다. 어디에서도 네이티브 64비트 정수 타입이 있다고 가정하지 않습니다. sgcCrypto_Int64sgcCrypto_BigInteger 안의 TsgcBigInt 타입이 해시, 곡선, 포스트 퀀텀 유닛에 필요한 연산을 에뮬레이션합니다.
C++ Builder생성된 헤더를 통해 C++ Builder에서도 동일한 소스 트리를 사용합니다.
디자인 타임 흔적없습니다. sgcCrypto_Reg.pas도 없고, RegisterComponents로 등록되는 것도 없으며, 컴포넌트 팔레트 페이지에 나타나는 유닛도 없습니다.
의존성OpenSSL 바인딩도, 외부 DLL도 없습니다. 모든 기본 요소는 참조하는 유닛 안에서 직접 Object Pascal로 구현되어 있습니다.
소스 코드모든 유료 등급, 그리고 sgcCrypto가 이미 포함된 에디션 패키지에 전체 Object Pascal 소스가 포함됩니다.
재배포직접 빌드한 바이너리는 좌석당 또는 서버당 런타임 비용 없이 로열티 없이 재배포할 수 있습니다.
최고의 가성비: All-Access모든 eSeGeCe 제품과 프리미엄 지원이 포함되어 연 €1,059부터 이용할 수 있어요.
All-Access 가격 보기

sgcCrypto로 구축을 시작하세요

무료 체험판을 다운로드하고 함수를 호출해 보세요. 컴포넌트는 필요 없습니다.