第三章 密码学基本理论

本章讲述了密码学的基本概念以及常见的密码体制、密码算法,分析了杂凑函数、数字签名、国产密码算法、安全协议等的工作原理;本章还分析了密码在网络安全方面的应用场景类型。

3.1密码学概况

密码技术是保障网络与信息安全的核心技术和基础支撑。
本节主要介绍密码学的发展简况密码学的基本概念以及密码系统的安全性分析方法

3.1.1密码学发展简况

密码学是一门研究信息安全保护的科学,以实现信息的保密性、完整性、 可用性及抗抵性。密码学主要由密码编码和密码分析两个部分组成。其中,密码编码学研究信息的变换处以实现信息的安全保护,而密码分析学则研究通过密文获取对应的明文信息。早期的密码学要用于军事和外交通信。密码技术经历了由传统密码学到现代密码学的发展。传统密码学中的技术主要是换位和置换,这种加密方式易遭到统计分析破译,如字母的频率、字母的组合关系是分析传统密码的基本方法。
1949年,香农发表了著名的论文《保密系统的通信理论》,提出交替使用换位和置换以抵御统计分析,增加了混乱(Confusion)和扩散(Diffusion)的密码技术新方法。
20世纪70年代,密码技术出现重大创新变化,一是Diffie-Hellman 算法、RSA算法的提出开辟了公钥密码学的新纪元;二是美国政府正式发布了数据加密标准(DES) ,以提供给商业公司和非国防政府部门使用。这些研究成果的出现标志着现代密码学的诞生。
之后其他的公钥密码相关方案相继出现,如Rabin体制、ElGamal 公钥体制、椭圆曲线密码公钥体制以及基于代理编码理论的MeEliece 体制和基于有限自动机理论的公钥密码体制等。
1984 年,针对传统公钥认证和证书管理的问题,Shamir提出了基于身份的公钥密码系统的思想,简化了证书管理。在这种公钥密码体制的密钥生成过程中,公钥直接为实体的身份信息,例如唯一身份证号码、电子邮件地址等,因而基于身份的公钥密码体制可以很自然地解决公钥与实体绑定问题。RSA算法及Diffie-Hellman算法的发明者都相继获得了计算机领域的图灵奖。
密码算法的安全性不是一成不变的,随着量子计算技术日渐成熟,RSA算法的安全性受挑战,抵抗量子计算的密码算法成为新的需求。后量子时代密码( Post-Quantum Cryptography)研究工作是当前密码学的研究热点。
网络与信息技术的发展极大地带动了密码学的应用需求,电子政务、电子商务、网络银行、个人信息等领域的安全保护都普遍使用了密码技术。密码工作直接影响国家安全,关系公民、法人和其他组织机构的切身利益。目前,密码成为网络与信息安全的核心技术和基础支撑,密码学的应用得到社会广泛认同,正影响着网络与信息技术的发展。2005 年4月1日起国家施行《中华人民共和国电子签名法》。 2006 年我国政府公布了自己的商用密码算法,成为我国密码发展史上的一件大事。2019年《中华人民共和国密码法》草案已经发布。

3.1.2密码学基本概念

密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分析学则是在不知道密钥的情况下,识别出明文的科学
明文是指需要采用密码技术进行保护的消息
密文则是指用密码技术处理过明文的结果,通常称为加密消息
将明文变换成密文的过程称作加密,其逆过程,即由密文恢复出原明文的过程称作解密。加密过程所使用的一组操作运算规则称作加密算法,而解密过程所使用的一组操作运 算规则称作解密算法。加密和解密算法的操作通常都是在密钥控制下进行的,分别称为加密密钥和解密密钥。

3.1.3密码安全性分析

根据密码分析者在破译时己具备的前提条件,人们通常将密码分析攻击类型分为五种,分别叙述如下。

  • (1)唯密文攻击(ciphertex-only attack)。密码分析者只拥有一个或多个用同一个密钥加密的密文没有其他可利用的信息。
  • (2)已知明文攻击(know-plaintext attack)。密码分析者仅知道当前密钥下的一-些明文及所对应的密文。
  • (3)选择明文攻击(chosen-plaintext attack)。 密码分析者能够得到当前密钥下自己选定的明文所对应的密文。
  • (4)密文验证攻击(ciphertext verification
    attack)
    。密码分析者对于任何选定的密文,能够得到该密文“是否合法”的判断。
  • (5)选择密文攻击(chosen-ciphertext
    attack)
    。除了挑战密文外,密码分析者能够得到任何选定的密文所对应的明文。

3.2密码体制分类

根据密钥的特点,密码体制分为私钥公钥密码体制两种,而介于私钥和公钥之间的密码体制称为混合密码体制。

3.2.1私钥密码体制

私钥密码体制又称为对称密码体制,指广泛应用的普通密码体制,该体制的特点是加密和解密使用相同的密钥,如下图所示。

