sgcCrypto 暗号技術を、 純粋な Pascal で。 配布する DLL はなし。

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 までそのままコンパイルできます。

  • Delphi 7 から 13
  • C++ Builder
  • Win32, Win64, Linux64
  • macOS, iOS, Android
  • ポスト量子
  • ソースコード完全付属
sgcCrypto クイックスタート: Delphi での sgcAES_GCM_Encrypt と sgcAES_GCM_Decrypt。ノンス、暗号文、タグを表示し、改ざんされたメッセージは復号時に拒否されます
  • 43個の Object Pascal ユニット (すべて通常の関数)
  • 6個の機能ファミリー (AEAD からポスト量子まで)
  • 6個のターゲット: Win32、Win64、Linux64、macOS、iOS、Android
  • 100%すべてのライセンスにソースコードが付属
  • 0外部依存なし。バージョンを合わせる OpenSSL も不要
動作を見る

2 分でわかる sgcCrypto。

ハッシュ、認証付き暗号化、パスワードの保存、署名、ポスト量子の鍵カプセル化を、関数呼び出し 1 回ずつ紹介します。ナレーションと字幕付きです。再生ボタンを押すまで何もダウンロードされません。

6 つの機能ファミリー

暗号化、ハッシュ、署名、証明書、そして量子の問いを越えて。

ファミリーは背後にある数学ではなく、行いたい作業ごとに分かれています。そのため、手に取るユニットは、作りたいものの名前そのままです。

共通鍵 · 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 暗号になります。復号ではタグを一定時間で比較し、検証に失敗した場合は平文を返しません。

共通鍵のユニット →

ハッシュと KDF · 11 ユニット

SHA-1、SHA-2、SHA-3、SHAKE、cSHAKE、KMAC に加え、BLAKE2b と BLAKE2s も備えています。PBKDF2、HKDF、scrypt、そして d、i、id の 3 種類すべてに対応した sgcCrypto_Argon2。ハッシュテーブルのキーには sgcCrypto_SipHash、あらゆるダイジェストに対する sgcCrypto_HMAC も使えます。

ハッシュのユニット →

署名と鍵交換 · 10 ユニット

Ed25519 と Ed448 が署名し、X25519 と X448 が対応する Diffie-Hellman を行います。sgcCrypto_ECCurves は 7 種類の曲線上の ECDSA と ECDH を、RFC 6979 の決定的ノンスと BIP-340 の Schnorr 署名とともに提供します。RSA 鍵は任意のビット長に対応し、PKCS#1 と PKCS#8 の DER または PEM でエクスポートできます。

できることを見る →

PKI · 5 ユニット

sgcCrypto_X509 は証明書の解析、発行者の検証、チェーンの探索、CRL の読み取りを行います。sgcCrypto_X509_Gen は、識別名 (DN) の全項目、有効期間、CA フラグ、キー使用法、拡張キー使用法、サブジェクト代替名を指定して、自己署名証明書または PKCS#10 の CSR を生成します。

証明書まわりの機能 →

ポスト量子 · 6 ユニット

FIPS 203 の鍵カプセル化は 3 つのパラメーターセットすべてに、FIPS 204 の署名は ML-DSA-44、65、87 に、FIPS 205 は SHAKE の 6 つのパラメーターセットすべてに対応します。sgcCrypto_MLKEM_Hybrid は X25519 の秘密と ML-KEM の秘密を組み合わせるため、共有鍵が従来方式の半分より弱くなることはありません。

ポスト量子のユニット →

OTP とその他 · 6 ユニット

sgcCrypto_OTP は、時計のずれを吸収する一定時間のウィンドウで HOTP と TOTP のコードを生成・検証します。一定時間比較、バッファーの安全なゼロクリア、hex、Base64url、Base32、ZIP エントリ向けの WinZip AES AE-1 と AE-2、そしてすべての鍵の基盤となるクロスプラットフォームの CSPRNG も揃っています。

OTP とユーティリティ →
コード

関数を呼べば、バイトが返ってくる。

