应用密码学基础(微课视频版) 课件全套 李晓峰 01信息与安全 -13协议的安全分析_第1页
应用密码学基础(微课视频版) 课件全套 李晓峰 01信息与安全 -13协议的安全分析_第2页
应用密码学基础(微课视频版) 课件全套 李晓峰 01信息与安全 -13协议的安全分析_第3页
应用密码学基础(微课视频版) 课件全套 李晓峰 01信息与安全 -13协议的安全分析_第4页
应用密码学基础(微课视频版) 课件全套 李晓峰 01信息与安全 -13协议的安全分析_第5页
已阅读5页,还剩269页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息与安全概述什么是信息“信息”一词在英文、法文、德文、西班牙文中均是information”,日文中为“情报”,我国台湾称之为“资讯”,我国古代用的是“消息”。作为科学术语最早出现在哈特莱(R.V.Hartley)于1928年撰写的《信息传输》一文中。20世纪40年代,信息的奠基人香农(C.E.Shannon)

给出了信息的明确定义,许多研究者从各自的研究领域出发,给出了不同的定义。关于信息的描述信息奠基人香农(Shannon)认为“信息是用来消除随机不确定性的东西”,这一定义被人们看作是经典性定义并加以引用。控制论创始人维纳(NorbertWiener)认为“信息是人们在适应外部世界,并使这种适应反作用于外部世界的过程中,同外部世界进行互相交换的内容和名称”,它也被作为经典性定义加以引用。经济管理学家认为“信息是提供决策的有效数据”。电子学家、计算机科学家认为“信息是电子线路中传输的信号”。我国著名的信息学专家钟义信教授认为“信息是事物存在方式或运动状态,是这种方式或状态直接或间接的表述”。美国信息管理专家霍顿(F.W.Horton)给信息下的定义是:“信息是为了满足用户决策的需要而经过加工处理的数据。”简单地说,信息是经过加工的数据,或者说,信息是数据处理的结果。一个例子你看到了什么?你想到了什么?你想告诉大家什么?(你想发送的信息)你怎么告诉大家?(编码和传输)别人收到了什么?(接受编码)别人得到了什么?(解码)别人想到了什么?信息在不同阶段的有着不同的表述形式计算机中的一个例子计算机中的字符字符:中、英、控制字符,字符编码输入编码点阵编码轮廓编码五笔编码拼音编码“时”的五笔编码:jfy计算机中的字符编码“信息”研究的前提如何度量“信息”,这是研究的前提。发展1924Nyquist,CertainFactorsAffectingTelegraphSpeed,1928Nyquist,CertainTopicsinTelegraphTransmissionTheory1928Hartley,TransmissionofInformation1948Shannon,AMathematicsTheoryofCommunication,开创了信息论何为安全可以看出安全是一种状态,是一种“感觉”,这种对“安全的感觉”在不同时期有变化,在不同情境下也有所不同。概括起来有5个安全属性:机密性(Confidentiality):保护信息不被泄露或暴露给未授权的实体。完整性(Integrity):保护数据已防止未授权的改变、删除或替代。可认证(Authentication):提供某个实体(人或系统)的身份的保证。非否认(Non-repudiation):防止参与某次通信交换的一方事后否认本次交换曾经发生过。访问控制(Accesscontrol):保护资源以免对其进行非法使用或操纵。如何看待各种资料中提到的各种安全模型BLP、Biba、RBAC等等不同的安全模型,是站在不同的系统和层级视角,根据不同的安全目标,对达到这个安全目标的过程或者方法进行抽象,突出主要矛盾,形成的一个精简且包括核心要素的保护方法描述。何为安全的“密码”柯克霍夫斯原则现代密码系统的基本设计原则是一个德语教授在其《军事密码学》一书中提出,他指出“密码系统的安全性应该仅仅取决于所使用的密钥的机密性,而不是对该方案本身的保密”,这也就是现在被大家广泛接受的“柯克霍夫斯原则”。完全保密(Perfectsecrecy)or香农安全(ShannonSecurity)完全保密系统,通俗来讲,就是当我们获得密文后,对于我们了解明文,没有任何帮助。换句话说,消息M的概率为P(M),在知道密文E的情况下,消息M的概率为P(M|E),一个完全保密系统就是说对于所有可能的E和M,有P(M)=P(M|E),这个公式的含义也可以说成,消息M的概率与在知道密文E后消息M的概率一样,也可以理解为“保密”意味着密文不给出任何明文或密文的信息。1949CommunicationTheoryofSecrecySystems香农的这篇文章开启了现代密码学文章的中文译稿参见“信息安全经典翻译”开源项目:http://uisu.gitee.io/infsecclat/关于完全保密的数学定义,有很多变种。但是不同定义之间,都可以证明是等价的。完全保密——一次一密一次一密的重要特征是其密钥是一个随机序列,密钥只使用一次,且密钥的长度等于明文序列的长度。一次一密理论上不可攻破的密码系统。也就是说一次一密系统是一种完全保密系统,或者说是完全保密系统的一个一类实现。在历史上AT&T曾经实现过一个一次一密的加密机Vernam,在本资料的扩展阅读部分有此加密机的信息线索,感兴趣的同学可以阅读。完全保密的不现实性一个必要条件:密钥空间不小于明文空间语义安全(SematicSecurity)

