LA 4998 Simple Encryption(不动点迭代,同余)

【FireShell WriteUp】Simple Encryption FireShell CTF的第一道逆向题 做的时候还卡了一下,丢人233333~ 用IDA打开,找一找main函数 因为没有符号表,而且有很多无关的代码,所以尝试着判断一下各个函数的功能,改一下名 现在可以比较清楚的看到程序的逻辑了,打开input_file,将字符串加密以后写入output_file 具体的加密方法就在while循环里,我们写一个逆向算法把加密后的flag解出来即可 in... 阅读详情

Source

Problem

输入正整数 K1 K 1 ( K1≤50000) K 1 ≤ 50000 ) ,找一个12位正整数 K2 K 2 使得 KK21≡K2(mod1012) K 1 K 2 ≡ K 2 ( mod 10 12 ) 。

Solution

一开始以为是解同余方程,想要构造答案,后来发现想歪了,只能枚举。这个式子可以使用不动点迭代来解。但是直接快速幂不仅超时,根本就算不出答案。参照这位大佬的乘法优化,可以快速迭代出答案。

Code

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e12;

ll mul(ll a,ll b)
{
    ll p=1<<20,pb=b>>20;
    ll ans=(((a*pb%mod)*p%mod)+(a*(b&(p-1))))%mod;
    return ans;
}

ll qpow(ll a,ll b)
{
    ll ans=1;
    while(b)
    {
        if(b&1) ans=mul(ans,a)%mod;
        a=mul(a,a)%mod;
        b>>=1;
    }
    return ans;
}

ll solve(int k,ll r)
{
    while(1)
    {
        ll t=qpow(k,r);
        if(t==r) return r;
        r=t;
    }
}

int main()
{
    int k,rnd=0;
    while(scanf("%d",&k),k)
    {
        ll r=1e12+9;
        ll ans=solve(k,r);
        printf("Case %d: Public Key = %d Private Key = %lld\n",++rnd,k,ans);
    }
    return 0;
}
20届icoding实验三 7-4: 翻译(TRANSLATION) 编写程序可以把字⺟格式的电话号码翻译成数值格式: ENTER PHONE NUMBER: CALLATT 2255288 如果没有电话在身边,参考这⾥给出的字⺟在键盘上的对应关系:(2=ABC,3=DEF,4=GHI,5=JKL,6=MNO,7=PQRS,8=TUV,9=WXYZ)原始电话号码中的⾮字⺟字符(例如数字或标点符号)保持不变: Enter phone number: 1-800-COL-LECT1-800-265-5328 可以假设任何⽤户输⼊的 阅读详情

相关推荐

SimpleEncryption:一个简单的控制台应用程序,对给定的字符串进行编码(将来会在.txt文件中编码内容)。 应用使用的是简单密码,密码列表如下

简单加密 简单的控制台应用程序,可对给定的字符串进行编码/解码。 应用使用的是简单密码,密码列表如下。 吞噬 用户在控制台中编写消息,然后应用程序随机选择3个密码,使用选定的密码对消息进行编码并创建DecodeKey。 最后一件事是检查“编码”是否成功,这意味着应用正在使用密钥对消息进行解码,并检查解码后的消息是否等于消息。 输入:消息 输出:EncodedMessage,PublicKey,PrivateKey 解码 用户在控制台中编写消息,然后使用DecodeKey编写应用程序为具有给定密钥的Decoding Message。 输入:EncodedMessage,PublicKey / PrivateKey 输出:消息 应用程式零件 密码-简单的欢迎应用简短说明。 助手-有用的方法。 控制台操作 开始 结尾 编码 解码 密码 塞萨尔 塞萨尔变异 围栏密码 B

[FSCTF 2023]Simple Encryption

还有另一种方法就是下载个7z,直接无视伪加密,真的爽好吧,直接解压。解压要密码,猜测是伪加密,

个人做题记录,大佬勿喷 701

Simple_Encryption

