mbedtls
文章平均质量分 92
jiang_2018
这个作者很懒,什么都没留下…
展开
-
mbedtls学习(12)DTLS
概述DTLS(Datagram Transport Layer Security)是运行在UDP之上的安全通讯协议,大部分和TLS是一样的,只是针对UDP在不可靠传输问题增加了新特性,用来解决UDP传输的报文乱序和报文丢失等问题,DTLS主要通过下面方法来解决禁止密码流,避免记录层报文前后关联在记录层增加计数值和序列号字段,用于排序和数据确认在握手子协议中加入重传机制,防止握手过程中报文...原创 2019-11-28 22:27:44 · 2677 阅读 · 1 评论 -
mbedtls学习(11)TLS
r原创 2019-11-27 22:45:59 · 1672 阅读 · 0 评论 -
SSL/TLS协议理解
总结下最近看的SSL/TLS协议流程在讲之前,需要知道下面这几个知识点RSA加密属于非对称加密,特点是若明文信息被公钥加密成密文,则密文只能被私钥解密;若明文信息被私钥加密成密文,则密文只能被公钥解密CA你可以理解成,只要是CA信任的组织,你就信任,CA也有自己的公钥、私钥。CA的公钥是众所周知的。证书和签名证书包含有:申请者的公钥、申请者的组织信息、签名。这里可以看出...原创 2018-11-16 00:22:00 · 643 阅读 · 0 评论 -
mbedtls学习(10)数字证书X.509
数字证书原理数字证书又称公钥证书或身份证书,目的是为了解决密钥分发问题,因为虽然有了公钥算法和数字签名算法,但是如果攻击者将公钥都替换掉则不能验证对方身份。所以才有数字证书的出现,数字证书主要包含公钥信息、用户身份信息、来自发行者的数字签名。数字证书的基础是认为CA机构具有公信力,无条件相信CA机构。下面是数字证书签发流程1.Bob生成密钥对,即Bob的公钥和私钥2.Bob用公钥以及Bob本...原创 2019-11-24 17:16:25 · 4290 阅读 · 0 评论 -
mbedtls学习(9)数字签名RSA、DSA、ECDSA
数字签名作用数字签名是为了识别消息是否被篡改并验证消息可靠性,也可以防止否认。这里注意下和消息验证码的不同,数字签名还可以防止否认,因为数字签名的私钥只有签名者才持有,而消息认证码中的密钥是双方都有。mnedtls中的数字签名有3种,RSA、DSA、ECDSARSA数字签名RSA数字签名是基于RSA密钥系统,主要步骤如下Alice生成RSA密钥对Alice将公钥发送给Bob,自己保留私...原创 2019-11-23 22:16:03 · 9083 阅读 · 0 评论 -
mbedtls学习(8)ECDH密钥协商
ECDH密钥协商ECDH密钥协商算法基于椭圆曲线密码系统(ECC),使用较短的密钥长度可提供与RSA或DH算法同等的安全等级,密钥长度位160 ~ 256比特的椭圆曲线算法与密钥长度位1024 ~ 3072比特的非ECC算法安全强度相同。常用有限域上的椭圆曲线椭圆曲线由以下参数组成T=(p,a,b,G,n,h)p 有限域中的大素数,长度一般224比特、256比特、384比特a 整数,...原创 2019-11-22 23:31:40 · 6330 阅读 · 9 评论 -
mbedtls学习(7)DH密钥协商
DH密钥协商算法RSA算法再一定程度熵解决了密钥配送问题,但也可以用DH密钥协商算法来解决密钥配送问题。DH密钥协商原理DH共享参数Alice和Bob进行DH密钥协商之前双方要有共同的DH共享参数即大素数p和生成源aDH密钥协商1.Alice选择一个随机数x(1<=x<=p-1),算法得到公开参数...原创 2019-11-21 22:10:24 · 2861 阅读 · 1 评论 -
mbedtls学习(6)RSA算法
RSA算法RSA算法是一种非对称加密算法,特点时加密解密算法不同且加密解密密钥不同,即一般公钥加密,私钥解密。下面时RSA算法关键参数n 模数,位长度为1024比特或者2048比特e 公开指数,一般为3,7或者65537d 私密指数(n,e)公钥(n,d)私钥RSA加速技术RSA私钥操作可以用中国剩余定理(CRT)进行加速执行,再mbedtls配置文件中通过MBEDTLS_R...原创 2019-11-19 23:01:17 · 7307 阅读 · 1 评论 -
mbedtls学习(5)伪随机数生成器
随机数生成器真随机数生成器(TRNG)一般来自物理设备,伪随机数生成器(PRNG)可以分为”种子“(又称熵源)和内部结构2部分,实际应用中常用真随机数作为种子,再通过伪随机数生成指定长度序列。CTR_DRBG伪随机数生成器也称为确定性随机生成器(DRBG),一种近似随机数序列的算法。具体方法有Hash_DRBG、HMAC_DRBG、CTR_DRBG、Hash_DRBG使用单项散列算法作为随机...原创 2019-11-18 22:58:34 · 5872 阅读 · 1 评论 -
mbedtls学习(4)消息认证码
消息认证码(Massage Authentication Code)用来检查消息的完整性和真实性。消息认证码的输入为任意长度的消息和发送者与接收者之间共享的密钥,输出为固定长度的数据,该数据被称作MAC值、Tag或T。发送者与接收者判断这个MAC判断消息完整性和真实性消息认证码的实现单项散列算法实现,这类方法统称为HMAC,与SHA1算法结合称为HMAC-SHA1,与SHA256算法结合称为...原创 2019-11-18 21:08:47 · 2250 阅读 · 0 评论 -
mbedtls学习(3)对称加密算法
对称加密使用相同密钥进行加密明文和解密密文的算法,有AES、DES、3DES,这些算法单次只能处理一个固定长度的数据。比如AES算法单次只能处理128bit数据,所以需要分组密码模式和填充方式处理分组密码模式ECB(Electronic Codebook)电子密码本模式将明文进行分组加密,加密结果为密文分组,一个明文分组对应一个密文分组CBC(cipher block chai...原创 2019-11-17 19:05:00 · 3263 阅读 · 1 评论 -
mbedtls学习(2)单项散列函数
单项散列函数又称安全散列函数或者哈希函数,是根据消息内容算出散列值,散列值又称为消息摘要。单项散列函数实现有下面2种方式MD算法家族-SHA算法家族mbedtls所支持的单项散列算法在接口文件如下MD2 include/mbedtls/md2.hMD4 include/mbedtls/md4.hMD5 include/mbedtls/md5.hSHA1 include/mb...原创 2019-11-16 23:34:04 · 1331 阅读 · 0 评论 -
mbedtls学习(1)搭建环境
获得mbedtls源码git clone -b mbedtls-2.7 https://github.com/ARMmbed/mbedtls.gitclone下来时这样上面主要4个目录configs 是mbedtls参考的配置文件include 是源码头文件,mbedtls的默认配置头文件是config.h就在这里面library 是源码C文件,mbedtls的实现progra...原创 2019-11-16 22:08:22 · 2597 阅读 · 2 评论