When we talk about strength of **encryption algorithm** it means how hard it is to figure out or find algorithm secret key. We can judge the strength of algorithm as, suppose plain text of 100 bits will generate cipher text of 100 bits and if we change value of single bit then good algorithm or cipher will take its impact as 50 values in cipher will be changed due to single value change.

Strength of **encryption Algorithm** strength depends upon key secrecy mean how much effort is required to break the key security. Whether is it easy or difficult? If it is easy to fine secret key then algorithm strength is weak and vice versa. So it is on top priority while making any algorithm whether symmetric or Asymmetric.

It depends upon a many factors which are given below:

## 1. Key Secrecy

**Example: **Although there are many locks available in market but key is security of every lock which different of each lock.

## 2. Key Size (Length of key)

Large key space means a range of values that can be used to make a secret key. Large key size means more available values to represent different keys. More random keys will be generate and its harder for attacker to figure out a key, so use a large key size and all possible values within key space. It will protect actual key and algorithm will be stronger. Key size make the bigger space and more keys. Attackers face more difficulty and algorithm becomes stronger.

**Example**: if there is key length 2 then there will 4 possible key combination. Similarly 4 has 16 and so on mean 2^n formula is used for key space or combination of key. N is length of key

Key Size OF AES Key is 192-256 bits for highly encryption purposes.

## 3. Initialization Vector(IV)

Basically it is a random values used along with secret key to produce secret pattern (cipher) for encryption purpose. It produce unique values by preventing repetition and it makes more difficult for hackers to determine pattern and break cipher.

**Example:** It is used in DES modes like Cipher Feedback and output Feedback.

## 4. Number of Rounds

The number of rounds depends upon the size of the block and the key length:

More number of rounds you are performing to make algorithm stronger and difficult to break by attacker.

## 5. Performance

If difficult to break algorithm secret key then performance is best. So best performance is consider algorithms only if it is secure from attackers. Each stronger cipher contain two main attributes confusion and diffusion. Confusion is processed by substitution and diffusion by transposition. A stronger cipher should have both.

**Example:** 1) A block Cipher use confusion and diffusion methods.

**2) **Triple DES performing DES function 3 time so performance is not actually good. RC4 is very fast and efficient algorithm. Performance impact on hardware.** **

## 6. Resources

The strength of an encryption method correlates to the amount of necessary processing power, resources.

**Example:** Symmetric algorithms performance fast then asymmetric because there was no mathematical intensive function is perform instead of encryption is taking place through substitution (place of) and transposition (moving around). In Asymmetric encryption, mathematical intensive function is involved that required more resources like strong processor. Asymmetric encryption take much time and resources.

## 7. Time required to breakdown the cryptosystem

How much time required to check and try every possible key value until achieve goal of breaking algorithm. If more time required or impossible to try every combination then **encryption algorithm **will be stronger.

**Example:** Brut force attack check every possible values to break system key. The goal once planning associate cryptography technique is to form compromising it too high-priced or too long.

## 8. Work Factor

It means how much effort and resources required an attackers to breach or penetrate the cryptosystem. It mean to break cryptosystem, more resources and effort required so that attackers could not bear such cost.

## 8. Algorithm without Flaws

Always use such algorithms which have no flaws, use large key size and use all possible values to protect actual key. All elements should be strong then algorithm will be strong.

## 9. Choose Random Key

Although, there are many possible key values, donâ€™t use same key values every time.