共通鍵 · 5 ユニット
sgcCrypto_AES は CBC、GCM、CTR を、sgcCrypto_Modes は ECB、OFB、CFB、ciphertext stealing、AES-CCM、AES Key Wrap を追加します。ChaCha20、XChaCha20、Salsa20、XSalsa20 は Poly1305 と組み合わせて RFC 8439 の AEAD 暗号になります。復号ではタグを一定時間で比較し、検証に失敗した場合は平文を返しません。
43 個のユニットで構成され、コンポーネントも設計時の痕跡もありません。TBytes を渡せば TBytes が返ります。暗号化には AES-GCM と ChaCha20-Poly1305、ハッシュと鍵導出には SHA-3、BLAKE2、Argon2、署名と鍵交換には Ed25519、X25519、RSA、さらに X.509 の解析と生成、ポスト量子の ML-KEM、ML-DSA、SLH-DSA に対応します。外部 DLL も OpenSSL へのバインディングも不要で、同じソースが Delphi 7 から RAD Studio 13 までそのままコンパイルできます。

ハッシュ、認証付き暗号化、パスワードの保存、署名、ポスト量子の鍵カプセル化を、関数呼び出し 1 回ずつ紹介します。ナレーションと字幕付きです。再生ボタンを押すまで何もダウンロードされません。
ファミリーは背後にある数学ではなく、行いたい作業ごとに分かれています。そのため、手に取るユニットは、作りたいものの名前そのままです。
sgcCrypto_AES は CBC、GCM、CTR を、sgcCrypto_Modes は ECB、OFB、CFB、ciphertext stealing、AES-CCM、AES Key Wrap を追加します。ChaCha20、XChaCha20、Salsa20、XSalsa20 は Poly1305 と組み合わせて RFC 8439 の AEAD 暗号になります。復号ではタグを一定時間で比較し、検証に失敗した場合は平文を返しません。
SHA-1、SHA-2、SHA-3、SHAKE、cSHAKE、KMAC に加え、BLAKE2b と BLAKE2s も備えています。PBKDF2、HKDF、scrypt、そして d、i、id の 3 種類すべてに対応した sgcCrypto_Argon2。ハッシュテーブルのキーには sgcCrypto_SipHash、あらゆるダイジェストに対する sgcCrypto_HMAC も使えます。
Ed25519 と Ed448 が署名し、X25519 と X448 が対応する Diffie-Hellman を行います。sgcCrypto_ECCurves は 7 種類の曲線上の ECDSA と ECDH を、RFC 6979 の決定的ノンスと BIP-340 の Schnorr 署名とともに提供します。RSA 鍵は任意のビット長に対応し、PKCS#1 と PKCS#8 の DER または PEM でエクスポートできます。
sgcCrypto_X509 は証明書の解析、発行者の検証、チェーンの探索、CRL の読み取りを行います。sgcCrypto_X509_Gen は、識別名 (DN) の全項目、有効期間、CA フラグ、キー使用法、拡張キー使用法、サブジェクト代替名を指定して、自己署名証明書または PKCS#10 の CSR を生成します。
FIPS 203 の鍵カプセル化は 3 つのパラメーターセットすべてに、FIPS 204 の署名は ML-DSA-44、65、87 に、FIPS 205 は SHAKE の 6 つのパラメーターセットすべてに対応します。sgcCrypto_MLKEM_Hybrid は X25519 の秘密と ML-KEM の秘密を組み合わせるため、共有鍵が従来方式の半分より弱くなることはありません。
sgcCrypto_OTP は、時計のずれを吸収する一定時間のウィンドウで HOTP と TOTP のコードを生成・検証します。一定時間比較、バッファーの安全なゼロクリア、hex、Base64url、Base32、ZIP エントリ向けの WinZip AES AE-1 と AE-2、そしてすべての鍵の基盤となるクロスプラットフォームの CSPRNG も揃っています。
オブジェクトの生成も、コンテキストの解放も、開いたままにするハンドルもありません。どちらのスニペットも、Delphi 7 から 13 と C++ Builder で、すべてのターゲットプラットフォームにおいて同じようにコンパイルできます。
uses
sgcCrypto_Random, sgcCrypto_AES, sgcCrypto_Keccak;
var
vKey, vIV, vPlain, vAAD, vTag, vCipher, vDigest: TBytes;
begin
// AES-256-GCM: 認証付き暗号化を 1 回の呼び出しで
vKey := sgcRandomBytes(32);
vIV := sgcRandomBytes(12);
vPlain := TEncoding.UTF8.GetBytes('confidential payload');
vCipher := sgcAES_GCM_Encrypt(vKey, vIV, vPlain, vAAD, vTag);
// SHA-3-256、1 回の呼び出し、管理するコンテキストオブジェクトは不要
vDigest := sgcSHA3_256(vPlain);
// 復号はタグを一定時間で検証し、失敗時は何も返さない
vPlain := sgcAES_GCM_Decrypt(vKey, vIV, vCipher, vAAD, vTag);
end;
uses
sgcCrypto_Random, sgcCrypto_Ed25519, sgcCrypto_MLKEM;
var
vSeed, vMessage, vSignature: TBytes;
vPublicKey, vPrivateKey, vCiphertext, vSharedSecret: TBytes;
begin
// 32 バイトのシードから Ed25519 署名を作成
vSeed := sgcRandomBytes(32);
vMessage := TEncoding.UTF8.GetBytes('sign me');
vSignature := sgcEd25519_Sign(vSeed, vMessage);
// ML-KEM-768: ポスト量子の鍵カプセル化 (FIPS 203)
sgcMLKEM_GenerateKeyPair(mlkem768, vPublicKey, vPrivateKey);
sgcMLKEM_Encapsulate(mlkem768, vPublicKey, vCiphertext, vSharedSecret);
// 相手側は暗号文から同じ秘密を復元する
sgcMLKEM_Decapsulate(mlkem768, vPrivateKey, vCiphertext, vSharedSecret);
end;
TBytes です。sgcRandomBytes はどのプラットフォームでも同じ呼び出しで、ターゲットごとに適切な CSPRNG が使われます。Object Pascal でも C++ Builder でも同じ形で使えます。すべてのユニットと関数は機能一覧表に掲載しています。
sgcCrypto は、配布とバージョン合わせが必要なライブラリに頼らず、プリミティブを直接実装しています。そのため、鍵もダイジェストも署名も関数呼び出し 1 回で済み、ソースコードが完全に付属するので、間にブラックボックスは存在しません。