简单加密 该程序将ASCII字符转换为它们的ASCII索引,然后进行一些乘法,除法和求和,然后在索引位置进行几次交换,然后最终给我们一个非常乱码的文本。 我是一天之内编写此代码的,没有任何背景知识或任何人的参考,并且我绝对不知道编写此代码时的密码学是什么。 这就是为什么它是非常糟糕的加密(我不知道,我不是专家来判断:p,哦,如果您是密码摄影师,请告诉我解密需要多长时间),但是请不要将其用于任何敏感信息加密... 无需库。 只要确保您拥有Python 3.7或更高版本的解释器即可。 输入要加密的文本,它将输出乱码。 要解密它,请使用解密器解密。

LA 4998 Simple Encryption

题意:输入正整数$K_1(K_1 \leq 50000)$, 找一个$12$位正整数$K_2$(不能含有前导零)使得${K_1}^{K_2}\equiv K_2(mod10^{12})$。 例如,$K_1=78$和$99$时,$K_2$分别为$308646916096$和$817245479899$。 分析:这题还是需要搜索来寻找答案的,直接构造很困难。事实上,${K_1}^{K_2}\equ...

weixin_34224941的博客 197

风储VSG-基于虚拟同步发电机的风储并网系统Simulink仿真

内容概要:本文介绍了“Plecs全桥LLC谐振变换器仿真模型”这一技术资源,聚焦于隔离型全桥LLC谐振变换器的建模、仿真与参数设计,涵盖其在电力电子系统中的关键应用,如软启动、闭环控制、变频控制及效率优化等。该模型支持对LLC变换器在不同工作模式下的动态响应与性能表现进行深入研究,适用于探究谐振拓扑结构、磁性元件设计、谐振参数匹配以及先进控制策略的科研与工程实践。同时,文档配套提供了仿真模型、设计报告与计算书等完整资料,强化了其实用性与教学价值。; 适合人群:具备电力电子、自动化或电气工程等相关专业背景,从事电力电子变换器研发、系统仿真与控制算法设计的科研人员、工程师及研究生。; 使用场景及目标:①用于全桥LLC谐振变换器的建模、仿真与动态性能分析;②支持对软启动过程、闭环稳压控制、变频调谐及效率优化等核心技术的研究与教学;③为电力电子电源系统的工程设计、参数优化与控制策略验证提供高精度仿真平台。; 阅读建议:建议结合Plecs或Simulink等仿真工具进行动手实践,重点理解电路拓扑构建、谐振参数计算、控制器设计与系统稳定性分析,并配合文档中的设计报告与计算书,系统掌握从理论到仿真的完整流程。

数学建模——相关系数(4)——斯皮尔曼相关系数(spearman)

文章目录引述斯皮尔曼相关系数(spearman)定义 引述 经过之前几节的学习,我们了解并掌握了皮尔逊相关系数。在学习中我们发现,皮尔逊相关系数的使用条件相当苛刻:两组变量必须是连续数据、呈现正态分布,且两者间必须成线性关系。如果我们在数学建模中拿到一组数据无法满足以上条件,那么有没有其他的方法去判断两组变量之间的相关性呢?答案是肯定的,它就是斯皮尔曼相关系数(spearman). 斯皮尔曼相关系...

东 6万+

UVA12253 简单加密法 Simple Encryption

这题到现在还是只有我一个人过?太冷门了吧,毕竟你谷上很少有人会去做往年ACM比赛的题 题面意思很简单,每次给出\(K_1\),让你求一个\(K_2\)满足\(K_1^{K_2}\equiv K_2(\mod 10^{12})\) 题目乍一看很有数学风格,看到取模和幂次想到什么? 费马大小定理,BSGS,二次探测?,不过在这里好像都用不了啊。 所以我们先考虑一个最朴素的想法:爆搜,每次直接...

weixin_30596343的博客 177

基于FPGA的函数信号发生器设计

设计采用波形查找表和相位累加器的方法实现DDS,查找表的数据位宽为8位,采样点数为4096。波形产生范围是100Hz-20MHz,最小频率间隔为1Hz,用8个数码管显示频率,可产生正弦波、方波、三角波,波形用两个led显示,select信号控制,全灭为正弦波,一亮一灭为方波,全亮为锯齿波。为了使频率和相位便于调节,用3个拨码开关控制步进,用8个led显示状态。

FPGA入门到跑路 5636

