2018 CCPC-final K - Mr. Panda and Kakin(RSA解密) 和 第十届蓝桥省赛C++A组填空题 RSA解密(非暴力解法)

2019年蓝桥杯-RSA解密 解题步骤: 本题把数论中比较基本的几个知识点都考查到了, 暴力法质因数分解、扩展欧几里得法求乘法逆元、快速乘+快速幂求解答案。答案为:x = 579706994112328949 解题完整代码如下: #include <bits/stdc++.h> #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define _for(i,a,b) for(int i=(a);i<(b);i++) #define ll long long using n. 阅读详情

https://codeforc.es/gym/102055/problem/K

K - Mr. Panda and Kakin

题意

给出 n , c n, c n,c, n = p ∗ q n = p*q n=p∗q, p p p和 q q q是x附近相邻的两个质数, c = f 2 30 + 3   m o d   n c = f^{2^{30}+3} \ mod\ n c=f230+3 mod n。求出 f f f的值。

题解

RSA解密,令 e = 2 30 + 3 e = {2^{30}+3} e=230+3。令 r = ( p − 1 ) ( q − 1 ) r = (p-1)(q-1) r=(p−1)(q−1)
d ∗ e   m o d   r ≡ 1 d*e\ mod \ r \equiv 1 d∗e mod r≡1
c = f e   m o d   n c = f^e \ mod\ n c=fe mod n
f = c d   m o d   n f = c^d \ mod \ n f=cd mod n
可以暴力在sqrt(n)附近寻找p,q,因为两个素数差距不会很大。
已知e和r,可以解同余方程
e x + r y = 1 ex+ry=1 ex+ry=1
得出d的值。
即可以算出f的值。
此题需要用O(1)快速乘才能通过。

代码

#include <bits/stdc++.h>
using namespace std;
#define FOR0(a,b) for(int i = a; i < b; ++i)
#define FORE(a,b) for(int i = a; i <= b; ++i)

typedef long long ll;
typedef pair<int,int> pii;

inline void add(ll &a,ll b,ll c){a+=b;if(a>=c)a-=c;}
#define ld long double
inline ll mul(ll a,ll b,ll c){return (a*b-(ll)((ld)a*b/c)*c+c)%c;}
ll exgcd(ll a, ll b, ll& x, ll &y) {
	if(b == 0) {
		x = 1; y = 0;
		return a;
	}
	ll d = exgcd(b,a%b,y,x);
	y -= a/b*x;
	return d;
}
inline ll pw(ll x, ll n, ll mod) {
	ll ret = 1;
	while(n) {
		if(n&1) ret = mul(ret,x,mod);
		x = mul(x,x,mod);
		n >>= 1;
	}
	return ret;
}
int main() {
	int T;
	scanf("%d", &T);
	int ca = 0;
	ll a,b,x,y;
	a = (1<<30)+3;
	while(T--) {
		ll n,c;
		scanf("%lld%lld", &n, &c);
		ll p = sqrt(n);
		while(n%p != 0) p--;
		ll q = n/p;
		ll r = (p-1)*(q-1);
		b = r;
		exgcd(a,b,x,y);
		x = ((x%b)+b)%b;// 保证是正数
		ll f = pw(c,x,n);
		printf("Case %d: %lld\n",++ca,f);
	}
	return 0;
}

蓝桥省赛 RSA解密

在这里插入图片描述

题解

d ∗ e   m o d   r ≡ 1 d*e\ mod \ r \equiv 1 d∗e mod r≡1
本题的d正好与r互质,所以可以算出d的逆元。
e   m o d   r ≡ d − 1 e\ mod \ r \equiv d^{-1} e mod r≡d−1
对
X = C e   m o d   n X=C^e\ mod \ n X=Ce mod n
进行欧拉降幂
X = C e   m o d   r   m o d   n X=C^{e\ mod \ r} \ mod \ n X=Ce mod r mod n
替换指数。
X = C d − 1   m o d   n X=C^{d^{-1}} \ mod \ n X=Cd−1 mod n