相等变为近似近似到什么程度算可以?近似到什么程度?计算困难问题,或者说计算所所需资源大到“结果没有价值”我们只要保证破解是个需要消耗大量资源的事情即可,比如需要投入100万台计算机,运行100年。也就是说,如果破译者在选择最有效的算法前提以下,破解一个密码体制依然需要很大的资源,而这个资源是破译者无法承受的,那么我们称为这个密码体制是计算安全的。计算复杂性理论(Computationalcomplexitytheory)加密的常识性1.不要使用保密的算法。2.使用低强度加密比不进行任何加密更危险,这是因为给使用者错误的安全感。16世纪苏格兰女王玛丽对密码盲信,将刺杀伊丽莎白女王计划写入密信,被送上了断头台就是一个典型的事例。3.任何加密总有一天都会被破解。4.加密只是安全的一部分。一个非常安全的加密系统,我们仍然可以使用其他方法让这个安全的加密系统无效,例如社会工程(socialengineering)的例子,攻击者通过内线电话,打给单位职工,冒充网管,说要进行系统测试,让您修改为指定的密码。密码学的研究内容密码设计密码分析密码测评**密码测评因为具有一些独立的研究内容,作者把其独立出来,在其他资料里未看到这个分法。密码体制常见的密码困难假设(Commoncryptographichardnessassumptions)Integerfactorization(整数分解)RabincryptosystemBlumBlumShubgeneratorOkamoto–UchiyamacryptosystemHofheinz–Kiltz–ShoupcryptosystemRSAproblem(weakerthanfactorization)RSAcryptosystemQuadraticresiduosityproblem(strongerthanfactorization)(二次剩余问题)Goldwasser–MicalicryptosystemDecisionalcompositeresiduosityassumption(strongerthanfactorization)7PailliercryptosystemHigherresiduosityproblem(strongerthanfactorization)BenalohcryptosystemNaccache–SterncryptosystemPhi-hidingassumption(strongerthanfactorization)Cachin–Micali–StadlerPIRDiscretelogproblem(DLP)(离散对数问题)ComputationalDiffie–Hellmanassumption(CDH;strongerthanDLP)Diffie–HellmankeyexchangeDecisionalDiffie–Hellmanassumption(DDH;strongerthanCDH)ElGamalencryptionShortestVectorProblem(最短向量问题)NTRUEncryptNTRUSign密码分析(cryptanalysis)密码分析员对密码系统的攻击分为以下几种[3]:1.密码分析员掌握除了密钥外,密码系统的加密和解密算法.2.仅知密文攻击(ciphertext-onlyattack),密码分析员能够获得密文.3.已知明文攻击(known-plaintextattack),密码分析员能够获得某些明文和这些明文对应的密文.4.选择明文攻击(chosen-plaintextattack,简写为CPA),密码分析员能够有选择地获得明文和这些明文对应的密文.5.选择密文攻击(chosen-ciphertextattack,简写为CCA),密码分析员可以像合法用户那样发送加密的信息.6.密码分析员可以改变、截取或重新发送信息。按照分析的方法,可以分为:穷举法,字典攻击。数学攻击:统计攻击、差分攻击、线性攻击、代数攻击、相关攻击。物理攻击:侧信道分析(sidechannelattack)和与硬件相关的能量分析、时间分析、声音分析、电磁辐射。通常理论上安全的算法,但由于物理实现上的不足,而使得安全性出现问题,这就对硬件设计、密码芯片设计提出更高要求。谢谢Q&A密码学研究内容研究内容密码设计密码体制密码测评(笔者建议)密码设计就是研究如何设计一种满足“安全目标的”密码系统,包括密码设计的方法学和具体的密码设计。按照不同的分类方法,可以分为公钥密码体制(publickeycryptosystem)和对称密码体制(secretkeycryptosystem/symmetriccryptosystem)。也可以分为流密码(也称序列密码,streamciphers)和分组密码(blockchiphers)等。密码算法设计中的通用要求可逆性(reversible):这是基本要求,其实就是要求有解密算法的存在。对合性(involution):这是要求加解密算法中的基础计算部分是可以重用的,这样可以使算法实现的工作量减半,这是从实现角度方面考虑的结果。密码体制基于计算困难问题的密码体制设计我们从香农的讨论中知道,我们可以构造一个完全保密(perfectsecrecy)密码算法,但是这类密码算法的一个要求就是密钥长度和明文一样长,显然这不具有实操性。那么我们是否能把“数学上的安全”降低为“计算安全”,也就是说,我们并不保证“完全安全”,我们只要保证破解是个需要消耗大量资源的事情即可,比如需要投入100万台计算机,运行100年。也就是说,如果破译者在选择最有效的算法前提以下,破解一个密码体制依然需要很大的资源,而这个资源是破译者无法承受的,那么我们称为这个密码体制是计算安全的。常见的密码困难假设Integerfactorization(整数分解)RabincryptosystemBlumBlumShubgeneratorOkamoto–UchiyamacryptosystemHofheinz–Kiltz–ShoupcryptosystemRSAproblem(weakerthanfactorization)RSAcryptosystemQuadraticresiduosityproblem(strongerthanfactorization)(二次剩余问题)Goldwasser–MicalicryptosystemDecisionalcompositeresiduosityassumption(strongerthanfactorization)7PailliercryptosystemHigherresiduosityproblem(strongerthanfactorization)BenalohcryptosystemNaccache–SterncryptosystemPhi-hidingassumption(strongerthanfactorization)Cachin–Micali–StadlerPIRDiscretelogproblem(DLP)(离散对数问题)ComputationalDiffie–Hellmanassumption(CDH;strongerthanDLP)Diffie–HellmankeyexchangeDecisionalDiffie–Hellmanassumption(DDH;strongerthanCDH)ElGamalencryptionShortestVectorProblem(最短向量问题)NTRUEncryptNTRUSign密码分析密码分析(英语:cryptanalysis,来源于希腊语kryptós,即“隐藏”,以及analýein,即“解开”),是一门研究在不知道通常解密所需要的秘密信息的情况下对信息进行解密的学问。通常,这需要寻找一个秘钥。也就是通常我们说的破解密码。对密码系统的攻击(按能力)1.密码分析员掌握除了密钥外,密码系统的加密和解密算法.2.仅知密文攻击(ciphertext-onlyattack),密码分析员能够获得密文.3.已知明文攻击(known-plaintextattack),密码分析员能够获得某些明文和这些明文对应的密文.4.选择明文攻击(chosen-plaintextattack,简写为CPA),密码分析员能够有选择地获得明文和这些明文对应的密文.5.选择密文攻击(chosen-ciphertextattack,简写为CCA),密码分析员可以像合法用户那样发送加密的信息.6.密码分析员可以改变、截取或重新发送信息。对密码系统的攻击(按方法)穷举法,字典攻击。数学攻击:统计攻击、差分攻击、线性攻击、代数攻击、相关攻击。物理攻击:侧信道分析(sidechannelattack)和与硬件相关的能量分析、时间分析、声音分析、电磁辐射。通常理论上安全的算法,但由于物理实现上的不足,而使得安全性出现问题,这就对硬件设计、密码芯片设计提出更高要求。密码测评如何评价密码算法的安全性,如何评价好坏,有多好,多坏,以及如何评价一个加密算法在产品实现中的安全性,都是系统实现中很重要的问题。密码测评(cipherevaluation)是与密码分析有着很多相同点,但是又不同的概念,特别是随着密码的产业化应用,这种不同越来越重要,并且相互不能等同。概念辨析Evaluationisaprocessintendedforhighlightsomeunconformitiesordeficienciesofacryptosystemwhichcanbeusedbyacracker.TheevaluationofacryptographicmodulecanbydoneusingNISTFIPS140-2standard(structuredonfourthlevels)andtheevaluationofaproductcanbedoneusingCommonCriteria(ISO15408)8,methodologyadoptedbyUSA,CanadaandEU(structuredonseventhlevels).Crackingrepresentsanoperationhelpingtodesignatechnique,methodoralgorithmthatpermittherecoveryofthesystemkeyoroftheplaintexthavingareducedcomplexitythanbruteforceattackmethod:-theevaluatorwantstofindtheminimumquantityofoutputinformationthathelphimtodetermine,usingsomestrongmathematicaltools,aseriesofinformationaboutthecipheralgorithm,usedkeyand/orplaintext;-thecrackerwantstofindthemaximumquantityofinformationthathelphimtodeducetheplaintext.谢谢Q&A古典密码何为“古典”在香农1949年发表“Communicationtheoryofsecrecysystems”之前,密码设计都是通过一些经验和技巧,并没有系统的理论的指导,所以通常将这篇文章之前的设计的密码称为“古典”密码。简单替换密码

