Score:-1

วิธีเข้ารหัสโดยใช้คีย์ส่วนตัวสำหรับ ECC

ธง cn

ดังที่เราทราบ ECC ใช้ $C_2 = r \cdot G, C_1 = M + r \cdot G$; และถอดรหัสด้วย $M=C_1 - K \cdot C_2$. และเซ็นโดยใช้จุด $X$: $X = k \cdot G(x_0,y_0)$. $r = x_0 \cdot K; s = 1 / k \cdot (M + r \cdot d) \mod(n)$; ที่นี่ $d$ เป็นคีย์ส่วนตัว $K$ เป็นกุญแจสาธารณะ แล้วตรวจสอบโดยเป็นจริงของ $r \cdot G == M \cdot G / s + x \cdot K/s$.

นี่คือคำถามของฉัน: ฉันสามารถเข้ารหัสโดยใช้คีย์ส่วนตัว (หรือเซ็นชื่อ) และรับข้อความได้หรือไม่ $M$ โดยตรงด้วยรหัสสาธารณะ $K$? แทน $r \cdot G == M \cdot G / s + x \cdot K/s$, ฉันจะได้สิ่งที่ต้องการได้อย่างไร $M = \operatorname{function}(r,s,K,G)$ ?

ขอบคุณ เอ็ดเวิร์ด

fgrieu avatar
ng flag
จริงๆ แล้ว วิธีมาตรฐานในการเข้ารหัสโดยใช้ ECC คือ [ECIES](https://www.secg.org/sec1-v2.pdf#subsection.5.1) วิธีมาตรฐานในการลงชื่อโดยใช้ ECC ได้แก่ [ECDSA](https://www.secg.org/sec1-v2.pdf#subsection.4.1) และ [EC-Schnorr](https://crypto.stackexchange.com/q/ 34863/555).
kelalaka avatar
in flag
เอ่อ ทำไมคุณต้องการเข้ารหัสด้วยคีย์ส่วนตัวของคุณ เนื่องจากรหัสสาธารณะของคุณเป็นแบบสาธารณะหมายความว่าข้อความที่เข้ารหัสสามารถถอดรหัสได้โดยทุกคน ปัญหาที่แท้จริงของคุณคืออะไร? นอกจากนี้ คีย์ส่วนตัวเป็นจำนวนเต็มและคีย์สาธารณะเป็นประเด็น!
cn flag
ฉันพยายามแทนที่ RSA ด้วย ECC ในโครงการขนาดเล็กมาก หาก ECC ไม่สามารถทำได้ ฉันยังคงใช้ RSA เพื่อกู้คืนข้อความนั้น
Maarten Bodewes avatar
in flag
หากคุณไม่สามารถใช้งานโอเวอร์เฮดขนาด 64 ไบต์ของ ECC ได้ (สมมติว่ามีขนาดคีย์ 256 บิต) ฉันขอแนะนำให้ใช้ RSA แม้ว่าจะมีความแข็งแรงน้อยกว่าในความหมายแบบคลาสสิก และโดยทั่วไปแล้วลายเซ็นที่ให้การกู้คืนข้อความนั้นไม่ทันสมัย ศิลปะเช่น PSS
Score:5
ธง vu

ในการเข้ารหัสคีย์สาธารณะมีอยู่ ไม่มีสิ่งนั้น เป็น "เข้ารหัสด้วยคีย์ส่วนตัว" มันเป็นชื่อเรียกที่ผิดตั้งแต่สมัย RSA

นอกจากนี้ สิ่งที่คุณอธิบายว่า "M = ฟังก์ชัน (pubkey, ลายเซ็น)" คือลายเซ็นพร้อมการกู้คืนข้อความ อัลกอริทึมเหล่านี้หาได้ยากในปัจจุบันและส่วนใหญ่ถูกแทนที่ด้วยลายเซ็นพร้อมภาคผนวก (ซึ่ง ECDSA ก็เป็นหนึ่งในนั้น)

ECC ตามที่ระบุไว้ในชุดมาตรฐาน SEC#* อ้างอิงจากปัญหาลอการิทึมที่ไม่ต่อเนื่องบนเส้นโค้งวงรีโดยธรรมชาติแล้ว การสร้างการเปลี่ยนแปลงประตูกลตามขนาดตามอำเภอใจของ DLog นั้นไม่มีประสิทธิภาพมากกว่าการสร้างสูตรลายเซ็นที่ใช้ความยากของ DLog เพื่อป้องกันไม่ให้ส่วนประกอบลับรั่วไหล ดังนั้น ECC จึงไม่มีลายเซ็นดิจิทัลพร้อมการกู้คืนข้อความ

cn flag
ในกรณีที่เราไม่จำเป็นต้องทราบข้อความก่อนที่จะตรวจสอบลายเซ็น ถ้าเราสามารถคำนวณ M=function(pubkey,signature) เราก็สามารถรับ M และยืนยันได้โดยตรง RSA ทำได้ ทำไม ECC ทำไม่ได้? --- ไม่ว่าทำไมเราต้องการสิ่งนี้ คุณช่วยบอกวิธีแก้ปัญหานี้ M=func(pub,sign) ใน ECC ได้ไหม
DannyNiu avatar
vu flag
@Edward ดูว่านั่นเป็นคำอธิบายที่น่าพอใจหรือไม่
cn flag
เป็นเรื่องดีที่ทราบว่า ECC ไม่สามารถกู้คืนข้อความได้ และฉันเห็นด้วยกับคุณเกี่ยวกับปัญหาด้านประสิทธิภาพแต่ก็มีบางกรณีที่เราต้องการกู้คืนข้อความ อย่างแรกคือแฮชสามารถทำได้แม้ว่าจะยากก็ตาม แฮชที่ตรวจสอบแล้วไม่ได้หมายความว่าข้อความนั้นเป็นข้อความจริง 100% ในกรณีอื่นของฉัน เราต้องการการกู้คืนข้อความ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา