Computer

Science

 

 

26

HASHING 101

Daniel Atwood ‘04

Faculty Advisor: Professor Chris Armen (Computer Science)

 

Hash coding, or simply hashing, refers to a method for providing easy access to individual data items which are distinguished by a value called a key. Given a key, a hash function will output a hash value, which is then used as the index for determining where in the hash table that item should be placed. When two items hash to the same space in the table, a collision occurs. This Java applet illustrates the relative benefits of three forms of collision resolution; linear probing, quadratic probing and double hashing. The applet takes as input the desired number of available spaces for inserting items.  It also requests either a selection of one of several predetermined sets of items, each used to illustrate specific benefits of the different forms of collision resolution, or an integer indicating the number of items that should be randomly generated by the applet itself. The applet then inserts the items into an array three times, using the three methods of collision resolution, and outputs information regarding the relative performance of each method. Hashing 101 was implemented as an online applet in order to provide easy access by computer science students wishing to learn more about collision resolution.

 

 

 


27

AUTOSTEREOGRAM GENERATION

Alexandra Benjamin04                

Faculty Sponsor: Professor Ralph Morelli (Computer Science)    

 

Autostereograms are pictures created by manipulating pixels and colors so that when viewed correctly a three-dimensional image is seen within the two-dimensional surface image. People are generally most familiar with the Magic Eye books that became popular in the early 1990’s. The program I’ve created consists of an algorithm that will do this manipulation given a grayscale depth image as input. The algorithm is based off of information on pattern repetition and how the brain and eyes process information. It reads the depth image and depending on whether adjacent pixels are lighter or darker than one another an insertion or deletion is made to the repeating pattern. The insertions and deletions are what create the different levels in the three-dimensional image. The end result is a bitmap file of the same size as the input file that you began with.

 

 

28

A FRAMEWORK FOR ENABLING RAPID DATA MINING OF FUNCTIONAL IMAGING DATA VIA MATLAB

Alvin Chon04                

Faculty Sponsor: Professor Chris Armen (Computer Science)    

Vince Calhoun PhD, Olin Neuropsychiatry Research Center, Institute of Living, Hartford Hospital

 

Currently, the field of neuro-imaging utilizes many methods for data collection and analysis.  Different types of studies require varying tasks which utilize diverse types of images.  These images are used to derive information on the brain or ‘features’ related to the study.  MATLAB, coupled with SPM, is the standard analytical tool.  The project implements the ability of MATLAB simplified over the web.  It also allows researchers to draw from the extensive image database at the Olin Neuropsychiatry Research Center as well as upload images.  The researcher can then analyze images using the set paradigms and/or suggest new analytical processes.  This will allow researchers from all over the world to derive ‘features’ on pooled data at a single web site built with analytical processes contributed from the community of researchers.

 

 

 


29

ELECTRONIC ELECTIONS

Siddhartha Dabral04                

Faculty Sponsor: Professor Chris Armen (Computer Science)    

 

Electronic elections have swept the nation, and in the spirit of the technologically revised voting schema, I have decided to create a software platform that can be used as a voting package.  The software package will, in this case, be specialized to the parameters of Trinity’s Student Government elections.  The package will feature a user friendly interface (coded in Graphical Java), that will allow a voter to fill out their ballot, and cast their votes.  The data will be transferred to a database via JDBC technology and stored and updated using MySQL server.  The election platform will also allow administrative access to the election supervisors, which will allow them to create ballots yearly as well as see various election demographics.

Along with the Electronic Election Software Platform, there will be a paper describing election security, integrity, and privacy (i.e. voter privacy) issues in electronically hosted elections, and how the software package handles these concerns.

 

 

30

AUTONOMOUS ROBOT OBSTACLE AVOIDANCE VIRTUAL INSTRUMENT

Trishan deLanerolle ‘04               

Faculty Sponsor: Professor Ralph Morelli (Computer Science)    

 

