数字信任的底层逻辑:密码学核心技术与现实应用

安全和密码学 --The Missing Semester of Your CS Education

目录

  1. 熵与密码强度
  2. 密码散列函数
  3. 密钥体系
    3.1 对称加密
    3.2 非对称加密
  4. 信任模型对比
  5. 典型应用案例
  6. 安全实践建议
  7. 扩展练习
  8. 杂项

密码学是构建数字信任的基石。
本文浅析密码学在现实工具中的应用,涵盖
1)熵 2)散列函数 3)加密体系;

XKCD密码强度漫画

一、熵与密码强度

1.1 熵的数学定义

熵(Entropy)的计算公式:
H = log₂(n)
其中n为可能的组合数

1.2 密码强度评估

密码类型熵值计算示例密码
4单词组合4×log₂(100000) ≈ 66.4 bitscorrecthorsebatterystaple
8字符混合密码log₂(62⁸) ≈ 47.5 bitsrg8Ql34g

1.3 破解时间估算

  • 4单词密码:约1.5×10¹⁹年
  • 8字符密码:约1.5×10⁷年

二、密码散列函数

2.1 核心特性

$ printf 'hello' | sha1sum
aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
  • 确定性
  • 不可逆性
  • 碰撞抵抗性

2.2 应用场景

  1. Git内容寻址存储
  2. 软件完整性验证
  3. 密码承诺机制

三、密钥体系

3.1 对称加密(AES)

openssl aes-256-cbc -salt -in plain.txt -out encrypted.bin

3.2 非对称加密(RSA/ED25519)

ssh-keygen -t ed25519 -o -a 100
3.2.1)Q1:为什么私钥能解开公钥上的锁?

A:大数定理。具体见下文:
非对称加密算法的数学设计–RSA算法为例

3.2.2)Q2:数字签名是什么?

A:[下文括号内,代表函数的x ]

  • 发送方:签名 = 私钥加密 [ hash(发送的消息) ];
  • 接收方:hash_1= 公钥解密[签名];
    • THEN 比较:得到的hash_1 VS hash_2(收到的消息);
    • IF 相等,证明:收到的消息 = 发送的消息

密码学中的数字签名是什么?

定义: 数字签名是一种基于密码学的技术,用于验证数据的真实性完整性不可否认性。它类似于现实中的手写签名,更安全、不可伪造。

核心原理

  • 非对称加密

    :使用一对密钥(公钥和私钥)。

    • 私钥:由签名者秘密保存,用于生成签名。
    • 公钥:公开分发,用于验证签名。
  • 哈希函数:通常先对消息生成唯一的哈希值(摘要),再对哈希值签名,提高效率。

工作流程

  1. 签名生成:发送方用私钥对消息的哈希值加密,生成签名。
  2. 签名验证:接收方用发送方的公钥解密签名,得到哈希值,再对比自己计算的哈希值是否一致。

作用

  • 身份认证:确认消息来源(谁签的名)。
  • 完整性:确保消息未被篡改。
  • 不可否认性:签名者事后无法否认自己的签名。

常见算法:RSA、ECDSA(比特币使用)、EdDSA等。

3.3 密钥生成函数(KDF)

  • 密码存储方案:KDF(password + salt)
  • 推荐迭代次数:≥100,000次

四、信任模型对比

模型类型代表产品验证方式适用场景
首次信任SignalSafety Number比对即时通讯
信任网络PGP密钥签名链邮件加密
社交证明Keybase社交媒体验证跨平台身份

五、典型应用案例

5.1 SSH身份验证流程

客户端 服务器 连接请求 随机挑战值 签名响应 验证签名 客户端 服务器

5.2 全盘加密方案

  • Linux: LUKS + cryptsetup
  • Windows: BitLocker
  • macOS: FileVault

5.3 密码管理器架构

+----------------+
|     主密码      |
+--------+-------+
         ↓
+----------------+
|   KDF生成密钥   |
+--------+-------+
         ↓
+----------------+
|   AES加密密码库 |
+----------------+

六、安全实践建议

  1. 启用两步验证(2FA)
  2. 使用密码管理器生成高熵密码
  3. 定期更新SSH密钥(推荐ED25519)
  4. 验证下载文件的哈希值
  5. 对敏感提交进行GPG签名

