This document discusses public key cryptography and the RSA algorithm. It begins by outlining some misconceptions about public key encryption. It then provides an overview of the key concepts behind public key cryptosystems, including the use of public and private key pairs to enable encryption, digital signatures, and key exchange. The document goes on to provide detailed explanations of the RSA algorithm, including how it uses large prime numbers and modular arithmetic to encrypt and decrypt messages securely. It discusses the security of the RSA algorithm and analyzes approaches for attacking it, such as brute force key searching and mathematical attacks based on factoring the private key.
This document discusses public key cryptography and the RSA algorithm. It provides explanations of public key encryption including its key components like plaintext, encryption algorithm, public and private keys, and decryption algorithm. It then describes the conventional encryption method versus public key encryption. Finally, it explains the RSA algorithm in detail, including how it generates key pairs, how encryption and decryption works using the keys, and some of the mathematical concepts that make RSA secure like the difficulty of factoring large numbers.
This document provides an overview of public-key cryptography. It discusses how public-key cryptography uses two keys, a public key for encryption and a private key for decryption. The document outlines the key principles of public-key cryptography including key distribution and digital signatures. It also describes the basic public-key cryptosystem process and categories of public-key cryptography including encryption/decryption, digital signatures, and key exchange. The document concludes with requirements for public-key cryptography and examples of applications and cryptoanalysis techniques.
This document discusses public-key cryptography and digital signatures. It begins with an introduction to symmetric and asymmetric key cryptography, including the basic concepts and differences between the two approaches. It then provides more details on public-key cryptography principles, including how public/private key pairs are generated and used. The document explains the RSA algorithm for public-key encryption and decryption in detail with examples. It also covers digital signature models and how they provide message authentication, integrity, and non-repudiation using public-key techniques. Diffie-Hellman key exchange is introduced as a method for securely transmitting a symmetric secret key between two parties.
information security(Public key encryption its characteristics and weakness, ...Zara Nawaz
This document provides information on public key encryption. It discusses how public key encryption uses a public key for encryption and a private key for decryption. It also describes how the Diffie-Hellman key exchange algorithm works, including how two parties can generate a shared secret key over an open channel by exchanging public values and performing calculations. An example of the Diffie-Hellman algorithm is also provided. The document concludes by listing some applications of public key encryption like confidentiality and digital signatures, and also discusses some weaknesses like vulnerability to brute force attacks.
Public Key Cryptosystems with Applications, Requirements and
Cryptanalysis, RSA algorithm, its computational aspects and security, Diffie-Hillman Key Exchange algorithm, Man-in-Middle attack
The document discusses principles of public-key cryptography and algorithms like RSA and Diffie-Hellman key exchange. It provides the following key points:
1. Public-key cryptography solves the key distribution problem of symmetric encryption by using different but mathematically-related public and private keys.
2. The RSA algorithm was one of the first practical public-key cryptosystems, using modular exponentiation with large prime numbers.
3. Diffie-Hellman key exchange allows two parties to jointly establish a shared secret over an insecure channel without any prior secrets. It is based on the difficulty of calculating discrete logarithms.
Securing Text Messages Application Using MEDZatulNadia
Implementing hybrid security algorithm in securing data.
-Introduction
-Problem statement
-Objective
-Process model
-Public key cryptosystem
-Data model
-Proposed model
-Encryption and decryption process
-Proof of concept
* netbeans 8.1 *xampp *database
*java programming language
-Expected results
*performance for key generation, encryption and decryption
*graph
-References
The Road Less Traveled: Use-cases, Challenges, and Solutions of Homomorphic E...Trupti Shiralkar, CISSP
In this hyper-connected and data-driven world, information can be highly valuable. User data can be collected and analyzed using machine learning techniques to create a superior customer experience. There is a tension between the benefits of digital freedom and privacy. Striking a careful and unique balance between privacy and security of user data can be challenging. In this asymmetric battle, are there techniques that help to protect the privacy of user data while benefiting from the results of collected data analysis? The answer is Yes. Homomorphic encryption may be an effective mechanism to protect both privacy and confidentiality of the data at the same time by enabling computation on encrypted data.
The concept of homomorphic encryption has been around in theory since the RSA algorithm was published in 1978. Recent research shows promising applications of this mathematical invention. The presentation provides an overview of homomorphic encryption and how it can be used to perform computations while helping to preserve privacy. The speaker will also discuss a few use-cases of differential privacy, homomorphic encryption and security implications associated with them.
The target audience for this talk is security engineers, privacy advocates, software development engineers and managers, technical program managers and anyone who is involved in protecting privacy. The attendees will walk away with a general understanding of this topic and its usage and a framework to mitigate challenges.
Symmetric encryption suffers from several key distribution and management problems in modern distributed communication environments. Asymmetric encryption solves these issues by using public/private key pairs, allowing anyone to encrypt messages using the public key but only the private key holder can decrypt. Digital signatures, key certification through public key infrastructure (PKI), and hash functions are important applications of asymmetric cryptography.
Homomorphic encryption allows computations to be carried out on encrypted data without decrypting it first. It preserves relationships between encrypted elements. Traditional encryption requires decrypting data before computations, but homomorphic encryption allows a third party to perform operations on encrypted data. While partially homomorphic encryption allows some operations like addition or multiplication, fully homomorphic encryption would allow any computation. Applications include encrypted database querying, secure voting systems, and protecting proprietary algorithms. Current research aims to develop practical applications by 2015.
This PPT explains about the term "Cryptography - Encryption & Decryption".
This PPT is for beginners and for intermediate developers who want to learn about Cryptography.
I have also explained some famous ciphers like AES, DES and RSA.
Do not forget to like.
This document discusses homomorphic encryption and its applications in cloud computing. It begins by defining cloud computing and encryption. Homomorphic encryption allows computations to be performed on encrypted data without decrypting it first. This allows a third party like a cloud provider to process data while maintaining its confidentiality. The document outlines partially homomorphic encryption schemes like RSA that support only some operations, and fully homomorphic encryption that supports any computation. Potential applications of homomorphic encryption include online voting systems, encrypted data analytics, and encrypted database queries. In conclusion, homomorphic encryption enables secure computation on encrypted data and enhances privacy in cloud computing.
The document discusses principles of public-key cryptography and the Diffie-Hellman key exchange algorithm. It begins by explaining the problems with symmetric encryption that public-key cryptography aims to address. It then provides an overview of public-key cryptosystems and their requirements. The document goes on to describe the RSA algorithm in detail and provide an example of how it works. It also explains the Diffie-Hellman key exchange algorithm, how it allows two parties to securely exchange a key without transmitting it, and provides a numerical example.
Information and network security 32 principles of public key cryptosystemsVaibhav Khanna
Public-key cryptography, or asymmetric cryptography, is an encryption scheme that uses two mathematically related, but not identical, keys - a public key and a private key. Unlike symmetric key algorithms that rely on one key to both encrypt and decrypt, each key performs a unique function.
This document provides information about public-key cryptography and the RSA algorithm. It begins with terminology related to asymmetric encryption like public/private key pairs and certificates. It then discusses the principles of public-key cryptosystems including their applications, requirements, and analysis. The document specifically describes the RSA algorithm, including how it works, its computational aspects, and analysis of its security. It also briefly discusses other public-key cryptosystems like Diffie-Hellman key exchange.
- Public key cryptography uses asymmetric encryption involving two keys - a public key to encrypt and a private key to decrypt. This allows secure communication without pre-sharing keys.
- RSA was the first practical public key cryptosystem, based on the difficulty of factoring large prime numbers. It allows encryption with a public key and decryption with a private key.
- Diffie-Hellman key exchange allows two parties to jointly establish a shared secret key over an insecure channel without any prior secrets. This key can then be used to encrypt subsequent communications.
First presentation of a Cryptography series, it aims to provide a high level overview of cryptography, clarify its objectives, define the terminology and explain the basics of how digital security systems, like Bitcoin, are built.
Mike Dance is a web developer and Bitcoin advocate.
----------
Presented at the BitcoinSYD Meetup on 11 February 2015
The document discusses the principles of public key cryptography including public and private keys, encryption, decryption, digital signatures, key exchange, security, trust, and revocation. It then provides details on the RSA algorithm including key generation, encryption, decryption, and security. It also discusses symmetric key distribution and key management principles like key generation, storage, distribution, rotation, expiration, revocation, and destruction. Finally, it discusses different techniques for distributing public keys such as public announcement, public directories, and using a public key authority.
The document discusses symmetric encryption techniques, including stream ciphers, block cipher modes of operation, and widely-used algorithms like DES, 3DES, and AES. It covers the basics of cryptography, cryptanalysis, and how algorithms like RC4 and block cipher modes like ECB, CBC, CFB and CTR function. The rise of quantum computing threatens existing public-key cryptography, leading to research on post-quantum alternatives like lattice-based cryptography that could secure data even if quantum computers are built.
information security(Public key encryption its characteristics and weakness, ...Zara Nawaz
This document provides information on public key encryption. It discusses how public key encryption uses a public key for encryption and a private key for decryption. It also describes how the Diffie-Hellman key exchange algorithm works, including how two parties can generate a shared secret key over an open channel by exchanging public values and performing calculations. An example of the Diffie-Hellman algorithm is also provided. The document concludes by listing some applications of public key encryption like confidentiality and digital signatures, and also discusses some weaknesses like vulnerability to brute force attacks.
Public Key Cryptosystems with Applications, Requirements and
Cryptanalysis, RSA algorithm, its computational aspects and security, Diffie-Hillman Key Exchange algorithm, Man-in-Middle attack
The document discusses principles of public-key cryptography and algorithms like RSA and Diffie-Hellman key exchange. It provides the following key points:
1. Public-key cryptography solves the key distribution problem of symmetric encryption by using different but mathematically-related public and private keys.
2. The RSA algorithm was one of the first practical public-key cryptosystems, using modular exponentiation with large prime numbers.
3. Diffie-Hellman key exchange allows two parties to jointly establish a shared secret over an insecure channel without any prior secrets. It is based on the difficulty of calculating discrete logarithms.
Securing Text Messages Application Using MEDZatulNadia
Implementing hybrid security algorithm in securing data.
-Introduction
-Problem statement
-Objective
-Process model
-Public key cryptosystem
-Data model
-Proposed model
-Encryption and decryption process
-Proof of concept
* netbeans 8.1 *xampp *database
*java programming language
-Expected results
*performance for key generation, encryption and decryption
*graph
-References
The Road Less Traveled: Use-cases, Challenges, and Solutions of Homomorphic E...Trupti Shiralkar, CISSP
In this hyper-connected and data-driven world, information can be highly valuable. User data can be collected and analyzed using machine learning techniques to create a superior customer experience. There is a tension between the benefits of digital freedom and privacy. Striking a careful and unique balance between privacy and security of user data can be challenging. In this asymmetric battle, are there techniques that help to protect the privacy of user data while benefiting from the results of collected data analysis? The answer is Yes. Homomorphic encryption may be an effective mechanism to protect both privacy and confidentiality of the data at the same time by enabling computation on encrypted data.
The concept of homomorphic encryption has been around in theory since the RSA algorithm was published in 1978. Recent research shows promising applications of this mathematical invention. The presentation provides an overview of homomorphic encryption and how it can be used to perform computations while helping to preserve privacy. The speaker will also discuss a few use-cases of differential privacy, homomorphic encryption and security implications associated with them.
The target audience for this talk is security engineers, privacy advocates, software development engineers and managers, technical program managers and anyone who is involved in protecting privacy. The attendees will walk away with a general understanding of this topic and its usage and a framework to mitigate challenges.
Symmetric encryption suffers from several key distribution and management problems in modern distributed communication environments. Asymmetric encryption solves these issues by using public/private key pairs, allowing anyone to encrypt messages using the public key but only the private key holder can decrypt. Digital signatures, key certification through public key infrastructure (PKI), and hash functions are important applications of asymmetric cryptography.
Homomorphic encryption allows computations to be carried out on encrypted data without decrypting it first. It preserves relationships between encrypted elements. Traditional encryption requires decrypting data before computations, but homomorphic encryption allows a third party to perform operations on encrypted data. While partially homomorphic encryption allows some operations like addition or multiplication, fully homomorphic encryption would allow any computation. Applications include encrypted database querying, secure voting systems, and protecting proprietary algorithms. Current research aims to develop practical applications by 2015.
This PPT explains about the term "Cryptography - Encryption & Decryption".
This PPT is for beginners and for intermediate developers who want to learn about Cryptography.
I have also explained some famous ciphers like AES, DES and RSA.
Do not forget to like.
This document discusses homomorphic encryption and its applications in cloud computing. It begins by defining cloud computing and encryption. Homomorphic encryption allows computations to be performed on encrypted data without decrypting it first. This allows a third party like a cloud provider to process data while maintaining its confidentiality. The document outlines partially homomorphic encryption schemes like RSA that support only some operations, and fully homomorphic encryption that supports any computation. Potential applications of homomorphic encryption include online voting systems, encrypted data analytics, and encrypted database queries. In conclusion, homomorphic encryption enables secure computation on encrypted data and enhances privacy in cloud computing.
The document discusses principles of public-key cryptography and the Diffie-Hellman key exchange algorithm. It begins by explaining the problems with symmetric encryption that public-key cryptography aims to address. It then provides an overview of public-key cryptosystems and their requirements. The document goes on to describe the RSA algorithm in detail and provide an example of how it works. It also explains the Diffie-Hellman key exchange algorithm, how it allows two parties to securely exchange a key without transmitting it, and provides a numerical example.
Information and network security 32 principles of public key cryptosystemsVaibhav Khanna
Public-key cryptography, or asymmetric cryptography, is an encryption scheme that uses two mathematically related, but not identical, keys - a public key and a private key. Unlike symmetric key algorithms that rely on one key to both encrypt and decrypt, each key performs a unique function.
This document provides information about public-key cryptography and the RSA algorithm. It begins with terminology related to asymmetric encryption like public/private key pairs and certificates. It then discusses the principles of public-key cryptosystems including their applications, requirements, and analysis. The document specifically describes the RSA algorithm, including how it works, its computational aspects, and analysis of its security. It also briefly discusses other public-key cryptosystems like Diffie-Hellman key exchange.
- Public key cryptography uses asymmetric encryption involving two keys - a public key to encrypt and a private key to decrypt. This allows secure communication without pre-sharing keys.
- RSA was the first practical public key cryptosystem, based on the difficulty of factoring large prime numbers. It allows encryption with a public key and decryption with a private key.
- Diffie-Hellman key exchange allows two parties to jointly establish a shared secret key over an insecure channel without any prior secrets. This key can then be used to encrypt subsequent communications.
First presentation of a Cryptography series, it aims to provide a high level overview of cryptography, clarify its objectives, define the terminology and explain the basics of how digital security systems, like Bitcoin, are built.
Mike Dance is a web developer and Bitcoin advocate.
----------
Presented at the BitcoinSYD Meetup on 11 February 2015
The document discusses the principles of public key cryptography including public and private keys, encryption, decryption, digital signatures, key exchange, security, trust, and revocation. It then provides details on the RSA algorithm including key generation, encryption, decryption, and security. It also discusses symmetric key distribution and key management principles like key generation, storage, distribution, rotation, expiration, revocation, and destruction. Finally, it discusses different techniques for distributing public keys such as public announcement, public directories, and using a public key authority.
The document discusses symmetric encryption techniques, including stream ciphers, block cipher modes of operation, and widely-used algorithms like DES, 3DES, and AES. It covers the basics of cryptography, cryptanalysis, and how algorithms like RC4 and block cipher modes like ECB, CBC, CFB and CTR function. The rise of quantum computing threatens existing public-key cryptography, leading to research on post-quantum alternatives like lattice-based cryptography that could secure data even if quantum computers are built.
ircuit models of transmission lines are required if they are to be used in a circuit simulator. RF and microwave engineering uses two types of simulators. Spice-like simulators use lumped-element transmission line models in which an RLGC
model of a short segment of line is replicated for the length of the line. If the ground plane is treated as a universal ground, then the model of a segment of length Δz is as shown
The IEEE WIE FUE Student Branch Affinity Group was established in January 2022 with six members and has since grown to over 30 members. The group is led by a board including a chairwoman, vice chairwoman, and heads of media, treasury, organization, and secretary. Some of the group's accomplishments include organizing a virtual event with WIE Egypt Section, an online climate change awareness campaign, two recruitment events, involvement in WIE Africa celebrations and an IEEE YP Egypt event.
In tube drawing process, a tube is pulled out through a die and a plug to reduce its diameter and thickness as per the requirement. Dimensional accuracy of cold drawn tubes plays a vital role in the further quality of end products and controlling rejection in manufacturing processes of these end products. Springback phenomenon is the elastic strain recovery after removal of forming loads, causes geometrical inaccuracies in drawn tubes. Further, this leads to difficulty in achieving close dimensional tolerances. In the present work springback of EN 8 D tube material is studied for various cold drawing parameters. The process parameters in this work include die semi-angle, land width and drawing speed. The experimentation is done using Taguchi’s L36 orthogonal array, and then optimization is done in data analysis software Minitab 17. The results of ANOVA shows that 15 degrees die semi-angle,5 mm land width and 6 m/min drawing speed yields least springback. Furthermore, optimization algorithms named Particle Swarm Optimization (PSO), Simulated Annealing (SA) and Genetic Algorithm (GA) are applied which shows that 15 degrees die semi-angle, 10 mm land width and 8 m/min drawing speed results in minimal springback with almost 10.5 % improvement. Finally, the results of experimentation are validated with Finite Element Analysis technique using ANSYS.
ELectronics Boards & Product Testing_Shiju.pdfShiju Jacob
This presentation provides a high level insight about DFT analysis and test coverage calculation, finalizing test strategy, and types of tests at different levels of the product.
π0.5: a Vision-Language-Action Model with Open-World GeneralizationNABLAS株式会社
今回の資料「Transfusion / π0 / π0.5」は、画像・言語・アクションを統合するロボット基盤モデルについて紹介しています。
拡散×自己回帰を融合したTransformerをベースに、π0.5ではオープンワールドでの推論・計画も可能に。
This presentation introduces robot foundation models that integrate vision, language, and action.
Built on a Transformer combining diffusion and autoregression, π0.5 enables reasoning and planning in open-world settings.
☁️ GDG Cloud Munich: Build With AI Workshop - Introduction to Vertex AI! ☁️
Join us for an exciting #BuildWithAi workshop on the 28th of April, 2025 at the Google Office in Munich!
Dive into the world of AI with our "Introduction to Vertex AI" session, presented by Google Cloud expert Randy Gupta.
"Feed Water Heaters in Thermal Power Plants: Types, Working, and Efficiency G...Infopitaara
A feed water heater is a device used in power plants to preheat water before it enters the boiler. It plays a critical role in improving the overall efficiency of the power generation process, especially in thermal power plants.
🔧 Function of a Feed Water Heater:
It uses steam extracted from the turbine to preheat the feed water.
This reduces the fuel required to convert water into steam in the boiler.
It supports Regenerative Rankine Cycle, increasing plant efficiency.
🔍 Types of Feed Water Heaters:
Open Feed Water Heater (Direct Contact)
Steam and water come into direct contact.
Mixing occurs, and heat is transferred directly.
Common in low-pressure stages.
Closed Feed Water Heater (Surface Type)
Steam and water are separated by tubes.
Heat is transferred through tube walls.
Common in high-pressure systems.
⚙️ Advantages:
Improves thermal efficiency.
Reduces fuel consumption.
Lowers thermal stress on boiler components.
Minimizes corrosion by removing dissolved gases.
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITYijscai
With the increased use of Artificial Intelligence (AI) in malware analysis there is also an increased need to
understand the decisions models make when identifying malicious artifacts. Explainable AI (XAI) becomes
the answer to interpreting the decision-making process that AI malware analysis models use to determine
malicious benign samples to gain trust that in a production environment, the system is able to catch
malware. With any cyber innovation brings a new set of challenges and literature soon came out about XAI
as a new attack vector. Adversarial XAI (AdvXAI) is a relatively new concept but with AI applications in
many sectors, it is crucial to quickly respond to the attack surface that it creates. This paper seeks to
conceptualize a theoretical framework focused on addressing AdvXAI in malware analysis in an effort to
balance explainability with security. Following this framework, designing a machine with an AI malware
detection and analysis model will ensure that it can effectively analyze malware, explain how it came to its
decision, and be built securely to avoid adversarial attacks and manipulations. The framework focuses on
choosing malware datasets to train the model, choosing the AI model, choosing an XAI technique,
implementing AdvXAI defensive measures, and continually evaluating the model. This framework will
significantly contribute to automated malware detection and XAI efforts allowing for secure systems that
are resilient to adversarial attacks.
Fluid mechanics is the branch of physics concerned with the mechanics of fluids (liquids, gases, and plasmas) and the forces on them. Originally applied to water (hydromechanics), it found applications in a wide range of disciplines, including mechanical, aerospace, civil, chemical, and biomedical engineering, as well as geophysics, oceanography, meteorology, astrophysics, and biology.
It can be divided into fluid statics, the study of various fluids at rest, and fluid dynamics.
Fluid statics, also known as hydrostatics, is the study of fluids at rest, specifically when there's no relative motion between fluid particles. It focuses on the conditions under which fluids are in stable equilibrium and doesn't involve fluid motion.
Fluid kinematics is the branch of fluid mechanics that focuses on describing and analyzing the motion of fluids, such as liquids and gases, without considering the forces that cause the motion. It deals with the geometrical and temporal aspects of fluid flow, including velocity and acceleration. Fluid dynamics, on the other hand, considers the forces acting on the fluid.
Fluid dynamics is the study of the effect of forces on fluid motion. It is a branch of continuum mechanics, a subject which models matter without using the information that it is made out of atoms; that is, it models matter from a macroscopic viewpoint rather than from microscopic.
Fluid mechanics, especially fluid dynamics, is an active field of research, typically mathematically complex. Many problems are partly or wholly unsolved and are best addressed by numerical methods, typically using computers. A modern discipline, called computational fluid dynamics (CFD), is devoted to this approach. Particle image velocimetry, an experimental method for visualizing and analyzing fluid flow, also takes advantage of the highly visual nature of fluid flow.
Fundamentally, every fluid mechanical system is assumed to obey the basic laws :
Conservation of mass
Conservation of energy
Conservation of momentum
The continuum assumption
For example, the assumption that mass is conserved means that for any fixed control volume (for example, a spherical volume)—enclosed by a control surface—the rate of change of the mass contained in that volume is equal to the rate at which mass is passing through the surface from outside to inside, minus the rate at which mass is passing from inside to outside. This can be expressed as an equation in integral form over the control volume.
The continuum assumption is an idealization of continuum mechanics under which fluids can be treated as continuous, even though, on a microscopic scale, they are composed of molecules. Under the continuum assumption, macroscopic (observed/measurable) properties such as density, pressure, temperature, and bulk velocity are taken to be well-defined at "infinitesimal" volume elements—small in comparison to the characteristic length scale of the system, but large in comparison to molecular length scale
This paper proposes a shoulder inverse kinematics (IK) technique. Shoulder complex is comprised of the sternum, clavicle, ribs, scapula, humerus, and four joints.
its all about Artificial Intelligence(Ai) and Machine Learning and not on advanced level you can study before the exam or can check for some information on Ai for project
#1: Lecture slides prepared for “Cryptography and Network Security”, 8/e, by William Stallings, Chapter 9 – “Public Key Cryptography and RSA”.
#2: The development of public-key, or asymmetric cryptography is the greatest and perhaps the
only true revolution in the entire history of cryptography. From its earliest beginnings
to modern times, virtually all cryptographic systems have been based on
the elementary tools of substitution and permutation. After millennia of working
with algorithms that could be calculated by hand, a major advance in symmetric
cryptography occurred with the development of the rotor encryption/decryption
Machine. The electromechanical rotor enabled the development of fiendishly complex
cipher systems. With the availability of computers, even more complex systems
were devised, the most prominent of which was the Lucifer effort at IBM that culminated
in the Data Encryption Standard (DES). But both rotor machines and DES,
although representing significant advances, still relied on the bread-and-butter tools
of substitution and permutation.
Public-key cryptography provides a radical departure from all that has gone
before. For one thing, public-key algorithms are based on mathematical functions
rather than on substitution and permutation. More important, public-key cryptography
is asymmetric, involving the use of two separate keys, in contrast to symmetric
encryption, which uses only one key. The use of two keys has profound
consequences in the areas of confidentiality, key distribution, and authentication,
as we shall see.
This chapter and the next provide an overview of public-key cryptography.
First, we look at its conceptual framework. Interestingly, the concept for this
technique was developed and published before it was shown to be practical to
adopt it. Next, we examine the RSA algorithm, which is the most important encryption/
decryption algorithm that has been shown to be feasible for public-key
encryption. Other important public-key cryptographic algorithms are covered in
Chapter 10.
Much of the theory of public-key cryptosystems is based on number theory.
If one is prepared to accept the results given in this chapter, an understanding of
number theory is not strictly necessary. However, to gain a full appreciation of
public-key algorithms, some understanding of number theory is required. Chapter 2
provides the necessary background in number theory.
#4: Before proceeding, we should mention several common misconceptions concerning
public-key encryption. One such misconception is that public-key encryption
is more secure from cryptanalysis than is symmetric encryption. In fact, the
security of any encryption scheme depends on the length of the key and the computational
work involved in breaking a cipher. There is nothing in principle about
either symmetric or public-key encryption that makes one superior to another from
the point of view of resisting cryptanalysis.
A second misconception is that public-key encryption is a general-purpose
technique that has made symmetric encryption obsolete. On the contrary, because
of the computational overhead of current public-key encryption schemes, there
seems no foreseeable likelihood that symmetric encryption will be abandoned. As
one of the inventors of public-key encryption has put it [DIFF88], “the restriction
of public-key cryptography to key management and signature applications is almost
universally accepted.”
Finally, there is a feeling that key distribution is trivial when using public-key
encryption, compared to the rather cumbersome handshaking involved with
key distribution centers for symmetric encryption. In fact, some form of protocol
is needed, generally involving a central agent, and the procedures involved are not
simpler nor any more efficient than those required for symmetric encryption (e.g.,
see analysis in [NEED78]).
#5: The concept of public-key cryptography evolved from an attempt to attack two of
the most difficult problems associated with symmetric encryption. The first problem
is that of key distribution, which is examined in some detail in Chapter 14.
As Chapter 14 discusses, key distribution under symmetric encryption requires
either (1) that two communicants already share a key, which somehow has been distributed
to them; or (2) the use of a key distribution center. Whitfield Diffie, one
of the discoverers of public-key encryption (along with Martin Hellman, both at
Stanford University at the time), reasoned that this second requirement negated
the very essence of cryptography: the ability to maintain total secrecy over your
own communication. As Diffie put it [DIFF88], “what good would it do after all to
develop impenetrable cryptosystems, if their users were forced to share their keys
with a KDC that could be compromised by either burglary or subpoena?”
The second problem that Diffie pondered, and one that was apparently
unrelated to the first, was that of digital signatures . If the use of cryptography
was to become widespread, not just in military situations but for commercial and
private purposes, then electronic messages and documents would need the equivalent
of signatures used in paper documents. That is, could a method be devised
that would stipulate, to the satisfaction of all parties, that a digital message had
been sent by a particular person? This is a somewhat broader requirement than
that of authentication, and its characteristics and ramifications are explored in
Chapter 13.
Diffie and Hellman achieved an astounding breakthrough in 1976
[DIFF76 a, b] by coming up with a method that addressed both problems and was
radically different from all previous approaches to cryptography, going back over
four millennia.
#6: Asymmetric algorithms rely on one key for encryption and a different but related
key for decryption. These algorithms have the following important characteristic.
• It is computationally infeasible to determine the decryption key given only
knowledge of the cryptographic algorithm and the encryption key.
In addition, some algorithms, such as RSA, also exhibit the following characteristic.
• Either of the two related keys can be used for encryption, with the other used
for decryption.
A public-key encryption scheme has six ingredients (Figure 9.1a; compare
with Figure 3.1).
• Plaintext: This is the readable message or data that is fed into the algorithm as
input.
• Encryption algorithm: The encryption algorithm performs various transformations
on the plaintext.
• Public and private keys: This is a pair of keys that have been selected so that
if one is used for encryption, the other is used for decryption. The exact transformations
performed by the algorithm depend on the public or private key
that is provided as input.
• Ciphertext: This is the scrambled message produced as output. It depends on
the plaintext and the key. For a given message, two different keys will produce
two different ciphertexts.
• Decryption algorithm: This algorithm accepts the ciphertext and the matching
key and produces the original plaintext.
#7: The essential steps are the following.
1. Each user generates a pair of keys to be used for the encryption and decryption
of messages.
2. Each user places one of the two keys in a public register or other accessible
file. This is the public key. The companion key is kept private. As Figure 9.1a
suggests, each user maintains a collection of public keys obtained from others.
3. If Bob wishes to send a confidential message to Alice, Bob encrypts the message
using Alice’s public key.
4. When Alice receives the message, she decrypts it using her private key. No
other recipient can decrypt the message because only Alice knows Alice’s private
key.
With this approach, all participants have access to public keys, and private
keys are generated locally by each participant and therefore need never be
distributed. As long as a user’s private key remains protected and secret, incoming
communication is secure. At any time, a system can change its private key and
publish the companion public key to replace its old public key.
#8: The essential steps are the following.
1. Each user generates a pair of keys to be used for the encryption and decryption
of messages.
2. Each user places one of the two keys in a public register or other accessible
file. This is the public key. The companion key is kept private. As Figure 9.1a
suggests, each user maintains a collection of public keys obtained from others.
3. If Bob wishes to send a confidential message to Alice, Bob encrypts the message
using Alice’s public key.
4. When Alice receives the message, she decrypts it using her private key. No
other recipient can decrypt the message because only Alice knows Alice’s private
key.
With this approach, all participants have access to public keys, and private
keys are generated locally by each participant and therefore need never be
distributed. As long as a user’s private key remains protected and secret, incoming
communication is secure. At any time, a system can change its private key and
publish the companion public key to replace its old public key.
#9: Table 9.2 summarizes some of the important aspects of symmetric and public-key
encryption. To discriminate between the two, we refer to the key used in symmetric
encryption as a secret key . The two keys used for asymmetric encryption are
referred to as the public key and the private key . Invariably, the private key is kept
secret, but it is referred to as a private key rather than a secret key to avoid confusion
with symmetric encryption.
#10: Let us take a closer look at the essential elements of a public-key encryption
scheme, using Figure 9.2 (compare with Figure 3.2).
The scheme illustrated in Figure 9.2 provides confidentiality.
#11: We mentioned earlier that either of the two related keys can be used for encryption,
with the other being used for decryption. This enables a rather different
cryptographic scheme to be implemented. Whereas the scheme illustrated in
Figure 9.2 provides confidentiality, Figures 9.1b and 9.3 show the use of public-key
encryption to provide authentication.
It is important to emphasize that the encryption process depicted in
Figures 9.1b and 9.3 does not provide confidentiality. That is, the message being
sent is safe from alteration but not from eavesdropping. This is obvious in the
case of a signature based on a portion of the message, because the rest of the
message is transmitted in the clear. Even in the case of complete encryption,
as shown in Figure 9.3, there is no protection of confidentiality because any
observer can decrypt the message by using the sender’s public key.
#12: It is, however, possible to provide both the authentication function and confidentiality
by a double use of the public-key scheme (Figure 9.4).
In this case, we begin as before by encrypting a message, using the sender’s private
key. This provides the digital signature. Next, we encrypt again, using the receiver’s
public key. The final ciphertext can be decrypted only by the intended receiver, who
alone has the matching private key. Thus, confidentiality is provided. The disadvantage
of this approach is that the public-key algorithm, which is complex, must be
exercised four times rather than two in each communication.
#13: Before proceeding, we need to clarify one aspect of public-key cryptosystems that is
otherwise likely to lead to confusion. Public-key systems are characterized by the use
of a cryptographic algorithm with two keys, one held private and one available publicly.
Depending on the application, the sender uses either the sender’s private key or
the receiver’s public key, or both, to perform some type of cryptographic function. In
broad terms, we can classify the use of public-key cryptosystems into three categories
• Encryption/decryption: The sender encrypts a message with the recipient’s
public key.
• Digital signature: The sender “signs” a message with its private key. Signing
is achieved by a cryptographic algorithm applied to the message or to a small
block of data that is a function of the message.
• Key exchange: Two sides cooperate to exchange a session key, which is a secret key for
symmetric encryption generated for use for a particular transaction (or session) and valid for
a short period of time. Several different approaches are possible, involving the private key(s)
of one or both parties.
#14: Some algorithms are suitable for all three applications, whereas others can be
used only for one or two of these applications. Table 9.3 indicates the applications
supported by the algorithms discussed in this book.
#15: The cryptosystem illustrated in Figures 9.2 through 9.4 depends on a cryptographic algorithm based on two related keys. Diffie and Hellman postulated this system without demonstrating that such algorithms exist. However, they did lay out the conditions that such algorithms must fulfill: [DIFF76b].
It is computationally easy for a party B to generate a pair (public key PUb, private key PRb).
It is computationally easy for a sender A, knowing the public key and the message to be encrypted, M, to generate the corresponding ciphertext:
C = E(PUb, M)
3. It is computationally easy for the receiver B to decrypt the resulting ciphertext using the private key to recover the original message:
M = D(PRb, C) = D[PRb, E(PUb, M)
4. It is computationally infeasible for an adversary, knowing the public key, PUb, to determine the private key, PRb
5. It is computationally infeasible for an adversary, knowing the public key, PUb, and a ciphertext, C, to recover the original message, M.
6. The two keys can be applied in either order:
M = D[PUb , E(PRb, M)] = D[PRb, E(PUb, M)]
These are formidable requirements, as evidenced by the fact that only a few algorithms (RSA, elliptic curve cryptography, Diffie-Hellman, DSS) have received widespread acceptance in the several decades since the concept of public-key cryptography was proposed.
#16: Before elaborating on why the requirements are so formidable, let us first recast
them. The requirements boil down to the need for a trap-door one-way function.
A one-way function is one that maps a domain into a range such that every
function value has a unique inverse, with the condition that the calculation of the
function is easy, whereas the calculation of the inverse is infeasible
Y = f(X) easy
X = f–1(Y) infeasible
Generally, easy is defined to mean a problem that can be solved in polynomial
time as a function of input length. Thus, if the length of the input is n bits, then the
time to compute the function is proportional to na , where a is a fixed constant. Such
algorithms are said to belong to the class P . The term infeasible is a much fuzzier
concept. In general, we can say a problem is infeasible if the effort to solve it grows
faster than polynomial time as a function of input size. For example, if the length
of the input is n bits and the time to compute the function is proportional to 2n ,
the problem is considered infeasible. Unfortunately, it is difficult to determine if a
particular algorithm exhibits this complexity. Furthermore, traditional notions of
computational complexity focus on the worst-case or average-case complexity of
an algorithm. These measures are inadequate for cryptography, which requires that
it be infeasible to invert a function for virtually all inputs, not for the worst case or
even average case. [LAI18] provides an excellent introduction to complexity.
We now turn to the definition of a trap-door one-way function , which is easy
to calculate in one direction and infeasible to calculate in the other direction unless
certain additional information is known. With the additional information the
inverse can be calculated in polynomial time. We can summarize as follows: A trapdoor
one-way function is a family of invertible functions fk , such that
Y = fk(X) easy, if k and X are known
X = fk–1(Y) easy, if k and Y are known
X = fk–1(Y) infeasible, if Y known but k not known
Thus, the development of a practical public-key scheme depends on discovery of a suitable trap-door one-way function.
#17: As with symmetric encryption, a public-key encryption scheme is vulnerable to a
brute-force attack. The countermeasure is the same: Use large keys. However, there
is a tradeoff to be considered. Public-key systems depend on the use of some sort of
invertible mathematical function. The complexity of calculating these functions may
not scale linearly with the number of bits in the key but grow more rapidly than that.
Thus, the key size must be large enough to make brute-force attack impractical but
small enough for practical encryption and decryption. In practice, the key sizes that
have been proposed do make brute-force attack impractical but result in encryption/
decryption speeds that are too slow for general-purpose use. Instead, as was mentioned
earlier, public-key encryption is currently confined to key management and
signature applications.
Another form of attack is to find some way to compute the private key given
the public key. To date, it has not been mathematically proven that this form of attack
is infeasible for a particular public-key algorithm. Thus, any given algorithm,
including the widely used RSA algorithm, is suspect. The history of cryptanalysis
shows that a problem that seems insoluble from one perspective can be found to
have a solution if looked at in an entirely different way.
Finally, there is a form of attack that is peculiar to public-key systems. This is,
in essence, a probable-message attack. Suppose, for example, that a message were to
be sent that consisted solely of a 56-bit DES key. An adversary could encrypt all possible
56-bit DES keys using the public key and could discover the encrypted key by
matching the transmitted ciphertext. Thus, no matter how large the key size of the
public-key scheme, the attack is reduced to a brute-force attack on a 56-bit key. This
attack can be thwarted by appending some random bits to such simple messages.
#18: The pioneering paper by Diffie and Hellman [DIFF76b] introduced a new approach
to cryptography and, in effect, challenged cryptologists to come up with a cryptographic
algorithm that met the requirements for public-key systems. One of the first successful
responses to the challenge was developed in 1977 by Ron Rivest, Adi Shamir, and Len
Adleman at MIT and first published in 1978 [RIVE78]. The Rivest-Shamir-Adleman (RSA)
scheme has since that time reigned supreme as the most widely accepted and implemented
general-purpose approach to public-key encryption.
One of the first successful responses to the challenge was developed in 1977
by Ron Rivest, Adi Shamir, and Len Adleman at MIT and first published in 1978
[RIVE78]. The Rivest-Shamir-Adleman (RSA) scheme has since that time reigned
supreme as the most widely accepted and implemented general-purpose approach
to public-key encryption.
The RSA scheme is a cipher in which the plaintext and ciphertext are integers
between 0 and n - 1 for some n . A typical size for n is 1024 bits, or 309 decimal
digits. That is, n is less than 21024 . We examine RSA in this section in some detail,
beginning with an explanation of the algorithm. Then we examine some of the computational
and cryptanalytical implications of RSA.
#19: RSA makes use of an expression with exponentials. Plaintext is encrypted in blocks,
with each block having a binary value less than some number n. That is, the block
size must be less than or equal to log2 (n) + 1; in practice, the block size is i bits,
where 2i < n ≤ 2i+1 . Encryption and decryption are of the following form, for some
plaintext block M and ciphertext block C.
C = Me mod n
M = Cd mod n = (Me )d mod n = Med mod n
Both sender and receiver must know the value of n. The sender knows the
value of e , and only the receiver knows the value of d . Thus, this is a public-key encryption
algorithm with a public key of PU = {e , n } and a private key of PR = {d , n }.
#20: For this algorithm to be satisfactory for public-key encryption, the following requirements
must be met.
1. It is possible to find values of e, d, and n such that Med mod n = M for all M < n .
2. It is relatively easy to calculate Me mod n and Cd mod n for all values of M < n .
3. It is infeasible to determine d given e and n .
#21: Figure 9.5 summarizes the RSA algorithm. It corresponds to Figure 9.1a: Alice
generates a public/private key pair; Bob encrypts using Alice’s public key; and Alice
decrypts using her private key.
#23: Figure 9.7a illustrates the sequence of events for the
encryption of multiple blocks, and Figure 9.7b gives a specific example. The circled
numbers indicate the order in which operations are performed.
#24: Figure 9.7a illustrates the sequence of events for the
encryption of multiple blocks, and Figure 9.7b gives a specific example. The circled
numbers indicate the order in which operations are performed.
#25: Both encryption and decryption in RSA
involve raising an integer to an integer power, mod n . If the exponentiation is done
over the integers and then reduced modulo n , the intermediate values would be
gargantuan. Fortunately, as the preceding example shows, we can make use of a
property of modular arithmetic:
[(a mod n ) * (b mod n )] mod n = (a * b ) mod n
Thus, we can reduce intermediate results modulo n . This makes the calculation
practical.
Another consideration is the efficiency of exponentiation, because with RSA,
we are dealing with potentially large exponents. To see how efficiency might be increased,
consider that we wish to compute x16 . A straightforward approach requires
15 multiplications:
x16 = x * x * x * x * x * x * x * x * x * x * x * x * x * x * x * x
However, we can achieve the same final result with only four multiplications if we
repeatedly take the square of each partial result, successively forming (x2 , x4 , x8 , x16 ).
#26: We can therefore develop the algorithm for computing ab mod n, shown in
Figure 9.8.
#27: Table 9.4 shows an example of the execution of this algorithm. Note that
the variable c is not needed; it is included for explanatory purposes. The final value
of c is the value of the exponent.
#28: To speed up the operation of the RSA algorithm using the public key, a specific choice of e is usually made. The most common choice is 65537 (216 + 1); two other popular choices are 3 and 17. Each of these choices has only two 1 bits and so the number of multiplications required to perform exponentiation is minimized.
However, with a very small public key, such as e = 3, RSA becomes vulnerable to a simple attack.
#29: We cannot similarly choose a small constant value of d for efficient operation. A small value of d is vulnerable to a brute-force attack and to other forms of cryptanalysis [WIEN90]. However, there is a way to speed up computation using the CRT.
The quantities d mod (p - 1) and d mod (q - 1) can be precalculated. The end
result is that the calculation is approximately four times as fast as evaluating M = Cd
mod n directly [BONE02].
#30: Before the application of the public-key cryptosystem, each
participant must generate a pair of keys. This involves the following tasks.
• Determining two prime numbers, p and q.
• Selecting either e or d and calculating the other.
First, consider the selection of p and q . Because the value of n = pq will be
known to any potential adversary, in order to prevent the discovery of p and q by
exhaustive methods, these primes must be chosen from a sufficiently large set (i.e.,
p and q must be large numbers). On the other hand, the method used for finding
large primes must be reasonably efficient.
At present, there are no useful techniques that yield arbitrarily large primes,
so some other means of tackling the problem is needed. The procedure that is generally
used is to pick at random an odd number of the desired order of magnitude
and test whether that number is prime. If not, pick successive random numbers until
one is found that tests prime.
A variety of tests for primality have been developed (e.g., see [KNUT98] for
a description of a number of such tests). Almost invariably, the tests are probabilistic.
That is, the test will merely determine that a given integer is probably prime.
Despite this lack of certainty, these tests can be run in such a way as to make the
probability as close to 1.0 as desired. As an example, one of the more efficient
and popular algorithms, the Miller-Rabin algorithm, is described in Chapter 2.
With this algorithm and most such algorithms, the procedure for testing whether
a given integer n is prime is to perform some calculation that involves n and a
randomly chosen integer a . If n “fails” the test, then n is not prime. If n “passes”
the test, then n may be prime or nonprime. If n passes many such tests with many
different randomly chosen values for a , then we can have high confidence that n
is, in fact, prime.
#31: In summary, the procedure for picking a prime number is as follows.
1. Pick an odd integer n at random (e.g., using a pseudorandom number
generator).
2. Pick an integer a < n at random.
3. Perform the probabilistic primality test, such as Miller-Rabin, with a as a
parameter. If n fails the test, reject the value n and go to step 1.
4. If n has passed a sufficient number of tests, accept n ; otherwise, go to step 2.
#32: Five possible approaches to attacking the RSA algorithm are
■ Brute force: This involves trying all possible private keys.
■ Mathematical attacks: There are several approaches, all equivalent in effort to
factoring the product of two primes.
■ Timing attacks: These depend on the running time of the decryption algorithm.
■ Hardware fault-based attack: This involves inducing hardware faults in the
processor that is generating digital signatures.
■ Chosen ciphertext attacks: This type of attack exploits properties of the RSA
algorithm.
The defense against the brute-force approach is the same for RSA as for other cryptosystems, namely, use a large key space. Thus the larger the number of bits in d, the better. However because the calculations involved both in key generation and in encryption/decryption are complex, the larger the size of the key, the slower the system will run.
#33: We can identify three approaches to attacking RSA mathematically:
Factor n into its two prime factors. This enables calculation of ø(n) = (p – 1) x (q – 1), which in turn enables determination of d = e-1 (mod ø(n))
Determine ø(n) directly without first determining p and q. Again this enables determination of d = e-1 (mod ø(n))
Determine d directly without first determining ø(n)
#34: If one needed yet another lesson about how difficult it is to
assess the security of a cryptographic algorithm, the appearance of timing attacks
provides a stunning one. Paul Kocher, a cryptographic consultant, demonstrated
that a snooper can determine a private key by keeping track of how long a computer
takes to decipher messages [KOCH96, KALI96b]. Timing attacks are applicable
not just to RSA, but to other public-key cryptography systems. This attack is alarming
for two reasons: It comes from a completely unexpected direction, and it is a
ciphertext-only attack.
A timing attack is somewhat analogous to a burglar guessing the combination
of a safe by observing how long it takes for someone to turn the dial from number
to number. We can explain the attack using the modular exponentiation algorithm
of Figure 9.8, but the attack can be adapted to work with any implementation that
does not run in fixed time. In this algorithm, modular exponentiation is accomplished
bit by bit, with one modular multiplication performed at each iteration and
an additional modular multiplication performed for each 1 bit.
#35: Although the timing attack is a serious threat, there are simple countermeasures
that can be used, including the following.
• Constant exponentiation time: Ensure that all exponentiations take the same
amount of time before returning a result. This is a simple fix but does degrade
performance.
• Random delay: Better performance could be achieved by adding a random
delay to the exponentiation algorithm to confuse the timing attack. Kocher
points out that if defenders don’t add enough noise, attackers could still succeed
by collecting additional measurements to compensate for the random delays.
• Blinding: Multiply the ciphertext by a random number before performing
exponentiation. This process prevents the attacker from knowing what ciphertext
bits are being processed inside the computer and therefore prevents the
bit-by-bit analysis essential to the timing attack.
#36: Still another unorthodox approach to attacking RSA is reported
in [PELL10]. The approach is an attack on a processor that is generating
RSA digital signatures. The attack induces faults in the signature computation by
reducing the power to the processor. The faults cause the software to produce invalid
signatures, which can then be analyzed by the attacker to recover the private
key. The authors show how such an analysis can be done and then demonstrate it
by extracting a 1024-bit private RSA key in approximately 100 hours, using a commercially
available microprocessor.
The attack algorithm involves inducing single-bit errors and observing the results.
The details are provided in [PELL10], which also references other proposed
hardware fault-based attacks against RSA.
This attack, while worthy of consideration, does not appear to be a serious
threat to RSA. It requires that the attacker have physical access to the target
machine and that the attacker is able to directly control the input power to the
processor. Controlling the input power would for most hardware require more than
simply controlling the AC power, but would also involve the power supply control
hardware on the chip.
#37: The basic RSA algorithm is vulnerable to a chosen ciphertext attack (CCA). CCA is
defined as an attack in which the adversary chooses a number of ciphertexts and
is then given the corresponding plaintexts, decrypted with the target’s private key.
Thus, the adversary could select a plaintext, encrypt it with the target’s public key,
and then be able to get the plaintext back by having it decrypted with the private
key. Clearly, this provides the adversary with no new information. Instead, the adversary
exploits properties of RSA and selects blocks of data that, when processed
using the target’s private key, yield information needed for cryptanalysis.
To counter such attacks, RSA Security Inc., a leading RSA vendor and former holder
of the RSA patent, recommends modifying the plaintext using a procedure known
as optimal asymmetric encryption padding (OAEP). A full discussion of the threats
and OAEP are beyond our scope; see [POIN02] for an introduction and [BELL94a]
for a thorough analysis. Here, we simply summarize the OAEP procedure.
#38: Figure 9.9 depicts OAEP encryption. As a first step, the message M to be
encrypted is padded. A set of optional parameters, P , is passed through a hash
function, H. The output is then padded with zeros to get the desired length in the
overall data block (DB). Next, a random seed is generated and passed through
another hash function, called the mask generating function (MGF). The resulting
hash value is bit-by-bit XORed with DB to produce a maskedDB. The maskedDB
is in turn passed through the MGF to form a hash that is XORed with the seed
to produce the masked seed. The concatenation of the masked-seed and the
maskedDB forms the encoded message EM. Note that the EM includes the padded
message, masked by the seed, and the seed, masked by the maskedDB. The EM is
then encrypted using RSA.