首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

读《图解密码技术》(三):密钥、随机数和应用技术

严格来说,很少直接用口令来作为密钥使用,一般都是将口令输入单向函数,然后将得到的值作为密钥使用。...这种方法就是使用共享密钥进行通信的过程,定期改变密钥。例如,更新密钥时,发送者和接收者使用单向函数计算当前密钥值,并将这个值用作新的密钥。...尤其对于共享密钥来说,很多应用都需要将密钥保存在客户端,例如移动App,要么将密钥硬编码代码里,或者保存在文件,但无论哪种方式,应用一旦被反编译,密钥就存在泄漏的风险。...也就是说,P 的生成的乘方结果与 1 ~ P-1 的数字是一一对应的。...例如,消息认证码算法HMAC的设计就允许对单向函数的算法进行替换。PGP,对称密码、公钥密码、单向函数等都是可以替换的。

1.7K10

读《图解密码技术》(二):认证

具体填充的步骤也分为三步:第一步消息末尾添加一个1比特的数值“1”;第二步添加了“1”之后的消息末尾不断添加0,直到消息的长度达到512比特的整数倍,但最后一个分组的最后64比特需要空出来;第三步将消息的长度换成二进制后添加到上一步空出来的最后一个分组的最后...单向函数实际应用很少单独使用,而是和其他密码技术结合使用。后面要讲的消息认证码和数字签名都使用了单向函数,而下一篇要讲的密钥、伪随机数和应用技术也都使用了单向函数。...消息认证码的输入包括任意长度的消息和一个发送者与接受者之间共享密钥,它可以输出固定长度的数据,这个数据称为 MAC 值。...消息认证码与单向函数很类似,都是根据任意长度的消息输出固定长度的数据,不同的是,消息认证码比单向函数多了一个共享密钥。...而为了更加简单起见,这里不使用单向函数,而是直接对消息进行签名。首先,需要将文本的消息先编码为数字,因为RSA,被签名的消息、密钥以及最终生成的签名都是以数字形式表示的。

94021
您找到你想要的搜索结果了吗?
是的
没有找到

