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 ランタイムを同梱)。

完全なソースコード
Win32、Win64、Linux64、macOS、iOS & Android
Delphi 7 → 13、変更なし
外部依存ゼロ
43 の純関数 sgcCrypto_*.pas コンポーネントなし。関数を呼べば、バイト列が返ります。
AES-GCM sgcAES_GCM_Encrypt
ChaCha20-Poly1305 sgcChaCha20Poly1305_Encrypt
SHA-3 / SHAKE sgcSHA3_256
Ed25519 / X25519 sgcEd25519_Sign
RSA-PSS sgcRSA_PSS_Sign
ML-KEM / ML-DSA sgcMLKEM_Encapsulate
X.509 / CSR sgcX509_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 入手方法 エディションに同梱、または単体

最初に知っておきたい 3 つのこと

sgcCrypto とは何か、すでにお持ちかどうか、どこで動くか。3 つとも答えは短いです。

sgcCrypto は純関数であり、コンポーネントではありません

43 のユニットはすべて、単なる関数とプロシージャをエクスポートします。Tsgc* クラスは存在せず、RegisterComponents されるものもなく、sgcCrypto_Reg.pas もありません。フォーム、サービス、コンソールアプリ、スレッドのどこからでも、RTL の関数と同じように sgcAES_GCM_Encrypt(aKey, aIV, aPlain, aAAD, aTag) を呼び出せます。

すべてのライセンスに完全なソースコードが付属するため、プリミティブはバイナリや 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 は、対象ごとに CSPRNG バックエンド(Windows では CryptoAPI、それ以外では /dev/urandom)を選択しますが、同じ sgcRandomBytes 呼び出しの裏側で行われるため、コードがプラットフォームで分岐することはありません。

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 / Padding 付き 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 の検証関数は、認証タグを一定時間で比較し、失敗した場合は平文を返しません。

ハッシュ & KDF11 ユニット

SHA-2、SHA-3、BLAKE2、そして主要な KDF すべて

sgcCrypto_SHA2sgcCrypto_Keccak は SHA-1/2、SHA-3、SHAKE、cSHAKE、KMAC をカバーし、sgcCrypto_Blake2bsgcCrypto_Blake2s は BLAKE2 を追加します。sgcCrypto_HMAC は鍵付きメッセージ認証です。パスワードを鍵に変換するには sgcCrypto_KDF(PBKDF2)、sgcCrypto_HKDFsgcCrypto_Scrypt、そして Password Hashing Competition の優勝方式である Argon2 の d、i、id の 3 種類すべてを実装する sgcCrypto_Argon2 があります。sgcCrypto_SipHash はハッシュテーブルのキー向けに高速な鍵付きハッシュを提供し、sgcCrypto_TLSH は暗号学的ダイジェストではなく類似度検出向けのファジーハッシュで、ほぼ重複するデータの検出に役立ちます。

署名 & 鍵交換10 ユニット

Ed25519/Ed448、X25519/X448、secp256k1、Brainpool、RSA

sgcCrypto_Ed25519 / Ed448 は署名と検証を行い、sgcCrypto_X25519 / X448 は対応する Diffie-Hellman を行います。sgcCrypto_ECCurves は secp256k1 と 3 種類の Brainpool 曲線上で ECDSA と ECDH を追加し、RFC 6979 の決定論的ナンスに対応します。sgcCrypto_EC は JOSE 向けの姉妹ユニットで、JWS(ES256/384/512)を直接署名・検証します。sgcCrypto_RSA は PEM 鍵から直接 PKCS#1 v1.5 と PSS の署名を検証し、sgcCrypto_RSA_Keys はさらに任意のビット長での鍵生成、OAEP 暗号化、DER/PEM エクスポートに対応します。sgcCrypto_ECIES は X25519 公開鍵に対するハイブリッドな seal/open 暗号化で締めくくります。

sgcCrypto_Ed25519 sgcCrypto_ECCurves sgcCrypto_RSA_Keys RFC 8032 · RFC 7748 · RFC 8017
PKI5 ユニット

X.509 証明書の読み取り、検証、生成

sgcCrypto_ASN1 は DER と PEM を読み取り、PKCS#1/SEC 1 鍵を解析します。sgcCrypto_DER は証明書や CSR が必要とするあらゆるタグを書き出します。sgcCrypto_X509 は証明書を解析し、指定した発行者による署名を検証し、チェーンをたどって検証し、CRL を解析して失効を確認します。sgcCrypto_X509_Gen は自己署名証明書または PKCS#10 CSR をゼロから生成します。完全な subject/issuer 識別名、有効期間、パス長制約付き CA フラグ、鍵用途フラグ、拡張鍵用途 OID、IP アドレス SAN を含むサブジェクト代替名です。

耐量子6 ユニット

ML-KEM、ML-DSA、SLH-DSA、そしてハイブリッドコンバイナー

sgcCrypto_MLKEM は FIPS 203 の鍵カプセル化で、3 種類のパラメータセット(ML-KEM-512/768/1024)があり、不正な形式の暗号文には implicit rejection で対応します。sgcCrypto_MLDSA は FIPS 204 の署名、ML-DSA-44/65/87 です。sgcCrypto_SLHDSA は FIPS 205 で、6 種類の SHAKE パラメータセット(128s、128f、192s、192f、256s、256f)すべてに対応します。ML-KEM だけでは楕円曲線より新しい格子仮定にすべてを賭けることになるため、sgcCrypto_MLKEM_Hybrid は X25519 の秘密と ML-KEM の秘密を 1 つの共有鍵に組み合わせ、結果が古典的な方式より弱くなることのない、業界が収束しつつある移行パターンを実現します。

sgcCrypto_MLKEM sgcCrypto_MLDSA sgcCrypto_SLHDSA FIPS 203 · FIPS 204 · FIPS 205
OTP & その他6 ユニット

ワンタイムパスワード、エンコーディング、暗号化 ZIP エントリ

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 を残しています。

コンポーネントも、オブジェクトインスペクターもいりません

ユニットを uses に追加して、関数を呼び出すだけです。以下の呼び出しはそれぞれ、43 ユニットのうち異なる 1 つから来ており、対称暗号、ハッシュ、署名、耐量子暗号にまたがります。

uses
  sgcCrypto_Random, sgcCrypto_AES, sgcCrypto_Keccak, sgcCrypto_Ed25519,
  sgcCrypto_MLKEM;

var
  vKey, vIV, vPlain, vAAD, vTag, vCipher: TBytes;
  vDigest, vSeed, vSignature, vMessage: TBytes;
  vPublicKey, vPrivateKey, vSharedSecret, vCiphertext: TBytes;
begin
  // AES-256-GCM: authenticated encryption in one call
  vKey    := sgcRandomBytes(32);
  vIV     := sgcRandomBytes(12);
  vPlain  := TEncoding.UTF8.GetBytes('confidential payload');
  vCipher := sgcAES_GCM_Encrypt(vKey, vIV, vPlain, vAAD, vTag);

  // SHA-3-256, one call, no context object to manage
  vDigest := sgcSHA3_256(vPlain);

  // Ed25519: sign, then verify
  vSeed      := sgcRandomBytes(32);
  vMessage   := TEncoding.UTF8.GetBytes('sign me');
  vSignature := sgcEd25519_Sign(vSeed, vMessage);

  // ML-KEM-768: post-quantum key encapsulation (FIPS 203)
  sgcMLKEM_GenerateKeyPair(mlkem768, vPublicKey, vPrivateKey);
  sgcMLKEM_Encapsulate(mlkem768, vPublicKey, vCiphertext, vSharedSecret);
end;
// includes: sgcCrypto_Random.hpp, sgcCrypto_AES.hpp, sgcCrypto_Keccak.hpp,
// sgcCrypto_Ed25519.hpp, sgcCrypto_MLKEM.hpp

// AES-256-GCM: authenticated encryption in one call
TBytes vKey    = sgcRandomBytes(32);
TBytes vIV     = sgcRandomBytes(12);
TBytes vAAD, vTag;
TBytes vPlain  = TEncoding::UTF8->GetBytes("confidential payload");
TBytes vCipher = sgcAES_GCM_Encrypt(vKey, vIV, vPlain, vAAD, vTag);

// SHA-3-256, one call, no context object to manage
TBytes vDigest = sgcSHA3_256(vPlain);