オブジェクトの生成も、コンテキストの解放も、開いたままにするハンドルもありません。どちらのスニペットも、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;
  1. ユニットを uses 句に追加するコンポーネントを登録するユニットはないため、パレットには何も表示されず、フォームに配置するものもありません。
  2. 関数を呼び出す鍵、ノンス、平文、結果はすべて TBytes です。sgcRandomBytes はどのプラットフォームでも同じ呼び出しで、ターゲットごとに適切な CSPRNG が使われます。
  3. 失敗時の動作を信頼するAEAD の復号はタグを一定時間で検証し、失敗時は何も返さないため、改ざんされたデータが平文として返ることはありません。

Object Pascal でも C++ Builder でも同じ形で使えます。すべてのユニットと関数は機能一覧表に掲載しています。

機能一覧表をすべて見る

ご購入の前に

通常の関数と、同梱のランタイムが 1 つだけ。間に挟まるものはありません。

sgcCrypto は、配布とバージョン合わせが必要なライブラリに頼らず、プリミティブを直接実装しています。そのため、鍵もダイジェストも署名も関数呼び出し 1 回で済み、ソースコードが完全に付属するので、間にブラックボックスは存在しません。

sgcCrypto クイックスタート: sgcArgon2id でパスワードを保存し、sgcConstantTimeEquals で比較

パスワードを、正しく保存

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

sgcCrypto クイックスタート: ハッシュ、MAC、パスワードと KDF、共通鍵、公開鍵、ポスト量子、証明書、その他の関数の全一覧

6 つのファミリー、43 個のユニット

共通鍵 (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 だけです。

TLS 1.3 と TLS 1.2 のエンジン

このパックには、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 の既知解ベクターと照合しています。

すべてのユニットと関数 →
ライセンス

sgcCrypto は、すでにお持ちかもしれません。

43 個のユニットすべてが、sgcWebSockets の Standard、Professional、Enterprise、および All-Access に追加費用なしで含まれています。sgcWebSockets Core のみをお持ちの場合や、sgcWebSockets のライセンスをお持ちでない場合は、Core ランタイムを暗号ユニットと同梱したスタンドアロンパッケージをご利用ください。すべてのライセンスにソースコード完全付属で、ロイヤリティ無料で配布できます。

sgcWebSockets のエディション

sgcCrypto は Standard 以上に、WebSocket、HTTP/2、MQTT などライブラリの他の機能とともに無料で含まれています。いずれかをお持ちであれば、追加で購入するものはありません。

€380 / 開発者

sgcCrypto スタンドアロン

sgcWebSockets Core ランタイムを同梱した全 43 ユニット。Core のみをお持ちの方や、sgcWebSockets のライセンスをお持ちでない開発者向けです。Single、Team、Site の各ライセンスがあります。

€149 / 開発者

All-Access バンドル

eSeGeCe のすべての製品を 1 年間、Delphi と .NET の両方でご利用いただけます。sgcCrypto を含み、プレミアムサポート付きです。

€1,059 / 開発者

無料体験版のインストーラーは sgcWebSockets All-Access の体験版なので、43 個のユニットすべてをすぐに評価できます。

sgcCrypto の価格を見る
お客様の声

開発者の声

世界中の Delphi、C++ Builder、Lazarus、.NET 開発者から信頼されています。

sgcWebSockets ライブラリはとても便利でセットアップも簡単です。これからも頑張ってください!
Simone Moretti Delphi Developer
sgcWebSockets は素晴らしく、サポートも最高です!
Christian Meyer Founder & CTO
ご支援とサポートに本当に感謝しています。コンポーネントが大好きです。
Mark Steinfeld CTO

バイトを入れて、バイトを受け取る、ネイティブコード。

AEAD 暗号化、ハッシュ、署名、X.509、ポスト量子暗号を 43 個のユニットで提供。ソースコードは完全付属です。

ブログの最新記事

すべての記事を見る →

現在は eSeGeCe の暗号技術ビューを表示しています。

別の切り口を見る →
30日間返金保証ご満足いただけない場合は、ご購入から30日以内に全額返金をリクエストできます。 返金ポリシーを見る