当前位置:首页 » 操作系统 » 不安全的算法

不安全的算法

发布时间: 2022-09-12 15:30:31

‘壹’ aes算法中哪种模式不安全

应该是ecb的模式,因为ecb掩盖不了明文结构信息,难以抵抗统计分析攻击。可对明文进行主动攻击。

‘贰’ 什么算法能在不安全信道上传输密钥

在不安全信道上传输密钥未必需要算法安全。这个问题的关键在于密钥所属的安全机制是否足够安全。比如,在RSA中,密钥就可以经不安全信道传输。另外,你这个问题的含义本身就比较模糊。

‘叁’ HashMap为什么不安全

我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。

1.jdk1.7中的HashMap

在jdk1.8中对HashMap做了很多优化,这里先分析在jdk1.7中的问题,相信大家都知道在jdk1.7多线程环境下HashMap容易出现死循环,这里我们先用代码来模拟出现死循环的情况:

publicclassHashMapTest{publicstaticvoidmain(String[]args){HashMapThreadthread0=newHashMapThread();HashMapThreadthread1=newHashMapThread();HashMapThreadthread2=newHashMapThread();HashMapThreadthread3=newHashMapThread();HashMapThreadthread4=newHashMapThread();thread0.start();thread1.start();thread2.start();thread3.start();thread4.start();}}{privatestaticAtomicIntegerai=newAtomicInteger();privatestaticMapmap=newHashMap<>();@Overridepublicvoidrun(){while(ai.get()<1000000){map.put(ai.get(),ai.get());ai.incrementAndGet();}}}

上述代码比较简单,就是开多个线程不断进行put操作,并且HashMap与AtomicInteger都是全局共享的。

在多运行几次该代码后,出现如下死循环情形:

2.jdk1.8中HashMap