私钥密码体制可看成保险柜,密钥就是保险柜的号码。持有号码的人能够打开保险柜,放入文件,然后再关闭它。获取到号码的其他人可以打开保险柜,取出文件,而没有号码的人就必须摸索保险柜的打开方法。当用户应用这种体制时,消息的发送者和接收者必须事先通过安全渠道交换密钥,以保证发送消息或接收消息时能够有供使用的密钥。
私钥密码体制的密钥分配和管理极为重要。为了保证加密消息的安全,密钥分配必须使用安全途径,例如由专门人员负责护送密钥给接收者。同时,消息发送方和接收方都需要安全保管密钥,防止非法用户读取。除了密钥的安全分配和管理外,私钥密码体制的另外一个问题是密钥量的管理,由于加密和解密使用同一个密钥,因此,在不同的接收者分别进行加密通信或信息交换时,则需要有几个不同的密钥。假设网络中有n个使用者,使用者之间共享一个密钥,则共有n (n-1) /2个密钥。如果n很大,密钥将多得无法处理。在私钥密码体制中,使用者A和B具有相同的加、解密能力,因此使用者B无法证实收到的A发来的消息是否确实来自A。
私钥密码体制的缺陷可归结为三点:密钥分配问题密钥管理问题以及无法认证源。虽然私钥密码体制有不足之处,但私钥密码算法处理速度快,人们常常将其用作数据加密处理。目前,私钥密码典型算法有DESIDEAAES等,其中DES是美国早期数据加密标准,现在已经被AES取代。

3.2.2公钥密码体制

1976年,W.Diffie和M.E.Hellman发表了 《密码学的新方向》 一文,提出了公钥密码体制的思想,公钥密码体制又称为非对称密码体制,其基本原理是在加密和解密的过程中使用不同的密钥处理方式,其中,加密密钥可以公开,而只需要把解密密钥安全存放即可。在安全性方面,密码算法即使公开,由加密钥推知解密密钥也是计算不可行的。
公钥密码体制原理如下图所示。

公钥密码体制可看成邮局的邮筒,任何人都能轻易地把邮件放进邮筒,只要从邮筒口投进去就行了。把邮件放进邮筒是件公开的事情,但打开邮筒却是很难的。如果持有秘密信息(钥匙或组合密码),就能很容易地打开邮筒的门锁了。与私钥密码体制相比较,公钥密码体制有以下优点。

  • (1)密钥分发方便,能以公开方式分配加密钥
    例如,因特网中个人安全通信常将自己的公钥公布在网页中,方便其他人用它进行安全加密。
  • (2)密钥保管量少
    网络中的消息发送方可以共用一个公开加密密钥,从而减少密钥数量。只要接收万的解密密钥保密,就能实现消息的安全性。
  • (3)支持数字签名
    目前,有三种公钥密码体制类型被证明是安全和有效的,即RSA体制、ELGamal 体制及椭圆曲线密码体制。

3.2.3混合密码体制

混合密码体制利用公钥密码体制分配私钥密码体制的密钥,消息的收发双方共用这个密钥,然后按照私钥密码体制的方式,进行加密和解密运算
混合密码体制的工作原理如下图所示。

第一步,消息发送者Alice用对称密钥把需要发送的消息加密。第二步,Alice 用Bob的公开密钥将对称密钥加密,形成数字信封。然后,一起把加密 消息和数字信封传送给Bob.第三步,Bob收到Alice的加密消息和数字信封后,用自己的私钥将数字信封解密,获取Alice加密消息时的对称密钥。第四步,Bob 使用Alice加密的对称密钥把收到的加密消息解开。

3.3常见密码算法

本节主要介绍国际上常见的密码算法以及国产密码算法

3.3.1 DES

DES (Data Encryption Standard)是数据加密标准的简称,由IBM公司研制。DES是一个分组加密算法,能够支持64比特的明文块加密,其密钥长度为56比特。DES是世界上应用最广泛的密码算法。但是,随着计算机系统运算速度的增加和网络计算的进行,在有限的时间内进行大量的运算将变得更可行。
1997 年,RSA实验室发出了破解DES密文的排战。由Roche Verse牵头的一个工程小组动用了70 000多台通过互联网连接起来的计算机,使用暴力攻击程序,大约花费96天的时间找到了正确的DES密钥。1998年7月,电子前沿基金会(EFF)花费了250 000美元制造的一台机器在不到3天的时间里攻破了DES。因此,DES56 比特的密钥长度已不足以保证密码系统的安全。NIST于1999年10月25日采用三重DES (Triple DataEncryption Algorithm, TDEA) 作为过渡期间的国家标准,以增强DES的安全性,并开始征集**AES (Advanced Encryption Standard)**算法。其中,TDEA 算法的工作机制是使用DES对明文进行“加密→解密→加密”操作,即对DES加密后的密文进行解密再加密,而解密则相反。
设EkE_kEk​( )和DkD_kDk​( )代表DES算法的加密和解密过程,K代表DES算法使用的密钥,I代表明文输入,O代表密文输出,则TDEA的加密操作过程如下:

I–> DES Ek1E_{k1}Ek1​–> DES Dk2D_{k2}Dk2​–> DES Ek3E_{k3}Ek3​–>O

TDEA的解密操作过程如下:

I–> DES Dk3D_{k3}Dk3​–> DES Ek2E_{k2}Ek2​–> DES Dk1D_{k1}Dk1​–>O

3.3.2 IDEA

IDEA (Intemational Data Encryption Algorithm) 是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是64比特,密钥长度为128比特。该算法是由来学嘉(X.J.Lai)和Massey提出的建议标准算法,已在PGP中得到应用。IDEA算法能够接受64比特分组加密处理,同一算法既可用于加密又可用于解密,该算法的设计思想是“混合使用来自不同代数群中的运算”。

3.3.3 AES

