Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Cryptography

Research Log
Akeeb Kalam
What is Cryptography and its origins?
About:
With cybersecurity being an ever growing field that is constantly evolving with the increase in
malware and security breaches, new ways and measures have to be put in place in order to ensure
data is encrypted and secure. This is where cryptography comes in as it is the process that
encrypts data and keeps it secure to reach the right people before it is then decrypted.
Point:
● Cryptography can be broken down into the words crypto meaning “secret” and graphy
meaning “writing” essentially being secret writing
● Cryptography can be first traced back before the modern era to 1900 BC where
information special hieroglyphic symbols were used instead of regular ones
○ At the time this was more so to make the message more dignified rather than
secret, but demonstrated a transformation of a piece of writing
○ Various early civilizations used cryptography such as espionage service in India
giving spies “secret writing”
○ One of the most well known instances of cryptography can be seen in 100 BC
when Julius Caesar was alive. He encrypted (To convert into a code that is
unable to be read by outside sources) messages to his generals using a substitution
cipher (an algorithm used for encryption or decryption.) Basically he would swap
each letter with the letter three places ahead of it so A would be D and B would be
E…

■ This system works until the secrecy of the system is found out and then
becomes heavily flawed. This is because the frequency of letters showing
up can give away certain letters. For example, the letter X may be in place
of E, but E is one of the most common letters. By seeing X repeatedly
people are able to decrypt (opposite of encryption the ability to convert
code into regular writing) the message and assume the letter to be E.
○ In the 1500s, a man known as Blaise de Vigenere made the first cipher that used
an encryption key allegedly. The encryption key was repeated multiple times
using a modulo 26 character key. While also able to be decrypted easily, it
indoduced the basic idea of encryption keys to ciphers. It also changed the idea of
the secrecy of the message depending on the secrecy of the encryption rather than
the secrecy of the system.

○ The 1800s came in which Edward Hebern designed a rotor machine that
embedded a secret key in a rotating disc. The key had a substitution table and
each press of the key resulted in the output for the the cipher text. However like
the previous two ciphers, it was very easy to decipher.
○ Later, the enigma machine would be invented by Arthur Scherbius at the end of
World War I and would be used going into World War II. The device used 3 to 4
more rotors that roated at differnt rates. However, the machine would eventually
be broken by Poland and British Cryptographers got ahold of it to obtain the key

○ Cryptography at this point had primarily been used for military purposes, but after
World War II, it started seeing some commercial attention.
○ When computers were just entering the scene to consumers in the 1970s, IBM
formed a “crypto group” in response to the demand of encryption. Lucifer was a
cipher that was designed as a block cipher to become the national standard. It
would later become the Data Encryption Standard (DES), but would later be
broken by a search attack in 1997. The issue this time was that the size of its
encryption key was very small. Computing power wasn’t accounted for when
creating Lucifer.
○ 3 years later, a new block cipher was accepted being named Rijndael which then
went on to become the Advanced Encryption Standard (AES)
○ Kerckhoff’s principle: The security of the message should be determined by the
secrecy of the key and not the actual encryption system.
What are the applications of cryptography?
About:
Well after learning about what cryptography is and its origins. What are some possible
applications of cryptography used. In this article it discusses the implementation of an electronic
voting infrastructure to reduce voting fraud.
Point:
● In the United States, voting is the very foundation of our country, yet it holds almost next
to nothing on security in electronic voting. It is important that such a system has integrity,
confidentiality, and availability of votes.
○ The United States electronic voting environment in the United States fails to meet
the cybersecurity standards of NIST (National Institute of Standards and
Technology). This is an issue because elections are how this country is run
making this a great concern
○ Issues include physical access with limited to no security on voting machines,
unprotected backend servers, and no redundancy or backups
○ Some dangers could be the deletion and changing of votes as well as a loss of
integrity and and public confidence.
○ In the Untied States alone, there have been 1,328 instance of voter fraud
○ Homomorphism - a special correspondence between the members of two
systems, groups, or fields

Why is Cryptography essential?


● So your data and accounts are not stolen
○ Ex. Buying a new iphone for 50% off on a website that isn’t secure is highly risky
as your information can be stolen seconds later.
What is Cryptography?
● The science of encrypting and decrypting information to prevent unauthorized access.
The decryption process should be known to both the sender and the receiver

● Encryption - makes normal text difficult to understand


