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

news/2025/2/26 7:14:00

安全和密码学 --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:“挖比特币”为什么叫“挖”?到哪里挖?

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

http://www.niftyadmin.cn/n/5868282.html

相关文章

【Linux Oracle】time命令+oracle exp压缩

Linux && Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.说明 Linux中的time命令:主要用于测量命令的执行时间,并显示该命令在执行过程中所使用的系统资源情况,如CPU时间、内存和…

nss刷题4

[SWPUCTF 2023 秋季新生赛]Pingpingping 看看源码&#xff0c;首先是get传参Ping_ip.exe,然后如果请求了_ping参数&#xff0c;就会执行ping命令&#xff0c;执行三次 <?php highlight_file(__FILE__); error_reporting(0); $_ping $_GET[Ping_ip.exe]; if(isset($_ping…

深度学习奠基作 AlexNet 论文阅读笔记(2025.2.25)

文章目录 训练数据集数据预处理神经网络模型模型训练正则化技术模型性能其他补充 训练数据集 模型主要使用2010年和2012年的 ImageNet 大规模视觉识别挑战赛&#xff08;ILSVRC&#xff09;提供的 ImageNet 的子集进行训练&#xff0c;这些子集包含120万张图像。最终&#xff…

Python游戏编程之赛车游戏6-3

1 “敌人”汽车类的创建 在创建玩家汽车类之后&#xff0c;接下来创建“敌人”汽车类。“敌人”汽车类与玩家类一样&#xff0c;也是包含两个方法&#xff0c;一个是__init__()&#xff0c;另一个是move()。 1.1 __init__()方法 “敌人”汽车类的__init__()方法代码如图1所示…

蓝桥杯好题推荐------蛇形方阵

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 题目链接 P5731 【深基5.习6】蛇形方阵 - 洛谷 解题思路 对于这道题目来说&#xff0c;这道题题目中很重要的就是模拟实现顺时针填入数字的过程&#xff0c;而一个很好的&…

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

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

Mac 版 本地部署deepseek ➕ RAGflow 知识库搭建流程分享(附问题解决方法)

安装&#xff1a; 1、首先按照此视频的流程一步一步进行安装&#xff1a;(macos版&#xff09;ragflowdeepseek 私域知识库搭建流程分享_哔哩哔哩_bilibili 2、RAGflow 官网文档指南&#xff1a;https://ragflow.io 3、RAGflow 下载地址&#xff1a;https://github.com/infi…

AI工具库:技术爱好者装备新势能

在人工智能技术飞速发展的时代&#xff0c;各类 AI 工具层出不穷&#xff0c;为我们的工作和生活带来了前所未有的变革。AI 工具导航&#xff08; https://aidh.net &#xff09;平台&#xff0c;作为一个汇聚众多 AI 工具的宝库&#xff0c;为技术爱好者和专业人士提供了便捷的…