国密SM算法、RSA加密算法笔记

一、国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。目前SM1算法没有公开,只能集成在芯片中。目前应用较多的是SM2、SM3和SM4算法,这三者用法不一。

SM2公钥加密算法国密公钥加密标准之一,由国家密码管理局与2010年12月公布。

SM2属于非对称加密算法,使用公钥加密,私钥解密,在安全性和运算速度方面要优于RSA算法。

SM2公钥加密适用于加密长度较短的数据,如会话密钥和消息报文。SM2公钥加密不仅对数据加密,还提供防篡改的特性,即被篡改的或伪造的密文可以在解密的过程中被检查发现,因此通过SM2公钥加密的消息无需格外的校验机制。消息经过SM2公钥加密后长度会增加不到100字节的长度,加密方在准备缓冲区时需要加以留意。

SM3属于不可逆加密算法,类似于md5,常用于签名。

SM4属于对称加密算法,可用于替代DES/AES等国际算法, SM4算法与AES算法具有相同的密钥长度和分组长度,都是128位。
对称加密算法

对称加密算法加密和解密使用的是同一个密钥。常用的对称加密算法包括:DES、3DES、AES、RC4、RC5、RC6。
在这里插入图片描述
非对称加密算法

指加密和解密使用不同密钥的加密算法,也称为公私钥加密。假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。
在这里插入图片描述
常见的非对称加密算法:RSA、DSA(数字签名用)、ECC(移动设备用)、Diffie-Hellman

散列算法(HASH算法)

国密算法的分类

为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法ZUC。

其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。

国密SSL证书采用上述国密SM签名算法,安全自主可控,并且基于ECC算法,加密强度更高、签名速度更快,并且可兼容所有国产操作系统。
二、详述
2.1、SM1对称密码
SM1 算法是分组密码算法,分组长度为128位,密钥长度都为 128 比特,算法安全保密强度及相关软硬件实现性能与 AES 相当,算法不公开,仅以IP核的形式存在于芯片中。
采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
2.2、SM2椭圆曲线公钥密码算法
SM2算法就是ECC椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSA、ECDH等国际标准,而是采取了更为安全的机制。另外,SM2推荐了一条256位的曲线作为标准曲线。
SM2标准包括总则,数字签名算法,密钥交换协议,公钥加密算法四个部分,并在每个部分的附录详细说明了实现的相关细节及示例。
SM2算法主要考虑素域Fp和F2m上的椭圆曲线,分别介绍了这两类域的表示,运算,以及域上的椭圆曲线的点的表示,运算和多倍点计算算法。然后介绍了编程语言中的数据转换,包括整数和字节串,字节串和比特串,域元素和比特串,域元素和整数,点和字节串之间的数据转换规则。
详细说明了有限域上椭圆曲线的参数生成以及验证,椭圆曲线的参数包括有限域的选取,椭圆曲线方程参数,椭圆曲线群基点的选取等,并给出了选取的标准以便于验证。最后给椭圆曲线上密钥对的生成以及公钥的验证,用户的密钥对为(s,sP),其中s为用户的私钥,sP为用户的公钥,由于离散对数问题从sP难以得到s,并针对素域和二元扩域给出了密钥对生成细节和验证方式。总则中的知识也适用于SM9算法。
在总则的基础上给出了数字签名算法(包括数字签名生成算法和验证算法),密钥交换协议以及公钥加密算法(包括加密算法和解密算法),并在每个部分给出了算法描述,算法流程和相关示例。
数字签名算法,密钥交换协议以及公钥加密算法都使用了国家密管理局批准的SM3密码杂凑算法和随机数发生器。数字签名算法,密钥交换协议以及公钥加密算法根据总则来选取有限域和椭圆曲线,并生成密钥对。
SM2算法在很多方面都优于RSA算法(RSA发展得早应用普遍,SM2领先也很自然),与RSA安全性对比

三、RSA加密算法
我这里就不对RSA的发明背景做介绍了,你只要知道RSA加密算法是非常非常重要的加密算法,放在现在的时代亦是如此。