(SimpleSubstitutionCipher)换位(固定周期d)

(Transposition(FixedPeriodd))我们用下面一张图来解释加密过程:凯撒密码Caesarcipher例利用凯撒密码对"LIXIAOFENGSHILAOSHI"进行加密。首先需加密的都是大写,我们使用Ascii码对其编码,并且去掉空格,变为"LIXIAOFENGSHILAOSHI",A∼Z的Ascii码为65∼90,所以计算时编码要减去65。移位变换(shifttransformation)/加法密码Vigenère及其变种(VigenèreandVariations)乘法密码仿射变换(affinetransformation)多表代换密码游乐场密码(ThePlayfairCipher)自动密钥密码(AutokeyCipher)谢谢Q&A流密码一次一密是香农安全的但是因为要求“|k|≥|m|”,所以实践起来很“困难”或者说“不实用”。对k的随机性要求是否能降低?“看起来”随机,而不是真“随机”伪随机工程实践我国密码管理局在2021年发布了行业标准GM/T0005-2021随机性检测规范,在规范里对15中随机性检测规范进行了描述。美国国家标准局(NIST)在年也修订发布了随机数和伪随机数测试指南“AStatisticalTestSuiteforRandomandPseudorandomNumberGeneratorsforCryptographicApplications”流密码明文流密钥流密文流运算很简单,重点是如何产生“随机”密钥流线性同余发生器

LCG(linearcongruentialgenerator)可以一下式子产生一个周期不超过m的伪随机数序列,x0为种子(seed),也就是密钥,这种方法称为线性同余发生器,缩写为LCG。产生的序列是加密明文或解密密文的密钥。LCG不用在密码学中,因其在1977年被J.A.Reeds破译,也就是找到预测的方法,但是其在一些需要产生随机数的场合下依然有应用,比如在一些测试中。线性反馈移位寄存器

LSFR(LinearFeedbackshiftregister)利用线性反馈移位寄存器(LinearFeedbackshiftregister,缩写为LFSR)可以产生一个无限长序列。例子相同初始状态,不同连接方式,周期不同同等数量的寄存器,不同的反馈方法,输出序列的周期不同,那么这就引出一个问题,最长周期是多少?如何能输出最长周期?有限域上的多项式有限域GF(2)元素{0,1}运算:异或(+),与(ⅹ,aⅹb直接写为ab)形成多项式环多项式与序列n个寄存器的LFSR一般性图形化表示LFSR特征多项式

(characteristicpolynomial)GF(2)多项式环的性质LFSR的矩阵表示有时为了计算方便,我们也可以使用矩阵来表示LFSR的时间序列。如果将n位LFSR在初始时刻的状态看为一个n维向量:那么迁移到下一个时刻的状态向量为:根据LFSR反馈函数,我们知:状态迁移矩阵可以表示为:那么序列的运算都可以对应到矩阵运算上,包括破解,已有的大量矩阵的理论和工具我们都可以使用。流密码的应用流密码有很多实际应用,比如用于DVD(DigitalVideodisk)的加密CSS(contentscramblesystem),有广泛用于汽车的PKE(PassiveKeylessentry),大家注意,并不是所有PKE使用的都是流加密,PKE有些方案使用的分组加密。还有,蓝牙系统E0加密算法,GSM中的A5加密算法,5G中的ZUC算法等等。谢谢Q&A分组密码

