You are on page 1of 3

Question 1: 

Brute force algorithms are also known as generate and test, is a very general
problem-solving technique and algorithmic paradigm that consists of systematically enumerating
all possible candidates for the solution and checking whether each candidate satisfies the
problem's statement. Briefly explain the Brute force algorithms with the help of brute-force attack
in Cryptography?

Answer:

Brute-Force Attack:

In Cryptography, the brute-force attack is also recognized as the exhaustive search.

In Cryptography, brute-force attacks are happened to steal the personal information of the user.

The Brute-force attack utilizes the brute-force algorithm to determine the passwords from all
possible or feasible combinations of passwords.

When the password is strong then the brute-force attack is a time-consuming process, and if a
password is weak then it is easy to determine the correct or exact password.

Types of brute-force attacks in cryptography are mentioned below.

Simple Brute-force attack,

Hybrid Brute-force attack,

Reverse Brute-force attack,

Dictionary Attack,

Rainbow table attack,

Credential Recycling

Brute-Force Algorithm in Cryptography:

In Cryptography, the hacker uses advanced software that is built on the brute-force algorithm to
steal the user's information.

Using this advanced password cracking software the hackers can easily automate the software to
try all numerous possible password combinations, which are impossible for the human to break.

The advanced software that is designed on the brute force algorithms is mentioned below. These
applications are fully automated and break the passwords by trying multiple brute-force
techniques.

John- The-ripper,
RainbowCrack,

AirCrack-ng, and so on

Question 2: What are Dynamic Programming algorithms? Give some example of it?

Answer:

DYNAMIC PROGRAMMING ALGORITHM:

Dynamic programming basically refers to the process of optimization that is performed over the
process of normal recursion.

The complete recursive calls can be processed for performing optimization using the approach for
dynamic programming.

In the dynamic programming approaches the results of the subproblems are stored for the
purpose of reducing the overall time of re-computation of those subproblems.

The use of dynamic programming algorithm reduces the overall time complexities for the given
particular problem.

EXAMPLE:

Following are the basic examples for the dynamic programming algorithm:

Dijkstra's algorithm for shortest path algorithm

Fibonacci sequence

Balanced 0-1 matrix

Checkerboard

Sequence alignment

Tower of Hanoi problem

Egg dropping puzzle


Question 3: Generally, explain the best case complexity theory of an algorithm with
respect to itself and in relation with another other algorithm with an example?
Answer: Best case time complexity of any algorithm is defined as the minimum time
that the algorithm takes to execute on an input of size n. It usually gives us the lower
bound of running time over an algorithm

Linear search algorithm

If we assume the search key is present in rhe first position of array


Here only one comparison is done to search
Hence the best case time complexity is omega (1)
In other words we would say linear search took constant time
Binary Search Algorithm

For using binary search we will have to sort the array first
Sorting takes O(n lgn) time complexity in best, avg, worst case
Then if we search for the key which is present at the middle position
Search time complexity is omega(1)
Total time complexity = n lgn + 1
In other words we would say best case time complexity of Binary search is n lg n
assuming given array is unsorted
If the given array is already sorted, then best case time complexity is omega (1)
In other words we would say Binary search took constant time

You might also like