华东师范大学软件学院《安全编程》课程项目 内含八个项目,分别是 Miller-Rabin, Stream Cipher, DES, AES, RSA, ECC, HASH, Digital Signature 地址参考 \(github\) ...
分类:
其他好文 时间:
2021-04-26 14:11:14
阅读次数:
0
素数(prime)也称为质数,就是除了1和它本身没有其他约数。素数的研究一直是数学界热点,人们一直在寻找素数的规律,以及是否存在一个最大的素数。当然,这不仅仅是一个纯数学问题,素数在计算机加密学中有很广泛的应用。虽然素数的定义通熟易懂,很简单,但是真正确定一个素数却很难,尤其是对于很大的数,需要很大的计算量。有很多判断一个数是不是素数的算法,这儿展示一种Rabin-Miller算法。算法原理不再介
分类:
移动开发 时间:
2021-01-02 11:45:31
阅读次数:
0
#include <string.h> #include <stdlib.h> #include <stdio.h> #include "gmp.h" #define MILLER_RABIN_TEST_NUM 5 #define PRIME_BIT 512 #define CLOCKS_PER_S ...
分类:
其他好文 时间:
2020-11-24 12:38:56
阅读次数:
6
HDU 6608 题意:给以你一个质数,求小于它的最大质数的阶乘。 分析:Miller-Rabin快速判断素性,找到这个最大素数。此外,加上威尔逊定理推式子就好了。威尔逊定理描述的内容是对于一个正素数p: ? \((k-1)!modk$\)= k-1$ 有了这个定理,我们就可以很容易得到小于k最大素 ...
分类:
其他好文 时间:
2020-07-29 00:42:21
阅读次数:
80
一. 简单的直接算法 比较次数:(n-m-1)*m次 时间复杂度O(mn) 二. Rabin-karp算法 算法思想:将字符串转化成数字进行粗比较,筛选后进行细比较 算法设计: (1)直接数值比较 算法思想:字符集与 1-n 的数值满足双射,字符串转化为n进制数值 优化程度:a. 比较次数:n-m次 ...
分类:
编程语言 时间:
2020-06-25 18:00:36
阅读次数:
68
前言:我们有时常会用到JObject对象接受数据,并通过JObject快速获取指定key的值,顺序的话是没有问题的,但是假如你遇到如下的JObject对象,该怎么快速获取数据呢? { "details": { "threeds2.fingerprint": "123" }, "paymentData ...
分类:
其他好文 时间:
2020-06-16 18:14:31
阅读次数:
90
数论相关 质数测试 Miller-Rabin随机质数测试算法 Rust实现 记有一个待测试奇自然数a, 及测试总轮数s. Miller-Rabin算法有如下定理: 如果n是一个奇合数, 那么测试n为合数的证据的数据至少为$(n-1)/2$; 对于任意$a \gt 2$的奇数和正整数s, Miller ...
分类:
其他好文 时间:
2020-05-27 01:28:36
阅读次数:
93
最简单直观简单的素数判定方法就是试除法。对于判断数n是否是素数,我们从2开始一直到sqrt(n)。如果找到一个因子则判断n不是素数,否则是素数。代码如下: bool isPrime( long long n ) { for(long long i = 2; i*i <= n; i++) { if(n ...
分类:
编程语言 时间:
2020-04-13 19:52:32
阅读次数:
53
Xamarin.Form框架并没有提供指纹认证功能,需要分平台实现! Android的Fingerprint Authentication 参考:https://docs.microsoft.com/zh-cn/xamarin/android/platform/fingerprint-authent ...
分类:
其他好文 时间:
2020-04-10 19:53:23
阅读次数:
102
Miller-Rabin素性判定算法是一种基于概率的判定算法,每次判定n是素数的正确性概率至少为75%,出错的概率小于25%。 如果对n进行k次素性检测,如果结果n为素数,那么n为合数的概率为1/(4^k)。如果k足够大,那么误判的概率就非常小。 算法原理如下: #include <iostream ...
分类:
编程语言 时间:
2020-03-24 19:09:53
阅读次数:
122