如果让你设计消息加密

发布于:2024-10-24 编辑:匿名 来源:网络

你是一名编码领域的程序员,你的名字叫赵才。我利用工作时间写了一个简单的即时通讯软件并发布到网上。

过了一会儿,你突然在软件上收到一条私信。 “兄弟,我很喜欢你写的这个软件,我也是一名程序员,希望以后能和你多交流。

”你环顾四周,没有人表现异常,这才确认不是同事在捉弄你。你兴奋地回复对方,逐渐熟悉了对方。

你知道对方的名字,是小梅。 1、不安全的明文 随着交流的话题越来越深入,你会逐渐变得恐惧。

您只是为了好玩而编写随机软件,并且消息全部以明文形式发送。如果你研究网络的同事监视你,你以后还能在公司工作吗?所以你想到:加密。

2. 对称加密 如果双方拥有相同的密钥,则发送消息的一方使用该密钥进行加密,接收消息的一方使用相同的密钥进行解密。这样,加密就变得简单了。

为了实现这个功能,你想到了之前学过的异或(XOR)运算。这个运算的规则可以概括为:相等为0,不等为1。

任何数据最终都会在计算机中表示为01的字节流。比如你要发送的消息最后被编码为,然后随机生成一个相同长度的字符串,称为秘钥。

两者做异或运算:message 明文和秘钥异或运算后得到密文。根据异或运算的性质,如果此时密文再次与秘钥进行异或,则会再次得到消息的明文。

这样,双方就可以使用相同的共享密钥来加密/解密消息。但目前有一个问题。

您生成的密钥长度必须与执行异或运算的消息长度一致,除非您进一步封装异或运算。你懒得去想这些事情,就去网上寻找思路。

我这才知道你的想法其实是对称加密。 DES、3DES、AES密码算法都是对称加密,或多或少利用了异或运算的性质,否则就不会有“对称”的效果。

您选择了最流行的AES算法,并打算直接使用现成的类库来实现加密。你把这个想法告诉了梅,急于让她知道你们的谈话已经保密。

谁知,小梅一针见血地指出了问题,“我们之间怎样才能安全地共享密钥呢?”是的,监听者也可以获得密钥。这是非常矛盾的。

如果有一种方法可以安全地共享密钥,那么是否可以使用相同的方法来安全地发送明文?对称加密的密钥必须发送,但不能以明文形式发送。这就是对称密钥的分配问题。

3.非对称加密于是你开始寻找其他方法,最后发现了一种叫做公钥密码学的算法。该算法可以生成一组密钥对,称为公钥和私钥。

顾名思义,公钥是可以公开的,地球上所有人都可以知道,而私钥则必须由你自己保管,即使你死了也不能被别人知道。由公钥加密的密文必须使用与公钥配对的私钥来解密。

反过来,任何拥有公钥的人都可以解密使用私钥加密的密文。这个功能非常重要。

于是你生成了一组密钥对,把公钥发给小美,私钥自己保存。在你让小美给你发消息之前,你首先要使用你的公钥对消息进行加密。

这样,只有你的私钥才能解密小美的加密消息。这样就实现了小美发送给您的消息的保密性。

相反,如果你想保证你发送给小美的消息的机密性,就需要小美生成一组密钥对。您获取小梅的公钥,然后使用小梅的公钥对消息进行加密,然后再发送消息。

密文发送给小梅后,小梅用自己的私钥解密。通信过程中的公钥和密文是否被监听者获得也没关系,因为你的私钥都不会出现在通信过程中,监听者即使有密文也无法解密。

这样,你就通过公钥加密解决了消息保密和密钥分发的问题(因为根本不需要分发对称加密密钥)。公钥密码学还有一个名字,叫做非对称加密。

这个名字指的是对称加密。对称加密使用相同的密钥进行反向操作,因此对称加密中的加密和解密是彼此对称的,就像照镜子一样。

在非对称加密中,加密和解密使用不同的密钥,并且彼此不对称,因此称为非对称加密。注:著名的RSA算法和ECC(椭圆密码曲线)算法都是公钥密码算法的具体实现。

4.混合加密算法。公钥加密方面的改进让您感到非常安心。

现在你满脑子都是小梅的事。聊天。

但你渐渐发现小美的回复比以前慢了。和小梅沟通后,我发现她对你的回复也有同样的感受。

你很聪明,终于发现了原因。公钥加密算法效率太低了!当使用具有同等机密性的密钥长度时,公钥加密的速度仅为对称加密的百分之几。

知道问题之后,解决方案就很明显了,就是将对称加密和公钥加密结合起来,也就是混合加密。既然是混合加密,自然要同时传输消息和对称加密密钥。

您首先使用加密效率较高的对称加密算法对消息进行加密,从而实现消息的机密性。接下来只要保证对称加密密钥传输的机密性即可。

这时又使用公钥加密。你把对称加密密钥当成一个消息,使用上面的公钥加密步骤,先用小梅的公钥加密对称加密密钥,小梅收到后用自己的私钥解密。

在两人之间安全地传输对称加密密钥。您不必担心效率。

毕竟,对称加密的密钥通常比消息短得多,并且密钥只需要传输一次,因此加密的时间成本可以忽略不计。绘制一个流程图,说明如何使用混合加密算法发送要加密的消息。

一旦理解了加密,解密就非常简单了。为了让小梅看懂,你还是画了一张解密流程图给她看。

至此,您已经解决了公钥加密速度慢的问题,并通过公钥加密解决了对称秘钥的密钥分发问题。 5. 谁更改了我的消息?你和小梅的聊天越来越激烈了。

但最近你却时不时的收到小美女发来的莫名其妙的短信。起初你并没有当回事,但是发送这种短信的频率越来越频繁,这确实让你很烦恼。

你连忙询问了小梅,确定她不是故意发这样的短信后,你就明白了。你们两个已成为目标。

。 。

您分析了小美实际发送给您的加密消息和您实际收到的加密消息,发现编码数据中有两位发生了变化。虽然改动很小,但是会对消息的可读性产生相当大的影响。

您遇到了中间人攻击。在这种情况下,中介不需要知道你们两个在说什么。

他只需要拦截你的消息,然后随意篡改,就可以扰乱你们两个之间的正常交流。你不禁感叹:传递信息怎么这么难?幸运的是,这个问题并不难解决,你立刻就想到了单向哈希算法。

单向哈希算法可以为任意长度的消息生成固定长度的数据串(哈希值)。这串数据的长度远小于输入消息的长度,因此也称为消息摘要。

单向哈希算法也称为消息摘要算法。摘要算法启用消息完整性检查。

消息摘要算法的一个巨大好处是它对消息的变化极其敏感。即使只修改消息的 1 位,生成的消息摘要也会发生巨大变化。

而且,即使中间人截获了摘要消息,他也几乎不可能伪造出可以生成相同摘要的哈希消息。注意:经常听到的MD5、SHA-1、SHA2、SHA3算法都是消息摘要算法的具体实现,所以您在消息发送和解析过程中添加了对消息摘要算法的支持。

在发送数据之前,首先对混合算法加密的密文计算摘要值,然后将摘要值附加到密文的末尾,一起发送给小梅。小梅收到数据后,首先根据信息摘要的固定长度将摘要值和密文分开,然后使用相同的摘要算法计算出密文的摘要,并与接收到的摘要进行比较。

如果一致,则说明信息没有被篡改。 ,否则表示已被操作,直接丢弃。

你以为一切终于结束了。但软件更新后,你发现仍然时不时收到莫名其妙的消息。

6. 谁冒充你?想了想之后,问题出在哪里呢? “难道我们的信息都被篡改了?”小梅说道。 “如果中间人监听到整个消息,将混合加密密文和摘要值分开,然后对混合加密密文进行篡改,然后对被篡改的密文重新计算新的摘要,并将其附加到被篡改的密文中发送再次,我们将根本无法识别篡改。

”是的,如果是这样的话,摘要值实际上是在检查中间人发送的消息的完整性,而这种检查将毫无意义。现在中间人已经完全劫持了通讯线路。

只要中间人愿意,他就可以篡改你们之间的所有数据。也就是说,你现在根本不知道跟你通讯的人是小美还是中间人。

这是单向哈希函数的缺陷。它可以检测“篡改”,但无法检测“伪装”。

现在需要实现消息的认证功能。也就是说,当你向小美发送消息时,你需要向小美证明该消息确实是你发送的,并且没有被篡改过。

同样,当小美向你发送消息时,它也需要向你证明该消息确实是小美发送的,并且没有被篡改过。 7、确认对方身份。

于是你和小梅商量,你们需要就一条只有你们两个人知道的“消息”达成一致。并且根据收到的消息,可以确定只有拥有此共同信息的你们两个人才能发送此消息。

