Using Java Cryptographic Architecture (JCA) and JavaCryptographic Extensions (JCE) implement the following protocol.Please refer to the lecture slides and online tutorials forcompleting this assignment.

You may also find the following tutorial useful.http://www.ibm.com/developerworks/java/tutorials/j-sec1/j-sec1.html

1) Two entitles (Alice and Bob) generates public key pair usingRSA algorithm. [Print: “Alice: Public Key: AAA” “Alice: PrivateKey: aaa” “Bob: Public Key: BBB” “Bob: Private Key: bbb” Where AAA,aaa, BBB, and bbb are the public and private key of Alice and Bobrespectively.

2) Alice generates a random DES key. [Print: “Alice: the DESkey: xxx, where xxx is the DES key].

3) Then, Alice encrypts the following message “Protect yournetwork as if it would be a hotel not as if it would be a castle.”Using the DES encryption and the DES key.

[Print:

“Alice: Plain text: xxx,

DES Key: kkk

Cipher text: ccc ], where xxx is the plaintext message, kkk isthe DES key and ccc is the ciphertext.

4) Alice then digitally signs the message (notice that Aliceneed to use her private key and MAC algorithm to do this).

[Print: “Alice: Digitally signed message is xxx”, where xxx isthe output of digital signature on the message.]

5) Finally, Alice encrypts the DES key using the public key ofBob. In a normal scenario, Alice would send the encrypted message,digitally signed message, and the encrypted key to Bob. However, inthis scenario, you should print this information on the outputscreen as printable outputs. Print some newline characters toseparate this segment from the following segment.

6) Bob would verify the digital signature (notice that in thiscase, you need to use the public key of Alice, encrypted message,and the received digital signature). If the signature is valid,then print “Bob: Message is signed by Alice!”, otherwise print“Bob: Message is not signed by Alice!”.

7) Then, Bob decrypts the DES key using his RSA private key.

[Print: “Bob: the DES key is :xxxx”, where xxx is the encryptedDES key).

8) Finally, Bob decrypts the message using DES key and prints“Bob: the message is “xxx”., where xxx is the decryptedmessage.

Please design the appropriate classes and methods so that thedesign of the program is clean and reusable. Provide a tester classwith “main” method that will use these classes to complete thetasks. Please properly comment your code.

## Expert Answer

Answer to Using Java Cryptographic Architecture (JCA) and Java Cryptographic Extensions (JCE) implement the following protocol. Pl…