Documente Academic
Documente Profesional
Documente Cultură
A PROJECT
Submitted to
Abstract
Our approach
OpenSSL
OpenSSL is a software library for applications that secure communications over computer net-
works against eavesdropping or need to identify the party at the other end. It is widely used in
internet web servers, serving a majority of all web sites. OpenSSL contains an open-source im-
plementation of the SSL and TLS protocols. The core library, written in the C programming lan-
guage, implements basic cryptographic functions and provides various utility functions. Wrap-
pers allowing the use of the OpenSSL library in a variety of computer languages are available.
RSA
RSA (Rivest–Shamir–Adleman) is one of the first public-key cryptosystems and is widely used
for secure data transmission. In such a cryptosystem, the encryption key is public and it is differ-
ent from the decryption key which is kept secret (private). In RSA, this asymmetry is based on
the practical difficulty of the factorization of the product of two large prime numbers, the "factor-
ing problem". The acronym RSA is made of the initial letters of the surnames of Ron Rivest, Adi
Shamir, and Leonard Adleman, who first publicly described the algorithm in 1978. A user of RSA
creates and then publishes a public key based on two large prime numbers, along with an aux-
iliary value. The prime numbers must be kept secret. Anyone can use the public key to encrypt
• Independent process.
• Co-operating process.
An independent process is not affected by the execution of other processes while a co-
operating process can be affected by other executing processes. Though one can think that
those processes, which are running independently, will execute very efficiently but in practical,
there are many situations when co-operative nature can be utilized for increasing computational
speed, convenience and modularity. Inter process communication (IPC) is a mechanism which
allows processes to communicate each other and synchronize their actions. The communication
between these processes can be seen as a method of co-operation between them. Processes
can communicate with each other using these two ways:
• Message passing
• FIFO
• Pipes
• Signals
BENEFITS OF ENCRYPTION
• When you’re on the keys you can easily decommission and deprivation.
Communication between processes using shared memory requires processes to share some
variable and it completely depends on how programmer will implement it. One way of com-
munication using shared memory can be imagined like this: Suppose process1 and process2
are executing simultaneously and they share some resources or use some information from
other process, process1 generate information about certain computations or resources being
used and keeps it as a record in shared memory. When process2 need to use the shared in-
formation, it will check in the record stored in shared memory and take note of the information
generated by process1 and act accordingly. Processes can use shared memory for extracting
information as a record from other process as well as for delivering any specific information to
other process.
A pipe is a mechanism for inter-process communication; data written to the pipe by one process
can be read by another process. The data is handled in a first-in, first-out (FIFO) order. The
pipe has no name; it is created for one use and both ends must be inherited from the single
process which created the pipe.
A FIFO special file is similar to a pipe, but instead of being an anonymous, temporary con-
nection, a FIFO has a name or names like any other file. Processes open the FIFO by name in
order to communicate through it.
A pipe or FIFO has to be open at both ends simultaneously. If you read from a pipe or FIFO
file that doesn’t have any processes writing to it (perhaps because they have all closed the file,
or exited), the read returns end-of-file. Writing to a pipe or FIFO that doesn’t have a reading
MUTEX
In computer programming a mutually exclusive object is a program object that allows multiple
program threats to share the same resource such as a file access but not simultaneously.
• After this stage any thread that needs the resource must lock the mutex from the other
threads while it is using the resource.
For encryption we can use padding, RSA_PKCS1_PADDING is one such padding mode.
createRSA function is used to prepare the RSA structure. The PEM functions read or write
structures in PEM format. In this sense PEM format is simply base64 encoded data surrounded
by header lines.The RSAPrivateKey functions process an RSA private key using an RSA struc-
ture. The write routines uses traditional format. The read routines handles the same formats as
the PrivateKey functions but an error occurs if the private key is not RSA. The RSAPublicKey
functions process an RSA public key using an RSA structure.
Result
Figure 1: Output
Securing IPC channels proves to be a largely beneficial idea in case of distributed systems.
For large networks like bit-coin mining farms with thousands of nodes around the world, our
approach of encrypting data transfer proves to be highly pragmatic. However, in case of lumped
systems like our personal computers with standard monolithic kernels deploying this scheme
proposes large overhead, due to importing of networking stack for each application. In that
case, our current IPC approach seems more practical.
References
Listing 4: References
1 http://www.jmeds.eu/index.php/jmeds/article/viewFile/←-
Secure_Inter_Process_Communication/jmeds_5_4_a_5
2 https://www.openssl.org/docs/man1.1.0/crypto/PEM_read_bio_RSA_PUBKEY.html
3 https://whatis.techtarget.com/definition/interprocess-communication-IPC
4 https://www.geeksforgeeks.org/inter-process-communication/
5 https://www.geeksforgeeks.org/ipc-shared-memory/