(BlockCipher)分组密码概述分组密码就是将数据序列划分为一定长度的组,然后在密钥的控制下,将数据分组变换为等长数据序列或者组。1949年香浓(C.D.Shannon)在其论文《保密系统的通信理论》中提到密码设计的基本方法,扩散(Diffusion)、混淆(Confusion,也有翻译为“扰乱”或“混乱”)和乘积迭代。这对后来的密码设计影响巨大。Feistel结构当前占绝大多数的对称分组密码都是基于Feistel分组密码结构而设计,Feistel于1973年在ScientificAmerican发表的论文“CryptographyandComputerPrivacy”中,对其Feistel密码(也称为LUCIFER密码)设计思路进行了说明。Feistel结构图Feistel结构有个重要的优点就是加解密运算结构都是相同的,将轮密钥逆序输入算法就可以解密。SPN在AES(Rijndael)、3-Way等一系列分组密码算法中,采用了由Feistel结构发展起来的substitution–permutationnetwork(SPN)。SPN结构通常由一系列的替代(S-boxes)和置换(P-boxes)操作组成。替代操作是一种非线性操作,它通过一个预定义的函数将输入的比特串映射到输出的比特串,这个函数通常是不可逆的,从而增加了密码算法的安全性。置换操作则是对输入的比特串进行重新排列,通过打乱比特的位置来增加数据的扩散性。SPN结构SPN与Feistel的比较SPN结构的优点:快速的扩散速度:SPN结构通过其设计可以实现更快的数据扩散,这意味着密钥和明文的统计特征可以更快地分散到整个密文中,从而提高了密码体制的安全性。高效的运算速度:SPN结构的运算速度较快,因为它只涉及到简单的查找表和排列函数操作。灵活性高:SPN结构可以根据不同的需求进行定制,可以通过替换S盒和P盒来调整算法的安全性和性能,这为密码算法的设计提供了更大的灵活性。SPN结构的缺点:加解密过程不一致:与Feistel结构相比,SPN结构的加密和解密过程通常不一致,这可能导致实现时需要更多的资源和更复杂的电路设计。设计复杂性:SPN结构的设计可能相对复杂,需要精心设计S盒和P盒以确保安全性,这可能增加了设计和分析的难度。Feistel结构的优点:加解密相似性:Feistel结构的加密和解密操作非常相似,这使得实现这种密码所需的代码或电路大小能几乎减半,从而节省了资源。易于分析:如果Feistel算法能被无疑义地解释清楚,那么就可容易地分析算法抵抗攻击的能力,有助于设计高强度的算法。Feistel结构的缺点:扩散速度较慢:Feistel结构相较于SPN结构,扩散速度较慢,通常需要更多的轮数来达到相同的安全级别。轮函数的局限性:Feistel结构的轮函数不必是可逆的,这可能限制了某些密码分析技术的应用,但同时也可能导致安全性的降低。DESDES是DataEncryptionStandard的缩写,中文翻译为“数据加密标准”,其明文分组长度为64比特,密钥长为56比特(加校验位也是64比特),密文长度64比特。DES结构图IP和IP-1f函数E扩展S盒P密钥生成DES初始密钥K是一个64位的二进制块,其中有8位奇偶校验位,对DES的64比特初始密钥进行“置换选择1(PC-1)”有两个作用:一是将分别位于8、16、24、32、40、48、56、64的校验位去掉。二是对剩余56比特进行换位。DES密钥生成LSi𝐷i和𝐸i是将换位后的56比特密钥分为两半,各为28比特。LSi是循环左移,循环左移几位,由下表来定义。DES解密填充PKCS5Padding加密时,先把数据字节长度对8取余,余数为m,若m>0,则补足8-m个字节,字节数值为8-m,即差几个字节就补几个字节,字节数值即为补充的字节数,若为0则补充8个字节的8。解密后时,取最后一个字节,值为m,则从数据尾部删除m个字节,剩余数据即为加密前的原文。运行模式ECBCBCCFBCTRZUC简介ZUC密码算法是我国自主研发的一种流密码算法,用于提供数据的加密与解密安全保护。其设计初衷是为了在3G和4G移动通信中保护用户信息的安全性。ZUC算法采用了流密码算法的设计思想,并具有比较高的安全性和效率。ZUC算法的核心是一个LFSR(线性反馈移位寄存器)和一个非线性置换运算,结合两者的运算来生成伪随机数流,进而实现数据的加密和解密。ZUC算法的关键参数有128位的密钥和128位的初始向量,通过这些参数来确定密钥流和明文流之间的关系,从而对数据进行加密和解密操作。总的来说,ZUC密码算法在保护通信安全方面具有一定的优势。ZUC结构谢谢Q&A公钥密码公钥密码体制1976年W.Diffie和N.E.Hellman发表了著名的文章“NewDirectionsinCryptography”,奠定了公钥密码的基础,与传统的密码系统不同的是不需要额外分发密钥的可信信道,加密密钥和解密密钥是本质上不同的,知道一个密钥不能有效地计算出来另外一个。传统密码系统与公钥密码系统最大的不同是,不要一个保密信道来传输大家共同使用的密钥,这个保密信道的构建在互联网环境下,通常很难构建,或者构建成本极高。传统加密体系和公钥加密体系框图的对比陷门单向函数公钥密码体系的思想很好理解,但是要构造这样一个体系,并且能够抵抗住密码分析者的攻击却不是一件容易的事情,要求密码分析者从公开的各种信息中无法获得密钥信息和有效的解密办法,Diffie和Hellman在提出公钥密码思想后也给出了如何构造这种密码体系的基本方向或者方法,那就是寻找一个陷门单向函数。单向和陷门单向陷门基于陷门背包的公钥密码系统1978年,美国斯坦福大学的R.C.Merkle和M.E.Hellman在"Hidinginformationandsignaturesintrapdoorknapsacks"一文中,建立了一种基于陷门背包的公钥密码系统。0-1背包问题(0-1KnapsackProblem)0-1背包问题是指这样一个问题。有n件物品和容量为m的背包,知道每件物品的重量以及价值,每件物品只有一件供你选择,你可以选择装还是不装,找到一种装法,使背包里的物品重量不超过背包容量且价值最大。我们看看0-1背包问题的一个变种,有n件物品和容量为m的背包,知道每件物品的重量以及价值分别为𝑥𝑗,𝑤𝑗,我们先不考虑背包容量,我们只找到一种装法使得物品价值正好为S。困难问题中的简单问题陷门单向函数构造简单背包问题是一个P类问题,MH方法的本质是将简单背包变成一个陷门背包,如果不知道陷门信息,就是一个难解问题,知道陷门,就是一个容易解的问题。加密解密RSA1978年,美国的麻省理工学院的R.L.Rivest,A.Shamir和M.Adleman在其论文"Amethodforobtainingdigitalsignaturesandpublic-keycryptosystems"中提出了一种实现Diffie—Hellman公钥思想的方法,简称为RSA方法。1982年,Rivest、Shamir和Adleman三个创始人正式成立了RSADataSecurity公司,1989年刚刚发展起来的互联网采用了RSA加密软件,1994年RSA源代码在互联网上被匿名公布,RSA公司成立后不断发展,目前已是一家顶级的安全服务公司。RSA依赖的困难问题RSA依赖的困难问题是:整数分解为素数是个困难问题,有时候我们也称“整数分解是个困难问题”、“素分解是个计算上困难的问题”。需要注意的是,虽然RSA计算困难问题基于的“整数分解”,但是RSA破解并不等价于“整数分解问题”,我们从下面RSA方法的介绍中可以知道,我们只是说如果能够获得整数的分解,那么就可以破解RSA,并没有证明破解RSA与“整数分解问题”计算复杂性等价。RSA加密方法ECC简介示例利用椭圆曲线构造密码算法要想利用椭圆曲线构造密码算法,从大的方面来说,要解决以下几个问题:1.将一个信息,也就是一个二进制串或者一个数,映射到椭圆曲线的一个点,同时也可将椭圆曲线上的一个点映射到一个信息。2.然后在椭圆曲线上找到一个计算困难问题,但这个困难问题当有某个信息时要变得不困难。3.设计一个信息变换或计算过程。谢谢Q&A哈希函数哈希函数(HashFunction)哈希函数(Hashfunction)H也称为单向散列函数,其特点是:1.函数输入为任意长度的消息M,输出为固定长度的消息h,ℎ=𝐻(𝑀).2.函数H是容易计算的,也就是说给定M,很容易计算ℎ=𝐻(𝑀).3.给定h,计算M,这是个困难问题。这是哈希函数单向性(one-way)的要求。4.给定M,找到另外一个消息𝑀′,使得𝐻(𝑀)=𝐻(𝑀′)是个困难问题。也就是哈希函数要能抗碰撞(collision-resistance)。Merkle-Damgåard结构目前大多数哈希函数的结构都采用Merkle-Damgåard结构,其中𝑚𝑖,𝑖=1,...,𝑙是数据的分组,𝐼𝑉(initialvector)是初始向量,𝑓是符合哈希要求的压缩函数。对哈希函数的两种基本攻击穷举攻击已知一个哈希值H(M),攻击者依据一定的遍历规则创建消息,直到找到一个消息𝑀′,使得𝐻(𝑀′)=𝐻(𝑀)。生日攻击(birthdayattack)攻击者通过一定的方法寻找两个随机消息𝑀′和M,使得𝐻(𝑀′)=𝐻(𝑀).MD5MD5是RonRivest在1990年10月作为RFC提出的(RFC1321),其前身是MD4(RFC1320)。MD5输入为任意长度的信息,输出128bit的摘要信息(散列值)。消息填充填充后的消息比特长度L为模512下是448,也就是说𝐿=448(mod512),或者说𝐿=𝑛×512+448,n为大于等于1的正整数。填充方式为第一位为1,后面为0。附加消息长度前面填充后最后有448bit,448+64=512𝑏𝑖𝑡,留下的这64bit用于填写消息长度,用little-endian方式存储。那么可存储的最大消息长度为264,如果消息长度大于此数,存储长度模264

后的值。附加消息长度后,进行后续运算的消息长度是512的倍数。缓冲区初始化就是初始化MD5核心算法中的𝑊0,𝑋0,𝑌0,𝑍0:𝑊0=01234567;𝑋0=89𝐴𝐵𝐶𝐷𝐸𝐹;𝑌0=𝐹𝐸𝐷𝐶𝐵𝐴98;𝑍0=76543210分组流水处理将消息分为n个512bit长度的分组𝑚1,𝑚2,...,𝑚𝑛,然后对n个分组依次执行:1.(𝑊1,𝑋1,𝑌1,𝑍1)=𝐻𝑀𝐷5(𝑊0,𝑋0,𝑌0,𝑍0,𝑚1)2.(𝑊2,𝑋2,𝑌2,𝑍2)=𝐻𝑀𝐷5(𝑊1,𝑋1,𝑌1,𝑍1,𝑚2)3.(𝑊3,𝑋3,𝑌3,𝑍3)=𝐻𝑀𝐷5(𝑊2,𝑋2,𝑌2,𝑍2,𝑚3)...n.(𝑊𝑛,𝑋𝑛,𝑌𝑛,𝑍𝑛)=𝐻𝑀𝐷5(𝑊𝑛−1,𝑋𝑛−1,𝑌𝑛−1,𝑍𝑛−1,𝑚𝑛)输出MD5的输出为𝑊𝑛||𝑋𝑛||𝑌𝑛||𝑍𝑛。MD5算法表示整个MD5算法,输入为原始消息𝑀𝑠,初始量𝑊0,𝑋0,𝑌0,𝑍0,输出为128bit,𝑊||𝑋||𝑌||𝑍,我们记为(𝑊,𝑋,𝑌,𝑍)𝑜𝑟𝑊||𝑋||𝑌||𝑍=𝑀𝐷5(𝑊0,𝑋0,𝑌0,𝑍0,𝑀𝑠).核心算法𝐻𝑀𝐷5核心算法𝐻𝑀𝐷5是个分组算法,输入是512位的分组数据,输出是128位。四轮运算R算法的输入是512bit的消息M,我们再将其分为16组,每组32bit,𝑀=𝑀0||𝑀1||𝑀2||...||𝑀15,然后对其进行四轮核心运算。我们将整个四轮运算过程记为𝑅(𝐹,𝐺,𝐻,𝐼,𝑊,𝑋,𝑌,𝑍,𝑀):𝑊×𝑋×𝑌×𝑍×𝑀→𝑊×𝑋×𝑌×𝑍,也就是说这四轮运算后输出是新的W,X,Y,X,下面我们看看四轮运算的具体过程第一轮C为F,所以核心运算是FF(W,X,Y,Z,M,s,t),在第一轮中依次对16个分组数据执行FF运算,也就是说第一轮执行16次FF运算,每一次的执行FF时,W,X,Y,X是上一次运算后的W,X,Y,X,在执行第一次FF时,W,X,Y,X的初始值为,𝑊=0𝑥01234567,𝑋=0𝑥89𝑎𝑏𝑐𝑑𝑒𝑓,𝑌=0𝑥𝑓𝑒𝑑𝑐𝑏𝑎98,𝑍=0𝑥76543210.第二轮C为G第三轮C为H第四轮C为I四轮运算中,每轮消息顺序不同,第一轮为顺次,消息从𝑀0,𝑀2,...,𝑀15,第二、三、四轮,对M的顺序进行了置换:第一轮=𝑀𝑖,𝑖=0,1,...,15第二轮=𝑀1+5𝑖𝑚𝑜𝑑16,𝑖=0,1,...,15第三轮=𝑀5+3𝑖𝑚𝑜𝑑16,𝑖=0,1,...,15第四轮=𝑀7𝑖𝑚𝑜𝑑16,𝑖=0,1,...,15按上面公式,可知,第二轮M的顺序是:𝑀1,𝑀6,𝑀11,𝑀0,𝑀5,𝑀10,𝑀15,𝑀4,𝑀9,𝑀14,𝑀3,𝑀8,𝑀13,𝑀2,𝑀7,𝑀12每轮每次运算移位数的取值如表每轮中的每次运算都有𝑡𝑖,他是个常数,在四轮运算中其是顺序变换,共有64个常数值𝑡1,𝑡2,...,𝑡64,我们这样设定这个常数值,𝑡𝑖