1997 年美国家标准技术研究所(NIST)发起征集AES (Advanced Encryption Standard)算法的活动,并专门成立了AES工作组,其目的是确定一个非保密的、 公开的、全球免费使用的分组密码算法,用于保护下世纪政府的敏感信息。 NIST规定候选算法必须满足下面的要求:

  • 密码必须是没有密级的,绝不能像商业秘密那样来保护它;
  • 算法的全部描述必须公开披露;
  • 密码必须可以在世界范围内免费使用;
  • 密码系统支持至少128比特长的分组;
  • 密码支持的密钥长度至少为128、192和256比特。

参与AES的候选算法中,Rijndael提供了安全性、软件和硬件性能、低内存需求以及灵活性的最好的组合,因此NIST确定选择了Rijndael作为AES

3.3.4 RSA

RSA算法是非对称算法,由Ronald Rivest、 Adi ShamirLeonard Adleman三人共同在1977公开发表。在RSA加密算法中,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用解密消息的密钥相反。RSA算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。目前,SSHOpenPGPS/MIMESSL/TLS都依赖于RSA进行加密和数字签名功能。RSA算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。
RSA签名验证是网络连接系统中最常见的执行操作之一。

RSA算法基于大整数因子分解的困难性,该算法的步骤如下:

  • 第一步,生成两个大素数p和q。
  • 第二步,计算这两个素数的乘积n =pq。
  • 第三步,计算小于n并且与n互素的整数的个数,即欧拉函数φ(n)= (p-1)(q-1)。
  • 第四步,选取一个随机数e,且满足1<e<φ(n),并且e和φ(n)互素,即ged(e,φ(n))=1。
  • 第五步,计算d=e−1e^{-1}e−1modφ(n)。
  • 第六步,保密d、p和q,而公开n和e,即d作为私钥,而n和e作为公钥。

下面,举一个RSA加密的具体实例。设素数p=3, g=17,并令e=13,则RSA的加密操作如下:

  • 第一步,计算n, n=pq=3x17=51,得出公钥n=51,e=13。
  • 第二步,计算φ(n)和d,φ(n)=(p-1)(q-1)=2x16=32。 因为d=e−1e^{-1}e−1modφ(n),所以d=kφ(n)+1e\cfrac{kφ(n)+1}{e}ekφ(n)+1​其中k是p-1和q-1的最大公约数。由此算出d=(2x32+1)/13=5, 即解密密钥d=5。
  • 第三步,加密和解密处理计算。假设Bob的公开密钥是e=13、n=51, Alice需要将明文“2”发送给Bob,则Alice首先用Bob的公开密钥加密明文,即:
    C= MeM^eMemodn= 2132^{13}213 mod51= 8192 mod51= 32
    然后,Bob 收到Alice发来的密文C后,用自己的私钥d解密密文C,即:
    M=CdC^dCdmodn= 32532^5325 mod51= 1024x1024x32mod51= 512mod51=2

RSA安全性保证要做到选取的素数p和q足够大,使得给定了它们的乘积n后,在事先不知道p 或 q的情况下分解n是计算上不可行的。因此,破译RSA密码体制基本上等价于分解n。基于安全性考虑, 要求n长度至少应为1024比特,然而从长期的安全性来看,n的长度至少应为2048比特,或者是616位的十进制数。

3.3.5国产密码算法

国产密码算法是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法。
1999年国务院发布实施的《商用密码管理条例》第一章第二条规定:“ 本条例所称商用密码,是指对不涉及国家秘密内容的信息进行加密保护或者安全认证所使用的密码技术和密码产品。”
目前,已经公布的国产密码算法主要有SM1分组密码算法、SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组算法、SM9标识密码算法。
各国产商用密码算法的特性统计如下表所示:

算法名称 算法特性描述 备注
SM1 对称加密,分组长度和密钥长度都为128比特
SM2 非对称加密,用于公钥加密算法、密钥交换协议、数字签名算法 国家标准推荐使用素数域256位椭圆曲线
SM3 杂凑算法,杂凑值长度为256比特
SM4 对称算法,分组长度和密钥长度都为128比特
SM9 标识密码算法

其中,SM1算法是一种对称加密算法,分组长度为128比特,密钥长度为128比特。
SM2算法基于椭圆曲线,应用于公钥密码系统。对于一般椭圆曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法。与大数分解问题及有限域上离散对数问题相比,椭圆曲线离散对数问题的求解难度要大得多。因此在相同安全程度的要求下, 椭圆曲线密码较其他公钥密码所需的密钥规模要小得多。SM2算法可以用于数字签名、密钥交换、公钥加密。详见GMT 0009–2012 《SM2 密码算法使用规范》。
SM3杂凑算法对长度为l(l<2642^{64}264)比特的消息m,经过填充、迭代压缩,生成杂凑值,杂凑值输出长度为256比特。详见GMTO004–2012 《SM3密码杂凑算法》。
SM4密码算法是一个分组算法。该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。详见GM/T0002–2012 《SM4分组密码算法》。
SM9是标识密码算法。在标识密码系统中,用户的私钥由密钥生成中心(KGC)根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定, 因而用户不需要通过第三方保证其公钥的真实性。与基于证书的公钥密码系统相比较,标识密码系统中的密钥管理环节可以得到简化。SM9可支持实现公钥加密、密钥交换、数字签名等安全功能,详见GMT004–2016《SM9标识密码算法》。

3.4Hash函数与数字签名

