Essay Writing Service

Web Based Crypto-analysis Learning Application

Abstract

Cybercrimes has been on the rise in recent years and valuable information is getting stolen at an alarming rate. Cyber criminals have been heartened by the fact that they are living in time where anonymous cryptocurrency is massive.

This report will discuss in great detail the learning application that I developed to try and teach children about cryptology. I will be looking into the encryption/decryption process that is taken place. Once I explain the encrypt /decrypt process that takes place I will be looking at encryption method and will try and relay that information back to my target audience which are children so I had to avoid using a lot of terminologies.

The reason why I chose this project is because of my interest in cryptography. I wanted to find a way teach children about encryption and decryption and how they could apply it to their everyday lives. The user will have their choice of an encryption algorithm. After the user clicks on the encryption method they want the user will then enter a string into a textbox and will be able to see what the encrypted data will look like before returning the string back into its original form. Once the user has a brief understanding on the different encryption algorithms they would enter their email address so they can receive an email congratulating the user for completing the first level of the learning application.

This report will include Planning, designing, development/implementation and testing. Lastly I will be concluding with my evaluation of the overall report plus my self-reflection, any problems faced and what further improvements I could have done if there wasn’t any time constraints.

Table of Contents

Acknowledgments

Abstract

Table of Figures

1.1 Introduction

1.2 Aim and objectives

1.3 Additional objectives

1.4 Chapter breakdown

1.5 Gantt chart

2.1 Background research

2.2Cryptography

2.3 Web browsers

2.4 Encryption algorithms

2.5 Block size

2.6 64 vs 128 vs 256 bits

2.7 AES

2.8 DES and Triple DES

2.9 Blowfish

2.10 Attacks on encryption algorithms

2.11 NetBeans

2.12 Tools being used by school kids

2.13 Existing learning application

2.14 Literature review

Design

Implementation

4.1 Sending emails

5.1 Testing

5.2 Test table

5.3 Comparing my application to an existing application

6.1 Evaluation

6.2 What I would do differently

6.3 Future work

7.1 Conclusion

8.1Bibliography

9.1Appendix

Table of Figures

1.1 Introduction

This report discusses what I hope to achieve which was to design and create a web based crypto analysis java application that would teach children about cryptography. It would allow the children to have a brief understanding on encryption while seeing it happen.  By creating a java application which would explain to children about the importance of encryption, I felt I was answering a problem which has been left unanswered for years. Once the child has become quite knowledgeable in the different encryption algorithms the child can enter their email address which will attach an email congratulating the user for completing the first level of the encryption class.

My project inspiration was based on a module I had studied called computer systems security. In this module it had taught me about the importance of encrypting data so it could not been seen by others.

By creating a learning tool it would allow others to gain knowledge about the difference encryption techniques and how they could use it themselves in the future to protect themselves from hackers.

The learning application would teach the children about cryptology and will help them understand the importance of encryption. By creating the learning tool at a very basic stage the user can build their level up until they are experts in cryptology. A benefit of creating this is the children would also protect their families by using encryption and will keep their personal data safe.

1.2 Aim and objectives

To keep the project simple and easy to follow for myself and others I created small milestones to try and see how far along I have gotten.

By breaking the project into smaller objectives it didn’t stop me from losing focus from my original aim that was:

  • Create a java application which would teach school kids about cryptography. It would show three chosen encryption algorithms with a brief explanation followed by sending the school kid an email certificate for completing the first level of encryption program

The following aims and objectives were put in place to develop the project idea and to try and fulfil the requirements.

Create a User interface that would be appealing to the online users

Encryption – if the button submit is clicked the user can see the data they have entered is in encrypted form.

Decryption button – if a user wants to change information they answered incorrectly they could click the decrypt button to take the string back to its original form.

Email – once the user would click submit button the data would be sent to my email address in encrypted form and then I would be able to decrypted the data to see the information

 

1.3 Additional objectives

There were many features which I thought about and were considered but due to time constraints and complexity I would try and attempt it and will note my progress and problems faced.

The first additional objective was trying to create a network between the two interfaces that when the users have an understanding of encryption that they would face each other in a quiz based on encryption algorithms AES, DES and blowfish that they have learnt about.

Another feature I wanted to do was to create a small test which would test the child’s knowledge on different encryption algorithms included in the learning application.

One more feature I wanted to include was to add more levels to application where the students would keep progressing and improving their understanding until they become adept in encryption.

1.4 Chapter breakdown

The chapters below will be giving out a brief oversight on what will be contained in each chapter. It will be following a process which would be suited to the project.

Chapter 3 in this chapter extensive research will need to be taken. I will be looking at encryption/decryption and how it’s broken down. As well as looking at different cryptography techniques for encrypting and decrypting messages. Then ill be looking at current encryption algorithms and their flaws. I will be also looking at attacks that have taken place on encrypted data and how successful they are. Finally looking at different tools which could be used against my project to make it crash.

