Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
perl-CryptX | Kitploit
ツール/GitHubGitHub/dcit/perl-cryptx
パスワードクラッキング暗号化/復号化ツールハッシュ分析暗号化ユーティリティとフレームワーク認証
GitHubdcit/perl-cryptx

perl-CryptX

リポジトリを見る
412610日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

名前

CryptX - 暗号ツールキット

概要

CryptX はディストリビューションのエントリポイントです。通常のコードでは、下記に挙げる具体的なモジュールのいずれかをロードします。

root@kitploit:~
## one-shot hashing
use Crypt::Digest qw(digest_data_hex);
my $sha256 = digest_data_hex('SHA256', 'hello world');

## classic AES-CBC encryption with padding
use Crypt::Mode::CBC;
my $cbc = Crypt::Mode::CBC->new('AES');
my $iv = random_bytes(16); # 16-byte AES block-size IV
my $cbc_ciphertext = $cbc->encrypt('hello world', $key, $iv);

## authenticated encryption (AEAD) with AES
use Crypt::AuthEnc::GCM qw(gcm_encrypt_authenticate);
my $key = random_bytes(32);   # 32-byte AES-256 key
my $nonce = random_bytes(12); # 12-byte unique nonce
my ($ciphertext, $tag) = gcm_encrypt_authenticate('AES', $key, $nonce, 'header', 'hello world');

## message authentication
use Crypt::Mac::HMAC qw(hmac_hex);
my $mac = hmac_hex('SHA256', $key, 'hello world');

## secure random data + UUID helpers
use Crypt::PRNG qw(random_bytes random_string);
use Crypt::Misc qw(random_v4uuid random_v7uuid);
my $salt = random_bytes(16);
my $token = random_string(24);
my $uuid4 = random_v4uuid();
my $uuid7 = random_v7uuid();

## classic password-based key derivation
use Crypt::KeyDerivation qw(pbkdf2);
my $dk = pbkdf2('password', $salt, 100_000, 'SHA256', 32);

## bare stream cipher (authenticate separately)
use Crypt::Stream::ChaCha;
my $stream = Crypt::Stream::ChaCha->new($key, $nonce);
my $stream_ciphertext = $stream->crypt('hello world');

## modern signatures
use Crypt::PK::Ed25519;
my $signer = Crypt::PK::Ed25519->new->generate_key;
my $sig = $signer->sign_message('hello world');
my $ok = $signer->verify_message($sig, 'hello world');

## key agreement
use Crypt::PK::X25519;
my $alice = Crypt::PK::X25519->new->generate_key;
my $bob = Crypt::PK::X25519->new->generate_key;
my $shared_secret = $alice->shared_secret($bob);

説明

バンドルされている LibTomCrypt ライブラリをベースにした Perl 暗号モジュール群です。 このディストリビューションには Math::BigInt::LTM も含まれます。これは、バンドルされている LibTomMath ライブラリをベースにした Math::BigInt バックエンドで、 LibTomCrypt が内部で使用しています。

このモジュールは主に、ディストリビューション / ドキュメントの最上位ページとして機能します。実際の作業には、下記に挙げる具体的なモジュールのいずれかを使用してください。

アルゴリズム選択ガイド

認証付き暗号化 (AEAD)

新しい設計では、素の暗号モードよりも認証付き暗号化 (AEAD) を優先してください:

  • ChaCha20-Poly1305 (Crypt::AuthEnc::ChaCha20Poly1305) - 高速かつ定数時間で、広く採用されています (TLS 1.3、WireGuard、SSH)。これを既定の AEAD として使用してください。
  • XChaCha20-Poly1305 (Crypt::AuthEnc::XChaCha20Poly1305) - 24バイト nonce に拡張したバリアントです。nonce をランダムに生成する場合は、ChaCha20-Poly1305 よりもこちらを推奨します。
  • AES-GCM (Crypt::AuthEnc::GCM) - AES の標準的な AEAD モードです。現代の CPU ではハードウェアアクセラレーションが利用できます。一意の nonce が必要です。nonce の再利用はセキュリティを完全に破壊します。
  • AES-SIV (Crypt::AuthEnc::SIV) - 決定論的な AEAD で、nonce 誤用に耐性があります。やや遅くなりますが、nonce の一意性が保証できない場合にはより安全です。
  • AES-GCM-SIV (Crypt::AuthEnc::GCMSIV) - nonce 誤用に耐性のある AEAD (RFC 8452) です。AES-SIV より高速で、nonce 再利用の安全性を備えつつ GCM に近い性能が必要な場合にこれを選択してください。
  • AES-OCB (Crypt::AuthEnc::OCB) - 非常に高速なシングルパス AEAD です。お住まいの地域での特許状況を確認してください。
  • AES-EAX (Crypt::AuthEnc::EAX) - CTR+OMAC に基づく 2 パス AEAD です。特許がなく、nonce 長の制限もありません。
  • AES-CCM (Crypt::AuthEnc::CCM) - WiFi (WPA2) や Bluetooth で使用されています。平文の長さを事前に把握しておく必要があります。

