คำอธิบายรหัสกลิ้ง


13

มีใครอธิบายได้บ้างว่าโปรโตคอลรหัสกลิ้งเช่น KeeLoq ทำงานอย่างไร ฉันเข้าใจหลักฐานขั้นพื้นฐานว่าพวกเขาใช้รหัสที่แตกต่างกันในแต่ละครั้งดังนั้นคุณจึงไม่สามารถใช้การโจมตีซ้ำได้ แต่ฉันไม่เข้าใจว่าด้านใดด้านหนึ่งตรวจสอบรหัสที่ถูกต้อง ฯลฯ

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

หากคุณต้องใช้ Keeloq เป็นตัวอย่างในการอธิบายว่าใช้ได้ แต่ฉันต้องการคำอธิบายทั่วไปของรหัสกลิ้ง


รู้รอบได้ที่crypto.stackexchange.com/questions/18311/…
จัดการ

คำตอบ:


10

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

รหัสการกลิ้งที่ไม่ใช่การเข้ารหัสเป็นเพียงตัวส่งและตัวรับที่ทั้งคู่ใช้ตัวสร้างตัวเลขสุ่มหลอก (PRNG) เดียวกัน เครื่องกำเนิดไฟฟ้านี้มีข้อมูลสำคัญสองชิ้น: การคำนวณและหมายเลขที่สร้างขึ้นก่อนหน้านี้ การคำนวณโดยทั่วไปคือสมการผลป้อนกลับเชิงเส้นที่สามารถแทนด้วยตัวเลขเดียว ด้วยการป้อน PRNG ด้วยหมายเลขก่อนหน้าและทำให้หมายเลขคำติชมเหมือนกันจะมีการสร้างลำดับหมายเลขเฉพาะ ลำดับจะไม่มีการวนซ้ำซ้ำ ๆ จนกว่าจะผ่านหมายเลขทั้งหมดที่สามารถสร้างได้จากนั้นจะเริ่มต้นใหม่อีกครั้งด้วยลำดับเดียวกัน

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

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

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

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

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

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


อาฉันต้องลืมส่วน "ไม่มีลำดับซ้ำ" ของ PRNG นั่นสำคัญมาก ข้อได้เปรียบของการส่งข้อมูลซึ่งช่วยให้ผู้รับสามารถกำหนดรหัสความคิดเห็นได้คืออะไร ที่ดูเหมือนว่าจะมีความปลอดภัยน้อยกว่าเพียงแค่การเลือกรหัสข้อเสนอแนะและการผลิตทั้งเครื่องส่งและรับกับมันที่รู้จักกัน ...
NickHalden

@NickHalden รหัสข้อเสนอแนะแตกต่างกันสำหรับแต่ละรีโมทและลูกค้าจะต้องการเพิ่มรีโมตเพิ่มเติมในภายหลังหรือแทนที่รีโมตที่ขาดหายไป มันจำเป็นสำหรับการฝึกอบรมเท่านั้น บางรุ่นที่มีความปลอดภัยมากกว่านั้นเล็กน้อยจำเป็นต้องใช้ลำดับของการกดปุ่มเฉพาะบนรีโมตก่อนที่มันจะปล่อยข้อมูลความคิดเห็นเพิ่มเติม แต่โดยทั่วไปแล้วระบบโดยรวมนั้นปลอดภัยพอที่แม้ว่าคุณจะหยุดการเข้ารหัสคุณก็ยังต้องการข้อมูลอีกมากมาย บิตของข้อมูลก็เพียงพอสำหรับคุณที่จะได้รับรหัสข้อเสนอแนะทั้งหมด
Adam Davis

8

ฉันพบ KeeLoq เป็นครั้งแรกเมื่อค้นคว้าชิปในที่เปิดประตูโรงรถ แผ่นข้อมูล Microchipไม่ได้งานที่ดีของการอธิบายวิธีการทำงาน