Chapter 4 – This chapter will show the initial process of my designs of the user interface as well as showing the text in encrypted and decrypted form. I will be showing my previous attempts and how I changed my design to better suit my overall project objective.

Chapter 5 – List all the steps taken in the implementation of my java application. First creating the GUI. Followed by adding the different encryption algorithms before adding the email feature.

Chapter 6 – This chapter aims to carry out a number of experiments regarding how effective my encryption program is and to see if any packets could be stolen when sending data. Also create a test table of possible ways to crash the program.

Chapter 7 – Self-evaluation and reflection – evaluate the project to my original hypothesis and where I felt I could have improved my project if I had more time.

1.5 Gantt chart

Brief paragraph on the Gantt chart I create to spend the project out into smaller sections to make it easier to work on.

Before designing and implementing the project idea I had to develop a Gantt chart which would detail an estimate time of how long it would take to complete. By creating a gantt chart it would also help with the overall

Above you can see that the gantt I had created would show the milestone I would need to complete for the overall project and also by what time. It would detail an overview on how I thought the project was progressing.

The research section and design, implementation takes times

Created a gantt chart and an actual chart as some section took longer than expected which meant that less time would be spent on other sections and would become additional objectives.

2.1 Background research

Background research overview

This section will be detailing all the research that was conducted at the beginning and throughout the report. It would give a brief understanding on topics such as Cryptography. Different encryption algorithms. Recorded attacks on encrypted data and if the attack was successful. This Section will also contain tools that are being used in schools to teach kids and finally any existing learning application that is similar to what I want to create.

2.2Cryptography

Everyone in the world has secrets and there are those who have a lot more secrets than others. Some want to keep their secrets hidden while others want to know the secrets of others for their own gain.

Cryptography has been about for approximately 4000 years by the Egyptians and it is still be used now and will be used in the future. The term cryptography is from the Greek or Kryptos meaning secret or hidden, and logos meaning science (Cozzens, 2013). Cryptology includes encryption which conceals the message and the decryption (cryptanalysis) reveals it.

Following from the paragraph above, cryptography is related to the disciplines of cryptology and cryptanalysis. Cryptography has many techniques where it tries it best to keep the data hidden. Some techniques that cryptography uses is microdots, which is to reduce the size of the secret information and hide it in another document or in DNA which is camouflaged within the complexity of human genomic DNA (Catherine Taylor Clelland,Viviana Risca,Carter Bancroft). Another technique is merging words with images and other ways to hide information in storage or transit.

Encryption

Encryption is an algorithm that encodes the plain text into a non-readable, non-understandable form or cypher text to provide privacy. The sender would send data in encrypted form and the receiver would have a “key” or a “password” to decrypt the hidden message and returning the text back into its original form.

Encryption was hardly used by the public, but was mainly used as a military tool to send secret messages without it getting intercepted by enemies. As we see today, we live in a world which is internet based and everything can be done behind a computer screen. This includes online banking, shopping, health care and other service.

2.3 Web browsers

Web browsers online uses an encryption algorithm as it will encrypt text automatically when the user is connect to a server which is considered to be secure. This can normally be seen by the url beginning with https. The server would make sure that the text is in decrypted form upon its arrival to the website. If there is any information traveling between computers would not be intercepted as the information would be in encrypted form and will useless as they will only be able to see unreadable gibberish.

2.4 Encryption algorithms

An encryption algorithm along with a key is used in the encryption and decryption of data. Encryption schemes are based on block ciphers. There are many different encryption algorithms that have been developed over the years and not all of them are reliable.

Every algorithm has keys and the encryption algorithm decides how long and what type the keys are. Mostly in conventional symmetric encryption a single key is used in the algorithm. In asymmetric encryption which is also known as public key uses different keys for encryption and decryption.

2.5 Block size

There two different types of cipher:

Stream cipher – what stream cipher is an algorithm that encrypts and decrypts the data 1 bit at a time.

Block cipher – block cipher is an algorithm that encrypts and decrypts the data block by block, a block referring to a group of bits.  A block cipher which works on a 128 bit blocks include AES (Advanced encryption standard) and blowfish works on a 64 bit blocks. While DES (data encryption standard) and 3DES (triple DES) both use 64 bit blocks.

2.6 64 vs 128 vs 256 bits

The encryption algorithms all use different bit lengths when dealing with encryption. Algorithms like blowfish and Data standard encryption both use 64 bit of entropy and a couple of years ago it was thought to strong in terms of getting hacked. But as we know today the standard of hacking a secure encryption algorithm is 128 bit standard and in the future the bit size will probably change. 256 bit is one of the most secure encryption methods but not as secure as the 128 and 192 encryption methods.

2.7 AES

The advanced encryption standard is a symmetric block cipher chosen by the U.S government to protect classified data.  (Rouse) It is used to encrypt sensitive data throughout the world. Now it is used by certain individuals that understand encryption and want to keep their data private (Titcomb). AES is a mathematical algorithm that is used to conceal information so that is hidden from computer users who haven’t got access whether it is stored or in transit.

