对称加密 对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。 具体算法有:DES,3DES,TDEA,Blowfish,RC5,IDEA。 另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。 常见的有:RSA,ECC 区别 对称加密算法相比非对称加密算法来说,加解密的效率要高得多。但是缺陷在于对于秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。 然后使用pub将X进行加密。 客户端将加密后的密文发送给服务端。服务端通过pri解密获得X。 然后两边的通讯内容就通过对称密钥X以对称加密算法来加解密。 这个令牌并不使用任何对称或者非对称加密的算法,在整个银行的认证体系中,动态令牌只是一个一次性口令的产生器,它是基于时间同步方式,每隔60秒产生一个随机6位动态密码在其中运行的主要计算仅包括时间因子的计算和散列值的计算
这被称为"Diffie-Hellman密钥交换算法"。这个算法启发了其他科学家。人们认识到,加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。 这种新的加密模式被称为"非对称加密算法"。 (1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。 (2)甲方获取乙方的公钥,然后用它对信息加密。 非对称加密应用十分广泛,系统对接,https等。相比对称加密更加安全,但也存在两个明显缺点: CPU计算资源消耗非常大。一次完全TLS握手,密钥交换时的非对称解密计算量占整个握手过程的90%以上。 而对称加密的计算量只相当于非对称加密的0.1%,如果应用层数据也使用非对称加解密,性能开销太大,无法承受。 非对称加密算法对加密内容的长度有限制,不能超过公钥长度。 知识点:用非对称加密来加密传输对称加密的秘钥,用对称加密来加密数据,两者相互结合,优势互补。 RSA公钥和私钥的推导过程: ? 挺有意思的,一定要自己推理一遍,不明白的地方,谷歌一下! ----
提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。
一、对称加密算法概念 加密密钥和解密密钥相同,大部分算法加密揭秘过程互逆。 特点:算法公开、(相比非对称加密)计算量小、加密速度快、效率高。 弱点:双方都使用同样的密钥,安全性得不到保证。 二、常见对称加密算法 1、DES 已破解,不再安全,基本没有企业在用了,是对称加密算法的基石,具有学习价值。密钥长度56(JDK)、56/64(BC)。 3、AES 最常用的对称加密算法,密钥建立时间短、灵敏性好、内存需求低(不管怎样,反正就是好),实际使用中,使用工作模式为CTR(最好用BC去实现),此工作模式需要引入IV参数(16位的字节数组),密钥长度 5、PBE 综合了消息摘要算法和对称加密算法,最常见的是PBEWithMD5AndDES,工作模式只有CBC(已丧失安全性,不推荐使用),所以PBE也不推荐使用了。 三、JDK版算法调用模板 1. 说明: 1.通过「KeyGenerator.getInstance("DES")」生成密钥, 2.参数为算法名称:分别对应DES、DESede(即3DES)、AES 3.每种算法密钥长度参数:DES(56
利用这些特征,我们可以定义两种运算:“异点相加”和“同点加倍”。 “异点相加”, P + Q = r, 定义为:r为r’基于x轴的反射点(对称点)。 有限域 同时,并不是所有的椭圆曲线都适合加密。y2=x3+ax+b是一类可以用来加密的椭圆曲线,也是最为简单的一类。 举个例子 令p = 71,a=0,b=7,曲线点已经离散了,但还是对称的,对称点互为逆元 ? 加群有72个元素(加一个无穷远点)每个元素阶如下。 ? 算法原理 考虑如下等式:K=kG [其中 K,G为Ep(a,b)上的点,k为小于n(n是点G的阶)的整数],不难发现,给定k和G,根据加法法则,计算K很容易;但给定K和G,求k就相对困难了。 这就是椭圆曲线加密算法采用的难题,我们把点G称为基点(base point)。 加解密流程: 1、用户A选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。
前端梁 前端梁 ](https://segmentfault.com/u/loveyoung) 2017年12月18日发布 41 收藏 上回我白话了一下:“对称加密”和“非对称加密”的来龙去脉 前端梁 前端梁 ](https://segmentfault.com/u/loveyoung) 2016年02月21日发布 25 收藏 上回我们白话了密码学中的两种算法,对称加密算法和非对称加密算法 42 白话解释 对称加密算法 VS 非对称加密算法 [ ? 前端梁 前端梁 ](https://segmentfault.com/u/loveyoung) 2016年02月19日发布 82 收藏 对称加密算法(Symmetric-key algorithm )和非对称加密算法(asymmetric key encryption algorithm)只不过就是密码学(cryptography)中的两种加密算法罢了,什么是算法,你就可以理解成为是一种规则吧,这种规则可以
最近在搞项目的接口持续性自动化测试中接触到很多加密相关的数据,很多项目都会用到非对称加密算法来保证前端和服务器交互的数据安全。 下面介绍下python下怎么使用RSA加密算法: import rsa (publickey,privatekey)=rsa,newkeys(1000)#对数字1000加密得到公钥和私钥 pub = open('private.pem','w+') filepri.write(pri.encode('utf-8')) filepri.close() string = "laomomoblog"#待加密的字符串 string crypt = rsa.encryt(string.encode('utf-8'),pubkey)#使用公钥去加密字符串 #解密 de_crypt = rsa.decrypt(crypt ,prikey)#用私钥去解密 #解出来的de_crypt与string应该是相等的,判断一下 assert string,de_crypt 这样应该比较清楚怎么使用了,怎么加密,怎么解密。
目前各种主流计算机语言都支持RSA算法的实现 java6支持RSA算法 RSA算法可以用于数据加密和数字签名 RSA算法相对于DES/AES等对称加密算法,他的速度要慢的多 总原则:公钥加密,私钥解密 import javax.crypto.interfaces.DHPublicKey; import org.apache.commons.codec.binary.Base64; /** * 非对称加密算法 RSA算法组件 * 非对称算法一般是用来传送对称加密算法的密钥来使用的,相对于DH算法,RSA算法只需要一方构造密钥,不需要 * 大费周章的构造各自本地的密钥对了。 DH算法只能算法非对称算法的底层实现。 而RSA算法算法实现起来较为简单 * @author kongqz * */ public class RSACoder { //非对称密钥算法 public static final
加密的类型: 在日常设计及开发中,为确保数据传输和数据存储的安全,可通过特定的算法,将数据明文加密成复杂的密文。目前主流加密手段大致可分为单向加密和双向加密。 单向加密:通过对数据进行摘要计算生成密文,密文不可逆推还原。算法代表:Base64,MD5,SHA; 双向加密:与单向加密相反,可以把密文逆推还原成明文,双向加密又分为对称加密和非对称加密。 算法代表:DES,3DES,AES,IDEA,RC4,RC5; 非对称加密:相对对称加密而言,无需拥有同一组密钥,非对称加密是一种“信息公开的密钥交换协议”。 非对称加密算法 需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。 因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
今天到慕课网看了几集视频,对加密的操作过程还是不知道为什么有这么多步骤以及每个步骤是做什么;但是照着出来了,以后用到的时候翻得看看,直接拿上用了。 secretKey.getEncoded(); // 转换key Key key = new SecretKeySpec(encoded, "AES"); // 加密 java.security.NoSuchAlgorithmException; import java.security.spec.InvalidKeySpecException; /** * 功能: DES 加解密 SecretKeyFactory.getInstance("DES"); Key convertKey = factory.generateSecret(desKeySpec); // 加密 SecretKeyFactory.getInstance("DESede"); Key convertKey = factory.generateSecret(desKeySpec); // 加密
本文先介绍非对称加密算法,然后聊一聊椭圆曲线密码算法(Elliptic Curve Cryptography,ECC),最后才是本文的主题国密非对称加密算法SM2。 对计算机安全有点基础知识的人们应该知道,在密码学中,用于数据加密的算法主要有两种:对称加密算法(Symmetric-keyAlgorithms)和非对称加密算法(Asymmetrical Cryptography 在整个密码学体系中,非对称加密算法用途更广,可以用在加密解密、密钥协商、数字签名等方面。所以本文先介绍一下非对称加密算法。 非对称加密算法 非对称加密算法也称作公开密钥算法(Public Key Cryptography),有着一对密钥:公钥(Public Key)和私钥(Private Key)。 密钥协商 非对称密钥算法存在加解密速度慢的问题,因此不能用于需要频繁加密大量数据的场景,这个时候需要用到对称密钥加密算法。问题是,怎么保证对称密钥的安全呢?
概述 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。 在对称加密算法中,DES算法最具有代表性,DESede是DES算法的变种,AES算法则作为DES算法的替代者。 String content = "对称加密算法"; //加密 System.out.println(desEncrypt(content, key) TESXcV0YxC4ArDlFR1Mor", key));//对称加密算法 } } DESede DESede是由DES改进后的一种对称加密算法,针对其密钥长度偏短和迭代次数偏少等问题做了相应改进 TESXcV0YxC4ArDlFR1Mor", key));//对称加密算法 } } AES AES(Advanced Encryption Standard),即高级加密标准,在密码学中又称Rijndael
概述 非对称加密算法与对称加密算法的主要差别在于非对称加密算法用于加密和解密的密钥不相同,非对称加密算法密钥分为公钥和私钥,公钥加密只能用私钥解密,反之私钥加密只能用公钥解密。 相比对称加密算法,非对称加密算法加/解密效率低,但安全性高,这两种算法一般结合使用。常见非对称加密算法有RSA、ECC、Elgamal等。 使用RSA实现加密解密 公钥加密,私钥解密。 static void main(String[] args) throws Exception { String content = "大王叫我来巡山呐"; //生成密钥对 (keyMap.get(KEY_TYPE_PUBLIC_KEY), privateKeyData, KEY_TYPE_PUBLIC_KEY)); //公钥加密,私钥解密 static void main(String[] args) throws Exception { String content = "大王叫我来巡山呐"; //生成密钥对
非对称加密算法 使用过程: 乙方生成两把密钥(公钥和私钥) 甲方获取乙方的公钥,然后用它对信息加密。 、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法) 非对称加密方法 1公钥私钥的使用原则 ①每一个公钥都对应一个私钥。 ④如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。 非对称密钥密码的主要应用就是公钥加密和公钥认证。 2.1加密 A(客户)想给B(服务器)发送一段文字,但是不想让别人看到,因此想使用非对称加密方法来加密这段文字,当然,B需要有一对公钥和私钥: ① B将他的公钥发送给A ② A用B给他的公钥加密这段文字 签名所使用的算法 (Signature algorithm) 指的这个数字证书的数字签名所使用的加密算法,这样就可以使用证书发布机构的证书里面的公钥,根据这个算法对指纹进行解密。
对称加密算法,即加密和解密使用一样的密钥的加解密算法。 分组密码(block cipher),是每次只能处理特定长度的一块(block)数据的一类加解密算法。 目前常见的对称加密算法DES、3DES、AES都是属于分组密码。 DES DES,全称Data Encryption Standard,是上一代标准对称加密算法,现已不推荐使用。 密钥:DES是一种将64bit的明文加密成64bit的密文的对称密码算法,它的密钥长度是64bit(每隔7bit会设置一个用于错误检查的bit,因此实际使用密钥长度56bit)。 一个分组的比特数就称为分组长度(block length)。 流密码(stream cipher),是对数据流进行连续处理的一类密码算法。 DES、3DES、AES等大多数对称密码算法都属于分组密码。 ECB模式 全称Electronic CodeBook mode,电子密码本模式。 分组方式:将明文分组加密之后的结果直接称为密文分组。
一种常见的对称加密算法--DES 目前在国内,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密, 其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。 DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。 1.设计自己的哈希函数。不要简单地复制粘贴常见开源代码。 这样会增加安全性,别人就算获得了你的加密源码,也要重新构造彩虹表。 2.SHA-1,安全哈希算法,对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。。 5,信息摘要算法) 通常我们不直接使用上述MD5加密。
注意,这可不是我说的,是无数程序员总结的,话说的很实在也很精辟,若想长久可持续发展,多研究算法还是很有必要的,今天我给大家说说加密算法中的对称加密算法,并且这里将教会大家对称加密算法的编程使用。 包含DES、3DES和AES三种对称加密算法的编程使用,干货满满。 ? 1.对称密码算法 对称密码算法是当今应用范围最广,使用频率最高的加密算法。它不仅应用于软件行业,在硬件行业同样流行。 各种基础设施凡是涉及到安全需求,都会优先考虑对称加密算法。 对称密码算法的加密密钥和解密密钥相同,对于大多数对称密码算法,加解密过程互逆。 (1)加解密通信模型 ? (2)特点:算法公开、计算量小、加密速度快、加密效率高 (3)弱点:双方都使用同样密钥,安全性得不到保证 对称密码有流密码和分组密码两种,但是现在普遍使用的是分组密码: (4)分组密码工作模式 1)ECB 下面我们看如何使用 DES / 3DES / AES 三种算法实现 对称加密: 2.DES算法 1.DES:数据加密标准,是对称加密算法领域中的典型算法 2.特点:密钥偏短(56位)、生命周期短(避免被破解
扫码关注云+社区
领取腾讯云代金券