小梅立即想:“对称加密的秘钥不就是我们一直用的这个‘公共信息’吗!如果你能解密我发的信息,那不就证明我就是我了?”你说得对。在一定程度上是这么认为的,但是有一个前提,那就是你发送的消息必须是有意义的。

”如果你只是想给我发一堆乱七八糟的文字,我无法确定这是你的意图还是“消息是否被中间人篡改了?”两人陷入短暂的沉默。你想了一会儿。

摘要值目前之所以无法起到认证作用,是因为中间人只要获得密文,就可以随意生成摘要值。那么如果把生成摘要值的阈值提高的话,唯一的办法就是只有有了“共同的信息”,彼此才能生成正确的摘要值,这样才能被认证。

该摘要值称为消息认证码。在网上查了一下,发现还真有这么一种方法,叫做HMAC(Hash Message Authentication Code),它是一种利用单向哈希函数构造消息认证码的方法。

摘要值和 HAMC 值之间的主要区别在于,后者在执行单向哈希时需要密钥。所以这可以简单地理解为消息认证码是与密钥关联的单向哈希函数。

有了这个技术,我们看一下给小美发送消息的过程。本来应该为HMAC单独生成一个随机密钥,但这会涉及到密钥分发的问题。

由于之前我们已经使用公钥解决了秘钥分发问题,为了方便起见,我们直接使用对称秘钥作为HMAC秘钥。与原始的不同之处在于,使用计算出的 MAC 而不是原始的摘要值。

小梅收到密文和摘要值后。使用自己的私钥解密得到对称加密密钥,然后使用该密钥计算收到的密文的MAC值。

如果两个MAC一致,那么小美就可以确定该消息是你发送的,无需经过中间人。篡改。

这样就利用MAC值实现了消息的完整性检查和身份认证功能。 8、对方不肯承认。

突然有一天,小美给你发了一条消息。 “PHP是世界上最好的语言~”你当场爆炸~你说这句话是为了挑衅。

正当你准备和小梅争论的时候,小梅立即说道:“我和你玩一个游戏。”然后又发了一个调皮的表情:“你怎么证明我对你说过这句话?”“还需要什么证据?”我用我们共享的密钥生成了MAC值,然后将其与你发给我的MAC进行了比较。

这是一致的。 。

如果你的私钥没有泄露,我可以绝对保证这条消息是你发的!” “是的,我们两个之间的身份认证是绝对有保证的。但我的问题是,你。

你如何向别人证明这条消息是我发的?想一想,你和我有相同的密钥,这意味着理论上你也可以生成这个消息。如果我不承认,你会怎么做?当然,截图不算~”小美说得对。

按照目前的加密设计,确实没有办法向第三方证明她所说的话。现在你们两个可以互相验证,因为你们有相同的密钥。

如果你确定不是自己发的,那么一定是对方发的。如果您想向第三方证明该消息是小梅发送的,则必须使用小梅独有的信息来处理该消息。

就像古代的虎符一样,如果小梅持有一半,并保证私密,那么无论另一半是谁拥有,只要能将两部分合二为一,就可以确认对方就是小梅。 。

这不是公钥和私钥吗?小梅使用她的私钥计算消息的“签名”。任何持有小梅公钥的人都无法使用该公钥复制签名,但可以使用该公钥解密小梅发送的签名。

如果解锁的内容恰好是消息本身,那么说明收到的消息一定是小美的!毕竟私钥是唯一的,现在小美已经无法再否认了!但有一个小问题。公钥加密效率太低。

如果使用私钥对整个消息进行加密,则需要很长时间。我们能找到更短的数据来代替消息本身吗?我的老朋友,单向哈希函数,又来了。

只需使用单向哈希函数求出消息的哈希值,然后使用私钥对哈希值进行签名即可。哈希值可以比消息本身短得多,因此对其进行签名的时间成本要小得多。

如果中间人篡改了小美发送的消息,那么你计算的哈希值就会改变,导致签名验证失败。签名保证了消息的完整性和对方身份的认证。

不仅如此,签名还可以防止小美否认之前的消息。从图中可以看出,签名已经完全取代了之前使用的消息验证码。

到目前为止,您已经实现了消息机密性、完整性、身份验证和不可否认性。你已经走了这么远,甚至没有意识到。

你不禁会问自己,签名步骤完美吗?签名的验证依赖于消息发送者的公钥。如果这个公钥从一开始就被中间人劫持,换成中间人自己的公钥怎么办?如何保证我们收到的公钥不被篡改? 9. CA 组织和证书 您发现自己陷入了一个奇怪的循环。

