#7746: Blum-Goldwasser probabilistic encryption
----------------------------+-----------------------------------------------
Reporter: mvngu | Owner: mvngu
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-4.3.1
Component: cryptography | Keywords: Blum-Goldwasser, probabilistic
encryption
Work_issues: | Author: Minh Van Nguyen
Upstream: N/A | Reviewer:
Merged: |
----------------------------+-----------------------------------------------
Changes (by mvngu):
* status: needs_review => needs_work
Comment:
Replying to [comment:2 wdj]:
> It seems to violate the "defensive programming" (or "assume all people
are stupid") principle that if the is some very bad input which can be
entered, then you should assume that it *will* be entered at some point.
It looks to me that there needs to be a function called, say,
"has_blum_prime(lbound, ubound)" in the module `sage/crypto/util.py`. This
function checks to see if there is a Blum prime within the specified lower
and upper bounds. One could then use `has_blum_prime()` to first check for
the presence of a Blum prime within a specified interval, prior to
actually computing a random Blum prime.
[[BR]][[BR]]
> Can someone point to a page in the Developers' manual of something where
html generation is explained? I don't see the changes in
After you have applied the patch and rebuilt your branch, you could use
the following command to rebuild the HTML version of the reference manual:
{{{
./sage -docbuild reference html
}}}
[[BR]]
> Is SageObject the best superclass for this?
No, not really. Ideally, the best parent class for the class
`BlumGoldwasser` is `sage.crypto.cryptosystem.PublicKeyCryptosystem`. I'll
see what I can do to make `sage.crypto.cryptosystem.PublicKeyCryptosystem`
the parent class of `BlumGoldwasser`.
[[BR]][[BR]]
> Is the best place for blum_blum_shub in util or in a stream cipher
module?
I think the best place for the function `blum_blum_shub()` is in a module
for pseudorandom number generators. The module that comes to mind is
`sage/misc/prandom.py`. But all functions in that module are exported to
the global name space, so those functions are available upon starting
Sage, without having to explicitly import them. Adding more functions to
the global name space is not a good idea. One wants to minimize Sage's
loading time, but also to have a default set of common useful functions.
Adding `blum_blum_shub()` to `sage/misc/prandom.py` and polluting the
global name space is not my intention. The Blum-Blum-Shub pseudorandom bit
generator is not as commonly used as, say, `random()` and `randint()`. For
now, `blum_blum_shub()` fits OK in `sage/crypto/util.py`. Functions in
that module are not exported by default, which is why you see lots of
import statements throughout examples in that module.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/7746#comment:3>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.