跳至主要内容

有关密码学 Cryptography

% Crypto 101% CUI Hao

密码学 Cryptography



加密:军事、商业保密、身份认证、日记...
  • 计算机出现前:加密人类语言文字
  • 计算机出现后:加密比特流(ASCII文本、网络协议)

古典替换式密码

凯撒密码

文本中每个字母在字母表上后移 k 个位置。

ATTACK -> DWWDFN (k=3)
IBM -> HAL (k=-1)

改进

重新排列字母表(单字母替换):


alphabet: ABCDEFGHIJKLMNOPQRSTUVWXYZ
  map to: RCPWUXNQBZFMYTLIEGVDJOAKHS
 example: ATTACK -> RDDRPF
"密码组合"有 26! 种之多。

维吉尼亚密码

每k个字母一组,与长度k的密码做加法


  ATTACKATDAWN (plaintext)
+ LEMONLEMONLE (key: LEMON)
= LXFOPVEFRNHR (ciphertext)
多个字母的凯撒密码。

替换式密码

substitution cipher

单字母替换/多字母替换/密码本...
  • 加密算法:映射
  • 密码:描述映射关系
  • 解密算法:反过来映射

另一种设计方案



也许是中国人发明的吧:
群书万卷常暗诵, 主人顾盼千金重。 药物楚老渔商市, 丸剑跳踯霜雪浮。
移位式密码 (transposition cipher)

列移位密码

按密码重新排列文本各列,然后竖着读出来:


 KEY: 6 3 2 4 1 5
TEXT: W E A R E D      CT:
      I S C O V E  ==> EVLNEACDTKESEAQROFOJDEECUWIREE
      R E D F L E 
      E A T O N C 
      E Q K J E U 
      (WE ARE DISCOVERED. FLEE AT ONCE)

密码分析

  • 系统是否安全?
  • 如何破解加密?

密码攻击 (COA)

仅仅获取到密文(ciphertext only attack),如何破解?
LetterFreq.
e12.702%
t9.056%
a8.167%
.............
样本越多,猜测越准确。

密码攻击 (CPA)

二战中,英国人对德国密码系统的种花攻击 (gardening):
  • 在A地放地雷
  • 截取密文 ...FRQALFFDSFGRE...
  • 在B地放地雷
  • 截取密文 ...FRQALFFDSFUGA...
选择明文攻击 (chosen plaintext attack):
试探设定的明文的加密结果,获取映射关系。

一致性破坏

不破解明文,仍可以有意地篡改解密结果,欺骗接收方:
  • PT: JOHN 1000; JACK 2000
  • CT: [01] [02]; [03] [04]
  • CT (modified): [01] [04]; [03] [02]
  • PT (modified): JOHN 2000; JACK 1000

极端的安全性



  • 经常更换密码 -> 一次性密码
  • 更大的密码空间 -> 超长的密码
  • 防止字典猜测 -> 密码随机选择

One Time Pad

维吉尼亚密码:使用和明文同样长随机字母串作为密码
计算机的维吉尼亚密码:加法 -> 按位异或


            U        S        T        C
 plaintext: 01010101 01010011 01010100 01000011
       key: 10110111 11110111 10111110 10011010
ciphertext: 11100010 10100100 11101010 11011001

OTP 为什么安全

非OTP:错误的密码 -> 无效的结果(乱码,无意义文本)
OTP:错误的密码 -> 可能得到看似正确的结果
  • 不可能被COA(密文得到很多看似正确的结果)
  • 不可能被CPA(一次性)


ciphertext: 11100010 10100100 11101010 11011001
 wrong key: 10101010 11110001 10111001 10001101
wrong text: 01001000 01010101 01010011 01010100
            H        U        S        T

一次性

异或运算的性质:(p1 xor k) xor (p2 xor k) = p1 xor p2
如果多次使用OTP,则可以通过密文间异或消去密码
已知的漏洞:
  • WIFI加密(WEP)
  • MS-PPTP(MSCHAP-v1)

实用性

  • Q: 如何安全地传送一次性密码?
  • A: 加密传输密码?死循环...
现实场景:密码应当便于交换和记录...
(其实可以通过量子密码实现绝对的OTP)

实际的加密方案

密码本模式

electronic code book, ECB

各种加密算法
  • 都可以归于替换式密码和移位式密码的复杂组合
  • 归根结底,就是多"字母"替换
