<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://youzi258.github.io/</id><title>youzi</title><subtitle>密码学学习记录</subtitle> <updated>2026-09-08T00:20:19+08:00</updated> <author> <name>youzi</name> <uri>https://youzi258.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://youzi258.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="zh-CN" href="https://youzi258.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 youzi </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>2026上海市网络安全初赛wp</title><link href="https://youzi258.github.io/posts/2026%E4%B8%8A%E6%B5%B7%E5%B8%82%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E5%88%9D%E8%B5%9Bwp/" rel="alternate" type="text/html" title="2026上海市网络安全初赛wp" /><published>2026-09-08T00:00:00+08:00</published> <updated>2026-09-08T00:20:05+08:00</updated> <id>https://youzi258.github.io/posts/2026%E4%B8%8A%E6%B5%B7%E5%B8%82%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E5%88%9D%E8%B5%9Bwp/</id> <content type="text/html" src="https://youzi258.github.io/posts/2026%E4%B8%8A%E6%B5%B7%E5%B8%82%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E5%88%9D%E8%B5%9Bwp/" /> <author> <name>youzi</name> </author> <summary>bad_share shamir秘密共享，给出了9个份额，其中有两份是错的，门限是5。可以枚举 $C_{9}^{5}$ 种情况恢复秘密，计算恢复成功的概率： [P=1- \frac{2\cdot C_{7}^{4}+C_{7}^{3}}{C_{9}^{5}}=\frac{21}{126}] 所以会有21种情况恢复成功，将恢复成功的秘密解码即可 exp： from itertools import combinations p=6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151 shares=[(4, ...</summary> </entry> <entry><title>AES算法简介</title><link href="https://youzi258.github.io/posts/AES%E7%AE%97%E6%B3%95%E7%AE%80%E4%BB%8B/" rel="alternate" type="text/html" title="AES算法简介" /><published>2026-08-23T00:00:00+08:00</published> <updated>2026-08-23T00:46:56+08:00</updated> <id>https://youzi258.github.io/posts/AES%E7%AE%97%E6%B3%95%E7%AE%80%E4%BB%8B/</id> <content type="text/html" src="https://youzi258.github.io/posts/AES%E7%AE%97%E6%B3%95%E7%AE%80%E4%BB%8B/" /> <author> <name>youzi</name> </author> <summary>目录 AES算法描述 数学基础 设计思想 基本变换 密钥扩展 加密过程 解密过程 常见攻击手段 一、AES算法概述 1.发展背景 1997年4月15日，美国ANSI发起征集AES (Advanced Encryption Standard) 的活动,并为此成立了AES工作小组。此次活动的目的是确定一个非保密的、可以公开技术细节的、全球免费使用的分组密码算法，以作为新的数据加密标准。 对AES的基本要求是：比三重DES快，至少与三重DES一样安全，数据分组长度128bit，密钥长度为128/192/256bit，可应用于公共领域并免费提供，应至少在30年内是安全的。 2000年10月，Rijndael算法凭借其安全性、高效率、可实现和使用灵活等优点成为美国新的高级加密标准(AES) Rijndael算法的原型是Square算法，它的设计...</summary> </entry> <entry><title>DES算法简介</title><link href="https://youzi258.github.io/posts/DES%E7%AE%97%E6%B3%95%E7%AE%80%E4%BB%8B/" rel="alternate" type="text/html" title="DES算法简介" /><published>2026-08-15T00:00:00+08:00</published> <updated>2026-08-15T00:00:00+08:00</updated> <id>https://youzi258.github.io/posts/DES%E7%AE%97%E6%B3%95%E7%AE%80%E4%BB%8B/</id> <content type="text/html" src="https://youzi258.github.io/posts/DES%E7%AE%97%E6%B3%95%E7%AE%80%E4%BB%8B/" /> <author> <name>youzi</name> </author> <summary>DES概述 DES算法描述 DES变种 DES的常见攻击方法 一、DES概述 数据加密标准（Data Encryption Standard，DES）是世界上最广泛使用的一种分组密码算法。它由IBM公司在20世纪70年代研发。但随着密码分析技术和计算能力的提高，DES算法不再安全。在2000年，DES算法被更安全的AES算法取代。 DES算法是一种典型的Feistel结构的分组密码算法，它的明文分组长度为64bit，密钥长度为64bit，其中密钥有8bit是奇偶校验，因此有效密钥长度为56bit。DES算法的加密和解密采用同一过程，它的安全性依赖于有效密钥。DES算法首先把需要加密的明文划分为每64bit的数据块，用56bit有效密钥对每64bit数据块进行加密。每次加密对输入的64bit的明文数据进行16轮的代替和置换后，输出完全不同于明文的64bit密文。 ...</summary> </entry> <entry><title>SM4算法简介</title><link href="https://youzi258.github.io/posts/SM4%E7%AE%97%E6%B3%95%E7%AE%80%E4%BB%8B/" rel="alternate" type="text/html" title="SM4算法简介" /><published>2026-07-24T00:00:00+08:00</published> <updated>2026-07-24T00:48:06+08:00</updated> <id>https://youzi258.github.io/posts/SM4%E7%AE%97%E6%B3%95%E7%AE%80%E4%BB%8B/</id> <content type="text/html" src="https://youzi258.github.io/posts/SM4%E7%AE%97%E6%B3%95%E7%AE%80%E4%BB%8B/" /> <author> <name>youzi</name> </author> <summary>目录 概述 密码部件及轮函数 算法流程 密钥扩展算法 代码实现 实例 一、概述 SM4是一种分组密码算法，由我国国家密码管理局在2012年发布，常用于无线互联网加密 等领域。 项目 数值 分组长度 128 位 密钥长度 128 位 轮数 32 轮 字长 32 位 轮密钥数量 32 个，每个 32 位 S 盒 一个固定的 8 位输入、8 位输出置换 给定： 128 位明文分组 P； 128 位主密钥 MK；...</summary> </entry> <entry><title>快速幂算法</title><link href="https://youzi258.github.io/posts/%E5%BF%AB%E9%80%9F%E5%B9%82%E7%AE%97%E6%B3%95/" rel="alternate" type="text/html" title="快速幂算法" /><published>2026-07-02T00:00:00+08:00</published> <updated>2026-07-02T12:51:25+08:00</updated> <id>https://youzi258.github.io/posts/%E5%BF%AB%E9%80%9F%E5%B9%82%E7%AE%97%E6%B3%95/</id> <content type="text/html" src="https://youzi258.github.io/posts/%E5%BF%AB%E9%80%9F%E5%B9%82%E7%AE%97%E6%B3%95/" /> <author> <name>youzi</name> </author> <summary>目录 简介 矩阵幂 线性递推 一个ctf题目 一、简介 快速幂，也称二进制取幂，可以做到在$O(\log n)$ 时间内计算$a^n$ 。 如果用连乘的方法，将$a^n$ 写成$\underbrace{ a\cdot a\cdot\cdot\cdot a }_{ n个 }$ 的形式，则需要$O(n)$的时间来计算，在n很大时无法计算 二进制取幂的想法是，将取幂的任务按照指数的二进制表示来分割成更小的任务． [!example] 假设要计算 $3^{13}$。如果将它展开为连乘式，需要 $13-1=12$ 次乘法。但是，因为 \[3^{13}=3^{(1101)_2}=3^8 \times 3^4 \times 3^1,\] 所以，只要能快速计算出 $3^1,3^2,3^4,3^8$，就能通过 2 次乘法计算出 $3^{13}$ 的值。于是...</summary> </entry> </feed>
