Difference between revisions of "Team:Groningen/Software"

Line 14: Line 14:
 
that it provides. Two of the modules were not written by us, but
 
that it provides. Two of the modules were not written by us, but
 
used under an open source license. The AES module was written by
 
used under an open source license. The AES module was written by
Chris Veness at <a href="http://www.movable-type.co.uk/scripts/aes.html">Movable-Type.co.uk</a>
+
Chris Veness at <a href="http://www.movable-type.co.uk/scripts/aes.html">Movable-Type.co.uk</a>.
and the CRC implementation was written by
+
The CRC implementation was written by
 
Github user <a href="https://gist.github.com/chitchcock">chitchcock</a>
 
Github user <a href="https://gist.github.com/chitchcock">chitchcock</a>
 
and published as Github <a href="https://gist.github.com/chitchcock/5112270">Gist #5112270</a>.
 
and published as Github <a href="https://gist.github.com/chitchcock/5112270">Gist #5112270</a>.
Line 22: Line 22:
 
 
 
<section>
 
<section>
<h3>Encryption</h3>
+
<h3>Encryption &amp; Decryption</h3>
 +
 +
<p>For the encryption we don't use the AES module directly, but
 +
the AES.Ctr module. AES.Ctr implements the AES counter mode of
 +
operation. This allows us to encrypt messages of arbitrary length,
 +
rather than a fixed length of 256 bits, which is around 32 letters.</p>
 +
 +
<p>AES counter mode also adds randomness to the message. So the
 +
encrypted text is always different, even when the same message is
 +
encrypted multiple times. When the message is decrypted these random
 +
bits are removed, so the output message is still the same as the
 +
input.</p>
 +
 +
<p>The AES module is in <a href="/Template:Groningen/aes_js?action=raw&ctype=text/javascript">aes.js</a>
 +
and the counter mode addition is in <a href="/Template:Groningen/aes-ctr_js?action=raw&ctype=text/javascript">aes-ctr.js</a>.</p>
 +
</section>
 +
 +
<section>
 +
<h3>DNA</h3>
 
 
 
<p></p>
 
<p></p>

Revision as of 12:05, 15 September 2016

CryptoGE®M
Team
Project
Biology
Computing
Human Practice
Acknowledgements

Software

This article will explain in detail how the software part of CryptoGErM works. To encrypt the message and translate it to DNA we wrote several Javascripts. They are used in the demonstration of our software on the Coding page.

The software is divided into several modules, each in their own file. Every module creates a variable that contains the functionality that it provides. Two of the modules were not written by us, but used under an open source license. The AES module was written by Chris Veness at Movable-Type.co.uk. The CRC implementation was written by Github user chitchcock and published as Github Gist #5112270. All other code was written by us and is licensed under the MIT license.

Encryption & Decryption

For the encryption we don't use the AES module directly, but the AES.Ctr module. AES.Ctr implements the AES counter mode of operation. This allows us to encrypt messages of arbitrary length, rather than a fixed length of 256 bits, which is around 32 letters.

AES counter mode also adds randomness to the message. So the encrypted text is always different, even when the same message is encrypted multiple times. When the message is decrypted these random bits are removed, so the output message is still the same as the input.

The AES module is in aes.js and the counter mode addition is in aes-ctr.js.

DNA

Oop top