0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

信息安全的加密与解密

工程师 来源:汽车电子硬件设计 作者:汽车电子硬件设计 2020-10-19 15:48 次阅读

前言

在《林海雪原》里,杨子荣为了能够假装胡彪,打入虎穴,学习了些黑话,题记里杨子荣正跟土匪对着暗号,验明自己身份的合法性。这是在提到洋气的A和B之前,能想到密码学里身份校验的故事,当然前提是山寨里的人都没见过胡彪,只是有所耳闻,故事里土匪一直在想法设法试探杨子荣的身份,感兴趣大家可以看看《智取威虎山》中的电影片段。

话说回来,土匪和杨子荣的对话并不涉及加解密的过程,只是凭着行话,核验身份,与我们正常输入登录账号密码一样,那最多称之为口令,那什么是密码学呢?我们简单看下维基百科的定义。

Cryptography is about constructing and analyzing protocols that prevent third parties or the public from reading private messages. (密码学是关于构建和分析防止第三方或公众读取私人消息的方法体系)。

信息安全的属性

在密码学世界里有两个虚拟的人物Alice和Bob以拟人化A和B,假如Alice和Bob是同班同学且互有好感,有一天Alice终于鼓起勇气要以情书的形式向Bob表白,正常来讲他会有些担心,最理想的情况下,是情书安全的送到了Bob那里,万一情书被人发现,也没有关系,只有Bob能看懂,同时要确保Bob收到情书之后,还得确定是Bob发来的,不然搞错了对象也会很尴尬。

Alice确实是个心思缜密的人,他的担心涉及到了信息传递的几个安全属性。

机密性: 自己的真实意图只能让Bob知道,不能让公众晓得,他可以把情书放到密码箱里,把钥匙给到Bob,或者也不怕别人看到,对于情书内容进行加密,也只有Bob知道密钥。

完整性: 情书中途被人掉包,或者内容被篡改,明明是表白I love you 结果换成 I hate you那就坏了好事了。

真实性: Bob收到情书之后,得知道是Alice写的,当然写匿名情书搞暗恋又另说了。此时就需要Alice签字,或者做个人的特殊标记,比如加上自己的俄语一段话,因为班上只有Alice会俄语。

Alice的想法也是人之常情,不仅要有勇气将重要的信息传递出去,同时也要有足够的智慧保证信息的传递准确到位。其实在密码学在这里就可以派上用场了。

加密与解密

Alice可以将情书放到有密码锁的笔记本里,然后将本子和钥匙一起送给Bob,这也是一种方式,钥匙上锁和解锁的过程,暂且换上专业的说法,加密和解密,同时发送者和接受者用的同一把钥匙,也就是我们说的对称加密,当然密钥只有Alice和Bob知道,同时消息和密钥要同时发给对方。其逻辑如下:

在介绍加解密之前,简单普及下基础的概念,在现代的计算机和依赖计算机的设备里都用到了二进制,每个数字称为一个比特(bit),一个字节由8个比特构成,储存的数值范围为0-255。

既然二进制是计算机的语言,那么消息都必须得转化为二进制才能进行计算,很多问题就变成了数学问题,此时密码学就成功成了数学家的天地,这也是我们普通大众对密码学望而却步的原因。(顺便提一句,目前国内在密码学造诣最深的是山东大学数学系出身的王小云院士。)

再回到Alice和Bob的小秘密,经过仔细考虑,情书的关键信息如下:

I LOVE YOU

现在为了确保消息只有Bob看得懂,而别人看不懂,暂且假设只有Alice和Bob知道密钥,此时正常来说他三种操作方式。

首先是字母替换,每个字母按照制定规则逐一替换,此时Bob收到加密消息的同时,还会收到的字符关系表,逐个解密得出明文消息。正经的说,也就是利用预先设计的固定代替规则,对明文逐个进行替换,这个代替规则又称为代替函数,代替表或者代替函数,所以相同的明文字符组一定会产生相同的密文字符,此时可以采用频率分析基本可以得到找到对应关系。

然后是行移位,I LOVE YOU 按照26个字母顺序依次向后移一位,那么变化如下:

I LOVE YOU-》 J MPWF ZPV

如此解密时,J MPWF ZPV 各字母向前移动一位就解决问题,得到答案里。

最后就是加减密码,将明文逐个字符或逐字符组与乱数相加或相减的密码,在这里就不赘述了。

对称密钥

Alice和Bob的小秘密大部分情况下要通过密码技术来保证,顺着Alice面对安全威胁的担忧,接下来我们还是有必要整体介绍,密码学的常用要点。

在之前,其实我们简要介绍过了对称密钥,也就是加密和解密用的是同一套密钥。关于具体的对称密钥算法,还是有必要介绍AES, 一般会将明文分成128bit的明文块,密钥长度有128,192,256bit三种选择,对于128而言,加密轮数为10轮。分别用到了XOR运算,字母替换,行移位,列混淆一套组合拳,然后经过10轮加密计算得到密文。

听起来挺复杂的,其实逻辑很简单,通过一堆骚操作之后,让你看不懂密文,除非拿到密钥解密得到消息。但对于Alice想跟Bob表白这件事情来说,也最好不要这样,除非你确定Bob对密码学很感兴趣。即使Bob拿到了密钥,你手把手教他解密,把最后的I LOVE YOU的信息给解出来也不是件容易的事。

非对称密钥

对称密钥有个问题,情书发送的时候,要顺带把钥匙也给对方,不然对方是解不开的,此时不仅要保护情书不落入情敌手中,同时也要确保密钥的安全。也就是说对称密钥存在密钥配送的问题。

1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。

也就是我们经常提到的非对称加密,咋个理解法?在《图解密码技术》里面提了个非常有意思的说法解释公钥和私钥的关系。

假如Alice到超市购物要存包,先投一枚硬币,此后空箱子弹开,你放上你的私人物品后,合上寄存柜的门,然后自动弹出一个小纸条,那个小纸条你得拿好,上面的条形码是唯一的,到时拿着纸条对着扫码机扫一下,解锁后寄存柜打开,然后完成这个过程。

这样一套自动化系统成功的解决存包管理的问题,同时将寄存柜变成了公共设施,同时还能收一笔使用费用。其中硬币相当于公钥,谁都可以有,你有了一块钱就可以锁上柜子,然后你的柜子只有你自己的纸条能打开,相当于私钥。

也就是说公钥加密,私钥解密。非对称加密尽管增加了一套密钥分发系统,但是相对于对称加密每次都要随带密钥,不仅提高了安全性,还省了内存。

关于非对称密码的算法实现,不得不提到RSA,其逻辑如下:

密文=明文^E mod N, 密文等于明文的E次方,然后除以N的余数。

E和N构成公钥,D和N构成私钥,中间的数学算法在此就不细展开了,如果大家感兴趣查阅相关的资料

不管是对称加密,还是非对称加密,解决的核心问题还是机密性,不希望别人看到个人的隐私信息,密钥本身也同等重要,比如利用随机数加密数据,也就是一次性密码,只是长度与明文一样长,保护明文与密钥成本相同,那就脱离加密本身的初衷,但那也是唯一无法破解的密码,不过没有实用的价值,此时说世界上没有绝对的安全,一点也不为过。

单向散列函数

如果加密和解密的渠道都是正常进行的,万一有人篡改了消息的内容,又该如何保证 呢?

每次发来的文件消息数据量巨大,不可能挨个原文比对验证完整性,那工作量太大了。此时单向散列函数就出现了。

单向散列函数,首先是单向不可逆的,你无法通过散列值计算出明文,另外是压缩数据,不管多大的数据,都可以计算出固定长度的散列值。最后就是消息不同,散列值也不同,消息稍微有点变化,散列值本身就会有很大的变化。

