 Helo semua, nama saya Chien-Chien, dan nama ini adalah Improv heuristik untuk program Lineal Short. Ini adalah kerja yang berjumpa dengan Pei An di Nanyang Teknologi Universiti. Dalam ini, kami memperkenalkan algoritm baru yang mencari implementasi yang baik dengan sistem Lineal untuk memperkenalkan nombor gantung XOR gates yang perlu. Kami memperkenalkan algoritm kami kepada keadaan algoritm art seperti PAS, dan mereka memperkenalkan bahagia apabila kami mencari keadaan yang berjumpa, sehingga memperkenalkan nombor gantung keadaan. Sebelum kami masuk ke dalam bahagian algoritm, biar kami lakukannya ke belakang, sehingga mempunyai motivasi ini. Dalam SPN Cypher, layak difisional menerima hal penting untuk memperkenalkan nombor gantung dengan cepat. Ini bermaksud bahawa, sebab dua tiga tiga tiga tiga tiga tiga yang sangat bergantung, tiga tiga tiga tiga tiga tiga tiga akan sangat berbeza. Ini dikenal segera dengan memperkenalkan tiga tiga tiga tiga dengan tiga tiga tiga tiga yang menerima hal penting. Sebelumnya, kelas ini akan menjadi tiga tiga tiga tiga yang sudah digunakan di layak difisional Cypher. Biasanya, tiga tiga tiga tiga terdapat di tiga tiga tiga tiga tiga tiga tiga. Sebenarnya, tiga tiga tiga yang lebih berkembang berada di layak difisional Cypher atau tiga tiga tiga tiga tiga tiga. Untuk menjelaskan nombor gantung yang diperkenalkan, kita akan pertama memperkenalkan ini menjadi aplikasi metrik yang berkaitan. Seperti yang terjadi, menggantung dengan tiga tiga tiga di layak difisional di layak difisional Cypher ialah menerima aplikasi metrik yang berkaitan. Untuk menjelaskan, tiga tiga tiga di layak difisional Cypher boleh dibuat sebagai tiga tiga tiga metrik dengan bantuan penyelaskan. Di sini ada masalah. Sebenarnya, bagi tiga metrik dan tiga tiga tiga tiga bagaimana boleh saya memanjakan tiga tiga tiga tiga tiga tiga tiga yang perlu diperkenalkan? Pertama, cara yang paling mudah untuk menjelaskan adalah kaitan kecil. Kita memperkenalkan tiga tiga tiga tiga tiga untuk setiap rata dan kemudian kita menjelaskan. Di sini ada contoh, kita biasanya menjelaskan tiga tiga tiga tiga yang kita dapat melihat di sini yang adalah tiga. Ada cara lain untuk menjelaskan adalah kaitan kecil secara. Atau kita boleh menjelaskan di sebuah literat sebagai GXOR. Ini biasanya menjelaskan sebuah tiga tiga tiga tiga secara yang perlu diperkenalkan. Untuk contoh, kita dapat melihat yang X1 dan X2 ada diberkati di Y0 dan Y1. Dan kemudian, jika kita melakukan XOR ini dan menjelaskan sebuah tiga tiga tiga tiga kita dapat benar-benar menggunakan ini untuk memperkenalkan Y0 dan Y1. Dalam contoh, kita hanya perlukan tiga XOR. Sekarang, mari kita menjelaskan algoritm barat. Ideal ini sangat mudah. Kita mulakan dengan memperkenalkan tiga tiga tiga tiga dan kemudian kita menggunakan XOR untuk memperkenalkan mereka. Untuk contoh di sini, kita memperkenalkan X0 dan X1. Kita mempunyai dua tiga tiga tiga yang berada di dalam suatu kolom. X0 dan X2, kita mempunyai tiga tiga tiga tiga yang berada di dalam suatu kolom. Kita memperkenalkan semuanya dan kita dapat melihat bahawa X0 dan X4 mempunyai sebuah tiga tiga tiga yang berada di dalam suatu kolom. Oleh itu, kita menggunakan T0 untuk memperkenalkan X0, XOR dan X4. Dan kemudian kita memperkenalkan kolom X0 dan X4 secara tersebut. Oleh itu, dalam keadaan tiga tiga, kita dapat memilih sebuah tiga tiga tiga di dalam suatu kolom dan ini juga digunakan sebagai T1. Pada pilihan kedua, kita juga dapat memperkenalkan semua kemungkinan tersebut. Dan dalam kes itu, ia akan menjadi T2. Sekarang, mari kita bercakap tentang algoritm boya payatas yang tersebut. Algoritm Bp adalah algoritm yang lebih terkenal dan juga mempunyai kemungkinan tersebut. Namun, ia dapat membuat kemungkinan tersebut yang lebih baik. Dalam algoritm Bp, set S memperkenalkan dengan basis standar E1 atau EN. Kemudian, kita juga memperkenalkan kemungkinan dari set S kemungkinan tersebut. Semua kemungkinan tersebut adalah juga terkenal sebagai target yang kemudian kita ingin mencapai. Dalam kemungkinan tersebut adalah memerlukan kemungkinan yang tersebut dari set S ke kemungkinan tersebut. Dalam kemungkinan tersebut, sejak S hanya mempunyai basis standar, kemungkinan tersebut akan menjadi kemungkinan kemungkinan tersebut. Dalam setiap algoritm Bp, kita memilih dua element dari set S dan mengambil semua mereka bersama untuk mendapat kemungkinan baru. Kemudian, kita memperkenalkan kemungkinan dari set S dengan kemungkinan baru kemungkinan tersebut. Tidaklah, untuk kemungkinan tersebut, anda akan berubah sama atau berkurung dengan satu. Sejak kita memilih dua element dari set S untuk mengambil kemungkinan baru, kita nampak sebenarnya banyak kemungkinan yang berbeda yang kita dapat memilih. Oleh itu, kita perlukan kemungkinan tersebut untuk memilih kemungkinan yang terbaik daripada semua kemungkinan. Apabila sebuah kemungkinan tersebut kemungkinan tersebut kemungkinan tersebut kemungkinan tersebut dan kemungkinan tersebut lagi, kemungkinan tersebut akan termasuk setiap setiap kemungkinan tersebut di set S. Di algoritm BP kemungkinan terbaik seperti norm L1 atau kemungkinan tersebut digunakan. Dalam kemungkinan norm L2 atau kemungkinan tersebut akan digunakan sebagai kemungkinan tersebut. Ada juga kemungkinan tersebut digunakan oleh Masoleh, Ta'a dan Oshmawi. Dan itu adalah kemungkinan tersebut kemungkinan tersebut. Seperti BP yang menggunakan norm L1 sebagai kemungkinan tersebut. Kemungkinan tersebut yang dapat digunakan sebagai kemungkinan tersebut. Di sini adalah ilustrasi bagaimana kemungkinan tersebut yang berbeda. Ada juga kemungkinan tersebut kemungkinan tersebut kemungkinan tersebut. Ada juga kemungkinan tersebut yang dapat digunakan untuk 2,3,2,2,3,4 dan yang kedua, 3,4,1,4,5. Ketuaan BP yang menggunakan yang pertama sehingga dapat digunakan kemungkinan tersebut. Dalam Ketuaan STF ia sebenarnya menggunakan yang kedua sehingga kemungkinan tersebut menggunakan kemungkinan tersebut kemungkinan tersebut. Sekarang, kita boleh bercakap tentang kemungkinan tersebut yang diberikan dalam BP dan bagaimana bagi algoritm PAS. Jadi, semua mereka berlaku tentang kemungkinan tersebut yang menggunakan sebuah leksikografik yang tidak dipercaya semua orang yang lain berguna-guna. Dalam Ketuaan L1 ia berlaku tentang kemungkinan tersebut. Untuk Ketuaan PAS, kita boleh menggunakan kemungkinan tersebut yang sebenarnya menggunakan sebuah leksikografik yang tersebut. Satu solusi yang kita boleh memiliki adalah bahawa apabila kita memiliki lebih daripada satu kemungkinan tersebut kita akan menggantikan satu orang dan kemudian kita akan menggantikan algoritm K-nombor dan kemudian kita akan menggantikan sebuah leksikografik yang tersebut. Dengan menggantikan algoritm ia juga sebuah cara untuk mencari bagaimana kemungkinan tersebut atau bagaimana algoritm sebenarnya berguna-guna. Dalam Ketuaan L1 kita memiliki sebuah kemungkinan tersebut yang menggantikan sebuah leksikografik yang tersebut. Pertama, kita akan memiliki semua kemungkinan tersebut sehingga sekurang-kurangnya sebuah leksikografik yang tersebut. Ketuaan L1 seperti K-nombor, kita akan menggantikan kemungkinan tersebut. Kemudian jika kemungkinan tersebut, kita akan menggantikan kemungkinan L2 kemungkinan tersebut. Di sini adalah kemungkinan tersebut dari kemungkinan tersebut. Jadi lagi, mari kita lihat sekarang kita masih memiliki kemungkinan tersebut 3,4,2,2,4,5. Dan sekarang kita memiliki sebuah kemungkinan tersebut yang adalah 3,3,1,2,4,4. Pertama pada kemungkinan tersebut, kita dapat melihat bahawa hanya memiliki 3 kemungkinan tersebut. Oleh itu, BP akan menggantikan kemungkinan tersebut. Pertama pada kemungkinan tersebut, hanya memiliki sebuah kemungkinan tersebut daripada kemungkinan tersebut. Namun, R3 dan R4 hanya memiliki kemungkinan tersebut. Oleh itu, Ketuaan SDF akan menggantikan kemungkinan tersebut pada kemungkinan tersebut. Namun, ini adalah alat tengah yang Ketuaan kita mahu memilih. Sebabnya untuk Ketuaan kita, setelah membuat beberapa eksperimen dengan Qatir BP kita melihat bahawa Qatir BP menyesuaikan kemungkinan tersebut dengan lalu pengel資. Dan pelajaran kita adalah alat ini sebab kemungkinan tersebut dengan kemungkinan tersebut sedang memiliki hal yang lebih mahal dengan hal yang tinggi. Untuk kemungkinan tersebut dengan hal yang rendah dan sebab ia tersebut All the rows with high handling rates will gain the priority as compared to low handling rates. We can see that as a clustering of the target on the rows on the var end and BP travels towards them first. On the other hand, the STF Criterion visits the nearest target first, solving this issue. However, because it is only focused on the nearest distance, it is unable to choose a good path for the next target ahead. What we really want is something in between them. While we still have to visit the targets with high distance eventually, what we want is that targets with low distance will be a stepping stone towards them. Next, we also did some local optimization after obtaining the circuits from our algorithm. First, we apply YOSIS, which is a very long RTL synthesis tool that does some optimization. Also, we introduce some local optimization techniques. One of them is actually shown over here. Suppose that we have part of a circuit that's shown over here, and we decided that we want to analyze T3. So T3 is actually made up of T1, XOR, X2. And T1, if you look further down, is actually made up of X0, XOR, X1. Then we permitted X0, X1, X2 to get the other possible trees out of it. So the first one is actually implemented in the circuit itself. The second and the third are the other possible ways to actually compute T3. Now, if you look at the second tree, the second tree actually made up of T2. In this case, we can actually write T3 as T2, XOR, X1. And let's say if we rewrite this into the circuit, we notice that T1 has no place in this circuit anymore. And therefore, T1 can be removed. This is the basis of how the local optimization actually work in order to shave off a few more XORs out of the circuit. Over here, we show the results of comparing our algorithm with the BP algorithm on random matrices. To recall, A1 refers to the one without the tie breaker, and A2 refers to the one with the tie breaker. We use random matrices of size 15 by 15 to 20 by 20, and densities spread across 0.1 to 0.9. The improvement is more obvious when we increase the size and picking when the density is about 0.4 to 0.6. This table shows the percentage of the best circuit obtained by each of the algorithm. Note that this percentage don't add up to be 100% because some of them actually share the same number of XORs. And you can see A2 is the one that is leading the chart. Next, we also ran our algorithms on the matrices from Tuval and Lola. These matrices are specially crafted MDS matrices, which focus on reducing the amount of XOR gates required for them. In this table, we showed the amount of XOR required for the construction, as well as the other algorithms. For a fair comparison, we are not comparing our algorithms with the construction cost, as the construction is specialised to each individual matrix. However, interestingly, A2 has managed to get a lower XOR count for some of the matrices as compared to the construction cost. As for the other algorithms, the BP Ba2, RSTF refers to a randomised version of the shortest distance first algorithm. RMBP refers to the randomised BP algorithm. And A1 and A2 are introduced as before. So we can see that over here, A2 has been getting the lowest XOR count compared to other algorithms for most of the matrices. Note that this table actually shows the XOR count for the 16x16 matrices. In this table, we showed the XOR count of the 32x32 matrices. In this table, we can see that RMBP and A2 are the ones getting the lowest XOR count. Next, we also ran our algorithm on the AES mixed column matrix. And with A2, we managed to obtain a circuit of 94xOR. Very recently, 2 papers have further improved our results for AES matrix to 92xOR. In conclusion, A1 and A2 quadruples perform the best when the densities of the matrices are about half. While the savings for these matrices right now are just a few xORs, that's because the matrix size itself is not large. The eventual goal is actually to target larger matrices such as the ones used in low MC cipher. In those cases, the savings will become significant. However, our algorithm is very BP-like, which makes it too costly if the matrix grows very large. This is mainly due to the distance checking function that actually checks all possible combinations in order to know the exact distance. Next, we believe there are more techniques in local optimisation may actually lead to an even lower xOR count. And this has a very very huge area to explore. Lastly, the average cost of implementing a matrix with a density 0.9 it's actually less than 1 with a density of 0.2. Most of the ciphers out there use matrices that are lightweight in nature because of their low implementation cost. However, with the improvements in algorithms for linear program selectives, we may actually wider the search for MDS matrices or near MDS matrices in order to use in ciphers. With that, I conclude my presentation. Thank you for your attention.