1. 什么是数字签名?什么是数字证书?
文件经过Hash形成消息摘要;用发送方私钥对消息摘要加密附加到文件中,形成数字签名。接收方用发送方公钥解密得到消息摘要1,hash原文件得到消息摘要2,两者进行比较。
数字证书是一种用于验证公钥的电子文档,它包含了证书持有人的公钥以及其他信息,用于证明证书持有人的身份和公钥的真实性。数字证书通常由可信任的第三方机构(称为证书颁发机构或CA)签发,以确保证书持有人的身份和公钥的可信度。
2. 对称加密与非对称加密有什么区别
对称加密:指加密和解密使用同一密钥,优点是运算速度较快,缺点是如何安全将密钥传输给另一方。常见的对称加密算法有:DES、AES等。
非对称加密:指的是加密和解密使用不同的密钥(即公钥和私钥)。公钥与私钥是成对存在的,如果用公钥对数据进行加密,只有对应的私钥才能解密。常见的非对称加密算法有RSA。
Kerberos
Kerberos是一种计算机网络认证协议,它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份。 Kerberos 是第三方认证机制,其中用户和服务依赖于第三方(Kerberos 服务器)来对彼此进行身份验证。
Kerberos服务器本身称为密钥分发中心或 KDC,它有三个部分:
- 用户和服务(称为主体)及其各自的 Kerberos 密码的数据库。
- 一个认证服务器(Authentication Server,简称 AS):验证Client端的身份(确定你是身份证上的本人),验证通过就会给一张票证授予票证(Ticket Granting Ticket,简称 TGT)给 Client。
- 一个票据授权服务器(Ticket Granting Server,简称 TGS):通过 TGT(AS 发送给 Client 的票)获取访问 Server 端的票(Server Ticket,简称 ST)。ST(Service Ticket)也有资料称为 TGS Ticket。
协议流程基本步骤如下:
常见加密算法
- 3DES:使用3DES对文明加密的方式,加密k1-解密k2-加密k3,其中K1和K3是相同的,有效密钥长度位112
- IDEA:国际数据加密算法,分组加密算法,一般用于PGP,明文和密文分组都是64位,密钥长度为128位
- AES:高级加密算法,可以通过硬件实现,加密速度快,和3DES一样安全,分组长度为128位,密钥长度支持128,192,256位
RSA
取两个大质数p、q;
计算公共模数n=pq;
计算n的欧拉函数f(n)=(p-1)(q-1);
任取公钥e大于1小于f(n)且与f(n)互质;
根据ed mod f(n) =1算出私钥d;
公钥(e,n) C=M^e mod n;
私钥(d,n) M=C^d mod n;
RSA大于等于124bit比较安全。
分组加密算法有哪些工作模式
ECB电码本 :
最简单的块密码加密模式,加密前根据加密块大小(如AES为128位)分成若干块,之后将每块使用相同的密钥单独加密,解密同理。
将数据按照8个字节一段进行DES加密或解密得到一段8个字节的密文或者明文,最后一段不足8个字节,按照需求补足8个字节进行计算,之后按照顺序将计算所得的数据连在一起即可,各段数据之间互不影响。
特点:
(1)简单,有利于并行计算,误差不会被传送;
(2)同样的明文块会被加密成相同的密文块,不能很好的隐藏明文数据模式;
(3)加密消息块相互独立成为被攻击的弱点,不能提供严格的数据保密性,可以对明文进行主动攻击;
CBC 密文分组连接:
每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量IV。它的实现机制使加密的各段数据之间有了联系。
特点:
①不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准;
②每个密文块依赖于所有的信息块,明文消息中一个改变会影响所有密文块;
③发送方和接收方都需要知道初始化向量;
④主要缺点是加密过程是串行的,无法被并行化,因为在加密时,明文中的微小改变会导致其后的全部密文块发生改变,而且消息必须被填充到块大小的整数倍。而在解密时,从两个邻接的密文块中即可得到一个明文块。因此,解密过程可以被并行化,而解密时,密文中一位的改变只会导致其对应的明文块完全改变和下一个明文块中对应位发生改变,不会影响到其它明文的内容。
CFB 密文反馈:
- CFB需要使用一个与块的大小相同的移位寄存器,并用IV将寄存器初始化。然后,将寄存器内容使用块密码加密,然后将结果的最高x位与明文的x进行异或,以产生密文的x位。下一步将生成的x位密文移入寄存器中,并对下面的x位明文重复这一过程。
- 解密过程与加密过程相似,以IV开始,对寄存器加密,将结果的高x与密文异或,产生x位明文,再将密文的下面x位移入寄存器。与CBC相似,明文的改变会影响接下来所有的密文,因此加密过程不能并行化;而同样的,与CBC类似,解密过程是可以并行化的。
由于加密流程和解密流程中被块加密器加密的数据是前一段密文,因此即使明文数据的长度不是加密块大小的整数倍也是不需要填充的,这保证了数据长度在加密前后是相同的。
OFB 输出反馈:
先用块加密器生成密钥流(Keystream),然后再将密钥流与明文流异或得到密文流;解密是先用块加密器生成密钥流,再将密钥流与密文流异或得到明文,由于异或操作的对称性所以加密和解密的流程是完全一样的。
计数器:
CTR模式是一种通过逐次累加的计数器进行加密来生成密码流的流密码。
CTR模式中,每一个分组对应一个逐次累加的计数器,并通过对计数器进行加密来生成秘钥流,最终的密文分组是通过计数器加密得到的比特序列与明文进行XOR运算得到的。
CTR模式无IV参与运算。
加密攻击有哪些工作模式/威胁模型?
唯密文攻击 只知道密文或密文的一部分 ,可通过统计学方法破密。
已知明文攻击 同一密钥的几个明-密文对
选择明文攻击 攻击者可选明文获得密文
选择密文攻击 攻击者可选密文获得明文
AES/DES加密
DES data encryption standard 对称密码 分组密码/块加密
IP置换 16轮迭代 IP逆置换 64bit/块 密钥64bit
每64位
先进行IP置换,64位分成左右两个32位部分
在密钥的参与下进行16轮迭代,48E扩展、与密钥异或、32S压缩等
16轮后,左右两部分交换并连接,再进行逆置换。
** AES advanced encryption standard 对称密码 分组密码/块加密**
AES 128bit/块 密钥每多64位多两轮 128-10 192-12 256-14
先进行一次明文与子密钥矩阵异或初始变换,
再进行 9轮运算,具体是字节代换,行列变换、轮密钥加密等,
最后进行一次最终轮变换(无列变换)。
密码学
ECC
ECC是建立在基于椭圆曲线的离散对数问题上的密码体制。椭圆曲线离散对数问题
RSA是什么,应用在哪些地方?
RSA是依赖于大整数的素因子分解的非对称算法,可应用于WEB,https协议等
散列里MD5什么时候用?
MD5进行信息摘要,可在WEB登录口令时使用,一般采用加盐的方式
对称加密和非对称加密的区别?
- 对称加密使用同一密钥,非对称加密使用两个密钥,公钥和私钥
- 对称加密一般耗时短,非对称加密耗时长
- 对称加密存在密钥传输安全性问题,非对称公钥可公开
数字签名的原理?
1、将要签名的文件进行hash计算。
2、用私钥将文件的hash值进行签名。
3、除了签名外,还可以添加时间戳以指示签名时间。
1、将原文件进行hash计算得到hash值。
2、将签名的公钥从签名数据中计算出签名数据中的hash值。
3、将步骤1中得到的hash值和步骤2得到的hash值进行对比,如果对比结果一致则验证通过,反之验证失败。