即可在2ms之内求出X。需要注意,由于r不是素数,所以不能直接用费马小定理的快速幂求。可以采用扩展欧几里得求d的逆元

#include <bits/stdc++.h>
using namespace std;
#define FOR0(a,b) for(int i = a; i < b; ++i)
#define FORE(a,b) for(int i = a; i <= b; ++i)
typedef long long ll;
typedef pair<int,int> pii;

#define ld long double
inline ll mul(ll a,ll b,ll c){return (a*b-(ll)((ld)a*b/c)*c+c)%c;}

ll pw(ll x, ll n, ll c) {
	ll ret = 1;
	while(n) {
		if(n&1) ret = mul(ret,x,c);
		x = mul(x,x,c);
		n >>= 1;
	}
	return ret;
}
ll exgcd(ll a, ll b, ll& x, ll& y) {
	if(b == 0) {
		x = 1; y = 0;
		return a;
	} 
	ll d = exgcd(b,a%b,y,x);
	y -= a/b*x;
	return d;
}
ll inv(ll a, ll n) {
	ll x,y;
	ll d = exgcd(a,n,x,y);
	return d == 1 ? (x+n)%n:-1;
}
int main() {
	clock_t start,end;
	start = clock();
	ll n = 1001733993063167141;
	ll d = 212353;
	ll C = 20190324;
	ll p = sqrt(n);
	while(n%p != 0) {
		p--;
	}
	ll q = n/p;
	// cout << p << " "<< q<<endl;
	ll phi = (p-1)*(q-1);
	// cout << "gcd:" <<__gcd(phi,d) << endl;
	ll invd = inv(d,phi);
	// cout << invd << endl;
	ll X = pw(C,invd,n);
	cout << X << endl;
	end = clock();
	cout<<(double)(end-start)/CLOCKS_PER_SEC*1000<<"ms"<<endl;	
	return 0;
}
RSA(第十届蓝桥杯省赛C++A组E题) 解题报告 Apare_xzc RSA(第十届蓝桥杯省赛C++A组E题) 解题报告 xzc 2019/4/4 (边看World Final B站直播边写的) 题面:(开始码字)   RSA是一种经典的加密算法。它的基本加密过程如下。   首先生成两个大质数p,q, 令n = p*q,设d与(p-1)*(q-1)互质,则可以找到e,使得d*e除以(p-1)*(q-1)的余数为1   n,d,e组成了私钥,n,d构成了公钥。   ... 阅读详情

相关推荐

2019 蓝桥杯第十届大赛个人赛省赛(软件类)真题 A组 C++

2019 蓝桥杯第十届大赛个人赛省赛(软件类)真题 A组 C++ 平方和 数列求值 最大降雨量 迷宫 RSA 解密 完全二叉树的权值 外卖店优先级 修改数组 糖果 组合数问题

Gym102055 (CCPC-final 2018)

2018CCPC-FINAL

tarjen的博客 263

手把手教你搭建自己的 API 中转站

本文介绍了如何通过开源工具CLIProxyAPI(CPA)搭建本地AI模型代理服务,解决多工具切换、海外API访问困难等问题。CPA可将OpenAI、Gemini等不同服务的API统一封装,用户只需配置一次账号信息,所有客户端即可通过标准接口访问。文章详细讲解了CPA的下载安装、配置修改、账号导入及客户端连接方法,并强调其经济性、可控性和集中管理优势。通过自建中转站,用户可避免第三方服务的质量风险,实现多账号负载均衡,构建个人AI资源池。最后提供了网络配置等实用建议,帮助开发者高效使用AI编程工具。

DongJiYong_20的博客 1787

第十届蓝桥杯之试题E:RSA解密☆☆☆☆☆

第十届蓝桥杯

qq_44579321的博客 718

Python异步协程爬虫优化:解决aiohttp中ServerDisconnectedError的高效策略

本文深入探讨了在Python异步协程爬虫中使用aiohttp时,如何高效解决常见的ServerDisconnectedError问题。核心策略包括全局复用ClientSession、精细配置TCPConnector连接池、实施请求重试与速率限制,从而构建稳定、高效的异步爬虫架构,有效避免服务器断开连接错误。