七、扩展练习

# 验证文件完整性
curl -LO https://debian.org/checksums
sha256sum -c SHA256SUMS

# 创建签名提交
git commit -S -m "安全更新"
git show --show-signature

s://debian.org/checksums
sha256sum -c SHA256SUMS

创建签名提交

git commit -S -m "安全更新"
git show --show-signature

杂项:

Q3:“挖比特币”为什么叫“挖”?到哪里挖?

  • 类似一次种哈希计算竞赛。
  • 需要通过计算“挖掘”才能获得;
  • 矿工通过解决复杂数学难题(哈希计算)来竞争记账权,成功者获得比特币奖励,过程需要消耗算力(类似“挖”的劳力)。
  • 涉及区块链技术

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

达梦有没有类似oerr的功能

在oracle 23ai的sqlplus中&#xff0c;直接看异常信息说明&#xff1a; 达梦没有此功能&#xff0c;但是可以造一个 cd /home/dmdba cat >err.sql<<eof set echo off set ver off set timing off set lineshow off set feedback off select * from V\$ERR_INFO wher…

linux--多进程开发(5)--进程

进程间通讯概念 每两个进程之间都是独立的资源分配单元&#xff0c;不同进程之间不能直接访问另一个进程的资源。 但不同的进程需要进行信息的交互和状态的传递等&#xff0c;因此需要进程间通信&#xff08;IPC,inter processes cimmunication) 进程通信的目的&#xff1a; …

(二)趣学设计模式 之 工厂方法模式!

目录 一、 啥是工厂方法模式&#xff1f;二、 为什么要用工厂方法模式&#xff1f;三、 工厂方法模式怎么实现&#xff1f;四、 工厂方法模式的应用场景五、 工厂方法模式的优点和缺点六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博…

【c语言】字符函数和字符串函数(1)

一、字符分类函数 c语言中有部分函数是专门做字符分类的&#xff0c;也就是一个字符是属于什么类型的字符&#xff0c;这些函 数的使用要包含一个头文件ctype.h中。 其具体如下图所示&#xff1a; 这些函数的使用方式都类似&#xff0c;下面我们通过一个函数来看其…

网络安全 机器学习算法 计算机网络安全机制

&#xff08;一&#xff09;网络操作系统 安全 网络操作系统安全是整个网络系统安全的基础。操作系统安全机制主要包括访问控制和隔离控制。 访问控制系统一般包括主体、客体和安全访问政策 访问控制类型&#xff1a; 自主访问控制强制访问控制 访问控制措施&#xff1a; 入…

企业级大模型应用的Java-Python异构融合架构实践

一、后端语言相关技术生态 Python语言 Python在AI计算领域拥有全面的生态支持&#xff1a; 底层工具库: Pandas、NumPy、SciPy、Matplotlib深度学习框架: PyTorch、TensorFlow领域专用框架: HuggingFace Transformers&#xff08;社区生态为主&#xff09; 常见Python框架 …

Apache Doris 索引的全面剖析与使用指南

搞大数据开发的都知道&#xff0c;想要在海量数据里快速查数据&#xff0c;就像在星图里找一颗特定的星星&#xff0c;贼费劲。不过别慌&#xff0c;数据库索引就是咱们的 “定位神器”&#xff0c;能让查询效率直接起飞&#xff01;就拿 Apache Doris 这个超火的分析型数据库来…

HTTP/HTTPS 服务端口监测的简易实现

一 HTTP/HTTPS 服务端口监测的简易实现方法 在当今快节奏的工作环境中&#xff0c;工作忙碌成为了许多职场人的常态。就拿我们团队最近经历的事情来说&#xff0c;工作任务一个接一个&#xff0c;大家都在各自的岗位上争分夺秒地忙碌着。然而&#xff0c;就在这样高强度的工作…

基于数据可视化学习的卡路里消耗预测分析