● Decryption - reverses encryption to retrieve original message
● Pre-encrypted data is called plaintext
● Ciphers are a set of detailed steps that make data unreadable as possible until it reaches
the designated user. Ciphertext is what are transferred
Applications
● Any website that has an account
● Online banking
● Emails
● Digital signatures
● Secure chatting services
● Crypto-currency
Symmetric Key Cryptography
● Applications
○ Used in banking where personal information needs to be encrypted. Can help
detect bank fraud and help security index
○ Server and data center information can be encrypted at rest
○ HTTPS encryption with secure all-around browsing
● How does it work?
○ Relies on a single key for encryption and decryption of information. The key
needs to be kept secret and be available with both the sender and receiver.
Strength depends on key size. Basically the same key is used to encrypt and
decrypt data.
○ Same key for encryption and decryption means that information can be attained
easily as only one key is used. This means that if that key is retrieved by a third
party, the information could then be taken. That is why it is vital to keep the key
secret.

○ The third party can generate messages with the same key, so it would be hard to
authenticate the message if the key were to be leaked.
● Types of encryption
○ Stream ciphers - encrypt information one bit/byte at a time and is a quick format
of encryption. The data is converted to binary digits and encrypted sequentially.
Popular algorithms would be RC4, Salsa 20
○ Block Ciphers - information is broken down into chunks of fixed size. Their size
is dependent on the key. They are encrypted and then chained together. They are
much slower than streams, but harder to tamper. Popular algorithms would be

AES, DES, 3DES


● Advantages of Symmetric Key Cryptography
○ Faster than asymmetric
○ Better performance due to better memory calculations
○ Optimized for large amounts of data.
○ It’s also easier to set up and implement
Asymmetric Key Cryptography
● Uses two different keys for encryption and decryption. The key used for encryption is
public and the decryption key is private
● Ex. Anyone that knows your address can send you a letter, but only you can access your
mailbox with the key
● Applications
○ Manages digital signatures for authenticity of documents
○ Manages crypto-currency transactions
○ Encrypted browsing on the internet for better protection against hackers
○ Sharing keys for symmetric key cryptography. This might sound counterintuitive
but it is used in conjunction with asymmetric key cryptography because of its
very efficient use for large amounts of data. It also makes information more
secure.
● Advantages
○ No need to share secret keys
○ Longer key lengths mean stronger encryption
○ Proof of authenticity since the recipient is the owner of the private key
○ The data can’t be modified in transit. The private key would have to be
invalidated
What is hashing?
● The process of scrambling a piece of information or data beyond recognition. They are
designed to be irreversible. WE pass the input through a hash function to calculate the
Hash value or digest Hashes are made to be irreversible and cannot be decrypted back to
its original value.
● Ex. When a new user makes a password, it is then passed through the has function and is
then stored in the server. Passwords should not be used with symmetric and asymmetric
key systems as the recipient will have your password.
● Hashing can have integrity checks to ensure data is not corrupted.
● Hash Functions
○ Math operations that are carried into two blocks of data
○ Blocks are created by dividing the initial input into equal parts
○ By design they are supposed to be irreversible but can be compromised.
○ Can be carried out multiple times, but final digest must the consistent for the same
input
● Hashing Guidelines
○ Fast but not instantaneous
○ Should be able to has within reasonable time without being exploited
○ Quick algorithms can be tested for brute force attacks, but with enough of these
attacks, the algorithm can be cracked defeating the purpose of the hashing
guidelines
○ If a character of a word changes, then a substantial portion of the digest has to
change.
● How to strengthen Hashes
○ Salting is the process of adding a random keyword at the end of the input

○ Peppering is the process of adding the same random value at the end of the
plaintext.

Data Encryption Standard


