首页 > 编程语言 >密码学算法技巧

密码学算法技巧

时间:2022-09-26 17:13:18浏览次数:65  
标签:公钥 Hash 技巧 散列 算法 私钥 密码学

2.6密码学算法技巧
2.6.1Hash算法
1)简介:Hash算法(又称散列算法、散列函数、哈希算法)是把任意长度的输入通过散列算法变成固定长度的输出,且不可逆的单向密码机制。Hash算法是密码学的重要分支,在数字签名和消息完整性检测等方面有广泛的应用
2)特点
正向快速:给定明文和Hash算法,在有限资源和有限时间内内计算出Hash值
逆向困难:给定Hash值,在有限时间内很难逆推出明文
输入敏感:原始输入信息修改一点信息,产生的Hash值会有很大不同
冲突避免:很难找到两段不同内容不同的明文,使得他们的Hash值一致(发生冲突)
3)主要场景
文件校验
数字签名
鉴权协议
4)常用的Hash算法
MD5(消息摘要算法)、SHA-1(安全散列算法1)、RIPEMD-160(种族完整性原语评估消息摘要)、SHA-256、SHA-512、SHA-2(安全散列算法2)

2.6.2对称与非对称加密算法
1)对称加密(DES(数据加密标准),3DES和AES等)
(1)DES算法
(2)3DES算法
(3)AES算法
(4)迭代模式
·电子密码本模式
·密文分组链接模式
·密文反馈模式
·输出反馈模式
·计数器模式

2)非对称加密算法:一种密钥的保密方法。需要两个密钥:一个是公开密钥(公钥),另一个是私有密钥(私钥)。公钥用作加密,私钥用作解密
算法主要有:RSA,Elgamal,背包算法,Rabin、D-H、ECC(椭圆曲线加密算法)
执行步骤顺序
1)先获取密钥对(KeyPair)对象
2)获取字符串的公钥/私钥
3)将字符串的公钥/私钥转换成为公钥/私钥类对象
4)使用类对象的公钥进行数据加密
5)使用类对象的私钥进行解答

(1)RSA算法简介
最广泛的应用莫过于HTTPS、SSH。安全性高,速度较慢
使用工具生成:
私钥:openssl genrsa -out private.pem 2048
公钥:openssl rsa -in private.pem -outform PEM -pubout -out public.pem


2.6.3椭圆曲线加密算法
ReadFull()函数用于从指定的读取器“r”读入指定的缓冲区“buf”,并且复制的字节与指定缓冲区的长度完全相等
curve25519.ScalarBaseMult ()根据私钥计算出公钥

标签:公钥,Hash,技巧,散列,算法,私钥,密码学
From: https://www.cnblogs.com/askill/p/16731612.html

相关文章

  • 错误异常处理技巧
    2.5.2错误处理的技巧1)当函数调用失败的原因只有一个时,尽量不使用error2)当调用没有失败时,尽量不使用error3)错误尽量放在返回值类型列表的最后4)错误值尽量统一定义5)错误处......
  • 波函数坍缩算法
    https://www.bilibili.com/video/BV1k5411u7t7/?spm_id_from=333.788.top_right_bar_window_history.content.click&vd_source=426e9399caf4b3d209b6ac8487de530bhttps://......
  • Java 编码小技巧
    1、锁与事务获取锁与释放锁不能放在事务里面。先释放锁再提交事务会导致脏数据。2、consumer使用consumer来传递一个lambda表达式publicstaticvoidmain(String[]a......
  • Sublime使用技巧1--自动为字符串添加前后双引号
    1、使用场景:在排查数据库时经常可能会遇到需要使用多个id查询数据的情况,但是导出的id需要加引号,一个一个加很麻烦,可以用到下面这个小技巧(本人菜鸟,纯属做笔记,如有大神,请路过......
  • 14 -- 排序算法之冒泡排序
    冒泡排序的基本思想:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的数逐渐从前移向后,就像水底下的气泡一样逐渐向上冒。......
  • 排序算法总结
    本文参考十大经典排序算法总结|JavaGuide,感谢Guide哥!十大经典排序算法总结本文转自:十大经典排序算法最强总结(含Java、Python码实现)|郭耀华'sBlog(guoyaohua.c......
  • 慢查询 MySQL 定位优化技巧,从10s优化到300ms
    文章目录如何定位并优化慢查询SQL?如何使用慢查询日志?慢查询例子演示,新手都能看懂查询语句慢怎么办?explain带你分析sql执行计划当主键索引、唯一索引、普通索引都存在......
  • 在强化学习算法性能测试时使用训练好的模型运行游戏,此时如何控制实时游戏画面的帧数
    问题:在强化学习算法性能测试时使用训练好的模型运行游戏,此时如何控制实时游戏画面的帧数?  ========================================  看到很多训练好的模型......
  • 在 Linux 上使用《算法》第4版官网中的 algs4.jar 包
    使用《算法》第4版(AlgorithmsFourthEdition)中的algs4.jar包下载algs4.jar官网网址:https://algs4.cs.princeton.edu/code/进入网站后使用浏览器的查找功能ctrl+......
  • 密码学奇妙之旅、01 CFB密文反馈模式、AES标准、Golang代码
    CFB密文反馈模式CFB密文反馈模式属于分组密码模式中的一种。加密与解密使用同一结构,加密步骤生成用于异或的密钥流。其弥补了ECB电子密码本模式的不足(明文中的重复排列会......