Upload
others
View
9
Download
1
Embed Size (px)
Citation preview
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
SECTION 3 ACTIVITY DIAGRAMS ............................... 35
Process 1 ................................................................................... 35
Process 2 ................................................................................... 36
Process 3 ................................................................................... 37
Process 4 ................................................................................... 38
Process 5 ................................................................................... 39
Process 6 ................................................................................... 40
SECTION 4 SEQUENCE DIAGRAM................................ 41
Sequence 1 (Cryptanalysis Module) .............................................. 41
Sequence 2 (Decrypt Module) ...................................................... 43
Sequence 3 (Education Module) ................................................... 44
Sequence 4 (IoC Module)............................................................. 45
Sequence 5 (Report Module) ........................................................ 46
Sequence 6 (Sharing Module) ...................................................... 47
1 of 50
SECTION 1 USE CASE IDENTIFICATION
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.
Actor(s)
- User
Main Scenario
Step 1) User will choose Run Frequency Analysis.
Step 2) User will choose from the below;
(a) Run IoC Module,
(b) Run Decrypt Module, (c) View Histogram or, (d) Calculate Occurrence.
4 of 50
USE CASE 1.1.3: VIEW HISTOGRAM
UC-ID 1.1.3
Name
View Histogram
Description
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
user.
Actor(s)
- User - Krypto Application (Determine Plaintext) - Krypto Application (Determine Period)
Main Scenario
Step 1) User chooses any tasks in the app which
requires the reading in of ciphertext. Step 2) The specific function in the app which
requires the ciphertext will read in the ciphertext.
21 of 50
USE CASE 4.2.1: CALCULATE PERIOD
UC-ID 4.2.1
Name
Calculate Period
Description
This use case describes the scenario when determine period function is used.
Actor(s)
- User
- Krypto Application (Run IoC Module)
Main Scenario
Step 1) User chooses to run IoC module. Step 2) The app will call the Determine Period
function. Step 3) The determine Period function will calculate
the period.
22 of 50
USE CASE 5.1: GENERATE REPORT
UC-ID 5.1
Name
Generate Report
Description
This use case describes the scenario when the user chooses to generate a report of the cryptanalysis.
Actor(s)
- User
Main Scenario
Step 1) User chooses to generate report in the app.
Step 2) The report generation function will retrieve the cryptanalysis results.
Step 3) The report generation function will retrieve the decryption results.
23 of 50
USE CASE 5.1.1: RETRIEVE CRYPTANALYSIS RESULTS
UC-ID 5.1.1
Name
Retrieve Cryptanalysis Results
Description
This use case describes the scenario when the user chooses to generate a report of the cryptanalysis
which in turn, retrieves the cryptanalysis results.
Actor(s)
- User - Krypto Application (Generate Report)
Main Scenario
Step 1) When the report generation is called, the cryptanalysis results will be retrieved.
24 of 50
USE CASE 5.1.2: RETRIEVE IOC MODULE RESULTS
UC-ID 5.1.2
Name
Retrieve IoC Module Results
Description
This use case describes the scenario when the user chooses to generate a report of the cryptanalysis
which in turn, retrieves the IoC Module results.
Actor(s)
- User - Krypto Application (Retrieve Cryptanalysis
Results)
Main Scenario
Step 1) When the report generation is called, the IoC
Module results will be retrieved.
25 of 50
USE CASE 5.1.3: RETRIEVE DECRYPT MODULE RESULTS
UC-ID 5.1.3
Name
Retrieve Decrypt Module Results
Description
This use case describes the scenario when the user chooses to generate a report of the cryptanalysis
which in turn, retrieves the Decrypt Module results.
Actor(s)
- User - Krypto Application (Retrieve Cryptanalysis
Results)
- Main Scenario
Step 1) When the report generation is called, the
Decrypt Module results will be retrieved.
26 of 50
USE CASE 6.1: SHARE RESULTS
UC-ID 6.1
Name
Share Results
Description
This use case describes the scenario when the user chooses to share the results.
Actor(s)
- User
Main Scenario
Step 1) User chooses the share function in the app.
Step 2) The share function will retrieve the cryptanalysis results.
Step 3) The OS-specific share function will be called.
Step 4) The user will choose the platform or messaging application they wish to share to.
27 of 50
SECTION 2 USE CASE DIAGRAMS
The next few pages will show the use case diagrams according to the insights from the previous use case
identification and analysis. The diagrams are best viewed in the landscape format.
28 of 50
USE CASE 1
1.1
1.1.1
1.1.2
1.1.3
1.1.4
1.1.6
1.1.7 1.1.8 1.1.9
1.1.5
1.2.1
29 of 50
USE CASE 2
2.1
2.1.1
2.2.1 2.2.2
1.1.2
30 of 50
USE CASE 3
3.1 3.1.1
3.2.1 2.2.2
31 of 50
USE CASE 4
4.1
4.1.1
4.2.1
32 of 50
USE CASE 5
5.1 5.1.1
5.1.2 5.1.3
33 of 50
USE CASE 6
6.1 5.1.1
5.1.2 5.1.3
34 of 50
COMBINED USE CASE
35 of 50
SECTION 3
ACTIVITY DIAGRAMS
PROCESS 1
The User will choose between two options:
1) Decrypt Ciphertext;
2) Calculate Occurrence.
Option 1 will trigger the Application to run the Decrypt Module.
Option 2 will trigger the Application to run the IoC Module.
Refer to Process 2 and Process 4 for the Decrypt Module and IoC Module
processes respectively.
36 of 50
PROCESS 2
Prior to this process, the User will have chosen to run this Decrypt Module.
This module’s objective is to decrypt and determine the plaintext. The User
will then choose to:
1) Run Frequency Analysis or,
2) Read Ciphertext.
Option 1 will trigger the Application to invoke the Determine Probable
Cipher function and then run the Cryptanalysis Module.
Option 2 will trigger the Application to read the ciphertext.
Refer to Process 1 for the Cryptanalysis Module.
37 of 50
PROCESS 3
Upon running this module, the User will choose to:
1) Input Ciphertext or,
2) View User-Assisted Steps.
Option 1 will prompt the User to input the ciphertext.
Option 2 will trigger the Application to assist the User with a guide on using
the application leading up to running the core module (Cryptanalysis
Module).
Refer to Process 1 for the Cryptanalysis Module.
38 of 50
PROCESS 4
Prior to this process, the User will have chosen to run this IoC Module.
This module’s objective is to determine the period.
The User will choose to:
1) Read Ciphertext or,
2) Calculate Period.
Option 1 will trigger the Application to read the ciphertext.
Option 2 will trigger the Application to calculate the period.
39 of 50
PROCESS 5
Prior to this process, the User will have chosen to run this Report Module.
This module’s objective is to generate a report based on the results. The
Application will prompt the User to:
1) Retrieve IoC Results or,
2) Retrieve Decrypt Module Results.
Option 1 will trigger the Application to generate a report of the IoC results.
Option 2 will trigger the Application to generate a report of the Decrypt
Module results.
40 of 50
PROCESS 6
Prior to this process, the User will have chosen to run this Sharing Module.
This module’s objective is to share the results. The Application will prompt
the User to:
1) Retrieve IoC Results or,
2) Retrieve Decrypt Module Results.
Option 1 will trigger the Application to generate a report of the IoC results.
Option 2 will trigger the Application to generate a report of the Decrypt
Module results.
41 of 50
SECTION 4
SEQUENCE DIAGRAM
SEQUENCE 1 (CRYPTANALYSIS MODULE)
42 of 50
In this Sequence Diagram, the User is required to input the Ciphertext for
analysis. The User may choose to view the Ciphertext. This is shown as an
optional case above.
After the Ciphertext has been entered, the User will select Run Frequency
Analysis. This is shown as a RFA case above. This will allow the User to:
1) Run IoC Module
2) View Histogram
3) Run Decrypt Module
4) Calculate Occurrence
Case 1 will invoke the Run IoC Module process. Refer to Sequence 4 for the
IOC Module.
Case 2 will display the Ciphertext into a Histogram. A histogram is a
graphical display of data using bars of different heights. In a histogram, each
bar groups numbers into ranges. Each bar will represent an alphabet and the
frequency of each alphabets.
Case 3 will invoke the Run Decrypt Module process. Refer to Sequence 2 for
the Decrypt Module. The User will input characters for substitution as part of
the decryption process. For example, if the ciphertext will substitute all
character N for character X.
Case 4 will invoke the Calculate Occurrence process. This process allows the
user to calculate the frequency of n letters (unigram, bigram, trigram, etc.)
and will display the results.
After Run Frequency Analysis has been executed, the User will run Decrypt
Ciphertext. This will invoke the function to decrypt the ciphertext and return
the decrypted ciphertext (plaintext).
43 of 50
SEQUENCE 2 (DECRYPT MODULE)
In this Sequence Diagram, the User chooses Decrypt Ciphertext. The
Application will invoke the function Determine Plaintext. This function
invokes another function called Read Ciphertext which will proceed to read in
the ciphertext previously entered by the user.
The Application will then retrieve the information gathered from Run
Frequency Analysis in order to invoke the function Determine Probable
Cipher. Once this is done, the information is passed on to Run Cryptanalysis
Module which will return the decrypted ciphertext to the User.
44 of 50
SEQUENCE 3 (EDUCATION MODULE)
In this Sequence Diagram, the User chooses Enter User Guide. The
application prompts the user if they want to go through the User Guide if it’s
the first time the application is being run. Alternatively, if it’s not the first
run, the User can choose to run the user guide from the menu.
The application will prompt the User to input the Ciphertext. Once the
ciphertext has been entered, the User selects View User-Assisted Steps. This
will provide an animated series of instructions that the User is supposed to
do or tap when executing the function Run Cryptanalysis Module.
45 of 50
SEQUENCE 4 (IOC MODULE)
In this Sequence Diagram, the User chooses Determine Period. This will
invoke the function Read Ciphertext which will proceed to read in the
ciphertext previously entered by the user.
The application will calculate the period of the ciphertext which is also known
as the Index of Coincidence. It is an estimate of the probability that two
randomly chosen elements of X are identical. It is also a measure of
roughness of the histogram, that is, it indicates how uneven the histogram
is.
If the Index of coincidence is high (close to 0.070), i.e. similar to plain text,
then the message has probably been crypted using a transposition cipher
(letters were shuffled) or a monoalphabetic substitution (a letter can be
replaced by only one other).
If the Index of coincidence is low (close to 0.0385), i.e. similar to a random
text, then the message has probably been crypted using a polyalphabetic
cipher (a letter can be replaced by multiple other ones).
The more the coincidence count is low, the more alphabets have been used.
46 of 50
SEQUENCE 5 (REPORT MODULE)
In this Sequence Diagram, the User chooses Generate Report. This will
invoke the functions Retrieve Cryptanalysis, IoC Module and Decrypt Module
results which will be generated into a report. This report will provide all the
information of the ciphertext and the type of cipher that was used.
47 of 50
SEQUENCE 6 (SHARING MODULE)
In this Sequence Diagram, the User chooses Share Results. This will invoke
the functions Retrieve Cryptanalysis, IoC Module and Decrypt Module results
which will be generated into a report. This report will provide all the
information of the ciphertext and the type of cipher that was used. This
function will allow the results to be shared via the platform or messaging
application the User wishes to share to.