[ Index ] |
PHP Cross Reference of DokuWiki |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * brainpoolP160t1 5 * 6 * This curve is a twisted version of brainpoolP160r1 with A = -3. With brainpool, 7 * the curves ending in r1 are the "regular" curves and the curves ending in "t1" 8 * are the twisted version of the r1 curves. Per https://tools.ietf.org/html/rfc5639#page-7 9 * you can convert a point on an r1 curve to a point on a t1 curve thusly: 10 * 11 * F(x,y) := (x*Z^2, y*Z^3) 12 * 13 * The advantage of A = -3 is that some of the point doubling and point addition can be 14 * slightly optimized. See http://hyperelliptic.org/EFD/g1p/auto-shortw-projective-3.html 15 * vs http://hyperelliptic.org/EFD/g1p/auto-shortw-projective.html for example. 16 * 17 * phpseclib does not currently take advantage of this optimization opportunity 18 * 19 * PHP version 5 and 7 20 * 21 * @author Jim Wigginton <terrafrost@php.net> 22 * @copyright 2017 Jim Wigginton 23 * @license http://www.opensource.org/licenses/mit-license.html MIT License 24 * @link http://pear.php.net/package/Math_BigInteger 25 */ 26 27 namespace phpseclib3\Crypt\EC\Curves; 28 29 use phpseclib3\Crypt\EC\BaseCurves\Prime; 30 use phpseclib3\Math\BigInteger; 31 32 class brainpoolP160t1 extends Prime 33 { 34 public function __construct() 35 { 36 $this->setModulo(new BigInteger('E95E4A5F737059DC60DFC7AD95B3D8139515620F', 16)); 37 $this->setCoefficients( 38 new BigInteger('E95E4A5F737059DC60DFC7AD95B3D8139515620C', 16), // eg. -3 39 new BigInteger('7A556B6DAE535B7B51ED2C4D7DAA7A0B5C55F380', 16) 40 ); 41 $this->setBasePoint( 42 new BigInteger('B199B13B9B34EFC1397E64BAEB05ACC265FF2378', 16), 43 new BigInteger('ADD6718B7C7C1961F0991B842443772152C9E0AD', 16) 44 ); 45 $this->setOrder(new BigInteger('E95E4A5F737059DC60DF5991D45029409E60FC09', 16)); 46 } 47 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body