本节主要介绍Hash函数的特性以及常用的Hash算法,同时给出Hash算法在数字签名中的应用

3.4.1Hash函数

杂凑函数简称Hash函数,它能够将任意长度的信息转换成固定长度的哈希值(又称数字摘要或消息摘要),并且任意不同消息或文件所生成的哈希值是不一样的
令h表示Hash函数,则h满足下列条件:

  • (1) h的输入可以是任意长度的消息或文件M ;
  • (2)h的输出的长度是固定的;
  • (3)给定h和M,计算h(M)是容易的;
  • (4)给定h的描述,找两个不同的消息M1M_1M1​和M2M_2M2​,使得h(M1M_1M1​)=h(M2M_2M2​)是计算上不可行的。

Hash函数的安全性,是指在现有的计算资源下,找到一个碰撞是不可能的
Hash 函数在网络安全应用中,不仅能用于保护消息或文件的完整性,而且也能用作密码信息的安全存储。例如,网页防篡改应用。网页文件管理者首先用网页文件生成系列Hash值,并将Hash值备份存放在安全的地方。然后定时再计算这些网页文件的Hash值,如果新产生的Hash值与备份的Hash值不一样,则说明网页文件被篡改了。

3.4.2Hash算法

Hash算法是指有关产生哈希值或杂凑值的计算方法。Hash 算法又称为杂凑算法散列算法哈希算法数据摘要算法,其能够将一个任意长的比特串映射到一个固定长的比特串。常见的Hash算法有MD5SHASM3

  • 1.MD5算法
    MD5 (Message Digest Algorithm–5)算法是由Rivest 设计的,于1992年公开,RFC 1321对其进行了详细描述。MD5以512位数据块为单位来处理输入,产生128 位的消息摘要,即MD5能产生128比特长度的哈希值。MD5使用广泛,常用在文件完整性检查。但是,据最新研究表明,MD5的安全性受到挑战,王小云教授及其研究团队提出了Hash函数快速寻找碰撞攻击的方法,相关研究工作表明MD5的安全性已经不足。

  • 2.SHA算法
    SHA (Secure Hash Agorithm)算法由NIST开发,并在1993年作为联邦信息处理标准公布。SHA-1与MD5的设计原理类似,同样也以512位数据块为单位来处理输入,产生160位的哈希值,具有比MD5更强的安全性。
    SHA算法的安全性不断改进,已发布的版本有SHA-2、SHA-3。
    SHA算法产生的哈希值长度有SHA-224、SHA-256、
    SHA-384、 SHA-512 等。

  • 3.SM3国产算法

    SM3是国家密码管理局于2010年公布的商用密码杂凑算法标准。该算法消息分组长度为512比特,输出杂凑值长度为256比特,采用Merkle-Damgard结构。

3.4.3数字签名

数字签名(Digital Signature) 是指签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。
数字签名的目的是通过网络信息安全技术手段实现传统的纸面签字或者盖章的功能,以确认交易当事人的真实身份,保证交易的安全性、真实性和不可抵赖性
数字签名具有与手写签名一样的特点, 是可信的不可伪造的不可重用的不可抵赖的以及不可修改的
数字签名至少应满足以下三个条件:

  • (1)非否认。签名者事后不能否认自己的签名。
  • (2)真实性。接收者能验证签名,而任何其他人都不能伪造签名。
  • (3)可鉴别性。当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。

一个数字签名方案一般由签名算法验证算法组成。
签名算法密钥是秘密的,只有签名的人掌握;
验证算法则是公开的,以便他人验证。
典型的数字签名方案有RSA签名体制Rabin签名体制EIGamal 签名体制DSS (Data Signature Standard) 标准。签名与加密很相似,一般是签名者利用秘密密钥(私钥)对需签名的数据进行加密,验证方利用签名者的公开密钥(公钥)对签名数据做解密运算。签名与加密的不同之处在于,加密的目的是保护信息不被非授权用户访问,而签名是使消息接收者确信信息的发送者是谁,信息是否被他人篡改。

下面我们给出数字签名一工作的基本流程,假设Alice需要签名发送一份电子 合同文件给Bob。
Alice的签名步骤如下:

  • 第一步,Alice使用Hash函数将电子合同文件生成一个消息摘要;
  • 第二步,Ai使用自己的私钥,把消息摘要加密处理,形成一个数字签名;
  • 第三步,Aice把电子合同文件和数字签名同发送给Bob。
    Aice的签名过程如下图所示:

Bob收到Alice发送的电子合同文件及数字签名后,为确信电子合同文件是Alice所认可的。
验证步骤如下:

  • 第一步, Bob使用与Alicc相同的Hash算法,计算所收到的电子合同文件的消息摘要;
  • 第二步,Bob使用Alice的公钥,解密来自Alice的加密消息摘要,恢复Alice 原来的消息摘要;
  • 第三步,Bob比较自己产生的消息摘要和恢复出来的消息摘要之间的异同。若两个消息摘要相同,则表明电子合同文件来自Alice。如果两个消息摘要的比较结果不一致,则表明电子合同文件已被篡改。
    Bob验证数字签名的过程如下图所示:

3.5密码管理与数字证书

本节首先介绍密码管理,包括密钥管理密码管理政策密码测评,然后给出数字证书的概念以及CA的基本功能数字证书认证系统组成。

3.5.1密码管理