深入浅出密码学(

前言 之前的文章《深入浅出密码学(上)》,笔者为大家简要介绍了密码学的加密跟单向函数的概念与应用。...此外,在网络通信中数据还存在被篡改的风险,因此我们还需要有一种机制能够识别数据是否被篡改,而单向函数正是能够识别数据一致性或完整性的一种机制。...这种情况下小明收到的数据就是软件B1与值B2,而不是预期的软件A1与值B2了。...但是在这种情况下,小明计算软件的值跟收到的值进行对比仍然是一致的,虽然数据已经被攻击者小黑替换了,但是小明却无法察觉。所以说单向函数无法识别“伪装”。...最后一个局限性还是因为共享密钥导致的,之前的文章《深入浅出密码学(上)》,讲解了对称加密带来的一个问题就是密钥的配送问题,同理消息认证码同样也有密钥的配送问题,密钥配送的安全性决定了消息认证码的安全性

69090

SSH的工作原理

使用到的技术 为了保证信息传输的安全性,SSH使用了对称加密、非对称加密和等技术。 对称加密 对称密钥加密又称为对称加密、私钥加密、共享密钥加密,是密码学中一类加密算法。...这类算法加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。 SSH使用对称密钥加密整个连接过程传输的信息。...因此,如果公开了一对密钥的一个,并不会危害到另外一个的秘密性质。 SSH一些地方使用了非对称加密。 密钥交换过程中使用到了非对称加密。... 是电脑科学中一种对资料的处理方法,它通过某种特定的算法将要检索的项与涌来检索的索引关联起来,生成一种便于搜索的数据结构(列表)。...客户端使用解密后的数和会话使用的共享密钥得到一个值,然后计算这个值的MD5值。 7. 客户端将这个MD5值发送回服务端。 8. 服务端用会话共享密钥和生成的随机值计算得到自己的MD5值。

1.3K40

再有人问你网络安全是什么,把这篇文章丢给他!

典型的函数 第一种:MD5(Message-Digest Algorithm 5):128位值。 第二种:SHA-1:作为数据的标准,SHA-1 可产生一个 160 位的值。...SHA-1 是典型的用于创建数字签名的单向算法 函数的特性: 1、函数算法公开 2、快速计算 3、对任意长度报文进行产生定长输出 4、对于任意报文无法预知其值 5、不同报文不会产生相同的值...报文(消息)认证的目的: ①消息源的认证,即验证消息的来源是真实的; ②消息的认证,即验证消息传送过程未被篡改。 报文摘要:对报文m应用函数H,得到固定长度的码。...SSL协议栈: 图片 SSL握手协议:插、握手过程需要用到SSL握手协议、SSL更改密码规格协议、SSL警告协议。...通过数据加密保证安全;数据进入隧道时,由VPN封装成IP数据报,通过隧道Internet上传输;离开隧道后,进行解装,数据便不再受VPN保护。

67060

各种加解密算法比較

加密性强的一定是不可逆的,这就意味着通过结果,无法推出不论什么部分的原始信息。不论什么输入信息的变化,哪怕仅一位,都将导致结果的明显变化,这称之为雪崩效应。...还应该是防冲突的,即找不出具有同样结果的两条信息。具有这些特性的结果就能够用于验证信息是否被改动。...单向函数一般用于产生消息摘要,密钥加密等,常见的有: l MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向算法,非可逆,同样的明文产生同样的密文...实际的操作过程,我们通常採用的方式是:採用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的长处,既实现了加密速度快的长处,又实现了安全方便管理密钥的长处。...密钥管理:密钥是保密系统更为脆弱而重要的环节,公钥password体制是解决密钥管理工作的有力工具;利用公钥password体制进行密钥协商和产生,保密通信两方不须要事先共享秘密信息;利用公钥password

64710

iOS开发(1)iOS签名机制

密文的对称密码算法,密钥长度是56bit 规格上来说,密钥长度是64bit,但每隔7bit会设置一个用于错误检查的bit,因此密钥长度实质上是56bit 由于DES每次只能加密64bit的数据,遇到比较大的数据...才能完成解密 发送密钥过程,可能会被Eve窃取密钥,最后Eve也能完成解密 14.png 如何解决密钥配送问题 有以下几种解决密钥配送的方法 事先共享密钥 密钥分配中心 Diffie-Hellman...Cryptography) 公钥密码 加密密钥,一般是公开的,因此该密钥称为公钥(public key) 解密密钥,由消息接收者自己保管的,不能公开,因此也称为私钥(private key)...,单向函数都会计算出固定长度的值 19.png 20.png 1、单向函数的特点 根据任意长度的消息,计算出固定长度的值 计算速度快,能快速计算出值 消息不同,值也不同...全新标准 3、如何防止数据被篡改 23.png 24.png 4、单向函数的应用 – 防止数据被篡改 25.png 26.png 5、单向函数的应用 – 口令加密 27.png 七、数字签名 想象以下场景

1.5K30

了解SSH加密和连接过程 转

这种交换导致服务器和客户端通过共享某些公共数据并使用某些秘密数据操纵它们而独立地到达相同的密钥。这个过程稍后更详细地解释。...此过程创建的对称加密密钥是基于会话的,并构成了服务器和客户端之间发送的数据的实际加密。一旦建立,其余数据必须使用此共享密钥加密。这在验证客户端之前完成。...使用相同的函数和消息应该产生相同的; 修改数据的任何部分应该产生完全不同的。用户不应该能够从给定的产生原始消息,但他们应该能够判断给定的消息是否产生给定的。...鉴于这些属性,主要用于数据完整性目的并验证通信的真实性。SSH的主要用途是使用HMAC或基于的消息认证代码。这些用于确保收到的消息文本完好无损。...然后客户端将此MD5发送回服务器,作为加密号码消息的答案。 服务器使用相同的共享会话密钥和它发送给客户端的原始号码自行计算MD5值。它将自己的计算与客户发回的计算进行比较。

