ฉันใช้ Arduino เพื่ออ่านแผงปุ่มกดและเปิดตัวจู่โจมด้วยไฟฟ้าเมื่อป้อนรหัส PIN สำหรับร่างนี้ฉันต้องการใช้การเข้ารหัสเบา ๆ เพื่อจัดเก็บ PIN ใน EEProm ไม่มีใครรู้เกี่ยวกับห้องสมุดดังกล่าวหรือไม่ ฉันได้ยินมาว่าอาจเป็นไปได้หากใช้ TwoFish
ฉันใช้ Arduino เพื่ออ่านแผงปุ่มกดและเปิดตัวจู่โจมด้วยไฟฟ้าเมื่อป้อนรหัส PIN สำหรับร่างนี้ฉันต้องการใช้การเข้ารหัสเบา ๆ เพื่อจัดเก็บ PIN ใน EEProm ไม่มีใครรู้เกี่ยวกับห้องสมุดดังกล่าวหรือไม่ ฉันได้ยินมาว่าอาจเป็นไปได้หากใช้ TwoFish
คำตอบ:
คุณไม่ต้องการเข้ารหัสรหัสผ่าน (PIN) - คุณต้องการแฮชพวกเขา เมื่อมีคนป้อนรหัสผ่านคุณแฮรหัสผ่านนั้นและเปรียบเทียบแฮชกับแฮชที่เก็บไว้ ประโยชน์ที่จะใช้วิธีนี้ (ใช้มานานกว่า 30 ปี) คือว่าแม้ว่าบางคนได้รับถือของแหล่งที่มาและแฮชที่พวกเขายังคงไม่สามารถบอกได้ว่าหมุดที่ตรงกับแฮชที่ตราบเท่าที่คุณเลือกแข็งแรงพอที่ฟังก์ชันแฮช
คุณไม่ต้องการใช้การเข้ารหัสด้วยตนเอง - คุณต้องการใช้ห้องสมุดของคนอื่นโดยเฉพาะอย่างยิ่งการใช้งานแบบเปิดที่ได้รับการทดสอบโดยชุมชนขนาดใหญ่ การเข้ารหัสนั้นยากการทดสอบนั้นยากและการทดสอบการเข้ารหัสนั้นยากมากดังนั้นให้คนอื่นมาทำแทนคุณ
คุณควรเช็คเอาต์AVR Crypto Libraryซึ่งได้รับสิทธิการใช้งานกับ GPLv3 นอกจากนี้ยังมีการนำSkein สำหรับ AVRมาใช้ด้วย
ลิงค์นั้น Hristos โพสต์ในขณะที่อาจมีประโยชน์แน่นอนไม่นับเป็น "การเข้ารหัส" มันเป็นแค่ "ความสับสน" เท่านั้น
วิทยาการเข้ารหัสลับที่ถูกต้องนั้นง่ายต่อการเข้าใจผิดแม้แต่กับคนที่รู้คณิตศาสตร์
ในการตอบกลับโพสต์ดั้งเดิม - วิธีการโจมตีที่จะให้คนเข้าถึง PIN ใน EEProm คืออะไร? แน่นอนถ้าพวกเขาได้มีที่ไกลในอุปกรณ์อิเล็กทรอนิกส์ของคุณพวกเขาสามารถเพียงแค่ "ตัดด้วยขากรรไกรสายสีแดง" และเปิดประตู?
หากคุณอย่างใดทำมีระบบที่ผู้โจมตีอาจได้รับถือของเนื้อหา EEPROM แล้วโดยไม่ต้องมีการเข้าถึงมากพอที่จะเปิดประตูของคุณคุณอาจต้องการที่จะออกแบบมัน คุณสามารถดูฟังก์ชันแฮชทางเดียวซึ่งคล้ายกับการแฮชรหัสผ่าน Unix - วิธีที่ EEProm ไม่จำเป็นต้องมีคีย์ถอดรหัส - ปัญหาคือพื้นที่ค้นหาสำหรับ PIN มีขนาดเล็กมาก - ถ้าฉันสามารถดาวน์โหลดเวอร์ชันแฮชของ PIN ฉันสามารถลองใช้ PIN ที่เป็นไปได้ทั้งหมด 10,000 รายการอย่างรวดเร็วฉันสงสัยว่าแล็ปท็อปสมัยใหม่ทุกรุ่นจะทำงานทั้งหมดในไม่กี่วินาที
ปัญหาที่ฉันเห็นคือหากพวกเขาสามารถเห็นพินของคุณพวกเขายังสามารถเห็นโปรแกรมของคุณที่เข้ารหัส / ตรวจสอบ / ถอดรหัสพินของคุณ นอกจากนี้หากพวกเขามีชิปของคุณพวกเขาสามารถไม่เพียง แต่เปลี่ยนโปรแกรมให้ผลบวกเสมอ (ผ่านการตรวจสอบได้อย่างมีประสิทธิภาพ) สำหรับพินใด ๆ
คุณวางแผนที่จะถอดรหัส PIN ที่เข้ารหัสเพื่อตรวจสอบว่าผู้ใช้ป้อน PIN ที่ถูกต้องได้อย่างไร คุณจะต้องจัดเก็บคีย์ถอดรหัส ... ณ จุดนี้หากผู้โจมตีสามารถอ่าน eeprom ของคุณเขายังสามารถอ่านแฟลชของคุณเพื่อค้นหาคีย์เข้ารหัส โดยพื้นฐานแล้วการเข้ารหัสทั้งหมดของคุณไร้ประโยชน์อย่างสมบูรณ์ อย่างที่คนอื่น ๆ พูดกันว่าถ้าเขามีความสามารถในการอ่านชิปของคุณแล้วเขาก็สามารถเขียนโปรแกรมใหม่ได้ ง่ายกว่ามากที่จะเปิดประตูฉันสงสัยว่าทุกคนจะต้องเจอกับปัญหาในการพยายามแฮ็คชิปของคุณ
นี่คือวิธีการสมัครง่าย ๆ ใน C ซึ่งสามารถนำไปใช้กับ Arduino ได้อย่างง่ายดาย ดูเหมือนว่าวิธีที่ง่ายที่สุดในการเข้ารหัสข้อมูลด้วยทรัพยากรที่ จำกัด ของ arduino
-EDIT- เพื่อป้องกันไม่ให้โปรแกรมออกจากโปรแกรมคุณสามารถทำ PIN ครึ่งหนึ่งได้ ซึ่งหมายความว่าโปรแกรมของคุณใช้กุญแจครึ่งหนึ่งของ PIN เพื่อถอดรหัส 1/2 PIN ที่เข้ารหัสซึ่งเก็บไว้ใน EEProm หากคีย์ถอดรหัสจาก EEProm ตรงกับส่วนของพินที่ไม่ใช่กุญแจประตูจะปลดล็อค สิ่งนี้จะทำงานในสถานการณ์ที่เป็นไปไม่ได้ที่ผู้บุกรุกจะพังประตูหรือ reprogram Arduino เท่านั้น
ฉันเกลียดที่จะไม่ตอบคำถามในขณะที่ถามคำถามอื่น แต่ ...
มีเหตุผลบางอย่างที่ทำให้อุปกรณ์ของคุณไม่ได้รับการพิสูจน์ว่าผิดปกติ ฉันได้เห็นสวิตช์ปุ่มกดในรูสกรูที่ติดตั้ง 'บนม้านั่ง' เพื่อตรวจจับชนิดของการแก้ไขดัดแปลงที่คุณกังวล ถ้าอย่างนั้นเขามาที่นี่พร้อมกับไฟฉายขนาดเล็กบิวเทนที่จัดการเพื่อรับชิปของคุณโดยไม่คลายเกลียว (หรือทำลายชิป) .. อย่างใดเขารู้การออกแบบระบบพิสูจน์การงัดแงะของคุณซึ่ง (หวังว่า) แสงโดยรอบและ / หรือเสียง เมื่อฝาครอบหลุดออกมาทั้งคู่ต่างออกไป .. ทั้งกลางวันและกลางคืน
หากเป็นเช่นนั้นควรเป็นระบบสองส่วนที่ชิ้นส่วนที่ถูกเปิดใช้งานสื่อสารกับบางสิ่งที่มีการใช้การเข้ารหัสได้ง่ายขึ้น นอกจากนี้บัญชี checksums (ช่วยเหลือ) สำหรับเด็กที่มีไฟฉาย
ฉันคิดว่าคุณกำลังขอไขควงเป็นค้อน
ความคิดเห็นเหล่านี้เป็นจุดที่แท้จริง ไม่มีอะไรผิดปกติกับการพยายามทดสอบเพื่อเรียนรู้เกี่ยวกับการเข้ารหัส แต่นี่ไม่ใช่โครงการที่ดีสำหรับการเรียนรู้สิ่งต่าง ๆ คุณต้องการหนังสือเรียนและคอมพิวเตอร์ที่ดีและอย่างที่ @bigiain พูดว่าคณิตศาสตร์นั้นผิดพลาดได้ง่าย
เพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับวิธีการทำงานของการเข้ารหัสและสิ่งที่คุณขัดแย้งคู่มือของการเข้ารหัสประยุกต์นั้นยอดเยี่ยมและฟรี:
หากคุณเพียงต้องการรักษาความปลอดภัยให้กับโครงการของคุณนี่เป็นวิธีที่ไม่มีประสิทธิภาพในการทำเช่นนั้น หากคุณสนใจการเข้ารหัสเริ่มต้นด้วยหนังสือเล่มนี้และคอมพิวเตอร์