ALVIN is an unmanned ground vehicle designed by the Trinity College Robot Study Team (RST) to compete in the Intelligent Ground Vehicle Competition (IGVC), an annual event sponsored by the Association for Unmanned Vehicle Systems International (AUVSI).The competition consists of three parts. The first is a design competition in which the teams are judged on a paper and presentation of the overall robot design. The autonomous challenge requires the robot to successfully navigate a path marked by white lines while avoiding obstacles. Finally, in the navigation challenge the robot must find waypoints using GPS coordinates while again avoiding obstacles. The RST is currently working on the new generation of ALVIN for the 2004 IGVC. The project involves the development of a reusable software component for obstacle avoidance. The application created includes an ultrasonic sensor array simulator and an implementation of a decision making algorithm returning appropriate control commands to the robot. The final application will be incorporated into ALVIN for the autonomous vehicle challenge and the navigation challenge. The obstacle avoidance system will use data acquired from visual camera’s and sonar sensors to determine a path upon which to negotiate around the obstacles.  The software is to be developed using National Instruments LabVIEW 7.0 utilizing Labview Real-Time hardware along with Data acquisition (DAQ) boards to interface ultrasonic sensors and other tertiary sensors.  The ultrasonic data gives the exact position and size of obstacles in front of the robot. The sensors are read sequentially from left to right every second to build an output similar to a radar sweep. These data items are then merged together to form a map of the environment around the robot of approximately 80 degrees from the left to right side of the robot with in a distance of 10 meters.


31

SPAM DETECTION USING STATISTICAL AND PROBABILISTIC METHODS

Eric Donald ‘04                

Faculty Sponsor: Professor Ralph Morelli (Computer Science)    

 

Identifying junk mail is a very manual process for most casual users but it is an intensely manual process for business people.  The process of eliminating junk e-mail is not new.  However, as more computer users become technically proficient in their use of computers, the more advertisers, who are the largest senders of junk e-mail have come to realize that they have an increasingly captive audience.  This project investigates the widely utilized heuristic or rule based spam filtering methods and compares them to a probabilistic approach using a Bayesian statistical filter.  The Bayesian method used in filtering, or text classification is based on an 18th century theorem on conditional belief based probability – or the probability of one’s belief in event x given y evidence.  An open source code product, JavaBayes, will be used on e-mail words tokenized to illustrate the performance comparisons of Heuristic versus Statistical e-mail filtering.  Another open-source product, SpamBayes, will be used to illustrate the actual functioning of a Bayesian filter from within Microsoft Outlook.

 

 

 

32

The Future of Bluetooth Technology

Michael Doros04                

Faculty Sponsor: Chris Armen (Computer Science)    

 

Bluetooth technology is a short-range wireless communication that was originally designed to eliminate cables between a cell phone and a computer. However, as technology grew manufacturers found that Bluetooth could be implemented in many more communication settings. Today, Bluetooth is not only used as a simple cable replacement in keyboards, mouses, PDAs, and cell phones, but also for the means of establishing small ad hoc networks between electronic devices. Some of the devices becoming parts of networks are no longer a computer or PDA, rather automobiles, kitchen appliances, washers and dryers.

The need for a wireless communication technology of this kind is evident; however, in addition to Bluetooth are many other technologies such as 802.11, X10, and Infrared. This research project looks at the current and future states of Bluetooth in comparison to not only other technologies, but also world events that could affect the future of Bluetooth technology.

 


33

ENIGMA

Meghan Emilio ‘04                

Faculty Sponsor: Professor Ralph Morelli (Computer Science)    

 

Commonly referred to as Enigma, the German Enigma Machine is a three rotor, poly-alphabetic encryption machine that was widely used in military and commercial applications up to the 1950s.  Enigma has historical importance as it was used by both the German Navy and Army during World War II, and the breaking of Enigma code by the Allies was credited as a turning point in the war.  This project is a study of the ability for modern day computers to break Enigma messages.  First, a computer simulation of an Enigma machine was created.  Then the simulation was used to build a computer program to break Enigma messages.  This program was tested on data of varying size for effectiveness and efficiency.  The program was able to break Enigma messages of substantial length with great effectiveness and relative efficiency, thereby showing the ability of computers to break Enigma.  These findings imply that Enigma is an inadequate form of encryption for the present day.

 

34

BED MANAGEMENT DATABASE VITAL SIGNS MONITOR FOR THE POCKET PC

Brad Feld04                

Faculty Sponsor: Professor Madalene Spezialetti (Computer Science)    

 