=[232×𝑎𝑏𝑠(𝑠𝑖𝑛(𝑖))],其中i的单位为弧度(RAD),[]表示取整运算,就是取一个数的整数部分,abs是绝对值,其实我们可以事先做好这个常数表,以备计算是使用,下面我们计算𝑡1。𝑡1=[232×𝑎𝑏𝑠(𝑠𝑖𝑛(1))]=[3614090360.3]=3614090360=[𝑑76𝑎𝑎478]16核心运算我们定义一个核心运算,其中C为非线性函数F,G,H,I中的一个,𝑑<<𝑠表示对数d循环左移s位,+表示模232加法,后面为了方便我们直接写+,核心运算CC我们定义为:𝐶𝐶(𝑊,𝑋,𝑌,𝑍,𝑀,𝑠,𝑡):𝑊=𝑋+((𝑊+𝐶(𝑋,𝑌,𝑍)+𝑀+𝑡)<<𝑠)我们定义一个核心运算,其中C为非线性函数F,G,H,I中的一个,𝑑<<𝑠表示对数d循环左移s位,+表示模232加法,后面为了方便我们直接写+,核心运算CC我们定义为:𝐶𝐶(𝑊,𝑋,𝑌,𝑍,𝑀,𝑠,𝑡):𝑊=𝑋+((𝑊+𝐶(𝑋,𝑌,𝑍)+𝑀+𝑡)<<𝑠)非线性函数在核心运算定义中有四个非线性函数𝐹(𝑋,𝑌,𝑍),𝐺(𝑋,𝑌,𝑍),𝐻(𝑋,𝑌,𝑍),𝐼(𝑋,𝑌,𝑍),下面我们分别定义这四个非线性函数。我们定义四个非线性函数,其中X,Y,Z是32bit数,∧是与操作,∨是或操作,⊕是异或操作,¬是非操作。1.𝐹(𝑋,𝑌,𝑍)=(𝑋∧𝑌)∨(¬𝑋∧𝑍)2.𝐺(𝑋,𝑌,𝑍)=(𝑋∧𝑍)∨(¬𝑌∧¬𝑍)3.𝐻(𝑋,𝑌,𝑍)=𝑋⊕𝑌⊕𝑍4.𝐼(𝑋,𝑌,𝑍)=𝑌⊕(𝑋∧¬𝑍)SHASHA是SecureHashAlgorithm的缩写。1993年发布SHA,1995年发布SHA-1,2002年发布SHA-2,2008年发布SHA-3,2015年发布SHA-4。自学SHA-1FederalInformationProcessingStandardsPublication180-1,1995April17,SpecificationsfortheSECUREHASHSTANDARD谢谢Q&A消息认证码目的消息认证码是用于消息认证的,消息认证是一个过程,用来保证接受到消息的真实性(是宣称者发来的)和消息的完整性(未被篡改,插入,删除),同时还用于验证消息的顺序性和时间性(未重排,重放,延迟)。几种MACNIST有三种MAC:Keyed-HashMessageAuthenticationCode(HMAC)KECCAKMessageAuthenticationCode(KMAC)TheCMACModeforAuthenticationMAC函数要求基于DES的MAC基于哈希函数的MAC(HMAC)HMAC是密钥相关的哈希运算消息认证码(Hash-basedMessageAuthenticationCode)的缩写,就是利用哈希函数构造MAC的方法,HMAC可以与任何哈希函数(MD5、SHA等)捆绑使用,是由H.Krawezyk,M.Bellare,R.Canetti于1996年提出的一种基于Hash函数和密钥进行消息认证的方法,并于1997年作为RFC21044被公布,并在IPSec和其他网络协议(如SSL)中得以广泛应用,现在已经成为事实上的Internet安全标准。HMAC计算过程伪代码其中,ipad是将00110110重复B次,获得与分组长度相同的一个数,opad是将01011010重复B次,获得与分组长度相同的一个数。H()是哈希函数,如果我们在HMAC中选用MD5,即H为HMD5,那么b=512bit(B=64bytes),n=128bit,IV=(W,X,Y,Z)。谢谢Q&A密钥管理密钥管理涉及的内容1.密钥产生2.密钥分发(传输)3.验证密钥4.更新密钥5.密钥存储6.备份密钥7.密钥有效期8.销毁密钥相关标准因为密钥的安全在现在的密码体制安全中是决定性的,所以美国的NIST也就密钥管理,发布了一些标准,比如SP800-57RecommendationforKeyManagement:Part1–General,Part2–BestPracticesforKeyManagementOrganizations,Part3:Application-SpecificKeyManagementGuidance等,在SP800-57Part1中,其从几个侧面讨论了密钥管理,可以从NISTSP800-57Part1的目录上看到。密码的种类密钥信息保护需求部分目录密钥信息的保障要求Integrityprotection......Confidentialityprotection......Associationprotection......Assuranceofdomain-parameterandpublic-keyvalidity......Assuranceofprivatekeypossession......密钥生命周期密钥管理系统要求密钥分发基本方法有中心的密码分发无中心的密钥分发有中心密钥分发无中心的密钥分发Diffie-Hellman密钥交换DH中间人攻击密钥分割在有些应用场合,为了保证密钥的安全,需要密钥(或者秘密)由多人持有,任何一个人持有的信息不能得到完整的密钥,只有全部或达到规定的人数时,将这些人持有的信息合并,才可以获得(或者计算)完整的密钥。Shamir门限方案拉格朗日插值法(LagrangeInterpolationPolynomial)此多项式代表的曲线通过n个点(x1,y1),...,(xn,yn)利用f(x)的n个采样点构造拉格朗日多项式P(x),以此来拟合f(x)。门限方案CRT门限方案Asmuth和Bloom在其1980发表的文章"AModularApproachtoKeySafeguarding"一文中提出了一个基于中国剩余定理的密码共享方案。谢谢Q&A数字签名目标数字签名作为书面签名的电子模拟,提供了以下保证:声称的签署者签署了信息;信息在签名生成后未被修改。两大类基于对称密钥算法的数字签名基于公钥算法的数字签名基于对称密钥算法的数字签名如果有一个可以信赖的第三方TTP(trustedthirdparty),用下面的方法可以用传统的密码系统实现数字签名。A将自己的一对可逆的秘密变换EA和DA告诉TTP,当A传送签名的信息M给B时,A计算出C=DA(M),然后将C发送给B。为了验证C并得到M,B将C传送给TTP。TTP计算出EA(C)=M,然后通过B的秘密变换将M传送给B。用传统的密码系统实现数字签名还有许多其他方法,这里就不再介绍了。我们给出一个例子的主要原因是,目前有一种错误认识,就是将数字签名等同于公钥数字签名。数字签名的基本概念示例鲍勃有两把钥匙,一把是公钥,另一把是私钥。鲍勃把公钥送给他的朋友们—-帕蒂、道格、苏珊—-每人一把。苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。鲍勃将这个签名,附在信件下面,一起发给苏珊。苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。CA的出现复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找"证书中心"(certificateauthority,简称CA),为公钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(DigitalCertificate)。鲍勃拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。证书实例下图就是我们用OpenSSL生成了BUU的CA公私钥证书,然后再用OpenSSL生成个人的公私钥对,用BUUCA颁发的证书(.cer)文件中的内容。https实例我们经常会用到https协议,这个协议主要用于网页加密,这就是一个应用"数字证书"的实例。

