|
RSA小质数加密方案
如果模N里面全是小素数构成的,可以采用ECM、QS、NFS等方法高效破解。 |
|
RSA小质数加密方案
小质数构成的RSA,运算速度的确比大质数构成的RSA要快。 但是 快 并不是加密算法的唯一评价指标,甚至也不是最重要的评价指标。 最重要的 还是安全性。 假定要达到一定的安全性,效率高的算法 要比效率低的算法 更受欢迎。 耗时相同的加密算法,安全性高的 要比安全性低的 更受欢迎。 在RSA背景下,破解难度是模长的亚指数级。 通俗的表达就是:如果将一个很大的模长拆成很多个小模长,那么破解难度将是:这些小模长的破解难度之和。 但是,如果不拆分成很多小模长,而是组成一个大模长,那么破解难度将是:这些小模长的破解难度之积。 显然 在总模长相等的情况下 一个大模长 要比拆分成小模长更加安全。 换句话说,1个“由1024bit的素数所构造RSA”,要比2个“由512bit素数所构造的RSA”,要安全得太多了。 同理,把模长拆得越细,最后的总体安全性越低。 因此,RSA算法的推荐是:模N仅由p、q这2个大素数构成。(每个素因子都已经是大得不能再大了) 补充一点: N的安全性 主要决定于p、q之中较小的那一个 所以 p、q长度相当为宜。
最后于 2019-7-27 22:50
被看场雪编辑
,原因:
|
|
CRC的另类用法
CRC确实具备这样的效果:把看起来有语义的输入数据,变成无语义的输出数据。至少表面上看起来,是变得复杂了。 但是 CRC是不可逆的吗?不能这么说吧。 给定一个CRC结果,求一个输入数据使之CRC之后的结果如预期。这是一件容易的事情。 可能有人会说难。那是因为,要找出原来的那个输入是困难的。因为满足要求的输入太多了。没法区分哪一个比其它的更高贵、更正宗。 但是,如果后续的密码认证过程使用的就是CRC结果本身,而不是CRC的原始输入,那么也就没必要纠结哪一个是正宗的了。因为任何一个的效力都是一样的。随便找出任何一个满足要求的CRC输入,都能满足后续密码认证。这样会使得系统出现多个正确的口令。 所以,把CRC用于用户口令的认证,不一定是件好事。 |
|
[原创]base64简单逆向分析(下)
原则上讲,BASE64编码的目的,不是为了掩人耳目,而是为了传输和存储过程中的兼容性。 客观上它有一定的掩盖输入数据的效果。但要把它称作一种加密算法,有点勉强了。 专业事,找专业人。 要加密的话,去用真正的加密算法吧。 不过,LZ的文章确实让读者对BASE64有了更透彻的理解 |
|
[原创]看雪CTF从入门到实战(七)- A long way to go
以CM的hash值作为用户名,主要是为了确保防守方有能力对任意用户名生成序列号。 这个要求是实用软件所应该做到的。 然而,从比赛的角度看,可以考虑不同风格的参赛偏好: 偏技术的、偏脑洞的; 偏趣味的、偏实战的; 偏指令的、偏算法的; 或者混合型的。 看雪是个开放的技术交流社区。 通过适当调整规则,或者区分参赛类型,以防止出题风格聚向,或者游戏失去平衡性,是很有必要的。
最后于 2019-7-23 14:44
被看场雪编辑
,原因:
|
|
|
|
[原创]看雪CTF从入门到实战(七)- A long way to go
kanxue 欢迎大家参与讨论。 若CTF比赛中,允许出题者提供一对有效 姓名/序列号,然后再解指定用户名的序列号,所付出的代价,就是解除对题目一些限制。对这一形式,不知参赛者们是什么观点?进一步明晰“判胜条件”和“规则限制” 请大家审视
最后于 2019-7-18 10:37
被看场雪编辑
,原因:
|
|
|
|
[讨论]RSA密码是怎样加密0的?
如果你一定要不使用电子信封这样成熟高效的方式处理长数据,而要用RSA直接加密长数据,可以这样: 1)选用一种能准确恢复明文长度的padding方法,尽可能多地打包明文数据,然后用RSA加密;(这种padding方法也需要和pkcs#1中描述的一样,注意回避产生有安全风险的明文) 2)反复使用1,直至将明文全部打包加密完毕。 解密方法,是显然的。略。 |
|
[讨论]RSA密码是怎样加密0的?
看场雪 因为公钥算法通常较慢,所以不会直接用来加密文件。 而是会采用‘电子信封’模式: 1)临时产生一个对称算法的key(例如AES-128) 2)用key加密文件 3)然后用RSA的公钥加密key( ...RSA从来不对长数据分组处理。 RSA从来不对长数据处理。 RSA只对短数据加密。 万一要对长数据加密怎么办?请看7楼 |
|
[讨论]RSA密码是怎样加密0的?
用其它符号来表示0或1,这种方法不是不可取。 但是这种方法同样会带来编码扩展,也就是说,会导致数据变长。 既然数据肯定是要变长的,那就和做padding没有本质区别了。 而PKCS#1规范的padding,不仅仅解决了全0全1的问题,还增加了格式检查和防重复的功能,还能阻挡一些数学攻击方法,是一种严谨的处理方法。值得学习和遵循。 |
|
[原创]通俗易懂讲解-GandCrab勒索病毒加密原理
吹毛求疵,还有几个字 RSA加密函数定义 = typedef RSA2048(Key, 待加密数据) ^^^ ^^^^
最后于 2019-7-15 09:33
被看场雪编辑
,原因:
|
|
[原创]通俗易懂讲解-GandCrab勒索病毒加密原理
是不是? RSA加密函数定义 = typedef RSA2048(Key, 待加密数据) Salsa20加密函数定义 = typedef Salsa20(Key, 待加密数据) |
|
|
|
[求助]请教各位大佬这是什么加密方式!
可以得出初步结论: 1)密文字符集是标准BASE64字符集(不排除顺序有变,后面会论述,可能性不大) 2)BASE64只是最后的密文输出编码,而不是真正的核心加密算法 3)核心加密算法的密文输出是16Bytes(怀疑可能是AES-128) 不太可能是: 1)DES。因为DES一次只能输出8Byte密文。而明文超过了8B,且只变化了1B的情况下,输出的16B密文全都发生变化,就一定不会是ECB,很有可能是CBC或其它。但CBC会包含IV,会导致11B的明文加密之后的结果至少有3个block,而不会只有16B。所以有矛盾,不会是DES 2)BASE64变异。首先纯粹的BASE64变异无法做到“明文修改了末尾1B,会造成密文全变”,所以一定包含一个强密码做内核;其次,既然已经有了强分组密码做内核,则无需外加任何干扰,也就用不着变异了。 有可能是: 1)AES-128。因为密文是16B,且没有IV。 2)其它128bit分组加密算法。 3)某种带seed的流密码算法。这种算法的密文中,前若干个字节是随机的seed(例如前5Byte),而后面的密文是 seed产生的密钥流与明文异或的结果。 分析建议 1)首先排除上述第3种可能性。排除方法是:将相同的明文加密2次,看看结果是否相同。如果相同,则不会是可能性3 2)用全\0,或者'0'当做明文去加密(长度为16B),得到16B的密文,然后在网上碰撞AES密钥 |
|
[求助]请教各位大佬这是什么加密方式!
可以尝试对下列明文分别加密,看看密文是什么 15300000000 15300000001 15300000002 15300000003 15300000004 15300000005 15300000006 15300000007 15300000008 15300000009 得到了这些密文后,也许能够有助于判定解密方法 |
|
[讨论]RSA密码是怎样加密0的?
在学术界,对流密码的研究已经很充分了。基于LFSR的流密码已经没有希望了,有人在研究基于NFSR的流密码。但更多学者普遍认为,传统的流密码设计思路已经走到了尽头,取而代之的是:基于分组密码的流密码设计思路。这是大势所趋。 如果对于上述描述不太理解,也可以参考一下OFB、CFB模式,也能设计成流密码。 |
|
[原创]二进制各种漏洞原理实战分析总结
收藏&点赞 |
|
[讨论]RSA密码是怎样加密0的?
对RSA的明文进行padding,不仅仅是为了避开全0,还是为了避开所有的小明文。例如:长度短于RSA模长的1/3的明文。因为公钥e=3时,小明文加密之后的密文,是容易破解的。如MistHill指出,PKCS#1给出了padding方法,还避开了其它一些不安全的情形。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值