โดยสังเขป:

  • เครื่องรับจะเก็บฐานข้อมูลของเครื่องส่งสัญญาณทั้งหมดโดยระบุหมายเลขประจำเครื่อง
  • ตัวส่งสัญญาณแต่ละตัวเชื่อมโยงกับคีย์การเข้ารหัสแบบสมมาตร (64 บิต) ซึ่งอยู่บนชิปและอยู่ในฐานข้อมูลของผู้รับ
  • ตัวส่งสัญญาณแต่ละตัวจะเชื่อมโยงกับหมายเลขลำดับของวงจรวน 16 บิตที่เก็บไว้ในชิปและในฐานข้อมูล
  • เมื่อเปิดใช้งานเครื่องส่งสัญญาณมันจะเพิ่มหมายเลขลำดับโมดูโล 65536 (wraparound 16 บิต) และส่งแพ็กเก็ตที่ประกอบด้วยบิตมาสค์ที่แสดงถึงปุ่มที่ถูกกดหมายเลขประจำเครื่องและรุ่นเข้ารหัสของหมายเลขซีเรียล
  • เครื่องรับตรงกับหมายเลขซีเรียลในฐานข้อมูลดึงกุญแจออกและถอดรหัสหมายเลขซีเรียล
  • หมายเลขซีเรียลต้องเป็นใหม่ ไม่สามารถเป็นหมายเลขซีเรียลที่เพิ่งใช้งานซึ่งป้องกันการโจมตีซ้ำ (ดูรูปที่ 7.3 ในแผ่นข้อมูล)
  • หากหมายเลขซีเรียลตรวจสอบแล้วผู้รับสามารถเปิดใช้งานฟังก์ชั่นตามบิตมาสก์ของสิ่งที่กดปุ่ม
  • หากหมายเลขซีเรียลใหม่ข้างหน้ามีค่ามากกว่า 16 ค่า (ผู้ใช้กดปุ่มหลายครั้งโดยไม่ได้ตั้งใจขณะอยู่ห่างจากตัวรับสัญญาณ) จากนั้นจึงต้องทำการเขย่ามือพิเศษเพื่อทำการซิงโครไนซ์ใหม่ซึ่งต้องใช้การกดปุ่มพิเศษ (ผู้ใช้จะทำการกดปุ่มพิเศษโดยเชื่อว่ามีการรับสัญญาณที่ไม่ดี)

การเพิ่มตัวส่งสัญญาณใหม่ไปยังฐานข้อมูลตัวรับสัญญาณนั้นคล้ายคลึงกันอย่างชัดเจนในระดับสูงไปยังวิธีการกำหนดค่าปุ่มกดสำหรับการเพิ่มลูกค้าไปยังจุดเชื่อมต่อ Wi-Fi ตัวรับสัญญาณบอกเป็นอย่างใดให้เข้าสู่โหมดโดยที่มันรับเครื่องส่งสัญญาณใหม่

ตัวส่งสัญญาณใหม่สามารถยอมรับได้จากข้อมูลที่ส่งผ่านในข้อความยืนยันการใช้งานทั่วไปหากตัวรับและตัวส่งใช้รหัสผู้ผลิตลับเดียวกัน นี่เป็นเพราะคีย์การเข้ารหัส 64 บิตนั้นได้มาจาก ID ผู้ผลิตและข้อมูลอนุกรมของผู้รับ (ดูวินาที 7.1)

มีทางเลือกที่ปลอดภัยกว่านี้: "การเรียนรู้ที่ปลอดภัย" สิ่งนี้เริ่มต้นในลักษณะพิเศษบนตัวส่งสัญญาณ (กดปุ่มสามปุ่มพร้อมกัน) เครื่องส่งจะส่งแพ็กเก็ตพิเศษ: ค่าเมล็ด 60 บิตซึ่งได้รับคีย์เข้ารหัสซึ่งอาจไม่ขึ้นกับ ID ผู้ผลิตหรือหมายเลขซีเรียล

เมื่อผู้รับไม่ได้อยู่ในโหมดเรียนรู้แน่นอนว่ามันปฏิเสธการส่งสัญญาณจากเครื่องส่งสัญญาณที่ไม่ทราบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.