《A Study of Probabilistic Password Models》(IEEE SP 2014)——论文阅读

提出更高效的密码评估工具,将统计语言建模技术引入密码建模,系统评估各类概率密码模型性能,打破PCFGw的 “最优模型” 认知。

一、研究背景

        当前研究存在两大关键问题:一是主流的 “猜测数图” 计算成本极高,且难以覆盖强密码信息;二是被广泛视为 “最先进模型” 的概率上下文无关文法模型PCFG,未与全字符串马尔可夫模型等其他模型进行系统对比,且密码建模未充分借鉴统计语言建模领域的成熟技术(如平滑、归一化)。

二、概率密码模型

2.1 定义

        概率密码模型是一个函数p: Γ→[0,1]。Γ为所有合法密码集合。需满足两个条件:一是所有密码的概率非负;二是所有密码的概率和为 1。若模型对每个合法密码均分配非零概率,则称为 “完整模型”。

2.2 分类

        全字符串模型:不分割密码,密码有连贯性,直接对完整字符串建模,典型代表为马尔可夫链模型。

        基于模板的模型:将密码按字符类别(分割为多个片段,独立计算每个片段的概率,再相乘得到密码总概率。典型代表为PCFG模型,需依赖外部字典实例化字母片段。

三、统计语言建模技术

引入统计语言建模技术解决传统模型的稀疏性过拟合以及概率归一化问题

3.1  全字符串马尔可夫模型优化

        全字符串模型不分割密码,直接对完整字符串建模,核心为马尔可夫链模型

① 归一化方法:解决传统马尔可夫模型 “不同长度密码概率和为 1” 的不合理假设(实际密码长度集中在 6-10 位,占比 87%)。

  • 直接归一化:将每个密码概率除以合法长度范围,假设长度分布均匀
  • 分布 - based 归一化:按训练集中各长度密码的占比调整概率(如训练集中 8 位密码占 25%,则所有 8 位密码概率均乘以 25%),但可能因训练 / 测试集长度差异导致过拟合;
  • 结束符号归一化:在每个密码后追加 “结束符号”,通过学习 “字符→结束符号” 的转移概率,确保所有密码概率和为 1,同时修正 “前缀概率高于完整密码” 的问题(如 “passwor” 概率低于 “password”),与回溯结合时性能最优。

② 平滑技术:解决稀疏性与过拟合
高阶马尔可夫模型(如 5 阶)易因 “低频次字符序列计数为 0” 导致密码概率为 0(稀疏性),或因过度依赖训练集序列导致泛化差(过拟合)。论文引入两种核心平滑技术:

  • 加 δ 平滑(Add-δ):对所有字符序列的计数加 δ(取 δ=0.01),避免概率为 0,在高阶模型中性能优于 Good-Turing 平滑;
  • Good-Turing 平滑:基于 “出现 i 次的序列总概率≈出现 i+1 次的序列总概率”,调整低频次序列计数(如出现 1 次的序列计数降为 0.22),但对高阶模型易加剧过拟合。

③阶数自适应:回溯模型(Backoff)平衡拟合与泛化

        传统固定阶数马尔可夫模型存在 “高阶拟合好但泛化差,低阶泛化好但拟合差” 的矛盾。研究引入 Katz 回溯模型,实现阶数的动态自适应。

        高频序列用高阶:若某字符序列在训练集中出现频次高于设定阈值(如 10),用高阶模型(如 5 阶)计算下一个字符的概率,确保对常见组合的拟合精度。

        低频序列退低阶:若序列频次低于阈值,自动退化为低阶模型(如 2 阶),避免因稀疏性导致概率失真。

        概率归一化:对退阶后计算的概率进行归一化,确保同一序列的所有可能后续字符概率和为1.

3.2 对基于模板的模型进行优化

        针对传统PCFG模型(基于模板的代表)依赖外部字典、泛化差的缺陷,论文提出两类优化方向:

① 模板概率分配优化:传统PCFGw通过训练集计数获取模板概率(该模板出现次数 / 总密码数),论文提出 “用马尔可夫模型预测模板”,基于字符类型序列的转移概率计算模板概率,提升泛化能力;

        首先将模板转化为“字符类型序列”或“类型切换序列”(紧急炉类型变化点);

        基于训练集中所有密码的类型序列,训练一个 “类型级马尔可夫链”,,学习类型间的转移概率。eg:1 阶模型中,计算 “α后接β” 的概率P(β|α) = 训练集中 “α后接β” 的次数 / 训练集中 “α后接任意类型” 的总次数。

        对于任意模板(无论是否在训练集中出现),通过类型级马尔可夫模型计算其类型序列的概率,作为模板概率。eg:模板α^2\β^1)的类型序列为ααβ,其概率为P(α|start) ×P(α|α) ×P(β|α)(start为起始符号)

优势:即使测试集中出现训练集未见过的新模板,模型也能基于类型转移规律分配合理概率,避免 “零概率” 问题,泛化性显著优于传统计数方法。

