本文整理汇总了Java中org.bouncycastle.pqc.crypto.rainbow.util.GF2Field.addElem方法的典型用法代码示例。如果您正苦于以下问题:Java GF2Field.addElem方法的具体用法?Java GF2Field.addElem怎么用?Java GF2Field.addElem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.bouncycastle.pqc.crypto.rainbow.util.GF2Field
的用法示例。
在下文中一共展示了GF2Field.addElem方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: verifySignatureIntern
import org.bouncycastle.pqc.crypto.rainbow.util.GF2Field; //导入方法依赖的package包/类
/**
* Signature verification using public key
*
* @param signature vector of dimension n
* @return document hash of length n - v1
*/
private short[] verifySignatureIntern(short[] signature)
{
short[][] coeff_quadratic = ((RainbowPublicKeyParameters)this.key).getCoeffQuadratic();
short[][] coeff_singular = ((RainbowPublicKeyParameters)this.key).getCoeffSingular();
short[] coeff_scalar = ((RainbowPublicKeyParameters)this.key).getCoeffScalar();
short[] rslt = new short[coeff_quadratic.length];// n - v1
int n = coeff_singular[0].length;
int offset = 0; // array position
short tmp = 0; // for scalar
for (int p = 0; p < coeff_quadratic.length; p++)
{ // no of polynomials
offset = 0;
for (int x = 0; x < n; x++)
{
// calculate quadratic terms
for (int y = x; y < n; y++)
{
tmp = GF2Field.multElem(coeff_quadratic[p][offset],
GF2Field.multElem(signature[x], signature[y]));
rslt[p] = GF2Field.addElem(rslt[p], tmp);
offset++;
}
// calculate singular terms
tmp = GF2Field.multElem(coeff_singular[p][x], signature[x]);
rslt[p] = GF2Field.addElem(rslt[p], tmp);
}
// add scalar
rslt[p] = GF2Field.addElem(rslt[p], coeff_scalar[p]);
}
return rslt;
}
示例2: compactPublicKey
import org.bouncycastle.pqc.crypto.rainbow.util.GF2Field; //导入方法依赖的package包/类
/**
* The quadratic (or mixed) terms of the public key are compacted from a n x
* n matrix per polynomial to an upper diagonal matrix stored in one integer
* array of n (n + 1) / 2 elements per polynomial. The ordering of elements
* is lexicographic and the result is updating <tt>this.pub_quadratic</tt>,
* which stores the quadratic elements of the public key.
*
* @param coeff_quadratic_to_compact 3-dimensional array containing a n x n Matrix for each of the
* n - v1 polynomials
*/
private void compactPublicKey(short[][][] coeff_quadratic_to_compact)
{
int polynomials = coeff_quadratic_to_compact.length;
int n = coeff_quadratic_to_compact[0].length;
int entries = n * (n + 1) / 2;// the small gauss
this.pub_quadratic = new short[polynomials][entries];
int offset = 0;
for (int p = 0; p < polynomials; p++)
{
offset = 0;
for (int x = 0; x < n; x++)
{
for (int y = x; y < n; y++)
{
if (y == x)
{
this.pub_quadratic[p][offset] = coeff_quadratic_to_compact[p][x][y];
}
else
{
this.pub_quadratic[p][offset] = GF2Field.addElem(
coeff_quadratic_to_compact[p][x][y],
coeff_quadratic_to_compact[p][y][x]);
}
offset++;
}
}
}
}