首页 > 其他分享 >《密码系统设计第五周》

《密码系统设计第五周》

时间:2024-10-13 14:45:42浏览次数:1  
标签:算法 公钥 数字签名 RSA 密码 第五 AI 签名 设计

目录

密码系统设计

第五周预习报告

学习内容

AI 对学习内容的总结(1分)

要求

  • 让AI(kimi,元宝等)阅读学习内容并进行总结,教材内容可以使用微信读书或者云班课电子教材

总结

《Windows C/C++加密解密实战》

这份文件是关于数字签名技术的详细介绍和实战应用,主要内容包括:

  1. 数字签名技术概述

    • 网络信息安全的脆弱性,以及数字签名技术在保障数据传输保密性、完整性和真实性方面的重要性。
    • RSA公钥算法作为数字签名的典型代表,以及其安全性随着密钥位数的提高而提高,但同时也增加了计算复杂性。
  2. 数字签名的原理和基本概念

    • 数字签名模仿手写签名,提供不可抵赖性、不可伪造性和可仲裁性。
    • 数字签名算法通常基于公钥加密算法,使用私钥进行签名,公钥进行验证。
  3. 数字签名的分类

    • 基于数学难题的分类,如离散对数问题、素因子分解问题等。
    • 基于密码体制的分类,如对称密钥和非对称密钥密码体制。
    • 特殊用途的分类,如盲签名、双重签名、群签名和代理签名。
  4. 数字签名的安全性

    • 安全性研究包括安全性评估、安全性证明和攻击分析。
  5. 数字签名的特征与应用

    • 数字签名在电子商务、网络安全通信等领域的应用,以及RSA公钥签名方案的实现。
  6. RSA公钥算法在数字签名中的应用

    • 介绍了RSA算法的参数选择、签名过程和验证过程,以及如何使用Hash函数提高签名效率。
  7. 基于OpenSSL的签名验签编程

    • 详细介绍了使用OpenSSL库进行数字签名和验签的编程方法,包括直接使用RSA函数和使用EVP系列函数两种方式。
    • 提供了示例代码,展示了如何生成密钥对、进行签名和验签操作。

整体来看,这份文件是一个很好的数字签名技术入门和实战指南,适合有一定编程基础和密码学知识背景的读者学习和实践。

对 AI 总结的反思与补充(2分)

要求

  • AI总结的问题
  • 自己的补充

反思与补充

AI总结的问题
1.缺少相关法律法规的介绍
自己的补充
数字签名的法律和标准主要包括以下几个方面:

  1. 国际标准化组织的活动
    • 1984年9月,国际标准化组织(ISO)的SC20分委员会开始为数字签名技术制订标准。
    • 1988年5月,ISO的WG2工作组起草了使用Hash函数的签名方案DP9796,并在1989年10月将其升级为DIS9796。
  2. 美国国家标准与技术研究院(NIST)
    • 1991年8月,NIST公布了DSA(Digital Signature Algorithm)签名算法,并将其纳入DSS(Digital Signature Standard)数字签名标准中。
  3. 美国法律
    • 2000年6月,美国通过了有关数字签名的法案,这标志着数字签名在美国的法律地位得到了确立。
  4. 中国法律
    • 2005年4月,中国正式颁布并施行了《中华人民共和国电子签名法》。这部法律规定了数字签名的法律效力和地位,规范了数字签名的行为,并维护了有关方的合法权益。
  5. 国际组织和各国的相关活动
    • 除了ISO和NIST,还有其他国际组织如国际电子技术委员会(IEC)参与数字签名标准的制定。
    • 日本、英国等国家的相关组织也迅速展开了对数字签名标准的制订工作。
  6. 数字签名的分类
    • 根据国际标准化组织的建议,数字签名被分为带影子、带印章以及使用Hash函数的三种数字签名。

学习思维导图(2分)

mindmap root((数字签名技术)) 概述 网络信息安全的重要性 数字签名的作用 RSA公钥算法的影响 数字签名基础 定义 特性 应用领域 数字签名原理 基本概念 签名与验证过程 数字签名分类 基于数学难题 基于密码体制 特殊用途 数字签名安全性 安全性评估 安全性证明 攻击分析 数字签名特征与应用 特征 应用场景 RSA公钥算法应用 参数选择 签名与验证过程 Hash函数的使用 OpenSSL签名验签编程 直接使用RSA函数 使用EVP系列函数 编程示例 法律与标准 国际标准化组织(ISO) 美国国家标准与技术研究院(NIST) 《中华人民共和国电子签名法》 其他国家与组织

