AES算法
AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,用于保护电子数据的安全。它由美国国家标准与技术研究院(NIST)于2001年发布,取代了过时的DES(Data Encryption Standard)。 AES基本特性 对称加密:加密和解密使用相同的密钥。 分组加密:每次处理固定长度的数据块(128位,即16字节)。 密钥长度:支持128位、192位和256位密钥,对应不同安全性级别。 轮数:根据密钥长度决定轮数: 128位密钥:10轮 192位密钥:12轮 256位密钥:14轮 二、AES加密流程1. 初始变换 2. 主轮循环SubBytes(字节代换) 通过16 × 16...
DES加密算法
一、DES算法背景DES(Data Encryption Standard,数据加密标准)是一种对称密钥加密算法,由IBM在1970年代设计,并于1977年被美国国家标准与技术研究院(NIST)采纳为联邦标准。尽管DES在历史上具有重要意义,但由于其密钥长度较短,现已被AES(Advanced Encryption Standard)等更安全的算法取代。 二、DES的核心特点 对称加密 加密和解密使用相同的密钥,需通过安全渠道共享密钥。 分组加密 将明文分为64位的数据块进行加密,密钥长度为56位(实际输入64位,含8位校验位)。 Feistel结构 采用16轮迭代的Feistel网络结构,每轮处理一半数据块,通过置换、替换和密钥混合实现混淆与扩散。 三、 DES的加密流程1.初始置换(IP)置换 将输入的64位明文块按初始置换表进行置换和重新排列,生成新的64位数据块,分为左半部分L0和右半部分R0 2. 16轮Feistel轮函数 扩展置换(E盒): 将32位右半部扩展到48bit 与轮密钥ki异或:...
RSA加密算法
一、RSA算法概述RSA(Rivest-Shamir-Adleman)是首个实用的非对称加密算法,基于 大数分解难题 的非对称加密,核心是生成公钥(加密)和私钥(解密)的数学关系。主要步骤如下: 密钥生成 加密过程 解密过程 图1:RSA算法示意图 二、数学基础 模运算:若 a ≡ b mod n,则 a 和 b 在模 n 下同余 欧拉定理:若 a 与 n 互质(即 gcd(a, n) = 1), aT(n) ≡ 1 mod n 其中,T(n) 是欧拉函数,表示小于 n 且与 n 互质的正整数的个数。 欧拉函数:若 n = p × q,且 p 和 q 为质数,则:T(n)=(p−1)(q−1) 三、RSA算法详细步骤1. 密钥生成步骤分解 选择大质数 随机选取两个不相等的大质数 p 和 q(实际使用至少1024位) 示例:p = 61,q = 53。 计算模数n n = p * q 示例:n = 61 × 53 = 3233。 计算欧拉函数值T(n) ...
对称密钥密码体制
对称加密(Symmetric Cryptography)是一种使用相同密钥进行加密和解密的密码学方法。与非对称加密不同,对称加密的加密方和解密方必须共享同一个密钥。以下是其核心原理、应用及特点: 核心原理 单一密钥 加密和解密使用同一个密钥(称为对称密钥) 密钥必须通过安全渠道共享,否则可能被窃取。 加密流程 明文 + 密钥 → 加密算法 → 密文。 密文 + 密钥 → 解密算法 → 明文。 常见算法 AES(Advanced Encryption Standard): 目前最广泛使用的对称加密算法,支持128/192/256位密钥。 基于替换和置换操作(如SubBytes、ShiftRows),高效且安全。 被美国政府选为标准(如保护机密信息)。 DES(Data Encryption...
公钥密码体制
产生原因在对称密钥密码体制中,加解密双方要共享同一个密钥。如何才能做到这一点呢?容易想到的两种方法: (1)双方事先约定同一密钥,这将给密钥的管理和更换带来极大的不便 (2)使用信使来传送密钥,对于高度自动化的大型计算机网络,使用信使来传送密钥显然是不合适的。尽管使用复杂但高度安全的密钥分配中心KDC可以解决该问题,但是采用公钥密码体制可以比较容易地解决该问题。 公钥密码体制使用不同的加密密钥和解密密钥,其概念是由Stanford大学的研究人员Diffie和Hellman于1976年提出的。 公钥:公开给任何人,用于加密数据或验证签名,称为公钥PK 私钥:严格保密,用于解密数据或创建签名,称为私钥SK 加密算法𝑬和解密算法𝑫都是公开的。 公钥密码体制的加密/解密过程的一般表示式 DSK(EPK(X))加密和解密运算可以对调 EPK(DSK(X)) 𝑷𝑲只能用来加密,而不能用来解密—-DPK(EPK(X)) ≠ X由于从公钥𝑷𝑲不能推导出私钥𝑺𝑲,并且𝑷𝑲不能用来解密,因此𝑷𝑲可以是公开的。 ...
Twikoo私有部署
在自己的服务器端部署Twikoo 服务端下载安装Node.js一键式安装Node.js 123456789cd /tmp && wget https://nodejs.org/dist/latest/node-v23.8.0-linux-x64.tar.xztar xf node-v23.8.0-linux-x64.tar.xzmv node-v23.8.0-linux-x64 /usr/local/nodeln -s /usr/local/node/bin/node /bin/nodeln -s /usr/local/node/bin/npm /bin/npmecho 'export PATH=/usr/local/node/bin:$PATH' >> /etc/profilesource /etc/profilenode -vnpm -v 安装Twikoo server1npm i -g tkserver 根据需要配置环境变量 启动 Twikoo server12tkserver# Linux 服务器可以用 nohup...
使用Hexo+阿里云ECS从零搭建个人博客
最近买了一个阿里云服务器,尝试将Hexo部署到阿里云上,这里提供一个参考 购买阿里云服务器这个比较简单,会花钱就行,尽量找一个新注册的账号,这样可以花几十大洋 就可以购买一年的阿里云服务器 配置阿里云服务器阿里云服务器的配置很简单,主要有:重置实例密码和配置安全组策略等配置好之后,复制一下公网 IP,就可以开始建站了。 服务端安装Node.js一键式安装配置Node.js 123456789cd /tmp && wget https://nodejs.org/dist/latest/node-v23.8.0-linux-x64.tar.xztar xf node-v23.8.0-linux-x64.tar.xzmv node-v23.8.0-linux-x64 /usr/local/nodeln -s /usr/local/node/bin/node /bin/nodeln -s /usr/local/node/bin/npm /bin/npmecho 'export PATH=/usr/local/node/bin:$PATH'...