Encryption using the advanced encryption standard algorithm only uses one 128 bit key to encrypt and decrypt information. What happens is the cipher executes a number of transformation rounds repetitiously and that is what converts the plain text into cipher text which is encrypted. After the steps are completed a reverse round will need to apply to set the cipher text back into plain text.

“One of the reasons why this sort of encryption works so well is that it works on multiple network layers at the same time. Although AES and Rijndael are used interchangeably, there are some differences that should be noted. (Dillow) While AES uses a fixed 128-bit block cipher and three key sizes of 128, 192 and 256 bits, Rijndael can be used with any size block cipher and key in multiples of 32-bits. Rijndael ranges from 128-bit to 256 bits for its key and block cipher sizes”.

Advanced encryption standard is not 100% fool proof but it is considered to be amongst the best encryption algorithms around and also highly secured. There have been some successful attacks relating the key in 2009. But some of the attacks on the AES system are too complex and not devastating.

https://upload.wikimedia.org/wikipedia/commons/thumb/7/76/AES-MixColumns.svg/320px-AES-MixColumns.svg.png

.

Shown above is a breakdown of the SubBytes step, one of the four stages in an round of advanced encryption standard.

2.8 DES and Triple DES

DES cryptology is an encryption algorithm that is short for data encryption standard. The encryption algorithm is based on a 56 bit encryption key algorithm. The key will be used to encrypt and decrypt messages.

The number one issue which deter people from using the DES encryption algorithms is that the size of the encryption key is too small at 56 bits and it doesn’t even put up much of a fight when dealing with the computer hackers. The DES encryption standard was quickly deciphered and now it is replace by 3DES.

The key size is 56 bits and it is too short for proper security and this has been proven to be true by the brute force attack which took place in 1998 by the EFF DES cracker which is also known as “Deep crack”. The reason why this machine was built was to perform a brute force on DES cipher key space. This is done by trying to decrypt an encrypted message by trying every possible key.

DES uses a 56 bit key so that means there are 256 possible keys. This is exactly 72,057,594,037,927,936 (Romani) and it took the EFF DES cracker a matter of day to decrypt the encrypted message

Triple data encryption standard is a bogus way of reusing the old DES implementations

2.9 Blowfish

Blowfish is a 64 bit block cipher algorithm that was published in 1994 by Bruce Schneier.(Tilborg) The reason why Blowfish was developed was because it was supposed to be a better alternative to DES and IDEA. What blowfish tries to do is make any brute force (key exhaustion) attacks by making the key set up a slow operation.

Blowfish along with data encryption standard and other block ciphers of the same era have a 64 bit block size which is considered insufficient for larger files. Blowfish has been designed with a 32 bit instruction processor at a rate of 26 clock cycles per byte making it considerably faster than DES. Blowfish is unpatented, licence free, and free to use for all users.

Blowfish is also one of the most complex data encryption.

Twofish is an encryption algorithm that was developed based on an earlier encryption algorithm blowfish. Schneier himself recommends that people use Twofish instead of blowfish. Twofish was created for the AES cipher competition but where Schneier lost out to Rijndael. Twofish has a 128 bit block size and key ranging from 128 to 256 bits. Currently documented there isn’t any successful cryptanalysis of Twofish.

http://www.javamex.com/tutorials/cryptography/BlockCipherEncryptionTimes.png

2.10 Attacks on encryption algorithms

The disadvantage of using DES is that it is an old data encryption standard from the turn of the last century. The key size is 56 bits and it is too short for proper security and this has been proven to be true by the brute force attack which took place in 1998 by the EFF DES cracker which is also known as “Deep crack”. The reason why this machine was built was to perform a brute force on DES cipher key space. This is done by trying to decrypt an encrypted message by trying every possible key.

DES uses a 56 bit key so that means there are 256 possible keys. This is exactly 72,057,594,037,927,936 (Romani) and it took the EFF DES cracker a matter of day to decrypt the encrypted message.

https://upload.wikimedia.org/wikipedia/commons/b/bd/Board300.jpg

Triple data encryption standard is a bogus way of reusing the old DES implementations. 3DES is believed to be highly secure with 2112 possible keys. 3DES was designed for efficient hardware implementation.

Blowfish is thought of being an highly secure encryption algorithm as it can use huge keys. The one issue is regarding its block size which is 64, the same as DES and 3DES. Blowfish is very efficient when dealing with software and is used by most products.

2.11 NetBeans

NetBeans is a software development application that is written in java. The NetBeans platform allows application to be developed in java which is its primary intention but it also supports other languages, in particular PHP, C/C++ and HTML (NetBeans: The Definitive Guide). NetBeans includes features like code analysers and code converters so that the code can run much more smoothly. A feature that NetBeans has is batch analysers and converters and will be used to search multiple application looking for patterns at the same time.

NetBeans is up to date and is really modernised unlike the olden days where the user would need to write the source code in a textpad or notepad and save the code using an extension based on the language that is selected. Then it would need to be compiled using a compiler. Using Netbeans IDE gets rid of that and reduces the learning of a new programmer as well as easing the task in the meantime.

