RSA暗号で学ぶ初めてのCommonLisp #素因数分解(試行除算)
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

RSA暗号で学ぶ初めてのCommonLisp #素因数分解(試行除算)

  • 3,804 views
Uploaded on

Kyoto.lisp Tech Talk #1 ...

Kyoto.lisp Tech Talk #1
p.5 :%s/素因数分化/素因数分解/g

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,804
On Slideshare
1,684
From Embeds
2,120
Number of Embeds
9

Actions

Shares
Downloads
1
Comments
0
Likes
1

Embeds 2,120

http://kyotolisp.github.com 1,401
http://kyotolisp.github.io 656
http://localhost 44
https://twitter.com 12
http://translate.googleusercontent.com 2
http://hrt.happy.nu 2
http://paper.li 1
https://www.google.co.jp 1
http://webcache.googleusercontent.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 00. FirstRSA 暗号で学ぶ初めての CommonLisp # 素因数分解(試行除算) 2012-05-12
  • 2. 01. Profile Akiko Terada (@pgf2)Work : software developer
  • 3. 02. Attention!!すべてはフィーリングで!!
  • 4. 03. Index●RSA 暗号● 試行除算による素因数分解● 参考
  • 5. 04. RSA複合鍵 : p, q暗号鍵 : n = p*q1. 異なる素数 p, q を選ぶ2. メッセージ(平文)を n で暗号化する3. メッセージ(暗号文)を p, q で複合化する安全性は効率的に ・与えられた整数 n を素因数分化する方法 ・ある整数が素数であることを証明する方法に依存する
  • 6. 05. Trial division - algorithmInput: 正の整数 nOutput: 素因数Step1: op = 2Step2: n ≡ 0 (mod op)    → true: op は n の素因数 End    → false: Step3Step3: op++Step4: op >= floor(√n)    → true: n は素数 End    → false: Step2
  • 7. 05. Trial division - program(defun prime-factor(n) (cond ((= n 1) (list nil 1)) (t (labels ((pf (&optional (op 2)) (cond ((> op (sqrt n)) (list t n)) ((zerop (rem n op)) (list nil op)) (t (pf (+ op 1)))))) (pf)))))(defun trial-division(n) (let ((prime-factors nil)) (cond ((= n 1) (setq prime-factors (list n))) (t (labels ((td (&optional (op n)) (let ((lst (prime-factor op))) (setq prime-factors (cons (car (cdr lst)) prime-factors)) (unless (car lst) (td (/ op (car (cdr lst)))))))) (td)) prime-factors))))
  • 8. 05. Trial division - efficiency 素因数分解したい整数 n が小さい素数で割り切れるときのみ効率的となる! → フェルマーの素因数分解へ続く 整数 n が√ n より余り大きくない因数を持つときに 効率が良くなるアルゴリズム
  • 9. 06. ReferenceISBN-13: 978-4627847613ISBN-13: 978-4431709442ISBN-13: 978-4621062869
  • 10. 07. Lastご清聴ありがとうございました!