pz890123的博客 857

避坑指南:RK3588视频编码与SRT推流实战中,我遇到的5个典型问题及解决方案

本文深度解析RK3588平台视频编码与SRT推流实战中的五个典型问题,包括MIPI摄像头内存对齐、多线程数据传递、FFmpeg时间戳设置、SRT连接参数调优及系统资源监控。提供具体解决方案和优化技巧,帮助开发者高效实现实时视频网络传输。

weixin_28718793的博客 322

2019年第十届蓝桥杯省赛C++A组【第五题:RSA 解密】

第五题 试题 E: RSA 解密 本题总分:15 分 问题描述 RSA是一种经典的加密算法。它的基本加密过程如下。 首先生成两个大质数p,q, 令n = p*q,设d与(p-1)*(q-1)互质,则可以找到e,使得d*e除以(p-1)*(q-1)的余数为1   n,d,e组成了私钥,n,d构成了公钥。   当使用公钥加密一个整数X时(X<=n-1),计算C = X^d mod n,则C是加密后的密文。   当收到密文C时,可以使用私钥解开,计算公式为:X = C^e mod n。   例如:

jianjianjianjian01的博客 1381

uniapp - [全端兼容] 实现精美Editor富文本编辑器功能,uniApp全平台兼容的富文本插件组件用户可上传图片及对接服务器存储文件等,手机移动端H5网页富文本/小程序富文本/App富文本!

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,uniapp富文本编辑器,uniapp中如何实现各平台都兼容的富文本编辑器,Editor富文本插件,uniApp微信小程序富文本,UNI-APP安卓苹果ios系统App端富文本组件,editor富文本编辑器如何实现上传图片,图片上传后不显示怎么办,如何配置图像上传功能,富文本图片上传怎么传到服务器中,获取图片路径,editor插入图片,富文本编辑器上传图片,报错怎么办,跨域CORS处理,配置不行无效

🏆 前端领域优质创作者 1万+

快速幂,蓝桥杯2019A组第五题RSA解密

互质数为数学中的一种概念,即两个或多个整数的公因数只有1的非零自然数。公因数只有1的两个非零自然数,叫做互质数 思路:现在的要求是解密,所以按照公式,现在还差e,那么要求e就需要求p,q,根据公式(d*e)%(p-1)(q-1)=1可以知道p,q。 **注意,因为p,q是两个质数,所以他们的公因数只有1,所以n【n=p*q】只有这2个因子,没有别的因子了,所以就可以用暴力法,所以方法是: 循环i从2~根号n,若n%i==0,则证明i该i是p或q,n/i则是另一个数,就找到了p和q了!! ** #inclu

weixin_49865619的博客 473

uniapp - 实现PDA扫码枪RFID批量扫描读取示例代码,uni-app APP识别RFID(射频识别)结合硬件设备进行扫描,uniApp调用RFID读写通用方案适配各种设备+完整实例源码教程!

uni-app PDA 读取RFID,基于uniapp开发PDA扫码枪APP:实现RFID批量扫描读取功能,UniApp中的RFID实现,手持机 RFID插件(uni-app集成手持设备rfid插件),uniapp自动识别RFID,uni-app调RFID模块,uni-app RFID识别插件,uniapp读取rfid,uniapp手持设备扫描rfid,uniapp超高频rfid识别,rfid标签识别,uniapp调用RFID读写,uniapp rfid扫码枪,uniapp中如何使用rfid插件,打包上线后

🏆 前端领域优质创作者 1万+

fasterlio原理及代码框架梳理

Faster-LIO 的优势是在保持同等高精度的前提下,显著提升计算效率,以支持更极端的应用场景(如高速无人机)和更廉价的硬件平台。可以把 Faster-LIO 理解为用一把更快的“空间哈希筛子”(iVox)替换了原来精细的“动态平衡树”(ikd-Tree),从而在精度损失极小的情况下,实现了效率的显著提升。:只在实际有地图点的空间区域动态创建和保留体素单元,形成一个稀疏的体素地图。是关键:将去畸变点云中的每个点,在 iVox 维护的局部地图中搜索近邻(如5个最近点),构建点到面的距离残差。

