บทนำ Connway's Game of Life
แอพพลิ้วเพื่อจำลองการเติบโตและการควบคุมของกริดเซลล์ตามแนวคิดของ "เกมชีวิตของคอนน์เวย์" เพื่อสาธิต "เซลล์ออโตมาตา"
ออโตมาตาเซลลูลาร์:
เซลล์ออโตมาตา (CA) เป็นแบบจำลองทางคณิตศาสตร์สำหรับการจำลองระบบที่ซับซ้อน โดยทั่วไปจะแสดงเป็นตารางของเซลล์ที่สามารถอยู่ในหนึ่งในจำนวนจำกัดของสถานะ เซลล์จะเปลี่ยนสถานะตามชุดของกฎที่กำหนดว่าสถานะของมันได้รับอิทธิพลจากสถานะของเซลล์โดยรอบอย่างไร สิ่งนี้สร้างรูปแบบและโครงสร้างที่พัฒนาไปตามกาลเวลา ซึ่งมักจะก่อให้เกิดพฤติกรรมที่ซับซ้อนและดูเหมือนฉลาด CA ใช้ในหลากหลายสาขา รวมทั้งฟิสิกส์ ชีววิทยา และวิทยาการคอมพิวเตอร์ เพื่อศึกษาปรากฏการณ์ต่างๆ ตั้งแต่การก่อตัวแบบแผนไปจนถึงการจัดระบบตนเองและพฤติกรรมที่เกิดขึ้นใหม่
เกมแห่งชีวิตของ Connway:
Conway's Game of Life เป็นหุ่นยนต์เซลลูลาร์ที่เสนอครั้งแรกโดยนักคณิตศาสตร์ John Horton Conway ในปี 1970 เป็นการจำลองกฎง่ายๆ ที่สามารถสร้างรูปแบบที่ซับซ้อนและน่าสนใจได้
การจำลองเกิดขึ้นบนตารางสองมิติของเซลล์ โดยแต่ละเซลล์เป็นเซลล์ที่ "มีชีวิต" หรือ "ตายแล้ว" ในแต่ละขั้นตอน สถานะของแต่ละเซลล์จะได้รับการอัปเดตตามสถานะของเซลล์ข้างเคียงแปดเซลล์ตามกฎต่อไปนี้:
ถ้าเซลล์หนึ่งมีชีวิตและมีเพื่อนบ้านที่มีชีวิตสองหรือสามเซลล์ แสดงว่าเซลล์นั้นยังคงมีชีวิตอยู่ ถ้าเซลล์ใดเซลล์หนึ่งตายและมีเพื่อนบ้านที่ยังมีชีวิตอยู่สามเซลล์พอดี เซลล์นั้นจะมีชีวิตขึ้นมา ในกรณีอื่นๆ ทั้งหมด เซลล์จะตายหรือยังคงตายอยู่ กฎง่ายๆ เหล่านี้สามารถสร้างรูปแบบตั้งแต่ออสซิลเลเตอร์ธรรมดาไปจนถึงรูปร่างที่ซับซ้อนซึ่งค่อยๆ พัฒนาไปตามกาลเวลา เกมแห่งชีวิตมักถูกใช้เป็นตัวอย่างของออโตมาตาระดับเซลล์และได้รับการศึกษาอย่างกว้างขวางโดยนักคณิตศาสตร์ นักวิทยาศาสตร์คอมพิวเตอร์ และนักวิจัยคนอื่นๆ ที่สนใจในระบบที่ซับซ้อนและพฤติกรรมที่เกิดขึ้นใหม่
คุณลักษณะการทดลอง - คีย์การเข้ารหัสแบบสมมาตร/การสร้าง IV:
ด้วยธรรมชาติของออโตมาตอนเซลลูลาร์และวิธีที่มันดำเนินผ่านสถานะจำกัดหลายสถานะ จึงสามารถใช้สร้างตัวเลข/สตริงสุ่มเทียมซึ่งอาจตอบสนองวัตถุประสงค์ของคีย์เข้ารหัสลับ การสร้างคีย์สมมาตรหมายถึงกระบวนการสร้างคีย์ลับที่สามารถใช้ในการเข้ารหัสและถอดรหัสข้อมูลได้อย่างปลอดภัย ในแนวทางนี้ CA จะเริ่มต้นด้วยสถานะเริ่มต้นแบบสุ่ม จากนั้นจึงใช้กฎซ้ำๆ เพื่อสร้างลำดับของสถานะ จากนั้นลำดับของสถานะจะถูกแปลงเป็นลำดับของตัวเลขที่สามารถใช้เป็นรหัสลับได้ ข้อดีของการใช้ CA สำหรับการสร้างคีย์สมมาตรคือลำดับผลลัพธ์ของตัวเลขนั้นสุ่มมากและคาดเดาไม่ได้ ซึ่งทำให้ผู้โจมตีคาดเดาคีย์ได้ยากมาก นอกจากนี้ CA ยังสามารถกำหนดค่าได้อย่างง่ายดายเพื่อสร้างคีย์ที่มีความยาวต่างๆ กัน ซึ่งทำให้เหมาะสำหรับแอปพลิเคชันการเข้ารหัสที่หลากหลาย
ข้อมูลจำเพาะ:
ต่อไปนี้คือรายละเอียดการใช้งานเฉพาะสำหรับฟีเจอร์ทดลองนี้:
คีย์การเข้ารหัสเหล่านี้สร้างขึ้นโดยใช้สถานะปัจจุบันของ Cellular Automaton :
ในช่วงเวลาของการสร้างคีย์ สถานะปัจจุบัน/การสร้างออโตมาตอนเซลลูลาร์จะถูกแปลงเป็นสตริงไบนารี -> 1 สำหรับชีวิต / 0 สำหรับตาย
สตริงไบนารีนี้จะถูกแบ่งออกเป็นสตริงย่อยที่ 12 และแต่ละสตริงย่อยจะถูกแปลงเป็นจำนวนเทียบเท่าทศนิยม
ตัวเลขเหล่านี้จะถูกเข้ารหัสเป็นอักขระแต่ละตัว สตริงของอักขระศัพท์แสงจึงถูกสร้างขึ้น สตริงนี้จะถูกแบ่งออกเป็นสองส่วนซึ่งใช้เพื่อสร้างรหัสลับและเวกเตอร์การเริ่มต้น
แต่ละครึ่งของสองส่วนนี้จะได้รับการเข้ารหัส UTF-8 และการแฮช SHA-256
จากนั้น 16 ไบต์แรกของทั้งสองครึ่งจะถูกแปลงเป็นคีย์และ IV ตามลำดับ
อัลกอริทึมที่ใช้ในการทดสอบคีย์สมมาตรที่สร้างขึ้นคือ AES (มาตรฐานการเข้ารหัสขั้นสูง) ฉันใช้แพ็คเกจตัวเข้ารหัสสำหรับการนำอัลกอริทึม AES ไปใช้ เนื่องจากจุดประสงค์ของฉันคือการแสดงการสร้างคีย์เท่านั้น ไม่ได้นำอัลกอริทึมการเข้ารหัสใดๆ มาใช้ซ้ำ
ออโตมาตาเซลลูลาร์:
เซลล์ออโตมาตา (CA) เป็นแบบจำลองทางคณิตศาสตร์สำหรับการจำลองระบบที่ซับซ้อน โดยทั่วไปจะแสดงเป็นตารางของเซลล์ที่สามารถอยู่ในหนึ่งในจำนวนจำกัดของสถานะ เซลล์จะเปลี่ยนสถานะตามชุดของกฎที่กำหนดว่าสถานะของมันได้รับอิทธิพลจากสถานะของเซลล์โดยรอบอย่างไร สิ่งนี้สร้างรูปแบบและโครงสร้างที่พัฒนาไปตามกาลเวลา ซึ่งมักจะก่อให้เกิดพฤติกรรมที่ซับซ้อนและดูเหมือนฉลาด CA ใช้ในหลากหลายสาขา รวมทั้งฟิสิกส์ ชีววิทยา และวิทยาการคอมพิวเตอร์ เพื่อศึกษาปรากฏการณ์ต่างๆ ตั้งแต่การก่อตัวแบบแผนไปจนถึงการจัดระบบตนเองและพฤติกรรมที่เกิดขึ้นใหม่
เกมแห่งชีวิตของ Connway:
Conway's Game of Life เป็นหุ่นยนต์เซลลูลาร์ที่เสนอครั้งแรกโดยนักคณิตศาสตร์ John Horton Conway ในปี 1970 เป็นการจำลองกฎง่ายๆ ที่สามารถสร้างรูปแบบที่ซับซ้อนและน่าสนใจได้
การจำลองเกิดขึ้นบนตารางสองมิติของเซลล์ โดยแต่ละเซลล์เป็นเซลล์ที่ "มีชีวิต" หรือ "ตายแล้ว" ในแต่ละขั้นตอน สถานะของแต่ละเซลล์จะได้รับการอัปเดตตามสถานะของเซลล์ข้างเคียงแปดเซลล์ตามกฎต่อไปนี้:
ถ้าเซลล์หนึ่งมีชีวิตและมีเพื่อนบ้านที่มีชีวิตสองหรือสามเซลล์ แสดงว่าเซลล์นั้นยังคงมีชีวิตอยู่ ถ้าเซลล์ใดเซลล์หนึ่งตายและมีเพื่อนบ้านที่ยังมีชีวิตอยู่สามเซลล์พอดี เซลล์นั้นจะมีชีวิตขึ้นมา ในกรณีอื่นๆ ทั้งหมด เซลล์จะตายหรือยังคงตายอยู่ กฎง่ายๆ เหล่านี้สามารถสร้างรูปแบบตั้งแต่ออสซิลเลเตอร์ธรรมดาไปจนถึงรูปร่างที่ซับซ้อนซึ่งค่อยๆ พัฒนาไปตามกาลเวลา เกมแห่งชีวิตมักถูกใช้เป็นตัวอย่างของออโตมาตาระดับเซลล์และได้รับการศึกษาอย่างกว้างขวางโดยนักคณิตศาสตร์ นักวิทยาศาสตร์คอมพิวเตอร์ และนักวิจัยคนอื่นๆ ที่สนใจในระบบที่ซับซ้อนและพฤติกรรมที่เกิดขึ้นใหม่
คุณลักษณะการทดลอง - คีย์การเข้ารหัสแบบสมมาตร/การสร้าง IV:
ด้วยธรรมชาติของออโตมาตอนเซลลูลาร์และวิธีที่มันดำเนินผ่านสถานะจำกัดหลายสถานะ จึงสามารถใช้สร้างตัวเลข/สตริงสุ่มเทียมซึ่งอาจตอบสนองวัตถุประสงค์ของคีย์เข้ารหัสลับ การสร้างคีย์สมมาตรหมายถึงกระบวนการสร้างคีย์ลับที่สามารถใช้ในการเข้ารหัสและถอดรหัสข้อมูลได้อย่างปลอดภัย ในแนวทางนี้ CA จะเริ่มต้นด้วยสถานะเริ่มต้นแบบสุ่ม จากนั้นจึงใช้กฎซ้ำๆ เพื่อสร้างลำดับของสถานะ จากนั้นลำดับของสถานะจะถูกแปลงเป็นลำดับของตัวเลขที่สามารถใช้เป็นรหัสลับได้ ข้อดีของการใช้ CA สำหรับการสร้างคีย์สมมาตรคือลำดับผลลัพธ์ของตัวเลขนั้นสุ่มมากและคาดเดาไม่ได้ ซึ่งทำให้ผู้โจมตีคาดเดาคีย์ได้ยากมาก นอกจากนี้ CA ยังสามารถกำหนดค่าได้อย่างง่ายดายเพื่อสร้างคีย์ที่มีความยาวต่างๆ กัน ซึ่งทำให้เหมาะสำหรับแอปพลิเคชันการเข้ารหัสที่หลากหลาย
ข้อมูลจำเพาะ:
ต่อไปนี้คือรายละเอียดการใช้งานเฉพาะสำหรับฟีเจอร์ทดลองนี้:
คีย์การเข้ารหัสเหล่านี้สร้างขึ้นโดยใช้สถานะปัจจุบันของ Cellular Automaton :
ในช่วงเวลาของการสร้างคีย์ สถานะปัจจุบัน/การสร้างออโตมาตอนเซลลูลาร์จะถูกแปลงเป็นสตริงไบนารี -> 1 สำหรับชีวิต / 0 สำหรับตาย
สตริงไบนารีนี้จะถูกแบ่งออกเป็นสตริงย่อยที่ 12 และแต่ละสตริงย่อยจะถูกแปลงเป็นจำนวนเทียบเท่าทศนิยม
ตัวเลขเหล่านี้จะถูกเข้ารหัสเป็นอักขระแต่ละตัว สตริงของอักขระศัพท์แสงจึงถูกสร้างขึ้น สตริงนี้จะถูกแบ่งออกเป็นสองส่วนซึ่งใช้เพื่อสร้างรหัสลับและเวกเตอร์การเริ่มต้น
แต่ละครึ่งของสองส่วนนี้จะได้รับการเข้ารหัส UTF-8 และการแฮช SHA-256
จากนั้น 16 ไบต์แรกของทั้งสองครึ่งจะถูกแปลงเป็นคีย์และ IV ตามลำดับ
อัลกอริทึมที่ใช้ในการทดสอบคีย์สมมาตรที่สร้างขึ้นคือ AES (มาตรฐานการเข้ารหัสขั้นสูง) ฉันใช้แพ็คเกจตัวเข้ารหัสสำหรับการนำอัลกอริทึม AES ไปใช้ เนื่องจากจุดประสงค์ของฉันคือการแสดงการสร้างคีย์เท่านั้น ไม่ได้นำอัลกอริทึมการเข้ารหัสใดๆ มาใช้ซ้ำ
เพิ่มเติม