Page MenuHomec4science

Scheme.html
No OneTemporary

File Metadata

Created
Thu, Jan 2, 22:48

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:10 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="../Crypto/PrimeGenerator.html" title="class in Crypto"><span class="strong">Prev Class</span></a></li>
<li>Next Class</li>
</ul>
<ul class="navList">
<li><a href="../index.html?Crypto/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">Crypto</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>Crypto.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>
<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="../Crypto/Scheme.html#canDecrypt">canDecrypt</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><strong><a href="../Crypto/Scheme.html#canEncrypt">canEncrypt</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.math.BigInteger</code></td>
<td class="colLast"><code><strong><a href="../Crypto/Scheme.html#g">g</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.math.BigInteger</code></td>
<td class="colLast"><code><strong><a href="../Crypto/Scheme.html#h">h</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.math.BigInteger</code></td>
<td class="colLast"><code><strong><a href="../Crypto/Scheme.html#n">n</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.math.BigInteger</code></td>
<td class="colLast"><code><strong><a href="../Crypto/Scheme.html#nsqr">nsqr</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private java.util.Random</code></td>
<td class="colLast"><code><strong><a href="../Crypto/Scheme.html#prng">prng</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private java.math.BigInteger</code></td>
<td class="colLast"><code><strong><a href="../Crypto/Scheme.html#x">x</a></strong></code>&nbsp;</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="../Crypto/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>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../Crypto/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>&nbsp;</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="../Crypto/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="../Crypto/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="../Crypto/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="../Crypto/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="../Crypto/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="../Crypto/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="../Crypto/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>
</li>
</ul>
<a name="canDecrypt">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canDecrypt</h4>
<pre>private&nbsp;boolean canDecrypt</pre>
</li>
</ul>
<a name="x">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>x</h4>
<pre>private&nbsp;java.math.BigInteger x</pre>
</li>
</ul>
<a name="g">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>g</h4>
<pre>private&nbsp;java.math.BigInteger g</pre>
</li>
</ul>
<a name="h">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>h</h4>
<pre>private&nbsp;java.math.BigInteger h</pre>
</li>
</ul>
<a name="n">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>n</h4>
<pre>private&nbsp;java.math.BigInteger n</pre>
</li>
</ul>
<a name="nsqr">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nsqr</h4>
<pre>private&nbsp;java.math.BigInteger nsqr</pre>
</li>
</ul>
<a name="prng">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>prng</h4>
<pre>private&nbsp;java.util.Random prng</pre>
</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>
</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>
</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="../Crypto/CryptoException.html" title="class in Crypto">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> - </dd><dd><code>gPOWr</code> - </dd><dd><code>hPOWr</code> - </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="../Crypto/CryptoException.html" title="class in Crypto">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="../Crypto/CryptoException.html" title="class in Crypto">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="../Crypto/CryptoException.html" title="class in Crypto">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="../Crypto/CryptoException.html" title="class in Crypto">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="../Crypto/CryptoException.html" title="class in Crypto">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="../Crypto/CryptoException.html" title="class in Crypto">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> - </dd><dd><code>x1</code> - </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="../Crypto/CryptoException.html" title="class in Crypto">CryptoException</a></code></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="../Crypto/PrimeGenerator.html" title="class in Crypto"><span class="strong">Prev Class</span></a></li>
<li>Next Class</li>
</ul>
<ul class="navList">
<li><a href="../index.html?Crypto/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