S.No Particulars Page No
S.No Particulars Page No
S.No 1 Particulars Introduction 1.1 About the Project 1.2 Benefits of Efficient Key Agreement for Large and Dynamic Multicast Groups Organization Profile System Analysis 3.1 Existing System 3.2 Limitations of Existing System 3.3 Proposed System 3.4 Advantages of Proposed System Problem Formulation 4.1 Objectives 4.2 Software Requirement Specifications 4.3 Software Description System Design 5.1 Design Overview 5.2 Context Diagram 5.3 Data Flow Diagram 5.4 Architectural Design 5.5 Sequence Diagram 5.6 Usecase Diagram System Testing 6.1 Unit Testing 6.2 Integration Testing 6.3 Acceptance Testing Implementation Conclusion Future Enhancements Bibliography Appendixes Appendix A: Screen Shots Page No
2 3
7 8 9 10 11
Abstract
Title : Efficient key Agreement for Large and Dynamic Multicast Groups The Efficient key Agreement for Large and Dynamic Multicast Groups is used as the core component of many web and multimedia applications such as pay-TV, teleconferencing, real-time distribution of stock market price and etc. The main challenges for secure multicast are scalability, efficiency and authenticity. In this project, we propose a scalable, efficient, authenticated group key agreement scheme for large and dynamic multicast systems. The proposed key agreement scheme is identity-based which uses the bilinear map over the elliptic curves. Compared with the existing system, the proposed system provides group member authenticity without imposing extra mechanism. Furthermore, we give a scalability solution based on the subgroups, which has advantages over the existing schemes. Security analysis shows that our scheme satisfies both forward secrecy and backward secrecy. The objectives of the project are as follows: Design the single multicast group. Generation of private keys for users. Encoding and decoding of text message Secure transmission of session key by using the algorithm Data Encryption Standard (DES). Design the multi group with multiple data stream in such a way that reduced overhead of key server. The modules that are include in this project are, 1. Key Generation Generate Private Keys
1. Introduction
1.1 About the Project The Efficient Key Agreement for Large and Dynamic Multicast Groups provides an efficient way of Group key Agreement in terms of Scalability and Authenticity between the Sub group members and to other group members in the network. The Existing system have the drawbacks such as the Group Controller takes all responsibilities of key generation, re keys generation, message transmission to its sub group members and also to any other group controllers. So lot of bottlenecks to the group controller in the sub group. The sub groups members are not able to send informations to any other subgroup at the time of re keying process. So performance of the sub group degrade at that time. The re keying process is done every time once a communication is completed between the users in the same group or to any other group members. One of the main challenges for secure multicast is access control for making sure that only legitimate members of multicast group have access to the group communication. In the passed two or three decades, cryptography has become the well established means to solve the security problems in networking. However, there are still a lot of difficulties for directly deploying cryptography algorithms into multicasting environment as what has been done for unicasting environment. The commonly used technique to secure multicast communication is to maintain a group key that is known to all users in the multicast group, but is unknown to any one outside the group. Efficiently managing the group key is a difficult problem for large dynamic groups. Each time a member is added to or evicted from the communication group, the group key must be refreshed. The members in the group must be able to compute the new group key efficiently, at the same time forward and backward secrecy must be guaranteed. Because the group re keying is very consumptive and frequently performed due to the nature of multicast communication, the way to update it in a scalable and secure fashion is required.
Benefits of Efficient key Agreement for Large and Dynamic Multicast groups Use identity tree based structure Less over head on key generation process The Group controller responsibilities can be shared by other members in the group (Group control Intermediate ) Centralized server for the key generation process The group members in the same group directly communicate with each other without having the permission of authority persons. The Group controller key is act as a group key for group to group communication and scalability of the group The group members are not affected by the key generation process when they communicate with any other groups
3. System Analysis
3.1 Existing System In the Existing system we use Iolus approach proposed the notion of hierarchy subgroup for scalable and secure multicast. In this method, a large communication group is divided into smaller subgroups. Each subgroup is treated almost like a separate multicast group and is managed by a trusted group security intermediary (GSI). GSI connect between the subgroups and share the subgroup key with each of their subgroup members. GSIs act as message relays and key translators between the subgroups by receiving the multicast messages from one subgroup, decrypting them and then re multicasting to the next subgroup after encrypting them by the subgroup key of the next subgroup. The GSIs are also grouped in a top-level group that is managed by a group security controller (GSC). When a group member joins or leaves only affect subgroup only while the other subgroup will not be affected. It has the drawback of affecting data path. This occurs in the sense that there is a need for translating the data that goes from one subgroup, and thereby one key, to another. This becomes even more problematic when it takes into account that the GSI has to manage the subgroup and perform the translation needed. The GSI may thus become the bottleneck. 3.2 Limitations of Existing System The Group controller takes all responsibilities for the group such as key generation, re keying process and message transfer to any other groups The group members are not able to communicate with any other groups during the re keying process The Group controller maintains logical key tree where each nodes represents a key encryption key. The root of the key tree is the group key used for encrypting data in group communications and it is shared by all Users
3.3 Proposed System. The advantages over the existing system are, we use an identity tree instead of key tree in our scheme. Each node in the identity tree is associated with an identity. The leaf nodes identity is corresponding to the users identity and the intermediate nodes identity is generated by its childrens identity. Hence, in an identity tree, an intermediate node represents a set users in the sub tree rooted at this node. The keys used in each subgroup can be generated by a group of key generation centers (KGCs) in parallel. All the members in the same subgroup can compute the same subgroup key though the keys for them are generated by different KGCs. This is a desirable feature especially for the large-scale network systems, because it minimizes the problem of concentrating the workload on a single entity. 3.4 Advantages of Proposed System The Group controller responsibilities are shared by the Group control intermediater such as Re keying process and scalability of the group process Use the Identity tree based structure The group members are not affected by the key generation process when they are willing to communicate with any other group members The Centralized key server used for key generation process and the KGC is also act as a Router for group to group communication The Re keying process is done only to the particular group members not to the entire group members
4. Problem Formulation
Objectives The objectives of the project are as follows: Design the single multicast group. Generation of private keys for users. Encoding and decoding of text message Secure transmission of session key by using the algorithm Data Encryption Standard (DES). Design the multi group with multiple data stream in such a way that reduced overhead of key server. Use Identity tree based structure. Each node in the identity tree is associated with an identity. The leaf nodes identity is corresponding to the users identity and the intermediate nodes identity is generated by its childrens identity. Hence, in an identity tree, an intermediate node represents a set of users in the sub tree rooted at this node.
Software Requirement Specification The software requirement specification is produced at the culmination of the analysis task. The function and performance allocated to software as part of system engineering are refined by establishing a complete information description as functional representation, a representation of system behavior, an indication of performance requirements and design constraints, appropriate validation criteria. User Interface * Swing - Swing is a set of classes that provides more powerful and flexible components that are possible with AWT. In addition to the familiar components, such as button checkboxes and labels, swing supplies several exciting additions, including tabbed panes, scroll panes, trees and tables. * Applet - Applet is a dynamic and interactive program that can run inside a web page displayed by a java capable browser such as hot java or Netscape. Hardware Interface Hard disk RAM Processor Speed Processor Software Interface JDK 1.5 Java Swing MS-Access/SQL Server : 40 GB : 512 MB : 3.00GHz : Pentium IV Processor
Software Description
What is JAVA? Java ha two things: a programming language and a platform. Java is a high-level programming language that is all of the following Simple Object-oriented Portable Distributed Interpreted Robust Architecture-neutral Secure High-performance Multithreaded Dynamic
Java is also unusual in that each Java program is both compiled and interpreted. With a compile you translate a Java program into an intermediate language called Java byte codes the platform-independent code instruction is passed and run on the computer. Compilation happens just once; interpretation occurs each time the program is executed. The figure illustrates how this works.
Java Program
Interpreter
Compilers
My Program
You can think of Java byte codes as the machine code instructions for the Java Virtual Machine (Java VM). Every Java interpreter, whether its 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 byte codes help make write once, run anywhere possible. You can compile your Java program into byte codes on my platform that has a Java compiler. The byte codes can then be run any implementation of the Java VM. For example, the same Java program can run Windows NT, Solaris, and Macintosh. Java Platform A platform is the hardware of software environment in which a program runs. The Java platform differs from most other platforms in that its a software only platform that runs on the top of other, hardware-based platform. Most other platforms are described as a combination of hardware and operating system. The Java platform has two components: The Java Virtual Machine (Java VM) The Java Application Programming Interface (Java API) Youve already been introduced to the Java VM. Its the base for the Java platform and is ported onto various hardware-based platforms. The Java API is a large collection of ready-made software components that provide many useful capabilities, such as graphical user interface (GUI) widgets.
The Java API is grouped into libraries (package) of related components. The next sections, what can Java do? Highlights each area of functionally provided by the package in the Java API. How does the Java API support all of these kinds of programs? With packages of software components that provide a wide range of functionality. The API is the API included in every full implementation of the platform. The core API gives you the following features: The Essentials: Objects, Strings, threads, numbers, input and output, data structures, system properties, date and time, and so on. Applets: The set of conventions used by Java applets. Networking: URLs TCP and UDP sockets and IP addresses. Internationalization: Help for writing programs that can be localized for users. Worldwide programs can automatically adapt to specific locates and be displayed in the appropriate language.
Java Program Java API Java Virtual Machine Java Program Hard Ware API and Virtual Machine insulates the Java program from hardware dependencies. As a platform-independent environment, Java can be a bit slower than native code. However, smart compilers, well-tuned interpreters, and Just-in-time-byte-code compilers can bring Javas performance close to the native code without threatening portability. What can Java do? However, Java is not just for writing cut, entertaining applets for the World Wide Web (WWW). Java is a general purpose, high-level programming language and a powerful software platform. Using the fineries Java API, you can write many types of programs.
Networking This article is about a client/server multi-threaded socket class. The thread is optional since the developer is still responsible to decide if needs it. There are other Socket classes here and other places over the Internet but none of them can provide feedback (event detection) to your application like this one does. It provides you with the following events detection: connection established, connection dropped, connection failed and data reception (including 0 byte packet). Description This article presents a new socket class which supports both TCP and UDP communication. But it provides some advantages compared to other classes that you may find here or on some other Socket Programming articles. First of all, this class doesn't have any limitation like the need to provide a window handle to be used. This limitation is bad if all you want is a simple console application. So this library doesn't have such a limitation. It also provides threading support automatically for you, which handles the socket connection and disconnection to a peer. It also features some options not yet found in any socket classes that I have seen so far. It supports
both client and server sockets. A server socket can be referred as to a socket that can accept many connections. And a client socket is a socket that is connected to server socket. You may still use this class to communicate between two applications without establishing a connection. In the latter case, you will want to create two UDP server sockets (one for each application). This class also helps reduce coding need to create chat-like applications and IPC (Inter-Process Communication) between two or more applications (processes). Reliable communication between two peers is also supported with TCP/IP with error handling. You may want to use the smart addressing operation to control the destination of the data being transmitted (UDP only). TCP operation of this class deals only with communication between two peers. Analysis of Network Client Server TCP/IP stack The TCP/IP stack is shorter than the OSI one:
IP datagrams The IP layer provides a connectionless and unreliable delivery system. It considers each datagram independently of the others. Any association between datagram must be supplied by the higher layers. The IP layer supplies a checksum that includes its own header. The header includes the source and destination addresses. The IP layer handles routing through an Internet. It is also responsible for breaking up large datagram into smaller ones for transmission and reassembling them at the other end. UDP UDP is also connectionless and unreliable. What it adds to IP is a checksum for the contents of the datagram and port numbers. TCP TCP supplies logic to give a reliable connection-oriented protocol above IP. It provides a virtual circuit that two processes can use to communicate. Internet addresses In order to use a service, you must be able to find it. The Internet uses an address scheme for machines so that they can be located. The address is a 32 bit integer which gives the IP address. This encodes a network ID and more addressing. The network ID falls into various classes according to the size of the network address. Network address Class A uses 8 bits for the network address with 24 bits left over for other addressing. Class B uses 16 bit network addressing. Class C uses 24 bit network addressing and class D uses all 32. Subnet address Internally, the UNIX network is divided into sub networks. Building 11 is currently on one sub network and uses 10-bit addressing, allowing 1024 different hosts.
Host address 8 bits are finally used for host addresses within our subnet. This places a limit of 256 machines that can be on the subnet. Port addresses A service exists on a host, and is identified by its port. This is a 16 bit number. To send a message to a server, you send it to the port for that service of the host that it is running on. This is not location transparency! Certain of these ports are "well known". Sockets A socket is a data structure maintained by the system to handle network connections. A socket is created using the call socket. It returns an integer that is like a file descriptor. ServerSocket A ServerSocket listens for the Socket request and performs message handling functions, file sharing, database sharing functions etc. JDBC In an effort to set an independent database standard API for Java, Sun Microsystems developed Java Database Connectivity, or JDBC. JDBC offers a generic SQL database access mechanism that provides a consistent interface to a variety of RDBMS. This consistent interface is achieved through the use of plug-in database connectivity modules, or drivers. If a database vendor wishes to have JDBC support, he or she must provide the driver for each platform that the database and Java run on. To gain a wider acceptance of JDBC, Sun based JDBCs framework on ODBC. As you discovered earlier in this chapter, ODBC has widespread support on a variety of platforms. Basing JDBC on ODBC will allow vendors to bring JDBC drivers to market much faster than developing a completely new connectivity solution. JDBC Goals Few software packages are designed without goals in mind. JDBC is one that, because of its many goals, drove the development of the API. These goals, in conjunction
with early reviewer feedback, have finalized the JDBC class library into a solid framework for building database applications in Java. The goals that were set for JDBC are important. They will give you some insight as to why certain classes and functionalities behave the way they do. The eight design goals for JDBC are as follows: 1. SQL Level API
The designers felt that their main goal was to define a SQL interface for Java. Although not the lowest database interface level possible, it is at a low enough level for higherlevel tools and APIs to be created. Conversely, it is at a high enough level for application programmers to use it confidently. Attaining this goal allows for future tool vendors to generate JDBC code and to hide many of JDBCs complexities from the end user.
2. SQL Conformance
SQL syntax varies as you move from database vendor to database vendor. In an effort to support a wide variety of vendors, JDBC will allow any query statement to be passed through it to the underlying database driver. This allows the connectivity module to handle non-standard functionality in a manner that is suitable for its users.
4. Provide a Java interface that is consistent with the rest of the Java system
Because of Javas acceptance in the user community thus far, the designers feel that they should not stray from the current design of the core Java system.
5. Keep it simple
This goal probably appears in all software design goal listings. JDBC is no exception. Sun felt that the design of JDBC should be very simple, allowing for only one method of completing a task per mechanism. Allowing duplicate functionality only serves to confuse the users of the API.
SELECTs, INSERTs, DELETEs and UPDATEs, these queries should be simple to perform with JDBC. However, more complex SQL statements should also be possible.
5. System Design
5.1 Design Overview 1. Key Generation Private Key: The Private Key is generated using Elliptic Curves Algorithm. The GC (Group Controller) sends his number of group members to the KGN (Key Generation Center). The keys are generated by the KGN and submitted to the GC. Session Key: In session key generation, initially sixteen decimal digits are generated by using random number generation method .Then each decimal digit is splited and compared with pre determined binary format. In DES algorithm the 64 bits session key is considered as a message file and generated users private key is considered as a key file. DES algorithm encrypts the session key by using users private key and transmitted to the appropriate users. Join operation User Join request
Tree structure
Tree structure
A Network node issues a request to GC to join the group. The GC check whether the request is from an authenticated member, if yes the GC accepts the request. The node then communicates its session key through some secure channel. Find join position: The group controller maintains a tree structure. The tree structure is the logical arrangement of members. The GC traverses the tree structure and finds a position for the new member. The GC(Group controller) inserts the member details in this new position, which is a leaf node. Generate keys: From the new position onwards the GC generates the new key(s) along the path to root. The new keys are used to replace the old keys of the auxiliary nodes. Update tree structure: Old keys are replaced by their corresponding new keys Henceforth newly generated keys are used for future communication. This operation provides backward secrecy, i.e. it prevents the newly joined member from accessing the previously communicated data. Distribute keys: A packet is constructed, which consists of newly generated key(s) This packet is encrypted using the old key known by a member or sub-group of members. User-oriented re-keying In the user-oriented re keying, the group controller constructs each re keying message, rekey message contains the encrypted form of session key. So that they contain exactly all the messages that some user or a group of users need.
Key-oriented re-keying Key-oriented strategy emphasizes that each new key should be packed into a separate message and distributed to the holders
Leave operation
Leave request
Process request
Tree structure
Tree structure
Figure shows the data flow diagram for join operation. Data flow diagram contains the following process. Leave Request: The member issues a request to leave the group. Process Request: The GC checks whether the request is from an existing member, if so the GC accepts the request. Find leave position: The GC traverses the tree structure and finds the leaving position of the member. The GC then deletes the member details and removes the node from tree structure. Generate keys: From the leaving position onwards the GC generates the new key(s) along the path to root. Old keys are replaced by their corresponding new keys. Henceforth newly generated keys are used for future communication. This operation provides forward secrecy, i.e. it prevents the left member from accessing the data sent in future communication. Distribute keys: A packet is constructed, which consists of newly generated key(s). This packet is encrypted using the old key known by a member or sub-group of members. These new keys help the members to decrypt the messages sent in future communication. Member updates keys: After receiving the message, the member updates the appropriate set of keys. User-oriented re-keying In the user-oriented re keying, the group controller constructs each re keying message, re key message contains the encrypted form of session key. So that they contain exactly all the messages that some user or a group of users need. Key-oriented re-keying Key-oriented strategy emphasizes that each new key should be packed into a separate message and distributed to the holders
2. Message Transmission Multicasting is a process of sending a message to a selected group. Internet applications, such as online games, newscast, stock quotes, multiparty conferences, and military communications can benefit from secure multicast communications. In most of these applications, users typically receive identical information from a single or multiple senders. Hence, grouping these users into a single multicast group and providing a common session encryption key to all of them will reduce the number of message units to be encrypted by the senders. Various types of data communication are broadcast, Multicast, group communication. 1 E5(M) 5 E4(M) 4 E3(M) 3 E2(M) 2
Figure 1.1 Transmission of the message M through 4 point-to-point connections Figure 1.1 shows the transmission of message m to four point to point connections. Here node number 1 is the service provider. Nodes 2,3,4,5 are the receiving nodes. Nodes 2,3,4,5 are receiving the same message. Group communication For group communications, the server distributes to each member a group key to be shared by all members of the group, distributing the group key securely to all members requires messages encrypted with individual keys (a computation cost proportional to group size). Each such message may be sent separately via unicast. Alternatively, the messages may be sent as a combined message to all group members via multicast. Either way, there is a communication cost proportional to group size (measured in terms of the number of messages or the size of the combined message). Observe that for a point-to-point session, the costs of session establishment and key distribution are
incurred just once, at the beginning of the session. A group session, on the other hand, may persist for a relatively long time with members joining and leaving the session. Consequently, the group key should be changed frequently. To achieve a high level of security, the group key should be changed after every join and leave so that a former group member has no access to current communications and a new member has no access to previous communications.
3. Cryptography Cryptography is the process of protecting information by transforming it into an unreadable format, called cipher text. Only those who possess a secret key can decrypt the message into text. Encryption is the process of conversion of original data (called plain text) into unintelligible form by means of reversible translation ie based on translation table or algorithm, which is also called enciphering. Decryption is the process of translation of encrypted text (called cipher text) into original data (called plain text), which is also called deciphering. Cryptography systems can be broadly classified into symmetric key systems in which both the sender and recipient use a single key for encryption and decryption, and public key systems that use two keys, a public key known to everyone and a private key that only the recipient of messages uses. Each of this system make use of a algorithm for encryption and decryption in which sender make use a key for encryption of a plain text to cipher text and receiver make use of key used by sender to decrypt the cipher text to plain text this process is called as symmetric key crypto graphic algorithm. Example for symmetric key encryption algorithms are data encryption standard (DES) & blowfish. In public key encryption algorithm the sender encrypt the plain text by using the public key of receiver, the receiver decrypt the cipher text by using own private key. Example for public key encryption algorithms are Elliptic Curve Cryptograph (ECC) & RSA. Cryptography plays a major role in the security aspects of multicasting. For example, consider stock data distribution group, which distributes stock information to a set of users around the world. It is obvious that only those who have subscribed to the service
should get the stock data information. But the set of users is not static. New customers joining the group should receive information immediately but should not receive the information that was released prior to their joining. Similarly, if customers leave the group, they should not receive any further information. Confidentiality Confidentiality implies that only authorized users should decrypt a multicast message, even though this message is broadcast over a geographical region. The confidentiality requirement can be translated in the context of secure multicast into the following four requirements on key distribution. Non-group Confidentiality: users that were never part of the group should not have access to any key that can decrypt any multicast data sent to the group. Forward Confidentiality: users deleted from the group at some time t do not have access to any key used to encrypt data after t, unless they are authorized to join again the group. Collusion Freedom: no subset of deleted users should be able to decrypt future group communication, even by sharing the keys they had before deletion. Backward Confidentiality: a user added at time t should not have access to any key used to encrypt data before t while the user was not part of the group. 4. Authentication. Authenticity means that when a user receives a message, it is assured about the identity of the sender. The authenticity requirement can be translated in the context of secure multicast into two requirements on key and data distribution. Key authenticity: only the center can generate a session key. Data authenticity: the users can distinguish among the data sent by the center and the malicious data sent by an attacker.
Group Information
Users Information
Group Information
Users Information
Multi casting
Group Unicasting 1
Decryption
Multi casting
Group 2
Unicasting Decryption
Encryption
Encryption
Generate Keys
KGC
Generate Re Keys
Message Forward
External entities communicating with the application are Database Server This database server is the Master/Slave server, which contains the Users Information and Message Transmission Information. The contents of the Message transmission are receiver, sender, senders private key which is used for Encryption and Decryption process. The keys are generated based on users information and join/leave process of Members in the Groups. Database Server:
Group Controller
Login
Compose
Encryption
KGC
Inbox
Decryption
Group Member
Login
Compose
Encryption
Group Member
Users Information
Generate Keys
Send Response
2. Generate Re keys
Login
Users Information
KGC
Generate Re Keys
5.4 Architectural Design The Architectural Design is a process of dividing the project components into the processing modules and conceptual data structures. Efficient Key Agreement for Large and Dynamic Multicast Groups
Key Generation
Cryptography
Message Transmission
Encryption
Multicasting Group 2
Decryption
Unicasting
Group Controller Generate Keys Unicasting Multi casting Encryption Decryption Group Control Intermediater Generate Re keys Unicasting Multicasting Encryption Decryption
Group Controller Generate Keys Unicasting Multi casting Encryption Decryption Group Control Intermediater Generate Re keys Unicasting Multicasting Encryption Decryption
KGC
Member
Request Response
Login
Message Transmission
Cryptography
KGC
Message Transmission
Encryption
Decryption
Encryption
Decryption
Re Keys Generation
Message Transmission
Encryption
Decryption
6. System Testing
The purpose of testing is to discover errors. Testing is the process of trying to discover every conceivable fault or weakness in a work product. It provides a way to check the functionality of components, sub assemblies, assemblies and/or a finished product It is the process of exercising software with the intent of ensuring that the Software system meets its requirements and user expectations and does not fail in an unacceptable manner. There are various types of test. Each test type addresses a specific testing requirement.
Types of Tests 6.1 Unit testing Unit testing involves the design of test cases that validate that the internal program logic is functioning properly, and that program input produce valid outputs. All decision branches and internal code flow should be validated. It is the testing of individual software units of the application .it is done after the completion of an individual unit before integration. This is a structural testing, that relies on knowledge of its construction and is invasive. Unit tests perform basic tests at component level and test a specific business process, application, and/or system configuration. Unit tests ensure that each unique path of a business process performs accurately to the documented specifications and contains clearly defined inputs and expected results. 6.1.1 Functional test
Functional tests provide systematic demonstrations that functions tested are available as specified by the business and technical requirements, system documentation, and user manuals. Functional testing is centered on the following items:
: identified classes of valid input must be accepted. : identified classes of invalid input must be rejected. : identified functions must be exercised. : identified classes of application outputs must be exercised.
6.1.2 System Test System testing ensures that the entire integrated software system meets requirements. It tests a configuration to ensure known and predictable results. An example of system testing is the configuration oriented system integration test. System testing is based on process descriptions and flows, emphasizing pre-driven process links and integration points. 6.1.3 Performance Test The Performance test ensures that the output be produced within the time limits, and the time taken by the system for compiling, giving response to the users and request being send to the system for to retrieve the results. 6.2 Integration Testing
Software integration testing is the incremental integration testing of two or more integrated software components on a single platform to produce failures caused by interface defects. The task of the integration test is to check that components or software applications, e.g. components in a software system or one step up software applications at the company level interact without error. Integration testing for Database Synchronization:
Testing the links that the signup request being send by the New user to the group controller for to join in the Group. If the login user does not have enough privileges to invoke a screen, the link should be disabled.
The Encryption and Decryption process is performed as side of the Users Requestions.
The Group controllers have separate roles to modify the database tables. The Group controllers have the provision for to do Multicast operations. The Key Generation Center is act as a Router while Encrypted message is transferred between the groups. The Key Generation Center can only generate the keys for the groups.
7. Implementation
Implementation is the stage in the project where the theoretical design is turned Into a working system and is giving confidence on the new system for the users, which it will work efficiently and effectively. It involves careful planning, investigation of the current System and its constraints on implementation, design of methods to achieve the change over, an evaluation, of change over methods. Apart from planning major task of preparing the implementation are education and training of users. The more complex system being implemented, the more involved will be the system analysis and the design effort required just for implementation. An implementation co-ordination committee based on policies of individual organization has been appointed. The implementation process begins with preparing a plan for the implementation of the system. According to this plan, the activities are to be carried out, discussions made regarding the equipment and resources and the additional equipment has to be acquired to implement the new system. Implementation is the final and important phase, the most critical stage in achieving a successful new system and in giving the users confidence. That the new system will work be effective .The system can be implemented only after through testing is done and if it found to working according to the specification . This method also offers the greatest security since the old system can take over if the errors are found or inability to handle certain type of transactions while using the new system. User Training
After
the system is implemented successfully, training of the user is one of the most
important subtasks of the developer. For this purpose user manuals are prepared and handled over to the user to operate the developed system. Thus the users are trained to operate the developed systems successfully in future .In order to put new application system into use, the following activities were taken care of: Preparation of user and system documentation Conducting user training with demo and hands on Test run for some period to ensure smooth switching over the system. The users are trained to use the newly developed functions. User manuals describing the procedures for using the functions listed on menu and circulated to all the users .it is confirmed that the system is implemented up to user need and expectations.
Security
Application level security using user id and private key. Secured Socket Layer. All Messages are kept encrypted in a file. Failure of controllers does not affect the groups operations.
8. Conclusion
The Proposed system is an efficient, authenticated, scalable key agreement for large and dynamic multicast systems, which is based on the bilinear map. Compared with the Existing system, we use an identity tree to achieve the authentication of the group member. Further, it solve the scalability problem in multicast communications. Since a large group is divided into many small groups. Each subgroup is treated almost like a separate multicast group with its own subgroup key. All the keys used in each subgroup can be generated by a group of KGCs in parallel. The intuitively surprising aspect of this scheme is that, even the subgroup controller aborts, it does not affect the users in this subgroup. Because every user in the subgroup can act as a subgroup controller. This is a significant feature especially for the mobile and ad hoc networks. From the security analysis we can see that our scheme satisfies both forward and backward secrecy.
9. Future Enhancements
As with other applications, there is certainly a scope for improvement in this application too. New modules are in pipeline for to increase the compatibility of the project. Once these improvements have been done, the majority of the features that make an application an excellent one would be there and the usage would become wider and more expensive. Here, there a some of decisions for to make our project effectively and efficiently in the future Transmitting Voice mails between the Group through Key Generation Center Direct communication between the Users of different groups without the interfere of Group Controllers and other higher authority persons in the groups Use high standard Cryptographic algorithms Minimize the number of times of Encryption and Decryption process between the groups while message transmission
10. Bibliography
Y. Amir, Y.Kim, C. Nita-Rotaru, J. L. Schultz, J. Stanton, and G.Tsudik, Secure group communication using robust contributory key agreement, IEEE Trans, Parallel Distrib. Syst., vol:15, no.5,pp,468-480, May 2004. G. Ateniese, M. Steiner, and G. Tsudik , Authenticated group key agreement protocols, in Proc.5th Annu. Workshop on selected Areas in Cryptography Security(SAC98),1998,pp. 17-26. S.Blake-Wilson and A.Menezes, Authenticated Diffie-Hellman Key agreement protocols, in Proc. 5th Annu. Workshop on selected Areas in Cyrptography (SAC98),1998, vol. LNCS 950, pp. 275-286. W. Diffie and M. Hellman, New directions in cryptography, IEEE Trans. Inf. Theory, vol. 22, no. 6, pp. 644654, 1976. The Sites Referred http://www java.sun.com http://www.java2s.com http://www.w3schools.com