Identity Based Encryption from the Tate Pairing to Secure Communications
|
|
|
- Zoe Green
- 10 years ago
- Views:
Transcription
1 University of Bristol DEPARTMENT OF COMPUTER SCIENCE Identity Based Encryption from the Tate Pairing to Secure Communications Matthew Baldwin A dissertation submitted to the University of Bristol in accordance with the requirements of the degree of Master of Engineering in the Faculty of Engineering MAY 2002 CSMENG-02
2
3 Declaration This dissertation is submitted to the University of Bristol in accordance with the requirements of the degree of Masters of Engineering in Computer Science (G503)in the Faculty of Engineering. It has not been submitted for any other degree or diploma of any examining body. Except where specifically acknowledged, it is all the work of the Author. Matthew G Baldwin, Monday May 13th, 2002
4
5 Executive Summary This aim of this project is to demonstrate the way in which a new cryptosystem can be used to simplify existing solutions to security. This new crypto system is known as Identity Based Encryption ½ ¾. The project implementation is composed of several parts, client tools ½ and a server tool. In turn, the client tools suite, has several components, comprising of a COM Library, an Outlook Add In, a Windows Shell Extension Wizard. and a stand alone IBE The IBE functionality was provided by Hewlett Packard, and is based on the Boneh and Franklin IBE scheme proposed in section This code was used as the back-end processing for an IBE API. The API was developed to enable the rapid application development of front end add-ins to existing applications providing IBE functionality to them. One of the key benefits of an IBE system is the ability to distribute the trust among a number of Trusted Authorities. By concatenating a date with the identity in a public key it is possible to yet again further the power of key generation, by providing built in key expiry, or other features. IBE can be used for more than securing communications. An example of another use would be to simplify the SSL handshake protocol. Achievements Wrote over 10,000 lines of C++ code utilizing Microsoft COM and ATL. The code comprised of an IBE library, a Windows Shell Extension and a Microsoft Outlook Add-In to provide encryption and decryption support to the operating system and program environments. Learned Microsoft COM and ATL in order to develop the IBE library and application extensions. Learned the Microsoft Windows Shell Extensions API and the Microsoft Outlook Object Model to enable the development of the required extensions to Windows and Outlook. Designed and implemented an API for using the IBE encryption and decryption functions. Designed and implemented a full architecture for the IBE Library, allowing for concurrent processing of multiple encryption tasks.
6
7 Contents 1 Background Project Overview Identity Based Encryption A brief history of Identity-Based Systems Boneh and Franklin IBE Scheme Microsoft Component Object Model Microsoft Windows Shell Extensions Microsoft Outlook Add-Ins Mathematical Notation and Definitions Tate and Weil Pairing The Bilinear Diffie-Hellman Assumption (BDH) Technical Basis Developing an IBE Library Interface Development Interface Implementation Development IBE Implementation Admissible Encoding Function IBE based on the Weil Pairing Improving Efficiency DES and Triple DES Developing a Solution for Outlook Interfaces Event Handling Developing Shell Extensions i
8 2.6 Setting up a Trusted Authority Design and Implementation Overview of IBE Tools Suite Three Tier Architecture Middle Tier Logic Architectural Features IBE Library IBE Library Interfaces Encryption/Decryption Contexts Encryption Process Decryption Process IBE File Format IBE Outlook Add-In Composing and Reading Mail Messages Encryption Tool bar Sending Mail IBE Shell Extensions IBE Wizard Setup/Configuration Program Server Tools Maintenance of Code Current Status and Future Plans Client Tools Functionality Enhancements Server Tools ii
9 4.3 Identities and Keys Other Applications of IBE A Lists of Tables, Figures and References 45 iii
10
11 1 Background 1.1 Project Overview The basis of this project was to develop a system for securing communications using a public key cryptosystem that is scalable. By this, the system must be able to work on large networks with thousands of users. The most popular standard for security is Pretty Good Privacy,orPGP as it is more commonly known. In principle PGP is a good idea, however there is a major problem associated with it whereby for every recipient of an encrypted , you are required to know their public key before encrypting it. To ensure the validity of a public key, a third party is required to distribute and sign the key. Public Key Infrastructure, orpki, is a standard for Public Key Cryptosystems that is being widely backed by large e-security companies. However, the flaws in the system are similar to that in PGP. Maintaining lists and directories of public keys, both on a central server and users machines, is a management nightmare. The problems of key and certificate management, issues in both PGP and PKI, are to be addressed by the IBE system proposed and developed as part of this project. 1.2 Identity Based Encryption Identity-based cryptosystems resemble ordinary public-key systems, involving a private and a public transformation, however users do not have explicit public-keys. Instead of explicit public-keys, the public-key is constructed from a user s publicly available identity. Any publicly available information that is uniquely associated with the user may serve as identity information. addresses are uniquely associated with specific users and are publicly available, making them an obvious and ideal choice for an identity based public key. 1
12 1.2.1 A brief history of Identity-Based Systems It was initially suggested by Shamir in 1984 that a public key encryption scheme be developed where a public key can be an arbitrary string. The motivation for such a scheme was to simplify the management of keys and certificates in secure systems. Since being proposed in 1984 by Shamir, there have been several proposals for Identity Based Encryption (IBE) schemes, however none are fully satisfactory. Conversely, the related identity based signature and authentication schemes, also proposed by Shamir, do have satisfactory solutions. The scheme on which this project is based was fully proposed by Boneh and Franklin (see section 1.2.2). Their scheme, however, was based using the Weil Pairing (see section 1.4.1) and has been adapted to use the Tate Pairing (see section 1.4.1). Identity based systems differ from other public key cryptosystems in that there is no need to verify the authenticity of the public key. Forgery is protected against by the inherent redundancy in public data together with the authentic public data. Incorrect public data results in the cryptographic transformations failing. Signing and verification will fail, encryption will produce decipherable cipher-text and decryption will produce an invalid plain- text. Shamir s original motivation behind the idea of an identity based public key system forms the basis of this project. The technical implementation aims to use an already developed IBE implementation (in terms of the cryptographic algorithms) to create a working prototype for an ideal secure mail system. That is a mail system with the following properties: 1. There is no need to exchange symmetric keys or public keys between users; 2. Public lists of public keys need not be maintained; 3. The Trusted Authority is only needed during the setup phase (for authentic public key parameters and generation of private keys). All three of these are problems associated with traditional secure mail solutions. PGP is the most widely used of these systems and requires users to obtain recipients public keys from a public key directory before encryption. This is a list maintained by a Trusted Authority which distributes these keys, electronically signing them for verification. 2
13 1.2.2 Boneh and Franklin IBE Scheme Boneh and Franklin proposed a fully working solution to the problem of an IBE scheme in a paper in This paper forms the basis for the IBE scheme used from here in. This section provides a background to this scheme, describing each of the stages involved in sufficient detail so as to provide the reader with a working knowledge of the system. There are four stages to identity based algorithms such as this: (1) setup generates global system parameters and a master-key, (2) extract uses the master-key to generate the private key corresponding to an arbitrary public key string Á ¾ ¼ ½, (3) encrypt encrypts messages using the public key ID, and (4) decrypt decrypts messages using the corresponding private key. To understand the Identity-Based algorithms used throughout this paper, there are several background issues that must first be understood. These are presented below, followed by a description of each of the four stages of the IBE system. 1.3 Microsoft Component Object Model The Microsoft Component Object Model is the base programming technology for the design and implementation of the proposed solution. The following is quoted from [1] documentation and gives a simple introduction into what COM is. The Component Object Model (COM) is a platform-independent, distributed, object-oriented, system for creating binary software components that can interact. COM is the foundation technology for Microsoft s OLE (compound documents), ActiveX (internet enabled components), as well as others. A COM compliant application consists of two parts, a COM server and a COM client. The server is any object that provides services to clients. Services are in the form of implementations of COM interfaces that can be called by any client who is able to get a pointer to one of the interfaces on the server object. A COM client is whatever code or object gets a pointer to a COM server and uses its services by calling the methods of its interfaces. 3
14 COM server objects can be either in-process or out-of-process servers. An in-process server is a DLL that is loaded and run in the same address space as the invoking client application. Out-of-process servers are executables that are loaded and executed in their own address space, separate to the client application. In-process servers are faster to use than out-of-process servers as the client application doesn t need to make remote procedure calls across the process boundary to communicate with the server object. However, out-of-process servers can run as a stand alone application, something an in-process server is unable to do Microsoft Windows Shell Extensions As the name suggests, shell extensions allow developers to add functionality to the existing Windows shell. Some examples of shell extensions are Context Menus (menus that change based on what object has focus when you right-click), Property Sheet Handlers (tabbed pages that appear when the Properties menu item is selected from an objects context menu), Icon Overlays (appear as the arrow on top of an icon that points to a shortcut or the hand that appears on shared folders), Folder Customization, and many, many more. Shell Extensions are implemented as In Process COM servers. Windows Explorer invokes the appropriate extension in response to shell-wide events. Explorer was designed to respond in very specific ways when the user performs various functions within its shell. The first thing Explorer does is check for any modules that have been registered for a specific event and if one exists it attempts to load the module. To be a valid shell extension, the COM server must implement an interface that defines the specific behavior for the desired extension and it must implement an interface that defines its initialization behavior. Finally, to be a valid shell extension, the COM server must follow the approved method of registering itself with the system. Table 1 lists all of the currently available shell extensions Microsoft Outlook Add-Ins COM add-ins are an Office feature that was first implemented in Microsoft Office The architecture is supported by all Office programs, including Outlook. Key benefits of 4
15 Type Apply To Version Interface Involved Description Context File class Windows IContextMenu, IContextMenu2, Allows you to add new items Menu and shells 95+ or ICon- to a shell objects context object textmenu3 menu. Right File class Windows IContextMenu, IContextMenu2, Allows you to add new items Drag and and shells 95+ or ICon- to the context menu that ap- Drop object textmenu3 pears after your right drag and drop files. Drawing File class Windows IExtractIcon Lets you decide at runtime Shell and shells 95+ which icon should be displayed Icons object for a given file within a file class. Property File class Windows IShellPropSheetExt Lets you insert additional Sheet and shells 95+ property sheet pages to the object file class Properties dialog. It also works for Control Panel applets. Left Drag File class Windows IDropTarget Lets you decide what to and Drop and shells 95+ do when an object is being object dropped (using the left mouse button) onto another one within the shell. Clipboard File class Windows IDataObject Lets you define how an object and shells 95+ is to be copied to and ex- object tracted from the clipboard. File Hook Windows 95+ ICopyHook Lets you control any file operation that goes through the shell. While you can permit or deny them, you aren t informed about success or failure. Program Explorer Execution Infotip File class and shells object Desktop Update Desktop Update Column Folders Windows 2000 Icon Explorer Windows Overlay 2000 Search Explorer Windows 2000 Cleanup Cleanup Windows Manager 2000 IShellExecuteHook IQueryInfo IColumnProvider IShellIconOverlay IContextMenu IEmptyVolumeCache2 Lets you hook any programs execution that passes through the shell. Lets you display a short text message when the mouse hovers over documents of a certain file type. Lets you add a new column to the Details view of Explorer. Lets you define custom images to be used as icon overlays. Lets you add a new entry on the Start menus Search menu. Lets you add a new entry to the Cleanup Manager to recover disk space. Table 1: This table lists all the available types of shell extensions, the minimum shell version each requires, the involved interfaces, and a brief description. 5
16 COM add-ins include: COM add-ins run in-process with the host program, so custom code generally runs faster than code implemented in Visual Basic for Applications. The basic COM add-in architecture is consistent across all Office programs, whereas in previous versions of Office, each program had its own add-in architecture. You can create one COM add-in to use with more than one Office program. COM add-ins aren t the only way to extend the functionality of Outlook or Office applications. The simplest way is with Visual Basic for Applications, orvba, a trimmed down version of Visual Basic which a programmer can develop simple macros for the application. Using COM to extend outlook combines the benefits of ease of development from VBA with those of developing a precompiled DLL, such as speed of execution, enhanced programming power, and the ability to develop a single add-in that will work with several applications. 1.4 Mathematical Notation and Definitions This section describes the mathematical principles and notation behind the algorithms that form the IBE scheme which is used throughout this document. Group: A mathematical group is a set with the following properties identity: for every element there is an operation Á such that Á µ ; associativity: µ µ; every element must have an inverse. Groups are represented by the following notation:,,, etc. Galois Field: A mathematical group of integers modulus a prime integer. 6
17 Bilinear Map: A map Ü Ýµ that is linear in each of its two variables; i.e., a mapping Ü Ýµ from the Cartesian product of two Ê-modules into Ê, such that for each Ü ¾, the function Ü that takes Ý to Ü Ýµ is linear in Ý, and for each Ý ¾, the function Ý which takes Ü to Ü Ýµ is linear in Ü. Fiestel Cipher A Fiestel Cipher is a special kind of iterative block cipher. Regardless of the choice of the function, which applies a transformation to the key and data, the function is invertible. Figure 1 diagrams a Fiestel cipher as a black box. L 0 R 0 Iterated r times L i 1 R i 1 f K i L i R i L r R r Figure 1: For each round,, there are several stages. The first stage is the splitting of the input block into two equally sized halves. One half is then transformed under some function using the round key, Ã. The result is then XOR d (exclusively OR d) with the other half, forming the new Right hand side. This is continued for Ö rounds Tate and Weil Pairing The Weil pairing was first used in cryptography by Menzes, Okamoto and Vanstone [11] to reduce the complexity of the discrete logarithm problem on certain elliptic curves. Frey and Rück [6] introduced the Tate pairing to cryptography as an extension of the work carried out by Menzes, Okamoto and Vanstone. The Tate and Weil Pairings are bilinear maps: ½ ½ ¾ È É È É 7
18 where ½ and ¾ are groups. Tate and Weil pairings are useful as they have various nice properties for cryptographic purposes such as: È É È É The Tate pairing is given by the notation Ø È É. The Weil pairing is given by the notation È É. Tate Pairing versus Weil Pairing Advantages: It applies to higher genus curves as well as elliptic curves; It requires less computation time; It works over smaller fields in some cases; It is simpler. Disadvantages: To get a unique value you have to exponentiate by Õ ½µ Ð; Understanding non-degeneracy is more difficult The Bilinear Diffie-Hellman Assumption (BDH) The Bilinear Diffie-Hellman Assumption (BDH) is a variation of the Computational Diffie- Hellman assumption and is what the security of the IBE system is based upon. This is because the Decision Diffie-Hellman problem (DDH) in ½ is easy, DDH cannot be used to build cryptosystems in the group ½. Decision Diffie-Hellman problem (DDH) The Decision Diffie-Hellman problem (DDH) in ½ is to distinguish between the distributions È È È È and È È È È where,, are random in Õ and È is random in ½. Joux and Nguyen [9] point out that DDH in ½ is easy. To see this, observe that given È, È, È, È ¾ : ½ mod Õ µ È È µ È È µ 8
19 The Computational Diffie-Hellman problem (CDH) in ½ can still be hard (CDH in ½ is to find È given random È È È ). Joux and Nguyen [9] give examples of mappings ½ ½ ¾ where CDH in ½ is believed to be hard even though DDH in ½ is easy. Bilinear Diffie-Hellman Problem: Let ½, ¾ be two groups of prime order Õ. Let ½ ½ ¾ be a bilinear map and let Ô be a generator of ½. The BDH problem in ½ ¾ is as follows: Given È È È È for some ¾ Õ compute Ï È È µ ¾ ¾. An algorithm has advantage in solving BDH in ½ ¾ if Pr È È È È µ È È µ where the probability is over the random choice of in Õ, the random choice of È ¾, and the random bits of. ½ BDH Parameter Generator: A randomized algorithm Á is a BDH parameter generator if (1) Á takes a security parameter ¼ ¾, (2) Á runs in polynomial time in, and (3) Á outputs the description of two groups ½, ¾ and the description of a bilinear map ½ ½ ¾. It is required that the groups have the same prime order Õ ½ ¾. The output of Á is denoted by Á ½ µ. Bilinear Diffie-Hellman Assumption: Let Á be a BDH parameter generator. An algorithm has advantage µ in solving the BDH problem for Á if for sufficiently large : Adv Á µ ÈÖ ¾ ½ ¾ È È È Èµ È È µ ½ ¾ Á ½ µ È ½ Õ µ It is said that Á satisfies the BDH assumption if for a random ½ ¾ generated by Á, no efficient algorithm can solve BDH in polynomial time. It is occasionally said that BDH is hard in groups generated by Á. 9
20 10
21 2 Technical Basis There are several main technical problems which this project set out to address, listed below. For each problem, this section explains what it is and how it was solved by the project implementation. Developing an IBE library Developing an IBE library that could be interfaced to easily was core to the success of this project (section 2.1). The advantage of developing such a library is that developing client applications to use it would be very simple. Developing an Outlook Add-In This was the major problem to be addressed in terms of developing a solution, as the project is based around security. Once Outlook had been identified as the client to be developed for, the main project goal was set. This is described in detail in section 2.4. Setting up a Trusted Authority The Trust Authority is responsible for the setup and extraction of users private keys. To demonstrate the proposed system, a Trust Authority was required to be set up to allow for this. Details of this can be found in section Developing an IBE Library Development of the IBE Library composed of two sections: 1. Writing/Obtaining IBE code; 2. Wrapping the code in ATL/COM. Hewlett Packard (HP) supplied the IBE code, which includes encryption and decryption routines, as well as the private key generation routines. The first stage in developing an API was to learn how the code worked, followed by designing a COM library. Developing a COM library can be broken down into two stages: 1. Defining the Interface(s); 2. Implementing the Interface(s). 11
22 There is a fundamental distinction between an interface and it s implementation that is made by COM. Interface An interface is a contract that consists of a group of related function prototypes whose usage is defined but whose implementation is not. There is no implementation associated with an interface. Interface Implementation An implementation of an interface is the code written by a programmer to perform the actions specified by the interface methods. The implementation is associated with an object when an instance is created, and provides the services offered by the objects interfaces. COM interfaces differ from C++ interfaces, as only a predefined subset of the methods offered by a class are included in a COM interface, not all the methods, such is the case in C++ interfaces. In this way, COM interfaces are equivalent to Java interfaces Interface Development The design of the interface and implementation details for all COM objects associated with this project can be found in section 3. The COM interface is defined in IDL (Interface Definition Language), which is preprocessed by an IDL compiler to produce proxy and stub code for the interface. The proxy is an interface specific object which provides the parameters required for a client application to communicate with a COM server. The proxy would be linked into the client and communicates with the stub which is part of the COM server object Interface Implementation Development As mentioned above, the interface implementation is the code written by a programmer to perform the methods associated with the interface. This is the core of the object, and can be done in any language that supports COM, for example: C++, Java (using Microsoft J++) or Visual Basic. To implement an interface the programmer must create a COM object and select the interfaces he wishes to implement. Using Microsoft Visual Studio, this is very simple as it 12
23 will supply a list of known interfaces that are registered and once selected will generate the skeleton implementation, which is the function prototypes in the class definition and the basic function body. The programmers responsibility is to replace the basic function bodies with the code necessary to perform the methods exposed by the interface. The IBE Library architecture is very important. Encryption and Decryption of large files can be very time and resource consuming processes, so the architecture must be designed in such a way that any user interface features remain responsive throughout the procedure. This is discussed in detail in section IBE Implementation The IBE code implementation supplied by HP was completely implemented and tested, which meant that the Library development would consist of developing the COM wrapper. This section describes in more detail the IBE scheme used Admissible Encoding Function MapToPoint is an admissible encoding function 1 used in the IBE system proposed in section The proof of this function and the explanation as to why it is needed is covered in Boneh and Franklin s paper [4]. This section is intended to provide an overview of its operation. Let Ô be a prime satisfying Ô ¾mod and Ô Õ ½ for some prime Õ. Let be the elliptic curve Ý ¾ Ü ½over Ô. Let ½ be the subgroup of points on of order Õ. À ½ ¼ ½ Ô is a hash function. Algorithm MapToPoint works as follows on input Ý ¼ ¾ Ô : 1. Compute Ü ¼ Ý ¾ ½µ ½ Ý ¾ ½µ ¾Ô ¾ ½µ ¼ ¼ Ô. 2. Let É Ü ¼ Ý ¼ µ ¾ Ô and set É Á É ¾ ½. 3. Output MapToPoint Ý ¼ µ É Á. 1 Admissible Function: A description of a search algorithm that is guaranteed to find a minimal solution path before any other solution paths, if a solution exists. 13
24 2.2.2 IBE based on the Weil Pairing The following IBE system is proposed by Boneh and Franklin in [4]. This system was modified for use in this project by substituting the Weil pairing for the Tate pairing. Setup: The algorithm works as follows: Step 1: Chose a large -bit prime Ô such that Ô ¾mod and Ô Õ ½ for some prime Õ. Let be the elliptic curve defined by Ý ¾ Ü ½over Ô. Choose an arbitrary È ¾ Ô of order Õ. Step 2: Pick a random ¾ and set È Õ ÔÙ È. Step 3: Pick four hash functions: À ½ ¼ ½ Ô ; À ¾ Ô ¾ ¼ ½ Ò for some Ò ; À ¼ ½ Ò ¼ ½ Ò ; and À Õ ¼ ½ Ò ¼ ½ Ò. The message space is Å ¼ ½ Ò The cipher-text space is Ô ¼ ½ Ò. The system parameters are params Ô Ò È È ÔÙ À ½ À. The master key is ¾ Õ. Extract: For a given string Á ¾ ¼ ½ the algorithm builds a private key as follows: Step 1: Compute MapToPoint À ½ Á µµ É Á ¾ Ô of order Õ. Step 2: Set the private key Á to be Á É Á where is the master key. Encrypt: To encrypt ž ¼ ½ Ò under the public key ID do the following: Step 1: Compute MapToPoint À ½ Á µµ É Á ¾ Ô of order Õ. Step 2: Choose a random ¾ ¼ ½ Ò. Step 3: Set Ö À ŵ. Step 4: Set the cipher-text to be ÖÈ À ¾ Ö Á µ Å À µ where Á É Á È ÔÙ µ ¾ Ô ¾ Decrypt: Let Í Î Ï ¾ be a cipher-text encrypted using the public key ID. If Í ¾ Ô is not a point of order Õ reject the cipher-text. To decrypt using the private key Á do: Step 1: Compute Î À ¾ Á ͵µ. Step 2: Compute Ï À µ Å. 14
25 Step 3: Set Ö À ŵ. Test that Í ÖÈ. If not, reject the cipher-text. Step 4: Output Å as the decryption of. 2.3 Improving Efficiency The scheme outlined above is the basis for the HP IBE implementation, however there are several issues of efficiency that needed to be addressed. 1. Tate pairing efficiency; 2. Overall efficiency of the cryptosystem. Hewlett Packard developed the IBE code, and in doing so overcame the problem of efficiently implementing the Tate Pairing. Although this is not something that was carried out as part of the project, it is critical to the viability of the technical solution. Galbraith, Harrison and Soldera in [7] provide methods to achieve fast computation of the Tate pairing, and are mentioned briefly here. Three observations are made in [7]: 1. Subfields: It is possible to work on subfields to reduce the number of operations; 2. Divisions and Multiplications: Divisions are more expensive than multiplications, something that it is possible to exploit in the calculation of the Tate pairing, by combining three divisions into a single division. 3. Window methods (see [3] and [8]): window methods provide significant improvement for elliptic curve point exponentiation algorithms. The efficiency problems associated with the technical implementation that forms part of this project come from the actual encryption and decryption process. Using IBE to encrypt an entire file is not fast as it is an asymmetric system that requires calculations of exponents in elliptic curves. This was proved by early testing, although figures were not recorded, it can be said that the encryption process took a substantial amount of time on a 2kb file and the decryption process took longer still. 15
26 Time is not the only efficiency issue associated with this problem - size is also a factor. As the IBE scheme used in works over small parts of plain-text at a time, producing the cipher-text Í Î Ï for each block of 64 bytes. For a large file, this could result in a cipher-text of considerable length, far greater than that of the original plain-text. These problems were overcome by using a symmetric cryptosystem that works much faster than an asymmetric one to perform the bulk encryption and decryption, whilst using IBE to encrypt and decrypt the key for use as input into that system. More details on how this was designed and implemented can be found in section Another problem is introduced by this solution to the efficiency problem: Generating a cryptographically random key of sufficient length for the symmetric cryptosystem. As explained in section this is done using the Microsoft Crypto API that forms one of the base services in the Windows operating system DES and Triple DES The Data Encryption Standard (DES) algorithm is a Fiestel cipher which processes plaintext blocks of 64 bits, producing 64 bit cipher-text blocks. A detailed description of the DES algorithm can be found in [10]. Figure 2 gives details of the DES algorithm. Triple DES is triple encipherment of the plain-text to produce the cipher-text. Figure 3 shows the process of encryption under Triple DES in EDE 2 mode. 2.4 Developing a Solution for Outlook The developing of a Outlook Add-In is much the same as the implementing of the IBE Library. Outlook Add-In s are COM objects that implement the correct interfaces. An Outlook Add-In is easiest to develop using Visual Basic, however, this language doesn t provide the same level of power as developing it in C++, for example. C++, 2 EDE: Encrypt-Decrypt-Encrypt 16
27 Encryption: INPUT: plain-text Ñ ½ Ñ ; 64-bit key à ½ (includes 8 parity bits) OUTPUT: 64-bit cipher-text block ½. 1. (key schedule) Compute sixteen 48-bit round keys à from à 2. Ä ¼ Ê ¼ µ IP Ñ ½ Ñ ¾ Ñ µ. Split the result into left and right 32-bit halves Ä ¼ and Ê ¼. ÁÈ Üµ is the Initial Permutation. 3. (16 rounds) for from 1 to 16, compute Ä and Ê : Ä Ê ½ Ê Ä ½ Ê ½ à µ, where Ê ½ à µ È Ë Ê ½ µ à µµ computing Ê ½ à µ È Ë Ê ½ µ à µµ as follows (a) Expand Ê ½ Ö ½ Ö ¾ from 32 bits to 48 using the Expansion Permutation Ì Ê ½ µ (b) Ì ¼ Ì Ã. Represent Ì ¼ as eight 6-bit character strings: ½ µ Ì ¼ (c) Ì ¼¼ Ë ½ ½ µ Ë ¾ ¾ µ Ë µµ. Ë ½ Ë represent the Substitution boxes. (d) Ì ¼¼¼ È Ì ¼¼ µ. È Üµ is the Permutation function. 4. ½ Ê ½ Ä ½ µ. 5. IP ½ ½ µ. Transpose Initial Permutation, ÁÈ Üµ,toÁÈ ½. Decryption: DES Decryption uses the same algorithm as Encryption, however the Key Schedule is reversed and Ä and Ê are swapped around. Figure 2: For a full description of the algorithm and details of the permutations and expansions, see [10]. being an object orientated language, has all the features required to subclass components etc, something that is missing in Visual Basic. Another advantage of C++ over VB is the speed of execution Interfaces The IDTExtensibility2 interface is the only interface that is required to be implemented by a Microsoft Office Add-In and is defined in the MSAddIn Designer Type Library. It is required that all COM add-ins for Microsoft Office implement the five methods defined in the interface. interface _IDTExtensibility2 : IDispatch { 17
28 Key 1 Key 2 Key 3 Encrypt Decrypt Encrypt Plaintext Ciphertext Ciphertext Plaintext Decrypt Encrypt Decrypt Key 3 Key 2 Key 1 Figure 3: This is DES encryption where an encrypt operation is encrypt-decrypt-encrypt, and decrypt is decrypt-encrypt- decrypt. An implementation of Triple DES would simply be a wrapper around the three DES rounds. [id(0x )] HRESULT OnConnection{ [in] IDispatch* Application, [in] ext_connectmode ConnectMode, [in] IDispatch* AddInInst, [in] SAFEARRAY(VARIANT)* custom}; [id(0x )] HRESULT OnDisconnection{ [in] ext_disconnectmode RemoveMode, [in] SAFEARRAY(VARIANT)* custom}; [id(0x )] HRESULT OnAddInsUpdate{ [in] SAFEARRAY(VARIANT)* custom}; [id(0x )] HRESULT OnStartupComplete{ [in] SAFEARRAY(VARIANT)* custom}; [id(0x )] HRESULT OnBeginShutdown{ [in] SAFEARRAY(VARIANT)* custom}; }; The methods OnConnection and OnDisconnection are called when the add-in is loaded and unloaded from memory, respectively. The add-in can be loaded at application startup, by the user or through automation, and this is specified by the enumerator ext Connection. OnAddInsUpdate is called when the set of loaded add-ins is changed. OnStartupCom- 18
29 plete is called if the add-in was loaded during application startup up and once the application has fully loaded, and finally OnBeginShutdown is called if the add-in was disconnected on the host application shutting down. Once the COM add-in is implemented, it must be registered for use with the application, and is done using the Windows registry. The values are stored under the key: HKEY_CURRENT_USER\Software\Microsoft\Office\ <TheOfficeApp>\Addins\<ProgID>\ This key holds information about the add-in such as the friendly name (as displayed in the host application), a description of the add-in, and the load behavior which specifies how the add-in loads, either at startup, by the user, etc Event Handling For the user to be able to interact with the add-in, it is necessary to handle events generated by user actions. To enable this, the add-in object must inherit from the Event Dispatcher interface for the appropriate event types. An entry must be made in the Event Sink Map for each event the object wishes to catch. The code fragment below shows an outline for handling the ItemSend event that is dispatched by Microsoft Outlook. class CAddIn; typedef IDispEventImpl<OUTLOOK_OBJ, \ CAddIn, \ &DIID_ApplicationEvents, \ &LIBID_Outlook, 9, 0> AppOutlookEvents;... class ATL_NO_VTABLE CAddIn :... public AppOutlookEvents {... BEGIN_SINK_MAP(CAddIn) SINK_ENTRY_INFO(OUTLOOK_OBJ, DIID_ApplicationEvents, 0x0000f002, OnItemSend, &OnSendItemInfo) END_SINK_MAP() void _stdcall OnItemSend(IDispatch* Item, VARIANT_BOOL* Cancel); }; Before the event handlers could be written for the Outlook Add-In, the events that will enable the encryption of outgoing and decryption of encrypted had to be identified. The first and easiest event to intercept is the SendItem event. It is generated 19
30 when a user sends any item, be it a mail note or an appointment. Interception of this event provides the way to encrypt the . Identifying when an encrypted mail item is opened can be done by handling the On- NewInspector event that. This is generated whenever an item is opened. A simple check for the item type related to the inspector would reveal if the item being opened was a mail item, with further checks on that item to determine whether it is encrypted. This event is also used to set the initial flag values when composing a new . A custom event was required to handle the actual setting of the encryption status, depending on whether the user had selected or deselected the encryption button. 2.5 Developing Shell Extensions Developing shell extensions is almost identical to developing an Outlook Add In. The only difference being the interfaces to implement. For the shell extension developed as part of this project, the interface was IContextMenu. However, shell extensions based on the IContextMenu and IShellPropSheetExt interfaces must also implement the IShellExtInit interface, which is responsible for initializing the shell extension. interface IShellExtInit : IDispatch { HRESULT Initialize( [in] LPCITEMIDLIST pidlfolder, [in] LPDATAOBJECT pdataobj, [in] HKEY hkprogid); }; interface IContextMenu : IDispatch { HRESULT GetCommandString( [in] UINT ucmdid, [in] UINT uflags, [in] UINT* pureserved, [in, out] LPSTR szname, [in] UINT cchmax); HRESULT InvokeCommand( [in] LPCMINVOKECOMMANDINFO pcmdinfo); HRESULT QueryContextMenu( [in] HMENU hmenu, [in] UINT umenuindex, [in] UINT uidfirstcmd, [in] UINT uidlastcmd, [in] UINT uflags); }; 20
31 The Initialize function on the IShellExtInit interface is called to initialize a property sheet extension, shortcut menu extension, or drag-and-drop handler. The GetCommandString function retrieves information about a shortcut menu command, including the Help string and the language-independent, or canonical, name for the command. This information is then displayed in the status bar of the window when the mouse hovers over the selection. The InvokeCommand method, as the name suggests, is called when a user selects an item from the context menu and carries out the associated command. The third method, QueryContextMenu, actually adds the command to the menu, along with any icons associated with it. 2.6 Setting up a Trusted Authority The Trusted Authority, or TA, has a very important role in the system, yet performs relatively simple tasks. By defining the role, a solution presented itself very easily. The role of the TA is to generate the system parameters, extract users private keys and securely transmit them to the user. The simple solution is to do this via a web site, where a user would enter their address and a pass phrase with which to encrypt the key under. A script on the server could then generate the key, encrypt it and then it to the specified address. This solution has several problems in itself. Pass-phrase is susceptible to attack To get around this problem, the site would have to operate over a secure connection using SSL. Persisting the storage of the TA private details This problem is somewhat more complicated as the TA s private key would have to be persisted to local storage and some how encrypted to prevent a malicious user from intercepting it, therefore enabling them to generate users keys themselves. More detail on this problem and solution can be found in section Spoofing It is entirely possible that a malicious user could access the web service that provides the TA fucntions to enter the address of a different user of the 21
32 system, along with a pass phrase of their choosing, and intercept the . This would then give the attacker access to the private key of the user. No solution to this problem has been provided or proposed in this report, however a more secure way of managing user accounts would be required in any commercial version. This solution, although very simple, provides the necessary functionality and level of security to demonstrate the system. 22
33 3 Design and Implementation This section briefly introduces each of the tools featured in the IBE suite, followed by a description of the architecture used and a more detailed explanation of the design and programming concepts used in the development of each tool. As well as the client side tools, there is also a simple server side application that is related to the setup and extract (section 2.2.2) parts of the IBE system. For documentation, refer to section Overview of IBE Tools Suite The IBE Tools Suite, as it is referred to, is a collection of client side tools for performing the basic tasks of encryption and decryption under IBE. The tools are: IBE Library The IBE library is a Microsoft COM library that provides an interface to the IBE encryption functions, through higher level function calls. Microsoft Outlook Add-In A simple COM object that interfaces between Microsoft Outlook and the IBE library, enabling users to encrypt and decrypt messages. Windows Shell Extension Provides built in encryption and decryption to the windows shell. IBE Wizard An application, developed to test the library, that provides a simple user interface for encrypting and decrypting files. The basic premise behind the IBE tools is to provide a simple, intuitive, user interface, abstracting away from the underlying implementation details. This allows the encryption tools to be built into any application requiring them, through an add-in component. To achieve the flexibility required to allow the incorporation of the tools suite into any application, the architecture relies extensively upon Microsoft COM (Component Object Model, see section 1.3). This allows any application that supports OLE Automation to have a simple interface to the Tools Suite, therefore providing built in encryption. 23
34 The system architecture was designed in three tiers, each operating through an interface to the next. The tiers are explained in section Three Tier Architecture As briefly described in section 3.1 the architecture on which the encryption tools are based is in multiple tiers. User interface feedback is an important characteristic of all applications. It should always be responsive and should never suspend without painting for extended periods. With this in mind, the encryption process is controlled from a dedicated thread. This was the primary reason for implementing a multiple tier architecture. An additional benefit of this feature, cancellation of the process is possible, with all rollback and cleanup handled by the internals of the IBE library. The main encryption runs in the bottom tier, hidden away from the user in a separate thread. The middle tier contains the control logic, sometimes referred to as the business logic. This tier allows for the scheduling and de-scheduling of encryption tasks, known as contexts, and the control of the actual encryption process. The lower two tiers are contained in a COM library exposing the necessary middle tier functions allowing for external applications to interface with it. The third, or topmost tier, is where the user interacts with the library. This is the responsibility of the client application, and each of the three main tools in the IBE Tools Suite offer different ways in which the user can interact with the library. Figure 4 shows this architecture Middle Tier Logic The abstraction of the control process to a middle tier allows for an integrated solution to a third party application. The reuse of the encryption engine is enabled by the separating of the application logic from the user interface and placing it in a publicly accessible central tier. This conceals 24
35 User Interface Public Key String OK Cancel Top Tier IBE Library Control Logic [Start, Stop, Cancel, Pause, Resume] Middle Tier Worker Threads [Encryption, Decryption] Bottom Tier Figure 4: This diagram shows the multiple tier architecture that forms the IBE Tools. Each user tool (Shell Extension, Outlook Add-In, etc.) implements the third tier, or User Interface tier. The IBE Library forms the lower two tiers, the control logic and the worker threads. This architecture enables developers to concentrate solely on the tier in which they are developing, maintaining the interfaces to the other tiers. the implementation details, presenting a clear set of interfaces and the ability to easily integrate it with other environments Architectural Features Distributed Environment Because the IBE class neatly encapsulates the encryption process, there is only ever the need to create a single instance of it on any host. Because the architecture relies heavily on COM, a client can transparently connect to any host running the IBE service, providing a truly distributed environment. For this feature to be implemented properly, some changes would be required, notably dedication of a single thread to each individual encryption or decryption task. Another change in the architecture would require communications between the top and middle tiers to somehow be secured, so that an attacker could not intercept remote procedure communications in a distributed environment, giving them access to pass phrase information and unencrypted data. 25
36 Concurrent Execution This architecture allows for the simultaneous processing of multiple files, as it would be very simple to handle each job in a separate thread. The current implementation only supports concurrent encryption and decryption, no testing has been performed with multiple encryption or decryption threads running simultaneously. 3.3 IBE Library The IBE library is a Dynamic Link Library (DLL) for the Microsoft Windows operating system that provides an interface to the necessary methods required to encrypt and decrypt files, text or streams. Utilizing Microsoft COM (section 1.3), the library is a server for the IBE routines, allowing any application supporting OLE automation to interface with them, providing encryption as an application extension. A job is scheduled by the passing of the context information to the control thread. Once all jobs are scheduled, the process is initiated by a call to the library, and the encryption thread is spawned. Once a job is complete the resulting data is immediately available to the client by simply retrieving the job data from the library. This architecture model allows for multiple jobs to be scheduled and then batch processed by the encryption engine. Figure 5 shows a UML 3 diagram of the library structure. 3 UML: Unified Modeling Language 26
37 IIBE Context +InputType : Context +Input : String +OutputType +Output : String +Action +TA : String +PublicKey : String +PublicKeyArray +PassPhrase : String 0..* IContext 1 -IBEHome : String -DefaultTA : String +EncryptEx() +DecryptEx() +AddContext(in pcontext : Context) +RemoveContext() : Context 1 IBE IIBEProgress Progress -Encrypt -Cancelled : Boolean -Finished : Boolean -Max : Long -Position : Long -FileName : String +Start() +Finish() +Reset() +Increment(in Inc : Long) +Extend(in Inc : Long) 0..1 ILog Log +AddMessage(in Code : Long, in Origin : String, in Message : String) +Show() +Hide() Figure 5: The core object, IBE, controls the transfer process and encapsulates the actual IBE implementation. The three other classes, Log, Progress and Context (see section 3.3.2) are objects that are created by the client application. Contexts are encryption and decryption tasks that have been scheduled, and a list is maintained by the IBE object. The Progress and Log objects are user interface features to be implemented by the client and assigned to the IBE object through the appropriate properties. 27
38 3.3.1 IBE Library Interfaces The IBE Library provides three interfaces, IIBE, IIBEProgress and ILog, referred to as the IBE, Progress and Log interfaces respectively. IBE Library IContext Context Contexts IIBE IIBEProgress Progress ILog Log Figure 6: The interfaces exposed by the COM library are shown in the above figure. The arrows represent interaction from one object to the other, through the interfaces. There are 4 interfaces, although 2 are objects that are implemented by the library and 2 are abstract, in that they have no implementation as that is the responsibility of the client application. IBE Interface This is the core interface of the library, providing access to the encryption and decryption algorithms of the IBE library. It is a very simple interface with few methods, however it forms the core of the middle tier control logic, as well as the bottom tier worker threads. The IBE library works by scheduling encryption and decryption jobs, or Contexts (see section 3.3.2), and then initiating the encryption or decryption process by a call to the appropriate routine. Progress Interface This interface is primarily for the client application to implement. The purpose is to provide feedback to the user informing them of encryption progress. A default implementation is provided by the IBE Library, as a simple dialog box displaying a progress bar that is incremented by the central tier, as well as the option of cancelling the operation through a button on the dialog. 28
39 Name Type Required for Description InputType ItemType 4 Both 5 Represents the type of input the process is to work on, either a MIME encoded string or a filename. Input BSTR 6 Both Either the MIME encoded source text or a filename, including full path, for the source data. OutputType ItemType Both Represents the type of output the process is to work on, either a string or a filename. Output BSTR Both Either the filename, including full path, for the target data, or an empty string (if the target is a string output). Action Method 7 Both Describes what kind of action to be performed, eitehr Encryption or Decryption. TA BSTR Both The Trusted Authority to use for encrypting or decrypting this context. If left empty, the default TA is used. PublicKey BSTR Encryption The public key string ID the source should be encrypted to. PublicKeyArrayVariant 8 Encryption A SafeArray 9 of all public keys (as BSTRs) the source should be encrypted to. PassPhrase BSTR Decryption The pass phrase that protects the encrypted private key file. Table 2: This table lists all the properties on the context object. Log Interface Again, this interface is the responsibility of the client application developer to implement, however a simple default implementation is available through instantiation of the object in the IBE Library Encryption/Decryption Contexts Contexts are simple objects that contain all the information required about a job to execute it. A context is made of several properties ranging from the source text or filename of the document to work on through to the pass-phrase required for decryption. A complete list of the properties can be found in table 2. 4 Enumeration ItemType: Values can be ibefile or ibestring 5 Both: Required for Encryption and Decryption 6 BSTR is a COM datatype for strings, that supports multibye characters and Unicode 7 Enumeration Method: valid values are ibeencrypt or ibedecrypt for encryption or decryption respectively 8 Variant is a generic data type 29
40 3.3.3 Encryption Process The encryption process for a single document takes place in multiple stages, and is described in figure 7. Get next Encryption Context Check Input Type File Read file into byte array MIME String Decode MIME to byte array Generate random DES key Encrypt byte array using Triple DES Encrypt DES key using IBE and supplied public ID Figure 7: This diagram shows a flow of execution when encrypting a string. Only the main stages are shown each is described in more detail below. Setup: The setup phase for the Encryption process consists of loading the source text, either from a MIME encoded string 10 or the specified file and generating a DES (Digital Encryption Standard) key. The DES algorithm used was taken from the Crypto Plus Plus library 11, which has been used throughout this project implementation. 9 SafeArray: A COM array that can be used across all COM languages 10 The reason for MIME encoding the string is because it is otherwise impossible to pass binary data between COM objects easily. 11 Crypto Plus Plus is a very robust, professional standard cryptographic library written in C++, available for free use in commercial applications. 30
41 The DES key is generated using the Microsoft Crypto API functions that form a part of the Microsoft Windows operating system. The randomness generator that forms part of this API is cryptographically random, and generates random data from hardware interrupts, jitters and CPU flag states, to name some of the sources. 64 bits are read from this source and used as the DES key. Encryption: The encryption process is very simple. The randomly generated DES key is used to encrypt the input data using the Tripe DES algorithm (section 2.3.1), and then is itself encrypted using the IBE algorithm under the supplied public key string. Output: The output is either written to a file, if specified by the context parameters, or MIME encoded to a string, and returned through the context object. The IBE file format is explained in figure When MIME encoded, the file format is converted from a raw data array to a MIME encoded BSTR Decryption Process The decryption process is the reverse of the encryption process, and the flow of execution is shown in figure IBE File Format IBE encrypted data files are identified from the signature at the top of the file, figure 9 shows the byte sequence that is used as the signature. This signature both identifies the file as an IBE file and provides for immediate detection of common file-transfer problems. The first two bytes distinguish IBE files on systems that expect the first two bytes to identify the file type uniquely. The first byte is chosen as a non-ascii value to reduce the probability that a text file may be misrecognized as an IBE file; also, it catches bad file transfers that clear bit 7. Bytes two through four name the format. The CR-LF sequence catches bad file transfers that alter new line sequences. Byte 7 identifies the file as a data file, key files are represented by a K in the place of byte 7. The control-z character stops file display under MS-DOS. The final line feed checks for the inverse of the CR-LF translation problem. 31
42 Get next Decryption Context Check Input Type File Read file into byte array MIME String Decode MIME to byte array Load private IBE key Success Decrypt with passphrase Decrypt DES key using IBE private key Failure Throw Exception and return Decrypt CT using Triple DES Figure 8: This diagram shows a flow of execution when encrypting a string. Only the main stages are shown each is described in more detail below. 3.4 IBE Outlook Add-In The Outlook Add-In developed as part of this project is very simply an interface to the IBE COM Library. Figure 10 shows the addition of the Encryption option to the Compose Message Window. To encrypt a message, the sender simply has to select the button, this will flag the message for encryption. When the send event is raised, by the user hitting the send button, the IBE Add-In intercepts this and performs a single encryption of the data, using a random DES key, and encrypts the DES key, using IBE, to each of the recipients and the sender. A single copy of the encrypted message is saved in the sender s Sent-Items folder. This way, only one is sent and all desired recipients, and the sender, can read it. On receipt of an encrypted message, the recipient can only view it by opening the message. Viewing in the preview pane will only display the MIME encoded message. 32
43 (byte) (decimal) (hexadecimal) d 0a 46 1a 0a (ASCII C notation) \211 I B E \r \n F \032 \n Figure 9: This format is modified from the PNG format to suit IBE files and keys. (a) Encryption Not Selected (b) Encryption Selected Figure 10: Modifications to the Outlook Compose Message Window. When a message has been selected for encryption the Encrypt button state changes to depressed, as shown in subfugre 10(b). When opening an encrypted , the recipient is prompted with a dialog box, shown in figure 11, where the pass phrase under which their private key is encrypted is requested. Once successfully entered, the message is displayed in the original state. Design of the add-in required the identification of events to handle that would enable encryption of outgoing s and decryption of incoming s. These were identified in section Composing and Reading Mail Messages The compose window was required to be modified so that there was some way for a user to select the message for encryption, by toggling a flag associated with the message. This 33
44 Figure 11: The user is prompted to enter his or her secret pass phrase that was chosen to encrypt the message. Unsuccessful entry of the pass phrase will result in the opening of the message failing. was achieved by identifying when a message was being composed and adding a tool bar button that enables encryption (see figure 10). To enable this tool bar, the add-in intercepts the OnNewInspector 12 event issued when an item of any kind is opened, either for composition or reading. The process is outlined in figure Encryption Tool bar The Encrypt button that is added to the tool bar has an event handler which toggles the encrypt flag on and off depending on the user toggling the button itself Sending Mail When a mail item is sent, the OnItemSend is raised by Outlook and intercepted by the add-in. The event is triggered for all items that are sent, so the same check on the inspector for a mail item is carried out as before. If the item is a mail item then the encrypt flag is checked, and if set the message is encrypted to all recipients and the sender. This is so the 12 An inspector object represents the window in which an Outlook item is displayed. 34
45 If the inspector is for a mail item: If the mail item is not encrypted: Create tool bar Add Encrypt button Set Encrypt flag to FALSE Else Prompt user for pass phrase Attempt to decrypt message If Decryption succeeds Display Plain-Text message Else Display Cipher-Text message EndIf EndIf Else Ignore EndIf Figure 12: This pseudo code shows the process involved when a new inspector object is created by Outlook. This handles the setting up of the encryption flags, the tool bar and the decryption of encrypted messages. sender can read it again if necessary. 3.5 IBE Shell Extensions As explained section there are many types of shell extension that are supported by Microsoft Windows. This particular extension is a Context Menu extension, which allows the user to right-click on any file and select Encrypt File(s) from the menu. Figure 13 shows the right click menu on a file with the shell extension installed. As well as working on single files, the application will also encrypt multiple files. The shell extension also supports decrypting encrypted files, and the user interface change is similar to that for encrypting files, and can also be seen in figure
46 (a) Encryption (b) Decryption Figure 13: The new context menu with encryption and decryption support supplied from the IBE Shell Extension. 3.6 IBE Wizard The IBE Wizard was designed for the purpose of providing an easy way to test the IBE Library. Developed in Visual Basic, for speed and simplicity of development, it is comprised of a simple user interface that communicates using COM with the IBE Library. This application fully demonstrates the three tiered architecture, as it implemented the entire upper tier. Figure 14 shows several user interface features, the progress window and the pass phrase dialog. 3.7 Setup/Configuration Program A simple installation program has been developed to allow a user to install the IBE Tools Suite on a Microsoft Windows 95 or greater operating system. The package ships with the following components: IBE Library; IBE Shell Extension; IBE Outlook 2000 Add-In; IBE Outlook XP Add-In; IBE Wizard; IBE Setup program. 36
47 Although not discussed previously, the IBE Setup program allows a user to specify the Home directory for storing IBE keys, and will install any key opened with it to that location. The package is available from mb8094/ibe/. 3.8 Server Tools The Server software, also known as the Trust Authority, runs as a simple CGI script on a web server. The script requires 3 parameters to it, passed through an HTTP PUT request. The parameters are: Address - The address for which a private key has been requested; Pass phrase - a pass phrase of any length with which the private key is to be encrypted under; Pass phrase Confirmation - to ensure the user remembers the pass phrase, the CGI script requires it to be confirmed. The first time the script is run, the TA generates the parameters for the system and a random private key of it s own. This private key needs to be persisted in some form so that it can be re-loaded every time the script is run. The key is currently persisted in a flat file format in the current working directory - something that is not very secure, despite it being encrypted, as it is simple to recover the file and start a brute force attack on it. With the system parameters, the TA s private key and the address of the user, the system can then generate a private key for that address. Once generated, the key is encrypted using Triple DES under the pass phrase supplied. The output from the DES encryption is encoded in MIME format so that it can be transmitted by . Sendmail is invoked to send an to the address supplied. The has two attachments: 1. The private key; 2. System parameters and TA public key. 37
48 The body informs the user that these be placed in their IBE Home directory, which would have been configured when the IBE tools were installed. The System Parameters file, also known as the TA s public key, is not encrypted, as it is public knowledge. The name of the file also specifies the Trust Authority and follows the following format: TA- trust authority name.ibek So, for the University of Bristol Computer Science Department, the TA file would be named: TA-cs.bris.ac.uk.ibek Private key files are always called private.ibek, however this assumes the user only has one private key. As users will also belong to mailing lists, for example for each course they study, it would be necessary to provide private keys for those lists so that they can decrypt distributed to the group. To enable this, either multiple key files would be required, or a way to store multiple keys in one file. 3.9 Maintenance of Code The code that forms the technical implementation of this project is very well documented using comments. A design and implementation document that would be of use to anyone wishing to maintain or adapt the code is available for the IBE Library[2]. The client applications which make use of this library are not documented in such a manner as the comments in the code do a sufficient job. The IBE Library documentation covers many of the aspects discussed in this report, and is effectively a tailored version of this section. Anyone wishing to maintain the code would learn a lot from reading this section, perhaps more so than from reading the IBE Library documentation, as this report covers the client applications as well as the IBE Library. Due to the intellectual property rights, the source code to the IBE methods, provided by HP, are not available for public download, only precompiled binaries (stripped of debugging info) are available. 38
49 (a) IBE Wizard User Interface - Encryption (b) IBE Wizard User Interface - Pass phrase Dialog Figure 14: The UI is very simple, requesting input and output filenames, the type of operation to perform (Encryption or Decryption) and the public key string which to encrypt to (for encryption only). The modal pass phrase dialog, shown when decrypting a file, prompts the user for their pass phrase. If incorrectly entered the process will simply fail, with an error message. 39
50 40
51 4 Current Status and Future Plans The technical implementation that forms a part of this project is more than just a simple proof of concept, as the architecture has been fully designed, and to a large extent fully implemented. However, the code that drives the encryption, the IBE algorithm, that is used is supplied by Hewlett Packard purely to prove the system works. The University of Bristol Department of Computer Science is currently developing an improved algorithm that is to be used in a commercial implementation of the security. 4.1 Client Tools The software developed that forms the client suite of tools is largely complete. Some user interface features and improved functionality are all that is missing to make this a fully working solution Functionality Enhancements Attachments: As the Microsoft Outlook Add-In currently stands, there is no support for encrypting attachments. This is a major piece of functionality which needs to be implemented for any commercial versions of the software. Digital Signatures: The main piece of functionality that is missing the ability to digitally sign outgoing s. This is feature is core to the application, as digital signatures provide an extra level of security by authenticating the message sender. The algorithm to be used for digitally signing s using IBE is outlined in figure Server Tools The server side tools developed for this project are by no means the final version, and were developed as they are simply for the purpose of distributing keys in a quick and easy solution. A full solution may require a separate application that connects over a secure connection 41
52 Signing The signature on message Ñ is Ù Úµ. Verification: Proof: Ö Ø È È µ Ú À Ñ Öµ Ù ÚË Á È Ø Í È µ Ø É Á É Ì µ Ú Accept the signature if and only if: Ú À Ñ µ Ø Ù È µ Ø É Á É Ì µ Ú Ø ÚË Á È È µ Ø É Á É Ì µ Ú Ø ÚË Á ȵ Ø È È µ Ø É Á ÖÈ µ Ú Ø Ë Á ȵ Ú Ø È È µ Ø ÖÉ Á ȵ Ú Ø Ë Á ȵ Ú Ø È È µ Ø Ë Á ȵ Ú Ø È È µ Ö Figure 15: IBE Digital Signature Scheme proposed by Florian Hess to a server, as opposed to using a web server with CGI scripts. As this project concentrated mainly on the client applications of IBE very little thought has gone into how such an application would work. 4.3 Identities and Keys IBE allows any string to be a valid public key, something that is a very powerful feature as it allows for more control over the key. An example is the concatenation of a date to the key. This date could represent the date after which anything encrypted using the key could be viewed. Or, conversely, some kind of control could be built in that specifies the date when the key expires, making key revocation much easier, as it is automatic. The current Private Key Generation mechanism relies on a single Trust Authority, however the IBE scheme used allows for a distribution of this trust amongst many authorities. This key escrow provides more security as all parts of the key, from each TA, are required 42
53 to form the entire private key. To extend the power of the key beyond a simple address, a program that enables a user to construct the key from a set of parameters, such as place, date, time, user, and selecting the TA s to use, would be required. The user program would communicate with a server application which resides on public servers for each of the TA s. 4.4 Other Applications of IBE Identity Based Systems are very powerful and have many potential applications, from to securing wireless networks. was the original motivation behind the development of such a system, and is the obvious application of the technology. Another use for an IBE system would be the development of a new Secure Socket Protocol, that uses machines public identities when establishing the connection and performing the key session key exchange. Figure 16 shows the current Handshake Protocol as defined by the SSL standard. Client Server ClientHello ServerHello Certificate CertificateRequest ServerKeyExchange Certificate ClientKeyExchange CertificateVerify change cipher spec Finished Change cipher spec Finished Application Data Application Data Figure 16: The client initializes communication with the server by sending the ClientHello message, which negotiates the security parameters of the connection. Once the public keys and certificates are exchanged the session key is exchanged by one of several key exchange protocols (see [5]). The session key is used for encryption of the application data. A revised version of this protocol might work as shown in figure 17. In this protocol, 43
54 the handshake requires that only the system parameters (which would be signed using the servers private key for verification using the public identity) be transferred. The key exchange could be carried out by encrypting the session key using the public identities, over some key agreement protocol as described in [5]. Client Server ClientHello ServerHello System Parameters Change cipher spec Finished Change cipher spec Finished Application Data Application Data Figure 17: This revised handshake protocol adds the benefit of not having to verify the public key and certificate of the server. As the current protocol requires that either A. the certificate be produced from a trust authority, or B that the user explicitly accepts the certificate, there is a cost of time involved. By removing this, the process becomes much quicker and much simpler. 44
55 A Lists of Tables, Figures and References List of Figures 1 Fiestel Cipher Data Encryption Standard(DES) Algorithm Triple DES in EDE mode Three Tier Architecture of the IBE Tools UML Representation of the IBE COM Library IBE Interfaces and Objects Encryption Process Decryption Process IBE File Format IBE Outlook Add-In User Interface Extensions Outlook Pass phrase Dialog OnNewInspector Event Handler Shell Extension Context Menu s IBE Wizard User Interface IBE Digital Signature Algorithm SSL Handshake IBE-SSL Handshake List of Tables 1 Windows Shell Extension Definitions Context Item Properties
56 References [1] Microsoft Developer Network. Microsoft Press, 6.0a edition, [2] M. G. Baldwin. ibe tools suite: Ibe library, [3] I. Blake, G. Seroussi, and N. Smart. Eliptic Curves in Cryptography. Cambridge University Press, [4] D. Boneh and M. Franklin. identity-based encryption from the weil pairing, [5] A. O. Freier, P. Karlton, and P. C. Kocher. the ssl protocol. Technical report, [6] G. Frey and H.-G. Rück. a remark concerning Ñ-divisiblity and the discrete logarithm problem in the divisor class group of curves, [7] S. D. Gallbraith, K. Harrison, and D. Soldera. implementing the tate pairing, [8] D. Hankerson, J. Hernandez, and A. Menzes. software implementations of elliptic curve cryptography over binary fields [9] A. Joux and K. Nguyen. separating decision diffie-hellman from diffie-hellman in cryptographic groups. [10] A. J. Menezes, P. C. van Oorschot, and S. A. Vanstone. Handbook of Applied Cryptography. CRC Press, revised edition, [11] A. Menzes, T. Okamoto, and V. S.A. reducing elliptic curve logarithms to logarithms in a finite field. IEEE Trans. Inf. Theory,
Chapter 11 Security+ Guide to Network Security Fundamentals, Third Edition Basic Cryptography
Chapter 11 Security+ Guide to Network Security Fundamentals, Third Edition Basic Cryptography What Is Steganography? Steganography Process of hiding the existence of the data within another file Example:
CRYPTOGRAPHY IN NETWORK SECURITY
ELE548 Research Essays CRYPTOGRAPHY IN NETWORK SECURITY AUTHOR: SHENGLI LI INSTRUCTOR: DR. JIEN-CHUNG LO Date: March 5, 1999 Computer network brings lots of great benefits and convenience to us. We can
The Mathematics of the RSA Public-Key Cryptosystem
The Mathematics of the RSA Public-Key Cryptosystem Burt Kaliski RSA Laboratories ABOUT THE AUTHOR: Dr Burt Kaliski is a computer scientist whose involvement with the security industry has been through
Network Security. Computer Networking Lecture 08. March 19, 2012. HKU SPACE Community College. HKU SPACE CC CN Lecture 08 1/23
Network Security Computer Networking Lecture 08 HKU SPACE Community College March 19, 2012 HKU SPACE CC CN Lecture 08 1/23 Outline Introduction Cryptography Algorithms Secret Key Algorithm Message Digest
Identity-Based Encryption from the Weil Pairing
Appears in SIAM J. of Computing, Vol. 32, No. 3, pp. 586-615, 2003. An extended abstract of this paper appears in the Proceedings of Crypto 2001, volume 2139 of Lecture Notes in Computer Science, pages
DigiDelivery Client Quick Start
DigiDelivery Client Quick Start Installing the DigiDelivery Client To download and install the DigiDelivery client software: 1 Launch your Web browser and navigate to www.digidesign.com/digidelivery/clients.
As enterprises conduct more and more
Efficiently handling SSL transactions is one cornerstone of your IT security infrastructure. Do you know how the protocol actually works? Wesley Chou Inside SSL: The Secure Sockets Layer Protocol Inside
AN IMPLEMENTATION OF HYBRID ENCRYPTION-DECRYPTION (RSA WITH AES AND SHA256) FOR USE IN DATA EXCHANGE BETWEEN CLIENT APPLICATIONS AND WEB SERVICES
HYBRID RSA-AES ENCRYPTION FOR WEB SERVICES AN IMPLEMENTATION OF HYBRID ENCRYPTION-DECRYPTION (RSA WITH AES AND SHA256) FOR USE IN DATA EXCHANGE BETWEEN CLIENT APPLICATIONS AND WEB SERVICES Kalyani Ganesh
CS 758: Cryptography / Network Security
CS 758: Cryptography / Network Security offered in the Fall Semester, 2003, by Doug Stinson my office: DC 3122 my email address: [email protected] my web page: http://cacr.math.uwaterloo.ca/~dstinson/index.html
HP ProtectTools Embedded Security Guide
HP ProtectTools Embedded Security Guide Document Part Number: 364876-001 May 2004 This guide provides instructions for using the software that allows you to configure settings for the HP ProtectTools Embedded
159.334 Computer Networks. Network Security 1. Professor Richard Harris School of Engineering and Advanced Technology
Network Security 1 Professor Richard Harris School of Engineering and Advanced Technology Presentation Outline Overview of Identification and Authentication The importance of identification and Authentication
Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No. # 11 Block Cipher Standards (DES) (Refer Slide
Microsoft Outlook 2010. Reference Guide for Lotus Notes Users
Microsoft Outlook 2010 Reference Guide for Lotus Notes Users ContentsWelcome to Office Outlook 2010... 2 Mail... 3 Viewing Messages... 4 Working with Messages... 7 Responding to Messages... 11 Organizing
Security. Friends and Enemies. Overview Plaintext Cryptography functions. Secret Key (DES) Symmetric Key
Friends and Enemies Security Outline Encryption lgorithms Protocols Message Integrity Protocols Key Distribution Firewalls Figure 7.1 goes here ob, lice want to communicate securely Trudy, the intruder
Software Tool for Implementing RSA Algorithm
Software Tool for Implementing RSA Algorithm Adriana Borodzhieva, Plamen Manoilov Rousse University Angel Kanchev, Rousse, Bulgaria Abstract: RSA is one of the most-common used algorithms for public-key
Network FAX Driver. Operation Guide
Network FAX Driver Operation Guide About this Operation Guide This Operation Guide explains the settings for the Network FAX driver as well as the procedures that are required in order to use the Network
Evaluation of the RC4 Algorithm for Data Encryption
Evaluation of the RC4 Algorithm for Data Encryption Allam Mousa (1) and Ahmad Hamad (2) (1) Electrical Engineering Department An-Najah University, Nablus, Palestine (2) Systems Engineer PalTel Company,
Network Security Technology Network Management
COMPUTER NETWORKS Network Security Technology Network Management Source Encryption E(K,P) Decryption D(K,C) Destination The author of these slides is Dr. Mark Pullen of George Mason University. Permission
CSCE 465 Computer & Network Security
CSCE 465 Computer & Network Security Instructor: Dr. Guofei Gu http://courses.cse.tamu.edu/guofei/csce465/ Public Key Cryptogrophy 1 Roadmap Introduction RSA Diffie-Hellman Key Exchange Public key and
CIS 6930 Emerging Topics in Network Security. Topic 2. Network Security Primitives
CIS 6930 Emerging Topics in Network Security Topic 2. Network Security Primitives 1 Outline Absolute basics Encryption/Decryption; Digital signatures; D-H key exchange; Hash functions; Application of hash
WS_FTP Professional 12. Security Guide
WS_FTP Professional 12 Security Guide Contents CHAPTER 1 Secure File Transfer Selecting a Secure Transfer Method... 1 About SSL... 2 About SSH... 2 About OpenPGP... 2 Using FIPS 140-2 Validated Cryptography...
DiskPulse DISK CHANGE MONITOR
DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com [email protected] 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product
Secure Network Communication Part II II Public Key Cryptography. Public Key Cryptography
Kommunikationssysteme (KSy) - Block 8 Secure Network Communication Part II II Public Key Cryptography Dr. Andreas Steffen 2000-2001 A. Steffen, 28.03.2001, KSy_RSA.ppt 1 Secure Key Distribution Problem
Cryptography and Network Security Department of Computer Science and Engineering Indian Institute of Technology Kharagpur
Cryptography and Network Security Department of Computer Science and Engineering Indian Institute of Technology Kharagpur Module No. # 01 Lecture No. # 05 Classic Cryptosystems (Refer Slide Time: 00:42)
WS_FTP Professional 12
WS_FTP Professional 12 Tools Guide Contents CHAPTER 1 Introduction Ways to Automate Regular File Transfers...5 Check Transfer Status and Logs...6 Building a List of Files for Transfer...6 Transfer Files
Lukasz Pater CMMS Administrator and Developer
Lukasz Pater CMMS Administrator and Developer EDMS 1373428 Agenda Introduction Why do we need asymmetric ciphers? One-way functions RSA Cipher Message Integrity Examples Secure Socket Layer Single Sign
Lecture 9: Application of Cryptography
Lecture topics Cryptography basics Using SSL to secure communication links in J2EE programs Programmatic use of cryptography in Java Cryptography basics Encryption Transformation of data into a form that
Network Security. Security Attacks. Normal flow: Interruption: 孫 宏 民 [email protected] Phone: 03-5742968 國 立 清 華 大 學 資 訊 工 程 系 資 訊 安 全 實 驗 室
Network Security 孫 宏 民 [email protected] Phone: 03-5742968 國 立 清 華 大 學 資 訊 工 程 系 資 訊 安 全 實 驗 室 Security Attacks Normal flow: sender receiver Interruption: Information source Information destination
Overview of Cryptographic Tools for Data Security. Murat Kantarcioglu
UT DALLAS Erik Jonsson School of Engineering & Computer Science Overview of Cryptographic Tools for Data Security Murat Kantarcioglu Pag. 1 Purdue University Cryptographic Primitives We will discuss the
End User Guide The guide for email/ftp account owner
End User Guide The guide for email/ftp account owner ServerDirector Version 3.7 Table Of Contents Introduction...1 Logging In...1 Logging Out...3 Installing SSL License...3 System Requirements...4 Navigating...4
Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords
Design Notes for an Efficient Password-Authenticated Key Exchange Implementation Using Human-Memorable Passwords Author: Paul Seymer CMSC498a Contents 1 Background... 2 1.1 HTTP 1.0/1.1... 2 1.2 Password
An Introduction to Identity-based Cryptography CSEP 590TU March 2005 Carl Youngblood
An Introduction to Identity-based Cryptography CSEP 590TU March 2005 Carl Youngblood One significant impediment to the widespread adoption of public-key cryptography is its dependence on a public-key infrastructure
Lecture 25: Pairing-Based Cryptography
6.897 Special Topics in Cryptography Instructors: Ran Canetti and Ron Rivest May 5, 2004 Lecture 25: Pairing-Based Cryptography Scribe: Ben Adida 1 Introduction The field of Pairing-Based Cryptography
Document Management Getting Started Guide
Document Management Getting Started Guide Version: 6.6.x Written by: Product Documentation, R&D Date: February 2011 ImageNow and CaptureNow are registered trademarks of Perceptive Software, Inc. All other
Overview Keys. Overview
Overview Keys Overview The PGPmail program performs fast, high-security, public-key encrypting (with optional compression), decrypting, and authenticating of electronic messages and files. The program
Using SSH Secure Shell Client for FTP
Using SSH Secure Shell Client for FTP The SSH Secure Shell for Workstations Windows client application features this secure file transfer protocol that s easy to use. Access the SSH Secure FTP by double-clicking
Lenovo Online Data Backup User Guide Version 1.8.14
Lenovo Online Data Backup User Guide Version 1.8.14 Contents Chapter 1: Installing Lenovo Online Data Backup...5 Downloading the Lenovo Online Data Backup Client...5 Installing the Lenovo Online Data
Overview of CSS SSL. SSL Cryptography Overview CHAPTER
CHAPTER 1 Secure Sockets Layer (SSL) is an application-level protocol that provides encryption technology for the Internet, ensuring secure transactions such as the transmission of credit card numbers
Cryptography: Motivation. Data Structures and Algorithms Cryptography. Secret Writing Methods. Many areas have sensitive information, e.g.
Cryptography: Motivation Many areas have sensitive information, e.g. Data Structures and Algorithms Cryptography Goodrich & Tamassia Sections 3.1.3 & 3.1.4 Introduction Simple Methods Asymmetric methods:
SubmitedBy: Name Reg No Email Address. Mirza Kashif Abrar 790604-T079 kasmir07 (at) student.hh.se
SubmitedBy: Name Reg No Email Address Mirza Kashif Abrar 790604-T079 kasmir07 (at) student.hh.se Abid Hussain 780927-T039 abihus07 (at) student.hh.se Imran Ahmad Khan 770630-T053 imrakh07 (at) student.hh.se
Lecture 9 - Message Authentication Codes
Lecture 9 - Message Authentication Codes Boaz Barak March 1, 2010 Reading: Boneh-Shoup chapter 6, Sections 9.1 9.3. Data integrity Until now we ve only been interested in protecting secrecy of data. However,
Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Module No. #01 Lecture No. #10 Symmetric Key Ciphers (Refer
Symmetric Key cryptosystem
SFWR C03: Computer Networks and Computer Security Mar 8-11 200 Lecturer: Kartik Krishnan Lectures 22-2 Symmetric Key cryptosystem Symmetric encryption, also referred to as conventional encryption or single
Network Security [2] Plain text Encryption algorithm Public and private key pair Cipher text Decryption algorithm. See next slide
Network Security [2] Public Key Encryption Also used in message authentication & key distribution Based on mathematical algorithms, not only on operations over bit patterns (as conventional) => much overhead
3 Setting up Databases on a Microsoft SQL 7.0 Server
3 Setting up Databases on a Microsoft SQL 7.0 Server Overview of the Installation Process To set up GoldMine properly, you must follow a sequence of steps to install GoldMine s program files, and the other
Three attacks in SSL protocol and their solutions
Three attacks in SSL protocol and their solutions Hong lei Zhang Department of Computer Science The University of Auckland [email protected] Abstract Secure Socket Layer (SSL) and Transport Layer
Secure Network Communications FIPS 140 2 Non Proprietary Security Policy
Secure Network Communications FIPS 140 2 Non Proprietary Security Policy 21 June 2010 Table of Contents Introduction Module Specification Ports and Interfaces Approved Algorithms Test Environment Roles
FIPS 140-2 Non- Proprietary Security Policy. McAfee SIEM Cryptographic Module, Version 1.0
FIPS 40-2 Non- Proprietary Security Policy McAfee SIEM Cryptographic Module, Version.0 Document Version.4 December 2, 203 Document Version.4 McAfee Page of 6 Prepared For: Prepared By: McAfee, Inc. 282
Module One: Getting Started... 6. Opening Outlook... 6. Setting Up Outlook for the First Time... 7. Understanding the Interface...
2 CONTENTS Module One: Getting Started... 6 Opening Outlook... 6 Setting Up Outlook for the First Time... 7 Understanding the Interface...12 Using Backstage View...14 Viewing Your Inbox...15 Closing Outlook...17
HMRC Secure Electronic Transfer (SET)
HMRC Secure Electronic Transfer (SET) How to use HMRC SET using PGP Desktop Version 2.0 Contents Welcome to HMRC SET 1 HMRC SET overview 2 Encrypt a file to send to HMRC 3 Upload files to the Government
Table of Contents. Welcome... 2. Login... 3. Password Assistance... 4. Self Registration... 5. Secure Mail... 7. Compose... 8. Drafts...
Table of Contents Welcome... 2 Login... 3 Password Assistance... 4 Self Registration... 5 Secure Mail... 7 Compose... 8 Drafts... 10 Outbox... 11 Sent Items... 12 View Package Details... 12 File Manager...
How To Send An Encrypted Email In Outlook 2000 (For A Password Protected Email) On A Pc Or Macintosh (For An Ipo) On Pc Or Ipo (For Pc Or For A Password Safemail) On An Iphone Or
Outlook 2000 1. Open Outlook 2000 and select the Tools > Options > Security. 2. Click Change Settings. 3. Under the Certificates and Algorithms, there are two Choose buttons. The first allows you to select
14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë
14.1 bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë bî~äì~íáåö=oéñäéåíáçå=ñçê=emi=rkfui=~åç=lééåsjp=eçëíë This guide walks you quickly through key Reflection features. It covers: Getting Connected
Simple Encryption/Decryption Application
Simple Encryption/Decryption Application Majdi Al-qdah Faculty of Information Technology Multimedia University Cyberjaya, 63100, Malaysia [email protected] Lin Yi Hui Faculty of Information Technology
Using Entrust certificates with Microsoft Office and Windows
Entrust Managed Services PKI Using Entrust certificates with Microsoft Office and Windows Document issue: 1.0 Date of issue: May 2009 Copyright 2009 Entrust. All rights reserved. Entrust is a trademark
ANALYSIS OF RSA ALGORITHM USING GPU PROGRAMMING
ANALYSIS OF RSA ALGORITHM USING GPU PROGRAMMING Sonam Mahajan 1 and Maninder Singh 2 1 Department of Computer Science Engineering, Thapar University, Patiala, India 2 Department of Computer Science Engineering,
PGP Desktop Email Quick Start Guide version 9.6
What is PGP Desktop Email? PGP Desktop Email is part of the PGP Desktop family of products. You can use PGP Desktop Email to: Automatically and transparently encrypt, sign, decrypt, and verify email messages
Usable Crypto: Introducing minilock. Nadim Kobeissi HOPE X, NYC, 2014
Usable Crypto: Introducing minilock Nadim Kobeissi HOPE X, NYC, 2014 2012 Browsers are an environment that is hostile to cryptography Malleability of the JavaScript runtime. The lack of low-level (system-level)
DIGIPASS CertiID. Getting Started 3.1.0
DIGIPASS CertiID Getting Started 3.1.0 Disclaimer Disclaimer of Warranties and Limitations of Liabilities The Product is provided on an 'as is' basis, without any other warranties, or conditions, express
Table of Contents. Bibliografische Informationen http://d-nb.info/996514864. digitalisiert durch
1 Introduction to Cryptography and Data Security 1 1.1 Overview of Cryptology (and This Book) 2 1.2 Symmetric Cryptography 4 1.2.1 Basics 4 1.2.2 Simple Symmetric Encryption: The Substitution Cipher...
Configuring Security Features of Session Recording
Configuring Security Features of Session Recording Summary This article provides information about the security features of Citrix Session Recording and outlines the process of configuring Session Recording
7! Cryptographic Techniques! A Brief Introduction
7! Cryptographic Techniques! A Brief Introduction 7.1! Introduction to Cryptography! 7.2! Symmetric Encryption! 7.3! Asymmetric (Public-Key) Encryption! 7.4! Digital Signatures! 7.5! Public Key Infrastructures
How To Encrypt With A 64 Bit Block Cipher
The Data Encryption Standard (DES) As mentioned earlier there are two main types of cryptography in use today - symmetric or secret key cryptography and asymmetric or public key cryptography. Symmetric
Sync Security and Privacy Brief
Introduction Security and privacy are two of the leading issues for users when transferring important files. Keeping data on-premises makes business and IT leaders feel more secure, but comes with technical
Xopero Centrally managed backup solution. User Manual
Centrally managed backup solution User Manual Contents Desktop application...2 Requirements...2 The installation process...3 Logging in to the application...6 First logging in to the application...7 First
Computer Networks 1 (Mạng Máy Tính 1) Lectured by: Dr. Phạm Trần Vũ MEng. Nguyễn CaoĐạt
Computer Networks 1 (Mạng Máy Tính 1) Lectured by: Dr. Phạm Trần Vũ MEng. Nguyễn CaoĐạt 1 Lecture 11: Network Security Reference: Chapter 8 - Computer Networks, Andrew S. Tanenbaum, 4th Edition, Prentice
Public Key (asymmetric) Cryptography
Public-Key Cryptography UNIVERSITA DEGLI STUDI DI PARMA Dipartimento di Ingegneria dell Informazione Public Key (asymmetric) Cryptography Luca Veltri (mail.to: [email protected]) Course of Network Security,
Microsoft Outlook Quick Reference Sheet
Microsoft Outlook is an incredibly powerful e-mail and personal information management application. Its features and capabilities are extensive. Refer to this handout whenever you require quick reminders
AC76/AT76 CRYPTOGRAPHY & NETWORK SECURITY DEC 2014
Q.2a. Define Virus. What are the four phases of Viruses? In addition, list out the types of Viruses. A virus is a piece of software that can infect other programs by modifying them; the modification includes
BCTextEncoder Help File
BCTextEncoder Help File Introduction Introduction Main Features BCTextEncoder Requirements BCTextEncoder Specifications 2 Introduction BCTextEncoder is a line in BestCrypt family of encryption software
GlobalSCAPE DMZ Gateway, v1. User Guide
GlobalSCAPE DMZ Gateway, v1 User Guide GlobalSCAPE, Inc. (GSB) Address: 4500 Lockhill-Selma Road, Suite 150 San Antonio, TX (USA) 78249 Sales: (210) 308-8267 Sales (Toll Free): (800) 290-5054 Technical
Cryptography and Security
Cunsheng DING Version 3 Lecture 17: Electronic Mail Security Outline of this Lecture 1. Email security issues. 2. Detailed introduction of PGP. Page 1 Version 3 About Electronic Mail 1. In virtually all
Building and Using Web Services With JDeveloper 11g
Building and Using Web Services With JDeveloper 11g Purpose In this tutorial, you create a series of simple web service scenarios in JDeveloper. This is intended as a light introduction to some of the
SBClient SSL. Ehab AbuShmais
SBClient SSL Ehab AbuShmais Agenda SSL Background U2 SSL Support SBClient SSL 2 What Is SSL SSL (Secure Sockets Layer) Provides a secured channel between two communication endpoints Addresses all three
Tips and Tricks SAGE ACCPAC INTELLIGENCE
Tips and Tricks SAGE ACCPAC INTELLIGENCE 1 Table of Contents Auto e-mailing reports... 4 Automatically Running Macros... 7 Creating new Macros from Excel... 8 Compact Metadata Functionality... 9 Copying,
Notes on Network Security Prof. Hemant K. Soni
Chapter 9 Public Key Cryptography and RSA Private-Key Cryptography traditional private/secret/single key cryptography uses one key shared by both sender and receiver if this key is disclosed communications
Special Edition for FastTrack Software
08/14 The magazine for professional system and networkadministration Special Edition for FastTrack Software Tested: FastTrack Automation Studio www.it-administrator.com TESTS I FastTrack Automation Studio
vtcommander Installing and Starting vtcommander
vtcommander vtcommander provides a local graphical user interface (GUI) to manage Hyper-V R2 server. It supports Hyper-V technology on full and core installations of Windows Server 2008 R2 as well as on
Outlook 2010 Essentials
Outlook 2010 Essentials Training Manual SD35 Langley Page 1 TABLE OF CONTENTS Module One: Opening and Logging in to Outlook...1 Opening Outlook... 1 Understanding the Interface... 2 Using Backstage View...
Zen Internet. Online Data Backup. Zen Vault Express for Windows. Issue: 2.0.08
Zen Internet Online Data Backup Zen Vault Express for Windows Issue: 2.0.08 Contents 1 Introduction... 3 1.1 System Requirements... 3 2 Installation... 5 2.1 The Setup WIzard... 5 3 The Backup Service...
NovaBACKUP Storage Server User Manual NovaStor / April 2013
NovaBACKUP Storage Server User Manual NovaStor / April 2013 2013 NovaStor, all rights reserved. All trademarks are the property of their respective owners. Features and specifications are subject to change
Microsoft Office System Tip Sheet
The 2007 Microsoft Office System The 2007 Microsoft Office system is a complete set of desktop and server software that can help streamline the way you and your people do business. This latest release
XFTP 5 User Guide. The Powerful SFTP/FTP File Transfer Program. NetSarang Computer Inc.
XFTP 5 User Guide The Powerful SFTP/FTP File Transfer Program NetSarang Computer Inc. Copyright 2015 NetSarang Computer, Inc. All rights reserved. Xftp Manual This software and various documents have been
BIGPOND ONLINE STORAGE USER GUIDE Issue 1.1.0-18 August 2005
BIGPOND ONLINE STORAGE USER GUIDE Issue 1.1.0-18 August 2005 PLEASE NOTE: The contents of this publication, and any associated documentation provided to you, must not be disclosed to any third party without
Citrix EdgeSight for Load Testing User s Guide. Citrx EdgeSight for Load Testing 2.7
Citrix EdgeSight for Load Testing User s Guide Citrx EdgeSight for Load Testing 2.7 Copyright Use of the product documented in this guide is subject to your prior acceptance of the End User License Agreement.
Efficient Framework for Deploying Information in Cloud Virtual Datacenters with Cryptography Algorithms
Efficient Framework for Deploying Information in Cloud Virtual Datacenters with Cryptography Algorithms Radhika G #1, K.V.V. Satyanarayana *2, Tejaswi A #3 1,2,3 Dept of CSE, K L University, Vaddeswaram-522502,
EXAM questions for the course TTM4135 - Information Security May 2013. Part 1
EXAM questions for the course TTM4135 - Information Security May 2013 Part 1 This part consists of 5 questions all from one common topic. The number of maximal points for every correctly answered question
1720 - Forward Secrecy: How to Secure SSL from Attacks by Government Agencies
1720 - Forward Secrecy: How to Secure SSL from Attacks by Government Agencies Dave Corbett Technical Product Manager Implementing Forward Secrecy 1 Agenda Part 1: Introduction Why is Forward Secrecy important?
Chapter 10. Network Security
Chapter 10 Network Security 10.1. Chapter 10: Outline 10.1 INTRODUCTION 10.2 CONFIDENTIALITY 10.3 OTHER ASPECTS OF SECURITY 10.4 INTERNET SECURITY 10.5 FIREWALLS 10.2 Chapter 10: Objective We introduce
Storing Encrypted Plain Text Files Using Google Android
Storing Encrypted Plain Text Files Using Google Android Abstract Jared Hatfield University of Louisville Google Android is an open source operating system that is available on a wide variety of smart phones
Vodafone Text Centre User Guide for Microsoft Outlook
Vodafone Text Centre User Guide for Microsoft Outlook 1 Contents Introduction 1 System requirements 2 Installation 3 The installation guide 3 First use 5 Send a message 8 Select recipient 8 Enter the message
Ciphire Mail. Abstract
Ciphire Mail Technical Introduction Abstract Ciphire Mail is cryptographic software providing email encryption and digital signatures. The Ciphire Mail client resides on the user's computer between the
Citrix EdgeSight for Load Testing User s Guide. Citrix EdgeSight for Load Testing 3.8
Citrix EdgeSight for Load Testing User s Guide Citrix EdgeSight for Load Testing 3.8 Copyright Use of the product documented in this guide is subject to your prior acceptance of the End User License Agreement.
Secure Network Communication Based on Text-to-Image Encryption
Secure Network Communication Based on Text-to-Image Encryption Ahmad Abusukhon 1, Mohamad Talib 2, Issa Ottoum 3 1 IT Faculty, - Computer Network Department Al-Zaytoonah University of Jordan Amman, JORDAN
Person To Person (PTP) Software Release Notes
Person To Person (PTP) Software Release Notes 3.5.3 December 10, 2014 The option to save an original copy of encrypted email messages in Outlook Sent Items folder was found to not work correctly with non-
WS_FTP Professional 12
WS_FTP Professional 12 Security Guide Contents CHAPTER 1 Secure File Transfer Selecting a Secure Transfer Method...1 About SSL...1 About SSH...2 About OpenPGP...2 Using FIPS 140-2 Validated Cryptography...2
Network Security. Abusayeed Saifullah. CS 5600 Computer Networks. These slides are adapted from Kurose and Ross 8-1
Network Security Abusayeed Saifullah CS 5600 Computer Networks These slides are adapted from Kurose and Ross 8-1 Goals v understand principles of network security: cryptography and its many uses beyond
Table and field properties Tables and fields also have properties that you can set to control their characteristics or behavior.
Create a table When you create a database, you store your data in tables subject-based lists that contain rows and columns. For instance, you can create a Contacts table to store a list of names, addresses,
NETWORK SECURITY. Farooq Ashraf. Department of Computer Engineering King Fahd University of Petroleum and Minerals Dhahran 31261, Saudi Arabia
NETWORK SECURITY Farooq Ashraf Department of Computer Engineering King Fahd University of Petroleum and Minerals Dhahran 31261, Saudi Arabia O u t l i n e o f t h e P r e s e n t a t i o n What is Security
Legal Notes. Regarding Trademarks. 2012 KYOCERA Document Solutions Inc.
Legal Notes Unauthorized reproduction of all or part of this guide is prohibited. The information in this guide is subject to change without notice. We cannot be held liable for any problems arising from