https标准Https的意思是“HTTPOverTLS”,此协议是IETFRequestforComments:2818HTTPOverTLS。TLS是SSL协议的升级版,SSL/TLS是介于Https和TCP之间的协议。Https是IETF的RFC2818“HTTPOverTLS”标准,利用TLS层提供的服务进行安全通信,如果看RFC2818标准,你会看到描述很简单,详细的初始化、密钥交换协议都是在TLS层实现,TLS也是IETF的标准,标准号为RFC8446,标准名为"TheTransportLayerSecurity(TLS)ProtocolVersion1.3",我们可以看到在这个标准中,认证用的是公钥体制,加密用的对称加密体制,在协议中定义了AES加密选项,密钥交换使用的是Diffie-Hellman协议。DSS签名方案与标准DSS(DigitalSignatureStandard)是美国的国家标准,目前最新发布的是2013版。签名与验证DSA参数DSA(DigitalSignatureAlgorithm)使用以下参数:1.p=素数模数,其中在512≤L

≤1024且L是64的倍数时,有2L−1<𝑞<2L2.q=p-1的一个素因子,其中2159

<q

<21603.g=ℎ(p−1)/q

(mod𝑞),其中h是任意满足1<ℎ<p

−1且ℎ(p−1)/q

(mod𝑞)>1的整数(g在模p下次数为q)4.x=随机或伪随机生成的整数,满足0<x

<q5.y=gx

(modp)6.k=随机或伪随机生成的整数,满足0<k<qDSA签名生成消息M的签名是根据以下方程计算的一对数字r和s:𝑠=(gk(modp))(modq)r

