種類
- インスタンスメソッド (28)
- 特異メソッド (8)
ライブラリ
- openssl (36)
クラス
-
OpenSSL
:: BN (36)
キーワード
- % (1)
- * (1)
- ** (1)
- + (1)
-
/ (1) - << (1)
- >> (1)
-
clear
_ bit! (1) - copy (1)
- gcd (1)
-
generate
_ prime (1) - lshift! (1)
-
mask
_ bits! (1) -
mod
_ add (1) -
mod
_ exp (1) -
mod
_ inverse (1) -
mod
_ mul (1) -
mod
_ sqr (1) -
mod
_ sub (1) - new (3)
- prime? (2)
-
prime
_ fasttest? (1) -
pseudo
_ rand (1) -
pseudo
_ rand _ range (1) - rand (1)
-
rand
_ range (1) - rshift! (1)
-
set
_ bit! (1) - sqr (1)
-
to
_ i (1) -
to
_ int (1) -
to
_ s (1)
検索結果
先頭5件
-
OpenSSL
:: BN # -(other) -> OpenSSL :: BN (63619.0) -
自身から other を引いた値を返します。
自身から other を引いた値を返します。
@param other 引く整数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#mod_sub -
OpenSSL
:: BN # clear _ bit!(n) -> self (18619.0) -
自身の n ビット目を0にします。
自身の n ビット目を0にします。
//emlist[][ruby]{
require 'openssl'
a = OpenSSL::BN.new("129")
a.clear_bit!(0)
a # => 128
//}
@param n 0にするビットの位置
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::set_bit! -
OpenSSL
:: BN # lshift!(n) -> self (18619.0) -
自身を n ビット左シフトします。 OpenSSL::BN#<<と異なり、破壊的メソッドです。
自身を n ビット左シフトします。
OpenSSL::BN#<<と異なり、破壊的メソッドです。
//emlist[][ruby]{
require 'openssl'
bn = 1.to_bn
bn.lshift!(2) # => #<OpenSSL::BN 4>
bn # => #<OpenSSL::BN 4>
//}
@param n シフトするビット数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#<< -
OpenSSL
:: BN # mod _ mul(other , m) -> OpenSSL :: BN (18619.0) -
(self * other) % m を返します。
(self * other) % m を返します。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new("7").mod_mul(OpenSSL::BN.new("3"), OpenSSL::BN.new("6")) # => 3
//}
@param other 積を取る数
@param m 剰余を取る数
@raise OpenSSL::BNError 計算時エラー -
OpenSSL
:: BN # / (other) -> [OpenSSL :: BN , OpenSSL :: BN] (9919.0) -
自身を other で割った商と余りを配列で返します。
自身を other で割った商と余りを配列で返します。
@param other 除数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#mod_inverse -
OpenSSL
:: BN . new(str , base=10) -> OpenSSL :: BN (9709.0) -
文字列を多倍長整数オブジェクト(OpenSSL::BN)を生成します。
文字列を多倍長整数オブジェクト(OpenSSL::BN)を生成します。
base で、変換方法(基数)を指定します。
デフォルトは 10 で、他に 16, 2, 0 を指定できます。
10 引数の文字列を 10進数とみなして、変換します。
16 引数の文字列を 16進数とみなして、変換します。
2 引数の文字列を big-endian の符号無し整数のバイナリ列とみなして、変換します。
0 引数の文字列を MPI形式の文字列(バイト列)とみなして、変換します。
(最初の4byteはbig-endianでデータ長を表わし、その後にそのデータ長のバイト... -
OpenSSL
:: BN # prime _ fasttest?(checks=nil , vtrivdiv=true) -> bool (9673.0) -
自身が素数であるなら true を返します。
自身が素数であるなら true を返します。
vtrivdiv が真である場合には、 Miller-Rabin 法での
判定の前に小さな素数で割ることで素数か否かを
調べます。自身が小さな素数である場合にはこの手順
により素数ではないと誤った返り値を返します。
Miller-Rabin 法により確率的に判定します。
checksで指定した回数だけ繰り返します。
checksがnilである場合は OpenSSL が適切な
回数を判断します。
//emlist[][ruby]{
require 'openssl'
# 181 は 「小さな素数」である
OpenSSL::BN.new("18... -
OpenSSL
:: BN # mod _ sub(other , m) -> OpenSSL :: BN (9667.0) -
(self - other) % m を返します。
(self - other) % m を返します。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new("27").mod_sub(OpenSSL::BN.new("3"), OpenSSL::BN.new("5")) # => 4
//}
@param other 引く数
@param m 剰余を取る数
@raise OpenSSL::BNError 計算時エラー -
OpenSSL
:: BN . pseudo _ rand _ range(range) -> OpenSSL :: BN (9667.0) -
乱数を 0 から range-1 までの間で生成し、返します。
乱数を 0 から range-1 までの間で生成し、返します。
乱数系列に暗号論的な強さはありません。
@param range 生成する乱数の範囲
@raise OpenSSL::BNError 乱数の生成に失敗した場合に発生します
@see OpenSSL::BN.pseudo_rand, OpenSSL::BN.rand_range -
OpenSSL
:: BN . rand _ range(range) -> OpenSSL :: BN (9667.0) -
暗号論的に強い擬似乱数を 0 から range-1 までの間で生成し、返します。
暗号論的に強い擬似乱数を 0 から range-1 までの間で生成し、返します。
@param range 生成する乱数の範囲
@raise OpenSSL::BNError 乱数の生成に失敗した場合に発生します
@see OpenSSL::BN.rand, OpenSSL::BN.pseudo_rand_range -
OpenSSL
:: BN # prime? -> bool (9655.0) -
自身が素数であるなら true を返します。
自身が素数であるなら true を返します。
Miller-Rabin 法により確率的に判定します。
checkで指定した回数だけ繰り返します。
引数を省略した場合は OpenSSL が適切な
回数を判断します。
@param check Miller-Robin 法の繰り返しの回数
@raise OpenSSL::BNError 判定時にエラーが発生
@see OpenSSL::BN#prime_fasttest? -
OpenSSL
:: BN # prime?(checks) -> bool (9655.0) -
自身が素数であるなら true を返します。
自身が素数であるなら true を返します。
Miller-Rabin 法により確率的に判定します。
checkで指定した回数だけ繰り返します。
引数を省略した場合は OpenSSL が適切な
回数を判断します。
@param check Miller-Robin 法の繰り返しの回数
@raise OpenSSL::BNError 判定時にエラーが発生
@see OpenSSL::BN#prime_fasttest? -
OpenSSL
:: BN # mask _ bits!(n) -> self (9637.0) -
自身を下位 n ビットでマスクし、破壊的に変更します。
自身を下位 n ビットでマスクし、破壊的に変更します。
n が自身のビット数より大きい場合は例外 OpenSSL::BNError
が発生します。
//emlist[][ruby]{
require 'openssl'
bn = 0b1111_1111.to_bn
bn.mask_bits!(8)
p "%b" % bn # => "11111111"
bn.mask_bits!(3)
p "%b" % bn # => "111"
//}
@param n マスクするビット数
@raise OpenSSL::BNError 計算時エラー -
OpenSSL
:: BN # mod _ inverse(m) -> OpenSSL :: BN (9637.0) -
自身の mod m における逆元を返します。
自身の mod m における逆元を返します。
(self * r) % m == 1 となる r を返します。
存在しない場合は例外 OpenSSL::BNError が発生します。
//emlist[][ruby]{
require 'openssl'
p 3.to_bn.mod_inverse(5) # => 2
p (3 * 2) % 5 # => 1
//}
@param m mod を取る数
@raise OpenSSL::BNError 計算時エラー -
OpenSSL
:: BN . generate _ prime(bits , safe=true , add=nil , rem=nil) -> OpenSSL :: BN (9637.0) -
ランダム(擬似乱数的)な bits ビットの素数を返します。
ランダム(擬似乱数的)な bits ビットの素数を返します。
暗号的に意味のある素数は十分大きくないといけないので、
bits が小さすぎる場合は期待する結果を返しません。
safe が真であれば、「安全な」素数((p-1)/2が素数である素数p)を
返します。
add に整数を渡すと、 p % add == rem であるような
素数pのみを返します。rem が nil の場合は rem=1と見なします。
@param bits 生成するランダム素数のビット数
@param safe true で安全な素数のみを生成する
@param add 生成する素数の剰余の条件
@param ... -
OpenSSL
:: BN . pseudo _ rand(bits , fill=0 , odd=false) -> OpenSSL :: BN (9637.0) -
乱数を生成し、返します。
乱数を生成し、返します。
乱数系列に暗号論的な強さはないため、暗号関連でない場合や、
強さが必要でない場合に用いることができます。
鍵生成のような場合には使えません。
bits ビットの長さの正の整数を生成します。
fill が -1 なら、生成させる数の最上位ビットが
0である場合を許容します。fill が 0 なら、
生成させる数の最上位ビットは1にセットされます、
つまり必ず bits ビットの整数となります。
fill が1の場合は、上位2ビットが1にセットされます。
odd が真なら、生成される整数は奇数のみとなります。
@param bits 発生させる数のビット数
@p... -
OpenSSL
:: BN . rand(bits , fill=0 , odd=false) -> OpenSSL :: BN (9637.0) -
暗号論的に強い擬似乱数を生成し、返します。
暗号論的に強い擬似乱数を生成し、返します。
bits ビットの長さの正の整数を生成します。
fill が -1 なら、生成させる数の最上位ビットが
0である場合を許容します。fill が 0 なら、
生成させる数の最上位ビットは1にセットされます、
つまり必ず bits ビットの整数となります。
fill が1の場合は、上位2ビットが1にセットされます。
odd が真なら、生成される整数は奇数のみとなります。
@param bits 発生させる数のビット数
@param fill 上位ビットの性質を決める整数
@param odd 真なら発生させる数は奇数のみとなる
@raise Op... -
OpenSSL
:: BN # %(other) -> OpenSSL :: BN (9619.0) -
自身を other で割り算した余りを返します。
自身を other で割り算した余りを返します。
@param other 除数
@raise OpenSSL::BNError 計算時エラー -
OpenSSL
:: BN # *(other) -> OpenSSL :: BN (9619.0) -
自身と other の積を返します。
自身と other の積を返します。
@param other かける数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#mod_mul -
OpenSSL
:: BN # **(other) -> OpenSSL :: BN (9619.0) -
自身の other 乗を返します。
自身の other 乗を返します。
@param other 指数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#mod_exp -
OpenSSL
:: BN # +(other) -> OpenSSL :: BN (9619.0) -
自身と other の和を返します。
自身と other の和を返します。
@param other 足す整数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#mod_add -
OpenSSL
:: BN # <<(other) -> OpenSSL :: BN (9619.0) -
自身を other ビット左シフトした値を返します。
自身を other ビット左シフトした値を返します。
//emlist[][ruby]{
bn = 1.to_bn
pp bn << 1 # => #<OpenSSL::BN 2>
pp bn # => #<OpenSSL::BN 1>
//}
@param other シフトするビット数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#lshift! -
OpenSSL
:: BN # >>(other) -> OpenSSL :: BN (9619.0) -
自身を other ビット右シフトした値を返します。
自身を other ビット右シフトした値を返します。
//emlist[][ruby]{
require 'openssl'
bn = 2.to_bn
bn >> 1 # => #<OpenSSL::BN 1>
bn # => #<OpenSSL::BN 2>
//}
@param other シフトするビット数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#rshift! -
OpenSSL
:: BN # copy(other) -> self (9619.0) -
other の内容を自身にコピーします。
other の内容を自身にコピーします。
@param other コピーする OpenSSL::BN のオブジェクト
@raise OpenSSL::BNError コピーに失敗 -
OpenSSL
:: BN # gcd(other) -> OpenSSL :: BN (9619.0) -
GCD(最大公約数)を返します。
GCD(最大公約数)を返します。
@param other 自身との GCD を計算する数
@raise OpenSSL::BNError 計算時エラー -
OpenSSL
:: BN # mod _ add(other , m) -> OpenSSL :: BN (9619.0) -
(self + other) % m を返します。
(self + other) % m を返します。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new("7").mod_add(OpenSSL::BN.new("3"), OpenSSL::BN.new("6")) # => 4
//}
@param other 和を取る数
@param m 剰余を取る数
@raise OpenSSL::BNError 計算時エラー -
OpenSSL
:: BN # mod _ exp(other , m) -> OpenSSL :: BN (9619.0) -
(self ** other) % m を返します。
(self ** other) % m を返します。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new("7").mod_exp(OpenSSL::BN.new("3"), OpenSSL::BN.new("6")) # => 1
//}
@param other 指数
@param m 剰余を取る数
@raise OpenSSL::BNError 計算時エラー -
OpenSSL
:: BN # mod _ sqr(m) -> OpenSSL :: BN (9619.0) -
(self ** 2) % m を返します。
(self ** 2) % m を返します。
@param m mod を取る数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#sqr -
OpenSSL
:: BN # rshift!(n) -> self (9619.0) -
自身を n ビット右シフトします。 [[m:OpenSSL::BN#>>]と異なり、破壊的メソッドです。
自身を n ビット右シフトします。
[[m:OpenSSL::BN#>>]と異なり、破壊的メソッドです。
//emlist[][ruby]{
require 'openssl'
bn = 8.to_bn
bn.rshift!(1) # => #<OpenSSL::BN 4>
bn # => #<OpenSSL::BN 4>
//}
@param n シフトするビット数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#>> -
OpenSSL
:: BN # set _ bit!(n) -> self (9619.0) -
自身の n ビット目を1にします。
自身の n ビット目を1にします。
//emlist[][ruby]{
require 'openssl'
a = OpenSSL::BN.new("128")
a.set_bit!(0)
a # => 129
//}
@param n 1にするビットの位置
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::clear_bit!, OpenSSL::bit_set? -
OpenSSL
:: BN # sqr -> OpenSSL :: BN (9619.0) -
自身の2乗を計算します。
自身の2乗を計算します。
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#mod_sqr -
OpenSSL
:: BN . new(bn) -> OpenSSL :: BN (9619.0) -
OpenSSL::BN を複製して返します。
OpenSSL::BN を複製して返します。
@param bn 複製する OpenSSL::BN オブジェクト -
OpenSSL
:: BN . new(integer) -> OpenSSL :: BN (9619.0) -
整数オブジェクト(Integer)から多倍長整数オブジェクト (OpenSSL::BN)を生成します。
整数オブジェクト(Integer)から多倍長整数オブジェクト
(OpenSSL::BN)を生成します。
@param integer 整数オブジェクト
@see Integer#to_bn -
OpenSSL
:: BN # to _ s(base=10) -> String (9337.0) -
自身を表す文字列を返します。
自身を表す文字列を返します。
base で、変換方法(基数)を指定します。
デフォルトは 10 で、他に 16, 2, 0 を指定できます。
10 10進数の表記
16 16進数の表記
2 big-endianの符号無し整数のバイナリ列
0 MPI形式の文字列(バイト列)
@param base 文字列への変換方法(基数)
@raise OpenSSL::BNError 変換に失敗した場合に発生します
//emlist[][ruby]{
require 'openssl'
p 10.to_bn.to_s # => "10"
p (-5).to_bn.... -
OpenSSL
:: BN # to _ i -> Integer (9319.0) -
自身を Integer のインスタンスに変換します。
自身を Integer のインスタンスに変換します。
@raise OpenSSL::BNError 変換に失敗した場合に発生します -
OpenSSL
:: BN # to _ int -> Integer (9319.0) -
自身を Integer のインスタンスに変換します。
自身を Integer のインスタンスに変換します。
@raise OpenSSL::BNError 変換に失敗した場合に発生します