Studying…… 246

蓝桥杯 — — RSA解密

的值非常大,我们需要用到快速幂的方法,又因为快速幂中存在乘法运算,极易导致内存溢出的现象(在很大的数的情况下),因此我们需要在快速幂的基础上使用快速乘的方法进行运算(在计算机中,计算加法的速度往往比计算乘法的速度要快),并且数值都要使用。,这就变为了求解一个二元一次方程组,对于二元一次方程组,要想求出两个未知量,我们至少需要直到两个等式关系,但是这里我们只知道了一组等式关系,因此无法使用常规的思想进行求解。的求解,我们可以使用枚举的思想,利用给出的公式。,再利用上面得到的规律,可以递归的求解出。

SoyMilk的博客 1441

【k8s故障处理篇】calico-node启动失败“Felix is not live: Get “http://localhost:9099/liveness” 解决办法(V1.30.3版本)

【k8s故障处理篇】calico-node启动失败“Felix is not live: Get “http://localhost:9099/liveness” 解决办法(V1.30.3版本)

jks212454的博客 1091

2017CCPC final K bfs打表 llu

#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=5000; ll n,m; ll dir[8][2]={{1,2},{1,-2},{-1,2},{-1,-2},{2,1},{2,-1},{-2,1},{-2,-1}}; ll vis[1000][1000]; ll ans...

qq_40423146的博客 199

【第07例】IPD体系进阶: 6 个技术评审点(TR)

TR技术评审点

产品线负责人 4413

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

[蓝桥杯2019初赛]RSA解密 (数论入门)

题目: 思路: 这题主要是数论知识 想明白了不难,但是要懂扩展欧几里得算法、快速幂、快速乘的知识 首先关于X有两条式子(mod 代表 % 意思) C=Xd mod n (第一条应该是求不出来的) X=Ce mod n 那我们肯定尽量要把e求出来这样才可以算出X来 那怎么求e? 我们可以看到题目描述中阐述 d × e mod (p-1) (q-1) =1 d是已知量, p、q为质数,n=p × q 那么通过枚举就可以把 p,q求出来 那么之后的问题就来了 知道 d,p,q如何求e? 我们可以先设一个数为x,

m0_53807008的博客 1012

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

第十届蓝桥杯: RSA 解密

Begin 记录一下自己的学习过程啦~~ 上题目 试题 E: RSA 解密 【问题描述】 RSA 是一种经典的加密算法。它的基本加密过程如下。 首先生成两个质数 p, q,令 n = p · q,设 d 与 (p − 1) · (q − 1) 互质,则可 找到 e 使得 d · e 除 (p − 1) · (q − 1) 的余数为 1。 n, d, e 组成了私钥,n, d 组成了公钥。 当使用公钥加密一个整数 X 时(小于 n),计算 C = Xd mod n,则 C 是加 密后的密文。 当收到密.

m0_51638853的博客 1818

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

(CCPC-Final 2018)K - Mr. Panda and Kakin