● Symmetric key algorithm using block-by-block encryption
● Block size is 64 bits and key size is 48 bits
● Feistel cipher structure
● Origin
○ Based on a cipher called Lucifer and was standardized in 1976, but was
eventually cracked and not considered safe anymore. Triple DES was introduced
but it was too slow. DES would be replaced by AES in 2002
● Feistel Cipher.
○ A block cipher that serves as the basis for encryption algorithms
○ Uses substitution and permutation alternatively
○ Reversing the process can decrypt the ciphertext back to plaintext
● Block ciphers are safest when the block size is large, but the encryption speed is slow
which is why a balance has to occur
● Size is proportional to strength of encryption
● A high number of rounds makes the encryption hard to break through
● Speed is very important to handle great amount of data
● So how does a DES work?
○ 64 bit plaintext -> 64 bit ciphertext
○ An initial permutation splits the 64 bit ciphertext in two different parts and goes
through multiple rounds
○ A final permutation occurs with the 64 ciphertext
○ It was simple and fast however it was easy to crack which is why it was replaced
○ Five different operations being the Electronic codebook, cipher block chaining,
cipher feedback block, output feedback, counter method
Advanced Encryption Standard
● DES was just too old to use and had to be updated
● Has 128 bits and converts plaintext into ciphertext using keys of 128, 192, 256 bits but
was very slow at the time
● Features
○ Substitutions and permutations called SP networks
○ A single key is widened to be used multiply in rounds
○ Uses byte data instead of bit data
○ Rounds dependent by length of key
● How does the AES work?
○ It is stored in a 4x4 matrix, so basically an array
○ Key is expanded to n+1 rounds
○ Plaintext is stored in a state array
○ Each bye is converted to a hexadecimal with two parts with the first part in a row
and the second part in a column
○ The rows are shifted making the algorithm more complex and columns are mixed
● Applications of AES
○ Wireless security against hackers and encrypted browsing
○ File encryption and processor communication to prevent machine hijacking
● DES has a shorter key length, block size, fixed number of rounds whereas AES is key
dependent and is much slower than AES
What are the applications of cryptography?
Electronic voting Issues
● The United States fails to meet the cybersecurity standards of the NIST and this has
caused a lack in public confidence
● Some of these privacy issues include limited to no security on voting machines,
unprotected backend servers, and no backups
● There are also threats to the changing, deleting, and re-voting which devalues the system
of voting and loses its integrity
● While there are many issues regarding electronic voting, it is useful in that it eliminates
the worry for supply chain issues or reliance on older voting machines
● Not just in the United States were there various security attacks such as in Norway or
Estonia. Because of the issues regarding e-voting, changes needed to be made in order to
help bring authenticity and security to voting
● While voting from home may be the future, there are various complexities with the
biggest issue being voter fraud
Possible solutions to E-voting
● Tthe researchers hypothesize that electronic voting is needed as the current voting
process has too many steps where tampering can occur. An electronic voting system that
can be done from home can mitigate this and be done at a more convenient rate and time.
Emerging technology comes with a lot of risks and threats, which is why cybersecurity is
important
● They proposed an app written with open-source software that would be federally
approved. In it, it plans to utilize cybersecurity by including multiple layers of encryption
that is sent through a VPN tunnel to store votes securely. Identifiable information such as
the time stamp and the IP address are collected and encryped and then later decrypted and
counted
● The risks were measured using the National Institute of Standards and Technologyon
which it takes into account accidental or malicious threats and attacks.
● One goal of the electronic voting system was to eliminate the discrimination of people by
odler voting tactics based on their race, gender, abilities, and income. They also
concluded that by removing any kind of human interation, vulnerabilities are remediated
and the risk overall is lessoned.
● Various methods were used while desgining with them being a voting route, electronic
voting system, and homomorphic encryption, advanced encryption standards, and azure
components.
● There are many stages in this election process. The first being storing the vote, followed
by it being transmitted, then storing the vote to a server
● With the proposed voting app, the need of an election site administrator is removed as
everything will be managed and handled by the app developer, VPN provider, and cloud
provider
● They were able to achieve their proposed methodology that is resilient to cyber attacks.
They used the Crypto.Cipher package written in Python in addition with the secure clous
and encrypted tablet.
● The reason for two outputs is that the one output is for text files with time stamps,
whereas the other output shows the entire voting process.
Challenges and improvements
● They will research more about remoting voting and more ways to mitigate the need for
physical security or the physical voting environment.
● While their system proved to provide an election infrastructure that was resilient to cyber
attacks, election sites failed to meet standards for their program. Again the main goal of
this electronic voting system was to ensure a wider range of accessibility in addition to
mitigating the risks that come with the physical voting process.
Computer Programming
● The process of writing good to perform specific actions in an application
● It instructs and tells the program on what to do
● A computer programmer is someone who creates instructions for a computer to follow in
order to perform a task
Job Outlook
● Usually in an office setting and is generally full-time
● As of May 2021, the median annual salary for a computer programmer is $93,000.
● Typically requires a bachelor's degree. Other alternatives can be coding bootcamps or self
teaching
● It is a declining job market with a 10% decrease from 2021 to 2031
● However about 10,000 new programming jobs are opened each year on average +
Language Types
● Low-level languages
○ Code often written in binary to make it easy for computers to understand
■ Example: 01001101 00011101 01001101
○ Have a limited number of programming constructs and lack features such as
selection and iteration
○ Very difficult learning curve, time-consuming, and hard to debug
○ Gives full control to the programmer over a system’s components which can then
control the hardware components
○ Has very efficient code written for a particular architecture, occupying less
memory allowing the code to be executed faster than High-Level programming
Languages
○ Assembly code has a slightly more user-friendly interface using mnemonics, but
is still relatively difficult for the average person to comprehend.
● High-Level Languages
○ written with the use of the English Language to help make code more
understandable and easy to read for Humans as well as speed up the process of
writing programs
○ Many High-Level programming languages can be tailor made to have a specialty
○ Examples: SQL maintains and searches databases, HTML and CSS are used for
the creation of websites
○ Features of High-level Languages: Selection, Iteration, Boolean Operators,
Variable Names
○ used for many different machines but not as efficient as Low-Level Languages
○ Examples: Python, Java, C++, SQL
● C
○ Developed in 1972 at the AT&T Corporation for programming computers
○ Procedural programming language
○ Low-Level programming language
○ Fast and efficient like machine programming
○ Is the foundation for many other programming languages
○ Uses a compact notation which allows C to exploit all the features of a computer’s
internal architecture
○ Used for a variety of applications
● C++ and C#
○ C++ was developed as an extension to C
○ Unlike C, C++ is object oriented allowing for abstraction, encapsulation,
inheritance, and polymorphism
○ C# is similar to C and C++ and is often used for game development and
applications for Microsoft Windows as part of its .NET platform
○ Found in game engines such as Unity and C++
● Python
○ Designed in 1991 for the emphasis on code readability and express concepts in
only a few lines of code
○ Massive libraries with tools and modules
○ High-Level, Multi-platform, Dynamically typed, Large community
○ used in many different fields such as data analysis, accounting, mathematics, and
automation
● Java
○ Created in 1995 as a language for the World Wide Web
○ It is very fast and secure
○ Very popular to use for mobile and web applications
○ Contains an Integrated Development Environment (IDE) featuring automation
tools, editors, and debuggers
○ High-Level Language, Large community, and statically typed
○ Various big companies use Java such as Google, Spotify, Netflix, Uber, and
Mojang
○ Will often be seen in areas of business such as accounting, commerce, electronic
trading, etc.
● Swift
○ Very recent programming language developed by Apple released in 2010
○ Took inspiration and ideas from various different languages to pack into a robust
language
○ Was built with the premise to be fast and powerful as well as being easy to
comprehend and use
○ Used to create applications for IOS products such as their IPhones, IPads, Mac,
etc.
● SQL
○ Primarily used to manage tables and databases
○ Is the relational database management systems according to ANSI
○ Can retrieve and organize files
● Other Languages
○ Golang (GO) - Developed by Google for simplicity and efficiency with extremely
fast compile times. It is often used web application and cloud services
○ Rust - fast, efficient, safe language. Primarily used to create robust and secure
applications
○ Kotlin - General purpose programming language that was built upon Java. It is
primarily used for web and android applications

