Document 7379112
Download
Report
Transcript Document 7379112
Capstone Project Presentation
A Tool for Cryptography
Problem Generation
CSc 499
Mark Weston
Winter 2006
Introduction
Idea: Improve Math 121 Problem Generation
Client: Professor Kathryn Lesh
Current system: Excel based
Goal: A better tool for problem generation
Outline
Purpose
A Strategy for Problem Generation
Design
Interface, Demo, Results
Purpose
Given a problem type from the course, can we
generate “good” instances of the type?
Outline
Purpose
A Strategy for Problem Generation
Design
Interface, Demo, Results
A Strategy for Problem Generation
How to address goodness?
Use student work
Extract measurements: metrics
Algorithms: close relationship
Example metrics
Steps of problem type algorithm(s)
Maximum, minimum values
Trial Count
And many more…
A Strategy for Problem Generation
Idea of metrics gives us our strategy
“Generate and Test”
Input
Desired
Metrics
Choose
Problem
Type
Generate
Problem
Type
Instance
Test Unsuccessful
Test Successful
Done
Test
Solution
Metrics
Solve
Instance
Feasibility of Generate and Test
Random generation
No guarantee
Initial design planned to improve this
Sufficient?
Yes (!)
Problem List
Modular Addition, Subtraction, Multiplication
Properties of Divisibility
GCD
Extended Euclidean Algorithm
Linear Combination Theorem
Modular Exponentiation by Repeated Squares and Square-and-Multiply
Chinese Remainder Theorem Applications
Evaluating Jacobi Symbols
Solovay-Strassen Primality Testing
RSA Key Generation
RSA Signatures
Primitive Root Testing
Factoring by Pollard’s p-1
Prime Factorization of a Composite
Cryptographic Coin Toss
Factoring by Dixon’s Random Squares
Problem List
Modular Addition, Subtraction, Multiplication
Properties of Divisibility
Not needed
GCD
Extended Euclidean Algorithm
Linear Combination Theorem
Modular Exponentiation by Repeated Squares and Square-and-Multiply
Chinese Remainder Theorem Applications
Evaluating Jacobi Symbols
Solovay-Strassen Primality Testing
RSA Key Generation
RSA Signatures
Primitive Root Testing
Factoring by Pollard’s p-1
Prime Factorization of a Composite
Cryptographic Coin Toss
Factoring by Dixon’s Random Squares
Problem List
Modular Addition, Subtraction, Multiplication
Properties of Divisibility
Not needed
GCD
Extended Euclidean Algorithm
Collapse w/ LCT
Linear Combination Theorem
Collapse w/ EE
Modular Exponentiation by Repeated Squares and Square-and-Multiply
Chinese Remainder Theorem Applications
Evaluating Jacobi Symbols
Solovay-Strassen Primality Testing
RSA Key Generation
RSA Signatures
Collapse w/ Mod. Exp.
Primitive Root Testing
Factoring by Pollard’s p-1
Prime Factorization of a Composite
Collapse w/ Pollard
Cryptographic Coin Toss
Factoring by Dixon’s Random Squares
Problem List
Modular Addition, Subtraction, Multiplication
Properties of Divisibility
Not needed
GCD
Extended Euclidean Algorithm
Collapse w/ LCT
Linear Combination Theorem
Collapse w/ EE
Modular Exponentiation by Repeated Squares and Square-and-Multiply
Chinese Remainder Theorem Applications
Evaluating Jacobi Symbols
Solovay-Strassen Primality Testing
RSA Key Generation
RSA Signatures
Collapse w/ Mod. Exp.
Primitive Root Testing
Factoring by Pollard’s p-1
Prime Factorization of a Composite
Collapse w/ Pollard
Cryptographic Coin Toss
Feasible?
Factoring by Dixon’s Random Squares
Feasible?
Problem List (final)
Modular Addition, Subtraction, Multiplication
GCD
Extended Euclidean Algorithm
Modular Exponentiation by Repeated Squares and Square-andMultiply
Chinese Remainder Theorem Applications
Evaluating Jacobi Symbols
Solovay-Strassen Primality Testing
RSA Key Generation
Primitive Root Testing
Factoring by Pollard’s p-1
Factoring by Dixon’s Random Squares
Feasible
Cryptographic Coin Toss
Feasible
Outline
Purpose
A Strategy for Problem Generation
Design
Interface, Demo, Results
Design, Requirements
Design
Follows from generation strategy
A component that generates problems
A component that solves problems
An interface to provide input
Implementation Choice
Java
Java Applet
Other Requirements
Modular
Configure for students
Full Output
Data structures
To deal with number precision
Limit maximum number of digits
Outline
Purpose
A Strategy for Problem Generation
Design
Interface, Demo, Results
Interface, Demo, Results
Go
Source: nsa.gov
Conclusion
One tool – many features
Many problem types
Calculation / Generation
Variable precision, full algorithms
Full output
Refined interface
Students / Professors
Free
No install, lightweight, multiplatform
Support available
Future work
More problems
Usability / Interface
Other improvements
New algorithms
Other Crypto-systems
Thanks!
Client: Professor Kathryn Lesh
Advisor: Professor Brian Postow
Interface Consultants: Professors Chris
Fernandes and Aaron Cass
Questions?
Extra slides
Configuring an Applet
Sign it
Gives permissions to the machine it’s running on
Don’t want the configuration file there…
Want access to the machine the applet is running on
File system access here is tricky, once the applet starts running
Work around
Work around
Have the applet make a URL Connection to the machine it came
from
This is legal, even for an unsigned applet
We can then read a file, and configure from that
Plain text
XML
Etc.
Generation of complicated problems
Intelligence
Complexity source
Algorithm
Metrics
Composition
Target sub problems
Old Interface
New Interface (1)
New Interface (2)
Dealing with precision, size of numbers
Use a number class
Arithmetic with objects!?
Vary internal representation independently of the
interface
Limit number of digits
Watch Number class for add/multiply - cause
growth
Exception?
Restart the problem
Lower inputs
Try 10 times, give up
An Example
Greatest Common Divisor (GCD)
A problem type has:
Inputs -> Instance
GCD(a, b), vary values a and b
Algorithm -> Metric of “Goodness”
The Euclidean Algorithm and the number of steps it
takes