Parallel ımplementatıon of aes algorıthm usıng cuda & MPI
- Global styles
- Apa
- Bibtex
- Chicago Fullnote
- Help
Abstract
Bugünün standartlarını göre hayat onlıne olarak ilerlemektedir. İnsanlar mutfak alışverişlerini, elektornik eşyalarının internet üzerinden satın alıyorlar, internet üzerinden arkadaşlık kurup flört ediyorlar, bankacılık işlemlerini online olarak gerçekleştiriyorlar. Hatta, baz internet siteleri uzerinden, online dersler verilerek insanlarn lisans eğgitiminde ihtiyaç duydugu dersleri önceden almasının imkanı sağlanıyor. Bazı devletler, uzak ülkelerdeki askeri birliklerine veya elçiliklerine gönderilmesi gereken hassas bilgilerini internet uzerinde bulunan bulut çözümlerine yükleyebiliyorlar. Bu verilerin, hassaslıklar nedeniyle, yetkisiz erişime karşı korunması gerekiyor. 2000 yılının ekim ayında, Amerikan hükumeti tarafından ulusal standard olarak AES algoritması kabul edilmiştir. Kriptografı, temel olarak, verinin bütünlüğgünü, gizliliğini ve kaynağınının doğrulanmasını hedefleyen matematik metodlardan oluşmaktadır. Kriptografi, verinin gizliliğinin ve bütünlüğünün korunması icin güzel bir yöntem olmasına rağmen yine de zaman ve hesaplama gücüne ihtiyaç duymaktadır. Günümüzde bilgisayarlar Gigahertz olarak ölçülen yüksek işlemci frekanslarına ulaşmışlardır. Ancak, boyutu 1GB'dan büyük bir dosya şifrelenmek istendiğinde, yaklaşık olarak 10 dakikadan daha uzun bir süreye ihtiyaç duyulabilmektedir. Bankacılık işslemleri göze alındığında ise, zaman, pahalı bir kaynaktır. Ayrıca bireyler, günümüzde oldukça pahalı ekran kartları kullanmaktadırlar. Bu ekran kartlarından bazları neredeyse normal işlemcilerden bile daha güçlüdürler. Bu donanımları (ekran kartlar ve islemciler) kullanabilmek için birtakım hazr kütüphaneler bulunmaktadır. OpenMPI ve CUDA bu kütüphanelerden ikisidir. OpenMPI, programcıya CPU üzerinde kodunu parallel olarak çalıştırma ve bilgisayarın bütün işlemcilerini kullanma imkanı sunarken, CUDA ise, aynı kodun ekran kartı üzerinde çalıştırılmasına imkan sağlamaktadır. Ekran kartı üzerinde çalıştırılan bu kod, bütün çekirdekleri kullanarak, paralel olabileceği gibi, seri olarak da geliştirilebilir. Bu çalışmanın amacı, AES algaritmasını hem OpenMPI, hem de CUDA kütüphanelerini kullanarak paralelleştirmek ve AES'in orjinal seri kodu ile paralelleştirilmiş kodları calışma süeleri açısından kıyaslamaktır. According to today's standards, life goes online. People do their shopping and buying electronics through online stores. They date online and banks are transferring money online. Even, bachelor courses are online. Also, governments may keep their sensitive data such as tactical information for troops or messages for embassies on cloud computing systems which might be located on other countries. Because of its sensitivity, these type of data must be protected from unauthorized access and its integrity should be guaranteed. Cryptography is based on mathematical techniques which concentrated on data confidentiality, integrity and origin authentication. Encryption Standard (AES) is the national standard of U.S. which is accepted by U.S. government on October 2000. Encryption is a good way to protect data integrity and confidentiality. Still, encryption requires time and computation power. Today, computers have reached high clocking speed measured by Gigahertz. If one tries to encrypt a data over 1GB it could take more 10 than minutes to nish the operation. Upon thinking of computers, they come with multiple processors. Also, today we have very expensive GPUs installed in our computer cases. These GPUs are almost powerful than CPUs. There are several libraries to get full advantage of CPUs and GPUs. Two examples for these libraries are OpenMPI and CUDA. While OpenMPI allows developer to use all CPUs parallelly, CUDA allows developer to submit his/her code to run on GPU. The application running on GPU might be a serial application or parallel application divided to GPU cores. This study aims to paralleling AES algorithm using both OpenMPI and CUDA libraries and comparing time dierences between these two methods and classical serial method on a CPU.
Collections