首页 > 其他分享 >密码工程-大素数

密码工程-大素数

时间:2023-05-31 19:33:46浏览次数:31  
标签:prime 工程 temp state number 密码 素数 gmp mpz

任务详情

  1. 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务
  2. 利大整数库(GMP或者OpenSSL),参考《密码工程》p113伪代码实现GenerateLargePrime 函数(10‘)
  3. 在测试代码中产生一个在范围l = 2^255至u = 2^256-1内的素数。(5‘)
  4. 用OpenSSL验证你产生的素数是不是正确(5’)
  5. 提交代码和运行结果截图
#include <gmp.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// Generate a random large prime number between lower and upper bounds
void GenerateLargePrime(mpz_t p, mpz_t l, mpz_t u) {
	mpz_t temp;
	mpz_init(temp);

	gmp_randstate_t state;
	gmp_randinit_default(state);
	gmp_randseed_ui(state, time(NULL));

	do {
		mpz_urandomm(temp, state, u); // Generate a random number between 0 and u
		mpz_add(temp, temp, l);       // Add l to the random number to get a number between l and u
		mpz_nextprime(p, temp);       // Find the next prime number after temp
	} while (mpz_cmp(p, u) > 0);    // Repeat until the prime number is within the range [l, u]

	mpz_clear(temp);
	gmp_randclear(state);
}

int main() {
	mpz_t l, u, p;
	mpz_init(l);
	mpz_init(u);
	mpz_init(p);

	mpz_set_str(l, "57896044618658097711785492504343953926634992332820282019728792003956564819968", 10); // Set lower bound 2^255
	mpz_set_str(u, "115792089237316195423570985008687907853269984665640564039457584007913129639935", 10); // Set upper bound 2^256-1

	GenerateLargePrime(p, l, u);

	gmp_printf("Large prime: %Zd\n", p);

	mpz_clear(l);
	mpz_clear(u);
	mpz_clear(p);

	return 0;
}

标签:prime,工程,temp,state,number,密码,素数,gmp,mpz
From: https://www.cnblogs.com/1482156703optimus/p/17447115.html

相关文章

  • IDA 逆向工程 反汇编使用
    IDApro7.0版本from:freebuf用到的工具有IDApro7.0 ,被反汇编的是百度云(BaiduNetdisk_5.6.1.2.exe)。首先,IDApro的长相如下:共有(File,Edit,Jump,Search,View,Debugger,Options,Windows,Help)9个模块,还有下面的诸多小菜单。现在我们点击File,选择Open打开一个文件,这......
  • Windows密码抓取的四种方式
    Windows密码抓取的四种方式一、SAM离线抓取1、通过reg命令无工具导出,然后下载到本地用mimikatz读取用户NTLMHashregsavehklm\samsam.hiveregsavehklm\systemsystem.hive2、通过nishang中的Copy-VSS进行复制(1)在CS中导入模块powershell-import./powershell/Copy-VSS......
  • 反素数深度分析
    今天要我要讲的是反素数,在ACM中也算是常见的考点,那么对于搞ACM的同学来说,很有必要搞清楚它,所以接下来我会很详细地讲解。在讲解反素数之前,我们先来看反素数的概念。反素数的定义:对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意的正整           数,都有,那么......
  • WPF中的密码框
    WPF中的密码框XAML文件<PasswordBoxName="PasswordBox"Margin="5"Padding="5"PreviewKeyDown="Txtpassword_PreviewKeyUp"/> 后台代码:IntPtrp=System.Runtime.InteropServices.Marshal.SecureStringToBSTR(this.Password......
  • 2023第三届生物医学与生物信息工程国际学术会议 (ICBBE 2023) 南京
    2023第三届生物医学与生物信息工程国际学术会议(ICBBE2023)20233rdInternationalConferenceonBiomedicineandBioinformaticsEngineering会议时间:2023年6月16-18日会议地点:中国·南京截稿日期:2023年6月15日稿件反馈:投稿后1-2周内检索类型:EI,Scopus第三届生物医学与生......
  • 运维工程师缺乏开发能力或者说没有开发思维可能会...
    这年头,运维人员要求要懂开发了,不信去BOSS招聘上看看,要求上都写着最好是懂Python、Golang或Java其中之一。可见,运维工程师如果不具备一点开发能力,估计是不好混呀!那为啥要求运维人员需要具备一定的开发能力呢?我认为是自动化运维和DevOps文化的兴起所致。自动化和DevOps早都是大势所......
  • 2023.5.30——软件工程站立会议(阶段二)
    站立会议内容:1.整个项目预期的任务量:目前已经花的时间:剩余的时间:2.任务看板照片: 3.团队照片: 4.产品状态:最新做好的功能:正在完成中5.燃尽图:......
  • 2023.5.30——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • 微软提示工程(Prompt Engineering)指南
    第一部分提示工程简介本文内容基本信息最佳做法空间效率后续步骤OpenAI中的GPT-3、GPT-3.5和GPT-4模型基于提示。使用基于提示的模型时,用户通过输入文本提示与模型交互,该文本提示通过文本补全进行响应。补全是模型的输入文本的延续。虽然这些模型非常强大,但它......
  • php页面加密码
    以下是一个简单的示例代码,用于在PHP页面中添加密码:<?php$password="mypassword";//设置密码if($_POST['password']!=$password){//如果表单提交的密码不正确if(isset($_POST['submit'])){//如果表单已经提交过echo"InvalidPassword";//显示错......