数字签名用于身份认证,防止篡改和防止否认。数字签名依赖于公钥的传输,而公钥的传输又需要身份认证和防篡改。

。 。

你把目前的设计告诉了小梅,想看看她是否还有其他的想法。 “我觉得现在你的设计已经足够好了,下一步已经不是单纯的软件设计技巧能够解决的事情了,已经上升到社会学的层面了。

” “这是什么意思?”小梅解释道:“也就是说,我们应该建立一个类似于公证处的专业机构来认证公钥的合法性,称为CA。认证机构也必须生成自己的一套密钥对,分为公钥和私钥,以及私钥本身。

公钥被保存,任何人都可以知道。” “那怎么认证呢?” “还是用你的数字签名的想法,比如我把我的公钥分发给你之前,我先把它发给认证机构,然后认证机构用自己的私钥给我的公钥加上数字签名,然后最后颁发一个包含我的公钥和认证机构数字签名的证书。

”陶晓梅补充道,然后画了一张图。这个逻辑的缺陷你一眼就能看出。

这种方案并没有从根本上解决问题,只是转移了问题。因为认证机构小梅妈妈需要对小梅的公钥进行数字签名,所以必须使用认证机构小梅妈妈的公钥。

“我现在不信任你的公钥,也对你妈妈的认证机构的公钥产生怀疑,那么认证机构颁发的证书就没有任何意义了!还是一个死循环!”你对小梅的质疑提出了自己的反对意见。 “那就要看你如何理解‘信任’这个词了。

如果你除了自己之外不信任任何人,那么你永远不会有安全的通信。这个逻辑链就是一个死循环。

事实上,‘信任’这个词来了在众多可供选择的信任对象中,你只需要选择你最信任的一个即可。”小梅继续说道:“我给你举个例子,你以为银行愿意借钱给你,是因为信任你这个人吗?当然不会,你身后抵押的房子等值钱的东西,银行都相信。

”回到这个例子,如果我妈妈的认证机构经过层层关系最终找到了你妈妈的认证机构,你看这个逻辑是否有道理?认证机构,一定要选择信任它,因为“幸运妈妈认证机构”颁发了“小梅妈妈认证机构”的公钥证书,“小梅妈妈认证机构”根据这个颁发了小梅的公钥证书。信任链,你自然就信任小美公钥的合法性了,至此,一切问题都迎刃而解了。

