手机支付中的数字签名是如何保证信息安全的?李永乐老师讲解生日碰撞和哈希函数
HTML-код
- Опубликовано: 10 сен 2024
- 今天 我们想给大家介绍一下
大家耳熟能详的一个词叫 数字签名
为了解这个问题我们得先讲解一下
生日碰撞和哈希函数
数字签名是指
发送方用自己的私钥对数字指纹进行加密后所得的数据
其中包括非对称密钥加密和数字签名两个过程
在可以给数据加密的同时
也可用于接收方验证发送方身份的合法性
采用数字签名时
接收方需要使用发送方的公钥才能解开数字签名得到数字指纹
但是生日碰撞对于这个数字签名来讲是一个威胁
我们应该避免这个问题
我们以前说过这样一句话
说这个世界上大部分的物理学家都是数学家
但是并不是所有都是这样
有一些实验物理学家他数学能力可能没有那么强
但是 世界上所有的计算机科学家都是数学家
100% 为什么
因为计算机科学本质上其实就是一个用电脑实现的数学问题
视频禁止搬运!
李永乐老师 谢谢李老师!
建议老师在视频上 打上水印,西瓜 RUclips 都打上 这样好。
還有水印嘛,李老師就是認證呀,只是怕別人胡亂搬運而已。就是怕人搬運假冒而已,有些人有水印也照搬的。
如果窃听者把“4adb5”装进盒子发给A,然后把“4adb5”的HASH作为签名发给A,A怎么才能知道是不是B发来的呢
老師您之前上課跟現在差好多阿,以前老師教書教的氣氛很愉悅
我很喜欢李老师的视频. 不过这一期里对数字签名的讲解有失偏颇.
数字签名最核心的技术是非对称加密, 哈希只不过起到了锦上添花的作用.
比如A公布了一段信息,并且用自己的私钥对这段信息进行签名(其实就是加密), 并附加在消息后面.
其他人看到信息后,用A的公钥对签名进行解密, 得到明文.
如果解密出来的明文跟A公布的信息一致,就认为这段信息确实是A发出的, 因为别人没有私钥没法生成这个密文.
这个过程中甚至不需要哈希函数.
这个做法的缺点是,当原文很长,加密出来的信息也会很长,而且加密(签名)和解密(验证)都需要很大的计算量和很长的时间, 效率不高.
哈希的作用是把无论多长的原文, 都可以缩短(摘要)成一个固定长度的信息, 并且"几乎是"独一无二的.
这类似于人的指纹,无论你是奥尼尔,还是郭敬明,指纹都几乎是唯一的,并且只有那么大点.
对这段信息进行加密解密,就要简单得多, 但并不是说非要这样做不可.
还是有一些不同看法。视频中对于数字签名和数字摘要的概念没有区分,错误的把数字摘要理解为数字签名。数字签名是指用哈希算法先对信息进行处理形成数字摘要或数字指纹,然后对数字指纹和摘要再用私钥加密的过程。而且,身份鉴别是不能通过哈希算法保证的,必须通过信息来源的公钥来保证(公钥的真实性由信任CA的私钥加密包含信息来源公钥的证书保证)
说的没错,不能用哈希算法验证身份,因为中间人同样可以截断原哈希值,并向接受者发送由伪造的密码产生的伪造的哈希值。
老哥稳
这是科普性质,点到即止
李老师别的video讲得都非常言简意赅,不过数字签名没有讲清楚,sorry,恕我直言。B把A发来的文件修改以后,用公开的hash算法生成数字摘要,再把数字摘要用自有的私钥加密以后,就是数字签名以后,把文件、数字签名,连同自己的公钥一起发给A。A收到后,用B的公钥解出数字摘要,再与B的文件在A处生成的数字摘要进行比对,确定是B发来的文件。如果有人修改了文件没有修改数字签名,在A处就不会比对成功,或者如果有人截获了文件,修改以后,用他自己的私钥进行冒充签名,A就可以通过证书确定不是B签的。
我觉得李老师说的塑料袋就是B的公钥吧
HASH的主要用途是確認message的完整性,數字簽名之所以要用HASH是因爲通常message很長,而非對稱加密的運算量很大,故而用HASH取得message的摘要digest(嚴格說還要用算法加上一些變化),再用私鑰來sign這個摘要。而message加密或不加密倒是次要問題。
这里所说的msg应该是对称加密的session key吧?比如diffie Hellman之类的
这期的视频讲的很绕,数字签名还是用公钥和私钥解释比较好。A和B各有自己的私钥和公钥,并且彼此知道对方的公钥。当A想确认B的身份时,A使用B的公钥加密一段信息给B,如果B能解密这段信息就可以证明B的身份。因为用B的公钥加密的数据在限定时间内只有用B的私钥解密是可行的,所以不会有C\D\E\F能够冒充B。基于这样一个原理互联网构建了证书体系,https的安全性也基于这样一个体系。 RSA可以说是整个互联网安全的基石,然而这一切只是大素数的一个性质,这就是数学奇妙的地方。
此外,还有DH密钥交换算法。这种算法基于对数的特性,可以让通信双方在不安全网络上安全的协商密钥。
李老师后半段其实更像是数据完整性的验证,而不是通信双方身份的验证。
是的。最后那个校验哈希并不能确认身份,只能确认数据没被篡改。
公钥私钥这个之前有一期讲过了
同意,打太多的比喻反而不容易听懂了
如果有中间人攻击就不能确定b的身份了吧?所以还需要数字证书?
对,这个证书还不能是一个烂机构签发的
把老师lecture两个小时都没讲明白的问题十分钟就搞定了,牛
本篇内容其实就是用生日的问题解释了什么叫哈希碰撞。哈希碰撞是一种非常危险的行为,因为很多PKI算法都基于Hash算法,而Hash碰撞可以伪造签名,打成伪造证书的目的。此外,通过Hash碰撞还可以破解密钥,原理是当两个值越接近,那么它们的Hash值差别就越小,通过Hash碰撞可以猜测加密内容,所以这是危险的。另外Hash碰撞也可以通过彩虹表大大减少运算量。为了解决这个问题,科学家引入了一个随机盐(Salt)的概念,就是将Hash值加入Salt之后再次Hash,这样经过两次Hash运算之后,碰撞的几率就大大降低了。比如Sha-1算法就是在Hash算法基础之上引入了Salt
Feng Yu sha1本身有引入salt嗎?我記得沒有耶
"当两个值越接近,哈希值差别越小",这是上完计算机大一基础课之后的理解。
我也觉得有问题。。。稍微改动一个字符,哈希值将大相径庭
只有非对称信息会有穷举的问题,而且可以通过动态产生种子后缀来规避这种拙劣的破解方法。根本无需产生多次hashtable,而且无论怎么调整排列,最终同一段密码产生的hash值也是永远相同的,只有字典库够大就可以穷举。自己用sha1或MD5测一下就知道。对称加密算法也是用hashtable,但是会有随即种子prk打乱规律。即使同一段内容产生的puk也永远不会相同。而且非对称算法并不属于加密算法,这一类属于信息摘要算法。相当于把一段信息按一定规律散列转换另外一种类型。
感觉现在的各种加密方法都是以增加破解者的计算难度来设计的。如果量子计算机出来,这些加密方法会不会都原地爆炸了。手动狗头。
点赞。 所有的计算机科学家都是数学家!请李老师抽空讲讲“NP完全性”问题,它是计算复杂性理论的一个重要概念。谢谢!
支持
定 求讲算法问题
签名能够起作用的前提是AB双方都拥有对方的公钥吧,数据是用对方的公钥加密,而签名是用自己的私钥加密
老师这节课太好了,我看区块链项目中哈希函数看蒙了我好久,现在明白了哈哈哈
还是叫散列函数比较好,体现了这类函数的本质。
就是把一段数据分配到某一列中,给出列号。
学散列表时常用的余7,就是把数据分配到7列的某一列中,得到列号。
md5, sha等散列函数,就是通过特定计算方法,把数据分配到2^128列中,得到列号。
列号也就是散列值。
这也体现了散列函数不可逆的特性。因为散列值只是列号,有很多数据可能被分配在同一列中,知道列号并不能确定原文。
刚做完一份hash function oneway和collision的作业 能在这里再听一遍中文版交换秘钥的课也是蛮舒服的
李老师是个计算机科学家
A得事先知道B的公钥(或者有个CA),否则是识别不出中间人的。
李老师可以说说 Diffie-Hellman key exchange,这个好玩
之前的理解是数字签名和加密是两回事,听老师讲了以后原来还可以确保公钥方的integrity。 学习了, 另听到 8:03 这个数据只有B能装进去莫名喜感
老師啊 我今天下午剛剛考完cyber security 你早一天發這個視頻就好了😂
你要是考cyber security需要这个视频的话可能考的是幼儿园的吧
感觉这样的授课方式以后会非常流行 学生不怕打瞌睡 老师情绪也不会受没人听课影响
感觉没有讲太清楚,应该区分authentication(认证)和integrity(未经篡改).hash只能确认integrity,而数字签名一般用MAC或者非对称加密实现
毕竟只有十分钟
这集没抬怎么理解 但还说要给李老师点赞👍 太厉害了
高科技的通俗讲解,厉害
看完王刚的做菜,马上过来报道
Haolin Chen 没看小高姐么?
哈哈哈 一样一样 王刚和李老师是油管双红
我最近最关注的就是李永乐,和王刚
我是小高姐,王刚,李永乐三修。。。
哈哈,我也是小高姐,王刚,李永乐三修。。。。
我是不是太狂傲了,初中生也敢进来看李永乐老师😂😂😂
加油!
讲的太好了,学习了😊
这节课的核心还是生日碰撞,虽然数字签名的例子感觉怪怪的,但是生日碰撞的问题感觉还是能理解的。
我把我的理解聊一下吧
8:04 这里塑封袋的设定是,有无数种,而且每个人的都不一样,它的属性有一点是无法仿造;
当接受者A收到了装有abc的袋子的时候,只凭袋子的外观就可以得知发送者是否是发送者B;
所以老师在这里说的别人一旦撕开,就没法再把它还原了,因为只有B拥有那种袋子。
这里所提到的袋子,可以是大家所知道的UKey,也就是数字签名的一种形式。
换句话说,整个网络世界只有B一个人拥有这种袋子,而且无法仿制,从而达到了认证B的身份的效果。
请问为什么这个袋子无法仿制呢?
@@itllgetbetter2452 这袋子就是私钥,信息出去后任何人都可以拿发送者(B)的公钥来解开袋子。但是解开袋子后就没办法还原回去了,因为私钥只在B那边。
老师这个例子举得不恰当,非对称加密在数据传输中,是用来协商传输密码的,然后用这个协商出来的传输密码来对传输的数据进行加解密。所以数据传输阶段跟被对称加密是没有关系的。
惭愧以前没有好好关心同学,都不知道谁跟我同一天生日!
秀儿
这一集对我很有用!
邪恶监听者有可能也会利用某种算法猜测到发送者的加密方式,之后加入自己的信息再加密发给接收者。一般是Enc_公钥(要传输信息为参数)=c1,利用hash(c1)求得tag.在不安全的额网络下传输加密文件是以.
听懂了,谢谢李老师!
不要忘記2月14日和聖誕節是受孕高峰期!
cmk105 因为做爱比较多???
这才是真正的生日碰撞
Zhongyi Ding 对的,那几天开房人数比较多
受孕9個月出生,每個人預產期不同,還存在早產;每個女性經期不同,排卵期不同,不是做愛就能懷孕的;所以開房的多寡以及當天是否受孕對於生日碰撞都是不高於平常隨便一個日子的
先点赞后再看!
想說資安讀這麼久都沒聽過哈希,結果原來是hashing音譯,我們都講雜湊
要是有人出 化學講座 經濟學 各領域的就好了。聽不膩。
感谢李永乐老师!
以前略聽概率這個概念,只覺得是一個反直覺的麻煩事,現在學了更多的數學,有了更豐富的數學邏輯才知道,原來的確如此
老师,新发型很帅
之前看过李老师讲rsa加密算法的时候我又查了一下,这个算法可以用于加密和认证,这个认证就是李老师这里说的数字签名吧?我看到的是说,加密(也就是传输数据时)是用公钥加密,用私钥解密;认证是私钥加密,公钥解密。没理解错的话,认证过程应该就是,私钥给哈希后的值加密,对方用公钥解密再用之前收到的信息做哈希,然后对比看是否一致吧?
讲得真好,脑袋都听大了
講得超棒!
我忘了我高中的班级有多少人了,但是有和我生日相同的
William Li 我大学一班47人,有个人跟我同年同日生
同年很正常不用考虑,同日就不一定
上面演示的不是出現跟自己生日相同的機率,而是班級中出現有人生日相同的機率。
然后把这次概率 奉之为缘分 与室友之间发生了不可描述的......
我看成李永樂生日要講解老師生日呢XD
李老师也来讲计算机的问题了~
这期很棒,谢谢老师
这么快看完啦?
李永乐老师 光速扫完文字简介 哈哈 老师辛苦啦
总算明白了hash函数的意思,传入任意长度的字符串,生成固定长度字符串,类似md5
很受用,謝謝
老师 请问A是怎么知道这个哈希函数的?如果哈希函数是B需要告知A的 那么在传递过程中如果被邪恶的人窃取 那这个人是不是可以通过这个函数伪造一个假的并且是生日碰撞了的信息呢?
这里有个东西没讲清楚 数字签名一般是发送方先用hash算法算一个摘要 然后对摘要用私钥进行加密 再和原始消息打包一起用接收方公钥加密发送出去
Computer science 也講了!老師講多一些Computer science 的知識吧!
这次前排了,钻心听课
李老師,您好,
常看電影裡,
交戰雙方會以雷達鎖定對方,
而被鎖定方,
也會知道自己被鎖定。
請問李老師,
被鎖定方是如何得知被鎖定?
是甚麼原理呢?謝謝!
李老师,可以讲讲聚变和裂变难在哪里?毕竟现在我们已经实现了可控的和裂变,还不能办到可控的聚变。我们要奔向那星辰大海,需要用到聚变。
还有碳纤维管,造太空电梯需要用到它。
数字签名的特点就是定长和失真,失真一定不可恢复(除非碰上量子计算机)。
Good! 超讚!感謝分享,祝福您:閣家安康、幸福美滿、事事順心、心想事成、鵬程萬里、-帆風順。 感謝您!~^_^
这是要讲数字货币了么,这些可是基础,哈哈
李老师能讲讲转基因么?网上各说纷纭,不知道相信谁。想看看李老如何分析
老师的视频很棒。建议李老师可以考虑在涵盖技术名词的时候也穿插相对的英文词,比如:哈希函数(cryptographic hash)等等。
好的
李永乐老师 谢谢!像我一个马来西亚华侨,一直都是以英文学习的,但是也坚持持有中文。
如果在 description 部分也涵盖英文的关键字,也可以让你的视频让更多双语的人们也发现你呢。
加油!期待更多
老师,您看看找个时间讲讲折现值的计算吧。在投资管理中经常用到。我发觉用土办法计算跟用Excel公式计算,数值上会有偏差。总感觉没学明白。谢谢。
有个地方没懂想问下 如果哈希函数不可逆 那A接收到abc后虽然确认了信息没有被篡改 但是如何还原到123呢?
老师没有说清楚public key在验证数字签名上的作用。是接收者通过认可的第三方得到发送者的公匙去解密数字签名确认哈希值
李老师后面避开了一个很重要的问题,既然可以篡改数据,那么也可以同时篡改哈希
简单说,(非对称加密,公钥和私钥,公钥在公众手里,私钥在拥有者手里。)
1、HASH值的目的是防止数据被篡改或者丢失,是在传递主体信息时的校验信息。
2、公众利用公钥加密的数据在传递给私钥拥有者过程中,不会被破解,因为只有私钥能解开。但是可以利用公钥伪造,所以数据传递过程中,一般再加个加密内容摘要的HASH值校验。
3、简版的数字签名。私钥拥有者,想表达是自己发出的信息(如HTTPS网站),则利用私钥加密,那么公众利用公钥解开(浏览器内置信任CA机构证书,含公钥),从来确认是私钥拥有者发出的信息(防止钓鱼网站)。
4、完整的数字签名。私钥拥有者,首先把传递的正文获得摘要(减少HASH运算量,非必须),然后获得摘要HASH值,再然后利用私钥加密HASH值。最后将正文和加密内容发送给公众,公众通过正文获得摘要,并且计算摘要HASH值,公众再利用公钥解密与正文一起传送的加密内容获得传送的HASH值。两者HASH值比较,从而确定正文内容既没被篡改,也是私钥拥有者发出。
5、如果双方都想数据加密不被破解且数据传递不被伪造,那么双方需要双向非对称加密交换公钥且数据传输都加上传递内容HASH校验。
说好了,简单说...
有了你的解释更加清楚自己,thanks
我来罗列一下"李永乐老师"的各种常见算法哈希值
Original text 李永乐老师
Original bytes e6:9d:8e:e6:b0:b8:e4:b9:90:e8:80:81:e5:b8:88 (length=15)
Adler32 57340a9b
CRC32 abcc55e4
Haval e30fce3fcccd6dae4d362baf6ad4d3d4
MD2 64f4161348725a40c1cf1ebff6557767
MD4 e411d823af4479d2a2458207aa8d4de0
MD5 b147709319a4ed17c448d1dd4dd9d21f
RipeMD128 50f4a242dc74e5cc53355e54e400158d
RipeMD160 036448808e43ec178d44c4e08efd52426c0d882b
SHA-1 d00b8097dda7cf3e95760bb454da0b9626606870
SHA-256 d9da35670713fb5785515e16de14e0f5066ccf09084cb08bebf79f41ce4ed640
SHA-384 970aa1a8a02eff1c2218298a3e8fe5504ba663cc47ea7e502dcca1745749f95671dda71a9b7f74a9273122b57f181551
SHA-512 5fdbb96b0cd8480682fea11e47e0508018451eba1f76bb8acfda35cc96012b4c2556dca6380475b3fdf4b614f85302110ef2102c39cbf90089819c12349f8830
Jack Fu n
好厲害的樣子哦~
有本事自己刻一個
不错👍👍👍
这个解释对数字签名流程有问题,窃听者可以截取发送者的哈西值,然后发送自己伪造的。需要CA来解决这个问题就是有公信力的第三方
老师,这个问题我小时候在一本数学百科全书/十万个为什么里看到过。你看过那本书吗?红色硬装的
下一期讲一讲加密货币的原理吧,老师
感觉数字签名没表达得很清楚
是的,没听明白,逻辑混乱
YungHao Liao 那不是也得把私钥给B?又存在密钥传递的问题了?
請問老師人們是怎樣定義一秒的還有原子鐘為什麼誤差這麼小以及古人怎樣把時間這麼抽像變成實際的
长知识了
李老师能否讲一下BT种子与磁力链接之间的关系 据我所知二者之间可以相互转换 但不知是如何转换的
学习了
是不是任何一个客户端都可以向服务器提出加密对话的申请,只要申请都能拿到服务器公钥呢?
虽然很入门但是通俗易懂
突然发现分数乘除我已经忘了怎么算了·~~哇 还给小学老师了·
好期待量子计算机,很想知道现有的散列加密方法在量子计算机的碾压下要多少时间,不过到时候也会产生新的加密方法
牛!
李老师,这个跟“区块链技术”有什么关系吗?
老师,这讲其实没太听明白。呵呵。惭愧惭愧。
受教了~
李老師訂閱數即將超越 YOUTUBER 米克沃斯啦~~~~~
记得以前在网上下载软件时 会有个MD5值 好像是16位的 用来检测下载到本地的文件是否有数据丢失或篡改
老师,机场的人说飞机是最安全的交通工具。这是怎么算出来的?
老师,能不能介绍一下王小云是如何破解md5和sha1的?
SH iHu 希望老師可以講解一下,超想聽的,王小雲老師的md5 collision
开讲啦 20180414 清华大学教授、密码学专家王小云:熟悉又陌生的“守护者”--密码! | CCTV《开讲啦》官方频道
ruclips.net/video/Uccei28X9FM/видео.html
利用哈希碰撞。原理是两个值越接近,那么它们的哈希值也就约接近。通过这种手段,不断猜测与真实值的差异
请求老师有空讲解计算机的数据结构 Data Structure
开个系列课程吧,比如计算机,物理,化学
我班49人, 人人生日不同, 概率100%
你把我學一年的東西用10分鐘講完了==
老师好!!!!
希望老師講一下全體自然數的和
厉害厉害
不考虑成本的话,A能不能做一个只有B才能打开的盒子?然后B加密发给A解密
老師會說一下各種悖論嗎?很想聽聽你的分析
但是生日攻击要和原有的内容一样啊。生日问题只要任意两个一样
没有听太明白。也就是说,B传给A “123”的时候,除了把加密后的“123”传输给A,还要多传输一个哈希计算后的数值"abc"传给A,目的是验证是否来自B.
说到最后 李永乐 既然你是数学老师你也是 计算机科学家吗?哈哈哈
李老师,之前的孙子算经那2集很好的,能多出点嗎?
高考理综第8题出错?广东宣布:该题单选A或B均得6分!
--------用数学的方法讨论下这个ab全给分有没有破坏公平性,和剔除掉这道题的公平性有区别么?
哇 真的跟我的想法不同
没听懂 。。。
厉害我的李老师,生日原来还可以选?
颠覆了我对生日的认知