2.12 Tools being used by school kids

Children all have different ways of learning and the child will fall into one of the three basic learning styles – auditory, visual and kinaesthetic. Below each of the three learning styles will be mentioned with a brief explanation.

Auditory – These learners are also known as language learners. The way that the learners learn is that by listening to what other say and are talking about and they absorb the information. The different ways language learners remember information is by talking aloud. Another way is by talking to themselves while learning something new and they enjoy group work rather than working alone.

Visual – These learners learn by looking at things. As studies show the most dominant learning style is visual learning at 65% (Faculty Development). For these learners to understand they would need to see and visualise their knowledge and skills. The different characteristics that they display is remembering visual details, doodling while listening and liking to write down instructions or see them demonstrated.

Kinaesthetic/tactile learners – These learners make up 30% of the learning styles and the way they learn is by being involved in the learning process. This means that they learn best in activities and hands on projects. The features that these learners display are talking with their hands, like to move when listening and talking and touching items when talking about it.

Also what happens sometimes is that kinaesthetic leaners can be misdiagnosed as ADHD or class troublemakers because the other learning styles auditory or visual styles don’t work for them.

Experts talk about a fourth type of learning which includes being a logical or analytical leaner. These learners would learn by understand how things work and how they are related to each other. The characteristics that these learner have are love knowing how things work, asks a lot of questions so they can understand the topic clearly and finally can think logical at a very young age.

http://image.slidesharecdn.com/visuallearners-130110100859-phpapp02/95/visual-learners-3-638.jpg?cb=1357845315

2.13 Existing learning application

There have been many tools that have been developed over the last couple of years to help teach children about information technology.

Cruchzilla code Monster – this was developed by Greg Linden who wanted his children to learn programming. This application would be teaching kids about JavaScript. What would happen is there would be one pane for the code on the left hand side and the pane on the right hand sight would show what the code does. This learning tool  has a total of 59 lessons teaching starting off learning about variables and parameters and when errors occurs they are explained to the child.

programming for kids

Raspberry Pi – this learning application would teach children how to computer program the old way by also understanding the hardware. Raspberry pie is a mobile phone sized computer that can be used like a personal computer. The raspberry pi was developed to teach computer science at schools at a very low cost. Raspberry Pi has many interesting uses and has been used by myself in one of my modules this year (embedded systems) where my group members and I would need to program a robot to make it move and stop by following a red blob. The Raspberry pi uses open source software and hardware and it is being used in schools currently[1].

10 Tools To Get Kids Excited About Programming programming tools kids07

Another tool that is being used is “Ruby for Kids”. This learning application teaches children a specific programming language which is ruby. By using this tool the children would learn about object oriented languages and see what web applications are coded with it. The tool starts of teaching the basics of the language. The learning tool is free and it can work on all operating systems. The Ruby for Kids also supplies tutorials and games as examples and gives the children the initiative to develop their own web games.

Other learning tools

These are some of the other tools that are being used to teach children.

RoboMind – how to program a robot. Teaches the basics of robotics and it is free to download on Macs OS X, Linux and windows.

Cargo-Bot – teaches how to solve puzzles in the most effective and efficient way to develop structured thinking. The price of the application is $9.99.

Toon Talk – teaches children how to program and its free.

2.14 Literature review

Learning tools such as crunchZilla for kids, CargoBot and raspberry pi along with other application will be the main systems that my learning tool with try and emulate. The online learning application are being used in schools across the United Kingdom. There are other learning tools which teaches kids about coding in other languages and different fields such as robotics, coding.

Use case

The requirements of the project are solely based on the user’s interaction. Below will be detailed the main features that my web based application needs to have and do to be considered a successful project.

The use cases will look at the main use cases for my system. It will be listed in full details in the appendix along with the use case diagram showing how the use case I have will be working together.

  • Users are able to see the two pane and fill in data to see how encrypt and decrypt works.
  • Users are able to check the other encryption algorithms
  • Users will be able to take a quick quiz based on the knowledge they have gained on the application
  • Answers are saved and sent in an email saying whether the users have passed the first level of the crypto class.

The web based application will only have one main user interface. In this user interface it is for the user to learn about encryption. There will be a pane on the left hand side where plain text will be entered and there will be a pane on the right hand side where the plain text will be in encrypted form.

The main page will be the same for all users as it is designed to be aimed for children. So once user has some understanding on three encryption algorithms they will send an email to themselves saying that they have completed level 1 crypto analysis class.

Design

In this section I will be explaining the different stages that I had to take in my design process for both the user interface and NetBeans.

Before I started coding what I wanted to do I had to design what my user interface was going to look like.

I was struggling to see how the user interface would link the data together so I thought I would need to create two different pages which would connect together.

Encrypt

Decrypt

AES

Blowfish

DES

