AiS Challenge Team Interim


Team Number: 66

School Name: Silver High School

Area of Science: Computer Science

Project Title: Encryption by Numbers



Problem Definition

The purpose of this project is to create a Java application that will encrypt and decrypt data or a small message. Though many people are not aware of it, encryption is used daily, whether it be an individual using a credit card to order products over the Internet, a top secret military code sent to troops across seas, or as simple as signing into an email account with a password. This increased use of encryption calls for a more secure and easier to use method of encryption. By encrypting data using matrix multiplication and random numbers, an ambiguous key can be created with very little effort.

Problem Solution

Two Java programs will be created to encrypt and decrypt data using matrix multiplication. The encyption program encrypts a message by first filling an array with the input message. Then, the message is scanned for each character, and the position(s) of a certain character fill a "character" matrix, with the ASCII code of the specific character appended to the end of its matrix. These matrices are then mulptiplied by an array filled with randomly generated numbers. The encrypted data that results consists of numerous arrays (one for each separate character in the message). To decrpyt the data, a program will take the encrypted matrices and the random matrix. By finding the inverse of the random matrix and multiplying the encrypted matrices by this, the original character matrices can be found and the message can be pieced back together.

Progress to Date

The Java application that encrypts data or messages has been created and successfully encrypts data using matrix multiplication. To encode each character, we decided to use the ASCII code, as it is a universally known computer language and would keep the character values (before decryption) constant. The encrypt program prints out the output code, which can be very long, depending on the length or complexity of the message. Before we will be able to create the program to decrypt this data, we must first incorporate into the encrypt program a class that will export the key (random matrices) and output code to a data file. This data file is vital in the creation of the decrypt function because the output code is so long that it would be very time consuming for a person to enter every value.

Team Members

Team Mail

Sponsoring Teacher(s)

Project Mentor(s)