密码系统的安全性依赖于密码管理。密码管理主要可以分成三个方面的内容,即密钥管理密码管理政策密码测评

1.密钥管理

密钥管理主要围绕密钥的生命周期进行,包括密钥生成密钥存储密钥分发密钥使用密钥更新密钥撤销密钥备份密钥恢复密钥销毁密钥审计

  • (1)密钥生成
    密钥应由密码相关产品或工具按照一定标准产生,通常包括密码算法选择、密钥长度等。密钥生成时要同步记录密钥的关联信息,如拥有者、密钥使用起始时间、密钥使用终止时间等。

  • (2)密钥存储
    一般来说密钥不应以明文方式武存储保管,应采取严格的安全防护措施,防止密钥被非授权的访问或篡改。

  • (3)密钥分发
    密钥分发工作是指通过安全通道,把密钥安全地传递给相关接收者,防止密钥遭受截取、篡改、假冒等攻击,保证密钥机密性、完整性以及分发者、接收者身份的真实性。目前,密钥分发的方式主要有人工、自动化和半自动化。其中,自动化主要通过密钥交换协议进行。

  • (4)密钥使用
    密钥使用要根据不同的用途而选择择正确的使用方式。密钥使用和密码产品保持一致性, 密码算法、密钥长度、密码产品都要符合相关管理政策,即安全合规。使用密钥前,要验证密钥的有效性,如公钥证书是否有效。密钥使用过程中要防止密钥的泄露和替换,按照密钥安全策略及时更换密钥。建立密钥应急响应处理机制,以应对突发事件,如密钥丢失事件、密钥泄密事件、密钥算法缺陷公布等。

  • (5)密钥更新
    当密钥超过使用期限、密钥信息泄露、密码算法存在安全缺陷等情况发生时,相关密钥应根据相应的安全策略进行更新操作,以保障密码系统的有效性。

  • (6)密钥撤销
    当密钥到期、密钥长度增强或密码安全应急事件出现的时候,则需要进行撤销密钥,更换密码系统参数。撤销后的密钥一般不重复使用,以免密码系统的安全性受到损害。

  • (7)密钥备份
    密钥备份应按照密钥安全策略,采用安全可靠的密钥备份机制对密钥进行备份。备份的密钥与密钥存储要求一致,其安全措施要求保障备份的密钥的机密性、完整性、可用性。

  • (8)密钥恢复
    密钥恢复是在密钥丢失或损毁的情形下,通过密钥备份机制,能够恢复密码系统的正常运行。

  • (9)密钥销毁
    根据密钥管理策略,可以对密钥进行销毁。一般来说销毁过程应不可逆,无法从销毁结果中恢复原密钥。特殊的情况下,密钥管理支持用户密钥恢复和司法密钥恢复。

  • (10)密钥审计
    密钥审计是对密钥生命周期的相关活动进行记录,以确保密钥安全合规,违规情况可查可追溯。

2. 密码管理政策

密码管理政策是指国家对密码进行管理的有关法律政策文件、标准规范、安全质量测评等
目前,国家已经颁布了 《商用密码管理条侧》 内容主要有商用密码的科研生产管理、 销售管理、使用管理、安全保密管理。 《中华人民共和国密码法》 也已颁布实施,相关工作正在推进。《中华人民共和国密码法》明确规定,密码分为核心密码、普通密码和商用密码,实行分类管理。核心密码、普通密码用于保护国家秘密信息,属于国家秘密,由密码管理部门依法实行严格统一管理,商用密码用于保护不属于国家秘密的信息,公民、法人和其他组织均可依法使用商用密码保护网络与信息安全。
为规范商用密码产品的设计、实现和应用,国家密码管理局发布了一系列密码行业标准,主要有 《电子政务电子认证服务管理办法》《电子政务电子认证服务业务规则规范》《密码模块安全检测要求》《安全数据库产品密码检测准则》《安全隔离与信息交换产品密码检测指南》《安全操作系统产品密码检测准则》《防火墙产品密码检测准则》 等。

3.密码测评

密码测评是指对相关密码产品及系统进行安全性、合规性评估,以确保相关对象的密码安全有效,保障密码系统的安全运行
目前,国家设立了商用密码检测中心,其主要职责包括:商用密码产品密码检测信息安全产品认证密码检测含有密码技术的产品密码检测信息安全等级保护商用密码测评商用密码行政执法密码鉴定国家电子认证根CA建设和运行维护密码技术服务商用密码检测标准规范制订等。

3.5.2数字证书

数字证书(Digital Certificate) 也称公钥证书,是由证书认证机构(CA)签名的包含公开密钥拥有者信息公开密钥签发者信息有效期以及扩展信息的一种数据结构。
如下图所示是一个国外机构颁发的数字证书样式:

为规范数字证书的格式,国家制定了 《信息安全技术 公钥基础设施 数字证书格式》(征求意见稿)
其中,数字证书的基本信息域格式要求如下表3所示:

序号 项名称 描述
1 version 版本号
2 seriaNumber 序列号
3 signature 签名算法
4 issure 颁发者
5 validity 有效日期
6 subject 主体
7 subjectPublicKeyInfo 主体公钥信息
8 issuerUniqueID 颁发者唯一标识符
9 subjectUniqueID 主体唯一标识符
10 extensions 扩展项

用户证书的结构实例如下表所示:

