การเข้ารหัสแบบ RSA

การเข้ารหัสแบบ RSA เป็นอัลกอริธึมการเข้าหรัสแบบกุญแจอสมมาตร ในการเข้ารหัสโดยใช้ความรู้เรื่องเลขคณิตมอดุลาร์เข้ามาช่วยในการคำนวณ (modular arithmetic)

การเข้ารหัสแบบกุญแจอสมมาตร (Public-key cryptography) เป็นการเข้ารหัสที่นิยมใช้กันอย่างแพร่หลายในการทำธุรกรรมอิเล็กทรอนิคส์ เช่นการยืนยันตัวตนด้วยระบบลายเซ็นอิเล็กทรอนิคส์ (Digital signature) และการค้าผ่านอินเตอร์เน็ต (e-commerce) โดยการเข้ารหัสจะต้องมี public key และ private key ซึ่งสร้างจากตัวเลขที่สุ่มขึ้นมา และนำมาผ่านขั้นตอนของ RSA

โดย public key จะเป็นตัวที่สามารถเผยแพร่และใช้ร่วมกันได้ แต่ private key จะมีอยู่เฉพาะที่ผู้รับสารเท่านั้น หรือก็คือ การเข้ารหัสของแต่ละคนสามารถใช้ public key เดียวกันได้ แต่ในการถอดรหัสออกมาจะขึ้นอยู่กับ private key ของผู้รับสารที่จะถอดรหัส

en-de-crypt

ประวัติ

การเข้ารหัสแบบ RSA เป็นอัลกอลิธึมที่ถูกอธิบายเมื่อพ.ศ. 2520 โดย รอน ริเวสต์ ( Ron Rivest) , อาดี ชามีร์ ( Adi Shamir) และเล็น เอเดิลแมน ( Len Adleman) ที่ MIT โดยที่ RSA นั้นเป็นตัวย่อมาจากนามสกุลของทั้ง 3 คน (Rivest-Shamir-Adleman) การเข้ารหัสแบบ RSA ได้จดสิทธิบัตรโดยสถาบัน MIT ในสหรัฐอเมริกาเมื่อปี พ.ศ. 2526 และได้สิ้นสุดลงเมื่อปี พ.ศ. 2543 เพราะเป็นผลงานที่เคยถูกตีพิมพ์เผยแพร่แล้วก่อนที่จะจดสิทธิบัตร

การสร้าง public key

- ขั้นที่ 1

สุ่มตัวเลข 2 ตัว ที่เป็นจำนวนเฉพาะ กำหนดให้เป็น p และ q

- ขั้นที่ 2

หาค่า n โดยที่ n=pq

- ขั้นที่ 3

หาค่า

( ค่า totient)

- ขั้นที่ 4

เลือกจำนวนเต็ม e หนึ่งค่าโดยที่

1 < e < ; e เป็นจำนวนเฉพาะสัมพัทธ์กับ (ไม่มีตัวประกอบร่วมยกเว้น 1)

- ขั้นที่ 5

หาค่า d โดยที่

การเข้ารหัส

เมื่อได้ค่า d, e, n มาแล้ว ก็จะสามารถนำค่าเหล่านี้มาเข้ารหัสได้ดังต่อไปนี้

- ขั้นที่ 1

เมื่อให้ M เป็นข้อความที่ยังไม่ได้เข้ารหัส (plain text) ให้นำ M มาเปลี่ยนเป็นตัวเลข m

(อาจเปลี่ยนโดยวิธีการแทน a เป็น 1 b เป็น 2 ไปเรื่อยๆ) โดยที่ m < n

- ขั้นที่ 2

นำค่า m มาคำนวณในสมการ

โดยที่ c เป็นค่าหลังจากที่เข้ารหัสแล้ว

ตัวอย่างการเข้ารหัส

การสร้าง public key

- ขั้นที่ 1 สุ่มจำนวนเฉพาะ

ให้ p และ q เป็น 11 และ 23 ตามลำดับ

- ขั้นที่ 2 หาค่า n

n = pq

n = 11(23) = 253

- ขั้นที่ 3 หาค่า totient

- ขั้นที่ 4 เลือกค่า e

ให้ e = 3

