SlideShare a Scribd company logo
Provably Secure Nested One-Time Secret Mechanisms for Fast 
Mutual Authentication and Key Exchange in Mobile 
Communications 
Modules: 
· User 
· VLR Verification 
· HLR Verification 
· Key Generation 
· Nested one-time secret 
· Secure Mobile Communication 
User: 
In this module to send data with create one time secret key and then use symmetric encryption 
key and “challenge-response” techniques were adopted to build their protocol. To implement the 
fast mutual authentication and Nested one-time secret agreement, the proposed protocol contains 
two stages: namely initial procedure and real execution stage. Since the lightweight public key 
cryptography is employed, their protocol can not only overcome the security flaws of secret-key 
based authentication protocols such as those used in Global System for Mobile Communications 
(GSM) and Universal Mobile Telecommunications System, but also provide greater security and 
lower computational complexity in comparison with currently well-known public key based 
wireless authentication schemes.
VLR Verification 
This module receive client key then store hash table and also receive client request then check 
client key. That key is same the server give the response otherwise disconnect our 
communication state. This module watch client communication area location any changes this 
location automatically disconnect the communication state. This module gets current date time 
and also a user identity then send to the HLR. 
Screen Shots:
Main Form: 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
using System.Security.Cryptography; 
using System.Threading; 
using RSACryptoPad; 
using System.Net.Sockets; 
using System.Runtime.Serialization.Formatters.Binary; 
using System.Net; 
using ChatClient; 
namespace User 
{ 
public partial class MainForm : Form 
{ 
public MainForm() 
{ 
InitializeComponent(); 
} 
// 
//RANDOM NUMBER AND DELEGATES DECLARATION 
// 
public static string VLR_IpAddress; 
public static int currentKeyValue = 0; 
public static int currentRandomNumber = 0;
public delegate void FinishedProcessDelegate(); 
public delegate void UpdateBitStrengthDelegate(int bitStrength); 
public delegate void UpdateTextDelegate(string inputText); 
private string publicAndPrivateKeys; 
private string fileString,ServerKey; 
// 
//NETWORK RELATED DECLARATION 
// 
private NetworkStream stream2User; 
private BinaryFormatter StreamBinaryUser; 
private TcpClient UserTcpClient; 
// 
//LOCAL STRING DECLARATION 
// 
private Thread t1,UserListern; 
private bool connected; 
string Key; 
private int RandomNumber,CheckRandomNumber; 
string EncryptFile; 
private void decriptionToolStripMenuItem_Click(object sender, 
EventArgs e) 
{ 
} 
public static void Key_Value(int Value) 
{ 
currentKeyValue = Value; 
} 
private void FinishedProcess() 
{ 
Application.DoEvents(); 
} 
private void UpdateText(string inputText) 
{ 
rtxtbDisplay.Text = inputText; 
EncryptFile = inputText.ToString(); 
} 
public static void Random_Number(int RandomValue) 
{ 
currentRandomNumber = RandomValue; 
} 
private void keyGenerateToolStripMenuItem_Click(object sender, 
EventArgs e) 
{ 
if (currentKeyValue!=0||currentRandomNumber!=0) 
{
MessageBox.Show("Already Generate Key And Number ", 
"TimeStamp Based Approach", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 
else 
{ 
KeyGenerator obj = new KeyGenerator(); 
obj.ShowDialog(); 
} 
} 
public static void Ip_Address(string VLR_Ip_Address) 
{ 
VLR_IpAddress = VLR_Ip_Address; 
} 
private void iFormPanel1_Paint(object sender, PaintEventArgs e) 
{ 
//txtSend.Text = currentKeyValue.ToString(); 
if (rtxtbDisplay.Text.Length > 2) 
{ 
} 
else 
{ 
rtxtbDisplay.Text = currentRandomNumber.ToString(); 
txtUserRandomNumber.Text = currentRandomNumber.ToString(); 
txtUserKey.Text = currentKeyValue.ToString(); 
} 
} 
//Key Generate Method 
public void KeyGenerate() 
{ 
RSACryptoServiceProvider RSAProvider = new 
RSACryptoServiceProvider(currentKeyValue); 
publicAndPrivateKeys = "<BitStrength>" + 
currentKeyValue.ToString() + "</BitStrength>" + RSAProvider.ToXmlString(true); 
fileString = publicAndPrivateKeys.ToString(); 
} 
//Create Encription Method 
public void Encryption() 
{ 
if (fileString != null) 
{ 
FinishedProcessDelegate finishedProcessDelegate = new 
FinishedProcessDelegate(FinishedProcess); 
UpdateTextDelegate updateTextDelegate = new 
UpdateTextDelegate(UpdateText); 
string bitStrengthString = fileString.Substring(0, 
fileString.IndexOf("</BitStrength>") + 14); 
fileString = fileString.Replace(bitStrengthString, ""); 
int bitStrength = 
Convert.ToInt32(bitStrengthString.Replace("<BitStrength>", 
"").Replace("</BitStrength>", "")); 
if (fileString != null)
{ 
try 
{ 
EncryptionThread encryptionThread = new 
EncryptionThread(); 
Thread encryptThread = new 
Thread(encryptionThread.Encrypt); 
encryptThread.IsBackground = true; 
encryptThread.Start(new Object[] { this, 
finishedProcessDelegate, updateTextDelegate, rtxtbDisplay.Text, bitStrength, 
fileString }); 
} 
catch (CryptographicException CEx) 
{ MessageBox.Show("ERROR: nOne of the following has 
occured.nThe cryptographic service provider cannot be acquired.nThe length 
of the text being encrypted is greater than the maximum allowed length.nThe 
OAEP padding is not supported on this computer.n" + "Exact error: " + 
CEx.Message); } 
catch (Exception Ex) 
{ MessageBox.Show("ERROR: n" + Ex.Message); } 
} 
} 
} 
private void encriptionToolStripMenuItem_Click(object sender, 
EventArgs e) 
{ 
if (rtxtbDisplay.Text.Length > 3) 
{ 
if (currentKeyValue == 0 || currentRandomNumber == 0) 
{ 
MessageBox.Show("RandomNumber And Key values are NULL", 
"TimeStamp Based Approach", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 
else 
{ 
if (EncryptFile != null) 
{ 
MessageBox.Show("Encryption Already Created", 
"TimeStamp Based Approach", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 
else 
{ 
//Call Key Generation Method 
KeyGenerate(); 
//Call Encryption Method 
Encryption(); 
} 
} 
} 
else 
{ 
MessageBox.Show("Encryption Fields Are Empty", "User_Form", 
MessageBoxButtons.OK, MessageBoxIcon.Information); 
}
} 
private void iFormGlassButton5_Click(object sender, EventArgs e) 
{ 
RSACryptoServiceProvider RSAProvider = new 
RSACryptoServiceProvider(currentKeyValue); 
string publicAndPrivateKeys = "<BitStrength>" + 
currentKeyValue.ToString() + "</BitStrength>" + RSAProvider.ToXmlString(true); 
string fileString = publicAndPrivateKeys.ToString(); 
if (fileString != null) 
{ 
FinishedProcessDelegate finishedProcessDelegate = new 
FinishedProcessDelegate(FinishedProcess); 
UpdateTextDelegate updateTextDelegate = new 
UpdateTextDelegate(UpdateText); 
string bitStrengthString = fileString.Substring(0, 
fileString.IndexOf("</BitStrength>") + 14); 
fileString = fileString.Replace(bitStrengthString, ""); 
int bitStrength = 
Convert.ToInt32(bitStrengthString.Replace("<BitStrength>", 
"").Replace("</BitStrength>", "")); 
if (fileString != null) 
{ 
try 
{ 
EncryptionThread encryptionThread = new 
EncryptionThread(); 
Thread encryptThread = new 
Thread(encryptionThread.Encrypt); 
encryptThread.IsBackground = true; 
encryptThread.Start(new Object[] { this, 
finishedProcessDelegate, updateTextDelegate, rtxtbDisplay.Text, bitStrength, 
fileString }); 
} 
catch (CryptographicException CEx) 
{ MessageBox.Show("ERROR: nOne of the following has 
occured.nThe cryptographic service provider cannot be acquired.nThe length 
of the text being encrypted is greater than the maximum allowed length.nThe 
OAEP padding is not supported on this computer.n" + "Exact error: " + 
CEx.Message); } 
catch (Exception Ex) 
{ MessageBox.Show("ERROR: n" + Ex.Message); } 
} 
} 
} 
private void Listen() 
{ 
while (connected == true) 
{ 
} 
}
private void sendToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
Ip_Address obj = new Ip_Address(); 
obj.Hide(); 
obj.ShowDialog(); 
if (currentKeyValue == 0 || currentRandomNumber == 0) 
{ 
MessageBox.Show("Generate Random Number And Key", "TimeStamp 
Based Approach", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 
else 
{ 
if (EncryptFile == null) 
{ 
MessageBox.Show("Encrypt First then select Send", 
"TimeStamp Based Approach", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 
else 
{ 
Key = fileString.ToString(); 
RandomNumber = currentRandomNumber; 
string ipaddress = VLR_IpAddress; 
int portnumber = 7000; 
if (connected == false) 
{ 
try 
{ 
StreamBinaryUser = new BinaryFormatter(); 
UserTcpClient = new TcpClient(ipaddress, 
portnumber); 
stream2User = UserTcpClient.GetStream(); 
StreamBinaryUser.Serialize(stream2User, 
publicAndPrivateKeys); 
StreamBinaryUser.Serialize(stream2User, 
RandomNumber); 
StreamBinaryUser.Serialize(stream2User, 
EncryptFile); 
stream2User.Close(); 
UserTcpClient.Close(); 
} 
catch (Exception ex) 
{ 
MessageBox.Show("Destination Has been Off_Mode Or 
Wrong Ip_Address","User 
Send",MessageBoxButtons.OK,MessageBoxIcon.Information); 
} 
} 
} 
}
} 
private void iFormGlassButton1_Click(object sender, EventArgs e) 
{ 
} 
private void clearToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
currentKeyValue = 0; 
currentRandomNumber = 0; 
EncryptFile = null; 
rtxtbDisplay.Text = ""; 
} 
private void MainForm_Load(object sender, EventArgs e) 
{ 
checkToolStripMenuItem.Enabled = false; 
chatToolStripMenuItem.Enabled = false; 
UserListern = new Thread(new 
System.Threading.ThreadStart(User_Recieve)); // Start Thread Session 
UserListern.Start(); 
} 
public void User_Recieve() 
{ 
TcpListener ListernReciever = new TcpListener(IPAddress.Any, 
8000); 
ListernReciever.Start(); 
Socket UserSocket = ListernReciever.AcceptSocket(); 
NetworkStream UserStream = new NetworkStream(UserSocket); 
BinaryFormatter UserFormater = new BinaryFormatter(); 
Control.CheckForIllegalCrossThreadCalls = false; 
object UserRandomNumber, UserKey, ServerEncryptFile, 
ServerSessionKey; 
UserRandomNumber = UserFormater.Deserialize(UserStream); 
UserKey = UserFormater.Deserialize(UserStream); 
ServerEncryptFile = UserFormater.Deserialize(UserStream); 
ServerSessionKey = UserFormater.Deserialize(UserStream); 
UserStream.Close(); 
//UserSocket.Close(); 
ListernReciever.Stop(); 
CheckRandomNumber = int.Parse(UserRandomNumber.ToString()); 
ServerKey = ServerSessionKey.ToString(); 
checkToolStripMenuItem.Enabled = true; 
if (UserSocket.Connected == true) 
{ 
while (true) 
{ 
User_Recieve(); 
} 
} 
}
private void chatToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
Form1 obj = new Form1(ServerKey); 
obj.ShowDialog(); 
} 
private void checkToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
if (CheckRandomNumber == int.Parse(txtUserRandomNumber.Text)) 
{ 
chatToolStripMenuItem.Enabled = true; 
MessageBox.Show("Server is Authenticated", "User Node", 
MessageBoxButtons.OK, MessageBoxIcon.Information); 
txtReturnRandomNumber.Text = 
Convert.ToString(CheckRandomNumber); 
} 
else 
{ 
MessageBox.Show("Server Not Authenticated", "User Node", 
MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 
} 
} 
} 
Ip_Address: 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
namespace User 
{ 
public partial class Ip_Address : Form 
{ 
public Ip_Address() 
{ 
InitializeComponent(); 
} 
private void Ip_Address_Load(object sender, EventArgs e) 
{ 
} 
private void btnSend_Click(object sender, EventArgs e) 
{ 
if (txtIpAddress.Text.Length > 0) 
{ 
User.MainForm.Ip_Address(txtIpAddress.Text);
this.Dispose(true); 
} 
else 
{ 
MessageBox.Show("Give Ip_Address then Click Send", 
"Ip_Address Form", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 
} 
} 
} 
Key Generation Form: 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
using System.Data.SqlClient; 
namespace User 
{ 
public partial class KeyGenerator : Form 
{ 
public KeyGenerator() 
{ 
InitializeComponent(); 
} 
Connection_String obj = new Connection_String(); 
private void btnKeyGenerate_Click(object sender, EventArgs e) 
{ 
User.MainForm.Key_Value(Convert.ToInt32(numericUpDown1.Value)); 
} 
private void btnRandomNumber_Click(object sender, EventArgs e) 
{ 
Random obj = new Random(); 
txtRandomNumber.Text =Convert.ToString(obj.Next()); 
User.MainForm.Random_Number(Convert.ToInt32(txtRandomNumber.Text)); 
//this.DialogResult = DialogResult.OK; 
} 
private void btnSetandExit_Click(object sender, EventArgs e) 
{ 
try 
{ 
SqlConnection sqlcon = new SqlConnection(obj.con);
SqlCommand cmd = new SqlCommand("insert into UserTable 
values('"+numericUpDown1.Value.ToString()+"','"+txtRandomNumber.Text+"')", 
sqlcon); 
sqlcon.Open(); 
cmd.ExecuteNonQuery(); 
sqlcon.Close(); 
this.Dispose(true); 
} 
catch (Exception ex) 
{ 
MessageBox.Show(ex.Message.ToString()); 
} 
} 
} 
} 
Methods of Salving Problem: 
Hwang and Chang proposed a mutual authentication scheme for mobile communications, which 
is briefly described below. First, the notation used in the scheme is defined in Table I. 
The scheme consists of two protocols. The first one is described below.
Id32
Id32

More Related Content

What's hot

Introduction to Restkit
Introduction to RestkitIntroduction to Restkit
Introduction to Restkit
petertmarks
 
Ajax chap 5
Ajax chap 5Ajax chap 5
Ajax chap 5
Mukesh Tekwani
 
The art of reverse engineering flash exploits
The art of reverse engineering flash exploitsThe art of reverse engineering flash exploits
The art of reverse engineering flash exploits
Priyanka Aash
 
Cnam azure 2014 mobile services
Cnam azure 2014   mobile servicesCnam azure 2014   mobile services
Cnam azure 2014 mobile services
Aymeric Weinbach
 
Ajax chap 4
Ajax chap 4Ajax chap 4
Ajax chap 4
Mukesh Tekwani
 
02 - Basics of Qt
02 - Basics of Qt02 - Basics of Qt
02 - Basics of Qt
Andreas Jakl
 
Michał Kopacz: Ports and adapters architecture for business processes
Michał Kopacz: Ports and adapters architecture for business processesMichał Kopacz: Ports and adapters architecture for business processes
Michał Kopacz: Ports and adapters architecture for business processes
RST Software Masters
 
4Developers: Dominik Przybysz- Message Brokers
4Developers: Dominik Przybysz- Message Brokers4Developers: Dominik Przybysz- Message Brokers
4Developers: Dominik Przybysz- Message Brokers
PROIDEA
 
Vb Project ขั้นเทพ
Vb Project ขั้นเทพVb Project ขั้นเทพ
Vb Project ขั้นเทพ
Sinchai Lanon
 
Java Concurrency Idioms
Java Concurrency IdiomsJava Concurrency Idioms
Java Concurrency Idioms
Alex Miller
 
MongoDB Live Hacking
MongoDB Live HackingMongoDB Live Hacking
MongoDB Live Hacking
Tobias Trelle
 
Python packages for blockchain
Python packages for blockchainPython packages for blockchain
Python packages for blockchain
Celine George
 
Java Concurrency Gotchas
Java Concurrency GotchasJava Concurrency Gotchas
Java Concurrency Gotchas
Alex Miller
 
Javascript 2
Javascript 2Javascript 2
Javascript 2
pavishkumarsingh
 
droidQuery: The Android port of jQuery
droidQuery: The Android port of jQuerydroidQuery: The Android port of jQuery
droidQuery: The Android port of jQuery
PhDBrown
 
Code Contracts In .Net
Code Contracts In .NetCode Contracts In .Net
Code Contracts In .Net
Bruce Johnson
 
Ajax chap 2.-part 1
Ajax chap 2.-part 1Ajax chap 2.-part 1
Ajax chap 2.-part 1
Mukesh Tekwani
 
Ajax chap 3
Ajax chap 3Ajax chap 3
Ajax chap 3
Mukesh Tekwani
 
Csphtp1 22
Csphtp1 22Csphtp1 22
Csphtp1 22
HUST
 

What's hot (20)

Introduction to Restkit
Introduction to RestkitIntroduction to Restkit
Introduction to Restkit
 
Ajax chap 5
Ajax chap 5Ajax chap 5
Ajax chap 5
 
The art of reverse engineering flash exploits
The art of reverse engineering flash exploitsThe art of reverse engineering flash exploits
The art of reverse engineering flash exploits
 
Cnam azure 2014 mobile services
Cnam azure 2014   mobile servicesCnam azure 2014   mobile services
Cnam azure 2014 mobile services
 
Ajax chap 4
Ajax chap 4Ajax chap 4
Ajax chap 4
 
02 - Basics of Qt
02 - Basics of Qt02 - Basics of Qt
02 - Basics of Qt
 
Michał Kopacz: Ports and adapters architecture for business processes
Michał Kopacz: Ports and adapters architecture for business processesMichał Kopacz: Ports and adapters architecture for business processes
Michał Kopacz: Ports and adapters architecture for business processes
 
4Developers: Dominik Przybysz- Message Brokers
4Developers: Dominik Przybysz- Message Brokers4Developers: Dominik Przybysz- Message Brokers
4Developers: Dominik Przybysz- Message Brokers
 
Vb Project ขั้นเทพ
Vb Project ขั้นเทพVb Project ขั้นเทพ
Vb Project ขั้นเทพ
 
Java Concurrency Idioms
Java Concurrency IdiomsJava Concurrency Idioms
Java Concurrency Idioms
 
MongoDB Live Hacking
MongoDB Live HackingMongoDB Live Hacking
MongoDB Live Hacking
 
Python packages for blockchain
Python packages for blockchainPython packages for blockchain
Python packages for blockchain
 
Java Concurrency Gotchas
Java Concurrency GotchasJava Concurrency Gotchas
Java Concurrency Gotchas
 
Javascript 2
Javascript 2Javascript 2
Javascript 2
 
droidQuery: The Android port of jQuery
droidQuery: The Android port of jQuerydroidQuery: The Android port of jQuery
droidQuery: The Android port of jQuery
 
Lecture 2 Message Authentication
Lecture 2   Message AuthenticationLecture 2   Message Authentication
Lecture 2 Message Authentication
 
Code Contracts In .Net
Code Contracts In .NetCode Contracts In .Net
Code Contracts In .Net
 
Ajax chap 2.-part 1
Ajax chap 2.-part 1Ajax chap 2.-part 1
Ajax chap 2.-part 1
 
Ajax chap 3
Ajax chap 3Ajax chap 3
Ajax chap 3
 
Csphtp1 22
Csphtp1 22Csphtp1 22
Csphtp1 22
 

Viewers also liked

Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...
Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...
Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...Bundaran Reuk
 
多媒體與數位編輯數字教學作業
多媒體與數位編輯數字教學作業多媒體與數位編輯數字教學作業
多媒體與數位編輯數字教學作業
昱茹 黃
 
My sales for billing
My sales for billing My sales for billing
My sales for billing
yvenkat subbareddy
 
Preposition of place
Preposition of placePreposition of place
Preposition of place
urbana29
 
Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...
Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...
Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...Bundaran Reuk
 
Co profile
Co profileCo profile
Co profile
3angelsaziz
 
多媒體與數位編輯數字教學作業
多媒體與數位編輯數字教學作業多媒體與數位編輯數字教學作業
多媒體與數位編輯數字教學作業
昱茹 黃
 
Demanda de pension de alimento
Demanda de pension de alimentoDemanda de pension de alimento
Demanda de pension de alimentoDarlin_12
 
Kehidupan waria di lingkungan masyarakat
Kehidupan waria di lingkungan masyarakatKehidupan waria di lingkungan masyarakat
Kehidupan waria di lingkungan masyarakat
Nisa Nisa
 
3 Angels
3 Angels3 Angels
3 Angels
3angelsaziz
 
Collections generic
Collections genericCollections generic
Collections generic
sandhish
 
Inter house quiz class 10th by SHQC
Inter house quiz class 10th by SHQCInter house quiz class 10th by SHQC
Inter house quiz class 10th by SHQC
Rhitvik Pasricha
 

Viewers also liked (14)

Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...
Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...
Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...
 
多媒體與數位編輯數字教學作業
多媒體與數位編輯數字教學作業多媒體與數位編輯數字教學作業
多媒體與數位編輯數字教學作業
 
Evaluation q1
Evaluation q1Evaluation q1
Evaluation q1
 
My sales for billing
My sales for billing My sales for billing
My sales for billing
 
Preposition of place
Preposition of placePreposition of place
Preposition of place
 
Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...
Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...
Tatasteelfinancialanalysiswithcommentsontrendandcomparativebalanceshhet 12122...
 
Co profile
Co profileCo profile
Co profile
 
多媒體與數位編輯數字教學作業
多媒體與數位編輯數字教學作業多媒體與數位編輯數字教學作業
多媒體與數位編輯數字教學作業
 
Demanda de pension de alimento
Demanda de pension de alimentoDemanda de pension de alimento
Demanda de pension de alimento
 
Kehidupan waria di lingkungan masyarakat
Kehidupan waria di lingkungan masyarakatKehidupan waria di lingkungan masyarakat
Kehidupan waria di lingkungan masyarakat
 
MY SALES PPT -1-anji
MY SALES PPT -1-anjiMY SALES PPT -1-anji
MY SALES PPT -1-anji
 
3 Angels
3 Angels3 Angels
3 Angels
 
Collections generic
Collections genericCollections generic
Collections generic
 
Inter house quiz class 10th by SHQC
Inter house quiz class 10th by SHQCInter house quiz class 10th by SHQC
Inter house quiz class 10th by SHQC
 

Similar to Id32

Creating an Uber Clone - Part XIII - Transcript.pdf
Creating an Uber Clone - Part XIII - Transcript.pdfCreating an Uber Clone - Part XIII - Transcript.pdf
Creating an Uber Clone - Part XIII - Transcript.pdf
ShaiAlmog1
 
Laporan multi client
Laporan multi clientLaporan multi client
Laporan multi clientichsanbarokah
 
Laporan multiclient chatting client server
Laporan multiclient chatting client serverLaporan multiclient chatting client server
Laporan multiclient chatting client servertrilestari08
 
Speed up your Web applications with HTML5 WebSockets
Speed up your Web applications with HTML5 WebSocketsSpeed up your Web applications with HTML5 WebSockets
Speed up your Web applications with HTML5 WebSockets
Yakov Fain
 
Trip itparsing
Trip itparsingTrip itparsing
Trip itparsingCapIpad
 
AWS IoTで家庭内IoTをやってみた【JAWS DAYS 2016】
AWS IoTで家庭内IoTをやってみた【JAWS DAYS 2016】AWS IoTで家庭内IoTをやってみた【JAWS DAYS 2016】
AWS IoTで家庭内IoTをやってみた【JAWS DAYS 2016】
tsuchimon
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
Steven Beeckman
 
Windows 8 metro applications
Windows 8 metro applicationsWindows 8 metro applications
Windows 8 metro applications
Alex Golesh
 
MVVM e Caliburn Micro for Windows Phone applications
MVVM e Caliburn Micro for Windows Phone applicationsMVVM e Caliburn Micro for Windows Phone applications
MVVM e Caliburn Micro for Windows Phone applications
Matteo Pagani
 
Building interactivity with websockets
Building interactivity with websocketsBuilding interactivity with websockets
Building interactivity with websockets
Wim Godden
 
실시간 인벤트 처리
실시간 인벤트 처리실시간 인벤트 처리
실시간 인벤트 처리Byeongweon Moon
 
Chatting dengan beberapa pc laptop
Chatting dengan beberapa pc laptopChatting dengan beberapa pc laptop
Chatting dengan beberapa pc laptopyayaria
 
13 networking, mobile services, and authentication
13   networking, mobile services, and authentication13   networking, mobile services, and authentication
13 networking, mobile services, and authentication
WindowsPhoneRocks
 
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
Amazon Web Services
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
Shlomi Komemi
 
Creating a Facebook Clone - Part XLV.pdf
Creating a Facebook Clone - Part XLV.pdfCreating a Facebook Clone - Part XLV.pdf
Creating a Facebook Clone - Part XLV.pdf
ShaiAlmog1
 
Arduino and the real time web
Arduino and the real time webArduino and the real time web
Arduino and the real time web
Andrew Fisher
 
Creating a Whatsapp Clone - Part IV.pdf
Creating a Whatsapp Clone - Part IV.pdfCreating a Whatsapp Clone - Part IV.pdf
Creating a Whatsapp Clone - Part IV.pdf
ShaiAlmog1
 
Bot builder v4 HOL
Bot builder v4 HOLBot builder v4 HOL
Bot builder v4 HOL
Cheah Eng Soon
 
How does cryptography work? by Jeroen Ooms
How does cryptography work?  by Jeroen OomsHow does cryptography work?  by Jeroen Ooms
How does cryptography work? by Jeroen Ooms
Ajay Ohri
 

Similar to Id32 (20)

Creating an Uber Clone - Part XIII - Transcript.pdf
Creating an Uber Clone - Part XIII - Transcript.pdfCreating an Uber Clone - Part XIII - Transcript.pdf
Creating an Uber Clone - Part XIII - Transcript.pdf
 
Laporan multi client
Laporan multi clientLaporan multi client
Laporan multi client
 
Laporan multiclient chatting client server
Laporan multiclient chatting client serverLaporan multiclient chatting client server
Laporan multiclient chatting client server
 
Speed up your Web applications with HTML5 WebSockets
Speed up your Web applications with HTML5 WebSocketsSpeed up your Web applications with HTML5 WebSockets
Speed up your Web applications with HTML5 WebSockets
 
Trip itparsing
Trip itparsingTrip itparsing
Trip itparsing
 
AWS IoTで家庭内IoTをやってみた【JAWS DAYS 2016】
AWS IoTで家庭内IoTをやってみた【JAWS DAYS 2016】AWS IoTで家庭内IoTをやってみた【JAWS DAYS 2016】
AWS IoTで家庭内IoTをやってみた【JAWS DAYS 2016】
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
Windows 8 metro applications
Windows 8 metro applicationsWindows 8 metro applications
Windows 8 metro applications
 
MVVM e Caliburn Micro for Windows Phone applications
MVVM e Caliburn Micro for Windows Phone applicationsMVVM e Caliburn Micro for Windows Phone applications
MVVM e Caliburn Micro for Windows Phone applications
 
Building interactivity with websockets
Building interactivity with websocketsBuilding interactivity with websockets
Building interactivity with websockets
 
실시간 인벤트 처리
실시간 인벤트 처리실시간 인벤트 처리
실시간 인벤트 처리
 
Chatting dengan beberapa pc laptop
Chatting dengan beberapa pc laptopChatting dengan beberapa pc laptop
Chatting dengan beberapa pc laptop
 
13 networking, mobile services, and authentication
13   networking, mobile services, and authentication13   networking, mobile services, and authentication
13 networking, mobile services, and authentication
 
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
Creating a Facebook Clone - Part XLV.pdf
Creating a Facebook Clone - Part XLV.pdfCreating a Facebook Clone - Part XLV.pdf
Creating a Facebook Clone - Part XLV.pdf
 
Arduino and the real time web
Arduino and the real time webArduino and the real time web
Arduino and the real time web
 
Creating a Whatsapp Clone - Part IV.pdf
Creating a Whatsapp Clone - Part IV.pdfCreating a Whatsapp Clone - Part IV.pdf
Creating a Whatsapp Clone - Part IV.pdf
 
Bot builder v4 HOL
Bot builder v4 HOLBot builder v4 HOL
Bot builder v4 HOL
 
How does cryptography work? by Jeroen Ooms
How does cryptography work?  by Jeroen OomsHow does cryptography work?  by Jeroen Ooms
How does cryptography work? by Jeroen Ooms
 

Id32

  • 1. Provably Secure Nested One-Time Secret Mechanisms for Fast Mutual Authentication and Key Exchange in Mobile Communications Modules: · User · VLR Verification · HLR Verification · Key Generation · Nested one-time secret · Secure Mobile Communication User: In this module to send data with create one time secret key and then use symmetric encryption key and “challenge-response” techniques were adopted to build their protocol. To implement the fast mutual authentication and Nested one-time secret agreement, the proposed protocol contains two stages: namely initial procedure and real execution stage. Since the lightweight public key cryptography is employed, their protocol can not only overcome the security flaws of secret-key based authentication protocols such as those used in Global System for Mobile Communications (GSM) and Universal Mobile Telecommunications System, but also provide greater security and lower computational complexity in comparison with currently well-known public key based wireless authentication schemes.
  • 2. VLR Verification This module receive client key then store hash table and also receive client request then check client key. That key is same the server give the response otherwise disconnect our communication state. This module watch client communication area location any changes this location automatically disconnect the communication state. This module gets current date time and also a user identity then send to the HLR. Screen Shots:
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. Main Form: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Security.Cryptography; using System.Threading; using RSACryptoPad; using System.Net.Sockets; using System.Runtime.Serialization.Formatters.Binary; using System.Net; using ChatClient; namespace User { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } // //RANDOM NUMBER AND DELEGATES DECLARATION // public static string VLR_IpAddress; public static int currentKeyValue = 0; public static int currentRandomNumber = 0;
  • 9. public delegate void FinishedProcessDelegate(); public delegate void UpdateBitStrengthDelegate(int bitStrength); public delegate void UpdateTextDelegate(string inputText); private string publicAndPrivateKeys; private string fileString,ServerKey; // //NETWORK RELATED DECLARATION // private NetworkStream stream2User; private BinaryFormatter StreamBinaryUser; private TcpClient UserTcpClient; // //LOCAL STRING DECLARATION // private Thread t1,UserListern; private bool connected; string Key; private int RandomNumber,CheckRandomNumber; string EncryptFile; private void decriptionToolStripMenuItem_Click(object sender, EventArgs e) { } public static void Key_Value(int Value) { currentKeyValue = Value; } private void FinishedProcess() { Application.DoEvents(); } private void UpdateText(string inputText) { rtxtbDisplay.Text = inputText; EncryptFile = inputText.ToString(); } public static void Random_Number(int RandomValue) { currentRandomNumber = RandomValue; } private void keyGenerateToolStripMenuItem_Click(object sender, EventArgs e) { if (currentKeyValue!=0||currentRandomNumber!=0) {
  • 10. MessageBox.Show("Already Generate Key And Number ", "TimeStamp Based Approach", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { KeyGenerator obj = new KeyGenerator(); obj.ShowDialog(); } } public static void Ip_Address(string VLR_Ip_Address) { VLR_IpAddress = VLR_Ip_Address; } private void iFormPanel1_Paint(object sender, PaintEventArgs e) { //txtSend.Text = currentKeyValue.ToString(); if (rtxtbDisplay.Text.Length > 2) { } else { rtxtbDisplay.Text = currentRandomNumber.ToString(); txtUserRandomNumber.Text = currentRandomNumber.ToString(); txtUserKey.Text = currentKeyValue.ToString(); } } //Key Generate Method public void KeyGenerate() { RSACryptoServiceProvider RSAProvider = new RSACryptoServiceProvider(currentKeyValue); publicAndPrivateKeys = "<BitStrength>" + currentKeyValue.ToString() + "</BitStrength>" + RSAProvider.ToXmlString(true); fileString = publicAndPrivateKeys.ToString(); } //Create Encription Method public void Encryption() { if (fileString != null) { FinishedProcessDelegate finishedProcessDelegate = new FinishedProcessDelegate(FinishedProcess); UpdateTextDelegate updateTextDelegate = new UpdateTextDelegate(UpdateText); string bitStrengthString = fileString.Substring(0, fileString.IndexOf("</BitStrength>") + 14); fileString = fileString.Replace(bitStrengthString, ""); int bitStrength = Convert.ToInt32(bitStrengthString.Replace("<BitStrength>", "").Replace("</BitStrength>", "")); if (fileString != null)
  • 11. { try { EncryptionThread encryptionThread = new EncryptionThread(); Thread encryptThread = new Thread(encryptionThread.Encrypt); encryptThread.IsBackground = true; encryptThread.Start(new Object[] { this, finishedProcessDelegate, updateTextDelegate, rtxtbDisplay.Text, bitStrength, fileString }); } catch (CryptographicException CEx) { MessageBox.Show("ERROR: nOne of the following has occured.nThe cryptographic service provider cannot be acquired.nThe length of the text being encrypted is greater than the maximum allowed length.nThe OAEP padding is not supported on this computer.n" + "Exact error: " + CEx.Message); } catch (Exception Ex) { MessageBox.Show("ERROR: n" + Ex.Message); } } } } private void encriptionToolStripMenuItem_Click(object sender, EventArgs e) { if (rtxtbDisplay.Text.Length > 3) { if (currentKeyValue == 0 || currentRandomNumber == 0) { MessageBox.Show("RandomNumber And Key values are NULL", "TimeStamp Based Approach", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (EncryptFile != null) { MessageBox.Show("Encryption Already Created", "TimeStamp Based Approach", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { //Call Key Generation Method KeyGenerate(); //Call Encryption Method Encryption(); } } } else { MessageBox.Show("Encryption Fields Are Empty", "User_Form", MessageBoxButtons.OK, MessageBoxIcon.Information); }
  • 12. } private void iFormGlassButton5_Click(object sender, EventArgs e) { RSACryptoServiceProvider RSAProvider = new RSACryptoServiceProvider(currentKeyValue); string publicAndPrivateKeys = "<BitStrength>" + currentKeyValue.ToString() + "</BitStrength>" + RSAProvider.ToXmlString(true); string fileString = publicAndPrivateKeys.ToString(); if (fileString != null) { FinishedProcessDelegate finishedProcessDelegate = new FinishedProcessDelegate(FinishedProcess); UpdateTextDelegate updateTextDelegate = new UpdateTextDelegate(UpdateText); string bitStrengthString = fileString.Substring(0, fileString.IndexOf("</BitStrength>") + 14); fileString = fileString.Replace(bitStrengthString, ""); int bitStrength = Convert.ToInt32(bitStrengthString.Replace("<BitStrength>", "").Replace("</BitStrength>", "")); if (fileString != null) { try { EncryptionThread encryptionThread = new EncryptionThread(); Thread encryptThread = new Thread(encryptionThread.Encrypt); encryptThread.IsBackground = true; encryptThread.Start(new Object[] { this, finishedProcessDelegate, updateTextDelegate, rtxtbDisplay.Text, bitStrength, fileString }); } catch (CryptographicException CEx) { MessageBox.Show("ERROR: nOne of the following has occured.nThe cryptographic service provider cannot be acquired.nThe length of the text being encrypted is greater than the maximum allowed length.nThe OAEP padding is not supported on this computer.n" + "Exact error: " + CEx.Message); } catch (Exception Ex) { MessageBox.Show("ERROR: n" + Ex.Message); } } } } private void Listen() { while (connected == true) { } }
  • 13. private void sendToolStripMenuItem_Click(object sender, EventArgs e) { Ip_Address obj = new Ip_Address(); obj.Hide(); obj.ShowDialog(); if (currentKeyValue == 0 || currentRandomNumber == 0) { MessageBox.Show("Generate Random Number And Key", "TimeStamp Based Approach", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (EncryptFile == null) { MessageBox.Show("Encrypt First then select Send", "TimeStamp Based Approach", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { Key = fileString.ToString(); RandomNumber = currentRandomNumber; string ipaddress = VLR_IpAddress; int portnumber = 7000; if (connected == false) { try { StreamBinaryUser = new BinaryFormatter(); UserTcpClient = new TcpClient(ipaddress, portnumber); stream2User = UserTcpClient.GetStream(); StreamBinaryUser.Serialize(stream2User, publicAndPrivateKeys); StreamBinaryUser.Serialize(stream2User, RandomNumber); StreamBinaryUser.Serialize(stream2User, EncryptFile); stream2User.Close(); UserTcpClient.Close(); } catch (Exception ex) { MessageBox.Show("Destination Has been Off_Mode Or Wrong Ip_Address","User Send",MessageBoxButtons.OK,MessageBoxIcon.Information); } } } }
  • 14. } private void iFormGlassButton1_Click(object sender, EventArgs e) { } private void clearToolStripMenuItem_Click(object sender, EventArgs e) { currentKeyValue = 0; currentRandomNumber = 0; EncryptFile = null; rtxtbDisplay.Text = ""; } private void MainForm_Load(object sender, EventArgs e) { checkToolStripMenuItem.Enabled = false; chatToolStripMenuItem.Enabled = false; UserListern = new Thread(new System.Threading.ThreadStart(User_Recieve)); // Start Thread Session UserListern.Start(); } public void User_Recieve() { TcpListener ListernReciever = new TcpListener(IPAddress.Any, 8000); ListernReciever.Start(); Socket UserSocket = ListernReciever.AcceptSocket(); NetworkStream UserStream = new NetworkStream(UserSocket); BinaryFormatter UserFormater = new BinaryFormatter(); Control.CheckForIllegalCrossThreadCalls = false; object UserRandomNumber, UserKey, ServerEncryptFile, ServerSessionKey; UserRandomNumber = UserFormater.Deserialize(UserStream); UserKey = UserFormater.Deserialize(UserStream); ServerEncryptFile = UserFormater.Deserialize(UserStream); ServerSessionKey = UserFormater.Deserialize(UserStream); UserStream.Close(); //UserSocket.Close(); ListernReciever.Stop(); CheckRandomNumber = int.Parse(UserRandomNumber.ToString()); ServerKey = ServerSessionKey.ToString(); checkToolStripMenuItem.Enabled = true; if (UserSocket.Connected == true) { while (true) { User_Recieve(); } } }
  • 15. private void chatToolStripMenuItem_Click(object sender, EventArgs e) { Form1 obj = new Form1(ServerKey); obj.ShowDialog(); } private void checkToolStripMenuItem_Click(object sender, EventArgs e) { if (CheckRandomNumber == int.Parse(txtUserRandomNumber.Text)) { chatToolStripMenuItem.Enabled = true; MessageBox.Show("Server is Authenticated", "User Node", MessageBoxButtons.OK, MessageBoxIcon.Information); txtReturnRandomNumber.Text = Convert.ToString(CheckRandomNumber); } else { MessageBox.Show("Server Not Authenticated", "User Node", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } Ip_Address: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace User { public partial class Ip_Address : Form { public Ip_Address() { InitializeComponent(); } private void Ip_Address_Load(object sender, EventArgs e) { } private void btnSend_Click(object sender, EventArgs e) { if (txtIpAddress.Text.Length > 0) { User.MainForm.Ip_Address(txtIpAddress.Text);
  • 16. this.Dispose(true); } else { MessageBox.Show("Give Ip_Address then Click Send", "Ip_Address Form", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } Key Generation Form: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace User { public partial class KeyGenerator : Form { public KeyGenerator() { InitializeComponent(); } Connection_String obj = new Connection_String(); private void btnKeyGenerate_Click(object sender, EventArgs e) { User.MainForm.Key_Value(Convert.ToInt32(numericUpDown1.Value)); } private void btnRandomNumber_Click(object sender, EventArgs e) { Random obj = new Random(); txtRandomNumber.Text =Convert.ToString(obj.Next()); User.MainForm.Random_Number(Convert.ToInt32(txtRandomNumber.Text)); //this.DialogResult = DialogResult.OK; } private void btnSetandExit_Click(object sender, EventArgs e) { try { SqlConnection sqlcon = new SqlConnection(obj.con);
  • 17. SqlCommand cmd = new SqlCommand("insert into UserTable values('"+numericUpDown1.Value.ToString()+"','"+txtRandomNumber.Text+"')", sqlcon); sqlcon.Open(); cmd.ExecuteNonQuery(); sqlcon.Close(); this.Dispose(true); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } } } Methods of Salving Problem: Hwang and Chang proposed a mutual authentication scheme for mobile communications, which is briefly described below. First, the notation used in the scheme is defined in Table I. The scheme consists of two protocols. The first one is described below.