Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data P
- unP :: P -> Integer
- data Q
- unQ :: Q -> Integer
- data G
- unG :: G -> Integer
- data SPF
- spfP :: SPF -> P
- spfQ :: SPF -> Q
- spfG :: SPF -> G
- mkSPF :: MonadRandom m => Int -> m SPF
- mkSPF' :: Integer -> Integer -> Integer -> Maybe SPF
- type SPFM = ReaderT SPF
- runSPFT :: SPF -> SPFM m a -> m a
- runSPFM :: SPF -> SPFM Identity a -> a
- gexpSafeSPF :: SPF -> Integer -> Integer
- gexpSafeSPFM :: Monad m => Integer -> SPFM m Integer
- expSafeSPF :: SPF -> Integer -> Integer -> Integer
- expSafeSPFM :: Monad m => Integer -> Integer -> SPFM m Integer
- randomInZq :: MonadRandom m => SPF -> m Integer
- randomInZqM :: MonadRandom m => SPFM m Integer
- randomInZp :: MonadRandom m => SPF -> m Integer
- randomInZpM :: MonadRandom m => SPFM m Integer
- modp :: SPF -> Integer -> Integer
- modpM :: Monad m => Integer -> SPFM m Integer
- (|*|) :: Monad m => SPFM m Integer -> SPFM m Integer -> SPFM m Integer
- (|+|) :: Monad m => SPFM m Integer -> SPFM m Integer -> SPFM m Integer
Documentation
A large, safe prime, p = 2q + 1, where q is a large prime
A large prime such that p = 2q + 1 and p is also prime
A generator order Q for prime field order P
A Safe Prime Field (Zp): Q = large prime P = 2Q + 1, also prime G = generator for Zp order q
randomInZq :: MonadRandom m => SPF -> m Integer Source #
Generate random number in Zq
randomInZqM :: MonadRandom m => SPFM m Integer Source #
randomInZp :: MonadRandom m => SPF -> m Integer Source #
Generate random number in Zp
randomInZpM :: MonadRandom m => SPFM m Integer Source #