加密与数字签名

密码学理论11:公钥加密 一方(接收方)生成一对密钥(pk,sk),分别称为公钥和私钥。发件人使用公钥加密消息;接收方使用私钥解密生成的密文。当 Alice 得知 Bob 想与她通信时,她可以生成 (pk, sk)(假设她还没有这样做),然后将 pk明文发送给 Bob。Alice 独立于任何特定的发送者预先生成 (pk, sk)。然后她公开发布pk。1. 公钥加密(在某种程度上)解决了密钥分发问题,因为通信双方不需要在通信之前秘密共享密钥。即使他们之间的所有通信都被监视,两方也可以秘密通信。 阅读详情

加密与数字签名


一、加密
 
  数据加密技术从技术上的实现分为在软件和硬件两方面。按作用不同,数据加密技术主要分为数据传输、数据存储、数据完整性的鉴别以及密钥管理技术这四种。
 
  在网络应用中一般采取两种加密形式:对称密钥和公开密钥,采用何种加密算法则要结合具体应用环境和系统,而不能简单地根据其加密强度来作出判断。因为除了加密算法本身之外,密钥合理分配、加密效率与现有系统的结合性,以及投入产出分析都应在实际环境中具体考虑。
 
  对于对称密钥加密。其常见加密标准为DES等,当使用DES时,用户和接受方采用64位密钥对报文加密和解密,当对安全性有特殊要求时,则要采取IDEA和三重DES等。作为传统企业网络广泛应用的加密技术,秘密密钥效率高,它采用KDC来集中管理和分发密钥并以此为基础验证身份,但是并不适合Internet环境。
 
  在Internet中使用更多的是公钥系统。即公开密钥加密,它的加密密钥和解密密钥是不同的。一般对于每个用户生成一对密钥后,将其中一个作为公钥公开,另外一个则作为私钥由属主保存。常用的公钥加密算法是RSA算法,加密强度很高。具体作法是将数字签名和数据加密结合起来。发送方在发送数据时必须加上数据签名,做法是用自己的私钥加密一段与发送数据相关的数据作为数字签名,然后与发送数据一起用接收方密钥加密。当这些密文被接收方收到后,接收方用自己的私钥将密文解密得到发送的数据和发送方的数字签名,然后,用发布方公布的公钥对数字签名进行解密,如果成功,则确定是由发送方发出的。数字签名每次还与被传送的数据和时间等因素有关。由于加密强度高,而且并不要求通信双方事先要建立某种信任关系或共享某种秘密,因此十分适合Internet网上使用。
 
  下面介绍几种最常见的加密体制的技术实现:
 
  1.常规密钥密码体制
 
  所谓常规密钥密码体制,即加密密钥与解密密钥是相同的。
 
  在早期的常规密钥密码体制中,典型的有代替密码,其原理可以用一个例子来说明:
 
  将字母a,b,c,d,…,w,x,y,z的自然顺序保持不变,但使之与D,E,F,G,…,Z,A,B,C分别对应(即相差3个字符)。若明文为student则对应的密文为VWXGHQW(此时密钥为3)。
 
  由于英文字母中各字母出现的频度早已有人进行过统计,所以根据字母频度表可以很容易对这种代替密码进行破译。
 
  2.数据加密标准DES
 
  DES算法原是IBM公司为保护产品的机密于1971年至1972年研制成功的,后被美国国家标准局和国家安全局选为数据加密标准,并于1977年颁布使用。ISO也已将DES作为数据加密标准。
 
  DES对64位二进制数据加密,产生64位密文数据。使用的密钥为64位,实际密钥长度为56位(有8位用于奇偶校验)。解密时的过程和加密时相似,但密钥的顺序正好相反。
  
  DES的保密性仅取决于对密钥的保密,而算法是公开的。DES内部的复杂结构是至今没有找到捷径破译方法的根本原因。现在DES可由软件和硬件实现。美国AT&T首先用LSI芯片实现了DES的全部工作模式,该产品称为数据加密处理机DEP。
 
  3.公开密钥密码体制
 
  公开密钥(public key)密码体制出现于1976年。它最主要的特点就是加密和解密使用不同的密钥,每个用户保存着一对密钥 ? 公开密钥PK和秘密密钥SK,因此,这种体制又称为双钥或非对称密钥密码体制。
 
  在这种体制中,PK是公开信息,用作加密密钥,而SK需要由用户自己保密,用作解密密钥。加密算法E和解密算法D也都是公开的。虽然SK与PK是成对出现,但却不能根据PK计算出SK。公开密钥算法的特点如下:
 
  1、用加密密钥PK对明文X加密后,再用解密密钥SK解密,即可恢复出明文,或写为:DSK(EPK(X))=X  
  2、加密密钥不能用来解密,即DPK(EPK(X))≠X
 
  3、在计算机上可以容易地产生成对的PK和SK。
 
  4、从已知的PK实际上不可能推导出SK。
 
  5、加密和解密的运算可以对调,即:EPK(DSK(X))=X
 
  在公开密钥密码体制中,最有名的一种是RSA体制。它已被ISO/TC97的数据加密技术分委员会SC20推荐为公开密钥数据加密标准。
 