暗号学的に安全な乱数と UUID

  • ランダムバイト / 文字列 (Crypt::PRNG) - ソルト、鍵、nonce、トークン、その他の秘密のランダム値に使用します。関数型ヘルパー random_bytes、random_bytes_hex、random_bytes_b64、random_bytes_b64u、random_string、random_string_from がほとんどのユースケースをカバーします。OO API とアルゴリズム固有のラッパー (Crypt::PRNG::ChaCha20、Crypt::PRNG::Fortuna など) は、主に決定論的ストリームや特定の PRNG との相互運用のために使用します。
  • UUID (Crypt::Misc の "random_v4uuid"、Crypt::Misc の "random_v7uuid") - random_v4uuid は、不透明なランダム識別子に使用します。ミリ秒単位の作成時刻でソートされる、おおまかに時刻順の識別子が必要な場合は random_v7uuid を使用します。UUID は識別子であり、秘密のランダムバイトの代替ではありません。

ストリーム暗号

ストリーム暗号は、ブロックパディングなしでデータをバイト単位で暗号化します。ほとんどのアプリケーションでは、暗号化と認証をまとめた AEAD モード (上記参照) を推奨します。認証を別途処理する場合にのみ、素のストリーム暗号を使用してください。

  • ChaCha (Crypt::Stream::ChaCha) - 既定のストリーム暗号です。組み込み MAC のない ChaCha20-Poly1305 と同じコアです。
  • XChaCha (Crypt::Stream::XChaCha) - ChaCha の 24バイト nonce 拡張バリアントです。nonce をランダムに生成する場合に推奨します。
  • Salsa20 / XSalsa20 (Crypt::Stream::Salsa20、Crypt::Stream::XSalsa20) - ChaCha の前身です。新しい設計では ChaCha を推奨します。Salsa20 は相互運用 (例: NaCl/libsodium) のためだけに使用してください。
  • RC4 (Crypt::Stream::RC4) - 破綻しています。新しい設計には使用しないでください。 レガシーな相互運用のためだけに提供されています。
  • Rabbit、Sober128、Sosemanuk (Crypt::Stream::Rabbit、Crypt::Stream::Sober128、Crypt::Stream::Sosemanuk) - eSTREAM ポートフォリオのニッチな暗号です。特定のプロトコルがこれらのいずれかを要求しない限り、ChaCha を使用してください。

ブロック暗号モード (認証なし)

これらは、認証を別途処理するか、認証が不要な場合にのみ使用してください:

  • CTR (Crypt::Mode::CTR) - ブロック暗号をストリーム暗号に変換します。並列化可能です。
  • CBC (Crypt::Mode::CBC) - 古典的なモードで、パディングが必要です。CTR または AEAD モードを推奨します。
  • ECB (Crypt::Mode::ECB) - ほとんどの用途で安全ではありません。 各ブロックが独立して暗号化されます。

Crypt::Cipher::AES、Crypt::Cipher::Twofish などの個別モジュールは、生の単一ブロック暗号化を実装しており、直接使用されることはほとんどありません。ほとんどすべての場合、代わりに AEAD モード (Crypt::AuthEnc::GCM、Crypt::AuthEnc::CCM) またはブロック暗号モード (Crypt::Mode::CBC、Crypt::Mode::CTR) を通して使用してください。暗号を選択する場合、AES が既定です。ほとんどの現代の CPU でハードウェアアクセラレーションが利用できます。