In this page it would show one text box on the left where the user would need to enter the text which they want to encrypt. By clicking encrypt it would appear in the right text box and for the user to decrypt the encrypted text back into the original they would need to click on the decrypt button. Also by clicking on the radio buttons the user would be able to decide what encryption algorithm they would like to see.

Enter email for certificate

Hanad15@hotmail.co.uk

Send

The second part would be a place where the user would enter their email address so that they could receive a certificate stating that they have taken the crypto-analysis level 1 lesson.

Final draft

Web Based crypto-analysis learning application.

Encrypted/Decrypted text

Plain text

POP-UP

BOX

Decrypt

Encrypt

DES

Blowfish

AES

Enter email for certificate

Send

Hanad15@hotmail.co.uk

So in my final draft I had decided to put everything into one page. What would happen in this page is the user would pick which encryption algorithm he would like to see. Once the encryption algorithm is highlighted he’ll be able to enter text into the left hand textbox and then click on the encrypt button. The data will then be in encrypted form. So when the user clicks back on the decrypt button there will be a pop up message box giving a brief introduction on the different algorithms so they use can see what is happening. After the user has checked all three encryption algorithms they can enter their email address and can receive an email which will say “Thank you for completing level 1 crypto-analysis lesson.”

Implementation

When I started to implement my idea I had based it on the design that I developed early. What I first did was to create the user interface on the netbeans application before adding the code to the certain buttons and textboxes.

As you can see the above implementation looks the same as my final design.

The textbox above shows what will appear if the encrypt button is pressed without the encryption algorithm and text being entered. If the normal text is left blank the error message will keep reappearing because an empty string cannot be encrypted.

if(plainText.isEmpty()){

JOptionPane.showMessageDialog(null,”Please enter a string to encrypt”);

}