② 片段实例化优化:传统PCFGw依赖外部字典实例化字母片段(未在字典中的序列概率为 0),论文提出 “从训练集生成字典” “用马尔可夫模型计算片段概率”。核心是 “从训练数据中学习片段概率” 并引入平滑技术,覆盖更多序列,如训练集字典使PCFGw破解率从 50% 提升至 75%。

        从训练集生成字典:

  • 遍历训练集中所有密码,按模板片段的 “类型 + 长度” 拆分出所有片段,构建分类型、分长度的片段库。
  • 对于某一 “类型 + 长度” 的片段(eg:α^6),其下某具体片段(如 “passwd”)的概率 = 该片段在训练集中的出现次数 / 训练集中该 “类型 + 长度” 的所有片段总次数。
  • 优势是完全基于用户真实密码片段,覆盖个性化组合;局限是对训练集中未出现的稀疏片段,仍分配概率 0,存在稀疏性问题。

        用马尔可夫模型计算片段概率:

  • tb-co-mc 模型:模板概率用传统计数(co),片段实例化用马尔可夫(mc)。模板概率仍通过训练集计数计算。片段实例化时,对字母片段、数字片段分别训练对应长度的马尔可夫链,计算具体字符序列的概率。
  • tb-mc-mc 模型:模板概率与片段实例化都用马尔可夫(mc)。模板概率通过类型级马尔可夫模型计算,片段实例化用字符级马尔可夫模型,并引入 “加 δ 平滑”,对未出现的片段分配极低但非零的概率,解决稀疏性问题。

四、新型密码评估工具:概率阈值图

        针对传统 “猜测数图(Guess-Number Graphs)” 计算成本高、覆盖范围有限的缺陷,论文提出概率阈值图,作为 Type-1 研究(对比不同密码集相对强度)的核心评估工具。

4.1 介绍

        以 “对数尺度的概率阈值” 为横轴(单位:2^{-x},x为横轴坐标),“概率高于该阈值的密码百分比” 为纵轴。图中某点(x,y)表示测试集中y%的密码,其概率不低于2^{-x}。

4.2 步骤

        基于目标密码模型,计算测试集中每一条密码的概率。设定一系列概率阈值。对每个阈值统计测试集中概率高于该阈值的密码数量,计算占比。以阈值的对数为轴,占比为纵轴,画线。

五、总结

        本研究通过提出新型评估工具、优化密码模型、开展大规模实验,为密码研究提供了更高效的方法论与技术框架,优化后的全字符串马尔可夫模型可替代PCFG成为新的主流模型,为后续密码强度评估、破解工具开发提供重要支撑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/97937.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/97937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

校园外卖点餐系统(代码+数据库+LW)

摘要 随着校园生活节奏的加快,学生对外卖的需求日益增长。然而,传统的外卖服务存在诸多不便,如配送时间长、菜品选择有限、信息更新不及时等。为解决这些问题,本研究开发了一款校园外卖点餐系统,采用前端 Vue、后端 S…

友思特案例 | 食品行业视觉检测案例集锦(三)

食品制造质量检测对保障消费者安全和产品质量稳定至关重要,覆盖原材料至成品全阶段,含过程中检测与成品包装检测。近年人工智能深度学习及自动化系统正日益融入食品生产。本篇文章将介绍案例三:友思特Neuro-T深度学习平台进行面饼质量检测。在…

SQLynx 3.7 发布:数据库管理工具的性能与交互双重进化

目录 🔑 核心功能更新 1. 单页百万级数据展示 2. 更安全的数据更新与删除机制 3. 更智能的 SQL 代码提示 4. 新增物化视图与外表支持 5. 数据库搜索与过滤功能重构 ⚡ 总结与思考 在大数据与云原生应用快速发展的今天,数据库管理工具不仅要“能用…

10G网速不是梦!5G-A如何“榨干”毫米波,跑出比5G快10倍的速度?

5G-A(5G-Advanced)网络技术已经在中国福建省厦门市软件园成功实现万兆(10Gbps)速率验证,标志着我国正式进入5G增强版商用阶段。这一突破性成果不仅验证了5G-A技术的可行性,也为6G网络的发展奠定了坚实基础。…

Linux笔记---UDP套接字实战:简易聊天室

1. 项目需求分析 我们要设计的是一个简单的匿名聊天室,用户的客户端要求用户输入自己的昵称之后即可在一个公共的群聊当中聊天。 为了简单起见,我们设计用户在终端当中与客户端交互,而在一个文件当中显式群聊信息: 当用户输入的…

RTP打包与解包全解析:从RFC规范到跨平台轻量级RTSP服务和低延迟RTSP播放器实现

引言 在实时音视频系统中,RTSP(Real-Time Streaming Protocol)负责会话与控制,而 RTP(Real-time Transport Protocol)负责媒体数据承载。开发者在实现跨平台、低延迟的 RTSP 播放器或轻量级 RTSP 服务时&a…