ハッシュ関数

  • SHA-256 / SHA-384 / SHA-512 (Crypt::Digest::SHA256 など) - 一般的なハッシュ化の既定の選択肢です。広くサポートされ、よく分析されています。
  • SHA3-256 / SHA3-512 (Crypt::Digest::SHA3_256 など) - 完全に異なる構造 (Keccak スポンジ) を持つ SHA-2 の代替です。
  • BLAKE2b / BLAKE2s (Crypt::Digest::BLAKE2b_256 など) - 特にソフトウェア実装で非常に高速です。64 ビットプラットフォームでは BLAKE2b、32 ビットでは BLAKE2s を使用します。
  • SHAKE / TurboSHAKE / KangarooTwelve - 拡張可能出力関数 (XOF) です。可変長の出力が必要な場合に使用します。

チェックサム

Crypt::Checksum::CRC32 と Crypt::Checksum::Adler32 は、偶発的な破損の検出など、攻撃を想定しない整合性チェックにのみ使用してください。これらは暗号学的な整合性や真正性のメカニズムではありません。暗号学的な用途には、Crypt::Digest、Crypt::Mac、または Crypt::AuthEnc の AEAD モードを推奨します。

メッセージ認証コード

  • HMAC (Crypt::Mac::HMAC) - 標準的な MAC 構造です。任意のハッシュで動作します。既定として HMAC-SHA256 を使用してください。
  • Poly1305 (Crypt::Mac::Poly1305) - ワンタイム MAC で、非常に高速です。ChaCha20-Poly1305 の一部として使用されます。メッセージごとに一意の鍵が必要です。
  • BLAKE2b-MAC (Crypt::Mac::BLAKE2b) - 鍵付き BLAKE2 です。ソフトウェア実装では HMAC-SHA256 より高速です。
  • CMAC/OMAC (Crypt::Mac::OMAC) - ブロック暗号ベースの MAC です。AES はあるがハッシュ関数がない場合に使用します。

公開鍵暗号

  • Ed25519 (Crypt::PK::Ed25519) - 現代的なデジタル署名です。高速かつ定数時間で、鍵と署名が小さくなります。新しい署名スキームの既定の選択肢です。
  • Ed448 (Crypt::PK::Ed448) - Ed25519 よりも高いセキュリティマージン (~224 ビット対 ~128 ビット) です。
  • X25519 (Crypt::PK::X25519) - 楕円曲線 Diffie-Hellman 鍵合意です。鍵交換の既定の選択肢です。
  • X448 (Crypt::PK::X448) - X25519 よりも高いセキュリティマージンです。
  • ECDSA (Crypt::PK::ECC) - 広く使用されています (TLS、Bitcoin)。相互運用のために ECDSA が必要でない限り、新しい設計では Ed25519 を推奨します。
  • RSA (Crypt::PK::RSA) - レガシーですが、非常に広く使用されています。鍵は最低 2048 ビット、できれば 4096 ビットを使用してください。暗号化には OAEP、署名には PSS を推奨します。
  • DSA (Crypt::PK::DSA) - レガシーです。Ed25519 または ECDSA を推奨します。
  • DH (Crypt::PK::DH) - 古典的な Diffie-Hellman です。新しい設計では X25519 を推奨します。

鍵導出 / パスワードハッシュ

  • HKDF (Crypt::KeyDerivation の "hkdf") - 抽出してから展開する KDF です。共有シークレット (例: ECDH 後) から鍵を導出するために使用します。
  • Argon2 (Crypt::KeyDerivation の "argon2_pbkdf") - メモリハードなパスワードハッシュです。パスワード保存の推奨選択肢です。
  • Bcrypt (Crypt::KeyDerivation の "bcrypt_pbkdf") - 主に、bcrypt ベースの鍵導出を特に要求する形式やプロトコル (例: 一部の OpenSSH ワークフロー) との互換性のために使用します。新しいパスワード保存の設計では Argon2 を推奨します。
  • Scrypt (Crypt::KeyDerivation の "scrypt_pbkdf") - メモリハードな KDF です。利用可能なら Argon2 を使用してください。
  • PBKDF2 (Crypt::KeyDerivation の "pbkdf2") - 広くサポートされていますが、強度は CPU のみに依存します。可能であれば Argon2 または Scrypt を使用してください。
  • PBKDF1 (Crypt::KeyDerivation の "pbkdf1"、Crypt::KeyDerivation の "pbkdf1_openssl") - レガシーな導出専用です。古い形式との相互運用のために残されています。新しい設計には使用しないでください。