版本号(version)
证书序列号(seriaNumber)
签名算法标识符(signature)
颁发者名称(issure)
有效期(validity) 起始有效期
终止有效期
主体名称(subject) countryName(国家)
stateOrProvinceName(省份)
localityName(地市)
organizationName(组织名称)
organizationalUnitName(机构名称)
CommanName(用户名称)
主体公钥信息(subjectPublicKeyInfo)
颁发机构的密钥标识符(authorityKeyIdentifier)
主体密钥标识符(subjectKeyIdentifier)
CRL分发点(CRLDistributionPoints)

数字证书按类别可分为个人证书机构证书设备证书,按用途可分为签名证书加密证书
签名证书是用于证明签名公钥的数字证书
加密证书是用于证明加密公钥的数字证书
当前,为更好地管理数字证书,一般是基于PKI技术建立数字证书认证系统(简称为CA)CA提供数字证书的申请、审核、签发、查询、发布以及证书吊销等全生命周期的管理服务。
数字证书认证系统的构成及部署如下图所示,主要有目录服务器、OCSP服务器、注册服务器、签发服务器等。

3.6安全协议

本节介绍常见的密钥交换协议SSH

3.6.1 Diffie-Hellman密钥交换协议

W.Diffie和M.E.Hellman于1976年首次提出一种共享秘密的方案,简称Diffie-Hellman密钥交换协议。Diffie-Hellman 密钥交换协议基于求解离散对数问题的困难性,即对于下述等式:

CdC^dCd= M mod P

