先加密后簽名的順序是否正確?
我是這么覺得:簽名的一個目的是:防止簽名雙方抵賴。如果先加密的話,到時候他有可能不認賬。而且,特別是針對RSA簽名算法,有一種專門針對先加密后簽名的攻擊。為了防止這種攻擊,推薦采用先簽名后加密。
這種攻擊方法為:假設(shè)簽名者A用先加密后簽名的方法把消息x發(fā)給B,他是先用B的公鑰eb對x加密,然后用自己的私鑰da簽名,設(shè)A的模數(shù)為na,B的為nb,那么,A發(fā)給B的密文為: (x^eb mod nb)^da mod na如果B不誠實,那么B可能偽造A的簽名。
謊稱收到的是x1.因為nb是B的模數(shù),所以B知道nb的分解,于是可以計算模nb的離散對數(shù)。 (x1)^k=x mod nb之后,B再公布他的新公鑰。然后宣布收到的是x1不是x。