题意:x是\([1e5,1e9]\)的随机数,p是小于x的最大素数,q是大于等于x的最小素数,\(n=pq\),\(c=f^{2^{30}+3}\mod{n}\),给n和c求f 题解:rsa解密,首先在\(sqrt(n)\)附近找到p和q,让\(r=(p-1)*(q-1)\),\(e=2^{30}+3\),\(d*e\mod{r}=1\),\(c^d\mod{n}=f\) 证明:\(c=f^e%n...

weixin_30813225的博客 550

2018CCPC网络赛2018年8月25日

吐槽一下网管中心,爬山去了没人看守?当这个比赛是啥?虽说是周末也不该这样子吧 本次比赛主要负责看题,人有点难过也做不出题系列( 按照签到顺序写题解 第一道费马大定理裸题 n&amp;amp;gt;2无解 思路:n这么大暴算肯定不行呀,只有构造了~ 构造思路队友想的很巧妙 #include &amp;amp;lt;bits/stdc++.h&amp;amp;gt; using namespace std; int main(){ ...

CODER的博客 975

2019第十届蓝桥杯 省赛A组 RSA解密

大二下学期选修了密码学,学了公钥密码,刚好碰到这个题,就写个博客记录一下 RSA算法介绍: 两个大素数p,q (保密的,选定的) n=p*q (n是公开的) Φ(n)=(p−1)(q−1) (即,欧拉函数:小于n且与n互素的数的个数) e满足gcd(Φ(n),e)=1; (1<e<Φ(n)) ,就是e与Φ(n)互质。 d*e≡1(mod Φ(n)),即d和e...

weixin_43107805的博客 3081

2018 CCPCfinal 感悟

第一次参加正式赛,其实心态还算稳,但是还是没有逃脱打铁的命运 首先说说第一天的热身赛 热身赛四道题,a了三道,签到题+数学期望+dfs。数学题A的过程比较曲折,由于样例给的很良心,其实也提供了一些思路,然后在这个过程中讨论了一下,后来改变了从前向后变为从后往前推的思路,过来全部样例就A了,所以说样例良心来着。dfs完全是队友搜索写得好。 然后说第二天正式赛 正式赛A题签到题,在队友敲的时候...

zm_zsy的博客 1069

第十届蓝桥杯 省赛A组 E RSA 解密

这个题应该是填空题中最难的一个了。 思路很简单,但是你需要一点python的基础 讲一下本题的思路。 首先我们要对公钥中的n进行质因子分解,得到p,q。然后根据 d * e %((p - 1) * (q - 1) == 1和扩展欧几里得 求出e。 RSA是一种不可逆的加密方法,不可逆的原因是公钥特别大,对它分解质因子时间上会很长,普通计算机大概是 10年左右,量子计算机一星期就可以...

唐宋元明清的博客 4523

第十届蓝桥杯 A组 RSA解密

这次蓝桥杯对于acm学数学的太友好了 emmm 然而还是菜啊 我和填空最后一题死磕了一个小时 (太蠢了)没有Python写Java大数写到自闭 题目大意: n=p*q p,q为素数 d与(p-1)*(q-1)互素 (d*e)%((p-1)*(q-1))=1 c=x^d%n x=c^e%n 给定d,c,n 求x 素数筛可以求出p,q 用欧几里得验证是否满足互素条件,快速幂直接乘会...

yangdelu855的博客 3716

2019蓝桥 RSA 解密

#include<bits/stdc++.h> #define ll long long using namespace std; inline ll ksc(ll x,ll y,ll mod) { return (x*y-(ll)((long double)x/mod*y)*mod+mod)%mod; } ll fast_pow(ll x, ll k...

mlm5678的博客 1306

2018 ccpc final:B. Balance of the Force (枚举)

题目大意:有n个骑士,每个骑士可以加入光阵营或暗阵营,并且获得一个力量,分别为L和D,现在有m对骑士不能在同一个阵营,问力量差值(最大值和最小值的差值)最小是多少?如果不存在阵营满足仇恨骑士不在同一个阵营内,则输出IMPOSSIBLE。 解法:首先二分图判定一下是否存在奇环,若存在奇环则输出IMPOSSIBLE。 按仇恨关系建边形成的图,注意到一个连通分量只要一个人选定加入哪个阵营,其他人的阵营也...

qq_41997978的博客 756

2019蓝桥杯省赛(软件类A组) RSA

#include <bits/stdc++.h> using namespace std; long long n=1001733993063167141; long long d=212353; long long c=20190324; long long p=891234941; long long q=1123984201; long long e=82381609393152...

ftx456789的博客 1222
上一篇: 【2019 南昌邀请赛 Match Stick Game】 火柴dp
下一篇: 【2019湘潭邀请赛C】HDU 6534 Chika and Friendly Pairs(莫队)
Link_Ray
博客等级 码龄9年 44粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值