在jdk1.8中对HashMap进行了优化,在发生hash碰撞,不再采用头插法方式,而是直接插入链表尾部,因此不会出现环形链表的情况,但是在多线程的情况下仍然不安全,这里我们看jdk1.8中HashMap的put操作源码

  • finalVputVal(inthash,Kkey,Vvalue,booleanonlyIfAbsent,booleanevict){Node[]tab;Nodep;intn,i;if((tab=table)==null||(n=tab.length)==0)n=(tab=resize()).length;if((p=tab[i=(n-1)&hash])==null)//如果没有hash碰撞则直接插入元素tab[i]=newNode(hash,key,value,null);else{Nodee;Kk;if(p.hash==hash&&((k=p.key)==key||(key!=null&&key.equals(k))))e=p;elseif(pinstanceofTreeNode)e=((TreeNode)p).putTreeVal(this,tab,hash,key,value);else{for(intbinCount=0;;++binCount){if((e=p.next)==null){p.next=newNode(hash,key,value,null);if(binCount>=TREEIFY_THRESHOLD-1)//-1for1sttreeifyBin(tab,hash);break;}if(e.hash==hash&&((k=e.key)==key||(key!=null&&key.equals(k))))break;p=e;}}if(e!=null){//=e.value;if(!onlyIfAbsent||oldValue==null)e.value=value;afterNodeAccess(e);returnoldValue;}}++modCount;if(++size>threshold)resize();afterNodeInsertion(evict);returnnull;}

  • 这是jdk1.8中HashMap中put操作的主函数, 注意第6行代码,如果没有hash碰撞则会直接插入元素。

    如果线程A和线程B同时进行put操作,刚好这两条不同的数据hash值一样,并且该位置数据为null,所以这线程A、B都会进入第6行代码中。

    假设一种情况,线程A进入后还未进行数据插入时挂起,而线程B正常执行,从而正常插入数据,然后线程A获取CPU时间片,此时线程A不用再进行hash判断了,问题出现:线程A会把线程B插入的数据给覆盖,发生线程不安全。

    总结

    首先HashMap是线程不安全的,其主要体现:

  • 在jdk1.7中,在多线程环境下,扩容时会造成环形链或数据丢失。

  • 在jdk1.8中,在多线程环境下,会发生数据覆盖的情况。

  • ‘肆’ 不安全的加密算法不包括什么

    DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。

    3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。

    AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;

    算法原理
    AES 算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES 使用几种不同的方法来执行排列和置换运算。

    ‘伍’ rc4 算法不安全 跟证书有关系吗

    RC4加密算法是大名鼎鼎的RSA三人组中的头号人物RonRivest在1987年设计的密钥长度可变的流加密算法簇。

    ‘陆’ DES安全性的安全体现不安全体现原来的算法如何改进

    安全性:雪崩效应,加密运算速度,对称性等
    不安全性:密码空间随着计算能力的提升,已经显得太小了
    S盒的不可靠性
    还有一些差分分析的脆弱性吧,现在已经被淘汰了,
    美国已经用新标准了

    改进......看从那方面说了,分组密码有自身的局限性,改进无非就是增加密钥长度,多次迭代运算等,或者和其他密码混合使用

    现在很流行的就是RSA和DES和混合使用。RSA加密太慢,但是安全;DES不安全,但是算法很快

    我也就只知道这些了,楼主有问题再补充吧
    呵呵

    ‘柒’ 海因里希法则计算求死亡,重伤,不安全行为数,如何计算求过程

    公式是1:29:300。

    如事件总数为1000,

    则死亡或重伤人数计算方法为:1000÷330X1。

    轻伤人数计算方法为:1000÷330X29。

    无伤害人数为1000除以330X300。

    海因里希法则(Heinrich's Law)又称“海因里希安全法则”、“海因里希事故法则”或“海因法则”,是美国着名安全工程师海因里希(Herbert William Heinrich)提出的300∶29∶1法则。

    这个法则意为:当一个企业有300起隐患或违章,非常可能要发生29起轻伤或故障,另外还有一起重伤、死亡事故。

    海因里希法则是美国人海因里希通过分析工伤事故的发生概率,为保险公司的经营提出的法则。这一法则完全可以用于企业的安全管理上,即在一件重大的事故背后必有29件轻度的事故,还有300件潜在的隐患。

    (7)不安全的算法扩展阅读:

    海因里希最初提出的事故因果连锁过程包括如下5个因素。

    遗传及社会环境

    遗传因素及环境是造成人的性格上缺点的原因,遗传因素可能造成鲁莽、固执等不良性格;社会环境可能妨碍教育、助长性格上的缺点发展。

    人的缺点

    人的缺点是使人产生不安全行为或造成机械、物质不安全状态的原因,它包括鲁莽、固执、过激、神经质、轻率等性格上的先天缺点,以及缺乏安全生产知识和技能等后天缺点。

    人的不安全行为或物的不安全状态

    所谓人的不安全行为或物的不安全状态是指那些曾经引起过事故,或可能引起事故的人的行为,或机械、物质的状态,它们是造成事故的直接原因。

    例如,在起重机的吊荷下停留、不发信号就启动机器、工作时间打闹或拆除安全防护装置等都属于人的不安全行为;没有防护的传动齿轮、裸露的带电体、或照明不良等属于物的不安全状态。

    事故

    事故是由于物体、物质、人或放射线的作用或反作用,使人员受到伤害或可能受到伤害的、出乎意料之外的、失去控制的事件。坠落、物体打击等使人员受到伤害的事件是典型的事故。

    伤害

    直接由于事故而产生的人身伤害。人们用多米诺骨牌来形象地描述这种事故因果连锁关系,得到图中那样的多米诺骨牌系列。

    在多米诺骨牌系列中,一颗骨牌被碰倒了,则将发生连锁反应,其余的几颗骨牌相继被碰倒。如果移去连锁中的一颗骨牌,则连锁被破坏,事故过程被中止。

    海因里希认为,企业安全工作的中心就是防止人的不安全行为,消除机械的或物质的不安全状态,中断事故连锁的进程而避免事故的发生。

    ‘捌’ 即使分组加密算法是安全的,为什么说采用ecb方式加密依然存在不安全性

    加密算法在传输过程中就会有数据报文输出,输入,这个过程中被嗅探工具探知以后,在大数据服务器上进行解密算法, 算出后,就可进行拦截,伪造,等手法,让你不知不觉中招,
    所以说没有那种加密算法是完全安全的,只有不停的更新算法,才能保证不被破解。这是一个长期的工作, 只有一些国际企业才有这种实力,长期进行加密算法更新,ps(国际常用的加密算法也就那么几种,自己网络搜搜)

    ‘玖’ RSA算法的安全问题

    不安全 虽然没泄露n 但是e d都被知道后 有利于求得n的欧拉函数 进而分解n
    这就是所谓的 “共模攻击”

    为了防止共模攻击 所以Rsa使用有2个注意
    1。私钥泄露,立刻换n
    2。同组多用户不能使用同一个n

    ‘拾’ 为什么Google急着杀死加密算法SHA-1

    大部分安全的网站正在使用一个不安全的算法,Google刚刚宣称这将是一个长周期的紧急情况。
    大约90%采用SSL加密的网站使用SHA-1算法来防止自己的身份被冒充。当你去访问网址时,保证了你正在访问的确实是正品Facebook,而不是把自己的密码发送给攻击者。然而不幸的是,SHA-1算法是非常脆弱的,长期以来都是如此。该算法的安全性逐年降低,却仍然被广泛的应用在互联网上。它的替代者SHA-2足够坚固,理应被广泛支持。
    最近谷歌声明如果你在使用Chrome浏览器,你将会注意到浏览器对大量安全的网站的警告会不断发生变化。

    证书有效期至2017年的站点在Chrome中发生的变化

    首批警告会在圣诞节之前出现,并且在接下来6个月内变得越来越严格。最终,甚至SHA-1证书有效期至2016的站点也会被给予黄色警告。

    通过推出一系列警告,谷歌这正在宣布一个长周期的紧急情况,并督促人们在情况恶化之前更新他们的网站。这是件好事情,因为SHA-1是时候该退出历史舞台了,而且人们没有足够重视SHA-1的潜在风险。

    如果你拥有一个使用SSL的网站,你可以使用我创建的SHA-1测试小工具来测试你的网站,它会告诉你应该怎么做。即使你没有网站,我仍然推荐你去读一读。在接下来的博文,我会介绍网站上SSL和SHA-1是如何一起工作的,为什么如谷歌说的那么紧急,和浏览器正在采取的措施。

    同样重要的是,安全社区需要让证书更换过程少些痛苦和麻烦,因为网站的安全升级不必那么紧急和匆忙。

    FreeBuf科普:安全散列算法与SHA-1

    安全散列算法(英语:Secure Hash Algorithm)是一种能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高;而SHA是FIPS所认证的五种安全散列算法。这些算法之所以称作“安全”是基于以下两点(根据官方标准的描述):

    1、由消息摘要反推原输入消息,从计算理论上来说是很困难的。
    2、想要找到两组不同的消息对应到相同的消息摘要,从计算理论上来说也是很困难的。任何对输入消息的变动,都有很高的机率导致其产生的消息摘要迥异。
    SHA (Secure Hash Algorithm,译作安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数。

    热点内容
    三国志战略版打9级矿什么配置 发布:2025-05-15 11:41:29 浏览:951
    安卓加速器怎么关 发布:2025-05-15 11:38:16 浏览:464
    密码锁坏了如何打开 发布:2025-05-15 11:30:19 浏览:837
    怎样增加共享文件夹连接数量 发布:2025-05-15 11:24:50 浏览:961
    安卓如何关闭单应用音量 发布:2025-05-15 11:22:31 浏览:351
    抖音电脑后台服务器中断 发布:2025-05-15 11:11:59 浏览:307
    sql2008服务器 发布:2025-05-15 11:03:27 浏览:306
    我的世界pe服务器创造 发布:2025-05-15 10:51:17 浏览:608
    移动端打吃鸡要什么配置 发布:2025-05-15 10:48:16 浏览:756
    我的世界哪五个服务器被炸了 发布:2025-05-15 10:36:16 浏览:994