二、数字签名
 
  数字签名技术是实现交易安全的核心技术之一,它的实现基础就是加密技术。在这里,我们介绍数字签名的基本原理。
 
  以往的书信或文件是根据亲笔签名或印章来证明其真实性的。但在计算机网络中传送的报文又如何盖章呢?这就是数字签名所要解决的问题。数字签名必须保证以下几点:
 
  接收者能够核实发送者对报文的签名;发送者事后不能抵赖对报文的签名;接收者不能伪造对报文的签名。
  
  现在已有多种实现各种数字签名的方法,但采用公开密钥算法要比常规算法更容易实现。下面就来介绍这种数字签名。
 
  发送者A用其秘密解密密钥SKA对报文X进行运算,将结果DSKA(X)传送给接收者B。B用已知的A的公开加密密钥得出EPKA(DSKA(X))=X。因为除A外没有别人能具有A的解密密钥SKA,所以除A外没有别人能产生密文DSKA(X)。这样,报文X就被签名了。
 
  假若A要抵赖曾发送报文给B。B可将X及DSKA(X)出示给第三者。第三者很容易用PKA去证实A确实发送消息X给B。反之,如果是B将X伪造成X',则B不能在第三者面前出示DSKA(X')。这样就证明B伪造了报文。可以看出,实现数字签名也同时实现了对报文来源的鉴别。
  
  但是上述过程只是对报文进行了签名。对传送的报文X本身却未保密。因为截到密文DSKA(X)并知道发送者身份的任何人,通过查问手册即可获得发送者的公开密钥PKA,因而能够理解报文内容。则可同时实现秘密通信和数字签名。SKA和SKB分别为A和B的秘密密钥,而PKA和PKB分别为A和B的公开密钥。
 
三、密钥的管理
 
  对称密钥加密方法致命的一个弱点就是它的密钥管理十分困难,因此它很难在电子商务的实践中得到广泛的应用。在这一点上,公开密钥加密方法占有绝对的优势。不过,无论实施哪种方案,密钥的管理都是要考虑的问题。当网络扩得更大、用户增加更多时尤其如此。一家专门从事安全性咨询的公司Cypress Consulting的总裁CyArdoin说:“在所有加密方案中,都必须有人来管理密钥。”
 
  目前,公认的有效方法是通过密钥分配中心KDC来管理和分配公开密钥。每个用户只保存自己的秘密密钥和KDC的公开密钥PKAS。用户可以通过KDC获得任何其他用户的公开密钥。
 
  首先,A向KDC申请公开密钥,将信息(A,B)发给KDC。KDC返回给A的信息为(CA,CB),其中,CA=DSKAS(A,PKA,T1),CB=DSKAS(B,PKB,T2)。CA和CB称为证书(Certificate),分别含有A和B的公开密钥。KDC使用其解密密钥SKAS对CA和CB进行了签名,以防止伪造。时间戳T1和T2的作用是防止重放攻击。
 
  最后,A将证书CA和CB传送给B。B获得了A的公开密钥PKA,同时也可检验他自己的公开密钥PKB。

BIOS实战之secure boot功能的实现方法 Secure boot,顾名思义,就是安全启动,主板厂商将一些根证书放在BIOS中,当打开安全启动模式的时候,不管是bootloader还是硬件驱动还是shell下运行的程序应用(包括shell),都需要进行验签才能运行,首先我们看下证书有哪些: 阅读详情

相关推荐

加密算法与数字签名