Most hospitals today manage an increasing number of patients with insufficient tools such as paper, whiteboards and phone calls to accurately match bed availability with patient needs. The Bed Management Database (BMD), created by Premise Development Corporation is an enterprise-wide system that interacts with all departments throughout the healthcare system to automate the bed and patient management process. The BMD contains a wealth of information about the hospital regarding patient flow status and unit statistics. The Vital Signs Monitor adds the ability for hospital employees to quickly view pertinent information on a Pocket PC. The feature is implemented via client and server side applications, which interact with the hospital’s BMD database. The client and server applications are written in LabVIEW 7.0 using the LabVIEW PDA Module. SQL Server 2000 is used to implement the BMD database. The system allows a Pocket PC to make an 802.11b wireless connection to the hospital’s network. Over this connection, login information and database requests are sent to the server. The server processes requests, queries the SQL database, runs formatting algorithms on data, and sends data back to the client. The Pocket PC displays the data in the form of tables and indicators.

 

 


35

COMPUTER GENERATED ART

Sam Graefe ‘04               

Faculty Sponsor: Professor Ralph Morelli (Computer Science)    

 

Computers have the ability to create images that are beyond the possibilities of traditional artistic methods in terms of complexity and speed.  It is also possible to follow the rules of traditional aesthetics, such as color theory, while generating such a computer image.  Based on these principles, this project is a user friendly computer program that helps create unique abstract images.  This project creates image types like fractals, tessellations, and random shapes as well as combinations of these.  However, the focus of this project is to create images that are practical in the sense that they are intended to exist beyond the computer screen.  For example, this project can create a complex plan for a glass tile mosaic that details what colors of tile are needed and exactly where they should be placed in an actual mosaic.  For another example, this project has the ability to create custom, unique compositions that are entirely made out of Post-it(R) notes of various colors.   For instance anyone can use this program to create a plan for a unique and visually stimulating 5’ by 8’ composition consisting of 660 Post-it(R) notes. Programmed in the Java language this program can be deployed as an applet through a web browser or as a stand alone application.  Beyond what is mentioned above, this project is designed to serve as a framework for future expansion and exploration.

 

 

 

36

A SOFTWARE SIMULATION OF AN AES-EQUIPPED 802.11X WIRELESS NETWORK

Matthew Grayson04                

Faculty Sponsor: Professor Takunari Miyazaki (Computer Science)    

 

Current wireless Ethernet networks have many well-known security flaws. The system in use, Wired Equivalent Privacy, has been deemed insufficient for providing security and is in the midst of being replaced. The 802.11i standard, which is currently being developed by IEEE to address current weaknesses, will use a security system based on the Advanced Encryption Standard (AES). The primary goal of this project is to evaluate the feasibility of using AES to encrypt frames (i.e., packets) in a wireless environment. A secondary goal is to explore the efficiency of implementing AES in software. The simulation being developed will properly model different aspects of a wireless environment. The simulation consists of two programs running on a single machine communicating through a text file that acts as the virtual air space. A third program will simulate errors that are inherent to a wireless network. The two communicating programs will be able to recover from such events. A 128-bit AES is being implemented in software. A public-key cryptosystem will be used to authenticate parties and establish a key for AES. The implementation will then be integrated with the 802.11x simulation to provide a secure virtual network providing authentication, confidentiality and integrity.

 

 


37

DISTRIBUTED RESOURCE MANAGEMENT

Daniel Gyllstrom04                

Faculty Sponsor: Professor Madalene Spezialetti (Computer Science)    

 

This project aims to monitor hard drive disk usage on remote machines from a single computer.  An application of this sort is practical in that many companies need to store their data on multiple storage devices because of the sheer volume of their data. With this distribution of resources, administrators need to manage these storage devices so that they can monitor resource efficiency and trends.  My project aims to create an application which could be applied in this situation.  The architecture of this system consists of two important components, the management station and several remote agents. The management station will scan remote hosts according to a user controlled scan schedule.  When a management station request is made via TCP/IP to agents installed on remote hosts, each agent acquires the appropriate operating system data and sends it back to the management station. The management station collects the resource data and checks it for threshold violations that have been configured by the user.  If a violation is detected, an alert is generated to the management station user.  The user communicates with the system through a user-friendly graphical user interface implemented by a Java Applet.  The resource data for all scans is logged in a MySQL database, enabling a history of resource usage to be captured and viewed.  Through this design, this project helps handle the basic management of network storage system. Furthermore, the development of this project was instructive in learning practical networking technology, and in understanding how to manage a distributed system. 

 

 

38

ONLINE DATABASE CREATOR