实际的例子:
  • DES: 64位的替换单位
  • AES: 128/192/256 位的替换单位
缺点:同前

密码块链模式

cipher block chaining

为了避免ECB模式中移动块顺序篡改数据的风险:
  • 第i块明文加密之前,和上一块密文异或操作
  • 第1块明文和随机生成的初始向量 (Initial Vector) 做异或
既避免了篡改数据,还可以防止COA、CPA(相同数据两次加密结果不同)

流式密码

stream cipher

块密码中,如果任何一位传输错误,则会影响整个块(甚至下一块)的解密。
基于OTP的思路,设计一种伪OTP:
  • 密钥作为随机数种子
  • 通过伪随机数算法生成伪OTP密钥
  • 按照OTP的流程进行加密
为了避免重用攻击,也可以引入初始向量增加随机性。

其他模式

思考:文件系统加密,上述方法是否实用?

非对称加密



对称加密的矛盾:
  • 密钥必须被安全地保护起来
  • 密钥必须被分发给需要的用户
是否存在一种算法:
  • Decrypt(Encrypt(P, K1), K2) = P
  • 很难从K1推出K2
...以后再讲 (例:RSA)

生日悖论



如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。


   n(p, d) = sqrt(2d ln(1/(1-p)))
 n(0.5, d) = 1.2 sqrt(d)
n(0.99, d) = 3.0 sqrt(d)
不要低估暴力穷举破解 (brute-force) 的危险性。

最后的话

公开算法

Kerckhoff 原则:密码学算法应当是公开的
  • 保密的是数据和密钥
  • 算法可以得到更多研究者的检验
不要对自己的轮子保有过度的信心。

密码学其他科技

  • 数字签名
  • DRM (蓝光加密算法 AACS)
  • 同态加密 (Homomorphic encryption)
  • ......

the End

谨慎采信本 slides 的内容:
似乎本 slides 没有出现 Alice 和 Bob




Popular posts from 产品随想的博客

产品爱好者周刊 第21期:你好,2022!

  Products 玛拉蒂家具/座椅: https://www.maratti.com.cn/ 上海的一家办公家具供应商,公司实际坐过,非常舒服 DocuSign:  https://www.docusign.com/ 给PDF电子签名,看评价有不错的声誉 https://bridges.torproject.org/ 获取Tor网桥 塞冬: https://www.zhihu.com/people/qiancai_saidong 此人的长文分析,挺有insight,来自北大 公众号平台已沉默 客观来说,韩国有什么地方超越了日本和中国? - 塞冬的回答 - 知乎 https://www.zhihu.com/question/60428819/answer/369420091 高端造船、芯片闪存、显示技术 Design 折叠屏设计的一些思考: 10多年前互联网的网站设计: https://mp.weixin.qq.com/s/OdFjta4Wetp1p67bRrmYqw https://archive.ph/TdI1L Business & Market data 未来人口四倍于中国的非洲,我们该如何面对: https://mp.weixin.qq.com/s/7V2IgW3db1uRR3_wa8S1OQ 在数十年后,非洲也会是类似于印度、东南亚那样的机会 周深在节目中唱歌:一般2首,120W+ 一个有些违反认知的事实是,1966年的上海综合工业实力媲美台湾、香港。 https://metrics.torproject.org/userstats-relay-country.html Tor的运营系列数据 牢记:中国还是一个人均中位数年收入只有2.2万元、90%的三口之家年收入低于20万、20%的三口之家年收入低于1万8的发展中大国。 全国人均GDP尚未达到1万美元(欧洲落后地区水平),最富裕的京沪人均GDP也刚摸到2万美元门槛(欧洲中等偏下水平) 美国家庭收入中位数是42万人民币(税前),家庭税前年收入75万人民币可以打败3/4的美国家庭,120万可以打败90%,160万可以打败95%(2017-2018,基于2014美国普查数据预估,如下图) 超低生育率养成记:  https://mp.weixin.qq.com/s/C80z...

