- CS Project
- MBA Project
- Certification
- Interview
- Download
- Tips
- Forum
- Encryption & Decryption
- Encryption & Decryption
- XOR Encryption
- Transposition Encryption
- Symmetric Encryption
- Asymmetric Encryption
- Certificate Authority
- Decryption Logics
- Sample Coding

- Encryption & Decryption
- Encryption & Decryption
- XOR Encryption
- Transposition Encryption
- Symmetric Encryption
- Asymmetric Encryption
- Certificate Authority
- Decryption Logics
- Sample Coding

Home > Tips > Encryption and Decryption > Symmetric IV Encryption

**What is Symmetric or Secret Key Encryption?**

In this type of encryption both the sender and recipient posses the same key, to encrypt and decrypt the data, for successful operation both parties must agree upon a shared secret key. If there are "n" correspondent one have to keep track of n-different secret keys. if the same key is used by encrypt more than one then key holder can easily decrypt all data. Symmetric encryption schemes are also subject to authenticity problems. because, encrypter and decrypter have same secret key identity of encrypter or decrypter cannot be determine, both can encrypt or decrypt the data.
There is mainly two type of symmetric or secret key encryption, Stream Ciphers and Block Ciphers

**Stream Ciphers
**The simplest stream cipher is called the Vernam Cipher. A
bit from a key is added, with the carry discarded, to a bit
from the plain text to get one bit of cipher text. XOR
encryption is the example of stream cipher, it is turn out to
be easy to crack. it is weak when repeating the same keys, but
it can be very effective when the key stream varies constantly.
The most well known stream cipher is RC4.

In geometrical pattern encoding we are using block ciphers, today's practical block ciphers all generate a cipher text block same size as the palin text block. Data Encryption Standard (DES) may be the best block cipher. Block ciphers are analyzed and tested for their ability to encrypt the data blocks of their given block size. A statistical analysis of cipher text generated by the block cipher algorithm should find that individual data bits as well as pattern of bits appear completely random.

Data block size and secret key size in block ciphers

Encryption
Algorithm |
Data
Block (Bits) |
Secret
Key (Bits) |

Data Encryption Standard (DES) | 64 | 56 |

International Data encryption Algorithm (IDEA) | 64 | 128 |

Modular Multiplication Block (MMB) | 128 | 128 |

SKIPJACK | 64 | 80 |

Patterns in the cipher text become a problem when we apply
same secret keys to stream of data. if we encrypt the same
block twice with same key, it returns same cipher text for
both occurrence, for a experienced cracker easily identified
the visual pattern of cipher text and exploit the cipher text
with some reverse calculation. This makes the messages more
vulnerable to attack. if we encrypt a stream block by block,
patterns in the plaintext will produce statistically
significant patterns in the cipher text. these pattern can
give a code breaker the entry point for an attack.

**Initialize Vector (IV)**

Cipher block chaining in the plain text by systematically
combining each plaintext block with a cipher text before
actually encrypting it, the two blocks combined bit by bit
using XOR operation, instead of directly encrypting plaintext
data, the block cipher encrypts the plain text data after it
is combined with random looking cipher text, the process
started with a block of random bits called the initialization
vector (IV). two same plain text will never look same in
cipher text as the IV is different for both the case.

In following Example we use symmetric key for both encryption
and decryption, however if we encrypt same text repeating time
it creates different cipher text every time, we use Initialization
vector for selecting the bit pattern for each time, we pass
the same bit pattern to cipher text block to decrypt it to plain
text.

**Function for encryption**

private Function StrEncrypt(ByVal EnStr As
String) As
String

Dim
Key As String

Key = "Abt$9>3ZyX
21~)**1_0d%1xOp0#?s!14k-L7`3s9cxPo1ilIj=-0DnmOpas#$%5854/*?>00021atanu???"

Dim
p1 As Integer

Randomize()

p1 = (Rnd() * 8) + 1

Dim
p2 As Integer

p2 = Len(EnStr)

Dim
RandSeed As Integer

RandSeed = p1

Dim
i As Integer

Dim
s1 As String
= ""

Dim
ft As String

ft = ""

For
i = 1 To 50

s1
= s1 & Chr(Asc(Rnd() * 255))

Next

ft = Chr(p1) &
Chr(p2)

Dim
iXor As Integer

For
i = 1 To Len(EnStr)

iXor
= Asc(Mid(KeyPair, i + p1, 1)) Xor
Asc(Mid(EnStr, i, 1))

ft
= ft & Chr(iXor)

Next

For
i = Len(ft) To 50

ft
= ft & Chr(Rnd() * 255)

Next

StrEncrypt = ft

End Function

**Function for decryption**

Private Function StrDecrypt(ByVal EnStr As
String) As
String

Dim
Key As String

Key = "Abt$9>3ZyX
21~)**1_0d%1xOp0#?s!14k-L7`3s9cxPo1ilIj=-0DnmOpas#$%5854/*?>00021atanu???"

Dim
EText As String

Dim
Rt As String

Dim
p1, i As Integer

EText = EnStr

Dim
Pbit As Integer

Pbit = Asc(Mid(EText, 1,
1))

p1 = Asc(Mid(EText, 1,
1))

Dim
PLen As Integer

PLen = Asc(Mid(EText, 2,
1))

Rt = ""

For
i = 3 To PLen + 2

Rt = Rt & Chr(Asc(Mid(EText, i, 1)) Xor
Asc(Mid(Key, i - 2 + p1, 1)))

Next

StrDecrypt = Rt

End Function

For example if we use plain text "ATANU MAITY"
and encrypt it with StrEncrypt function it will create cipher
text different for every time.

**CASE 1.**

StrEncrypt("ATANU MAITY")

Cipher Text "xjr,xmsx*p_qc€ý÷ßZÊödñ¸H`xü5¯†9³ŒzÅª¢¿,ë¾À"

**CASE 2.**

StrEncrypt("ATANU MAITY")

Cipher Text ":i#ubK\{jizC,,g¾°8;TÑl›¬ÚŠjm1v"ë3a9>|ô+•`P=/"

**CASE 3.**

StrEncrypt("ATANU")

Cipher Text "366bu9\VŒª…VßÎ°’—ÐJŒ¨‹Ÿ˜ [Js¥Pß‚åš¢8`7Ÿ Ýh¥"

if you carefully analysis with Case 1 and Case 2, you can not
find any pattern match between two cipher text although pain
text and secret key are same. and if you analysis case no 1
with case no 2 then you can find the length of cipher text
dose not vary with the length of plain text.

For completing listing of the code and sample Visual Basic and C# .NET
project for Symmetric IV Encryption can be found in Sample Code
section.

Home > Tips > Encryption and Decryption > Symmetric IV Encryption

© 2006 - 2020, RM Solution.