密码系统
文章平均质量分 94
有关密码系统的博客
海岛Blog
专注于程序设计及其竞赛,专注于集成电路EDA设计
展开
-
PHP语言的RSA算法加解密程序
程序来源是GitHub的PHP RSA 公钥私钥不对称加密。Rsa.php程序如下:<?php/** * RSA 公钥 私钥加密 解密 尝试 * @author wang */class Rsa { private $_config; function __construct() { $rsa_config = array();转载 2016-05-26 06:26:18 · 1057 阅读 · 0 评论 -
Modular Multiplicative Inverse(模乘逆元)
计算模乘逆元原理上有四种方法:1.暴力算法2.扩展欧几里得算法3.费尔马小定理4.欧拉定理模乘逆元定义:满足 ab≡1(mod m),称b为a模乘逆元。以下是有关概念以及四种方法及程序。文章出处:Modular Multiplicative InverseThe modular multiplicative inverse of an integer a mod转载 2016-05-14 20:33:46 · 6959 阅读 · 0 评论 -
B00007 快速模幂运算的两个C语言程序
代码来自维基百科的Modular arithmetic。这两段代码都不是大整数计算的程序,是2进制64整数的计算程序,数据不能大于2进制63位。两段代码分别如下:uint64_t mul_mod(uint64_t a, uint64_t b, uint64_t m){ uint64_t d = 0, mp2 = m >> 1; int i; if (a >= m)转载 2016-05-16 18:41:58 · 1585 阅读 · 0 评论 -
扩展欧几里得算法与模乘逆元的程序
代码来自维基百科的Extended Euclidean algorithm。扩展欧几里得算法程序:function extended_gcd(a, b) s := 0; old_s := 1 t := 1; old_t := 0 r := b; old_r := a while r ≠ 0 quotient := old_r转载 2016-05-16 19:03:50 · 1900 阅读 · 0 评论 -
C++实现的Miller-Rabin素性测试程序
Miller-Rabin素性测试算法是概率算法,不是确定算法。然而测试的计算速度快,比较有效,被广泛使用。另外一个值得介绍的算法是AKS算法,是三位印度人发明的,AKS是他们的姓氏首字母。ASK算法是确定算法,其时间复杂度相当于多项式的,属于可计算的算法。代码来自Sanfoundry的C++ Program to Implement Miller Rabin Primality Tes转载 2016-05-18 16:52:27 · 5705 阅读 · 1 评论 -
大整数分解算法
重读维基百科整理。特殊分解算法:试除法(Trial division)轮式因子分解法(Wheel factorization)Pollard's rho算法(Pollard's rho algorithm)代数群因子分解算法(Algebraic-group factorisation algorithms),包括:·Pollard's p-1算法(Pol原创 2016-05-09 01:39:05 · 13344 阅读 · 1 评论 -
素性测试AKS算法程序
AKS算法,是三位印度人发明的,AKS是他们的姓氏首字母。ASK算法是确定算法,其时间复杂度相当于多项式的,属于可计算的算法。另外需要了解的是Miller-Rabin素性测试算法。该算法不是确定算法。然而测试的计算速度快,比较有效,被广泛使用。代码来自rosettacode.org的AKS test for primes。C语言程序代码如下:#include #include转载 2016-05-19 13:30:23 · 8606 阅读 · 0 评论 -
素性测试算法
判定一个整数是否为素数即为素性测试(Primality test)。素性测试的算法分为确定型启发式算法和随机算法。随机算法:费尔马素性测试法(Fermat primality test)Miller-Rabin素性测试法(Miller–Rabin primality test)Solovay–Strassen素性测试法(Solovay–Strassen prim原创 2016-05-19 22:52:36 · 6708 阅读 · 0 评论 -
Java实现的大整数分解Pollard's rho算法程序
这个程序是从英文版维基百科的链接中看到的。代码来自PollardRho.java。程序如下:/****************************************************************************** * Compilation: javac PollardRho.java * Execution: java Polla转载 2016-05-19 23:45:04 · 1868 阅读 · 0 评论 -
C++实现的大整数分解Pollard's rho算法程序
代码来自GeeksforGeeks的Pollard’s Rho Algorithm for Prime Factorization。C++语言程序代码如下:/* C++ program to find a prime factor of composite using Pollard's Rho algorithm */#includeusing namespace std;转载 2016-05-19 23:56:05 · 1566 阅读 · 0 评论 -
B00008 C++实现的大整数计算(一)
程序来自:BigInteger。源程序如下:/* * @author panks * Big Integer library in C++, single file implementation. */#include #include #include #include #define MAX 10000 // for stringsusing namespace转载 2016-05-22 22:39:20 · 1047 阅读 · 1 评论 -
RSA的JavaScript程序
代码来自维基百科的RSA (cryptosystem)。RSA的JavaScript程序如下:'use strict';/** * RSA hash function reference implementation. * * @namespace */var RSA = {};/** * Generates an RSA hash * https://en.wiki转载 2016-05-16 18:29:50 · 1240 阅读 · 0 评论 -
C语言实现的RSA算法程序(使用GMP)
这个程序使用了GMP包,所以程序比较简洁,并且几乎不论多大的整数都可以计算。代码来自rosettacode.org的RSA code。C语言程序如下:#include #include #include #include int main(void){ mpz_t n, d, e, pt, ct; mpz_init(pt); mpz_ini转载 2016-05-20 00:14:26 · 7424 阅读 · 8 评论 -
C语言实现的RSA算法程序
源程序来自Gethub的Simple implementation of the RSA algorithm。程序中有关类型转换代码略做修改,并且已经能够编译运行。程序如下:#include #include #include #include #define ACCURACY 5#define SINGLE_MAX 10000#define EXPONENT_MAX转载 2016-05-23 10:00:12 · 14715 阅读 · 0 评论 -
模乘逆元与孙子定理
孙子定理也称为中国剩余定理。《孙子算经》卷下第二十六题(“物不知数”问题):有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?孙子定理讲的是求解一元线性同余方程组的方法。有人指出,孙子定理有以下5种解法:1.枚举法2.解不定方程法3.逐级满足法4.化为相同除数的同余式法5.经典同余式方程组解法据说最为简洁快速的是第4种方法。这里介绍的程序为第5种解法。要得到解x,首先需要计算模乘逆...原创 2016-04-27 19:10:12 · 1638 阅读 · 0 评论