else {

Above is the if statement that controls the condition if the textbox is empty.

The next figure shows what will appear when the decrypt button is pressed and the information is not entered in the first text box and isn’t encrypted. This is because there isn’t any string to encrypt first for the button to decrypt.

if(encryptedText.isEmpty()){

JOptionPane.showMessageDialog(null,”Please enter a string to encrypt”);

}

Else

The same if statement is used as the encrypt button to make sure that the decrypt button doesn’t work and decrypt an empty string.

Once the user clicks on the encryption algorithm that they want to use the user can type a word and can click on the encrypt button. The text box on the left will show what the original message was and the text box on the right would show what the plain text looks like in encrypted form.

try{

String plainText = this.plainText.getText();

if(plainText.isEmpty()){

JOptionPane.showMessageDialog(null,”Please enter a string to encrypt”);

}

else {

String encryptedText = aesAlgo.encrypt(plainText);

encryptResult.setText(encryptedText);

}

}catch (Exception e){

e.printStackTrace();

}

The code above is showing a try and catch block where it the program thinks an exception might occur. A try block is always followed by a catch block which is handling the exception of encrypting the data.

When the decrypt button is clicked the text will go back to the original text that the user first entered as can be seen on the left and right textboxes. Also when the button is clicked a popup box will appear giving a brief introduction on AES encryption algorithm for the user to read.

try{

String encryptedText = encryptResult.getText();

String plainText = aesAlgo.decrypt(encryptedText);

encryptResult.setText(plainText);

System.out.println(“AES Algorithm “);

if(encryptedText.isEmpty()){

JOptionPane.showMessageDialog(null,”Please enter a string to encrypt”);

}

else {JOptionPane.showMessageDialog(null,”AES Algorithm ”

+ “AES is a mathematical algorithm that is used to conceal information so that is hidden from computer users who haven’t got access whether it is stored or in transit. “+” ”);

}

} catch (Exception e){

Another try and catch block is needed but this time it will be in reverse to the first encrypt button. The decrypt button will be doing the opposite to what the encrypt button was doing as it will need to bring the encrypted string back into readable form. The code above also includes an if statement based on if the encrypted text field is empty and error message will appear and in the else statement is where the brief explanation of the encryption algorithm in question is written.

4.1 Sending emails

If the email text field is left blank and the send button is clicked there will be an error message which will appear saying to enter a working email. This error message will also appear when an email address doesn’t match the description of an email address.

if (!(Pattern.matches(“^[a-zA-Z0-9]+[@]{1}+[a-zA-Z0-9]+[.]{1}+[a-zA-Z0-9]+[.]{1}+$”, Email.getText()))){

JOptionPane.showMessageDialog(null, “Please enter a working email”, “Error”, JOptionPane.ERROR_MESSAGE);

}

The if statement would compare what the user has entered and see if it matches the pattern that has been set as an email template. The if statement would check the email matches and if it doesn’t a pop up will appear saying to enter a working email.

As shown the email that is entered is showing hanad15@hotmail.co.uk being entered and being accepted. The pop up that appears is that the email address is working and the email has been sent. Once the pop up box is closed down the email would be sent to the email address that the user has given.

else{

JOptionPane.showMessageDialog(null, “The email is working”, “OK!”, JOptionPane.INFORMATION_MESSAGE);

}

This is the else statement that will show If the email is ok and has been accepted.

The email had been sent congratulating the user for completing level 1 of the crypto-analysis learning application. The certificate can be used as proof for the user to show they have indeed taken the learning application class.

public class SendEmail {

private static String USER_NAME = “hanad4123”;  // GMail user name     private static String PASSWORD = “hanad123”; // GMail password

The code above shows how the email is sent to the user. The email is sent from an email I created and has sent an email to an address of my choice. What is above is the email and password that is being used to send emails to the users. The code will then follow through the different layers and will use the SMTP protocols so that the email can be sent.

private static void sendFromGMail(String from, String pass, String[] to, String subject, String body) {

Properties props = System.getProperties();

String host = “smtp.gmail.com”;

props.put(“mail.smtp.starttls.enable”, “true”);

props.put(“mail.smtp.host”, host);

props.put(“mail.smtp.user”, from);

props.put(“mail.smtp.password”, pass);

props.put(“mail.smtp.port”, “587”);

props.put(“mail.smtp.auth”, “true”);

This can be seen in the appendix.

5.1 Testing

I will be putting my application through a testing process before comparing it will an existing application.

By doing unit testing it will allow me to test the functionality of my program and certain places in my code.

The table below shows the different tests that were conducted.

5.2 Test table

NO Test Input Data Expected Outcome Actual Outcome Changes made
1 Encrypt Button is pressed without text entered No input data entered A pop up error message should appear Pop up message N/A
2 Decrypt Button is pressed without text entered No input data entered A pop up error message should appear Pop up message N/A
3 Leaving email field blank before clicking send No input data entered A pop up error message Pop up error message N/A
4 Entering random letters and numbers into email field h@dgfdg@.com Error message to enter a correct email address Pop up box to enter a real email address N/A
5 Entering text into the decrypt field before clicking decrypt “Hello” Error message to enter text into plain text field to encrypt Once decrypt is clicked nothing happens. The data doesn’t encrypt nor decrypts. *1 N/A

Getting feedback back from a child who used my application to learn about cryptology. The user felt that the application was difficult to follow what was happening on the screen and a tutorial explaining how to use the application would have been much needed. The user also felt that the information that was displayed was very basic and there wasn’t a way to test the users understanding on cryptology before handing a certificate congratulating the user on passing the level. The user also felt that there should be a quiz after every level and the way you would progress is by pass the quiz that is taken.

5.3 Comparing my application to an existing application

Another stage of my testing would be comparing my application to an existing application and using it as a benchmark to see how good my learning tool is.

The criteria that I will be looking to compare my application will be testing it against CrunchZilla.

Crunchzilla is a very simple programming tutorial learning tool that uses live javaScript. The reason why Crunchzilla is intentioned to teach kids about the basics and complications of code. The program can also be used to teach adults about programming as well. The way CrunchZilla has its application developed is that lesson will start simple and will get more complex as the lessons go on. This is a way to make everyone learn at their own pace as there will be users who will fly through the lessons understanding everything they see while other users will slower and take their time understanding each thing before moving on to the next level. User can close the code monster and start again exactly where they left once they are ready to come back as long as the user uses the same computer as he did the previous lessons on. The application will also not all be about coding as it is aimed for kids and they can play around with the user interface of the learning tool.

Comparing my application to this made my application seem quite insignificant as the CrunchZilla application put the user’s interest first. By creating a system that appeals to the user it gives them a base to build from. The tutorials that CrunchZilla uses is very good as it very quick and made as simple as possible for the user to understand. My learning application was lacking a tutorial and didn’t really show how the user would need to use my application.

I believe the tests that I have taken place has been sufficient not only in testing the functionality of my code but also the usability of the user interface. By comparing my application to one that is fully developed it gives me ideas on how I could improve and further develop mine if I had the time. Also by looking at a critic is makes me takes the criticism and improve the application to make it accessible and usable for all users.

6.1 Evaluation

In this chapter I am going to evaluate my project and I will be looking at certain key points.

I will be evaluating my project against the aims and objectives that I outline in the beginning of the report.

Most of the objectives that I had listed in the beginning of the report has been met. There is a fully responsive user interface which allows the user to interact with the application. The main objective was to make a learning tool where a user can see encryption and decryption taking place before getting a brief explanation on the encryption algorithm they are using. Once they look at that an email does get sent to the user.

One of the main objectives that I didn’t met was to set up blowfish and des to the user interface. So if the user does click on those as their learning application nothing would happen as the radio buttons wasn’t linked. This was quite difficult to do as I couldn’t quite manage to link my radio buttons to the different classes.

What my application does well is that the user interface is kept simple which improves usability on the learning tool as it was originally designed for children using it. There are error messages which appears if certain things which are not correct are done to the learning application. So if a field is left blank or text is entered into the wrong field or the email doesn’t match the pattern of a standard email then certain pop up boxes will appear to let the user know what they are doing is wrong and the system wasn’t intended to be used for that.

Due to time constraints the additional objectives that I couldn’t complete was to try to create a network between the two interfaces that when the users have an understanding of encryption that they would face each other in a quiz based on encryption algorithms AES, DES and blowfish that they have learnt about. This isn’t fully necessary to the overall functionality of my application but I felt if I added this to my learning tool it would have taken my project to the next level.

One of the features that I wasn’t completely happy with is that the user interface of the application was kept with standard colours as using black and white. What could have been changed is the design by making it more eye-catching to the children who would be using the learning tool it would have made them more attentive to the application.

The most important part of this learning application was to create a learning tool which would have high usability and does most of the requirements to make a fully functional system. Looking at a student’s point of view I think the learning application was good and achieved what it set out to do. From a professional point of view it doesn’t reach the high standard by the existing learning application which are currently developed and being used today.

6.2 What I would do differently

If I had a chance to redo the project there will be certain aspects of the learning application that I would change for the better. The first problem that I would address is the lack of interaction that the user can do. In the application there is a lack of interaction that the user can partake in and it is a fairly basic application. By adding more levels to it would have strengthened the application as well as adding more details to the user interface. To make it more eye catching and appealing to the children who would be the main audience of my learning application.

Another thing I would have done better would have been the way I managed my time. My time could have been managed efficiently as I felt that the project I undertook wasn’t managed in the best possible way.

6.3 Future work

There were certain additional objectives that were not implemented and were considered desirable features. The features wouldn’t have impacted the performance of the learning application. The functionality of the application works and is a completed learning application. The following ideas are features that could be added in a future release on how to take the learning application to the next level.

The first thing that could be added is a tutorial which explains to the user what the point of the learning application is. It would also give a quick run through the application to help the users understand and use the learning application properly rather than using their initiative on how the application works.

The next feature I would add would be adding a quiz to the end of encrypt class. After each level before the certificates would be handed out the users would need to take a quiz to test them on the things that they have learnt about. Once passed then that is when they would receive their email and if they don’t they wouldn’t be able to move past that level until they pass the quiz.

The biggest feature that I would add to the future work is to put the learning application on a network and make it so that two users can take a quiz against each other on cryptology and whoever gets the more marks in the quiz would move to the next level whilst the user who lost would be kept on the same level until a quiz against another user is won.

There will also be a friends level and they would be playing in a private network and they would be able to move to any level and test each other on cryptology.

Another future improvement is more encryption algorithms could be introduced such as Serpent, MARS and Twofish. By introducing more encryption algorithms to the application it will give the user larger knowledge about different algorithms plus a chance to compare and see what is the best encryption algorithm. Another thing I could improve is give the users a chance to see the code and allow them to interact with the code so they understand what each line of code does.

7.1 Conclusion

To conclude I feel that this project has been a success to the large part. Most the objectives that were first mentioned has been achieved and the system works. Extensive research was gathered which was very beneficial to my decision making on how the system would look like and how the user would interact with it. The learning application that I developed is considered in prototype phrase. The skills and knowledge that I acquired when doing my report has given me motivation to take the project further on and try and create the learning application with the future improvements. As I believe the world is missing a learning application which teaches cryptology. By spending more time to complete the project including the additional features it would be considered as a professional learning tool. The application was tested against a test plan to test the functionality of the product. There was an opinion from a user of the application and it was compared with another learning application. I felt that I have improved my knowledge in encryption, decryption stages, java on how to create an application and how to build a user interface.

Bibliography

Anon, (2017). [online] Available at: http://www.nature.com/nature/journal/v399/n6736/full/399533a0.html [Accessed 11 Apr. 2017].

Comparison of DES, b. (2017). Comparison of DES, Triple DES, AES, blowfish encryption for data. [online] Stackoverflow.com. Available at: http://stackoverflow.com/questions/5554526/comparison-of-des-triple-des-aes-blowfish-encryption-for-data [Accessed 9 Apr. 2017].

Copybook.com. (2017). Military Encryption in the Armed Forces Today. [online] Available at: https://www.copybook.com/companies/crypto-ag/articles/military-encryption-in-the-armed-forces-today [Accessed 20 Mar. 2017].

cryptography?, W. (2017). What do key size and block size mean in cryptography?. [online] Security.stackexchange.com. Available at: https://security.stackexchange.com/questions/15767/what-do-key-size-and-block-size-mean-in-cryptography [Accessed 14 Apr. 2017].

Daemen, J. and Rijmen, V. (2002). The design of Rijndael. 1st ed. Berlin [u.a.]: Springer.

En.wikipedia.org. (2017). EFF DES cracker. [online] Available at: https://en.wikipedia.org/wiki/EFF_DES_cracker [Accessed 13 Apr. 2017].

Javamex.com. (2017). Cite a Website – Cite This For Me. [online] Available at: http://www.javamex.com/tutorials/cryptography/BlockCipherEncryptionTimes.png [Accessed 16 Apr. 2017].

Networksorcery.com. (2017). RFC Sourcebook. [online] Available at: http://www.networksorcery.com/enp/default.htm [Accessed 15 Mar. 2017].

Schneier.com. (2017). Another New AES Attack – Schneier on Security. [online] Available at: https://www.schneier.com/blog/archives/2009/07/another_new_aes.html [Accessed 23 Apr. 2017].

Schneier.com. (2017). Schneier on Security: Twofish. [online] Available at: https://www.schneier.com/academic/twofish/ [Accessed 14 Apr. 2017].

SearchSecurity. (2017). What is Blowfish? – Definition from WhatIs.com. [online] Available at: http://searchsecurity.techtarget.com/definition/Blowfish [Accessed 19 Apr. 2017].

SearchSoftwareQuality. (2017). What is cryptography? – Definition from WhatIs.com. [online] Available at: http://searchsoftwarequality.techtarget.com/definition/cryptography [Accessed 10 Mar. 2017].

Upload.wikimedia.org. (2017). Cite a Website – Cite This For Me. [online] Available at: https://upload.wikimedia.org/wikipedia/commons/thumb/7/76/AES-MixColumns.svg/320px-AES-MixColumns.svg.png [Accessed 16 Apr. 2017].

wiseGEEK. (2017). What Is AES Encryption? (with picture). [online] Available at: http://www.wisegeek.com/what-is-aes-encryption.htm [Accessed 23 Apr. 2017].

wiseGEEK. (2017). What is Cryptography? (with pictures). [online] Available at: http://www.wisegeek.org/what-is-cryptography.htm [Accessed 11 Apr. 2017].

wiseGEEK. (2017). What is Encryption? (with pictures). [online] Available at: http://www.wisegeek.com/what-is-encryption.htm [Accessed 2 Apr. 2017].

^ “DES Cracker Project”. EFF. Retrieved July 8, 2007. On Wednesday, July 17, 1998 the EFF DES Cracker, which was built for less than $250,000, easily won RSA Laboratory’s “DES Challenge II” contest and a $10,000 cash prize.

Gannon, James (2001). Stealing Secrets, Telling Lies: How Spies and Codebreakers Helped Shape the Twentieth Century. Washington, D.C.: Brassey’s. ISBN 1-57488-367-4.

Cryptography: Theory and Practice, Third Edition (Discrete Mathematics and Its Applications), 2005, by Douglas R. Stinson, Chapman and Hall/CRC

“UK Data Encryption Disclosure Law Takes Effect”. PC World. 1 October 2007. Retrieved 26 March 2015

Singh, Simon (1999). The Code Book. Doubleday. pp. 279–292.

Anon, (2017). [online] Available at: https://www.quora.com/What-is-NetBeans-used-for [Accessed 25 Apr. 2017].

Baker, F. (2017). Learning styles in children. [online] Kidspot.com.au. Available at: http://www.kidspot.com.au/school/primary/learning-and-behaviour/learning-styles-in-children [Accessed 10 Apr. 2017].

Jstor.org. (2017). The Relationship between Learning Styles/Multiple Intelligences and Academic Achievement of High School Students on JSTOR. [online] Available at: http://www.jstor.org/stable/40364506?seq=1#page_scan_tab_contents [Accessed 8 Apr. 2017].

MakeUseOf. (2017). 10 Tools To Get Kids Excited About Programming. [online] Available at: http://www.makeuseof.com/tag/10-tools-to-get-kids-excited-about-programming/ [Accessed 8 Apr. 2017].

Netbeans.org. (2017). NetBeans IDE – Overview. [online] Available at: https://netbeans.org/features/ [Accessed 15 Apr. 2017].

Uab.edu. (2017). Visual Aids. [online] Available at: http://www.uab.edu/uasomume/fd2/visuals/page1.htm [Accessed 11 Apr. 2017].

Appendix

AES encryption algorithm

Encrypt

Send email for certificate

DES encryption algorithm

Users

Blowfish

Use Case Descriptions

Use case Encrypt

Actors – users

Goal to allow a string to be encrypted

Precondition an encryption algorithm has to be selected

Summary users would need to highlight an encryption algorithm before encrypting strings.

Steps – main flow:

Actor action System response
  1. User chooses an encryption algorithms
  1. System would recognize the encryption algorithm and would encrypt the data

Steps – exceptional flow 1

Actor action System response
  2.             No text entered 

Error message go back to step 1.

Steps – exceptional flow 2

Actor action System response
2 error message highlight an encryption algorithm.



Recommendation
With Our Resume Writing Help, You Will Land Your Dream Job
Resume Writing Service, Resume101
Trust your assignments to an essay writing service with the fastest delivery time and fully original content.
Essay Writing Service, EssayPro
Nowadays, the PaperHelp website is a place where you can easily find fast and effective solutions to virtually all academic needs
Universal Writing Solution, PaperHelp
Professional Custom
Professional Custom Essay Writing Services
In need of qualified essay help online or professional assistance with your research paper?
Browsing the web for a reliable custom writing service to give you a hand with college assignment?
Out of time and require quick and moreover effective support with your term paper or dissertation?