如果说消息传递时空间的有效性,你可以通过安全传输协议来保证其安全,如果消息时间的有效性,你可以通过前后对比计算散列值得到结果,针对昨天和今天的校验值,你如何校验呢?此时计算消息的散列值,然后对比,这问题就可以解决了,其逻辑步骤如下:

消息认证

Bob怎么确定发送者是Alice呢? 这就要验证消息的合法性,刚才只是按照消 息原文计算了散列值,比对内容是否有篡改,主要应用的是昨天跟今天消息的对比,不涉及到消息传输。 今天Bob收到情书了,想确定是Alice发来的,此时就要考虑密钥问题了。

其实消息认证码就是一种与密钥相关联的单向散列函数,有了共享密钥的参与就可以验证消息来源的合法性了,共享密钥只有发送者和接收者知道,Alice和Bob的小秘密才足以捍卫。其工作流程如下:

数字签名

通过消息认证码可以识别消息是否被篡改或者发送者身份是否被伪装,也就可以校验 消息的完整性,还可以对消息进行认证。 如果Alice向Bob借了1000块钱,借钱过程都是合理合法,万一有天Alice否认没有找Bob借 过钱呢?

对称加密里面,密钥是双方都知晓,非对称里面公钥是公开大家都知道的,私钥只有Bob知道,真正属于Alice的个人信息并没有,也就是内容没毛病,就是没有签字画押,对了抗抵赖性,此时数字签名就派上了用场。

在非对称密钥里面,公钥加密,私钥解密。

在数字签名里面,私钥签名,公钥验签,对于初学者来说容易弄混,但是从逻辑上可以这么理解,签名是具有个人属性独一无二的,当然得用Alice得私钥签名,而验签则是任何需要验签得人都可以持有。

验证签名就是检查该消息的签名是否真的属于Alice,验证的结果可以是成功或者失败,成功则以为着这个签名是属于Alice的,失败则意味着这个签名不是属于Alice的。

总结

密码学真是为了保护Alice 和Bob的小秘密操碎心,对称密钥只有一个密钥,加解密便 捷快速,但密钥同消息一起传输又不太安全,非对称密钥解决了密钥管理的问题,可又担心别人篡改了Alice情书的内容,费尽心思设计单向散列函数实现了数据比对的轻量化,Bob担心Alice借钱不承认,特意设置了数字签名,真的是太难了。

安全的本质就是信任,当你不信任对方时,会千方百计的校验对方的身份,设置各种密 码措施,如果不表白似乎就没这么多事了,但为了人类的繁衍的,科技的进步,你总归是要走下去的。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 信息安全
    +关注

    关注

    5

    文章

    655

    浏览量

    38898
  • 数字签名
    +关注

    关注

    2

    文章

    76

    浏览量

    13820
  • 函数
    +关注

    关注

    3

    文章

    4327

    浏览量

    62573