其中,d称为模P的以C为底数的M的对数,在已知C和P的前提下,由d求M很容易,只相当于进行一次指数计算。而再由M反过来求d,则需要指数级次计算。随着P取得足够大,就能实现足够的安全强度。现在假设Alice 和Bob使用Diffie-Hellman 密钥交换协议,在一个不安全的信道上交换密钥,则其操作步骤如下:

  • 第一步,Alice 和Bob确定一个适 当的素数p和整数α,并使得α是p的原根,其中α和p可以公开。
  • 第二步,Alice 秘密选取一个整数aAa_AaA​,计算yAy_AyA​=αaA\alpha ^{a_A}αaA​mod p,并把yAy_AyA​发送给Bob。
  • 第三步,Bob秘密选取一个整数aBa_BaB​,计算yBy_ByB​=αaB\alpha ^{a_B}αaB​mod p,并把yBy_ByB​发送给Alice。yAy_AyA​和yBy_ByB​就是所说的Diffie-Hellman公开值。
  • 第四步,Alice 和Bob双方分别计算出共享密钥K,即:
    Alice通过计算K=(yB)aA(y_{B})^{a_{A}}(yB​)aA​ mod p生成密钥K;
    Bob通过计算K=(yA)aB(y_{A})^{a_{B}}(yA​)aB​ mod p生成密钥K。
    因为:
    K=(yB)aA(y_{B})^{a_{A}}(yB​)aA​ mod p = (αaB\alpha ^{a_B}αaB​mod p)aA^{a_A}aA​ mod p
    =(αaB)aA(\alpha ^{a_{B}})^{a_{A}}(αaB​)aA​ mod p= αaBaA\alpha ^{a_{B}a_{A}}αaB​aA​ mod p
    =(αaA)aB(\alpha ^{a_{A}})^{a_{B}}(αaA​)aB​ mod p =(αaA(\alpha ^{a_{A}}(αaA​mod p)aB^{a_{B}}aB​mod p
    =(yA)aB(y_{A})^{a_{B}}(yA​)aB​ mod p
    所以Alice和Bob生成的密钥K是相同的,这样一来就实现了密钥的交换。Alice和Bob采用Diffie-Hellman密钥交换的安全性基于求解离散对数问题的困难性,即从计算yAy_AyA​或yBy_ByB​以及α\alphaα计算aAa_AaA​或aBa_BaB​在计算上是不可行的。

3.6.2 SSH

SSHScure Shell的缩写,即“安全外壳”,它是基于公钥的安全应用协议,由SSH传输层协议SSH用户认证协议SSH连接协议三个子协议组成,各协议分工合作,实现加密、认证、完整性检查等多种安全服务。
SSH最初是芬兰的学术研究项目,1998年开始商业化。SSH研究开发的目的是以一种渐进的方式来增强网络安全,通过利用现代密码技术,增强网络中非安全的服务。例如TelnetRloginFTP等,实现服务器认证、用户认证及安全加密网络连接服务。目前,SSH已有两个版本SSH1SSH2,其中SSH1因存在漏洞而被停用,现在用户使用的是SSH2。
SSH2的协议结构如下图所示:

SSH传输层协议提供算法协商和密钥交换,并实现服务器的认证,最终形成一个加密的安全连接,该安全连接提供完整性、保密性和压缩选项服务。
SSH 用户认证协议则利用传输层的服务来建立连接,使用传统的口令认证、公钥认证、主机认证等多种机制认证用户。
SSH连接协议在前面两个协议的基础上,利用已建立的认证连接,并将其分解为多种不同的并发逻辑通道,支持注册会话隧道和TCP转发(TCP-forwarding),而且能为这些通道提供流控服务以及通道参数协商机制。
SSH的工作机制共分7个步骤,如下图所示:

目前,用户为了认证服务器的公钥真实性,有三种方法来实现。

  • 第一种, 用户直接随身携带含有服务器公钥的拷贝,在进行密钥交换协议前,读入客户计算机;
  • 第二种,从公开信道下载服务器的公钥和它对应的指纹后,先通过电话验证服务器的公钥指纹的真实性,然后用HASH软件生成服务器的公钥新指纹,比较下载的指纹和新生成的指纹,若比较结果相同,则表明服务器的公钥是真实的,否则服务器的公钥是虚假的:
  • 第三种,通过PKI技术来验证服务器。

在实际的应用中,SSH在端口转发技术(如下图所示)的基础上,能够支持远程登录(Telnet) 、rsh、rlogin、 文件传输(scp)等多种安全服务。Linux系统一般提供SSH服务,SSH的服务进程端口通常为22。
SSH端口转发示意图:

虽然SSH是一个安全协议,但是也有可能受到中间人攻击和拒绝服务攻击。

3.7密码学网络安全应用

密码技术广泛应用在网络信息系统的安全保障的各个方面,本节分析密码技术的应用场景类型,给出了路由器网站电子邮件等应用参考

3.7.1密码技术常见应用场景类型

密码技术主要应用场景类型阐述如下。

1.网络用户安全

采用密码技术保护网络用户的安全措施主要有:

  • 一是基于公钥密码学技术,把用户实体信息与密码数据绑定,形成数字证书,标识网络用户身份,并提供身份鉴别服务;
  • 二是使用加密技术,保护网络用户的个人敏感信息。
2.物理和环境安全

采用密码技术保护物理和环境的安全措施主要有:

  • 一是对物理区域访问者的身份进行鉴别,保证来访人员的身份真实性;
  • 二是保护电子门禁系统进出记录的存储完整性和机密性;
  • 三是保证视频监控音像记录的存储完整性和机密性。
3.网络和通信安全

采用密码技术保护网络和通信的安全措施主要有:

  • 一是对通信实体进行双向身份鉴别,保证通信实体身份的真实性;
  • 二是使用数字签名保证通信过程中数据的完整性;
  • 三是对通信过程中进出的敏感字段或通信报文进行加密;
  • 四是使用密码安全认证协议对网络设备进行接入认证,确保接入的设备身份的真实性。
4.设备和计算安全

采用密码技术保护设备和计算的安全措施主要有:

  • 一是使用密码安全认证协议对登录设备用户的身份进行鉴别;
  • 二是使用Hash函数及密码算法建立可信的计算环境;
  • 三是使用数字签名验证重要可执行程序来源的真实性;
  • 四是使用加密措施保护设备的重要信息资源,如口令文件;
  • 五是使用SSH及SSL等密码技术,建立设备远程管理安全信息传输通道。
5.应用和数据安全

采用密码技术保护应用和数据的安全措施主要有:

  • 一是使用安全协议及数字证书对登录用户进行身份鉴别,保证应用系统用户身份的真实性;
  • 二是加密应用系统访问控制信息;
  • 三是应用SSH及SSL等密码技术,传输重要数据,保护重要数据的机密性和完整性;
  • 四是加密存储重要数据,防止敏感数据泄密;
  • 五是使用Hash函数、数字签名等密码技术,保护应用系统的完整性,防止黑客攻击篡改。
6.业务应用创新

采用密码技术进行业务应用创新的措施主要有:

  • 一是利用数字证书和数字签名等密码技术,构建网络发票;
  • 二是使用Hash 函数等密码技术,构建区块链;
  • 三是利用密码技术,建立电子证照。

3.7.2路由器安全应用参考

路由器是网络系统中的核心设备,其安全性直接影响着整个网络。
目前,路由器面临的威胁有路由信息交换的篡改和伪造路由器管理信息泄露路由器非法访问等。为了解决路由器的安全问题,密码学现已被广泛应用到路由器的安全防范工作中,其主要用途如下。

1.路由器口令管理

为了路由器口令的安全存储,路由器先用MD5对管理员口令信息进行Hash计算,然后再保存到路由器配置文件中。

2.远程安全访问路由器

远程访问路由器常用Telnet,但Telnet容易泄露敏感的口令信息,因此, 管理员为增强路由器的安全管理,使用SSH替换Telnet。

3.路由信息交换认证

路由器之间需要进行路由信息的交换,以保证网络路由正常进行,因此需要路由器之间发送路由更新包。为了防止路由欺诈,路由器之间对路由更新包都进行完整性检查,以保证路由完整性。
目前,路由器常用MD5-HMAC来实现。如果路由信息在传输过程中被篡改了,接收路由器通过重新计算收到路由信息的Hash值,然后与发送路由器的路由信息的Hash值进行比较,如果两个Hash值不相同,则接收路由器拒绝路由更新包,如下图所示。

3.7.3Web网站安全应用参考

Web网站是网络应用的重要组成部分,许多重要的网络应用业务如网络银行、新闻发布、电子商务等都基于Web服务开展,其安全性变得日益重要。Web网站已成为黑客攻击的重点目标,其安全威胁主要有信息泄露非授权访问网站假冒拒绝服务等。密码学在Web方面的安全应用有许多,包括Web用户身份认证Web服务信息加密处理以及Web信息完整性检查等。目前,重要信息网站通过数字证书和SSL共同保护Web服务的安全。利用SSL和数字证书,可以防止浏览器和Web服务器间的通信信息泄密或被篡改和伪造。

3.7.4电子邮件安全应用参考

电子邮件是最常见的网络应用,但是普通的电子邮件是明文传递的,电子邮件的保密性难以得到保证,同时电子邮件的完整性也存在安全问题。针对电子邮件的安全问题,人们利用**PGP(Pretty Good Privacy)**来保护电子邮件的安全。
PGP是一种加密软件, 目前最广泛地用于电子邮件安全。它能够防止非授权者阅读邮件,并能对用户的邮件加上数字签名,从而使收信人可以确信发信人的身份。PGP应用了多种密码技术,其中密钥管理算法选用RSA、数据加密算法IDEA、完整性检测和数字签名算法,采用了MD5和RSA以及随机数生成器,PGP 将这些密码技术有机集成在一起利用对称和非对称加密算法的各自优点,实现了一个比较完善的密码系统。

信息安全工程师学习笔记《第三章》相关推荐

  1. 2021信息安全工程师学习笔记(四)

    第四章 网络安全体系与网络安全模型 1.网络安全体系概述 网络安全体系是网络安全保证系统的最高层概念抽象 网络安全体系特征:整体性.协同性.过程性.全面性.适应性 网络安全体系用途 有利于系统性化解网 ...

  2. 信息安全工程师学习笔记《第二章》

    第二章:网络攻击原理与常用方法 本章首先讲述网络攻击相关概念,总结网络攻击的技术特点.发展趋势和网络攻击的一般过程:然后系统的给出了网络攻击的常见技术方法和黑客常用工具:最后分析了分布式拒绝服务攻击. ...

  3. 软考信息安全工程师学习笔记汇总

    软考信息安全工程师学习笔记汇总 https://www.moondream.cn/?p=178 2020年软考信息安全工程师备考学习资料包 1.<信息安全工程师教程>重点标记版 2.& ...

  4. 软考信息安全工程师学习笔记目录

    软考信息安全工程师学习笔记目录 欢迎加入最棒的信息安全工程师社群,分享信息安全工程师备考干货资料. 备考交流QQ群:39460595 2019年软考信息安全工程师备考学习资料包 1.<信息安全工 ...

  5. 《Go语言圣经》学习笔记 第四章 复合数据类型

    <Go语言圣经>学习笔记 第四章 复合数据类型 目录 数组 Slice Map 结构体 JSON 文本和HTML模板 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. ...

  6. 计算机网络(第7版)谢希仁著 学习笔记 第四章网络层

    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层 第四章 网络层 4.3划分子网和构造超网 p134 4.3.1划分子网 4.3.2使用子网时分组的转发 4.3.3无分类编址CIDR(构建超网) ...

  7. Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25

    Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...

  8. 机器人导论(第四版)学习笔记——第四章

    机器人导论(第四版)学习笔记--第四章 4.1 引言 4.2 解的存在性 4.3 当n<6时操作臂子空间的描述 4.4 代数解法和几何解法 4.5 简化成多项式的代数解法 4.6 三轴相交的Pi ...

  9. 线性代数学习笔记——第四章学习指南——n维向量空间

    一.学习内容及要求 1. 内容: §4.1. n维向量空间的概念 线性代数学习笔记--第四十讲--n维向量空间的概念 线性代数学习笔记--第四十一讲--n维向量空间的子空间 §4.2. 向量组的线性相 ...

  10. 信息安全工程师学习笔记《第四章》

    第四章 网络安全体系与网络安全模型 本章内容主要包括: 第一,讲述了网络安全体系的基本概念以及相关安全模型,主要包括机密性模型.完整性模型.信息流模型.信息保障模型.能力成熟度模型.纵深防御模型.分层 ...

最新文章

  1. 2022-2028年中国金融安防行业深度调研及投资前景预测报告
  2. R语言使用car包的scatter3d函数可视化可以交互旋转的3D散点图(Spinning 3D scatter plot by the scatter3d() function of car)
  3. Android--混淆打包找不到资源类的…
  4. Dom4J的基本使用
  5. 自动监控主从MySQL同步的SHELL脚本
  6. SAP Data Intelligence API执行出错的排错之道
  7. P4602 [CTSC2018]混合果汁(主席树)
  8. CompletableFuture不能被打断
  9. Servlet基础(一)
  10. 如何定义适配器adapter类_【设计模式】第六篇:来康康适配器模式
  11. 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑
  12. python笔记之ArcPy简介
  13. 中登TA、自TA、分TA
  14. win10用户名与计算机名字一样,win10电脑账户名和其他信息怎么更改
  15. 2021 年 React 的 5 大富文本编辑器
  16. Flutter Image从网络加载图片刷新、强制重新渲染
  17. 论文笔记:Adversarial Net与IQA
  18. Java云原生(Spring Native)开发初体验报告
  19. w10无法访问其他计算机,win10系统下网上邻居不能访问其他电脑的解决方法
  20. 下拉推广系统立择火星推荐_下拉框软件都择火星下拉下拉框软件速来火星下拉...

热门文章

  1. Zalando Postgres Operator 快速上手
  2. php利用PDO对数据库的操作练习
  3. idea mysql可视化_IntelliJ IDEA 内置数据库管理工具实战
  4. npm官网注册账号失败
  5. 锡育英语背单词软件v2019.04绿色版
  6. consul 变更端口
  7. 在idea配置虚拟机参数与虚拟机内存溢出
  8. mysql安装以及安装navicat并且连接
  9. 医疗器械软件开发哪些事(1)医疗器械软件开发不同之处
  10. mysql 基础选择题_MySQL基础之练习题