I. Recommendation and G. , One-way transmission time, 2005.

[. Nist, Triple Data Encryption Standard (3DES) , FIPS Publication 46- 3, Octobre 1999Specification for Enhanced Security, 2003.

I. Draft, P. 1x-/-d11aes-]-nistaut02, ]. T. Autret, L. Bellefin, M. Oble-laffairebar02 et al., FIPS Publication 197Androutsellis-Theotokis et D.Spinellis A survey of peer-to-peer content distribution technologies Sécuriser ses échéances électroniques avec une PKI Le transport et la sécurisation des échanges sur les réseaux sans filRosti -Voice over IPsec : Analysis and Solutions La ToIP prend d'assaut le grand public An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol Call Establishment Delay for Secure VoIP Tableaux de bord de sécurité réseaux New directions in cryptography, Advanced Encryption Standard (AES) GPRS Security Threats and Solution Recommendations Juniper NetworksCed03] C. Llorens, L.Lévier, pp.335-3711539654, 1976.

I. M. Internet-draft, P. Badra, . Urientxt, ]. P. Eap-ttlsdraft, E. S. Funk et al., EAP-Double-TLS Authentication Protocol, draft-ietf-pppext-eap-ttls-04.txt, expire Avril Information technology -Telecommunications and information exchange between systems -Local and metropolitan area networks -Specific requirements Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, EAP Tunneled TLS Authentication Protocol (EAPTTLS) FNBDT Signaling Plan, Revision IEEE Std, vol.1, issue.802, pp.11-1999, 1999.

]. X. Lag00, P. Lagrange, S. Godlewski, and . Tabbane, Packet-based multimedia communications systems, Réseaux GSM ? Des principes à la norme, 2000.

H. R. Leemil02-]-b, B. A. Miller, E. Hamiltonmodadugu, . Rescorlamor02-]-r, and . Morrow, UMTS architecture MarsIssues in Wireless Security WEP, WPA& 802.11i The Design and Implementation of Datagram TLS, Proceedings of the 18th Annual Computer Security Applications Conference NSIS Working Group Meeting. IETF#61 (61st IETF -NSA] National Security Agency home page, 2001.

P. Pfleeger, S. Lawrence-pfleeger, and ]. R. Rivest, Security in Computing, Rivest Cipher RSA Security, vol.4, 1987.

[. Rfc-3830-mikeyrig98, ]. C. Rigault, A. Rivest, L. Shamir, and . Adleman, Principes de commutation numérique RSA, Hermes, Collection pédagogique de télécommunications, 1977.

]. J. Sal75, M. Saltzer, . Schroedersamldraft, . H. Internet-draft, and . Tschofenig, [Scout] Internet Scout Project Home page. http://scout.wisc.edu/ [Setec] Setec a Gemplus company Home page Secure Hash Standard (SHA -1), The Protection of Information in Computer Systems Providing Secure Communication Services on the Public Telephone Network Infrastructures, pp.1278-70, 1975.

I. J. Internet-draft, R. Rosenberg, C. Mahy, . G. Huitemawil99-]-k, and . Wilson, TURN: traversal using relay NAT Internet Engineering Task Force, expire Avril Du monopole à la compétition : la déréglementation des télécommunications au Canada et aux Etats-Unis, Service Level Agreement in the Data Center " , Sun Professional Services Sun BluePrints? OnLine, 1999.

G. Javacardsecurity-]-attaques-sur-les-cartes-intelligentes-java, . Mcgraw, and . Smart-cards, Disponible au site http://www.securingjava.com/chapter Java cards and security, Applied Cryptography, pp.165-229, 1996.

A. Annexe, C. Publications-associées-À-cette-thèse, and . Bassil, Etat de l'art de la sécurité de la Voix, 3ème conférence SAR (Sécurité et Architecture des Réseaux), 2004.

C. Bassil, A. Serhrouchni, N. Rouhana-tunisie, C. Bassil, A. Serhrouchni et al., Critical voice network security analysis and new approach for securing Voice over IP CommunicationsInformation et des Télécommunications Toward a new perspective of Secure Real-Time Transport Protocol with Active network Critical analysis and new perspective for securing voice networks Towards securing VoIP communications with FNBDT, Mars 2005 Mars 2005 4ème conférence ICN (International Conference on Networking) 12ème conférence ICT (International Conference on Telecommunications) 5ème conférence ICN (International Conference on Networking), pp.3-620, 2005.