收藏 人收藏

    评论

    相关推荐

    浅谈加密芯片的一种破解方法和对应加密方案改进设计

    目前市面上很多防抄板加密方案都是基于加密芯片的安全存储和密文通讯来实现对主MCU方案的保护。比如把主MCU用到的一些参数、配置信息等存储在加密
    发表于 12-20 15:31

    加密算法的选择对于加密安全有多重要?

    加密算法的选择对于加密安全至关重要,因为它直接影响到数据保护的有效性和可靠性。以下是几个关键点来说明加密算法选择的重要性: 加密强度:
    的头像 发表于 12-17 15:59 69次阅读

    对称加密技术有哪些常见的安全漏洞?

    对称加密技术在实际应用中可能面临的安全漏洞主要包括: 实现不当: 错误的加解密实现、弱随机数生成器或其他逻辑错误都可能导致安全漏洞。 漏洞利用: 利用已知的弱点或攻击手段,如理论上可行
    的头像 发表于 12-16 13:59 66次阅读

    对称加密技术在实际应用中如何保障数据安全

    对称加密技术在实际应用中保障数据安全主要通过以下几个方面: 密钥的安全性: 对称加密安全性高度依赖于密钥的保密性。一旦密钥泄露,
    的头像 发表于 12-16 13:59 110次阅读

    aes加密的常见错误及解决方案

    的归纳以及相应的解决方案: 常见错误 编码问题 : 在将字节数组转换成字符串时,如果使用了不同的编码格式,可能会导致解密后的数据出现乱码。 密钥长度问题 : AES算法支持128位、192位和256位三种密钥长度。如果加密解密
    的头像 发表于 11-14 15:13 1183次阅读

    socket 加密通信的实现方式

    在网络通信中,数据的安全性至关重要。Socket 编程作为网络通信的基础,实现加密通信是保护数据不被窃取或篡改的重要手段。 1. SSL/TLS 加密 SSL(Secure Socket Layer
    的头像 发表于 11-12 14:18 360次阅读

    UID加密安全启动原理分析

    本文导读 ZDP14x0系列芯片是内置开源GUI引擎的图像显示专用驱动芯片,在实际产品开发中需要加密保护,防止应用程序被读取和盗用,本文将介绍如何实现UID加密安全启动。 UID加密
    的头像 发表于 11-11 11:49 404次阅读
    UID<b class='flag-5'>加密</b><b class='flag-5'>安全</b>启动原理分析

    蓝牙AES+RNG如何保障物联网信息安全

    标准,主要用于保护电子数据的安全。AES 支持128、192、和256位密钥长度,其中AES-128是最常用的一种,它使用128位(16字节)的密钥进行加密解密操作。AES属于分组密码,每次操作
    发表于 11-08 15:38

    安卓APP开发中,如何使用加密芯片?

    加密芯片是一种专门设计用于保护信息安全的硬件设备,它通过内置的加密算法对数据进行加密解密,以防
    的头像 发表于 10-31 17:43 384次阅读
    安卓APP开发中,如何使用<b class='flag-5'>加密</b>芯片?

    安全服务加密存储代码怎么查

    安全服务加密存储代码的查询与实现是一个复杂的过程,涉及到多个方面,包括数据加密、密钥管理、访问控制等。 1. 引言 随着云计算的快速发展,越来越多的企业和个人将数据存储在云端。然而,数据安全
    的头像 发表于 07-02 09:28 355次阅读

    量子加密安全通信的未来

    随着我国信息社会、数字社会、智能社会的发展,信息安全要求越来越迫切。传统的加密方法虽然在一定程度上保障了信息
    的头像 发表于 06-24 10:40 438次阅读
    量子<b class='flag-5'>加密</b>:<b class='flag-5'>安全</b>通信的未来

    鸿蒙开发接口安全:【@system.cipher (加密算法)】

    加密类型,可选项有: 1. encrypt 加密 2. decrypt 解密
    的头像 发表于 06-06 09:11 1027次阅读
    鸿蒙开发接口<b class='flag-5'>安全</b>:【@system.cipher (<b class='flag-5'>加密</b>算法)】

    基于 FPGA 的光纤混沌加密系统

    算法具有高复杂度,可防止 SPA\\DPA 攻击。让指挥信息能足够保密,防止被敌人窃取。 1.3 主要技术特点 FPGA 设计加密算法具有安全性高,加密速度快,开发周期短,开发成
    发表于 04-26 17:18

    【先楫HPM5361EVK开发板试用体验】4手把手实战EXIP在线解密引擎

    功能,让数据加密密钥等敏感信息得到了安全的保护。 EXIP与XPI控制器紧密合作,就像超级英雄找到了得力的助手。它们一起让外部存储器可以直接映射到系统的地址空间上,就像打开了一个魔法门。处理器、DMA
    发表于 01-26 11:08

    加密狗是什么意思 加密狗怎么解除加密

    加密算法和技术,以确保软件的安全性和防止非法复制、盗版以及未经授权的使用。 加密狗可以看作是软件版权保护的一种授权策略,它将软件授权信息存储在硬件设备中,并要求用户必须插入
    的头像 发表于 01-25 17:19 8570次阅读