---
title: RSA Signature Schemes
tags: crypto
lang: zh_tw
---
* [筆記總覽](https://hackmd.io/@LJP/rkerFdnqS)
[TOC]
# RSA Signature Schemes
## 流程
$M$: 欲傳送之 Message
$S$: Signature
$K_{pri}$: 私鑰
$K_{pub}$: 公鑰
- Server 端
1. 將 $M$ 以 $K_{pri}$ 加密起來變成 $S$
這裡也可以先將 $M$ 做一次 Hash 變為 $H$ 再加密算出 $S$
2. 將 $M, S$ 一起傳送給 Client
- Client 端
1. 收到 $M, S$ 後, 以 $K_{pub}$ 解密 $S$ 得到 $M^{'}$
若 Server 是將 $M$ 做一次 Hash 再加密算出 $S$
那這邊解密完 $S$ 是得到 $H^{'}$
2. 比較 $M^{'}$ 與 $M$, 一樣就是對的
若 Server 是將 $M$ 做一次 Hash 再加密算出 $S$
那這邊要比較的是 $H^{'}$ 與 Hash 過後的 $M$

## Existential Forgery Attack
先亂挑一個 signature $S$
對應有效的訊息就是 $m \equiv S^{K_{pub}}\ mod\ n$
但這個攻擊只是能讓 signature 是有效的
無法控制 $m$ 是什麼