🚀 PassGPT
PassGPTは、パスワードの漏洩データを使って学習された因果言語モデルです。このモデルは、この論文で初めて紹介されました。このバージョンのモデルは、RockYouの漏洩データから最大16文字のパスワードをフィルタリングしたものを使って学習されています。また、最大10文字のパスワードで学習されたPassGPTには、制限なくこちらからアクセスできます。
これは論文で報告されたモデルの精選版です。語彙サイズは最も意味のある文字に絞られ、学習も若干最適化されています。これらのアーキテクチャでは、結果が若干良くなります。
🚀 クイックスタート
このセクションでは、PassGPTの基本的な使い方や必要な情報を紹介します。
✨ 主な機能
- パスワードの漏洩データを使った因果言語モデル。
- 最大16文字のパスワードを生成可能。
- 学習データやアーキテクチャの最適化により、性能向上。
📦 インストール
このモデルを使用するには、以下のライブラリが必要です。
from transformers import GPT2LMHeadModel
from transformers import RobertaTokenizerFast
💻 使用例
基本的な使用法
from transformers import GPT2LMHeadModel
from transformers import RobertaTokenizerFast
tokenizer = RobertaTokenizerFast.from_pretrained("javirandor/passgpt-16characters",
use_auth_token="YOUR_ACCESS_TOKEN",
max_len=18,
padding="max_length",
truncation=True,
do_lower_case=False,
strip_accents=False,
mask_token="<mask>",
unk_token="<unk>",
pad_token="<pad>",
truncation_side="right")
model = GPT2LMHeadModel.from_pretrained("javirandor/passgpt-16characters", use_auth_token="YOUR_ACCESS_TOKEN").eval()
NUM_GENERATIONS = 1
g = model.generate(torch.tensor([[tokenizer.bos_token_id]]),
do_sample=True,
num_return_sequences=NUM_GENERATIONS,
max_length=18,
pad_token_id=tokenizer.pad_token_id,
bad_words_ids=[[tokenizer.bos_token_id]])
g = g[:, 1:]
decoded = tokenizer.batch_decode(g.tolist())
decoded_clean = [i.split("</s>")[0] for i in decoded]
print(decoded_clean)
高度な使用法
より柔軟なパスワード生成スクリプトは、こちらから入手できます。
📚 ドキュメント
モデルの説明
このモデルは、GPT2LMHeadModelアーキテクチャを継承し、カスタムのBertTokenizerを実装しています。このトークナイザーは、パスワードの各文字を単一のトークンとしてエンコードし、マージを回避します。モデルはランダムな初期化から学習され、学習コードは公式リポジトリにあります。
パスワード生成
パスワードは、HuggingFaceが提供する組み込みの生成メソッドを使用し、「パスワードの開始トークン」(例:<s>
)をシードとしてモデルからサンプリングできます。
🔧 技術詳細
📄 ライセンス
PassGPTは、研究目的のみを意図し、その使用が許可されています。モデルとコードはCC BY NC 4.0(非商用利用のみ許可)であり、研究目的以外で使用してはなりません。このモデルは、決して実際のシステムを攻撃するために使用してはなりません。要求に応じてアクセスが許可されます。プロジェクトの詳細と範囲を必ず明記してください。
📚 引用
@article{rando2023passgpt,
title={PassGPT: Password Modeling and (Guided) Generation with Large Language Models},
author={Rando, Javier and Perez-Cruz, Fernando and Hitaj, Briland},
journal={arXiv preprint arXiv:2306.01545},
year={2023}
}
📋 追加情報
属性 |
详情 |
モデルタイプ |
因果言語モデル |
学習データ |
RockYouの漏洩データ(最大16文字のパスワード) |
⚠️ 重要提示
PassGPTは研究目的のみを意図しており、非商用利用のみ許可されています。実際のシステムを攻撃するために使用してはなりません。
💡 使用建议
パスワード生成には、「パスワードの開始トークン」(<s>
)をシードとして使用してください。また、ダウンロードを認証するために、アクセストークンを生成する必要がある場合があります。