椭圆曲线密码算法介绍
1,有限域上的椭圆曲线
设K表示一个有限域,E是域K上的椭圆曲线,则E是一个点的集合:
E/K = { ( x, y ) | y2+ a1xy + a3y = x3 + a2x2 + a4x + a6,
a1, a3, a2, a4, a6 x, y K } { O }
其中O表示无穷远点。
在E上定义‘+’运算,P + Q = R,R是过P、Q的直线与曲线的另一交点关于x轴的对称点,当P = Q时R是P点的切线与曲线的另一交点关于 x轴的对称点。这样,( E, + )构成可换群( Abel群),O是加法单位元(零元)。椭圆曲线离散对数问题ECDLP定义如下:给定定义在K上的 椭圆曲线E,一个n阶的点P E/K,和点Q E/ K,如果存在l,确定整数l, 0 l n - 1, Q = lP。前面已经提到,ECDLP是比 因子分解难得多的问题。
椭圆曲线上的加法: P + Q = R
椭圆曲线上一点的2倍: P + P = R.
2,椭圆曲线上的密码算法
基于该难题,Neal Koblitz[13] 和Victor Miller[14]在1985年分别利用有限域上椭圆曲线的点构成的群实现了离散对 数密码算法,其中被广泛接受的是椭圆曲线上的DSA,称ECDSA。随即展开了椭圆曲线密码学研究,除椭圆曲线外,还有人提出在其它类型的曲线如超椭圆曲 线上实现公钥密码算法。
此后,有人在椭圆曲线上实现了类似ElGamal的加密算法,以及可恢复明文的数字签名方案。除有限域上的椭圆曲线密码算法外,人们还探索了在椭圆曲线上实现RSA算法,如KMOV等,笔者也设计了一种算法(“一种基于Z/nZ上椭圆曲线的公钥密码算法”,王汉强、魏庆福,通信学报,1999,第7期)。
3,椭圆曲线密码算法的发展
由于其自身优点,椭圆曲线密码学一出现便受到关注。现在密码学界普遍认为它将替代RSA成为通用的公钥密码算法,SET ( Secure Electronic Transactions )协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法,目前已成为研究的 热点,是很有前途的研究方向。
产生素数的算法
Robert Solovag和Volker Strasson开发了一种概率的基本测试算法。这个算法使用了雅可比函数来测试p是否为素数:(1) 选择一个小于p的随机数a。
(2) 如果 gcd(a,p) <> 1,那么 p 通不过测试,它是合数。
(3) 计算j=a^(p-1)/2 mod p。
(4) 计算雅可比符号J(a,p)。
(5) 如果j<>J(a,p),那么p肯定不是素数。
(6) 如果j=J(a,p),那麽p不是素数的可能性值多是50%
数a被称为一个证据,如果a不能确定p,p肯定不是素数。如果p是合数。随机数a是证据的概率不小于50%。对a选择t个不同的随机值,重复t次这种测试。p通过所有t次测试后,它是合数的可能性不超过1/2^t。
Lehmann
另一种更简单的测试是由Lehmann独自研究的。下面是它的测试算法:
(1) 选择一个小于p的随机数a。
(2) 计算a^(p-1)/2 mod p
(3) 如果a^(p-1)/2<>1或-1(mod p),那么p肯定不是素数。
(4) 如果a^(p-1)/2=1或-1(mod p),那麽p不是素数的可能性值多是50%
同样,重复t次,那麽p可能是素数所冒的错误风险不超过1/2^t。
Rabin-Miller
这是个很容易且广泛使用的简单算法,它基于Gary Miller的部分象法,有Michael Rabin发展。事实上,这是在NIST的DSS建议中推荐的算法的一个简化版。
首先选择一个代测的随机数p,计算b,b是2整除p-1的次数。然后计算m,使得n=1+(2^b)m。
(1) 选择一个小于p的随机数a。
(2) 设j=0且z=a^m mod p
(3) 如果z=1或z=p-1,那麽p通过测试,可能使素数
(4) 如果j>0且z=1, 那麽p不是素数
(5) 设j=j+1。如果j<b且z<>p-1,设z=z^2 mod p,然后回到(4)。如果z=p-1,那麽p通过测试,可能为素数。
(6) 如果j=b 且z<>p-1,不是素数
这个测试较前一个速度快。数a被当成证据的概率为75%。这意味着当迭代次数为t时,它产生一个假的素数所花费的时间不超过1/4^t。实际上,对大多数随机数,几乎99.99%肯定a是证据。
实际考虑:
在实际算法,产生素数是很快的。
(1) 产生一个n-位的随机数p
(2) 设高位和低位为1(设高位是为了保证位数,设低位是为了保证位奇数)
(3) 检查以确保p不能被任何小素数整除:如3,5,7,11等等。有效的方法是测试小于2000的素数。使用字轮方法更快
(4) 对某随机数a运行Rabin-Miller检测,如果p通过,则另外产生一个随机数a,在测试。选取较小的a值,以保证速度。做5次 Rabin-Miller测试如果p在其中失败,从新产生p,再测试。
在Sparc II上实现: 2 .8秒产生一个256位的素数
24.0秒产生一个512位的素数
2分钟产生一个768位的素数
5.1分钟产生一个1024位的素数
一个非常简单的私有加密算法(java版)
public class ZYGEncrypt {
private static final byte[] enkeystore = {
0×08, 0×02, 0x0b, 0x0c, 0×01, 0x0a, 0×00, 0x0d, 0×07, 0×03, 0x0e,
0×05, 0x0f, 0×06, 0×04, 0×09
};
private static final byte[] dekeystore = {
0×06, 0×04, 0×01, 0×09, 0x0e, 0x0b, 0x0d, 0×08, 0×00, 0x0f, 0×05,
0×02, 0×03, 0×07, 0x0a, 0x0c
};
public static byte[] encode(byte[] data) {
byte[] result = new byte[data.length];
for (int i = 0; i < data.length; i++) {
result[i] += (enkeystore[(data[i] >>> 4) & 0x0F] << 4);
result[i] += (enkeystore[data[i] & 0x0F]);
}
return result;
}
public static byte[] decode(byte[] data) {
byte[] result = new byte[data.length];
for (int i = 0; i < data.length; i++) {
result[i] += (dekeystore[(data[i] >>> 4) & 0x0F] << 4);
result[i] += (dekeystore[data[i] & 0x0F]);
}
return result;
}
public static void main(String[] args) {
String data = “1″;
byte[] databyte = ZYGEncrypt.encode(data.getBytes());
byte[] resultdata = ZYGEncrypt.decode(databyte);
System.out.println(data);
System.out.println(new String(resultdata));
}
}
星际争霸2最低配置
法国开展SC2预售业务的游戏网站声称暴雪已透露星际争霸2的最低配置:
CPU:Pentium 4 3.06或AMD X2 3000+
内存:2GB
显卡:GF7900/ATIX1950XT
硬盘大小:5G
Windows Vista下可以更流畅运行.因为高3D精细度且保持了星际1的操作难度,为了应对激烈的对战操作而使之和魔兽区分开,故配置了2G内存的最低要求.
同时,StarCraft2对网络要求同样严格,虽保持原有的UDP、IPX数据传输协议,但是即时性要求更为严格,软件自带有网络检测系统,ping(延迟)超过30ms的玩家不能建立主机和进入别人主机,且游戏内的玩家必须一直低于30ms的ping(延迟),否则软件自动开始掉线计时,超时玩家将被踢出.
这样,对于普通玩家的PC升级提出更苛刻的要求,内存和显卡基本都要升级,同时得配备有Vista系统及达标的宽带类型,升级所需人民币至少1000-1600元.
IT人必读:不要做浮躁的人
1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。
2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。
3.看帮助,不要因为很难而自己是初学者所以就不看;帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂,总觉得不够直观。
4.不要被对象、属性、方法等词汇所迷惑;最根本的是先了解最基础知识。
5.不要放过任何一个看上去很简单的小问题–他们往往并不那么简单,或者可以引伸出很多知识点;不会举一反三你就永远学不会。
6.知道一点东西,并不能说明你会写脚本,脚本是需要经验积累的。
7.学脚本并不难,JSP、ASP、PHP等等也不过如此–难的是长期坚持实践和不遗余力的博览群书。
8.看再多的书是学不全脚本的,要多实践。
9.把时髦的技术挂在嘴边,还不如把过时的技术记在心里。
10.学习脚本最好的方法之一就是多练习。
11.在任何时刻都不要认为自己手中的书已经足够了。
12.看得懂的书,请仔细看;看不懂的书,请硬着头皮看。
13.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
14.请把书上的例子亲手到电脑上实践,即使配套光盘中有源文件;
15.把在书中看到的有意义的例子扩充;并将其切实的运用到自己的工作中。
16.不要漏掉书中任何一个练习——请全部做完并记录下思路;
17.当你用脚本到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个代码的完整性,然后分析自己的错误并重新编写和工作。
18.别心急,写脚本确实不容易;水平是在不断的实践中完善和发展的;
19.每学到一个脚本难点的时候,尝试着对别人讲解这个知识点并让他理解—-你能讲清楚才说明你真的理解了。
20.记录下在和别人交流时发现的自己忽视或不理解的知识点。
21.保存好你做过的所有的源文件—-那是你最好的积累之一。
22.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先你要学会自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!
23.到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己的帖子没人回的。
24,虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方,如果你总期望有高手总无偿指点你,除非他是你亲戚!!讨论者,起码是水平相当的才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你讨论呢。
网页RPG-《新剑侠情缘》
很多朋友还记得N年前的精典游戏--《仙剑》,是不是很怀念?那让我们来看看新的《仙剑》吧。网页RPG-《新剑侠情缘》
大家可能很难相信这是用JS写的,但这是事实。
“游戏素材取自金山游戏公司推出的《剑侠》系列,然后经过自己修改为该程序所用,因此这些素材版权都为金山所有。本游戏采用了目前最流行的Ajax的方式进行客户端和服务器端的交互,实现异步无刷新的保存和载入数据。客户端不需要安装任何插件即可进行该游戏。本游戏将逐步开放接口,供广大的游戏爱好者共同开发/完善,共同完成一款由游戏爱好者共同完成的免费游戏。”
让我们一起来看看这游戏吧。
地址:http://www.script8.com/bbs/project/newsword/ 这地址有点长是吧。嘿嘿。。。小站为各位做了个跳转
跳转地址:http://game.ardy.cn (好记多了吧! :) )
还有一点,就是游戏好像只能在IE5.5以上版本 FF是不支持的。
100|101|102|103|104,400,300
对自己很有帮助的问题
问: “ 转眼都07了。。明年小生也要毕业了,现在就业问题形式是相当的严峻。。特来请教各位前辈,Jave程序员工资能有多少?
希望大家都来说说,可以互相参考。不知道像我这样应届毕业的重点本科,刚在学校学完JSP,Servlet等等J2EE核心内容和PHP Web开发技术的学生毕业后能拿多少工资? ”
答: “几个数据库熟吗、JS熟吗、AJAX熟吗、HTML熟吗、CSS熟吗、XML熟吗、软件工程熟吗、EJB熟吗、STRUTS熟吗、SPRING熟吗、HIBERNATE熟吗、JDK5.0(java2)熟吗。作为一个程序员,如果上面的都熟,小地方薪水3000+,大地方6000+,再加上工作年数*0.5*基本薪水。
如果大部分不熟,试用期小地方600-800~大地方1500-2500~,转正了小地方1500-2800,大地方2500-4000,老老实实学点东西,会有赚大钱的一天。另外建议你~~,JAVA体系庞大(但不是很复杂)。光是要记要背的各种API,没个1,2年下不来,熟练使用更是要花很多时间。倘若不希望只停留在程序员等级,还得花时间复习你的数据结构,数学,网络,软件工程等等玩意~所以搞JAVA就搞JAVA,搞PHP就搞PHP,不要三心二意,因为你没时间。”
是啊,还有一年就毕业了。对临的主要问题就是就业。 看完这个问题后明确了自己的学习目标。
努力ing………..
成功源自不断的努力!
完美时空系列游戏因致命漏洞被黑客攻击
6月10日晚,完美时空所属的四个游戏陆续被黑客攻击,包括:完美世界、完美世界国际版、武林外传、诛仙,由于四个游戏属于同一引擎同一游戏模版,黑客利用最新的游戏漏洞对各服务器数据进行疯狂盗链.完美时空为避免玩家更大损失被迫陆续关闭四个游戏的所有服务器以及官方网站、官方论坛、公司网站.
完美时空承诺24小时之内所有游戏恢复正常。截至目前(11日凌晨3点)仍无任何服务器恢复正常的消息,某些游戏网站中出现了一些黑客组织宣布对此次攻击负责。
这次攻击很可能导致部分玩家游戏回档,甚至会出现无法弥补的数据错误,请玩家做好心理准备,据悉这是目前中国游戏公司最大范围的一次受袭。