What is computer networking?


Internet Infrastructure as Fast as Possible
● Distributed system made of up of smaller computer networks owned by universities,
government, and isps

What is a Computer Network?
● Built primarily from general-purpose programmable hardware and aren’t optimized for a
particular application like delivering television signals and making phone calls
● Can carry many types of data and support a wide range of applications
● Have taken over the functions of single-use networks
1.1 Applications
● Examples of everyday applications:
○ World Wide Web, email, social media, music and video streaming,
videoconferencing, instant messaging, file-sharing
● Three different groups in Networking
○ People who create applications
○ People who manage and operate networks
○ People who design and build devices that make up the internet
1.1.1 Classes of Applications
● http://www.cs.princeton.edu/~llp/index.html
● http://: Hypertext Transfer Protocol (HTTP) should be used to download the page
● www.cs.princeton.edu: name of the machine that serves the page
● /~llp/index.html: identifies Larry’s home page
1.2 Requirements
● Networks are constantly changing and evolving as new applications are being made
1.2.1 Stakeholders
● Three Stakeholders
○ Application Programmer
■ Lists the services that his or her application needs
○ Network Operator
■ List the characteristics of a system that is easy to manage
○ Network designer
■ List the properties of a cost-effective design
1.2.2 Scalable Connectivity
● Networks must provide connectivity
● In some situations, it is best only a select few machines interact and connect which many
private (corporate) networks take advantage of
● In contrast to private networks, the internet is meant to connect to all computers around
the world
● Many different levels of connectivity
○ At its lowest, networks can consist of two or more computers connected by a
physical medium such as a coaxial cable
○ Wireless links are an important class of multiple-access links
■ Because of geographical distance and number of nodes the can connect to,
they are limited
■ The last mile is implemented connecting users to the rest of the network
○ Routing
■ Process of determining how to forward messages to the destination based
on the address
1.2.3 Cost-Effective Resource Sharing
● Multiplexing
○ A system resource is shared among multiple users
● The packet is the granularity with which links of the network are allocated to different
flows
1.2.4 Support for Common Services
● A network provides the means for a set of application processes that are distributed over
computers to communicate
● The programs running on the hosts must communicate meaningfully
● A useful channel involves understanding the application requirements and recognizing
limitations
1.2.5 Manageability
● Managing includes upgrading equipment as a network grows to carry more to users
● Very human-intensive but is addressed by automation and self-healing designs
● Automation is important due to scalability in which thousands of routers cannot be
managed by a single human
● Stability is very important for networks which is why the telecommunications industry is
very slow moving
1.3 Architecture
● Summary of the last section
○ Networks must be general, cost-effective, robust and interact with a large number
of computers
● Networks have to evolve to keep up with changes in technology and demands of
applications
● Additionally they must be manageable by humans of varying levels of skill
1.3.1 Layering and Protocols
● Abstraction
○ Hiding of details behind an interface
○ Usually used to hide details from users to provide an easier interface
○ Layers are added providing more abstract levels of service
● Two useful features layering provides
○ It makes a network manageable by putting it into components
■ Rather than creating software that does everything, having multiple layers
solves this issue
○ Provides a modular design
■ Ex. if one wants to add a service they can modify functionality at one
layer
● Protocols
○ Abstract objects make up the layers of a network system
○ Provides communication service that higher-level objects use to exchange
messages
○ Service interface defines the operations that local objects can perform on the
protocol
○ Defines peer interface
○ Protocol defines a communication service that exports locally along with a set of
rules governing the messages
1.3.2 Encapsulation
1.3.3 Multiplexing and Demultiplexing
1.3.4 OSI Model
● Open Systems Interconnection architecture defines a partitioning of network functionality
into seven layers where one or more protocols implement the functionality
● From Bottom to top
○ Physical Layer
■ Handles transmission of raw bits over a communications link
○ Data link layer
■ Collects a stream of bits into a larger aggregate called a frame
■ Along with device drivers running in the node’s operating system
○ Network
■ Handles routing among nodes within a packet-switched network
○ Transport
■ Implements process-to-process channel
■ The unit of data exchanged is commonly called a message rather than a
packet or a frame
○ Session
■ Provides a namespace that is used to tie together the different transport
streams part of an application
○ Presentation
■ Concerned with how the format of data is exchanged
○ Application
■ Included HTTP, the basis of the World Wide Web
1.3.5 Internet Architecture
● Three features
○ Does not imply strict layering and the application is free to bypass the defined
transport layers and use IP or one of the underlying networks
○ Reflects an hourglass shape philosophy
○ There must be both a protocol specification and at least one representative
implementations of specification for a new protocol to be officially included in
the architecture
● The hourglass design is the most important as its minimal that allows high and low level
communication technologies to coexist
1.4 Software
● By the end of 2018, it was estimated that there were 4.1 billion users of the internet
worldwide
● The success of the internet can be heavily attributed from the software that is provided
and running on general computers as computers now are very fast at a very usable rate,
compared to back then
● Another change resulting in the surge of internet use, is the number of applications
available to users, as careers focused on the internet are mainstream instead of being
niche to only a few specialists.
● Various issues arise when implementing network applications with the internet as an
application has to be run to interact with users in addition to a protocol
1.4.1 Socket API
● What is an API?
○ Application programming interface
○ It is the interface that the operating system provides to its networking subsystem
○ This is important since most network protocols are in software and implement
their network protocols as part of the operating system.
○ Operating systems can define their own API, but many APIs have been widely
supported in operating systems other than their native system
● Socket interface API
○ Is an API that is widely supported by various operating systems and the
foundation for many language interfaces such as the Java and Python socket
library
○ Each protocol provides a certain set of services
○ The API provides a syntax by which those services can be invoked on a particular
system
○ The socket is the point where a local application process attaches to the network
(basically connecting a plug to a wall socket)\
○ It defines the operations for creating the socket, attaches the socket of the
network, and send/receive messages through the socket
○ The Socket API is very important in the fact that it turned writing internet
applications into a multi-billion dollar industry as it sets the limits and boundaries
between the applications running on top of the internet
○ Socket API requires three arguments to support any protocol suite
■ Domain - specifies the protocol family that is going to be used. Ex.
PF_INET denotes internet family, PF_UNIX denotes Unix pipe facility,
PF_Packet denotes direct access to the network interface
■ Type - indicates the semantics of the communication. Ex.
SOCK_STREAM denotes byte system, SOCK_DGRAM is an alternative
that denotes a message-oriented service
■ Protocol - identifies the specific protocol that is going to be used. Ex.
UNSPEC ius ues as PF_INET and SOCK_STREAM implies TCP
○ After the socket is created, one has to establish if they are a client or a server
■ A server machine performs a passive open that says that it is prepared to
accept connections, but does not actually establish it
■ Three operations are performed in order to establish this: bind, listen, and
accept
● Bind ties the socket to the address (an address is a data structure
that includes both the IP address of the server and a TCP port
number)
● Listen defines how many connections can be pending upon the
socket
● Accept carries out the passive open; is a blocking operation that
does not return until a remote participant has established a
connection
■ Clients perform an active open in which it says who it wants to
communicate with through one single operation: connect
● Connect doesn’t return until TCp has successfully established a
connection
● A client usually specifies only the remote participant’s address and
lets the system fill information, whereas a server usually listens for
messages of a well-known port
● After an established connection, the application process has two
operations to send and receive data: send, recv
1.5 Performance
● Performance is important in networking in order to send and receive signals efficiently
1.5.1 Bandwidth and Latency
● Performance is measured in two different ways being bandwidth and latency
○ Bandwidth is given a number of bits that can be transmitted over a network for a
certain period of time. Generally bandwidth is treated in terms of how long it
takes to transmit each bit of data.
○ Bandwidth is the literal measure of a frequency band
○ The data rate is normally referred to the number of bits per second that can be
transmitted on the link
○ Throughput is used to refer to the measured performance of a system.
○ The more sophisticated the sending and receiving of technology, the narrower
each bit can become
○ Latency corresponds to how long it takes takes for a message to get from one side
to another and is only measured in terms of time
○ Round-trip time (RTT) is how long it takes a to send a message to the other end of
a network and back
○ Latency has three components: Speed of light propagation delay which occurs due
to nothing traveling faster than the speed of light, the amount of time to transmit
data, queuing delays inside the network in which they needed to store packets for
some time before forwarding them on an outbound link
○ Equations to define latency:
■ Latency = Propagation + Transmit + Queue
■ Propagation = Distance/SpeedOfLight
■ Transmit = Size/Bandwidth
1.5.2 Delay x Bandwidth Product
● Important as it is used when constructing high performance networks as it sends bits to
the sender and must transmit before it arrives at the receiver

References

A Brief History of Cryptography. (n.d.). Www.redhat.com.


https://www.redhat.com/en/blog/brief-history-cryptography#:~:text=The%20first%20kno
wn%20evidence%20of
Kurose, Jim. “Computer Networks: A Systems Approach — Computer Networks: A Systems
Approach Version 6.2-Dev Documentation.” Book.systemsapproach.org, 2020,
book.systemsapproach.org/index.html.
Park, D. (2022, June 12). Design and implementation of a cryptographically secure electronic
voting infrastructure | Journal of Emerging Investigators. Emerginginvestigators.org.
https://emerginginvestigators.org/articles/design-and-implementation-of-a-cryptographica
lly-secure-electronic-voting-infrastructure
Simplilearn. (2021). Cryptography Full Course | Cryptography And Network Security |
Cryptography | Simplilearn. In YouTube.
https://www.youtube.com/watch?v=C7vmouDOJYM

You might also like