/ Модель

Характеристики

Опубликована
15 июн 2023

passgpt-16characters

Генерация текстаТекст → текст3 профессии

Авторегрессионная GPT-2-модель, генерирующая пароли на основе распределения паролей из утечки RockYou.

2скачиваний за 30 дней14лайковвеса обновлены6 июл 2023

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

PassGPT-16characters — авторегрессионная языковая модель на архитектуре GPT-2, обученная разработчиком модели на паролях из утечки RockYou. Эта версия включает пароли длиной до 16 символов; модель обучалась с нуля, а словарь сокращён до наиболее значимых символов. Токенизатор кодирует каждый символ пароля отдельным токеном.

Модель предназначена для генерации паролей и экспериментов с моделированием распределения паролей в задачах кибербезопасности. Она выдаёт последовательности символов, продолжая заданный стартовый токен. Это специализированная модель для паролей, а не универсальная языковая модель; её обучение на утёкших данных ограничивает применение задачами исследований и оценки безопасности. В README не указана лицензия.

Сценарии применения

  • генерация реалистичных паролей для исследований безопасности
  • моделирование распределения паролей из утечек
  • оценка устойчивости систем проверки паролей
  • создание тестовых наборов паролей для экспериментов

Ограничения

Обучена на паролях из утечки RockYou, поэтому может воспроизводить характерные для этих данных шаблоны и не подходит для универсальной генерации надёжных паролей. Лицензия в README не указана.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

PassGPT

PassGPT is a causal language model trained on password leaks. It was first introduced in this paper. This version of the model was trained on passwords from the RockYou leak, after filtering those that were at most 16 characters long. You can also access PassGPT trained on passwords up to 10 characters long, without restrictions here.

This is a curated version of the model reported in the paper. Vocabulary size was reduced to the most meaningful characters and training was slightly optimized. Results are slightly better with these architectures.

Usage and License Notices

License PassGPT is intended and licensed for research use only. The model and code are CC BY NC 4.0 (allowing only non-commercial use) and should not be used outside of research purposes. This model should never be used to attack real systems. Access will be granted upon request. Please, make sure to indicate the details and scope of your project.

Model description

The model inherits the GPT2LMHeadModel architecture and implements a custom BertTokenizer that encodes each character in a password as a single token, avoiding merges. It was trained from a random initialization, and the code for training can be found in the official repository.

Password Generation

Passwords can be sampled from the model using the built-in generation methods provided by HuggingFace and using the "start of password token" as seed (i.e. <s>). This code can be used to generate one password with PassGPT. Note you may need to generate an access token to authenticate your download.

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

# Generate passwords sampling from the beginning of password token
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]])

# Remove start of sentence token
g = g[:, 1:]

decoded = tokenizer.batch_decode(g.tolist())
decoded_clean = [i.split("</s>")[0] for i in decoded] # Get content before end of password token

# Print your sampled passwords!
print(decoded_clean)

You can find a more flexible script for sampling here.

Cite our work

@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}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Доступ к модели ограничен автором; у платформы нет доступа к весам.

Ревизия весов
57854a9

0 моделей