基于 AI 的学习(2分)

要求
  • 至少找到自己理解不是太好 2 个概念,让 AI 对自己进行苏格拉底提问
  • 参考下面提示语或者使用 AI Agent

提示词:“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”

  1. 核心是要求AI工具:“请你以苏格拉底的方式对我进行提问”
  2. 然后AI工具就会给你提问,如果不知道问题的答案,可以反问AI:“你的理解(回答)是什么?”
  3. 如果你觉得差不多了,可以先问问AI工具:“针对我XXX知识点,我理解了吗?”
  4. AI工具会给出它的判断,如果你也觉得自己想清楚了,可以最后问AI工具:“我的回答结束了,请对我的回答进行评价总结”,让它帮你总结一下。

学习内容

一、

:我在学习数字签名知识点,请你以苏格拉底的方式对我进行提问,一次一个问题
AI:你能描述一下什么是数字签名吗? 这将帮助我了解你对数字签名基础的理解。
:数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
AI:很好,你已经抓住了数字签名的核心概念。那么,我的下一个问题:数字签名如何确保信息的完整性?
:通过散列函数确保
AI:对的,散列函数(或称哈希函数)在确保信息完整性方面起着关键作用。那么,我的下一个问题:你能详细说明散列函数在数字签名中是如何工作的吗? 比如,它是在签名之前还是之后应用,以及为什么这样做能防止信息被篡改。
:发送者可以使用散列函数对数据进行哈希运算,然后使用私钥对哈希值进行签名。 接收者可以使用相同的散列函数对数据进行哈希运算,然后使用公钥验证签名。 这样可以确保数据的完整性和来源。
AI:非常好,你已经理解了散列函数和数字签名如何协同工作来确保数据的完整性和来源。现在,让我们深入一步:如果数据在传输过程中被篡改,接收者如何通过数字签名检测到这一点?** 请解释这个过程是如何暴露篡改行为的。
:数据被篡改。签名中哈希值会发生改变
:针对上述知识点,我理解了吗?
AI:是的,你的理解是正确的。你的理解显示了对数字签名如何工作以及它们如何提供安全性的基本概念的掌握。如果你有任何疑问或需要进一步的澄清,请随时提问
:我的回答结束了,请对我的回答进行评价总结
AI:你的回答很好地概括了数字签名的两个核心特性:确保信息的完整性和防止发送者的抵赖。以下是对你回答的总结和评价:

  1. 完整性保护
    • 你正确地指出了散列函数(哈希函数)在数字签名中的作用,即通过对数据生成哈希值来确保信息的完整性。你理解了在数据传输过程中,任何对数据的篡改都会导致哈希值的变化,从而被接收者检测到。
  2. 防止抵赖
    • 你的回答强调了使用私钥对哈希值进行加密的重要性,这是确保发送者不能否认其签名的关键步骤。你正确地理解了私钥的独占性和公钥的验证作用,这使得数字签名能够有效地防止发送者抵赖。
  3. 逻辑清晰
    • 你的解释逻辑清晰,能够按照数字签名的生成和验证流程,逐步说明其工作原理。
  4. 概念理解
    • 你对数字签名的基本概念有一个很好的理解,包括它如何提供信息的完整性保护和不可否认性。
  5. 进一步深化
    • 虽然你的回答已经涵盖了数字签名的主要概念,但还可以进一步深化对数字签名安全性的理解,例如讨论密钥长度、哈希函数的选择、以及如何防范特定的安全威胁(如中间人攻击、重放攻击等)。
      总的来说,你的回答显示了对数字签名核心概念的良好理解。如果你希望进一步探讨或有其他问题,欢迎继续提问。
二、

学习实践过程遇到的问题与解决方式(AI 驱动,优先使用AI工具解决问题)(2分)

问题:对数字签名中运用的公钥算法不熟悉
AI:

数字签名中使用的公钥算法,也称为非对称加密算法,依赖于一对密钥:一个公钥和一个私钥。公钥可以公开分享,而私钥必须保密。以下是一些在数字签名中常用的公钥算法:

1. **RSA算法**:
   - RSA是目前最流行的公钥加密算法之一,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年发明。它基于大数的素因子分解难题。在RSA中,公钥由两个大素数的乘积构成模数,而私钥由这两个素数分别构成。数字签名通常涉及使用私钥对数据的哈希值进行加密,而验证签名则使用公钥对签名进行解密。

2. **DSA(Digital Signature Algorithm)**:
   - DSA是一种专门为数字签名设计的算法,基于离散对数问题。它比RSA简单,计算也更快,但通常只用于签名,不用于加密。DSA的安全性依赖于模算术中的离散对数问题。