1.2K20

与加密相关的一些名词

1) 密码学 机密性、真实性、完整性 plantext 明文 cipher 密钥 ciphertext 密文 函数 将任意长度的输入转化为定长输出的算法。抗原像性、抗第二原像性、强抗碰撞性。...HMAC:两轮 Hash,其中一个是密钥是“预共享密钥”。...发送方 1)求文档 Hash 值 2)对 结果 + hash 算法 + 其它数据 进行编码 3)用私钥加密编码后的数据,形成签名 接收方 1)使用相同 Hash 算法计算文档 2)用公钥解密发送方的签名...如果协商的密钥交换算法是 RSA 密钥交换算法,那么服务器就无需发送这条消息,而是由 Client 通过 ClientKeyExchange 携带一个 46 字节的随机数作为预主密钥即可。...这个消息很重要的一个字段是 verify_data, 其值是用协商得到的主密钥结合协商确定的 MAC 算法对所有按序排列的握手消息进行计算得到的值。

54630

MAC攻击及缺陷

它是一种与密钥相关联的函数。 HMAC就是MAC的一种实现。 MAC有好几种实现方式 使用单向函数实现 比如HMAC。 使用分组密码实现 使用AES之类的分组密码可以实现消息认证码。...小明向小刚发起借款100MAC假设小明和小刚共享密钥,小明通过密钥根据请求消息计算出了MAC,并将MAC和消息一起发送给小刚。 3....重放攻击的防护 制定唯一的序号 每次消息添加一个唯一的序号,序号递增,这样计算出来的MAC每次都是不一样的,即使能够拿到消息和MAC,第二次重放的时候,由于消息和MAC都应该发送变化,从而使重放攻击失效...随机数nonce 双方通信之前,服务器先发送一个随机数给发送者,发送者消息包含这个随机数,并计算MAC值。因为每次请求的随机数都会变化,所以重发MAC攻击不成立。但是会增加额外的通信请求成本。...因为MAC是通过小明和小刚共享密钥生成出来的,所以第三方机构只能确认这个MAC是由共享密钥生成的,但是不能确定是小明生成的还是小刚自己生成的。

78830

1.密码工具箱

