I think this is a computer science puzzle, originally intended to illustrate the mechanics of public-key cryptography. =3 (I jumped when I saw Kim posting the puzzle here - we've done something like this before in one of the lectures!)
There are two ways, I think, to solve this. The first is to have your fiance send over an open lock, to which only she has the key. I use that to lock a box on my end containing the diamond ring, and send that box back to her. Then she and only she can use the key to open it and get the diamond ring.
The second method is for me to send a box with the diamond ring over to her, unlockable only with a lock that I have. Then she locks the box with her own lock and sends it back to me. Lastly, I unlock my lock and send the box (now only locked with her lock) back to her, where she can open it.
If I were Nicholas I would comment on the futility of the exercise (because he loves to question puzzles that way). ;)
But anyway - you know how when you visit banking websites or ebay and a little lock sign appears at the bottom right hand corner of your browser? This is the principle in action. Say you log in to your banking website. What may happen is that a hacker sitting between your computer and the bank server may intercept your HTTP request (which is notoriously insecure) and from there find out your username and password.
What your browser does, then, is that it actually encrypts your request and sends it over to the banking website. Then your banking website adds its own encryption to the file, before sending it back to you. Lastly, your browser decrypts its encryption and sends it back to the bank server, which may then unlock it.
This is a very simplified version of what happens, of course, but the basics are there. Another way is for the bank to send you a public key (which is a algorithmically generated series of characters and numbers). After which, you use that public key to encrypt your request. Due to the nature of the algorithm - public keys may be used to encrypt something, but, once encrypted, may only be unlocked by a private key. You send this encrypted request back to the bank server, which then unlocks it with the private key that it possesses.
I'm not exactly sure how the private and public keys are mathematically related - there was a proof in one of my textbooks on how to do this, but I never took the time to understand it. (I should, though).
But anyway: cool, eh? =)