Posts

Showing posts with the label Source Code

Asymmetric Cryptography (Public Key Cryptography) - Part I

Asymmetric cryptography, also known as public key cryptography, it uses two distinct, yet related keys. One key, the Public Key, is used for encryption and the other, the Private Key, is for decryption. Let say Mahesh wants to send an encrypted message to Shalini , Mahesh will look for Shalini Public key and use it for encrypt the message before sending it. Then Shalini Can decrypt the message using her related private key. if Mahesh encrypts the message using his private key, then the message can be decrypted only using Shalini's public key, thus it will also authenticate Shalini . These encryption and decryption processes happen automatically hence no need to share the keys. Asymmetric cryptography is slower then symmetric cryptography Advantages: 1. Does not require to share key 2. Simple structure RSA is common asymmetric algorithm, I will use the same for this example. To demonstrate, I have used .Net framework in build library “System.Security.Cryptograph

Caesar Cipher (Cracking Caesar Cipher with the Brute-Force Technique) - Part II

Image
In Part I , I have written code to encrypt the plain text for demonstration purpose . In this article we will use Brute Force technique to decrypt the encrypted message. Note: please make sure to read articles  Brute force and Caesar Cipher  before this article. Above code produce below  result, the above code took 17 iteration  to get the actual message.

Caesar Cipher Source Code - Part I

Image
The Caesar cipher is one of the earliest known and simplest ciphers; Created and used in 44 BC by Julius Caesar. It is a type of substitution cipher in which each letter in the plain text is 'shifted' with certain number of places in the alphabet. For example, if we right shift the alphabets by 3 char then we get the below text; So now if we encrypt the message with above "TEST MESSAGE" will show below result The encryption can be represented Mathematical, by first transforming the letters into numbers, like  A = 0, B = 1,…, Z = 25. To represent the Caesar Cipher encryption function, e(x), where x is the character we are encrypting, as: E(X) = (X+K)  (mod 26)  Where K represents key used to shift the letters in alphabets. for decryption we can use below equation  E(X) = (X-K)  (mod 26) I have written the below code which accept user input and right shift the alphabets by 9 char: Result produce by of abov

SHA-256(Source Code in C# using .Net in-built Cryptography library) - Part II

.Net Framework provides in built support for various hash functions like MD-5, SHA-1, SHA-256 etc... ComputeHash method Computes the hash value to the specified byte array. Below are the overloaded methods to Compute Hash using SHA-256 class in System.Security.Cryptography  library public byte [] ComputeHash( byte [] buffer) public byte [] ComputeHash( Stream inputStream) public byte [] ComputeHash( byte [] buffer, int offset, int count)

SHA-256(Source Code in C#) - Part I

SHA-256 (Secure Hash Algorithm) , is one of the cryptographic hash function, commonly used in Blockchain. It generates an almost-unique 256-bit (32-byte) signature for a text.  SHA-256 is successor hash functions to SHA-1. it is one of the strongest hash functions available and has not yet been compromised in any way.   Here is source code written in  C#. I will try to give more details in next Part II