I have been reading a lot about encryption lately but most sources just care about making sure that the connection between two parties is secure. I want to know how I can be sure that the party I am talking to is actually the party I want to be talking to.
As far as I can see I can use something like AES-CCM to encrypt my messages and the keys used for this encryption can be shared using public-key algorithms. But what step do I need to take before that? Because is it not possible for another party to just simply initiate the public-key sharing with my device, which is then in turn used to share the symmetric key for AES-CCM?
I thought that the party that is trying to communicate with my device first needs to proof that he is authenticated to do so through some sort of password maybe. But that does mean I somehow have to save the password securely on my device. Is this how it is normally done? And if so how do I save this password securely?
I found this PDF file about a crypto-bootloader from Texas Instruments: http://www.ti.com/lit/wp/slay041/slay041.pdf. Here they simply save the keys in MPU-IPE which protect it from read/write access. But my device does not have that option.
Any insight into this topic would be highly appreciated. I am developing on Texas Instruments CC2652R1 in case anyone has experience with implementing this sort of thing on this device.