可以简单的这样理解,MAC是密码函数+共享密钥后算出的hash值,由于密钥是只有通信双方才知道的,那么就可以认为通过MAC得到的hash可以保障信息的完整性以及同时提供认证的能力。...银行之间进行传递交易消息时,会用到MAC来确认消息的完整性以及对消息进行认证。没有使用公钥密码进行密钥交换之前,消息认证码使用的共享密钥时靠人力通过11路来完成的。...密钥推测攻击:和密码码的暴力攻击是类似的,不再细说。...对密码函数的攻击:数字签名使用了密码函数,那么数字签名也面临同样的威胁。 利用数字签名攻击公钥密钥:这块好复杂,笔者研究明白再补充( ╯□╰ )。。。...很多场景下,传输的数据被限制ASCII码表(https://tools.ietf.org/html/rfc20)以内,比如url的字符是ASCII很小的一部分。

963100

了解SSH加密和连接过程【官方推荐教程】

对称加密,非对称加密和哈希 为了确保信息的传输,SSH事务的各个点采用了许多不同类型的数据操作技术。这些包括对称加密形式,非对称加密和。...此过程创建的对称加密密钥是基于会话的,并构成服务器和客户端之间发送的数据的实际加密。一旦建立,其余数据必须使用此共享密钥进行加密。这是验证客户端之前完成的。...服务器可以使用此文件的公钥来加密到客户端的质询消息。如果客户端可以证明它能够解密此消息,则表明它拥有相关的私钥。然后,服务器可以为客户端设置环境。 哈希 SSH利用的另一种形式的数据操作是加密。...使用相同的函数和消息应该产生相同的; 修改数据的任何部分应该产生完全不同的哈希。用户不应该能够从给定的哈希生成原始消息,但是他们应该能够判断给定的消息是否产生给定的哈希。...鉴于这些属性,主要用于数据完整性目的并验证通信的真实性。SSH的主要用途是使用HMAC或基于的消息验证代码。这些用于确保收到的消息文本完整且未经修改。

2.7K20

常见密码学算法简介

常见对称加解密算法 对称加密算法是一种加密算法,使用相同的密钥来加密和解密数据。这些算法保护数据安全性方面起着重要作用。...•特点: 由于密钥长度较短,已被认为不够安全,因此许多情况下已被更安全的算法所取代。•用途: 一些早期的安全应用中使用。...3.3 SHA-256 (Secure Hash Algorithm 256) SHA-256是SHA-2家族的一员,它产生256位(32字节)的值。...3.5 bcrypt bcrypt是一种用于密码存储的算法,特别适用于存储用户密码。它采用了“盐”(salt)的概念,使相同的密码不同用户之间有不同的值,提高了安全性。...密码学常见应用 密码学算法许多领域有广泛的应用,包括: •数据加密: 用于加密敏感数据,以保护数据的隐私和安全。•数字签名: 用于确保数据的完整性、认证和非否认性,常见于电子合同和电子邮件安全

31530

加解密算法分析与应用场景

耗时性:计算值需要一定的计算时间。 函数应用密码存储:将用户密码通过函数计算得到值,然后将值存储在数据。...当用户登录时,再次计算输入密码的值并与数据值进行比较,以验证密码是否正确。文件完整性校验:通过函数计算文件的值,并将其与文件发送方提供的值进行比较。...如果值相同,说明文件传输过程未被篡改。数字签名:在数据传输过程,发送方使用函数计算数据值,然后使用自己的私钥对值进行加密。...如果值相同,说明文件传输过程未被篡改。 Java示例我们使用Java的MessageDigest类计算输入字符串的MD5值。...需要注意的是,由于MD5的安全性较低,现已被更安全的函数(如SHA-256)所取代。实际应用,建议使用更安全的函数。

30631

深入浅出密码学(下)

前言 之前的文章《深入浅出密码学(上)》与《深入浅出密码学()》,笔者为大家介绍了密码学的加密、单向函数与消息认证码的概念与应用。...而如果我们需要保证消息的完整性或一致性,则可以使用单向函数。而单向函数的局限性是无法对通信双方进行认证,即无法证明某条消息是某个人发出的,因此我们还需要消息认证码来解决消息认证的问题。...数字签名 《深入浅出密码学()》一文,我们知道消息认证码之所以无法防止否认,其原因是消息认证码的使用过程需要使用到共享密钥。...由于通信的过程,消息的体积可能非常大,如果直接对消息进行签名的话会非常耗时,所以实际中用的比较多的还是对消息的值进行签名,在这里我们也只详细介绍对消息的值进行签名这种方式。...以下是对消息的值进行签名和验证的过程: ?

74460

CIA安全模型-使用PGP描述网络安全CIA模型之私密性、完整性案例

完整性(Integrity) 数据完整性是信息安全的三个基本要点之一,指在传输、存储信息或数据的过程,确保信息或数据不被未授权的篡改或在篡改后能够被迅速发现。...信息安全领域使用过程,常常和保密性边界混淆。以普通RSA对数值信息加密为例,攻击者或恶意用户没有获得密钥破解密文的情况下,可以通过对密文进行线性运算,相应改变数值信息的值。...例如交易金额为X,通过对密文乘2,可以使交易金额成为2X。也称为可延展性(malleably)。为解决以上问题,通常使用数字签名或函数对密文进行保护。...第七步:还可以选择将这个hello的文件代入一个函数,得到一个值,然后对这个值用客户机的私钥进行加密,得到数字签名; 第八步:将加密后的密钥、利用对称密钥加密后的文件、对这个文件的签名,这三者加在一起的打包发送给服务器...,得到值;服务器的PGP程序再用客户机的公钥解密文件的签名,就得到了明文的hello这个文件的值,如果这个值和刚才对这个文件进行函数的运算得到的值相同,那么就说明了2个问题;第一,由于值相同

3.1K40

敞开的地狱之门:Kerberos协议的滥用

值(即用户密钥)成为客户端和KDC共享的长期密钥(long term key)。 2.KRB_AS_REQ-客户端加密一个时间戳,然后发送给身份验证服务。...问题一:微软对长期密钥值不加SALT 微软实现的Kerberos版本对MIT原始版本的一个关键函数做了修改,最终降低了底层的安全性。...MIT原始版本,首先在明文口令添加字符串username@DOMAIN.COM,然后经过运算生成长期密钥。使用用户名给密码加盐,能够为碰巧密码相同的不同用户生成不同的值。...从一个攻击者的角度出发,如果能够提取该域的密码值,也就可以利用KRBTGT值来伪造TGT。虽然提取值看似难以实现,然而实际上,大部分渗透人员认为普通的企业环境这并不是一件困难的事情。...使用Mimikatz插入NT-Hash 当值插入到内存,我们擦除掉所有其他的密钥,因为这些密钥可能干扰我们获得指定的票据。留下的密钥只有上图中插入到镜像的RC4密钥。 ?

2.4K90

听GPT 讲Deno源代码(4)

具体而言,它定义了以下几个方面的功能: Context 结构体:它是一个上下文对象,用于计算时存储和管理状态。具体而言,它包含了算法名称、算法对象和用于计算数据。...Hash 枚举:它定义了不同的算法类型。在这个枚举,每个枚举成员都对应一个特定的算法。目前支持的算法有MD5、SHA1、SHA256、SHA512等。...文件你可能会看到以下工作过程: 首先,Context 结构体和 Hash 枚举会根据指定的算法进行初始化。...然后,文件中会定义一些与相关的操作函数,如计算(hash)、更新(update)和获取最终结果(finalize)等。...其中定义了用于存储公私钥、素数域的数据结构,以及包含生成密钥、计算共享密钥等方法的 trait。这些都是为了支持 Diffie-Hellman 密钥交换算法的功能。

6510

使用MongoDB构建数据库集群

分片- 分片只是一个包含部分数据数据库服务器。数据的项目通过范围或分割为分片,我们将在本指南的后面部分进行说明。为简单起见,我们将在示例中使用两个单服务器分片。...配置服务器存储数据的状态和组织的数据。这包括有关数据块位置的信息,这很重要,因为数据将分布多个分片中。 我们将使用副本集来确保数据的完整性,而不是使用单个配置服务器。...当应用程序将执行许多复杂的读查询时, 适当使用时, 基于范围的分片通常是更好的选择。 基于的分片通过分片键上使用函数来分配数据,以便在分片之间更均匀地分配数据。...基于的分片设置,您可以选择客户ID号,例如,作为分片键。此数字由函数转换,的结果决定了数据存储在哪个分片上。...集合级别启用分片 现在数据库可用于分片并且我们选择了策略,我们需要在集合级别启用分片。这允许集合的文档分片中分发。为简单起见,我们将使用基于的分片策略。

2.4K30

对称加密与非对称加密

对称加密与非对称加密 在数字加密算法,可划分为对称加密和非对称加密。 对称加密 对称加密算法对于数据的加密与解密使用同一密钥,即使用相同的密码对内容进行加密解密。...内容 + 密钥 = 密文 密文 - 密钥 = 原文 优点 加解密速度快,效率高,适合一对一的信息加密传输 缺点 数据传输前必须协商好密钥,如果任一方密钥被泄漏,那么加密信息就变得不安全了;不适合一对多的情况...,若多人共享同一密钥,则增加了密钥泄漏的风险且不能提供抗抵赖性,若每两人之间使用一个密钥,则会使双方拥有过多密钥,难以管理密钥。...HASH也称,加密性强的一定是不可逆的,这就意味着通过结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致结果的明显变化,这称之为雪崩效应。...还应该是防冲突的,即找不出具有相同结果的两条信息。具有这些特性的结果就可以用于验证信息是否被修改。

1.5K30
领券