热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2020CTF暑假夏令营培训Day2密码学Crypto部分笔记

Day2密码学-Crypto架构研究内容有:信息m的加密A、解密B、加密后的信息C(第三方是否可窃取)。密码的分类:古典密码(关注算法的机密性,一般是置换和代换,打乱顺序,变量映射



Day2密码学 - Crypto

架构


  • 研究内容有:信息m的加密A、解密B、加密后的信息C(第三方是否可窃取)。
  • 密码的分类:古典密码(关注算法的机密性,一般是置换和代换,打乱顺序,变量映射等),现代密码(假设算法大家都知道,关注信息本身的复杂度)
  • 序列密码,核心为PRNG(伪随机数生成器)生成伪随机数序列,通过加密函数与明文加密生成密文,解密时生成一样的序列,用逆函数运算。

古典密码


  • 历史:斯巴达密码棒,凯撒,维吉尼亚,希尔Hill,山农shannon,公钥ECC,DES,然后RSA,DSA,ECDSA,AES。
  • 斯巴达密码棒(缠绕纸打乱。栅栏密码,置换密码只换顺序不换映射)
  • 单表替换密码(明文->算法=密文,双方保管共同算法)
    凯撒密码((明文+3)%26)
    猪圈密码(共济会密码,字母映射为各种符号)
    CTF中那些脑洞大开的编码与加密(与佛论禅,社会主义核心价值观编码,Ook!,Rrainfuck,Jsfuck,云影密码,跳舞的小人,键盘密码等)
    简单替换密码(通过密钥替换,可以统计字母频率解密)
  • 多表替换密码
    维吉尼亚(明文+密钥->=密文,横纵坐标替换。破解时发现周期性的偏移量是固定的,转换为多组单表替换。只需要爆破密钥长度即可,此方法为卡斯基检测法。)
    xnuca2018baby(吻合指数,正常文章为0.66,统计字母频率,)

现代密码


  • RSA,基于整数分解(
    欧拉函数φ(n),模n下与n互素的整数个数。
    欧拉定理,若gcd(a,n)==1, 则a^φ(n)%n==1。
    模逆,即该数的逆元,一般用拓展欧几里得求。
    指数,gcd(a,n)==1, 若满足a^e%n==1的最小整数e,即a对%n的指数ord(a), 如果该数==φ(n), 则a称为原根。)。
  • RSA,最著名的非对称算法。
    对于需要加密的信息flag,将其以某种形式转化为数字m(m即明文)。
    寻找两个大素数p,q满足n=p*q, n>m,寻找一个整数e,满足gcd(e, φ(n))=1。
    计算e%φ(n)下的逆元d,则有e*d%φ(n)==1。(n, e)作为公钥,d作为私钥。
    加密时,密文c = m^e%n。解密时,明文m=c^d%n。
  • 常见套路:n可以直接分解(factordb/yafu进行分解,毕竟rsa无解)。e过小(直接开根)

02:33:45



推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
author-avatar
绿茶2602921445
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有