如果让你设计消息加密

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 1985年后,男生创造了米哈游千亿估值,风投们集体错过了

    1985年后,男生创造了米哈游千亿估值,风投们集体错过了

    “我入职以来最大的遗憾就是错过了米哈游。 ”北京的一位VC朋友最近回顾了市场,回忆了这件事。 2000年左右,他认识了米哈游的初创团队。 当时,该公司融资困难,却被主流VC圈看不起。 由于对赛道的犹豫和各种原因,我的朋友和组织最终放弃了这个项目。 米哈游成立于2007年,

    06-18

  • 生物制药公司力金生物完成3000万美元B轮融资,同和毓承领投

    生物制药公司力金生物完成3000万美元B轮融资,同和毓承领投

    据投资界7月17日消息,生物制药公司力金生物宣布公司已完成3000万美元B轮融资。 本次融资由同和毓承领投。 其他投资者包括Winfair Global和润瓴 Capital。 原投资者晨兴资本也参与了本轮投资。   本轮募集资金将用于推动力金生物现有研发管线中多个新型且具有竞争力的肿瘤免

    06-17

  • 告别百万年薪,逃离大工厂,以不同的方式生存

    告别百万年薪,逃离大工厂,以不同的方式生存

    今年是再次拥抱世界的一年。 年轻人不再被消费主义洗脑,他们更加注重物品本身的价值。 他们与世界联系的方式已经改变,成本效益成为他们最关心的问题。 一次随意的旅行,一场精心策划的演出,都是人们抚平心灵皱纹的方式。 这里孕育着财富和商机,但那些不能适应时代潮流的企

    06-17

  • 【创业24小时-本地生活】2024年6月6日

    【创业24小时-本地生活】2024年6月6日

    2024年6月6日TOP大事件 1、农夫山泉、元气森林进军纯净水市场:新趋势、新策略。 近期,纯净水市场因农夫山泉、元气森林的活跃而发生变化。 农夫山泉2016年停止生产纯净水后,今年4月推出绿色瓶装饮用纯净水,而元气森林也推出了首款纯净水产品,主打“零钠”和“清甜”。 这

    06-17

  • 交出“最差”季报后,特斯拉股价暴涨700亿美元

    交出“最差”季报后,特斯拉股价暴涨700亿美元

    美国东部时间7月20日下午5点30分,特斯拉如期发布第二季度财报。 正如预期,特斯拉本季度财务业绩受二季度上海疫情影响出现波动,但总体好于市场预期。 财报发布次日,特斯拉股价大涨9.78%,创5月10日以来新高。 财报显示,第二季度特斯拉总营收为1亿美元,环比下降9.7%从上

    06-18

  • 赋予深商力量-钛金资本荣获深商联谊会副会长单位

    赋予深商力量-钛金资本荣获深商联谊会副会长单位

    8月12日,由深圳市商业联合会、深圳商会、深商联校主办的第60届深商赋能论坛暨活动,钛金资本荣获深商联谊会副会长单位单位授牌仪式在深商服务中心成功举行。 钛金资本荣获深圳市商业联合会副会长单位,董事高毅辉董事长荣任深圳市商业联合会副会长单位。 钛金资本将秉承深商

    06-17

  • 全面助力教学培训机构抢占编程教育赛道C位,编程之家获数百万天使轮投资

    全面助力教学培训机构抢占编程教育赛道C位,编程之家获数百万天使轮投资

    据投资界10月9日消息,近日,K12编程品牌“编程之家”已完成数万元天使轮融资,投资方为友成创投。 据悉,本轮融资将用于少儿编程课程研发、师资培训和市场拓展。   编程屋是傲雪信息科技(上海)有限公司旗下的编程教育品牌。 傲雪信息科技(上海)有限公司是一家致力于提

    06-18

  • AR公司亮亮视野获得杭州东方嘉富资本战略投资

    AR公司亮亮视野获得杭州东方嘉富资本战略投资

    近日,AR硬件开发商北京亮亮视野科技有限公司获得杭州东方嘉富资本战略投资。 东方嘉富将为亮亮视野引进多种战略资源,推动亮亮视野快速发展。 自2016年亮亮视野成立以来,AR+AI工业级解决方案已广泛应用于先进制造、能源电力、航空、IT服务等行业,覆盖66个国家和地区,服务

    06-17

  • 数据分析软件Amplitude估完成新一轮融资,红杉资本领投

    数据分析软件Amplitude估完成新一轮融资,红杉资本领投

    据彭博6月10日报道,成立于2007年的美国数据分析初创公司Amplitude获得红杉资本F轮融资。 新加坡投资公司 GIC、Battery Ventures 和 IVP 等现有投资者也参与了本轮融资。 这使得他们的估值达到40亿美元,成为数据分析软件市场的独角兽。 总部位于旧金山的 Amplitude 与福特汽

    06-18

  • 互联网珠宝新品牌Search Box完成550万元天使轮融资

    互联网珠宝新品牌Search Box完成550万元天使轮融资

    据投资界11月7日消息,互联网珠宝新品牌Search Box于2017年完成1万元天使轮融资今年三月。 主要投资者分别是金利来集团董事长曾志明和中港汽车厂董事长吴家荣。 搜珠宝盒成立于2019年5月,是一个新兴的互联网珠宝品牌。 其产品包括搜珠宝盒App和线下连锁体验店。 用户可以在

    06-18

  • 杭州迪英+科技获超亿元B轮融资,中金丰泰基金领投

    杭州迪英+科技获超亿元B轮融资,中金丰泰基金领投

    据投资界6月1日消息,据Arterial.com报道,杭州迪英+科技已完成百余笔融资万元B轮融资,中金资本旗下中金丰泰基金领投,老股东联想投资、江门创投跟投。 本轮融资将主要用于加大研发投入,加快人工智能和数字化、智能化病理服务的全面落地。 自2017年成立以来,迪英+科技瞄准

    06-18

  • 谷歌AI又大动作了,放射科医生会被取代吗?

    谷歌AI又大动作了,放射科医生会被取代吗?

    雷锋网记者:据VentureBeat报道,谷歌AI利用人工智能系统,借助数千个高质量标签数据库,准确判读胸部X光图像。 该论文已发表在《自然》杂志上。 【图片来源:VentureBeat 所有者:VentureBeat】近年来,谷歌AI不断将目光投向医疗领域。 去年,纽约大学使用谷歌的 Inception

    06-17