== **Programmable Metamaterial Antenna For Physical Layer Security** **Members:** Dylan Turner [UG], Prachi Patel [UG] **Project Advisors and Mentors:** Narayan Mandayam, ____ Wu, Hariharan Venkat == **PROJECT OVERVIEW** With the advent of the Internet of Things (IoT) revolution, there is an increasing need to develop low-cost physical layer security protocols for devices. This will reduce the computational power that is required and propagate energy savings to potentially tens of billions of IoT devices. This project proposes a computationally simpler solution that uses Metamaterial antenna arrays that scramble the signal for eavesdroppers from undesired directions. This is called Directional Modulation. [[Image()]] Previous researchers who have worked on this idea have successfully used Directional Modulation to securely transmit small amounts of data using low bandwidth. A problem arises however when larger amounts of data are transmitted, which require more bandwidth. It turns out that the Metamaterial Antenna is frequency-dependent. This means data sent on subcarrier waves with large differences in frequency ranges will be affected differently by the antenna, resulting in errors. [[Image(directional_modulation.png, 500px)]] The solution to this problem, and the focus of our research this summer, is called Symbol Precoding. [[Image(symbol_precoding.png, 500px)]] **Technologies:** GNU Radio, == **PROGRESS LOG** **Week 1 (5/28 - 5/30)** [https://docs.google.com/presentation/d/1ulUIl1nBwaNs0O2fuv4TT23h_kQwHrS-2Z11JWm-oBI/edit#slide=id.p Week 1 Presentation] - The first week was spent meeting with our mentor Hariharan Venkat who presented us with a high-level overview of the project. - Spent much of the day reading the research paper and proposal the project is based on, learning fundamental details of the research. - Learned how to interface with the ORBIT and COSMOS test bed, and practiced connecting and sending commands to nodes. **Week 2 (6/3 - 6/6)** [https://docs.google.com/presentation/d/19VzJLyvQnkogVhyedPnv9HPsKJ1T_B-a/edit#slide=id.p3 Week 2 Presentation] - Familiarized with fundamentals of Orthogonal Frequency Division Multiplexing (OFDM). - Attended the Introduction to Linux presentation. - Installed and configured GNU Radio on our local devices. - Investigated how flowgraphs are converted into Python code, as well as the source code of the built-in OFDM_TX block. - Experimented with creating flow graphs in GNU Radio. - Completed a tutorial with our mentor using COSMOS Sandbox 2, transmitting and receiving OFDM signals from two Software Defined Radios (SDR). **Week 3 (6/10 - 6/13)** [https://docs.google.com/presentation/d/1N5e4vqVl3nbtCQe70nQem6DcnjLgENEn/edit#slide=id.p1 Week 3 Presentation] - Learned how to output to file sink in GNU Radio, allowing us to investigate precisely how data is manipulated through the flow graph. - Traced through the flow graph for the OFDM_TX, viewing the binary output of each block and figuring out its purpose. - Studied the implementation and purpose of the Cyclic Redundancy Check (CRC) block. - Wrote a Python script to convert the complex numbers in Single precision IEEE 752 format to decimal for better human readability. - Attempted to find a way to visualize the output of the OFDM Carrier allocator, but ran into issues because we cannot open Embedded Python blocks on Mac OS due to a GNU Radio bug. Resulted to using a Windows Emulator as a workaround. - Created a Custom Python Block which multiplies the first input vectors by the second input vectors. This is an important step for Symbol Precoding, where we multiply the transmitted symbol vector by a precoding vector. **Week 4 (6/17 - 6/20)** [https://docs.google.com/presentation/d/1UFLwZKgYal1GMLySniCYHX0rZEzJ-sFd/edit#slide=id.p1 Week 4 Presentation] - Created custom python blocks to interact with OFDM Carrier Allocator Block: - Prints its output in a readable format. - Multiplies specified carriers by precoded vector. - Studied the math that goes into Symbol Precoding. - Began implementing these functions using Python so we can complete our system and begin testing. **Week 5 (6/24 - 6/27)** [https://docs.google.com/presentation/d/1-oUjhQxZfLdUxi4N1LeEIhOXTh5NGL9K/edit#slide=id.p1 Week 5 Presentation] **Week 6 (7/1 - 7/03)** [https://docs.google.com/presentation/d/1-oUjhQxZfLdUxi4N1LeEIhOXTh5NGL9K/edit#slide=id.p1 Week 6 Presentation]