// Ed25519: sign, then verify
TBytes vSeed      = sgcRandomBytes(32);
TBytes vMessage   = TEncoding::UTF8->GetBytes("sign me");
TBytes vSignature = sgcEd25519_Sign(vSeed, vMessage);

// ML-KEM-768: post-quantum key encapsulation (FIPS 203)
TBytes vPublicKey, vPrivateKey, vSharedSecret, vCiphertext;
sgcMLKEM_GenerateKeyPair(mlkem768, vPublicKey, vPrivateKey);
sgcMLKEM_Encapsulate(mlkem768, vPublicKey, vCiphertext, vSharedSecret);
重要な箇所は定数時間で処理

GCM と Poly1305 のタグ検証、HOTP/TOTP の検証、そして sgcConstantTimeEquals はすべて定数時間で比較するため、検証失敗が推測の近さについてのタイミング情報を漏らすことはありません。

デカプセル化が失敗することはありません

不正な形式の ML-KEM 暗号文はエラーではなく擬似乱数の秘密を生成します。FIPS 203 の implicit rejection で、攻撃者は暗号文が正しい形式だったかどうかから何も学べません。

Delphi 7 から 13 まで、変更なし

ネイティブな 64 ビット整数型は一切前提としていません。sgcCrypto_Int64TsgcBigInt が、ハッシュ、曲線、耐量子ユニットの必要とする演算をエミュレートするため、同じソースが対応するすべてのバージョンでコンパイルできます。

プロセスの外に何も出ません

すべての関数は渡されたデータに対してプロセス内で動作します。ライブラリのどこにもネットワーク呼び出しも、テレメトリも、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 をお持ちの場合は無料です。

  • sgcCrypto_*.pas 全 43 ユニット
  • sgcWebSockets Core ランタイム同梱
  • Delphi & C++ Builder、全 6 プラットフォーム
  • 完全なソースコード
  • 1 年間のアップデート

すでに sgcWebSockets Standard、Professional、Enterprise をお使いですか? sgcCrypto はすでにインストーラーに含まれており、注文は不要です。

価格を見て注文する
3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30日間返金保証ご満足いただけない場合は、ご購入から30日以内に全額返金をリクエストできます。 返金ポリシーを見る

コンポーネントのオーバーヘッドのない暗号化

暗号化、ハッシュ、署名、PKI、耐量子鍵交換をカバーする 43 の純関数が、Delphi や C++ Builder のコードがすでに動いている場所ならどこでも使えます。完全なソースコード、リレーなし、DLL なしです。

eSeGeCe のその他の製品

sgcCrypto を、他の Delphi、C++ Builder コンポーネントライブラリと組み合わせましょう。

sgcWebSockets

エンタープライズ向けの WebSocket、HTTP/2、MQTT、AMQP、WebRTC コンポーネントです。Standard、Professional、Enterprise はいずれも sgcCrypto を含みます。

詳しく見る →

sgcSign

エンタープライズ向けデジタル署名です。XAdES、PAdES、CAdES、ASiC に対応し、10 種類のキープロバイダーと EU 21 か国のプロファイルを備えています。

詳しく見る →

sgcAuth

OAuth2 クライアントと JWT クライアントのコンポーネント、そして WebAuthn によるパスキーサインインです。単体でも sgcWebSockets Core ランタイムを同梱しています。

詳しく見る →

sgcQUIC

ネイティブ OpenSSL 3.5 の QUIC エンジン上で動作する、QUIC(RFC 9000)と HTTP/3(RFC 9114)のクライアント・サーバーコンポーネントです。

詳しく見る →

sgcAI

AI、LLM、MCP コンポーネントです。1 つのチャットコンポーネントで OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok、Mistral に接続できます。

詳しく見る →

sgcMQ

ネイティブな MQTT 3.1.1/5.0、AMQP 0.9.1、AMQP 1.0、Apache Kafka、STOMP クライアントコンポーネントで、Core ランタイムを同梱しています。

詳しく見る →

sgcOpenAPI

OpenAPI 3.0 パーサーと SDK ジェネレーターです。任意の OpenAPI 仕様を、数秒で厳密に型付けされた Delphi クライアントに変換します。

詳しく見る →