LA4998 Simple Encryption

1.题目描述:点击打开链接 2.解题思路:本题是一道非常好的思维题。猛一看感觉好像没有什么特别好的方法,但是如果仔细观察这个方程,就会发现要求解的x实际上是一个不动点,只要找到了这个不动点,以后就会稳定的这个地方。所以可以一开始选择一个比10^12大的数,开始不停的迭代,直到是一个稳定点时候break即可。类似于牛顿法求高次方程的根。 3.代码: #include #include #inc

Skyline 678

P4VASP的安装 & 使用P4VASP画DOS(态密度)图

P4vasp 下载: 链接:https://pan.baidu.com/s/1JIptQVSFSopQls9CiSIoVA 提取码:sbhi 由于是免安装版本,直接右击解压即可,将出现以下文件: 双击既可运行P4vasp: 关于P4vasp的基本使用(使用P4vasp画DOS) 这里以vasp计算为例 首先导出DOS计算的文件夹中的vasprun.xml文件 从p4vasp导入该文件进行作图(直接将vasprun.xml拖入p4vasp一般不会有反应) 具体步骤: 点击open: 在弹出的弹窗

qq_42168543的博客 5万+

道岔故障监测系统设计(源码+开题)

通过实时监控道岔的工作状态,系统能够及时发现异常情况,预防潜在的安全隐患,从而减少事故发生的概率。此外,监测系统还能够为维护人员提供详细的数据支持,帮助他们更准确地判断道岔的磨损程度和故障类型,优化维修计划,延长道岔的使用寿命。随着智能化、自动化技术的发展,道岔故障监测系统的设计与应用也将推动铁路行业的技术进步,为实现智能铁路和未来交通系统的构建奠定基础。因此,开展道岔故障监测系统的设计研究,不仅具有重要的工程实践价值,也有助于推动铁路运输行业向更高水平的发展。

灵军程序设计 771

LA 4998 Simple Encryption (数论 dfs)

LA 4998 Simple Encryption题意: 输入正整数K1(K1≤50000),找一个12位正整数K2(不能含有前导零)使得K1^K2≡K2(mod10^12)。思路: 神奇的数论题,怎么也想不出来,膜膜大佬的方法。 K1^K2≡K2(mod10^12),同时意味着: K1^K2≡K2(mod10^i),i ≤12 现在我们用(abcd)表示一个四位数,用(bcd)表示它的后

w4149 575

AI自动化时代:一人公司的崛起与商业机会

AI技术正在重塑商业格局,催生"一人公司"创业新模式。这种轻资产、高效率的商业模式通过AI自动化运营,让个人创业者能以极低成本挑战传统企业。核心机会包括:1)AI自主公司替代人力密集型业务;2)为企业提供AI转型解决方案;3)利用AI工具实现个人创业。创业者需快速验证创意,聚焦人机协作,把握当前AI发展窗口期。未来,AI赋能的"一人公司"将成为商业新常态,带来更高的专业化和灵活性。抓住AI红利,学会人机协作,是个人创业成功的关键。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 520

uvalive 4998 Simple Encryption --DFS

题意: 给出K1,求一个12位数(不含前导0)K2,使得K1^K2 mod (10^12) = K2.解法: 求不动点问题。有一个性质: 如果12位数K2满足如上式子的话,那么K2%1,K2%10,K2%100,…,K2%10^12都会满足如上式子。那么我们可以dfs从后往前一个一个找出这个数的每一位。转载至:http://www.bubuko.com/infodetail-587732.html这

黑码 491

YOLO26全网首发:CVPR2026 FAA| 解决YOLO Neck跨尺度方向冲突--- FAAFusion频域对齐融合模块 | 暴力涨点篇

本文改进:FAAFusion引入YOLO neck ,代替nn.Upsample和Concat

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 644

MTK Meta ISP 工具使用技巧与参数读取路径全解析

在联发科(MediaTek, MTK)平台上进行相机图像调试时,Meta ISP 工具是连接 PC 与设备进行参数调整、寄存器读取和图像输出的重要工具。本文以实战角度出发,系统梳理 Meta ISP 的使用流程、关键模块功能、典型调试技巧与参数读取路径,结合最新版平台(如MTK Genio/Dimensity 系列)架构,帮助工程师掌握联发科图像调优的核心流程。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1148