3. **ECC(Elliptic Curve Cryptography)**:
   - ECC是一种基于椭圆曲线数学的公钥加密算法。它提供了与RSA相同的安全性,但所需的密钥长度更短,因此更加高效。ECC在处理速度和带宽方面的优势使其在移动设备和物联网设备中非常流行。

4. **ElGamal签名算法**:
   - ElGamal算法是一种基于离散对数问题的公钥加密体系,由Taher ElGamal在1985年提出。它可以用来进行加密和签名,但在实际应用中,它更多地被用于签名。

5. **ECDSA(Elliptic Curve Digital Signature Algorithm)**:
   - ECDSA是ECC的一个变种,专门用于数字签名。它结合了ECC的效率和DSA的签名特性,提供了一种非常安全且高效的签名方案。

6. **Schnorr签名**:
   - Schnorr签名是一种基于离散对数问题的数字签名方案,由Clemens Schnorr在1991年提出。它在某些方面比DSA和ElGamal更有效,因为它产生的签名更短,且验证过程更快。

这些算法的选择取决于多种因素,包括安全性需求、性能要求、实现的复杂性以及特定的应用场景。例如,对于需要极高安全性的应用,可能会选择RSA或ECC;而对于性能要求较高的应用,可能会倾向于使用ECC或ECDSA。随着量子计算的发展,这些算法的安全性可能会受到挑战,因此研究者们也在探索后量子密码学算法,以应对未来可能的威胁。

作业提交要求(1分)

  1. 提交Markdown 文件,文档命名“学号姓名《密码系统设计》.md”
  2. 提交Markdown 文件转为 PDF,文档命名“学号姓名《密码系统设计》第 X 周.pdf”
  3. 提交代码托管链接(可选):学号姓名 gitee(github) 链接
  4. 内容质量高有加分

参考资料

标签:算法,公钥,数字签名,RSA,密码,第五,AI,签名,设计
From: https://www.cnblogs.com/LizhenGfdhh/p/18462276

相关文章

  • 学期2024-2025-1 学号20241317 《计算机基础与程序设计》第3周学习总结
    学期2024-2025-1学号20241317《计算机基础与程序设计》第3周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上具体......
  • 古典密码学 (一)
    凯撒密码恺撒密码(CaesarCipher)又被称为凯撒变换或者叫做变换密码。该密码是以凯撒大帝的名字命名的。凯撒密码是一种替换加密,通过该明文中的所有字母都在字母表上向后或者向前移动固定数目替换为密文例如当偏移量为3的时候,字母A就会变成D,字母B就会被替换成E凯撒密码不......
  • 2024-2025-1 20241319 《计算机基础与程序设计》第三周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03这个作业的目标数字分类与计数法位置计数法进制转换模拟数据与数字数据压缩与解压数字化信息安全作业正文https:......
  • 基于springboot的社区老人健康管理系统设计与实现java的项目
    前言......
  • 硬件开发笔记(三十一):TPS54331电源设计(四):PCB布板12V转5V电路、12V转3.0V和12V转4V电路
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/142757509长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…硬件相关开发......
  • 2024-2025-1 20241322 《计算机基础与程序设计》第3周学习总结
    2024-2025-120241322《计算机基础与程序设计》第3周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<数字分类与计数法......
  • 第五章 CSS盒模型
    盒模型是CSS定位布局的核心内容,页面中所有的元素都是放进一个容器内的,这个容器可以看成是一个盒子。可以通过CSS来控制这些盒子的各种显示属性,把这些盒子进行定位,完成整个页面的布局。在掌握了盒子模型以及其中每个元素的用法后,才能拥有较完善的布局观。5.1盒模型的定义web......
  • 基于Springboot+Vue的学生毕业离校系统的设计与实现(源码+LW+包运行)
    限时福利:联系即免费送开题报告和任务书,欢迎咨询(可指定任意题目)源码获取:https://download.csdn.net/download/u011832806/89432081基于SpringBoot+Vue的学生毕业离校系统开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven系统演示......
  • java计算机毕业设计在线订餐平台系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和人们生活节奏的加快,在线订餐已成为现代都市生活不可或缺的一部分。传统的餐饮消费模式正逐渐被线上化、便捷化的订餐方式......
  • 基于Node.js+vue个人理财系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在当今复杂多变的经济环境中,个人理财已成为人们日常生活中不可或缺的一部分。随着金融市场的快速发展,各类投资产品层出不穷,如国债、股票、基金等,为投资者提......