密码学
十代.
初学者小白
展开
-
Java实现Vigeneral密码的加密、解密
一、定义Vigenere密码是基于关键词的加密系统。关键词写在明文的下面(或上面),并不断重复书写,形成密钥流。并使得每个明文字母都与一个关键字的字母关联。举例:密钥:key=(21,4,2,19,14)明文:‘ciphertext’二、直接上代码吧package com.qlu.java1;import java.util.Scanner;/** * @author Dxkstart * @create 2021-06-04 23:21 */public class Vi原创 2021-06-05 13:06:10 · 366 阅读 · 1 评论 -
Java实现欧拉函数的计算
前言在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(因此φ(1)=1)。此函数以其首名研究者欧拉命名(Euler’s totient function),它又称为Euler’s totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。话不多说,直接上代码:package com.qlu.java1;import java.util.Scanner;/**原创 2021-05-30 19:55:26 · 873 阅读 · 10 评论 -
Java实现仿射变换的加密、解密、破译
1、加密加密函数:E(m) = (k1 * m + k2)mod 26 ---->(以英文为载体,有26个字母)注意:其中k1与26互为质数2、解密解密函数:D© = k1^-1(c - k2)(mod 26)—>k1^-1是k1的乘法逆元素重点:求k1的乘法逆元素3、破译要求:已知密文,求明文未知:密钥 k1、k2k1与26互为质数,且k1<26故,k1可穷举,1,3,5,7,9,11,15,17,19,21,23,25k2为正整数,且k2<26.所以原创 2021-05-26 16:12:25 · 2054 阅读 · 2 评论 -
Java实现中国剩余定理的求解
中国剩余定理概念:孙子定理是中国古代求解一次同余式组(见同余)的方法。是数论中一个重要定理。又称中国余数定理。一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作《孙子算经》卷下第二十六题,叫做“物不知数”问题,原文如下:有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?即,一个整数除以三余二,除以五余三,除以七余二,求这个整数。《孙子算经》中首次提到了同余方程组问题,以及以上具体问题的解法,因此在中文数学文献中也会将中国剩余定理称为孙子定理。中国剩余定理的用途中原创 2021-05-21 21:28:56 · 1191 阅读 · 5 评论 -
Java实现凯撒密码--->加密、解密、破译
Kaiser密码小程序概念:在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。恺撒密码通常被作为其他更复杂的加密方法中的一个步骤,例如维吉尼亚密码。恺撒密码还在现代的原创 2021-05-21 00:06:05 · 1541 阅读 · 1 评论