- ขั้นที่ 5 หาค่า d

จะได้ d = 147

ตัวอย่างการเข้ารหัส

ให้ m = 97 (สมมุติว่าเปลี่ยนมาจากข้อความ M แล้ว)

นำไปคำนวณในสมการ

จะได้ c = 102

เพราะฉะนั้นจะได้ว่าข้อความที่เข้ารหัสแล้วจะมีค่าเป็นตัวเลขคือ 102

การถอดรหัส

การถอดรหัสจะมีขั้นตอนคล้ายกับการเข้ารหัส แต่จะมีการนำค่า d ที่หาไว้มาใช้ เมื่อได้ค่า d, e, n มาแล้ว ให้นำค่าเหล่านี้มาถอดรหัสได้ดังต่อไปนี้

- ขั้นที่ 1

นำค่า c ที่เป็นตัวเลขที่เข้ารหัสแล้วมาคำนวณในสมการ

โดยที่ m เป็นตัวเลขที่ยังไม่ได้เข้ารหัส

- ขั้นที่ 2

เมื่อได้ตัวเลข m มาแล้วให้นำไปเปลี่ยนเป็นตัวอักษร M เพื่อให้ได้ข้อความที่ยังไม่ได้เข้ารหัส (plain text)

ตัวอย่างการถอดรหัส

จากตัวอย่างการเข้ารหัสที่ได้กล่าวไว้แล้ว เราจะนำค่าตัวเลขที่เข้ารหัสไว้แล้วและค่า d, e, n ที่คำนวณไว้แล้ว มาถอดรหัสได้ด้วยวิธีการดังต่อไปนี้

นำค่า c=102 มาคำนวณในสมการ

จะได้ m=97

เมื่อถอดรหัสแล้วจะได้ค่า m =97 ซึ่งตรงกับค่าตัวเลขที่ยังไม่ได้เข้ารหัส

นอกจากนี้สำหรับผู้อ่านที่ต้องการดูขั้นตอนการเข้ารหัส และต้องการเข้ารหัสตัวเลขของตนเอง ผู้เขียนได้เขียนโปรแกรมบนเว็บไว้สามารถทดลองใช้ได้ที่ เว็บไซต์

http://generalp.atwebpages.com/rsa

About these ads

ป้ายกำกับ:

12 Responses to “การเข้ารหัสแบบ RSA”

  1. bluecream4 Says:

    ค้นหามาเจอ จากกูเกิ้ลค่ะ ขอบคุณมาก รูปทำเองเลยรึเปล่าค่ะ? เข้าใจง่ายมากเลย

  2. โปรแกรมหน้าข้าจะโต Says:

    สุดยอดของความสนุกคือการเขียนโปรแกรม ชอบเขียนโปรแกรมเหมือนกันครับ

  3. บินเอง Says:

    ผมชอบบล็อกของคุณมากเลยครับ^_^ ว่างๆก็มาเยี่ยมบล็อกผมได้นะ

  4. ardman Says:

    thx very mush krapppp

  5. tirennos Says:

    สุดยอดมาก ชอบจริง ๆ ผมอ่านเอาไปสอบเลยอ่ะ

  6. kavee Says:

    อยากเห็นโค๊ด อ่ะครับเริ่มเขียนไงหรอครับ พอดีไม่ค่อยรู้เรื่องครับ

  7. Crs Says:

    ยังไง ก็ขอบคุณและกันครับ
    ————————

  8. 44521 Says:

    ข้อความข้างบบดีมากเลยครับ

  9. เจษฎากร Says:

    แล้ว d e n มันส่งมาถึงผู้รับยังไงอ่ะ

    แล้วถ้าคนอื่น รู้ d e n ของเราจะเป็นยังไง

  10. quality furniture Says:

    Hello very cool web site!! Man .. Beautiful .. Superb .. I will bookmark your web site
    and take the feeds also? I’m happy to search out so many helpful information right here within the post, we want work out extra strategies on this regard, thanks for sharing. . . . . .

  11. Andys experienced tree service Says:

    What a stuff of un-ambiguity and preserveness of precious familiarity regarding unpredicted emotions.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s


ติดตาม

Get every new post delivered to your Inbox.

%d bloggers like this: