Page MenuHomec4science

Scheme.html
No OneTemporary

File Metadata

Created
Thu, Jan 2, 23:20

Scheme.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_17) on Fri Jan 10 14:26:15 CET 2014 -->
<title>Scheme</title>
<meta name="date" content="2014-01-10">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Scheme";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Scheme.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-files/index-1.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../FrameWork/RequestPatient.html" title="class in FrameWork"><span class="strong">Prev Class</span></a></li>
<li><a href="../FrameWork/Server.html" title="class in FrameWork"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?FrameWork/Scheme.html" target="_top">Frames</a></li>
<li><a href="Scheme.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">FrameWork</div>
<h2 title="Class Scheme" class="title">Class Scheme</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>FrameWork.Scheme</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="strong">Scheme</span>
extends java.lang.Object</pre>
<div class="block">The Class Scheme.</div>
<dl><dt><span class="strong">Author:</span></dt>
<dd>raisaro</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#canDecrypt">canDecrypt</a></strong></code>
<div class="block">The can decrypt.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#canEncrypt">canEncrypt</a></strong></code>
<div class="block">The can encrypt.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.math.BigInteger</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#g">g</a></strong></code>
<div class="block">The g.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.math.BigInteger</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#h">h</a></strong></code>
<div class="block">The h.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.math.BigInteger</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#n">n</a></strong></code>
<div class="block">The n.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.math.BigInteger</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#nsqr">nsqr</a></strong></code>
<div class="block">The nsqr.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.Random</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#prng">prng</a></strong></code>
<div class="block">The prng.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.math.BigInteger</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#x">x</a></strong></code>
<div class="block">The x.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../FrameWork/Scheme.html#Scheme(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger)">Scheme</a></strong>(java.math.BigInteger&nbsp;N,
java.math.BigInteger&nbsp;G,
java.math.BigInteger&nbsp;H)</code>
<div class="block">Instantiates a new scheme.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../FrameWork/Scheme.html#Scheme(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger)">Scheme</a></strong>(java.math.BigInteger&nbsp;N,
java.math.BigInteger&nbsp;G,
java.math.BigInteger&nbsp;H,
java.math.BigInteger&nbsp;X)</code>
<div class="block">Instantiates a new scheme.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.math.BigInteger</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#decrypt(java.math.BigInteger[])">decrypt</a></strong>(java.math.BigInteger[]&nbsp;cipher)</code>
<div class="block">Decrypts the given ciphertext, which was previously encrypted using
the public key given to this instance of the class.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.math.BigInteger[]</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#encrypt(java.math.BigInteger)">encrypt</a></strong>(java.math.BigInteger&nbsp;plain)</code>
<div class="block">Encrypts the given plaintext to produce ciphertext.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.math.BigInteger[]</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#encrypt(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger)">encrypt</a></strong>(java.math.BigInteger&nbsp;plain,
java.math.BigInteger&nbsp;gPOWr,
java.math.BigInteger&nbsp;hPOWr)</code>
<div class="block">Encrypts the given plaintext to produce ciphertext.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#gcd(long, long)">gcd</a></strong>(long&nbsp;first,
long&nbsp;second)</code>
<div class="block">Computes the greatest common denominator of two numbers.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.math.BigInteger</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#lcm(java.math.BigInteger, java.math.BigInteger)">lcm</a></strong>(java.math.BigInteger&nbsp;first,
java.math.BigInteger&nbsp;second)</code>
<div class="block">Computes the least common multiple of two numbers.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#lcm(long, long)">lcm</a></strong>(long&nbsp;first,
long&nbsp;second)</code>
<div class="block">Computes the least common multiple of two numbers.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.math.BigInteger[]</code></td>
<td class="colLast"><code><strong><a href="../FrameWork/Scheme.html#proxyDecription(java.math.BigInteger[])">proxyDecription</a></strong>(java.math.BigInteger[]&nbsp;cipher)</code>
<div class="block">Partially Decrypts the given ciphertext, which was previously encrypted using
the public key given to this instance of the class.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="canEncrypt">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canEncrypt</h4>
<pre>private&nbsp;boolean canEncrypt</pre>
<div class="block">The can encrypt.</div>
</li>
</ul>
<a name="canDecrypt">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canDecrypt</h4>
<pre>private&nbsp;boolean canDecrypt</pre>
<div class="block">The can decrypt.</div>
</li>
</ul>
<a name="x">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>x</h4>
<pre>private&nbsp;java.math.BigInteger x</pre>
<div class="block">The x.</div>
</li>
</ul>
<a name="g">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>g</h4>
<pre>private&nbsp;java.math.BigInteger g</pre>
<div class="block">The g.</div>
</li>
</ul>
<a name="h">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>h</h4>
<pre>private&nbsp;java.math.BigInteger h</pre>
<div class="block">The h.</div>
</li>
</ul>
<a name="n">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>n</h4>
<pre>private&nbsp;java.math.BigInteger n</pre>
<div class="block">The n.</div>
</li>
</ul>
<a name="nsqr">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nsqr</h4>
<pre>private&nbsp;java.math.BigInteger nsqr</pre>
<div class="block">The nsqr.</div>
</li>
</ul>
<a name="prng">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>prng</h4>
<pre>private&nbsp;java.util.Random prng</pre>
<div class="block">The prng.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Scheme(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, java.math.BigInteger)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Scheme</h4>
<pre>public&nbsp;Scheme(java.math.BigInteger&nbsp;N,
java.math.BigInteger&nbsp;G,
java.math.BigInteger&nbsp;H,
java.math.BigInteger&nbsp;X)</pre>
<div class="block">Instantiates a new scheme.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>N</code> - the n</dd><dd><code>G</code> - the g</dd><dd><code>H</code> - the h</dd><dd><code>X</code> - the x</dd></dl>
</li>
</ul>
<a name="Scheme(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Scheme</h4>
<pre>public&nbsp;Scheme(java.math.BigInteger&nbsp;N,
java.math.BigInteger&nbsp;G,
java.math.BigInteger&nbsp;H)</pre>
<div class="block">Instantiates a new scheme.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>N</code> - the n</dd><dd><code>G</code> - the g</dd><dd><code>H</code> - the h</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="encrypt(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encrypt</h4>
<pre>public&nbsp;java.math.BigInteger[]&nbsp;encrypt(java.math.BigInteger&nbsp;plain,
java.math.BigInteger&nbsp;gPOWr,
java.math.BigInteger&nbsp;hPOWr)
throws <a href="../FrameWork/CryptoException.html" title="class in FrameWork">CryptoException</a></pre>
<div class="block">Encrypts the given plaintext to produce ciphertext.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>plain</code> - the plain</dd><dd><code>gPOWr</code> - the g po wr</dd><dd><code>hPOWr</code> - the h po wr</dd>
<dt><span class="strong">Returns:</span></dt><dd>The encrypted value of the plaintext, modulo n^2.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../FrameWork/CryptoException.html" title="class in FrameWork">CryptoException</a></code> - CryptoException If the encryption cannot be performed or
there is an error while encrypting
the plaintext.</dd></dl>
</li>
</ul>
<a name="encrypt(java.math.BigInteger)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encrypt</h4>
<pre>public&nbsp;java.math.BigInteger[]&nbsp;encrypt(java.math.BigInteger&nbsp;plain)
throws <a href="../FrameWork/CryptoException.html" title="class in FrameWork">CryptoException</a></pre>
<div class="block">Encrypts the given plaintext to produce ciphertext.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>plain</code> - The plaintext.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The encrypted value of the plaintext, modulo n^2.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../FrameWork/CryptoException.html" title="class in FrameWork">CryptoException</a></code> - If the encryption cannot be performed or
there is an error while encrypting
the plaintext.</dd></dl>
</li>
</ul>
<a name="decrypt(java.math.BigInteger[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decrypt</h4>
<pre>public&nbsp;java.math.BigInteger&nbsp;decrypt(java.math.BigInteger[]&nbsp;cipher)
throws <a href="../FrameWork/CryptoException.html" title="class in FrameWork">CryptoException</a></pre>
<div class="block">Decrypts the given ciphertext, which was previously encrypted using
the public key given to this instance of the class. This method will
throw an exception if no decryption keys were defined.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>cipher</code> - The ciphertext.</dd>
<dt><span class="strong">Returns:</span></dt><dd>The decrypted value of the plaintext, modulo n.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../FrameWork/CryptoException.html" title="class in FrameWork">CryptoException</a></code> - If the decryption fails.</dd></dl>
</li>
</ul>
<a name="proxyDecription(java.math.BigInteger[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>proxyDecription</h4>
<pre>public&nbsp;java.math.BigInteger[]&nbsp;proxyDecription(java.math.BigInteger[]&nbsp;cipher)
throws <a href="../FrameWork/CryptoException.html" title="class in FrameWork">CryptoException</a></pre>
<div class="block">Partially Decrypts the given ciphertext, which was previously encrypted using
the public key given to this instance of the class. This method will
throw an exception if no decryption keys were defined. The private key used
must be part of the original private key</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>cipher</code> - the cipher</dd>
<dt><span class="strong">Returns:</span></dt><dd>The modified cipher text which can be finally decrypted by the other
part of the original private key</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../FrameWork/CryptoException.html" title="class in FrameWork">CryptoException</a></code> - the crypto exception</dd></dl>
</li>
</ul>
<a name="lcm(long, long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lcm</h4>
<pre>private&nbsp;long&nbsp;lcm(long&nbsp;first,
long&nbsp;second)</pre>
<div class="block">Computes the least common multiple of two numbers.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>first</code> - First number.</dd><dd><code>second</code> - Second number.</dd>
<dt><span class="strong">Returns:</span></dt><dd>LCM of the two numbers.</dd></dl>
</li>
</ul>
<a name="lcm(java.math.BigInteger, java.math.BigInteger)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lcm</h4>
<pre>private&nbsp;java.math.BigInteger&nbsp;lcm(java.math.BigInteger&nbsp;first,
java.math.BigInteger&nbsp;second)</pre>
<div class="block">Computes the least common multiple of two numbers.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>first</code> - First number.</dd><dd><code>second</code> - Second number.</dd>
<dt><span class="strong">Returns:</span></dt><dd>LCM of the two numbers.</dd></dl>
</li>
</ul>
<a name="gcd(long, long)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>gcd</h4>
<pre>private&nbsp;long&nbsp;gcd(long&nbsp;first,
long&nbsp;second)</pre>
<div class="block">Computes the greatest common denominator of two numbers.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>first</code> - First number.</dd><dd><code>second</code> - Second number.</dd>
<dt><span class="strong">Returns:</span></dt><dd>GCD of the two numbers.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Scheme.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-files/index-1.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../FrameWork/RequestPatient.html" title="class in FrameWork"><span class="strong">Prev Class</span></a></li>
<li><a href="../FrameWork/Server.html" title="class in FrameWork"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?FrameWork/Scheme.html" target="_top">Frames</a></li>
<li><a href="Scheme.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

Event Timeline