PBKDF2、scrypt、または d、i、id の 3 種類すべての Argon2 でパスワードを鍵に変換し、sgcCrypto_Encoding の一定時間比較ヘルパーで照合します。比較そのものから答えが漏れることはありません。

共通鍵 (5)、ハッシュと KDF (11)、署名と鍵交換 (10)、PKI (5)、ポスト量子 (6)、OTP とユーティリティ (6) です。Tsgc* クラスも sgcCrypto_Reg.pas もありません。すべてのユニットが通常の関数をエクスポートしており、バイナリの中に隠れることなく、お使いのデバッガーでステップ実行できます。
sgcVer.inc には、sgcCrypto を Windows に限定する記述は一切ありません。ユニットは通常の Object Pascal の演算でできているため、1 つのソースから Win32、Win64、Linux64、macOS、iOS、Android 向けにコンパイルできます。プラットフォームに依存するのは sgcCrypto_Random だけです。
このパックには、sgcCrypto のプリミティブの上に書かれた TLS 実装も sgcSSL_NativeTLS* ユニットとして含まれています。sgcWebSockets のクライアントまたはサーバーで IOHandler := iohNativeTLS を設定するだけで、配布するものは何もありません。既定のグループ一覧は X25519MLKEM768 ハイブリッドから始まります。
FIPS 197 と 202、RFC 8439、RFC 5280、FIPS 203、204、205 に準拠しています。ML-KEM、ML-DSA、SLH-DSA の鍵生成、署名、検証は、sgcWebSockets の QA スイートで NIST ACVP の既知解ベクターと照合しています。
すべてのユニットと関数 →43 個のユニットすべてが、sgcWebSockets の Standard、Professional、Enterprise、および All-Access に追加費用なしで含まれています。sgcWebSockets Core のみをお持ちの場合や、sgcWebSockets のライセンスをお持ちでない場合は、Core ランタイムを暗号ユニットと同梱したスタンドアロンパッケージをご利用ください。すべてのライセンスにソースコード完全付属で、ロイヤリティ無料で配布できます。
sgcCrypto は Standard 以上に、WebSocket、HTTP/2、MQTT などライブラリの他の機能とともに無料で含まれています。いずれかをお持ちであれば、追加で購入するものはありません。
sgcWebSockets Core ランタイムを同梱した全 43 ユニット。Core のみをお持ちの方や、sgcWebSockets のライセンスをお持ちでない開発者向けです。Single、Team、Site の各ライセンスがあります。
eSeGeCe のすべての製品を 1 年間、Delphi と .NET の両方でご利用いただけます。sgcCrypto を含み、プレミアムサポート付きです。
無料体験版のインストーラーは sgcWebSockets All-Access の体験版なので、43 個のユニットすべてをすぐに評価できます。
sgcCrypto の価格を見る世界中の Delphi、C++ Builder、Lazarus、.NET 開発者から信頼されています。
sgcWebSockets ライブラリはとても便利でセットアップも簡単です。これからも頑張ってください!
sgcWebSockets は素晴らしく、サポートも最高です!
ご支援とサポートに本当に感謝しています。コンポーネントが大好きです。
sgcCrypto は、Delphi、C++ Builder、.NET 向けの eSeGeCe コンポーネントライブラリの 1 つです。いずれも共通の規約に従い、ソースコード完全付属で、ロイヤリティ無料で配布できます。
Delphi、C++ Builder、Lazarus、.NET 向けの WebSocket、HTTP/2、MQTT、AMQP、WebRTC、AI、そして 30 を超える API 統合。sgcCrypto は Standard エディション以上に含まれています。
ドキュメントには XAdES、PAdES、CAdES、ASiC、コードには Authenticode、ClickOnce、NuGet、VSIX の署名に対応します。
Delphi と C++ Builder 向けの OAuth2 クライアント、JWT クライアント、WebAuthn に対応します。
生の QUIC トランスポートと、WebTransport 対応の HTTP/3 クライアントおよびサーバー。sgcWebSockets Enterprise のアドオンです。
PDF ファイルの作成、編集、表示、署名、墨消し、検証を純粋な Object Pascal で行えます。配布する DLL は不要です。
パック、アドオンなど