Encryption.c凯撒加密

Encryption 原题: 加密(Encryption) 已知的最古⽼的⼀种加密技术是凯撒加密(得名于 Julius caesar)。该⽅法把⼀条消息中的每个字⺟⽤字⺟表中固定距离之后的那个字⺟来替代。(如果越过了字⺟Z,会绕回到字⺟表的起始位置。例如,如果每个字⺟都⽤字⺟表中两个位置之后的字⺟代替,那么Y就被替换为A,Z就被替换为B。)编写程序⽤凯撒加密⽅法对消息进⾏加密。⽤户输⼊待加密的消息...

weixin_45454859的博客 1658

Qemu开发ARM篇-5、buildroot制作根文件系统并挂载启动

在上一篇中,我们编译了kernel,并在qemu上进行了运行,但到最后,在挂载根文件系统时候,挂载失败,这是因为我们还没有根文件系统,在本章中,我们将制作根文件系统。rootfs制作方式有很多方式,如busyBoxbuildrootYocto等,在该篇章中,我们使用buildroot来制作根文件系统,主要考虑到busyBox制作完还需要手动首改一些启动配置比较繁琐,而Yocto如果电脑配置不是很好,编译时间过长,比较麻烦。

sinat_33909696的博客 2465

古老的加密技术

看看在历史上我们是如何隐藏私密信息的 凯撒加密 第一个被最广泛熟知的加密方式就是公元前 58 年的凯撒加密(Caesar cipher) 加密 凯撒加密的加密方式就是,在加解密之初,加解密的双方需要先确定一个位移长度。加密的一方通过对明文中的单词按照选定的平移长度逐个的进行平移,得到加密后的内容;解密的一方通过将密文按照选定的平移长度进行逆向的平移,则可以得出明文。 比如,对于加密条件 明文为 h...

weixin_34400525的博客 1201

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

简单的加解密

/************************************************************* FileName : EnDecrypt.cpp FileFunc : 已知的最古老的一种加密技术是凯撒加密(得名于Julius Caesar)。 该方法把一条消息中的每个字母用字母表中固定距离之后的那个字母来替代。

sunrier的专栏 2664

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

CRM的Encryption Date

查询Encryption Data是不是Active状态 IsDataEncryptionActiveRequest request = new IsDataEncryptionActiveRequest(); IsDataEncryptionActiveResponse response = (IsDataEncryptionActiveResponse)organizationServ...

Gao996的博客 3012

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

linux 的 shell2--caes for while 数组

case: 如果变量的值满足的是 值1,执行命令1;如果不满足,继续向下匹配值2,执行命令2,… … #!/bin/bash read -p "请输入成绩:" s if [ $s -gt 100 -o $s -lt 0 ] then echo "成绩不和规定。" else case $s in 9[0-9]|100) echo "A" ...

n_u_l_l_的博客 191

uva 12253 - Simple Encryption(dfs)

题目链接;uva 12253 - Simple Encryption 题目大意:给定K1,求一个12位的K2,使得KK21=K2%1012 解题思路:按位枚举,不且借用用快速幂取模判断结果。 #include #include #include using namespace std; typedef long long ll; const ll ite=(120)-1;

不慌不忙、不急不躁 1643

学生管理系统.c

题目:编写学生管理系统,其中学生的信息有姓名(汉语拼音,最多20个字符),性别(男/女,用1表示男,2表示女)、 生日(19850101(年月日))、身高(以m为单位),还需要处理C语言、微积分两门课的成绩,请编写程序实现功能: 输入学生的人数和每个学生的信息;输出每门课程的总平均成绩、最高分和最低分,以及获得最高分的学生的信息。 需要注意的是某门课程最高分的学生可能不只一人。 输入输出格式要求:...

weixin_45454859的博客 1013
上一篇: Codeforces 848A. From Y to Y (思维,构造)
下一篇: UVAlive3998 (UVA 1404) Prime k-tuple (素数筛法)
MasterAn
博客等级 码龄10年 4粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值