什么是加密算法 将一些我们可以理解的内容通过算法转化为我们无法理解的内容,这一过程就是加密算法所做的。 电报报文 二战时期,著名的中途岛海战,由于美军破译了日军的大量报文而获得了太平洋战争的关键性胜利。 AF---------------------------------->中途岛 编码 编码其实也可以理解为是一种加密算法 ASCII码 我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(b

sinat_34998133的博客 1895

计算机网络-一文看懂HTTPS加密原理

​ 在上一篇文章中,我们已经介绍了有关HTTP和HTTPS的有关区别,知道了HTTPS对HTTP进行了加密,提高了网络传输的安全性。但是HTTPS加密的原理又是怎样的呢?有的人认为是对称加密,另一些人又告诉你是是非对称加密。下面,就让我们一层一层抽丝剥茧看看HTTPS到底是如何运行的,以及他到底解决了哪些不安全的问题。 为什么需要加密? 我们都知道http传输的内容是==明文传输==的,明文数据会经过*中间代理服务器*、*路由器*、*wifi热点*、*通信服务运营商*等多个物理节点,如果信息在传输过

weixin_45751409的博客 924

Claude Code Router 401错误修复

claude code router配置相关环境变量问题

如沐春风 6358

数据加密详解笔记

数字签名: 摘要算法,对任意长度的数据,计算出固定长度的16进制字符。 MD5 : 128bit,32位十六进制 SHA1 : 160bit,40位十六进制 用途:校验数据的完整性,密码的传输和保存。 对称加密: 加密算法,加密和解密时使用相同的密钥(或是使用两个可以简单互相推算的密钥) 常见的算法:DES,AES,3DES,Blowfish,IDEA,RC5,RC6. 优点 :加密

姚丹的博客 757

小程序结合Three.js与gsap:打造流畅3D动画的完整指南

本文详细介绍了如何在小程序中整合Three.js与GSAP动画库,打造流畅的3D动画效果。通过从环境搭建、基础场景创建到模型加载与复杂动画编排的完整指南,帮助开发者克服小程序性能限制,实现如商品360度展示等沉浸式交互体验,提升产品视觉吸引力。

python9snake的博客 546

请叫我鱼拆,2024扫地机器人的第一次拆机

从背面可以看出,这个机器人是两轮差速模型,两个驱动轮,一个万向轮,驱动轮位于机器人中心位置,这样原地旋转的圆心就是机器人的中心。可以看到设备已经连接,但是没有办法进shell,厂家应该有做了安全保护之类的,有知道从这个口可以登录系统办法的小伙伴可以后台留言。但这台机器人一直报警说,机器人轮子离地,小鱼 估计是防跌落模块有问题,误触发了,所以打算先拆机看看。接着小鱼试了下,机器可以开机,然后给他重新配置wifi,连上 米家。Allwinner,全志的片子,不知道哪个型号的,看产品id,应该支持adb。

生活不止眼前的苟且 3926

PKI技术原理(收集 整理 归纳)

对称加密 symmetric cryptographic 非对称加密 asymmetric cryptographic 密钥交换协议 key agreement/exchange 哈希算法 Hash 报文认证码 MAC 数字签名 digital signature 数字证书 d...

weixin_33908217的博客 1363

库存管理系统项目部署方案(基于jdk17)

不需要安装到服务器,运维本地安装就行,主要是用来编译前端代码的。构建完成后将dist文件夹复制到服务器内。

程序员诚哥 6358

文件加密与数字签名

目录:  (to myself: 文件图片已发送到自己的hotmail中,docx格式的文件。)前述一 文件加密二 数字签名三 获得私钥和密钥四 私钥和公钥的特性      谈到文件加密或许有人马上联想起WORD或EXCEL等文档文件的密码保护,要注意在此我所要讲的绝不是这种密码保护,而WIN2000所拥有的利用加密钥匙来实现的文件加密和数字签名,它是数字化的。WORD

bmzyDream_007的专栏 2308

Qt代码-软件商店

ui->statusBar->showMessage(QString("%1 已卸载").arg(app["name"].toString()));ui->statusBar->showMessage(QString("开始下载 %1...").arg(app["name"].toString()));QString("%1 已下载完成,是否立即安装?ui->statusBar->showMessage(QString("%1 下载完成").arg(app["name"].toString()));

寒寒豆豆软件公司的博客 111

Python计算时间差的方法

使用datetime模块是Python内置的方法,使用timedelta对象可以更精确地计算时间差,而使用dateutil库则提供了更为灵活和方便的操作方式。我们可以使用datetime模块中的datetime类来表示一个具体的日期和时间,并进行相应的运算。在Python中,我们经常需要计算日期和时间之间的差异,例如计算两个日期之间的天数、小时数、分钟数等。Python提供了多种方法来计算时间差,下面我们将介绍其中的几种常用方法,并附上相应的源代码。在上面的代码中,我们使用了dateutil库中的。

学习使你进步。 2084

数字签名与数字加密的区别

软件设计师教程在讲加密技术和认证技术的时候,提到了数字签名和数字加密,两者还是有区别的,以下对两者的主要过程做一个简单介绍。 预备知识 对称加密: 对称加密采用了对称密码编码技术,特点是文件加密和解密使用的相同的密钥,在密码学中称为对称加密法。常用的对称加密算法有:数据加密标准算法(Digital Encryption Standart, DES)、三重DES、RC-5、国际数据加密算法(Inte...

jmlqqs的博客 2893

C语言设计模式全面解析:从理论到28个实战示例

本文系统介绍了23种经典设计模式在C语言中的实现方法。通过结构体、函数指针等技巧,C语言可以优雅地模拟面向对象特性,实现代码复用与解耦。文章分类详解了创建型、结构型、行为型三大类模式,并提供了28个完整代码示例,包括单例、策略、观察者等核心模式的精简实现。这些模式在嵌入式系统、操作系统内核等场景中广泛应用,如状态机、事件驱动等。学习C语言设计模式的关键在于理解模式意图,掌握函数指针和结构体组合等技巧,并在实际项目中灵活运用。本文为C语言开发者提供了全面的设计模式参考指南。

数字人生 363

数字签名与加密解密

有关数字签名与加密解密的文章我看了许多次,基于这样的事实——我总是说服不了自己,所以每次看都看不明白,说服不了自己。最近在看OAuth的相关东西,数字签名与加密解密是绕不开了,干脆静下心来,看看资料,尝试着将自己说服. 1,加密解密基础 简单地讲,计算机加密无非是,用密钥K,对明文P加密,得到密文M: K(P) = M 解密就是将这个过程反过来: K(M) = P ...

weixin_30619101的博客 3059

总结目前开源的视频生成/视频编辑大模型

随着Sora的爆火,视频生成和视频编辑受到了越来越多的关注。这篇博客总结一下目前开源的视频生成和视频编辑的大模型,并分析他们各自的优缺点,以及在自己进行科研任务或者工作中应该如何选用对应的开源模型,希望能给从事这一领域研究和使用的小伙伴们帮助。

沉迷单车的追风少年 3542

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

RSA加密原理与RSA公钥加密系统、数字签名

RSA加密系统的基本原理,公钥加密以及数字签名实现原理与过程说明。

weixin_43354152的博客 1424

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

安全之道:加密与数字签名

安全之道:加密与数字签名钟峰·2004年10月[版本:1.0.0]摘要  本指南介绍为基于 Microsoft® .NET 的多层应用程序设计和编写由应用程序管理的安全和数字签名的指导原则,主要讨论常见的安全任务和方案,并提供相应的信息帮助您选择最佳方法和技术。本指南适用于体系结构设计人员和开发人员。  本指南假定读者已经了解 XML Web Service 以及 Web Serv

1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

数字加密、数字签名

一、什么是加密技术 加密技术是最常用的安全保密手段,数据加密的关键在于加密算法和密钥管理。 是一个明文变密文的过程。 二、对称加密与非对称加密 对称加密(私人密钥加密)特点:文件加密和解密使用的是相同的密钥;例如:DES、AES 非对称加密(公钥加密):非对称加密的加密和解密需要两个密钥:公开密钥(Publickey)、私有密钥(privatekey);例如:RSA 公钥加密只有私钥才能解密 私钥加密只有公钥解密 三、数字签名 目的:完整性、身份认证、不可否认性 发送方过程: 1、单向散列函数

莫失莫忘的博客 2272

实验8 加密、数字签名与证书

了解对称加密、非对称加密体制概念了解散列函数、数字签名和数字证书的概念和理论掌握基于Openssl的对称加密、密钥对的创建和应用掌握基于Openssl数字签名和数字证书的创建和应用。

m0_73996189的博客 2507

认证、加密及数字签名的区别

前几天,被一个猎头推荐到某世界500强企业,职位是安全测试 由于之前接触过一点点,但是并没有太多经验,奈何,最后的终面,就..... (尴尬) 但是这次,却让我对测试路程,有了一个更清晰的认知 做过 需求,开发,测试(功能,自动化,接口,性能,),唯独安全测试没有涉及过,所以,在这次失败之后,也让我认知到,知识的浅薄,所以为了成为安全界的一位成员,要从基本的学习 今天先学习:认证,加密及数...

商务合作 | 面试培训 | 职场规划 ==>主页扫码 9391

接口加密和数字签名如何实现

软件测试面试题:接口加密和数字签名如何实现

m0_53396342的博客 1775

公钥加密与数字签名的联系与区别

首先,让我们先了解什么是密钥加密和数字签名。        一、密钥加密:密钥加密也称不对称加密,其常用算法是RSA、ElGamal。 不对称加密算法不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公

u014072325的专栏 8923

RSA数据加密与数字签名

数据加密,数字签名

qq_15098623的博客 4199
上一篇: Windows 窗体的验证程序组件
下一篇: 论 for 循环语句在 C# 和 VB.net 中区别!
SW515
博客等级 码龄26年 12粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值