=(k-1(SHA−1(M)+xr))(modq)DSA签名验证在验证已签名消息中的签名之前,通过身份验证的方式向验证者提供素数p、q和g,以及发送方的公钥和身份。让M′、𝑠′和r

′分别为消息M、r和s的接收版本,y为签名者的公钥。要验证签名,验证者首先检查是否满足0<r′<q和0<s′<q;如果有任何一个条件被违反,将拒绝该签名。如果这两个条件都满足,验证者计算:如果v

=r

′,则签名已验证,验证者可以信任接收到的消息是由持有与y对应的私钥x的一方发送的。如果v不等于𝑠′,则消息可能已被修改,消息可能被签名者错误地签名,或者消息可能被冒名顶替者签名。应将消息视为无效。RSA签名算法pka,ska

分别表示a的公钥和私钥,H表示哈希函数,E表示加密函数,D表示解密函数,C表示一个数的比较函数,相等为真,不等为假,a

→b

::M

表示a把消息M发给b,a

←b

::M

表示b把消息M发到给a,b::H(M)表示在b端计算M的哈希值,RSA签名可以表示为:谢谢Q&A安全服务和安全机制标准概念在GB/T-25609-2033《信息安全技术术语》这一国家标准中,对安全服务和安全机制及其相关概念定义如下:3.3安全策略securitypolicy用于治理某一组织及其系统内管理、保护并分发影响安全及有关元素的资产(包括敏感信息)的一组规则、指导和实践。3.7安全服务securityservice根据安全策略,为用户提供某种安全功能及相关保障。3.8安全功能securityfunction为实现安全要素的要求,并正确实施相应安全策略所提供的功能。3.11安全机制securitymechanism实现安全功能,提供安全服务的基本方法。NIST在其2022发布的SP800-160V1R1EngineeringTrustworthySecureSystems(工程建造可信安全系统)中对这两个概念的定义为:securityservice:

securitycapabilityorfunctionprovidedbyanentity.securitymechanism:Adeviceormethodforachievingasecurity-relevantpurpose.密码学支撑的安全服务在NIST标准“SP800-57Part1Rev.5RecommendationforKeyManagement:Part1–General”中对密码学支撑的安全服务进行了总结,密码技术可以支撑7种安全服务:1.Confidentiality(机密性):Confidentialityisthepropertywherebyinformationisnotdisclosedtounauthorizedparties.2.DataIntegrity(数据完整性):Dataintegrityisapropertywherebydatahasnotbeenmodifiedinanunauthorizedmannersinceitwascreated,transmittedorstored.Modificationincludestheinsertion,deletionandsubstitutionofdata.3.Authentication(认证):Threetypesofauthenticationservicescanbeprovidedusingcryptography:identityauthentication,integrityauthentication,andsourceauthentication.Anidentityauthenticationserviceisusedtoprovideassuranceoftheidentityofanentityinteractingwithasystem.Anintegrityauthenticationserviceisusedtoverifythatdatahasnotbeenmodified(i.e.,thisserviceprovidesintegrityprotection).Asourceauthenticationserviceisusedtoverifytheidentityoftheuserorsystemthatcreatedinformation(e.g.,atransactionormessage).4.Authorization(授权):Authorizationisconcernedwithprovidinganofficialsanctionorpermissiontoperformasecurityfunctionoractivity(e.g.,accessingaroom).5.Non-reputation(非否认性):Inkeymanagement,non-repudiationisatermassociatedwithdigitalsignaturekeysanddigitalcertificatesthatbindthenameofthecertificatesubjecttoapublickey.6.SupportServices(所需的服务支持):Thebasiccryptographicsecurityservicesdiscussedaboveoftenrequireothersupportingservices.Forexample,cryptographicservicesoftenrequiretheuseofkeyestablishmentandrandomnumbergenerationservices.Keyestablishmentistheprocessbywhichcryptographickeysaresecurelyestablishedamongentitiesusingmanualtransportmethods(e.g.,keyloaders),automatedmethods(e.g.,key-transportand/orkey-agreementprotocols),oracombinationofautomatedandmanualmethods.Randomnumbersareneededduringthegenerationofcryptographickeys,challengevaluesandnonces(seeSP800-175B).7.CombiningServices(组合服务):Inmanyapplications,acombinationofsecurityservices(e.g.,confidentiality,integrityauthentication,sourceauthentication,andsupportfornon-repudiation)isdesired.Designersofsecuresystemsoftenbeginbyconsideringwhichsecurityservicesareneededtoprotecttheinformationcontainedwithinandprocessedbythesystem.Aftertheseserviceshavebeendetermined,thedesignerthenconsiderswhatmechanismswillbestprovidetheseservices.Notallmechanismsarecryptographicinnature.Forexample,physicalsecuritymaybeusedtoprotecttheconfidentialityofcertaintypesofdata,andidentificationbadgesorbiometricidentificationdevicesmaybeusedforidentityauthentication.However,cryptographicmechanismsconsistingofalgorithms,keys,andotherkeyingmaterialoftenprovidethemostcost-effectivemeansofprotectingthesecurityofinformation.Thisisparticularlytrueinapplicationswheretheinformationwouldotherwisebeexposedtounauthorizedentities.

OSI7层模型与安全服务与机制ISO(internetstandardorganization)国际标准在1989发布了一个标准“Informationprocessingsystems——OpenSystemsInterconnection——BasicReferrenceModel——Part2:SecurityArchitecture”,在此标准中对安全服务、安全机制和安全服务和机制在OSI7层模型中的部署情况。此标准对应我们的国标“GB/T9387.2–1995信息处理系统——开放系统互连——基本参考模型——第2部分:安全体系结构”,下面的中文翻译来自GB/T9387.OSI七层结构安全服务(SecurityServices)五种安全服务鉴别访问控制数据机密性数据完整性抗抵赖鉴别(authentication)对等实体鉴别(peer-entityauthent

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论