CSCI321 FINAL YEAR PROJECT KRYPTO FOR ANDROID ZAINOLABIDIN BIN ESA UOW ID: 5988652 MUHAMMAD ZAHID BIN ADBUL GAFFAR UOW ID: 6097984 MOHAMMAD HANIF BIN SUANDY UOW ID: 5841707 LEE LOONG WEI NOEL UOW ID: 5988536 DECLARATION: We certify that this is entirely our own work, except where we have given fully-documented references to the work of others, and that the material contained in this report has not previously been submitted for assessment in any formal course of study. We understand the definition and consequences of plagiarism.
50
Embed
CSCI321 FINAL YEAR PROJECT · CSCI321 FINAL YEAR PROJECT KRYPTO FOR ANDROID ZAINOLABIDIN BIN ESA UOW ID: 5988652 MUHAMMAD ZAHID BIN ADBUL GAFFAR UOW ID: 6097984 MOHAMMAD HANIF BIN
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
CSCI321 FINAL YEAR PROJECT
KRYPTO FOR ANDROID
ZAINOLABIDIN BIN ESA
UOW ID: 5988652
MUHAMMAD ZAHID BIN ADBUL GAFFAR
UOW ID: 6097984
MOHAMMAD HANIF BIN SUANDY
UOW ID: 5841707
LEE LOONG WEI NOEL
UOW ID: 5988536
DECLARATION: We certify that this is entirely our own work, except where we have
given fully-documented references to the work of others, and that the material
contained in this report has not previously been submitted for assessment in any
formal course of study. We understand the definition and consequences of plagiarism.
TABLE OF CONTENTS
SECTION 1 USE CASE IDENTIFICATION ....................... 1
Use Case 1.1: Decrypt Ciphertext ................................................... 1
Use Case 1.1.1: Run IoC Module .................................................... 2
Use Case 1.1.2: Run Frequency Analysis ......................................... 3
Use Case 1.1.3: View Histogram..................................................... 4
Use Case 1.1.4: Input Ciphertext ................................................... 5
Use Case 1.1.5: View Ciphertext .................................................... 6
Use Case 1.1.6: Calculate Occurrence ............................................. 7
Use Case 1.1.7: Calculate Character ............................................... 8
Use Case 1.1.8: Calculate Bigram ................................................... 9
Use Case 1.1.9: Calculate N-gram ................................................ 10
Use Case 1.2.1: Run Decrypt Module ............................................ 11
Use Case 2.1: Determine Plaintext................................................ 12
Use Case 2.1.1: Read Ciphertext .................................................. 13
Use Case 2.2.1: Determine Probable Cipher................................... 14
Use Case 2.2.2: Run Cryptanalysis Module .................................... 15
Use Case 3.1: Enter User Guide ................................................... 16
Use Case 3.1.1: Input Ciphertext ................................................. 17
Use Case 3.2.1: View User-Assisted Steps ..................................... 18
Use Case 4.1: Determine Period ................................................... 19
Use Case 4.1.1: Read Ciphertext .................................................. 20
Use Case 4.2.1: Calculate Period .................................................. 21
Use Case 5.1: Generate Report .................................................... 22
Use Case 5.1.1: Retrieve Cryptanalysis Results .............................. 23
Use Case 5.1.2: Retrieve IoC Module Results ................................. 24
Use Case 5.1.3: Retrieve Decrypt Module Results ........................... 25
Use Case 6.1: Share Results ........................................................ 26
SECTION 2 USE CASE DIAGRAMS ............................... 27
Use Case 1 ................................................................................. 28
Use Case 2 ................................................................................. 29
Use Case 3 ................................................................................. 30
Use Case 4 ................................................................................. 31
Use Case 5 ................................................................................. 32
Use Case 6 ................................................................................. 33
Combined Use Case .................................................................... 34
The next few pages will highlight the operations and “workflows” of the user and the application.
USE CASE 1.1: DECRYPT CIPHERTEXT
UC-ID 1.1
Name
Decrypt Ciphertext
Description
Decrypt Ciphertext is an important process because it calls other functions in the application. Before accessing most of the other functions, the user must
call the Decrypt Ciphertext method.
Actor(s)
- User
Main Scenario
Step 1) User will choose Decrypt Ciphertext. Step 2a) User will be prompted to Input Ciphertext.
Step 2b) (Optional) User has the option to View Ciphertext.
2 of 50
USE CASE 1.1.1: RUN IOC MODULE
UC-ID 1.1.1
Name
Run IoC Module
Description
This use case describes the scenario when User chooses Run IoC Module.
Actor(s)
- User
- Krypto App (Run Frequency Analysis)
Main Scenario
Step 1) User chooses Run Frequency Analysis. Step 2) User chooses Run IoC Module.
Step 3) The Determine Period function will read in
the Ciphertext. Step 4) After reading in the Ciphertext, the
Determine Period function will calculate the period.
3 of 50
USE CASE 1.1.2: RUN FREQUENCY ANALYSIS
UC-ID 1.1.2
Name
Run Frequency Analysis
Description
This use case describes the function which will be run after the user inputs the Ciphertext.
This use case describes the scenario when the user chooses to View Histogram.
Actor(s)
- User
- Krypto App (Run Frequency Analysis)
Main Scenario
Step 1) User will choose View Histogram. Step 2) The application will display the histogram for
the frequency of characters in the ciphertext.
5 of 50
USE CASE 1.1.4: INPUT CIPHERTEXT
UC-ID 1.1.4
Name
Input Ciphertext
Description
This use case describes the scenario when the user first launches the application.
Actor(s)
- User
Main Scenario
Step 1) User launches the Krypto Application.
Step 2) Krypto App will prompt user to input the ciphertext.
Step 3) User will input the ciphertext.
6 of 50
USE CASE 1.1.5: VIEW CIPHERTEXT
UC-ID 1.1.5
Name
View Ciphertext
Description
This use case describes the scenario if the user chooses to view the ciphertext entered.
Actor(s)
- User
Main Scenario
Step 1) User selects View Ciphertext in the
application. Step 2) Krypto App display the ciphertext previously
entered by the user.
7 of 50
USE CASE 1.1.6: CALCULATE OCCURRENCE
UC-ID 1.1.6
Name
Calculate Occurrence
Description
This use case describes the scenario when the user chooses to calculate occurrence of characters.
Actor(s)
- User
- Krypto App (Run Frequency Analysis)
Main Scenario
Step 1) User selects Calculate Occurrence from the Krypto Application.
Step 2) The Krypto App calls the Cryptanalysis Module.
Step 3) The app prompts the users whether they want to;
(a) Calculate Character,
(b) Calculate Bigram or, (c) Calculate N-gram.
8 of 50
USE CASE 1.1.7: CALCULATE CHARACTER
UC-ID 1.1.7
Name
Calculate Character
Description
This use case describes the scenario when the user chooses to Calculate Character.
Actor(s)
- User
- Krypto App (Calculate Occurrence)
Main Scenario
Step 1) The user selects Calculate Character from the app.
Step 2) The app calls the calculate character class.
9 of 50
USE CASE 1.1.8: CALCULATE BIGRAM
UC-ID 1.1.8
Name
Calculate Bigram
Description
This use case describes the scenario when the user chooses to Calculate Bigram.
Actor(s)
- User
- Krypto App (Calculate Occurrence)
Main Scenario
Step 1) Step 1) The user selects Calculate Bigram from the app.
Step 2) The app calls the calculate bigram class.
10 of 50
USE CASE 1.1.9: CALCULATE N-GRAM
UC-ID 1.1.10
Name
Calculate N-gram
Description
This use case describes the scenario when the user chooses to Calculate N-gram.
Actor(s)
- User
- Krypto App (Calculate Occurrence)
Main Scenario
Step 1) The user selects Calculate N-gram from the app.
Step 2) The app prompts the user for the value of N. Step 3) The app calls the calculate bigram class.
11 of 50
USE CASE 1.2.1: RUN DECRYPT MODULE
UC-ID 1.2.1
Name
Run Decrypt Module
Description
This use case describes the scenario when the user has chosen to decrypt the ciphertext.
Actor(s)
- User
- Krypto App (Decrypt Ciphertext)
Main Scenario
Step 1) User chooses to decrypt ciphertext. Step 2) The Decrypt Module will be called once the
user chooses to decrypt ciphertext.
12 of 50
USE CASE 2.1: DETERMINE PLAINTEXT
UC-ID 2.1
Name
Determine Plaintext
Description
This use case describes more in-depth into the scenario in the Decrypt Ciphertext module.
Actor(s)
- User
- Krypto Application (Decrypt Ciphertext)
Main Scenario
Step 1) User chooses Decrypt Ciphertext in the app. Step 2) The Determine Plaintext function will be
called. Step 3) The function will proceed to read in the
ciphertext previously entered by the user. Step 4) The frequency analysis will run and the most
probable analysis will be determined.
13 of 50
USE CASE 2.1.1: READ CIPHERTEXT
UC-ID 2.1.1
Name
Read Ciphertext
Description
This use case describes the function which will be used multiple times in the app for reading in the
ciphertext that has been entered by the user.
Actor(s)
- User
Main Scenario
Step 1) Whenever a function which requires the ciphertext is called, this function will be used.
14 of 50
USE CASE 2.2.1: DETERMINE PROBABLE CIPHER
UC-ID 2.2.1
Name
Determine Probable Cipher
Description
This use case describes the scenario when the user wants to determine the probable cipher of the
ciphertext.
Actor(s)
- User
Main Scenario
Step 1) User chooses to decrypt ciphertext. Step 2) The cryptanalysis module will run.
Step 3) The cryptanalysis module will initiate the Determine Probable Cipher function.
15 of 50
USE CASE 2.2.2: RUN CRYPTANALYSIS MODULE
UC-ID 2.2.2
Name
Run Cryptanalysis Module
Description
This use case describes the scenario when users choose to use the user-assisted guide.
Actor(s)
- User
- Krypto Application (User-Assisted Steps)
Main Scenario
Step 1) Users choose to enter the user guide. Step 2) The app will instruct the user to input the
ciphertext. Step 3) The user will choose to view user-assisted
steps. Step 4) The user-assisted steps function will run the
cryptanalysis module.
16 of 50
USE CASE 3.1: ENTER USER GUIDE
UC-ID 3.1
Name
Enter User Guide
Description
This use case describes the scenario when users choose to enter the user guide.
Actor(s)
- User
Main Scenario
Step 1) App prompts the user if they want to go to
the user guide if it’s the first time the app is being run. Alternatively, if it’s not the first run, the user can choose to run the user guide from the menu.
Step 2) User chooses to enter the user guide.
17 of 50
USE CASE 3.1.1: INPUT CIPHERTEXT
UC-ID 3.1.1
Name
Input Ciphertext
Description
This use case describes the scenario when the user first chooses to start decrypting and is prompted for
the ciphertext.
Actor(s)
- User
Main Scenario
Step 1) App prompts the user to enter the ciphertext. Step 2) User inputs the ciphertext.
18 of 50
USE CASE 3.2.1: VIEW USER-ASSISTED STEPS
UC-ID 3.2.1
Name
View User-Assisted Steps
Description
This use case describes the scenario when the user chooses to have a step-by-step guide for using the
app.
Actor(s)
- User
Main Scenario
Step 1) User chooses to view user-assisted steps. Step 2) The app animates what the user is supposed
to do or tap. Step 3) User follows the animated instructions.
19 of 50
USE CASE 4.1: DETERMINE PERIOD
UC-ID 4.1
Name
Determine Period
Description
This use case describes the scenario when the IoC module is run.
Actor(s)
- User
- Krypto Application (Run IoC Module)
Main Scenario
Step 1) User chooses to run the IoC module. Step 2) The Determine Period function will be called.
20 of 50
USE CASE 4.1.1: READ CIPHERTEXT
UC-ID 4.1.1
Name
Read Ciphertext
Description
This use case describes the scenario whenever the app requires the ciphertext previously entered by the