树莓派打造淡入闹钟,让电台轻轻的叫你起床

 原文地址:https://www.hscbook.com/article/raspberrypi-alarmclock/,对作者表示感谢 16年入了一个树莓派B+版折腾了一下就放在角落里积灰了,我这天天总睡懒觉的人被冰冷的闹钟吓得激醒是非常痛苦的,某天打扫房间发现了被我打入冷宫的树莓派就顺手拿出来打造成淡入闹钟+晨起天气预报+晚间电台播放。 简介 · 早上7点定时从低音量的 青苹果 电台(早上电台没有节目,只有音乐)逐步提升音量轻轻的音乐声叫你起床,3分钟后语音播放今天的天气预报,一个小时后结束播放。 · 晚上10点开始低音量播放 青苹果 电台(现在电台播放情感节目)提醒你准备碎觉了,最后一个小时候结束播放并对你说声晚安! 准备工作 必要材料 1.男/女,聪明大脑一块 2.五指手一双 3.能上网的树莓派一个 4.音响一套 安装树莓派系统 本文采用的是树莓派官方指定系统,小白of圣手党推荐使用好方便照葫芦画瓢是吧。 这里就不教了,网上一搜一大堆的教程。 ·  百度经验 ·  树莓派入手体验和系统安装 ·  树莓派入门之装系统 安装必要程序 Vlc 播放器 执行 sudo apt-get install vlc Mplayer 播放器 执行 sudo apt-get install mplayer Cron 计划任务 执行 sudo apt-get install cron 开始部署 获取代码 下载我上传的代码  Github   Coding 将 Morning 文件夹上传到树莓派的 Home 文件夹里 修改文件 申请和风天气KEY  申请地址 ,申请百度开发者语音转换a/s key  申请地址 修改 Morning/weather.py 文件第31/65行处的“和风天气KEY”替换为你的和风天气KEY 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 ... else : fp = open(fn, 'w' ) url_city = 'http...

产品随想 | 周刊 第40期:献出心脏,直到高墙倒塌

标题来自本期的一个链接,觉得充满理想主义,献给大家! Products Movie Robot   https://github.com/pofey/movie_robot 定时自动从豆瓣电影的想看、在看、看过中获取影音信息,然后去PT站(支持多家站点)自动检索种子,找到最佳资源后按豆瓣电影分类提交到BT下载工具下载。在下载前,会自动检查你的Emby中是否已经存在。 工具超赞,一次搭建,可以很长一段时间躺平,但针对我这样对4K、HDR有高要求用户,可能不大行 Plash   https://github.com/sindresorhus/Plash Make any website your Mac desktop wallpaper 将任意网站,定义为Mac桌面 https://github.com/sindresorhus/Plash/issues/1,网友给的一些网站,也比较有意思 HomeBank   http://homebank.free.fr/zh/index.php 自由、开源的会计软件 GnuCash   https://www.gnucash.org/ https://github.com/Gnucash/gnucash 自由开源,多平台的财务软件,且有很好看的官方App,since 1998 beancount   https://github.com/beancount/beancount Beancount: Double-Entry Accounting from Text Files. 纯文本的复式记账工具 rimerc: rimer's dictionary & config   https://github.com/Bambooin/rimerc Rime输入法在各个平台的配置 Natural Selection Labs   https://github.com/NaturalSelectionLabs DIYGod主导的聚焦Web3的项目,非常有雄心,保持关注! PineTab   https://www.pine64.org/pinetab/ The Open Source ARM 64-bit Tablet 自由开源的64位平板电脑(在28...

产品爱好者周刊 第7期:1984

 产品爱好者周刊 第7期 Products Procreate: 艺术创作App https://procreate.art/ 与iPad, Apple Pencil搭配,可以创作出十分绚烂的画作 Callin: a social podcasting app. iPhone only for now. 创始人是PayPal的COO,红杉A轮 The Motley Fool:  https://www.fool.com/ 查看公司财报数据电话会议纪要 Pantherbar Windows上的PopClip Rivos Inc:  https://semianalysis.substack.com/p/rivos-inc-a-chip-off-the-old-block 一家RISC-V创业公司,创始工程师团队非常豪华,都有几十年的芯片设计经验 BackUp: https://archive.md/79FWx https://poet.so/ 将Twitter转换为好看的截图(预设模板) Ventoy: https://github.com/ventoy/Ventoy U盘启动制作工具,几乎能启动所有的系统 Thread Reader: https://threadreaderapp.com/ 能将Twitter Thread转化为一个完整的网页Link,以方便按顺序查看 可以通过在Twitter里@+unroll,来触发,会得到一条私信链接 Design 台积电发展历程的可视化: https://theinitium.com/project/20210915-project-taiwan-tsmc-semiconductor-history/ 端传媒可能是最好的中文互联网媒体了 News Privateer Space:Steve Wozniak准备新开的太空公司,充满期待,这是一个热爱开源、分享的技术大师 https://www.businessinsider.com/steve-wozniak-privateer-space-company-elon-musk-apple-cofounder-2021-9 Ideas Apple's Mistake:  http://paulgraham.com/apple.html 备份链...