RSA加密算法的安全性是基于对极大整数做因数分解的困难。
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。例如:
(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
(2)甲方获取乙方的公钥,然后用它对信息加密。
(3)乙方得到加密后的信息,用私钥解密
公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的。

密钥生成过程
1、 随机找两个质数 P 和 Q ,P 与 Q 越大,越安全;
2、 计算他们的乘积 n = P * Q
3、 计算 n 的欧拉函数 φ(n):φ(n) = φ(P * Q)= φ(P - 1)φ(Q - 1) = (P - 1)(Q - 1)
4、 随机选择一个整数 e,条件是 1< e < φ(n),且 e 与 φ(n) 互质
5、 计算e对于 φ(n) 的模反元素d,可以使得 ed 除以 φ(n) 的余数为 1
( 1<d<e,且ed mod φ(n) = 1 ) 即:d=e^-1 ( mod φ(n) )
6、 公钥(n,e);私钥(n,d);

RSA使用公共指数e和私有指数d。指数e是每个人都知道的公钥(e, N)的一部分。使用公钥e加密的消息只能使用私钥d解密

加解密过程
c:密文
m:明文
加密:c = m^e mod N
解密:m = c^d mod N

例题
例题:在RSA加密体制中, 已知素数 p = 7, q = 11, 公钥 e = 13, 试计算私钥 d 并给出对明文 m = 5 的加密,求其密文. 已知密文 c = 15, 求其明文

解:
n=pq=77
φ(n)=(p-1)(q-1)=60
ed≡1 mod φ(n)
即13d mod 60 = 1
解得:d = 37
公钥(n,e)=(77,13)
密文c = m^e mod n = 5^13 mod 77 = 26
私钥(n,d)=(77,37)
明文m = c^d mod n = 15^37 mod 77 = 71

写文章

热门文章

  • 国密SM算法、RSA加密算法笔记 6021
  • PLC PLS/PLF 5127
  • Ubuntu 下 SSH 服务开启 3240
  • 公钥与私钥、iv(初始向量) 2679
  • HC32F460 时钟配置、更换外部晶振 2063

分类专栏

  • 广和通 OpenCPU 二次开发
  • HC32 3篇
  • Linux 6篇
  • RT_Thread 2篇

最新评论

  • printf 占位符

    辰熤✔: format标签 在C语言中,format标签是一个字符串,它包含了嵌入的format标签,这些标签可以被随后的附加参数中指定的值替换,并按需求进行格式化。format标签的属性包括flags、width、.precision、length和specifier,这些属性共同定义了输出数据的格式和特性。具体来说: ‌flags‌:用于指定输出格式的一些选项,如正负号、左对齐或右对齐等。 ‌width‌:指定字段的最小宽度,如果数据长度小于指定宽度,则通过填充空格(默认是左边填充)来达到指定宽度。 ‌.precision‌:用于指定小数点后的位数或最大字符数等。 ‌length‌:指定数据的大小和类型,如h表示短整型,l表示长整型等。 ‌specifier‌:定义了输出的数据类型,如%d表示整数,%s表示字符串等。 printf函数是C语言中用来输出格式化数据的函数,它接受一个格式化字符串(即包含format标签的字符串)作为第一个参数,后续参数则是要与格式化字符串中各个标签匹配的值。这样,printf函数就能根据格式化字符串中的指令,将数据按照指定的格式输出到标准输出流(通常是屏幕)。 例如,使用printf("%d", 123);将会输出整数123,而使用printf("%.2f", 3.14159);则会输出保留两位小数的浮点数3.14。这些例子展示了如何使用format标签和printf函数来控制输出的格式‌12。

  • 防护等级 IP(Ingress Protection)

    CSDN-Ada助手: 网络 技能树或许可以帮到你:https://edu.csdn.net/skill/network?utm_source=AI_act_network

  • 指针笔记√

    辰熤✔: 数组 int b[5];b[0]为数组地址,可以认为数组名b是指向数组首地址的指针b=&b[0];b与int* p基本等价; 查找数组的元素时 1.b[0]= ;b[1]= ; 2.*(b+0)= ; *(b+1)=

  • 指针笔记√

    辰熤✔: * 为解运算符; *P 就是p指针所指向内存单元的值

最新文章

  • 防护等级 IP(Ingress Protection)
  • linux驱动程序编译下载流程及详细介绍
  • 两台电脑共享文件夹、进行文件传输(同一局域网内)
2024年1篇
2023年15篇
2022年20篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家广东玻璃钢雕塑制品云浮玻璃钢动物雕塑供应商家商场dp点美陈图片盐城玻璃钢雕塑厂湖里园林玻璃钢雕塑价格南宁玻璃钢艺术雕塑美陈玻璃钢动物雕塑批量定制玻璃钢彩绘雕塑浮雕设备北京季节性商场美陈山西高质量玻璃钢雕塑定制鹤岗商场美陈雕塑设计宜春人物玻璃钢雕塑设计西安有没有玻璃钢雕塑厂动物玻璃钢雕塑定制济南户外商场美陈新密知名玻璃钢卡通雕塑公司曲靖玻璃钢花盆厂家直销河北季节性商场美陈厂家直销嘉兴玻璃钢牛雕塑玻璃钢雕塑放户外玻璃钢花盆雕塑制作厂佛山玻璃钢雕塑价格厂家乌海玻璃钢头像雕塑甘南玻璃钢雕塑多少钱商场玻璃钢ip雕塑直销郑州玻璃钢浮雕泡沫雕塑大理玻璃钢卡通雕塑品牌武威动物玻璃钢雕塑制作玻璃钢雕塑切割德州玻璃钢室外雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化