エラー処理

ほとんどの CryptX モジュールは、croak (Carp 由来) を呼び出してエラーを報告します。無効なパラメータ、サポートされていないアルゴリズム、誤った鍵サイズ、不正な入力、内部ライブラリの障害は、通常、説明的なメッセージとともに croak します。例外は eval または Try::Tiny で捕捉してください。

一部の検証スタイルのヘルパーは、croak ではなく戻り値を使用します。最も重要な例は、認証付き暗号化モジュール Crypt::AuthEnc::* の *_decrypt_verify 関数です。認証に失敗すると、これらは undef を返し、暗号文が改ざんされたか、誤った鍵 / nonce が使用されたことを示します。他のモジュールの一部のパーサー / デコーダヘルパーも、不正な入力に対して undef または false を返すため、正確な失敗時のセマンティクスが必要な場合は、具体的なモジュールの POD を確認してください。

モジュールマップ

  • トップレベルのファミリモジュール

    Crypt::Cipher, Crypt::Mode, Crypt::AuthEnc, Crypt::Digest, Crypt::Mac, Crypt::Checksum, Crypt::PRNG, Crypt::PK, Crypt::KeyDerivation, Crypt::Misc, Crypt::ASN1

  • 対称暗号

    Crypt::Cipher::AES, Crypt::Cipher::Anubis, Crypt::Cipher::ARIA, Crypt::Cipher::Blowfish, Crypt::Cipher::Camellia, Crypt::Cipher::CAST5, Crypt::Cipher::DES, Crypt::Cipher::DES_EDE, Crypt::Cipher::IDEA, Crypt::Cipher::KASUMI, Crypt::Cipher::Khazad, Crypt::Cipher::MULTI2, Crypt::Cipher::Noekeon, Crypt::Cipher::RC2, , , , , , , , , , , , ,

診断関数

これらの低レベル関数は、バンドルされている LibTomCrypt ビルドの詳細を公開します。 これらはトラブルシューティングとバグレポートを目的としており、通常の使用を意図していません。

ltc_build_settings

root@kitploit:~
my $str = CryptX::ltc_build_settings();

バンドルされている LibTomCrypt ライブラリのビルド時に有効になっていたすべてのコンパイル時オプション(暗号、ハッシュ、MAC、PK アルゴリズム、コンパイラフラグなど)を説明する複数行の文字列を返します。

ltc_mp_name

root@kitploit:~
my $name = CryptX::ltc_mp_name();
# e.g. "LTM" (LibTomMath)

使用中の数学プロバイダーのバックエンド名を返します。

ltc_mp_bits_per_digit

root@kitploit:~
my $bits = CryptX::ltc_mp_bits_per_digit();
# e.g. 60

数学プロバイダーが使用する1桁あたりのビット数を返します。

Math::BigInt バックエンド

CryptX の一部として、バンドルされている LibTomMath ライブラリに基づく Math::BigInt バックエンドである Math::BigInt::LTM が含まれています。これは上記の暗号 API とは別個のものですが、同じディストリビューションに同梱されており、LibTomCrypt が依存しているのと同じ多倍長整数エンジンを使用します。

ライセンス

このプログラムはフリーソフトウェアです。Perl 自体と同じ条件で再配布および変更することができます。

著作権

Copyright (c) 2013-2026 DCIT, a.s. https://www.dcit.cz / Karel Miko