Steve Jobs on the iTunes Music Store: The Unpublished Interview

A candid talk with Apple's CEO on a landmark day in its history. By Laura Locke  |  Wednesday, December 7, 2011 at 1:15 am Steve Jobs announces the iTunes Music Store. On April 28th, 2003, moments before I was about to interview Steve Jobs at San Francisco’s Moscone Center, I was jittery. Anticipation? Nerves? Excitement? You bet. All of those visceral emotions were firing. Knowing Jobs’ storied reputation as an irascible and exacting Silicon Valley CEO had me on edge. But I had prepared a tight set of questions. Secretly, I was hoping he might enjoy the line of inquiry. In turn, I would have a lively and candid report for my editors at TIME. What I didn’t know was that the interview was taking place on what would turn out to be one of the most important days in Apple’s history: The launch of the iTunes Music Store. Once again, Ste...

2018各行业应届生薪资不完全样本往期汇总-职场红领巾

文章来源自职场红领巾公众号2018.4.21日推送,在此表示感谢 产品岗 百度商业产品 14K*14 拼多多产品管培 12K*14 今日头条产品 16K*18 头条PM整个Package接近300K/年 美团产品Offer 14K*16 base上海 百度产品研究生 11.5K*14.6 base 上海 京东产品17K*13 百度产品 220K/年 网易 产品培训生 硕士 15K*18 SP base杭州 不知名互联网公司校招PM 12K*15 base北京 技术岗 微软 软件工程师 本科 260K/年 蚂蚁金服算法工程师 20K*16 拼多多开发本科400K/年 商汤科技本科技术岗 14K/月 税前 海康威视研究院 算法工程师 220K/年 微信算法岗 SP 360K/年 的package 今日头条 程序员 研究生 10K/月 base北京 滴滴程序员 16K*16 亚马逊 小四年经验 研发 50K/月 Facebook应届毕业生  软件开发工程师   打包 115k$/年(30%-40%税) base湾区 京东算法 普通Offer 234K/年 运营岗 滴滴北京运营岗 硕士 12K*15 奖金另算 网易游戏运营 150K/年 左右 网易运营 8K*13(奖金0~3个月) 网易新闻运营8K/月 腾讯游戏运营 本科6K/月 上海京东时尚本科8K/月 京东运营岗 11K/月 base北京亦庄总部 今日头条 渠道营销运营 6K/月(加房补) 网易考拉 活动运营 13K*16 OFO城市运营管培13K*14 爱范儿运营 8K/月 滴滴长三角某二线城市运营管培生 薪资 7.6K*13 +每个月40%绩效 货车帮 数据运营 12K/月 卡宾电商 管培 10K/月 含浮动绩效 曹操专车 运营管培生  加各种补贴税前5.4K/月  base杭州 京东金融海龟回来8K/月 北京蓝港互动...

万物皆可RSS

All Credit to: 原作标题:可能是目前最全的RSS订阅源了 原作链接:https://www.runningcheese.com/rss-subscriptions 以下为节选: 一般网站和博客: 1). 通常在顶部菜单、右侧菜单、底部菜单等地方会有RSS图标。 2). 如果没有,可以尝试在网站地址后面加上/rss或者/feed,有时会出现在二级域名里。 3). 如果还没有,可以使用奶酪制作的小书签来自动查找RSS订阅源, 订阅到Feeder  , 订阅到Inoreader , 订阅到Feedly 4). 如果还是没有,可能网站没有提供RSS订阅。可以借用  Fivefilters.org  或者  Feedity.com 来制作订阅源。 5). 对于一些只提供了摘要RSS的网站,可以使用  FeedEx.Net  来制作全文RSS。 论坛: 一般会有 RSS 图标,如果没有,在网址后面加上 ?mod=rss。 比如网址  http://bbs.kafan.cn/forum-215-1.html ,其 rss 地址为  http://bbs.kafan.cn/forum-215-1.html?mod=rss 微博: https://rsshub.app/weibo/user2/博主ID,比如  https://rsshub.app/weibo/user2/1195230310 微信公众号: 在  瓦斯阅读  搜索要订阅的公众号名称,就会有专门的RSS订阅地址。 简书: https://rsshub.app/jianshu/user/作者ID,比如  https://rsshub.app/jianshu/user/yZq3ZV B站: https://rsshub.app/bilibili/user/video/UP主ID,比如  https://rsshub.app/bilibili/user/video/2267573 贴吧: 精品贴订阅:https://rsshub.app/tieba/forum/good/贴吧吧名(支持中文),比如  ht...