数据分析实操集合&#xff1a; 1、关于房间传感器监测数据集的探索 2、EEMD-LSTM模型择时策略 — 1.EEMD分解与LSTM模型搭建 3、EEMD-LSTM模型择时策略 — 2. 量化回测 4、国际超市电商销售数据分析 5、基于问卷调查数据的多元统计数据分析与预测&#xff08;因子分析、对应分…

【初阶数据结构】链表的柔光之美

目录 一、为什么需要链表&#xff1f; 二、链表与数组的对比 三、链表节点定义 四、链表基本操作 1. 创建链表 2. 插入节点 头插法&#xff08;时间复杂度O(1)&#xff09; 尾插法&#xff08;时间复杂度O(n)&#xff09; 3. 删除节点 4. 遍历链表 五、进阶操作 1. 反…

计算机网络:应用层 —— 电子邮件

文章目录 电子邮件的起源与发展电子邮件的组成电子邮件协议邮件发送和接收过程邮件发送协议SMTP协议多用途因特网邮件扩展MIME 电子邮件的信息格式 邮件读取协议邮局协议POP因特网邮件访问协议IMAP 基于万维网的电子邮件 电子邮件&#xff08;E-mail&#xff09;是因特网上最早…

AWVS(web)扫描器安装与使用

目录 前言 1. AWVS 简介与功能特性 1.1 什么是 AWVS&#xff1f; 1.2 主要功能特性 2. AWVS 的安装步骤 2.1 系统要求 2.2 安装步骤&#xff08;以 Windows 为例&#xff09; 3. 配置与初始化 3.1 设置扫描目标 3.2 配置扫描选项 4. AWVS 的使用方法 4.1 自动扫描 …

opencv的C++遇到找不到opencv_worldxxxd.dll

如图所示&#xff1a; 将你缺的这个dll文件复制到 C:\Windows\System32 即可

AI提示工程的挑战与演进

目前让AI按照工作流正确的工作依然存在着提示挑战&#xff0c;提示工程实际上是一套逻辑严密的工作。 根据当前技术发展及行业实践&#xff0c;AI按照工作流正确执行任务仍面临显著的提示工程挑战&#xff0c;而提示工程本身也正在从零散经验向系统化、逻辑严密的方法论演进。以…

微信小程序-二维码绘制

wxml <view bindlongtap"saveQrcode"><!-- 二维码 --><view style"position: absolute;background-color: #FFFAEC;width: 100%;height: 100vh;"><canvas canvas-id"myQrcode" style"width: 200px; height: 200px;ba…

蓝桥杯第十六届嵌入式模拟编程题解析

由硬件框图可以知道我们要配置LED 和按键 LED 先配置LED的八个引脚为GPIO_OutPut&#xff0c;锁存器PD2也是&#xff0c;然后都设置为起始高电平&#xff0c;生成代码时还要去解决引脚冲突问题 按键 按键配置&#xff0c;由原理图按键所对引脚要GPIO_Input 生成代码&#xf…

电子科技大学考研复习经验分享

电子科技大学考研复习经验分享 本人情况&#xff1a;本科就读于电科软院&#xff0c;24年2月开始了解考研&#xff0c;24年3月开始数学&#xff0c;9月决定考本院&#xff08;开始全天候图书馆学习&#xff09;并开始专业课学习&#xff0c;11月底开始政治学习&#xff0c;最后…

基于范围选择的进化多目标优化PESA-II-可用于(汽车发动机多目标优化设计/飞机机翼多目标外形优化/电动汽车充电设施布局优化)

基于范围选择的进化多目标优化 PESA-II&#xff08;Pareto Envelope-Based Selection Algorithm II&#xff09;是一种经典的多目标遗传算法&#xff0c;以下是对它的详细介绍&#xff1a;基于范围选择的进化多目标优化PESA-II-可用于&#xff08;汽车发动机多目标优化设计/飞机…

DeepSeek 提示词:基础结构

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

鹏哥c语言数组(初阶数组)

前言&#xff1a; 对应c语言视频54集 内容&#xff1a; 一维数组的创建 数组是一组相同元素的集合&#xff0c; 数组的创建方式 type_t就是数组的元素类型&#xff0c;const_n是一个常量表达式&#xff0c;用来指定数组的大小 c99标准之前的&#xff0c;数组的大小必须是…