Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
perl-CryptX — 対称暗号、AEADモード、ハッシュ関数、MAC、公開鍵暗号、鍵導出、およびバンドルされたLibTomCryptライブラリによる安全な乱数生成を提供するPerl暗号化ツールキット。 | Kitploit
ツール/GitHubGitHub/dcit/perl-cryptx
パスワードクラッキング暗号化/復号化ツールハッシュ分析暗号化ユーティリティとフレームワーク認証
GitHubdcit/perl-cryptx

perl-CryptX

対称暗号、AEADモード、ハッシュ関数、MAC、公開鍵暗号、鍵導出、およびバンドルされたLibTomCryptライブラリによる安全な乱数生成を提供するPerl暗号化ツールキット。

リポジトリを見る
4126211ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

名前

CryptX - 暗号ツールキット

概要

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

## 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) です。可変長の出力が必要な場合に使用します。

チェックサム

ツールをダウンロード