This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

what is different between pairing vs bonding , STK vs LTK

hi all , I am looking out theory about SM layer in BLE . I read CoreV5.0 but I do not understand much about pairing , bonding , STK , LTK . Can you give me some document about that ? Thank !!!

  • Pairing: Select a key, use this key to encrypt data between these devices. When the devices are disconnected, everything is forgotten and it is if the devices never knew each other. The next time you want to talk secretly to the same device, everything has to be done all over again.

    Bonding: First, do Pairing to have a secure link, then exchange keys for the next time we meet, so that we don't need to perform Pairing again to have a secure link.

    By doing bonding, the user will (for example) not have to enter the 6 digit passkey every time the smartwatch is connected to the phone.

  • Thank for reply , I also want to ask about STK and LTK . As I understand , STK is used to encrypt the connection , which will be used for distribute LTK , EDIV , Rand , IRK , CSRK , public Address between Host of Master and Host of Slave . Then , host send LTK to Link layer for create session key , session key is used to encrypt all PDUs in Link Layer . I understand that is correct ? Pls help me , thank !!!

  • Hi Emil Lenngren , I want to ask some question .

    1. In pairing , keys don't distribute , so each re-connect secure , we will re-pairing , so the new STK and LTK is created , so have we changed ?
    2. In bonding , LTK is stored . So each reconnect , old - LTK will be used . So , when the new LTK is created ?
    3. Can you discribe for me the process phase 3 performance between master and slave and how the LTK is used in Link layer ?

    Thank !!!

  • 1)What do you mean by each re-connect is secure? If you don't bond you have to pair every time, if this is secure or not depends on how you pair, if you are doing Just Works, Passkey Entry, OOB, LESC and so on. There is no LTK generation when you don't bond.

    2)What do you mean by when the new LTK is created? The LTK is created once, then this is used to encrypt the link in future connections.

    3)You have to be more specific on what it is you don't understand.

  • Hi , sorry because my English isn't good . I want to ask :

    1. In pairing , each connect , LTK is created and diffenrence value LTK privious ?
    2. In bonding , LTK1 is stored for the next connection (2nd) . So in the connection 2 , is new LTK2 created ? Or in the next connection (3nd) still LTK1 for encrypt
Related