Ubuntu 用户和用户组

一、 Linux 用户linux 是一个多用户操作系统,不同的用户拥有不同的权限,可以查看和操作不同的文件。 Ubuntu 有三种用户1、初次创建的用户2、root 用户---上帝3、普通用户初次创建的用户权限比普通用户要多,但是没有 root 用户多。Linux 用户…

FastGPT社区版大语言模型知识库、Agent开源项目推荐

​ FastGPT 项目说明 项目概述 FastGPT 是一个基于大语言模型(LLM)的知识库问答系统,提供开箱即用的数据处理和模型调用能力,支持通过可视化工作流编排实现复杂问答场景。 技术架构 前端: Next.js TypeScript Chakra UI 后…

jsencrypt公钥分段加密,支持后端解密

前端使用jsencryp实现分段加密。 解决长文本RSA加密报错问题。 支持文本包含中文。 支持后端解密。前端加密代码: // import { JSEncrypt } from jsencrypt const JSEncrypt require(jsencrypt) /*** 使用 JSEncrypt 实现分段 RSA 加密(正确处理中文字符…

生成一份关于电脑电池使用情况、健康状况和寿命估算的详细 HTML 报告

核心作用 powercfg /batteryreport 是一个在 Windows 命令提示符或 PowerShell 中运行的命令。它的核心作用是:生成一份关于电脑电池使用情况、健康状况和寿命估算的详细 HTML 报告。 这份报告非常有用,特别是对于笔记本电脑用户,它可以帮你&…

从 0 到 1 实现 PyTorch 食物图像分类:核心知识点与完整实

食物图像分类是计算机视觉的经典任务之一,其核心是让机器 “看懂” 图像中的食物类别。随着深度学习的发展,卷积神经网络(CNN)凭借强大的特征提取能力,成为图像分类的主流方案。本文将基于 PyTorch 框架,从…

Python 值传递 (Pass by Value) 和引用传递 (Pass by Reference)

Python 值传递 {Pass by Value} 和引用传递 {Pass by Reference}1. Mutable Objects and Immutable Objects in Python (Python 可变对象和不可变对象)2. Pass by Value and Pass by Reference2.1. What is Pass by Value in Python?2.2. What is Pass by Reference in Python…

aippt自动生成工具有哪些?一文看懂,总有一款适合你!

在当今快节奏的工作与学习环境中,传统耗时的PPT制作方式已难以满足高效表达的需求。随着人工智能技术的发展,AI自动生成PPT工具应运而生,成为提升演示文稿制作效率的利器。这类工具通过自然语言处理和深度学习技术,能够根据用户输…

Langflow 框架中 Prompt 技术底层实现分析

Langflow 框架中 Prompt 技术底层实现分析 1. Prompt 技术概述 Langflow 是一个基于 LangChain 的可视化 AI 工作流构建框架,其 Prompt 技术是整个系统的核心组件之一。Prompt 技术主要负责: 模板化处理:支持动态变量替换的提示词模板变量验证…

前端、node跨域问题

前端页面访问node后端接口跨域报错 Access to XMLHttpRequest at http://192.18.31.75/api/get?namess&age19 from origin http://127.0.0.1:5500 has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource. 这个报…

超越马力欧:如何为经典2D平台游戏注入全新灵魂

在游戏开发的世界里,2D平台游戏仿佛是一位熟悉的老朋友。从《超级马力欧兄弟》开启的黄金时代到现在,这个类型已经经历了数十年的演变与打磨。当每个基础设计似乎都已被探索殆尽时,我们如何才能打造出一款令人耳目一新的平台游戏?…

基于Springboot + vue3实现的时尚美妆电商网站

项目描述本系统包含管理员和用户两个角色。管理员角色:商品分类管理:新增、查看、修改、删除商品分类。商品信息管理:新增、查看、修改、删除、查看评论商品信息。用户管理:新增、查看、修改、删除用户。管理员管理:查…

网络协议之https?

写在前面 https协议还是挺复杂的,本人也是经过了很多次的学习,依然感觉一知半解,无法将所有的知识点串起来,本次学习呢,也是有很多的疑惑点,但是还是尽量的输出内容,来帮助自己和在看文章的你来…

word运行时错误‘53’,文件未找到:MathPage.WLL,更改加载项路径完美解决

最简单的方法解决!!!安装Mathtype之后粘贴显示:运行时错误‘53’,文件未找到:MathPage.WLLwin11安装mathtype后会有这个错误,这是由于word中加载项加载mathtype路径出错导致的,这时候…

React实现列表拖拽排序

本文主要介绍一下React实现列表拖拽排序方法,具体样式如下图首先,简单展示一下组件的数据结构 const CodeSetting props > {const {$t, // 国际化翻译函数vm, // 视图模型数据vm: {CodeSet: { Enable [], …