**Overview:**

This assignment assesses the following module learning outcomes:

1.Critically evaluate the effectiveness of parallel computation in homogenous and heterogeneous environments;

2.Develop programs for parallel systems, e.g. using Open MP and MPI for multi cores, and Open CL for accelerators if possible.

3.Understand and develop a parallel design and algorithm.**UFCFFL-15-M Parallel Computing Assignment-West England University UK.**

This is an individual assignment, worth 60% of the overall mark for the module. It is split into two components, a research logbook and a development project. It requires students to design and implement a selection of parallel algorithms for computing the problem described in

Section 2. In addition to implementing an optimized set of parallel implementations for the problem, it is expected that a successful completion will include a bench marking analysis of the implemented algorithm, compared against a “golden” serial version.

20% of the 60% marks obtainable from this assignment are for the companion logbook. The logbook is expected to be between 1500 – 3000 words and is a reflective account of the development process, research into different approaches to parallelising sequential algorithms,both from material taught as part of the course, but also from research material, e.g. papers.

More details of the assignment is described in Section 2.

Working on this assignment will help understand modern multi-core and many-core architectures, parallelise sequential algorithms, thinking concurrently, and apply academic research in a practical context.

**2.Task Specification**

This section introduces the details of the problem chosen for implementing parallel algorithms as part of this assessment point. The chosen problem is how to find the most efficient way to determine the key to encrypt and decrypt textual messages passed across communication lines.

An encryption/decryption process takes a plain text and a key expression converts into an encrypted text, which is also called as cipher text. The process is sketched in the following diagram.

Advanced Encryption Standard (AES) is known to be one of the-state-of-the-art encryption/decryption method used by many prestigious companies e.g. NSA, Microsoft and Apple, which uses a symmetric key generating approach to achieve very highly secured messaging and access across the networks. More details on how it works can be found in the literature.

There are a number of tools developed to work out security operations including encryption/decryption procedures. Open SSL is an open source library created for security operations for this purpose. It is developed in C programming language and interfaced with various other programming languages too. This library uses SSL and TSL protocols and includes a

number of cryptographic functions. The following two links provide further details on use of Open SSL and the ways how to incorporate with self-developed C programs for encryption/decryption purposes.

Brute-force attack is one of cipher cracking attacks, which uses an exhaustive search to find the key to crack the message encrypted. Brute force search is a global search approach relies on trial-and-error operations, where an input set is assumed and tested whether or not it produces the targeted output. There are a number of well-known brute-force search algorithms used and well-evaluated with respect to a number of performance measures including complexity. (1)Generate and test, (2) Breath-First, and (3) Depth-first search algorithms are three of these well-

known Brute-force (exhaustive) search algorithms. Further details can be found in the literature

As an ethical hacking operation, a brute-force search algorithm can be implemented incorporating with Open SSL library, given that both a Plain text and a Cipher text can be provided while the secure key used in encryption can be searched for with the developed Brute-Force algorithm.

**UFCFFL-15-M Parallel Computing Assignment-West England University UK.**

Obviously, an exhaustive search developed with any Brute-force algorithm will take very long time to find the secure key for crack of the cipher, AES this time, using a sequentially developed Brute-force algorithm. This creates a good motivation to go for parallelisation of Brute-force search algorithms. The main requirement of this assignment is to design parallel Brute-force

search algorithms for finding the right secure key to crack the ciphers using both shared memory and distributed memory paradigms with Open MP and MPI parallelisation tools, respectively.

**3.Requirements**

**a. Problem set 1: Open MP**

Implement a parallelised version of Brute-force search, which behaves the same as the serial solution for cracking aes-128-cbc cipher. The implementation should use Open MP for parallelization of the algorithm.

Your solution should be implemented using C/C++, compiled with gcc. Your final solution should include a Make file that can be used by makers to build and test your work.

Your solution must be committed in UWE’s Git lab. It will naturally be time stamped and you must be careful to not make commits after the submission deadline.

**b. Problem set 2: MPI**

Implement a parallelised version of Brute-force search, which behaves the same as the serial solution for cracking aes-128-cbc cipher. The implementation should use MPI for parallelization of the algorithm.

Your solution should be implemented using C/C++, compiled with gcc. Open MPI is installed on own PCs as illustrated during the lab session, or PCs in the Q block labs. Your final solution should include a Make file that can be used by makers to build and test your work.

Your solution must be committed in UWE’s Gitlab. It will naturally be time stamped and you must be careful to not make commits after the submission deadline.

**c.Problem set 3: Bench marking and performance analysis**

For this component you are expected to perform an analysis of the serial solution and compare and contrast this against your solution problem set 1 and 2.

The analysis should be reproducible and you should include instructions on how to execute the solutions, including the serial one provided, to produce the performance results. Of course, it is not expected that during testing the same performance numbers will be produced, but they should be within a reasonable margin of error.

You are free to include this in your logbook, but it does not count against the word count,and it might be easier to produce a separate document with the presentation of the performance numbers and analysis of the results.

**UFCFFL-15-M Parallel Computing Assignment-West England University UK.**

**4. Deliverables**

a. Each problem solution, Open MP and MPI implementations, should be committed in its own directory in UWE’s Gitlab, including a README.md documenting what the program does, how to build it, and benchmark the resulting executable(s).

b. Additionally, the Git project should include a folder with documentation for your project and its solution, including the logbook, which details the performance analysis, the approach to bench marking, and so on.

c. Logbook of 1500 – 3000 words. The logbook is for you to document your design and development process, along with a performance analysis of your solutions to Brute-Force search for cipher cracking. It is not specified what shape your logbook should take,but it should be academically rigorous, including academic references supporting any claims made, as well as to provide context, and so on. The logbook should be submitted as a word or PDF file to Blackboard. In addition, the log book should include a link to

your Git project for this module.

**ORDER This UFCFFL-15-M Parallel Computing Assignment NOW And ***Get Instant Discount*

*Get Instant Discount*

Read More :