การบ้าน Cryptography

ไม่ได้ได้การบ้านมาจากไหน แต่ตั้งโจทย์การบ้านเล่นๆ

Blognone ได้รับของมาฟรีๆ เป็น “จตุคอร์แรมเทพ” Core i7 Extreme + DDR3 16GB เป็นของแจกในเว็บ ปัญหาเริ่มเกิดขึ้นว่าจะแจกกันอย่างไร

ลิ่วเสนอว่าให้แอบสุ่มเลขขึ้นมาแล้วให้สมาชิกทายเลขใน UINT64 ให้ใกล้ที่สุด แต่เนื่องจากสมาชิก Blognone เชื่อว่าลิ่วอาจจะมั่วนิ่มแอบเปลี่ยนเลขเพื่อให้สาวๆ ได้รางวัลจึงเรียกร้องให้มีกระบวนการตรวจสอบ

งานของท่านคือออกแบบโปรโตคอลเพื่อให้มีข้อมูลที่สามารถใช้ตรวจตัวเลขที่ลิ่วเฉลยมาภายหลังว่าเป็นเลขที่สุ่มไว้ล่วงหน้า และไม่สามารถเปลี่ยนแปลงได้ ข้อมูลนี้จะถูกประกาศบนหน้าเว็บ Blognone โดยโปรโตคอลนี้ต้อง

  1. โปรโตคอลนี้ต้องเปิดเผยสู่สาธารณะ ดังนั้นห้ามมั่วนิ่มแบบ Security through obscurity
  2. อย่าลืมว่าใน Blognone มีผู้เชี่ยวชาญด้านการคำนวณประสิทธิภาพสูง และมีหลายคนเข้าถึงเครื่องซุปเปอร์คอมพิวเตอร์ได้ ดังนั้นอย่าประมาทการ brute force

BONUS: เขียน script ตามโปรโตคอลที่ออกแบบ

ส่วนนี่ไม่เกี่ยวกับเนื้อหา

Comments 12

  1. ploysics wrote:

    Oh! Oh! Oh! Oh! Opparul saranghae

    Posted 26 Jun 2010 at 2:09 am
  2. RTSP wrote:

    ถ้าทำการบ้านได้นี่ได้เครื่องไปเลยปะครับ :P

    Posted 26 Jun 2010 at 2:10 am
  3. lewcpe wrote:

    @RTSP เฮ่ย เหตุการสมสมติ ไม่มีจริง

    Posted 26 Jun 2010 at 2:31 am
  4. RTSP wrote:

    อ่าวเห็นพี่บอกได้ i7 เทพมาจาก intel นิ

    หรือได้แค่มา test เฉยๆ? ฮาๆ

    Posted 26 Jun 2010 at 2:48 am
  5. RX78 wrote:

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

    Posted 26 Jun 2010 at 9:28 am
  6. plynoi wrote:

    ถ้าได้จตุคอร์ แรมเทพแล้วได้ไปเกาหลีนี่เอาเลยนะ

    Posted 26 Jun 2010 at 11:11 am
  7. pruet wrote:

    ลิ่วก็สร้าง public key ขึ้นมาอันหนึ่ง เอา RSA สัก 5120 bit ก็ได้ แล้ว ก็เอา ตัวเลขโจทย์เข้ารหัสซะด้วย private key แล้วประกาศ ตัวเลขที่เข้ารหัสออกมา พร้อมกับ private key โดยที่ลิ่วเก็บ public key ไว้กะตัว

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

    ขอ i7 นะ สาว ๆ ไม่เอา

    Posted 26 Jun 2010 at 3:24 pm
  8. lewcpe wrote:

    @pruet อ่าวมีอาจารย์มาชิงทำการบ้านไปซะแล้ว :P แต่จริงๆ ขาดเรื่อง signing ไปอีกหน่อยครับ

    Posted 26 Jun 2010 at 3:30 pm
  9. pruet wrote:

    signing ยังไงเอ่ย

    Posted 26 Jun 2010 at 5:03 pm
  10. lewcpe wrote:

    @pruet กรณีที่ผมไปเมค private key ขึ้นใหม่น่ะครับ แล้วมามั่วนิ่มว่าค่าที่ถอดได้เป็นค่าที่ตั้งไว้ตอนแรก

    เลยต้องทำ checksum ต่อท้ายไว้อีกหน่อย ว่า decrypt มาแล้ว checksum ยังผ่านอยู่

    Posted 26 Jun 2010 at 11:04 pm
  11. pruet wrote:

    เอ ผมคิดว่า ตอนแรกถ้าประกาศออกไปแล้วว่านี่คือ encrypted message กับ private key ที่ใช้ ถ้า @lewcpe ไปเมค private key ขึ้นมา คนก็โวยวายได้ว่า เฮ้ยมันไม่ใช่ private key เดียวกัน

    ถ้าคิดว่ามันมั่วได้แล้วอ้างได้ว่านี่คือ private key อันที่ถูกต้อง การทำ checksum ก็ได้ผลเหมือนกันหรือเปล่า เพราะว่าก็เมค checksum ขึ้นมาใหม่ได้เหมือนกัน

    Posted 27 Jun 2010 at 3:49 pm
  12. ipats wrote:

    ตอนแรกคิดเหมือนอ. pruet นะ เอาอีกวิธีล่ะกัน

    ประกาศ sha-512 ของเลขสุ่ม กับ salt สองชุด ความยาว salt ก็ซัก 256-bit

    โอกาสที่ sha-512 ของ uint64 สองตัว จะชนกันด้วย salt ทั้งสองชุด แทบจะไม่เกิด

    .. แต่ อาจจะกัน brute force ไม่ได้, ฮ่ะฮ่า

    Posted 27 Jun 2010 at 10:51 pm

Post a Comment

Your email is never published nor shared.