Dragan Levic04                

Faculty Sponsor: Professor Ralph Morelli (Computer Science)    

 

This is the age of information. The need to collect data is greater then ever. Best way to store large amounts of data is in a database. If database server is available from general internet public it is not very secure. There are many products available that would allow a user to access a database server that is located at some other location. If a person needs to work from home process to access this database becomes increasingly complicated. Program I wrote allows a user to create, manage and search through a database that is located in some distant location with ease. It is a server side run application which allows a user to connect to database securely from wherever in the world without much hassle of setting up a special connection. It can be used from any computer with internet connection. It is primarily made for people with no database servers to be able to create and maintain one, but it can also be used by firms to allow their workers to be able to work from home with more ease. It is open source program, which means that anyone can take my code and work with it to make the program adjust to some special circumstances or needs.

 

 


39

DOH! INSTANT MESSENGER FOR CORPORATE USE

Douglas Oh04                 

Faculty Sponsor: Professor Chris Armen (Computer Science)    

 

Instant messaging (IMing) has become synonymous with acronyms like AIM, ICQ and MSN and the corporate world has taken Iming to record levels of usage yet.  Instant messaging is the act of sending messages over the internet to another computer and instantly being able to see the message and having the capabilities to respond in the same fashion.  IMing is a cheap and easy way to communicate among consumers and the idea of businesses utilizing this tool is catching on quick.  The purpose of this project is developing software aimed toward corporations in need of a communications product that is controlled and regulated by the company’s IT department and can be secure, reliable, and customizable.  This software runs on a windows platform and is coded competely in Java with a XML backbone.

 

 

40

THE SIMULATION OF THE PURPLE MACHINE WITH A JAVA PROGRAM

A.J. Pattison07, Alex Spurrier07            

Faculty Sponsor: Professor Ralph Morelli (Computer Science)    

 

The PURPLE machine was used by the Japanese military during World War II to code messages and send these, secretly, to their embassies.  Two years into World War II a group of Americans, led by W.F. Freidman, cracked the PURPLE machine.  This led to insight not only about Japanese forces, but about the movement of Hitler’s troops as well.  The PURPLE machine consisted of two main components, the switchboard and a series of four rotors to encode the message.  The switchboard encoded the message in a simple substitution cipher, and then the rotors would further encode this message in a very arbitrary manner.  The rotors will turn in the same fashion as an odometer.  After twenty-six shifts of a rotor, the following rotor will shift once.  Therefore, there are twenty-six to the fourth power different possible pathways for each letter.  After the message is passed through the rotors, it cannot be analyzed using frequency analysis.  A Java program was written that simulates the PURPLE machine by implementing the PURPLE cipher.  This program simulates the switchboard by randomly assigning an alternate letter to each letter in the message.  Then, a series of four strings represent the four rotors of the machine.  These will allow the letter from the message to cycle through as it would in the original machine and be assigned another random letter.  The actual settings of the real machine are not known, so a randomly sorted alphabet is used to simulate each rotor.  This program is important because studying algorithms such as this leads to the study of how to break the cipher.  This could be further applied into another computer program that breaks this code as W.F. Freidman did sixty-five years ago.

 

 


41

IMPLEMENTATION OF THE RSA CIPHER

James Piette07, John Giammattei07            

Faculty Sponsor: Professor Ralph Morelli (Computer Science)    

 

The ‘RSA’ is a commonly used cipher because it has yet to be broken. The RSA cipher works because it uses a trapdoor function which is a function that may be performed one way, but can not be reversed. The particular function that ‘RSA’ cipher utilizes is the product of 100-digit prime numbers, because there are no algorithms that can factor that product. If a message is encrypted using the product of the prime numbers, only the two people that know the prime numbers can decrypt the message. This is all based on Euler’s Totient Theorem, which means that if two numbers, T and R, are relatively prime, with T being the smaller number, then when we multiply T with itself phi(R) times, and divide the result by R, the remainder will always be one. The function phi(R) is the number of numbers between 1 and (R-1) that are relatively prime to R. Using these ideas, Java applications were written to mimic the RSA cipher. What this all entails is that, even though public keys are being exchanged between the encoder and decoder, if an observer does not have access to the necessary private keys, than the message can not be deciphered, which is why the RSA cipher is applicable to today’s technological world.

 

 

42

THE INDEPENDENT MUSICIAN'S WEBSITE

Hope Roth04                

Faculty Sponsor: Professor Madalene Spezialetti (Computer Science)    

 

The World Wide Web is a fantastic medium for meeting new people with common interests. The project is a web site geared at Independent Musicians (those without a major label affiliation). The goal is to create a forum where musicians can search for other musicians in order to meet new people, find new band mates, trade equipment and advertise performances. Users create an account with a username, password and basic personal information. They are then able to log into the site in order to access the various features. The site is coded in the scripting language PHP with a backend MySQL database. The entire project is served off of a personal computer, a G5 Macintosh. It uses the built-in Apache web-server with PHP enabled. The project consists, mainly, of a series of HTML forms, PHP scripts to handle the forms and queries to insert, update and retrieve information from the MySQL database.

 

 


43

TEACHER COMPUTING COMPETENCIES SELF-EVALUATION TOOL

Karen Roy ‘04                 

Faculty Sponsor: Professor Chris Armen (Computer Science)    

 

The Teacher Computing Competencies Self-Evaluation Tool is an application that provides schools with a means of assessing teacher competency in computing. The Connecticut State Department of Education (CSDE) has developed certain criteria, which schools across the state are required to meet in their Technology Plans. One section of the criteria requires that the schools have a strong evaluation component, including Technology Competency expectations for students, teachers and administrators. This reflects the requirements set forth in President Bush's No Child Left Behind (NCLB) policies to support education practices with real data.  Schools across the state of Connecticut are in a need of an evaluation process, through which teachers and administrators can input their growing knowledge in the areas itemized in the applicable State Technology Competencies. The Teacher Computing Competencies Self-Evaluation Tool requires teachers to annually enter their level of ability in a number of areas. From these entries, both administrators and staff are able to get data on the progress being made in many areas of computing within a school system. The resulting data is able to show growth patterns over years as the educational staff within a school system develops new skills in technology. The creation of this evaluation tool has utilized Filemaker Pro, AppleScript and various layout and evaluation techniques.

 

 

44

fatChicken.com: A BARTER/TRADE E-COMMERCE SITE FOR UNIVERSITY STUDENTS

Jacob Schneider04                

Faculty Sponsor: Professor Chris Armen (Computer Science)    

 

University students have a great deal of excess possessions: DVDs, CDs, video games, etc. The purpose was to build an operational website that provides users (initially college/university students) with a virtual marketplace to trade these objects. Research in software architecture, human-computer interaction and design theory contributed to its development. fatChicken.com is built in three layers. From top to bottom: the user interface (HTML/Java Server Pages); the application/business logic (JavaBeans); and the backend database (mySQL). The site is Linux-based (RedHat 9.0) and uses Apache (3.0), Tomcat (4.0) and mySQL (3.x) servers. fatChicken.com physically runs on a 3 GHz Pentium 4 CPU; a 80 GB hard drive; and 512 MB of RAM. During a beta-test in mid-March, fatChicken.com performed flawlessly with over 20 active users owning 70 items and proposing 25 trades. No data was lost, corrupted or compromised. Based upon these trials, fatChicken.com may go live in mid-April.

 

 


45

PREDICTIVE HORSE RACE HANDICAPPING WITH NEURAL NETWORKS

Andrew Schurr04                

Faculty Sponsor: Professor Ralph Morelli (Computer Science)    

 

A neural network is an artificial intelligence construct that mimics the neuron structure of the human brain. Using neural networks, we can solve many problems of learning and prediction that have proved resistant to other methods. This project attempts to predict the results of thoroughbred horse races using a back-propagation neural network. The network takes various pieces of publicly-available horseracing data as inputs and passes them through a series of simulated neurons. Each neuron “fires” according to its internal weight, passing data through the network’s structure and eventually resulting in a numerical output that predicts the finish order of the horses.  Through a series of training cycles where the expected output is known, the individual weights in the network are gradually adjusted to produce more accurate output results. The inputs for the network include previous race times for each horse, track odds, speed figures, as well as several sets of win/loss records for each horse, trainer, and jockey. Early results indicate that this type of network has some predictive ability, correctly picking around 25-35% of winners, although the full extent is still being explored.

 

 

 

46

AN EMPIRICAL STUDY OF THE USE OF AN NGRAM BASED GENETIC ANALYZER FOR BREAKING POLY-ALPHABETIC CRYPTOGRAMS

William Servos06                

Faculty Sponsor: Professor Ralph Morelli (Computer Science)    

 

Genetic algorithms (GAs) are programs that use simulated evolution for solving search and constraint satisfaction problems.  In this study, I use a GA to solve poly-alphabetic cryptograms.  Poly-alphabetic cryptograms use a rotation of random permutation alphabets to encrypt a message, where there is a different alphabet for each character in the shift keyword.  This increases their complexity when compared with simple substitution cryptograms, which only use one permuted alphabet for encryption.  A permuted alphabet has n! possible arrangements, where n is the number of elements in the original alphabet.  A poly-alphabetic cryptogram has as many possible arrangements for each distinct alphabet it uses.  Utilizing a Java encoded tetra-gram, a four letter sequence, based analysis; I conducted empirical tests to determine the range of effectiveness of my algorithm on keys of varying complexity over a variety of text lengths.  The length and variance of the characters in the alphabet shift key was tested.  Similarly, the content and length of the text decrypted was varied to test the general effectiveness of the algorithm.  It was found that increasing the shift key’s length caused a great drop in the success rate of the algorithm.  It was also found that the length of the text analyzed greatly affected the success, particularly on longer shift keywords.  This project was successful in determining a general limit of effectiveness for the length of the shift keyword and a general minimum range of effectiveness for the length of the text analyzed.

 


47

VARIABLE ANNUITOOL

Rageim Walker ‘04               

Faculty Sponsor: Professor Takunari Miyazaki (Computer Science)    

 

Annuities are useful financial instruments.  Their tax-deferred status facilitates client’s ability to grow wealth.  They offer income and benefits that protect your investment and/or guarantee a rate of return.  Annuities are also very complicated.  When many clients enter into an annuity contract they have little idea of what they are getting into.  In many cases financial advisors are not even sure what they are selling and therefore can’t match individual clients with the proper annuity.  This project will help to resolve this discrepancy.  It will calculate the costs and benefits of owning a specific type of annuity in up and down markets in order to properly match an individuals risk and preferences to an appropriate annuity.  Java is used as the programming language for the project.  An applet will be created to accept user input and output results.  In its final stage, the program will potentially be used by financial firms or institutions to better guess the right investment for their clients or for clients to use themselves.

 

 

48

CONTENT-BASED IMAGE RETRIEVAL USING CORRELOGRAMS

Adam Williams ‘04

Faculty Sponsor: Professor Peter Yoon (Computer Science)

 

With the increasing disk capacity of modern computers, it is common practice to store large volumes of digital images.  In order to maximize the usefulness of this data,

it is necessary to have effective systems for searching these images based only on their visual content.  Content-based image retrieval systems aim to accomplish this goal.  Such systems generally work by first analyzing or “indexing” each image in the dataset in order to extract its distinguishing features.  This information, usually stored as a vector, is then placed in memory so it can be searched later.  Queries are performed by analyzing a query image to produce its vector representation and then comparing this vector to the ones already in memory to find the best matches.  The crucial step is the indexing; it must capture enough information to be useful while remaining small in size so that memory requirements are practical.  This project focuses on the development of a new indexing technique called a joint correlogram.  This method works by exploiting the statistical properties of several pixel-level image features such as color, gradient intensity and texturedness.  Specifically, given a certain pixel in the image, it computes the probability of finding another pixel with the exact same features at a certain distance from the given pixel.  The correlogram has been shown to be effective when the only feature considered is pixel color; we hope to show that incorporating additional features will improve its recall performance.  We will also compare this method to two older, similar methods known as color and joint histograms.  The tests will be performed on our own content-based image retrieval system with a dataset of 24,000 images of heterogeneo

 

 


49

IMPLEMENTATION OF A PUBLIC-KEY CRYPTOSYSTEM

William Zeller06                

Faculty Sponsor: Professor Takunari Miyazaki (Computer Science)    

 

Public-key cryptography is widely used today to protect information. The RSA cryptosystem is a type of public-key cryptosystem and uses the assumption that the product of two primes is extremely hard to factor. Many variations of the RSA cryptosystem have been proposed.  The goal of this project is to find ways to implement the system as efficiently as possible using the C programming language. In addition to implementing an RSA cryptosystem, this project included a prime number generator, functions to handle large numbers, and multiple modulo and multiplication functions.