java毕业设计外文文献.doc

上传人:文库蛋蛋多 文档编号:2386939 上传时间:2023-02-17 格式:DOC 页数:17 大小:58KB
返回 下载 相关 举报
java毕业设计外文文献.doc_第1页
第1页 / 共17页
java毕业设计外文文献.doc_第2页
第2页 / 共17页
java毕业设计外文文献.doc_第3页
第3页 / 共17页
java毕业设计外文文献.doc_第4页
第4页 / 共17页
java毕业设计外文文献.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《java毕业设计外文文献.doc》由会员分享,可在线阅读,更多相关《java毕业设计外文文献.doc(17页珍藏版)》请在三一办公上搜索。

1、毕业设计说明书Core JavaJava核心技术软件学院学生姓名: 学号: 软件工程学 院: 专 业: 指导教师: 2014 年 6 月Core Java When Java technology first appeared on the scene, the excitement was not about a well-crafted programming language but about the possibility of safely executing applets that are delivered over the Internet (see Volume I, C

2、hapter 10 for more information about applets). Obviously, delivering executable applets is practical only when the recipients are sure that the code cant wreak havoc on their machines. For this reason, security was and is a major concern of both the designers and the users of Java technology. This m

3、eans that unlike other languages and systems, where security was implemented as an afterthought or a reaction to break-ins, security mechanisms are an integral part of Java technology.Three mechanisms help ensure safety:Language design features (bounds checking on arrays, no unchecked type conversio

4、ns, no pointer arithmetic, and so on).An access control mechanism that controls what the code can do (such as file access, network access, and so on).Code signing, whereby code authors can use standard cryptographic algorithms to authenticate Java code. Then, the users of the code can determine exac

5、tly who created the code and whether the code has been altered after it was signed. Below, youll see the cryptographic algorithms supplied in the java.security package, which allow for code signing and user authentication.As we said earlier, applets were what started the craze over the Java platform

6、. In practice, people discovered that although they could write animated applets like the famous nervous text applet, applets could not do a whole lot of useful stuff in the JDK 1.0 security model. For example, because applets under JDK 1.0 were so closely supervised, they couldnt do much good on a

7、corporate intranet, even though relatively little risk attaches to executing an applet from your companys secure intranet. It quickly became clear to Sun that for applets to become truly useful, it was important for users to be able to assign different levels of security, depending on where the appl

8、et originated. If an applet comes from a trusted supplier and it has not been tampered with, the user of that applet can then decide whether to give the applet more privileges.To give more trust to an applet, we need to know two things:Where did the applet come from?Was the code corrupted in transit

9、?In the past 50 years, mathematicians and computer scientists have developed sophisticated algorithms for ensuring the integrity of data and for electronic signatures. The java.security package contains implementations of many of these algorithms. Fortunately, you dont need to understand the underly

10、ing mathematics to use the algorithms in the java.security package. In the next sections, we show you how message digests can detect changes in data files and how digital signatures can prove the identity of the signer.A message digest is a digital fingerprint of a block of data. For example, the so

11、-called SHA1 (secure hash algorithm #1) condenses any data block, no matter how long, into a sequence of 160 bits (20 bytes). As with real fingerprints, one hopes that no two messages have the same SHA1 fingerprint. Of course, that cannot be truethere are only 2160 SHA1 fingerprints, so there must b

12、e some messages with the same fingerprint. But 2160 is so large that the probability of duplication occurring is negligible. How negligible? According to James Walsh in True Odds: How Risks Affect Your Everyday Life (Merritt Publishing 1996), the chance that you will die from being struck by lightni

13、ng is about one in 30,000. Now, think of nine other people, for example, your nine least favorite managers or professors. The chance that you and all of them will die from lightning strikes is higher than that of a forged message having the same SHA1 fingerprint as the original. (Of course, more tha

14、n ten people, none of whom you are likely to know, will die from lightning strikes. However, we are talking about the far slimmer chance that your particular choice of people will be wiped out.)A message digest has two essential properties:If one bit or several bits of the data are changed, then the

15、 message digest also changes.A forger who is in possession of a given message cannot construct a fake message that has the same message digest as the original.The second property is again a matter of probabilities, of course. Consider the following message by the billionaire father:Upon my death, my

16、 property shall be divided equally among my children; however, my son George shall receive nothing.That message has an SHA1 fingerprint of2D 8B 35 F3 BF 49 CD B1 94 04 E0 66 21 2B 5E 57 70 49 E1 7EThe distrustful father has deposited the message with one attorney and the fingerprint with another. No

17、w, suppose George can bribe the lawyer holding the message. He wants to change the message so that Bill gets nothing. Of course, that changes the fingerprint to a completely different bit pattern:2A 33 0B 4B B3 FE CC 1C 9D 5C 01 A7 09 51 0B 49 AC 8F 98 92Can George find some other wording that match

18、es the fingerprint? If he had been the proud owner of a billion computers from the time the Earth was formed, each computing a million messages a second, he would not yet have found a message he could substitute.A number of algorithms have been designed to compute these message digests. The two best

19、-known are SHA1, the secure hash algorithm developed by the National Institute of Standards and Technology, and MD5, an algorithm invented by Ronald Rivest of MIT. Both algorithms scramble the bits of a message in ingenious ways. For details about these algorithms, see, for example, Cryptography and

20、 Network Security, 4th ed., by William Stallings (Prentice Hall 2005). Note that recently, subtle regularities have been discovered in both algorithms. At this point, most cryptographers recommend avoiding MD5 and using SHA1 until a stronger alternative becomes available.(See HTTP:/ abs/node.asp?id=

21、2834 for more information.)The Java programming language implements both SHA1 and MD5. The Message-digest class is a factory for creating objects that encapsulate the fingerprinting algorithms. It has a static method, called get instance, that returns an object of a class that extends the MessageDig

22、est class. This means the MessageDigest class serves double duty:As a factory classAs the superclass for all message digest algorithmsFor example, here is how you obtain an object that can compute SHA fingerprints:MessageDigest alg = MessageDigest.get instance(SHA-1);(To get an object that can compu

23、te MD5, use the string MD5 as the argument to get instance.)After you have obtained a MessageDigest object, you feed it all the bytes in the message by repeatedly calling the update method. For example, the following code passes all bytes in a file to the alg object just created to do the fingerprin

24、ting:Input-stream in = . . .int ch;while (ch = in.read() != -1)alg.update(byte) ch);Alternatively, if you have the bytes in an array, you can update the entire array at once:byte bytes = . . .;alg.update(bytes);When you are done, call the digest method. This method pads the inputas required by the f

25、ingerprinting algorithmdoes the computation, and returns the digest as an array of bytes.byte hash = alg.digest();The program in Listing 9-15 computes a message digest, using either SHA or MD5. You can load the data to be digested from a file, or you can type a message in the text area. Message Sign

26、ingIn the last section, you saw how to compute a message digest, a fingerprint for the original message. If the message is altered, then the fingerprint of the altered message will not match the fingerprint of the original. If the message and its fingerprint are delivered separately, then the recipi

27、ent can check whether the message has been tampered with. However, if both the message and the fingerprint were intercepted, it is an easy matter to modify the message and then recompute the fingerprint. After all, the message digest algorithms are publicly known, and they dont require secret keys.

28、In that case, the recipient of the forged message and the recomputed fingerprint would never know that the message has been altered. Digital signatures solve this problem.To help you understand how digital signatures work, we explain a few concepts from the field called public key cryptography. Publ

29、ic key cryptography is based on the notion of a public key and private key. The idea is that you tell everyone in the world your public key. However, only you hold the private key, and it is important that you safeguard it and dont release it to anyone else. The keys are matched by mathematical rela

30、tionships, but the exact nature of these relationships is not important for us. (If you are interested, you can look it up in The Handbook of Applied Cryptography at HTTP:/WWW.car.math.waterlog.ca/hae/.)The keys are quite long and complex. For example, here is a matching pair of public and private D

31、igital Signature Algorithm (DSA) keys.Public key:Code View:p:fca682ce8e12caba26efccf7110e526db078b05edecbcd1eb4a208f3ae1617ae01f35b91a47e6df63413c5e12ed0899bcd132acd50d99151bdc43ee737592e17q: 962eddcc369cba8ebb260ee6b6a126d9346e38c5g:678471b27a9cf44ee91a49c5147db1a9aaf244f05a434d6486931d2d14271b9e35

32、030b71fd73da179069b32e2935630e1c2062354d0da20a6c416e50be794ca4y:c0b6e67b4ac098eb1a32c5f8c4c1f0e7e6fb9d832532e27d0bdab9ca2d2a8123ce5a8018b8161a760480fadd040b927281ddb22cb9bc4df596d7de4d1b977d50 Private key:Code View:p:fca682ce8e12caba26efccf7110e526db078b05edecbcd1eb4a208f3ae1617ae01f35b91a47e6df6341

33、3c5e12ed0899bcd132acd50d99151bdc43ee737592e17q: 962eddcc369cba8ebb260ee6b6a126d9346e38c5g:678471b27a9cf44ee91a49c5147db1a9aaf244f05a434d6486931d2d14271b9e35030b71fd73da179069b32e2935630e1c2062354d0da20a6c416e50be794ca4x: 146c09f881656cc6c51f27ea6c3a91b85ed1d70aIt is believed to be practically imposs

34、ible to compute one key from the other. That is, even though everyone knows your public key, they cant compute your private key in your lifetime, no matter how many computing resources they have available.It might seem difficult to believe that nobody can compute the private key from the public keys

35、, but nobody has ever found an algorithm to do this for the encryption algorithms that are in common use today. If the keys are sufficiently long, brute forcesimply trying all possible keyswould require more computers than can be built from all the atoms in the solar system, crunching away for thous

36、ands of years. Of course, it is possible that someone could come up with algorithms for computing keys that are much more clever than brute force. For example, the RSA algorithm (the encryption algorithm invented by Rivest, Sha mir, and Alleman) depends on the difficulty of factoring large numbers.

37、For the last 20 years, many of the best mathematicians have tried to come up with good factoring algorithms, but so far with no success. For that reason, most cryptographers believe that keys with a modulus of 2,000 bits or more are currently completely safe from any attack. DSA is believed to be si

38、milarly secure.Figure 9-12 illustrates how the process works in practice.Suppose Alice wants to send Bob a message, and Bob wants to know this message came from Alice and not an impostor. Alice writes the message and then signs the message digest with her private key. Bob gets a copy of her public k

39、ey. Bob then applies the public key to verify the signature. If the verification passes, then Bob can be assured of two facts:The original message has not been altered.The message was signed by Alice, the holder of the private key that matches the public key that Bob used for verification.You can se

40、e why security for private keys is all-important. If someone steals Alices private key or if a government can require her to turn it over, then she is in trouble. The thief or a government agent can impersonate her by sending messages, money transfer instructions, and so on, that others will believe

41、 came from Alice.The X.509 Certificate FormatTo take advantage of public key cryptography, the public keys must be distributed. One of the most common distribution formats is called X.509. Certificates in the X.509 format are widely used by VeriSign, Microsoft, Netscape, and many other companies, fo

42、r signing e-mail messages, authenticating program code, and certifying many other kinds of data. The X.509 standard is part of the X.500 series of recommendations for a directory service by the international telephone standards body, the CCITT.The precise structure of X.509 certificates is described

43、 in a formal notation, called abstract syntax notation #1 or ASN.1. Figure 9-13 shows the ASN.1 definition of version 3 of the X.509 format. The exact syntax is not important for us, but, as you can see, ASN.1 gives a precise definition of the structure of a certificate file. The basic encoding rule

44、s, or BER, and a variation, called distinguished encoding rules (DER) describe precisely how to save this structure in a binary file. That is, BER and DER describe how to encode integers, character strings, bit strings, and constructs such as SEQUENCE, CHOICE, and OPTIONAL.Java核心技术当Java技术刚刚问世时,令人激动的

45、并不是因为它是一个设计完美的编程语言,而是因为它能够安全地运行通过因特网传播的各种applet。很显然,只有当用户确信applet的代码不会破坏他的计算机时,用户才会接受在网上传播的可执行的applet。正因为如此,无论过去还是现在,安全都是设计人员和Java技术使用者所关心的一个重大问题。这就意味着,Java技术与其他的语言和系统有所不同,在那些语言和系统中安全是事后才想到要去实现的,或者仅仅是对破坏的一种应对措施,而对Java技术来说,安全机制是一个不可分割的组成部分。Java技术提供了以下三种确保安全的机制:(1)语言设计特性(对数组的边界进行检查,无不检查类型的转换,无指针算法等)。(

46、2)访问控制机制,用于控制代码能够执行的功能(比如文件访问,网络访问等)。(3) 代码签名,利用该特性,代码的作者就能够用标准的加密算法来表明Java代码的身份。这样,该代码的使用者就能够准确地知道谁创建了该代码,以及代码被标识后是否被修改过。下面,我们要介绍java.security包提供的加密算法,用来进行代码的标识和用户身份认证。正如我们前面所说,applet 是在Java平台上开始流行起来的。实际上,人们发现尽管他们可以编写像著名的“nervous text”那样栩栩如生的applet,但是在JDK1.0安全模式下无法发挥其一整套非常有用的作用。例如,由于JDK1.0下的applet要

47、受到严密的监督,因此,即使applet在公司安全内部网上运行时的风险相对较小,applet也无法在企业内部网上发挥很大的作用。Sun公司很快就认识到,要使applet真正变得非常有用,用户必须可以根据applet的来源为其分配不同的安全级别。如果applet来自值得信赖的提供商,并且没有被篡改过,那么applet的用户就可以决定是否给applet授予更多的运行特权。 如果要给予applet更多的信赖,你必须知道下面两件事:(1)applet来自哪里?(2)在传输过程中代码是否被破坏?在过去的50年里,数学家和技术机科学家已经开发出各种各样成熟的算法,用于确保数据和电子签名的完整性,在java.

48、security包中包含了许多这些算法的实现。在下面几节,我们将要介绍消息摘要是如何检测数据文件中的变化的,以及数字签名是如何证明签名者的身份的。消息摘要是数据块的数字指纹。例如,所谓的SHA1(安全散列算法#1)可将任何数据块,无论其数据有多长,都压缩为160位(20字节)的序列。与真实的指纹一样,人们希望任何两条消息都不会有相同的SHA1指纹。当然这是不可能的因为只存在2160 个SHA1指纹,所有肯定会有某些消息具有相同的指纹。因为2160 是一个很大的数字,所以存在重复指纹的可能性微乎其微,那么这种重复的可能性到底小到什么程度呢?根据James Walsh在他的True Odds:How Risks Affect Your Everyday Life,Merritt Publishing出版社1996年出版,一书中所阐述的,你和他们所有的人都死于雷击的概率,比伪造的消息与原来消息具有相同的SH

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号