18-08-2012, 11:13 AM
Elliptical curve cryptography (ECC)
ELLIPTICAL-CRYPTO.doc (Size: 1.46 MB / Downloads: 2,020)
INTRODUCTION TO PROJECT
Sensor networks have applications in many areas, such as military, homeland security, health care, environment, agriculture, manufacturing, and so on. Most previous work on sensor networks considered homogeneous sensor networks, i.e., all sensor nodes have the same capability in terms of communication, computation, energy supply, storage space, reliability, etc. However, a homogeneous ad hoc network has poor fundamental limits and performance. Use of heterogeneous nodes in sensor networks is not new. Recently deployed sensor network systems are increasingly following heterogeneous designs, incorporating a mixture of sensors with widely varying capabilities.
OVERVIEW
Security is critical to sensor networks deployed in hostile environments, such as military battlefield. Security issues in homogeneous sensor networks have been extensively studied. Key management is an essential cryptographic primitive upon which other security primitives are built. Several key management schemes have been proposed for homogeneous sensor networks. In [9], Eschenauer and Gligor first present a key probabilistic pre-distribution scheme for key management in sensor networks. Later, a few other key pre-distribution schemes (e.g., [10~13]) have been proposed. Probabilistic key pre-distribution is a promising scheme for key management in sensor networks. To ensure the scheme works well, the probability that each sensor has at least one shared key with a neighbor sensor (referred to as key-sharing probability) should be high.
EXISTING SYSTEM
In Most existing key management schemes for sensor networks are designed to establish shared keys for all pairs of neighbor sensors, no matter whether they communicate with each other or not, and this causes large overhead. To achieve better security and performance, we adopt a Heterogeneous Sensor Network (HSN) model.
PROBLEM IDENTIFICATION
Probabilistic key pre-distribution is a promising scheme for key management in sensor networks. To ensure the scheme works well, the probability that each sensor has at least one shared key with a neighbor sensor (referred to as key- sharing probability) should be high. For the key pre-distribution scheme, each sensor randomly selects its key ring from a key pool of size P. When the key pool size is large, each sensor needs to pre-load a large number of keys to achieve a high key-sharing probability. For example, when P is 10,000, each sensor needs to pre-load more than 150 keys for a key sharing probability of 0.9 [9]. If the key length is 256 bits, then 150 keys require a storage space of 4,800 bytes. Such a storage requirement is too large for many sensor nodes. For example, a smart dust sensor [14] has only 8K bytes of program memory and 512 bytes of data memory. The above discussion shows that many existing key management schemes (e.g., [9-13]) require a large storage space for key pre-distribution and are not suitable for small sensor nodes.
PROPOSED SYSTEM
In Proposed System, we propose a novel routing-driven key management scheme, which only establishes shared keys for neighbor sensors that may communicate with each other. Recent work has demonstrated the feasibility of implementing Elliptic Curve Cryptography on small sensor nodes. We utilize Elliptic Curve Cryptography to design an efficient key management scheme for HSN. The performance evaluation and security analysis show that our key management scheme can provide better security with significant saving on sensor storage space and energy consumption than some existing key management schemes.
TECHNICAL SPECIFICATION
What is Java?
Java is an object oriented programming language developed by Sun Microsystems. Modeled on C++, java was designed to be small, simple and portable across platforms.
Java is also unusual in that each Java program is both compiled and interpreted. With a compiler, you translate a Java program into an intermediate language called Java byte codes--the platform-independent codes interpreted by the Java interpreter. With an interpreter, each Java byte code instruction is parsed and run on the computer. Compilation happens just once; interpretation occurs each time the program is executed. This figure illustrates how this works.
Every Java interpreter, whether it's a Java development tool or a Web browser that can run Java applets, is an implementation of the Java VM. The Java VM can also be implemented in hardware.
Java programs fall into two categories:
APPLICATION:
It is a program that we can execute from any operating system prompt. A special kind of application known as a server serves and supports clients on a network. Examples of servers include Web servers, proxy servers, mail servers, print servers, and boot servers. Another specialized program is a servlet. Servlets are similar to applets in that they are runtime extensions of applications. Instead of working in browsers, servlets run within Java servers, configuring the server.
APPLET:
It is a java program that executes inside a web page. It requires a java enabled browser which requires an interpreter. Applets are commonly used to enhance the interactivity of a web page, and deliver client-side content. Applets run in their own frame, and can display graphics, accept input from GUI components, and even open network connections. Due the potential security risks associated with running applets from external and potentially malicious sources, most web browsers limit file access, and impose additional restrictions on applets.
Stand-alone applications have no such restrictions, and a full range of functionality is provided for in the way of pre-written Java classes. Stand-alone applications can run as a console application (writing text to the screen or terminal window), or they can have a graphical user-interface, by opening a new window or dialog box.
The important thing required for writing stand-alone Java applications is a java compiler/interpreter. While there are commercial offerings available, such as Visual J++ and Borland JBuilder, a freely available SDK is available from Sun. It contains a compiler, interpreter, debugger.
Method overriding
Method Overriding, in object oriented programming, is a language feature that allows a subclass to provide a specific implementation of a method that is already provided by one of its super classes. The implementation in the subclass overrides (replaces) the implementation in the super class.
A subclass can give its own definition of methods which also happen to have the same signature as the method in its superclass. This means that the subclass's method has the same name and parameter list as the superclass's overridden method. Constraints on the similarity of return type vary from language to language, as some languages support covariance on return types.
Method overriding is an important feature that facilitates polymorphism in the design of object-oriented programs.
Some languages allow the programmer to prevent a method from being overridden, or disallow method overriding in certain core classes. This may or may not involve an inability to subclass from a given class.
In many cases, abstract classes are designed — i.e. classes that exist only in order to have specialized subclasses derived from them. Such abstract classes have methods that do not perform any useful operations and are meant to be overridden by specific implementations in the subclasses. Thus, the abstract superclass defines a common interface which all the subclasses inherit.
NETWORKING BASICS
Ken Thompson and Dennis Ritchie developed UNIX in concert with the C language at Bell Telephone Laboratories, Murray Hill, New Jersey, in 1969. In 1978, Bill Joy was leading a project at Cal Berkeley to add many new features to UNIX, such as virtual memory and full-screen display capabilities. By early 1984, just as Bill was leaving to found Sun Microsystems, he shipped 4.2BSD, commonly known as Berkeley UNIX.
4.2BSD came with a fast file system, reliable signals, interprocess communication, and, most important, networking. The networking support first found in 4.2 eventually became the de facto standard for the Internet. Berkeley’s implementation of TCP/IP remains the primary standard for communications with the Internet. The socket paradigm for interprocess and network communication has also been widely adopted outside of Berkeley.
ELLIPTICAL-CRYPTO.doc (Size: 1.46 MB / Downloads: 2,020)
INTRODUCTION TO PROJECT
Sensor networks have applications in many areas, such as military, homeland security, health care, environment, agriculture, manufacturing, and so on. Most previous work on sensor networks considered homogeneous sensor networks, i.e., all sensor nodes have the same capability in terms of communication, computation, energy supply, storage space, reliability, etc. However, a homogeneous ad hoc network has poor fundamental limits and performance. Use of heterogeneous nodes in sensor networks is not new. Recently deployed sensor network systems are increasingly following heterogeneous designs, incorporating a mixture of sensors with widely varying capabilities.
OVERVIEW
Security is critical to sensor networks deployed in hostile environments, such as military battlefield. Security issues in homogeneous sensor networks have been extensively studied. Key management is an essential cryptographic primitive upon which other security primitives are built. Several key management schemes have been proposed for homogeneous sensor networks. In [9], Eschenauer and Gligor first present a key probabilistic pre-distribution scheme for key management in sensor networks. Later, a few other key pre-distribution schemes (e.g., [10~13]) have been proposed. Probabilistic key pre-distribution is a promising scheme for key management in sensor networks. To ensure the scheme works well, the probability that each sensor has at least one shared key with a neighbor sensor (referred to as key-sharing probability) should be high.
EXISTING SYSTEM
In Most existing key management schemes for sensor networks are designed to establish shared keys for all pairs of neighbor sensors, no matter whether they communicate with each other or not, and this causes large overhead. To achieve better security and performance, we adopt a Heterogeneous Sensor Network (HSN) model.
PROBLEM IDENTIFICATION
Probabilistic key pre-distribution is a promising scheme for key management in sensor networks. To ensure the scheme works well, the probability that each sensor has at least one shared key with a neighbor sensor (referred to as key- sharing probability) should be high. For the key pre-distribution scheme, each sensor randomly selects its key ring from a key pool of size P. When the key pool size is large, each sensor needs to pre-load a large number of keys to achieve a high key-sharing probability. For example, when P is 10,000, each sensor needs to pre-load more than 150 keys for a key sharing probability of 0.9 [9]. If the key length is 256 bits, then 150 keys require a storage space of 4,800 bytes. Such a storage requirement is too large for many sensor nodes. For example, a smart dust sensor [14] has only 8K bytes of program memory and 512 bytes of data memory. The above discussion shows that many existing key management schemes (e.g., [9-13]) require a large storage space for key pre-distribution and are not suitable for small sensor nodes.
PROPOSED SYSTEM
In Proposed System, we propose a novel routing-driven key management scheme, which only establishes shared keys for neighbor sensors that may communicate with each other. Recent work has demonstrated the feasibility of implementing Elliptic Curve Cryptography on small sensor nodes. We utilize Elliptic Curve Cryptography to design an efficient key management scheme for HSN. The performance evaluation and security analysis show that our key management scheme can provide better security with significant saving on sensor storage space and energy consumption than some existing key management schemes.
TECHNICAL SPECIFICATION
What is Java?
Java is an object oriented programming language developed by Sun Microsystems. Modeled on C++, java was designed to be small, simple and portable across platforms.
Java is also unusual in that each Java program is both compiled and interpreted. With a compiler, you translate a Java program into an intermediate language called Java byte codes--the platform-independent codes interpreted by the Java interpreter. With an interpreter, each Java byte code instruction is parsed and run on the computer. Compilation happens just once; interpretation occurs each time the program is executed. This figure illustrates how this works.
Every Java interpreter, whether it's a Java development tool or a Web browser that can run Java applets, is an implementation of the Java VM. The Java VM can also be implemented in hardware.
Java programs fall into two categories:
APPLICATION:
It is a program that we can execute from any operating system prompt. A special kind of application known as a server serves and supports clients on a network. Examples of servers include Web servers, proxy servers, mail servers, print servers, and boot servers. Another specialized program is a servlet. Servlets are similar to applets in that they are runtime extensions of applications. Instead of working in browsers, servlets run within Java servers, configuring the server.
APPLET:
It is a java program that executes inside a web page. It requires a java enabled browser which requires an interpreter. Applets are commonly used to enhance the interactivity of a web page, and deliver client-side content. Applets run in their own frame, and can display graphics, accept input from GUI components, and even open network connections. Due the potential security risks associated with running applets from external and potentially malicious sources, most web browsers limit file access, and impose additional restrictions on applets.
Stand-alone applications have no such restrictions, and a full range of functionality is provided for in the way of pre-written Java classes. Stand-alone applications can run as a console application (writing text to the screen or terminal window), or they can have a graphical user-interface, by opening a new window or dialog box.
The important thing required for writing stand-alone Java applications is a java compiler/interpreter. While there are commercial offerings available, such as Visual J++ and Borland JBuilder, a freely available SDK is available from Sun. It contains a compiler, interpreter, debugger.
Method overriding
Method Overriding, in object oriented programming, is a language feature that allows a subclass to provide a specific implementation of a method that is already provided by one of its super classes. The implementation in the subclass overrides (replaces) the implementation in the super class.
A subclass can give its own definition of methods which also happen to have the same signature as the method in its superclass. This means that the subclass's method has the same name and parameter list as the superclass's overridden method. Constraints on the similarity of return type vary from language to language, as some languages support covariance on return types.
Method overriding is an important feature that facilitates polymorphism in the design of object-oriented programs.
Some languages allow the programmer to prevent a method from being overridden, or disallow method overriding in certain core classes. This may or may not involve an inability to subclass from a given class.
In many cases, abstract classes are designed — i.e. classes that exist only in order to have specialized subclasses derived from them. Such abstract classes have methods that do not perform any useful operations and are meant to be overridden by specific implementations in the subclasses. Thus, the abstract superclass defines a common interface which all the subclasses inherit.
NETWORKING BASICS
Ken Thompson and Dennis Ritchie developed UNIX in concert with the C language at Bell Telephone Laboratories, Murray Hill, New Jersey, in 1969. In 1978, Bill Joy was leading a project at Cal Berkeley to add many new features to UNIX, such as virtual memory and full-screen display capabilities. By early 1984, just as Bill was leaving to found Sun Microsystems, he shipped 4.2BSD, commonly known as Berkeley UNIX.
4.2BSD came with a fast file system, reliable signals, interprocess communication, and, most important, networking. The networking support first found in 4.2 eventually became the de facto standard for the Internet. Berkeley’s implementation of TCP/IP remains the primary standard for communications with the Internet. The socket paradigm for interprocess and network communication has also been widely adopted outside of Berkeley.