ツールをダウンロード
Crypt::Cipher::RC5
Crypt::Cipher::RC6
Crypt::Cipher::SAFERP
Crypt::Cipher::SAFER_K128
Crypt::Cipher::SAFER_K64
Crypt::Cipher::SAFER_SK128
Crypt::Cipher::SAFER_SK64
Crypt::Cipher::SEED
Crypt::Cipher::SM4
Crypt::Cipher::Serpent
Crypt::Cipher::Skipjack
Crypt::Cipher::Twofish
Crypt::Cipher::XTEA
  • ブロック暗号モード

    Crypt::Mode::CBC, Crypt::Mode::CFB, Crypt::Mode::CTR, Crypt::Mode::ECB, Crypt::Mode::OFB

  • ストリーム暗号

    Crypt::Stream::RC4, Crypt::Stream::ChaCha, Crypt::Stream::XChaCha, Crypt::Stream::Salsa20, Crypt::Stream::XSalsa20, Crypt::Stream::Sober128, Crypt::Stream::Sosemanuk, Crypt::Stream::Rabbit

  • 認証付き暗号化モード

    Crypt::AuthEnc::CCM, Crypt::AuthEnc::EAX, Crypt::AuthEnc::GCM, Crypt::AuthEnc::GCMSIV, Crypt::AuthEnc::OCB, Crypt::AuthEnc::ChaCha20Poly1305, Crypt::AuthEnc::XChaCha20Poly1305, Crypt::AuthEnc::SIV

  • ハッシュ関数Crypt::Digest::BLAKE2b_160, Crypt::Digest::BLAKE2b_256, Crypt::Digest::BLAKE2b_384, Crypt::Digest::BLAKE2b_512, Crypt::Digest::BLAKE2s_128, Crypt::Digest::BLAKE2s_160, Crypt::Digest::BLAKE2s_224, Crypt::Digest::BLAKE2s_256, Crypt::Digest::CHAES, Crypt::Digest::MD2, Crypt::Digest::MD4, Crypt::Digest::MD5, Crypt::Digest::RIPEMD128, Crypt::Digest::RIPEMD160, Crypt::Digest::RIPEMD256, Crypt::Digest::RIPEMD320, Crypt::Digest::SHA1, Crypt::Digest::SHA224, Crypt::Digest::SHA256, Crypt::Digest::SHA384, Crypt::Digest::SHA512, Crypt::Digest::SHA512_224, Crypt::Digest::SHA512_256, Crypt::Digest::Tiger192, Crypt::Digest::Whirlpool, Crypt::Digest::Keccak224, Crypt::Digest::Keccak256, Crypt::Digest::Keccak384, Crypt::Digest::Keccak512, Crypt::Digest::SHA3_224, Crypt::Digest::SHA3_256, Crypt::Digest::SHA3_384, Crypt::Digest::SHA3_512, Crypt::Digest::SHAKE, Crypt::Digest::TurboSHAKE, Crypt::Digest::KangarooTwelve, Crypt::Digest::SM3

  • チェックサム

    Crypt::Checksum::Adler32, Crypt::Checksum::CRC32

  • メッセージ認証コード

    Crypt::Mac::BLAKE2b, Crypt::Mac::BLAKE2s, Crypt::Mac::F9, Crypt::Mac::HMAC, Crypt::Mac::KMAC, Crypt::Mac::OMAC, Crypt::Mac::Pelican, Crypt::Mac::PMAC, Crypt::Mac::XCBC, Crypt::Mac::Poly1305

  • 公開鍵暗号

    Crypt::PK::RSA, Crypt::PK::DSA, Crypt::PK::ECC, Crypt::PK::DH, Crypt::PK::Ed25519, Crypt::PK::X25519, Crypt::PK::Ed448, Crypt::PK::X448

  • 暗号学的に安全な乱数生成器

    Crypt::PRNG::Fortuna, Crypt::PRNG::Yarrow, Crypt::PRNG::RC4, Crypt::PRNG::Sober128, Crypt::PRNG::ChaCha20

  • 鍵導出関数

    Crypt::KeyDerivation

  • ASN.1 パーサー

    Crypt::ASN1

    カスタムの ASN.1 / DER パースまたはエンコードが必要な場合にのみ Crypt::ASN1 を使用してください。 一般的な鍵および証明書形式のほとんどは PK モジュールで既に処理されています。

  • その他のヘルパー

    Crypt::Misc (base64/base32/base58 コーデック、PEM ヘルパー、定数時間比較、UUID 生成、オクテットインクリメントヘルパー、および関連ユーティリティ関数)