. Sortie, write(mess,0,mess.length)

. I=entre, read(mess,0,mess.length)

. Udpsocket, close(); sm.stop(); rm.stop()

. Sortie, write(mess,0,mess.length)

. Sortie, write(mess,0,mess.length)

. Sortie, write(mess,0,mess.length)

. Fos, write(receivedmess); fos.close(); rec=new String(receivedmess)

. Sortie, write(mess,0,mess.length); socket.close(); System.exit(0)

. Java, *; import java.util.zip.*; import javax.crypto.*; import java.math.*; import java.lang.*; import java.lang.reflect.*; public class SendU_RUCAreq { public byte[] buildMessage(String cername,String key ,byte[] rnd,byte[] SID,byte[] sequenceNumber) throws Exception { byte firstByte = 82, security.cert.*; import java.util. Date start=new Date(

. Iterator-i=c, iterator(); java.security.cert.Certificate cert = (java.security.cert.Certificate)i.next()

. Byte-hedatahigh=hedatalen, byteValue(); byte extlow2=16; byte[] usercap="AES;HMACwithSHA1, DiffieHellman".getBytes(

. System, arraycopy(HE1,0,svspmessage,entete.length,HE1.length)

. System, arraycopy(HE2,0,svspmessage,(entete.length+HE1.length),HE2.length)

. System, arraycopy(bb,0,entete2

. System, arraycopy(HE1,0,svspmessage,entete2.length,HE1.length)

. System, arraycopy(HE2,0,svspmessage,(entete2.length+HE1.length),HE2.length)

. System, arraycopy(sig,0,message,messagesize,sig.length); return (message)

. Java, *; import java.util.*; import java.util.zip.*; import javax.crypto.*; import java.math.*; import java.lang.*; import java.lang.reflect.*; public class SendU_RUCArep { public byte[] buildMessage(String ID,String key,String cername,byte[] SID,byte[] sequenceNumber,byte[]rnd,PublicKey DHpubkey) throws Exception { byte firstByte = 82, security.cert.*; import javax.crypto.spec. Date start=new Date(

. System, arraycopy(IDtoByte,0,rnd_id,rnd.length,IDtoByte.length)

. Byte-hedatahigh=hedatalen, byteValue(); byte extlow2=16; byte, DHkey=DHpubkey.getEncoded(

. Iterator-i=c, iterator(); java.security.cert.Certificate cert = (java.security.cert.Certificate)i.next()

. System, arraycopy(HE1,0,svspmessage,entete.length,HE1.length)

. System, arraycopy(HE2,0,svspmessage,(entete.length+HE1.length),HE2.length)

. System, arraycopy(cipherID,0,svspmessage,(entete.length+HE1.length+HE2.length),cipherID.leng th)

. System, arraycopy(bb,0,entete2

. System, arraycopy(HE1,0,svspmessage,entete2.length,HE1.length)

. System, arraycopy(HE2,0,svspmessage,(entete2.length+HE1.length),HE2.length)

. System, arraycopy(sig,0,message,messagesize,sig.length); return (message)

}. System, arraycopy(IDtoByte,0,confmess,0,IDtoByte.length)

. System, arraycopy(conf,0,confmess,IDtoByte.length,conf.length)

. Byte-hedatahigh=hedatalen, byteValue(); byte[] token=new byte[IDtoByte.length+rnd

. System, arraycopy(IDtoByte,0,token,0,IDtoByte.length)

. System, arraycopy(rnd,0,token,IDtoByte.length,rnd.length)

. System, arraycopy(HE1,0,svspmessage,entete.length,HE1.length)

. System, arraycopy(token,0,svspmessage,(entete.length+HE1.length),token.length)

. System, arraycopy(bb,0,entete2

. System, arraycopy(HE1,0,svspmessage,entete2.length,HE1.length)

. System, arraycopy(token,0,svspmessage,(entete2.length+HE1.length),token.length)

. System, arraycopy(mactag,0,message,messagesize,mactag.length); return (message)

. System, arraycopy(HE1,0,svspmessage,entete.length,HE1.length)

. System, ); messagesize=16; svspmessage=new byte[messagesize]; System, 2004.

. System, arraycopy(HE1,0,svspmessage,entete2.length,HE1.length)

. System, arraycopy(mactag,0,message,messagesize,mactag.length); return (message)

. System, arraycopy(HE1,0,svspmessage,entete.length,HE1.length)

. System, ); messagesize=16; svspmessage=new byte[messagesize]; System, 2004.

. System, arraycopy(HE1,0,svspmessage,entete2.length,HE1.length)

. System, arraycopy(mactag,0,message,messagesize,mactag.length); return (message)

}. System, arraycopy(IDtoByte,0,token,0,IDtoByte.length)

. System, arraycopy(rnd,0,token,IDtoByte.length,rnd.length)

. System, arraycopy(HE1,0,svspmessage,entete.length,HE1.length)

. System, arraycopy(token,0,svspmessage,(entete.length+HE1.length),token.length)

. System, arraycopy(bb,0,entete2

. System, arraycopy(HE1,0,svspmessage,entete2.length,HE1.length)

. System, arraycopy(token,0,svspmessage,(entete2.length+HE1.length),token.length)

. System, arraycopy(mactag,0,message,messagesize,mactag.length); return (message)

. Fis, close(); char[] keypassword ={'1','2','3','4','5','6'}; PrivateKey myPrivateKey = (PrivateKey)ks.getKey(key, keypassword)

. System, arraycopy(HE1,0,svspmessage,entete.length,HE1.length)

. System, arraycopy(messreport,0,svspmessage,(entete.length+HE1.length),messreport.length)

. System, arraycopy(bb,0,entete2

. System, arraycopy(HE1,0,svspmessage,entete2.length,HE1.length)

. System, arraycopy(messreport,0,svspmessage,(entete2.length+HE1.length),messreport.length)

. System, arraycopy(mactag,0,message,messagesize,mactag.length); return (message)

. Java, import java.security.*; import java.security.cert.*; import java.util.*; import java.util.zip.*; import javax.crypto.*; import java.math.*; import java.lang.*; import java.lang.reflect.*; public class ReceiveU_RUCArep { public byte[] getKey(String cername,String key,byte[] rnd,byte[] message) throws Exception { FileInputStream fis=new FileInputStream(cername)

. Iterator-i=c, iterator(); java.security.cert.Certificate cert = (java.security.cert.Certificate)i.next(); fis

. System, arraycopy(message,svsp.length,signature,0,128); md5rsa.update(svsp)

. Int-keysize=message, length-296; byte[] hres=new byte[20]; System.arraycopy(message

. System, arraycopy(ID,0,IDrnd,rnd.length,ID.length)

. Java, import java.security.*; import java.security.cert.*; import java.util.*; import java.util.zip.*; import javax.crypto.*; import java.math.*; import java.lang.*; import java.lang.reflect.*; public class ReceiveU_RUCA { public byte[] getRandom(String cername,byte[] message,int certsize) throws Exception { FileInputStream fis=new FileInputStream(cername)

. Iterator-i=c, iterator(); java.security.cert.Certificate cert = (java.security.cert.Certificate)i.next(); fis

. System, arraycopy(message,svsp.length,signature,0,128); md5rsa.update(svsp)

. Java, import java.security.*; import java.security.cert.*; import java.util.*; import java.util.zip.*; import javax.crypto.*; import java.math.*; import java.lang.*; import java.lang.reflect.*; public class ReceiveU_RUCAconf { public byte[] getToken(byte[] message,SecretKey secretkey) throws Exception { Mac mac=Mac.getInstance

. System, arraycopy(message,svsp.length,mactag

. Java, import java.security.*; import java.security.cert.*; import java.util.*; import java.util.zip.*; import javax.crypto.*; import java.math.*; import java.lang.*; import java.lang.reflect.*; public class ReceiveU_ESMSreq { public void getMessage(byte[] message,SecretKey secretkey) throws Exception { Mac mac=Mac.getInstance

. System, arraycopy(message,svsp.length,mactag

. System, + verifies);}} import java.io.*; import java.security.*; import java.security.cert.*; import java.util.*; import java.util.zip.*; import javax.crypto.*; import java.math.*; import java.lang.*; import java.lang.reflect.*; public class ReceiveU_ESMSrep { public void getMessage(byte[] message,SecretKey secretkey) throws Exception { Mac mac=Mac.getInstance

. System, arraycopy(message,svsp.length,mactag

. System, + verifies);}} import java.io.*; import java.security.*; import java.security.cert.*; import java.util.*; import java.util.zip.*; import javax.crypto.*; import java.math.*; import java.lang.*; import java.lang.reflect.*; public class ReceiveU_ESMSind { public byte[] getToken(byte[] message,SecretKey secretkey) throws Exception { Mac mac=Mac.getInstance

. System, arraycopy(message,svsp.length,mactag

. Iterator-i=c, iterator(); java.security.cert.Certificate cert = (java.security.cert.Certificate)i.next(); fis

. System, arraycopy(message,svsp.length,mactag

. System, out.println("signature verifies: " + verifies); return(report)

. Java and . Security, *; import java.security.spec.*; import javax.crypto.spec.*; import javax.crypto.*; import java.io.*; import java.math.*; import java.util.*; import java.net.*; public class UDPUAclient { static final int port = 10000; static public void main (String

. System, arraycopy(mess,0,mess1,0,mess1.length)

. System, arraycopy(mess,0,mess1,0,mess1.length)

. Fos, write(receivedmess); fos.close(); rec=new String(receivedmess)

P. Dhprivatekey and =. Keypair, getPrivate(); udppacket = new DatagramPacket (mess,mess.length,ad,po)

. System, arraycopy(mess,0,mess1,0,mess1.length)

. Rm, start(); sm.start(); boolean endcall=false; byte[] endcallmess=new byte

. Udpsocket, close(); sm.stop(); rm.stop()

. System, arraycopy(mess,0,mess1,0,mess1.length)

. Fos, write(receivedmess); fos.close(); rec=new String(receivedmess)

. System, arraycopy(history, 0, outData, 0, copyFromHistory)

}. Catch, BadPaddingException e){System.out.println("bad padding!");} catch (IllegalBlockSizeException e){System.out.println("blok size!");} byte[] svspmessage=new byte

. System, arraycopy(outData,0,svspmessage,entete.length,48)

. System, arraycopy(bb,0,entete2

. System, arraycopy(outData,0,svspmessage,entete2.length,48)

. System, arraycopy(mactag,0,message,messagesize,mactag.length)

. System, arraycopy(inpData, inputBuffer.getOffset(), outData, historyLength, inpLength)

. System, arraycopy(outData,0,svspmessage,entete.length,48)

. System, arraycopy(bb,0,entete2

. System, arraycopy(outData,0,svspmessage,entete2.length,48)

. System, arraycopy(mactag,0,message,messagesize,mactag.length)

. Inpdata=new-byte, *; import javax.crypto.spec.*; import javax.crypto.*; import java.io.*; import java.math.*; import java.util.*; import java.net.*; import javax.media.*; import javax.media.protocol.*; import javax*; public class Voiceudpuaclient { static final int port = 10000, security.spec.media.control.*; import javax.media.format, 2000.

. System, arraycopy(mess,0,mess1,0,mess1.length)

. Codec, codecs=new Codec[1]; codecs[0]=codec; tr[0].setCodecChain(codecs)

}. Catch, Exception e) { System.out.println

. System, arraycopy(mess,0,mess1,0,mess1.length)

. Fos, write(receivedmess); fos.close(); rec=new String(receivedmess)

. System, out.println("time needed to fin ish session in ms:"+(timeafter-timebefore))

P. Dhprivatekey and =. Keypair, getPrivate(); udppacket = new DatagramPacket (mess,mess.length,ad,po); socket.send(udppacket)

. System, arraycopy(mess,0,mess1,0,mess1.length)

=. Processor and . Manager, createProcessor(mrl); pros.configure(); while(pros.getState()!=pros.Configured); pros.setContentDescriptor(null)

. Codec, ]; codecs1[0]=codec; tr1[0].setCodecChain(codecs1); pros.realize(); while(pros.getState()!=pros

. System, arraycopy(mess,0,mess1,0,mess1.length)

. Fos, write(receivedmess); fos.close(); rec=new String(receivedmess)