In multiplayer, I've done it once without being detected. I positioned my sub on the opposite side of the layer and got behind him. Only takes a couple seconds for the torpedo to impact the enemy sub.
My funnest one was when I decided to charge an akula with my seawolf in a multiplayer battle. I was pretty close to him at the time. I fired 2 torpedoes to run just ahead of me. My enemy fired some torpedoes of his own, turned tail and ran. It sent shivers down my spine when I went to HFAS and saw one of his torps go right past me. I shut down my torps because I didn't want to kill him yet. I finally caught up to him and got behind him. When he finally slowed, I was around 120yds behind him. He never had a clue, and couldn't find me on any of his sensors.
I messaged him that I was behind him, then fired off a warning shot. We then went for a wild ride as he tried to shake me off his tail. I fired a few more torpedoes that were meant to kill him. None of them did because I had forgot to set the floor from the default setting (we were 1,800ft down)

. I figured out what was wrong, then set up the next torpedo correctly. Just as I was about to fire, the game ended because the mission's time limit was up.
You should hear my story about when I was surrounded by torpedoes that were locked onto me, and I survived!