树莓派3开无线热点变身为智能无线网关(IPv4+IPv6)

原文地址 树莓派3开无线热点变身为智能无线网关(IPv4+IPv6) ,对作者表示感谢 无线上六维不是梦,折腾了两天终于终于弄好了~撒花~ 这个暑假一直在外实习,回到学校发现实验室已经没有了我的位置。。悲催的被赶到另一个实验楼,这个实验楼主要放的是各种服务器,因此IP比较紧张,以前我自带一个交换机,IP地址随便用,而且都是有线,IPv6默认都可以用,但这边我只分得一根网线,只有一个固定的IPv4的IP,倒是IPv6没有限制(不过后来测试发现还是有些限制)。对于我这么多设备根本不够用嘛。正好看到树莓派3上市了,自带wifi,CPU升级到A53,是服务器级的U了,立刻买了一个回来,当作我的网关。 这里我用树莓派搭的其实是一个NAT的路由器,把WAN的ipv4和ipv6都共享给内网LAN ,由于是在学校,我的IPv4的地址是固定的,而IPv6的地址动态分配(前缀是固定的),所以不要盲目跟着教程做。这里使用的树莓派是3代树莓派,系统是2016-09-23的raspbian jessie,板载wifi,不需要考虑驱动的问题,如果不是,那么先自行解决驱动问题,这里WAN外网是eth0,LAN内网是无线wlan0,如果接口不一致请自行替换,后面不再做解释。 准备工作 整个过程分为两步,先开IPv4的热点access point,再共享IPv6的热点access point,热点都不是采用bridge方式进行的连接。 固定IP(IPv4) 后面的树莓派默认使用dhcpcd进行ip的配置,因此网上好多关于配置树莓派固定IP的方法都是有点问题(很早的时候是配置/etc/network/interfaces), 我们现在配置dhcpcd的配置文件进行固定IP的配置 ,打开配置文件/etc/dhcpcd.conf 1 sudo vim /etc/dhcpcd. conf 里面内容不少,感兴趣可以查一下,这里直接拖到最下,根据自己的情况加入下面的内容 1 2 3 4 interface eth0 static ip_address= 211.187 .224 .79 / 24 static routers= 211.187 .224 .16 static domain_name_servers...

产品随想 | 周刊 第103期:站在艺术和科学的交会点

"If work is to become play, then tools must become toys." 30-plus years of HyperCard, the missing link to the Web   https://arstechnica.com/gadgets/2019/05/25-years-of-hypercard-the-missing-link-to-the-web/ 其中最宝贵的是这句教训:"I grew up in a box-centric culture at Apple. If I'd grown up in a network-centric culture, like Sun, HyperCard might have been the first Web browser. My blind spot at Apple prevented me from making HyperCard the first Web browser." MOVIE-WEB   https://github.com/movie-web/movie-web A small web app for watching movies and shows easily 随机搜索了下,命中率非常高,很好用诶 LunarBar 的开发   https://github.com/LunarBar-app/LunarBar/blob/main/DEV.md 用心的文档,能够看到 NeXT HQ   https://allaboutstevejobs.com/pics/pics_places/next/next_hq 可惜没有看到传说中的悬浮楼梯 Peter Q. Bohlin   https://en.wikipedia.org/wiki/Peter_Bohlin?useskin=vector 这位居然参与了这么多Apple Store的设计!!! The San Remo's board voted in 2000 to impose a six-month time limit for apartment renovations, imposing heavy fines on resid...

[海外建筑生活] MIT建筑系

原文链接: [海外建筑生活] MIT建筑系 发表于:寄托天下 2009-1-18 作者:dadazhe 前些日子和版大聊天,他让我写点关于mit的情况. 趁着寒假的尾巴,随便介绍点. mit的建筑系分为marchI marchII 和Smarch, 分别是三年半,两年半和两年. 前两这都是naab认证的,也就是说毕业以后可以考注册建筑师. smarch比较特殊,分为五个方向,你必须选择一个,分别是 urbanism, computation, theory&history, building technology, visual arts.